|Shell accounts run the Unix operating system. You access the shell via telnet and FTP. The account provides you with space (usually around 5 MB to 30 MB for basic accounts) for storing files and running programs on the Unix machine. The most popular flavours of Unix you'll encounter with shell accounts are the Linux and FreeBSD operating systems. Unfortunately, unlike Eggdrop, shell accounts generally aren't free. But since they're always connected to the Internet, shell accounts are the most popular and cost effective platform for hosting IRC bots. Shell accounts can also be used for other things, IRC-related and otherwise, such as running a bouncer, running your own IRC server, downloading files at high speed for temporary storage (until you're ready to download them to your machine), sending/receiving e-mail, and maintaining a web site. You don't have to be experienced with Unix in order to set up and maintain a bot on a shell account, but you will need to learn a few basic commands.|
Monitoring and Security
These are other things you to look at when purchasing a shell, as these things can contribute significantly to the amount of downtime and DoS attacks. Poorly monitored shells and those with inexperienced administrators will be vulnerable to 'hacking', which could compromise your security (Eg. If you have a bot running on it .. It could be used to take over the bot and your channel). The best shells always have experienced staff keeping a close eye on the shell and its users to keep things running smoothly, and swiftly deal with any abusive users. Without this, the quality of a shell can deteriorate very quickly, with frequent attacks and downtimes due to abusive users and admins who aren't around to fix any problems.
Support and Responsiveness
These are important for many people, the former being important for 'newbies', the latter also for experienced users. Unfortunately, a lot of shell providers fall short in these areas. Many shells are relatively unresponsive to users and fall far short of expectations as far as customer service is concerned. Some shell providers, for example, have an IRC channel for support, but in many cases such IRC channels rarely have anyone around willing to respond to a question about your account or help you with a problem. Some providers, on the other hand, have outstanding support, with friendly and responsive staff willing to answer questions promptly. They also keep their users informed of planned downtimes and changes. Reputation and word of mouth are the best ways to find out about the responsiveness of a shell provider's staff.
Finally, shell accounts vary in the types of features offered. Below are descriptions of some shell features you need to be familiar with before purchasing a shell account.
Number of processes: This is the number of 'background' processes you're allowed to run. A basic shell account typically lets you run one or two background processes. Some shells allow multiple background processes, but only a certain number of Eggdrops (e.g. two processes, but only one of those may be a bot).
Disk quota: This is the amount of space you have on the shell. Keep in mind that the disk quota is often not the same as the amount of web space provided.
Web Page and E-Mail: Most shell providers offer a web page and e-mail account as a standard feature. Your disk quota usually determines the amount of space you can use for a web page, but on many shells there are different amounts specified for disk quota and web space. E-mail is a low priority on most Eggdrop shells, so many don't offer POP3 e-mail for use with a Windows e-mail client.
Connection: This is the type of connection the shell machine has to the Internet. Some shells have multiple connections of
one or more types. The most common connection types are T1 (1.54 Mb/s analog), DS1 (1.54 Mb/s digital), 10Mbit (10 Mb/s), T3 (44.7 Mb/s analog), DS3 (44.7 Mb/s digital), and OC3 (155 Mb/s). This mainly affects the speed at which you can download files to the shell via FTP. Many shells don't actually have a direct, dedicated link to these connections - e.g. a shell may claim to be T3 speed, but the shell boxes may be sitting on a network provider's LAN, sharing the connection with other machines. If you want to run a bot, speed is generally not as important as other factors such as price, reliability, security, and support, as long as the provider's link isn't overloaded. A small provider with a less-than-T1 connection can sometimes be more stable than a large provider with a T3. Commercial shells on cable modem, DSL, and ISDN connections should generally be avoided, though.
Pricing and Ordering: As mentioned previously, the cost for a basic shell account for IRC bots ranges from about US$5 to US$20 per month, with some providers also charging a setup fee within pretty much the same price range. Almost all providers require you to pay for the account in advance, and activation of the account will rarely occur until payment is received. Many shell providers allow you to order via credit card, which is most convenient for people outside the US. Due to a high rate of credit card fraud, most shells are very careful about credit card verification, and may require voice contact, or a photocopy of your card and some form of identification, before activating the account. Although this may be annoying or inconvenient, a provider who doesn't perform multiple credit card checks may have users who obtained accounts via credit card fraud, so a provider performing rigorous checking is a good sign. Some providers are now accepting credit card payments via PayPal. Almost all providers accept advance payment via post in the form of a cheque or money order. In some cases, direct transfer of funds to the shell provider's bank account is also an option.
Ordering is generally done via an online order form. Some shells don't have 'secure' forms for credit card ordering, so if you're ordering via credit card then you should make sure the online order form you're using is secure (most providers will let you phone or fax your credit card details instead of using the online order form). The amount of time it takes to activate in the account will depend on the provider - generally, with most providers, an account ordered by credit card will be activated within 24 hours, but others will take longer.
An important warning about advance payments - because of the volatility of the shell market, it's not a good idea to pay a large amount of cash up front. Don't pay for six months or a year's service up front without being aware of the risk that the shell provider may perform a vanishing act after just a couple of months. People have been known to say that they paid a year in advance only to find the provider went out of business after just a couple of months, or that the service was significantly degraded not long after they first signed up. It's generally best to pay on a monthly or quarterly basis, even if a yearly payment may look like a better deal.
Policies: Most shell providers have very similar policies and terms of service, generally prohibiting such things as spamming, hacking, warez (software piracy), and IRC channel takeovers. A typical policy statement will also outline the right of the shell provider to suspend or close your account without refund for breaching the rules. It's a good idea to read the policies / terms of service before ordering, but in general, these won't affect you unless you plan on being naughty. However, you should keep in mind that any files in your shell account may be inspected by the server administrators, so it's not a good idea to place any personal files there.
Using your Shell
There are two programs you need in order to use your shell account - a telnet
client and a FTP client. Telnet is used for performing commands on the shell, while FTP is used for transferring files between the shell and your computer. LeechFTP is a popular, free FTP client (no longer in development but still available for download). One freely available telnet program is PuTTYtel. Windows has a built-in telnet program, but it's quite crude.
Many shells support a secure telnet protocol called SSH (Secure SHell protocol). This works in basically the same way as telnet, but everything is encrypted for better security. If your shell supports SSH, it's a good idea to use that instead of regular telnet. However, you need a client that supports SSH, such as PuTTY.
When your shell account is activated, you should receive information which includes the hostname of the shell, and hostname of the FTP server (although the FTP server often has the same hostname as the shell). The first thing you'll want to do is telnet to the shell. Load up your telnet or SSH client, and enter the address of the shell (e.g. shell1.niceshells.net). You will be prompted for your username/password. After that, a motd will usually be displayed, and then you'll be staring at something that looks (and works) very similarly to the MS-DOS prompt.
First up, you need to familiarise yourself with a few shell commands. Listed below are some of the commands you'll need to know to perform basic operations on the shell.
cd - Changes to the specified directory, similar to DOS's cd command. To switch to the directory above the current one, specify two periods as the directory, i.e. cd ... Typing cd ~ will return you to your home directory (the tilde is shorthand for the path your home directory, e.g. /home2/user/cooldude).
gunzip <file> - Extracts the contents of a gz file (which are similar to zip files), e.g. gunzip nice.tcl.gz.
kill -9 - Kills the process with the specified pid number. You can get the pid number of a process by using the ps x command described below. This command is useful for killing your Eggdrop if you're unable to shut it down by other means.
ls - This is very similar to the DOS dir command. It lists the contents of the current directory. For a more detailed listing, type ls -al.
mv <oldfile> <newfile> - Renames a file or directory.
passwd - Allows you to change your shell account password (it will prompt for your old password, then ask you to enter a new one).
pico -w <file> - Opens the specified file in the pico text editor. The -w option prevents Tcl scripts from being messed up due to line wrapping.
ps x - Shows all current 'processes' you have running on the shell. This includes things such as Eggdrop, IRC bouncers, and open telnet and FTP sessions. This command is useful for getting the pid (process ID) number of a process. To view the resource usage of your processes, type ps ux.
pwd - Shows the current working directory path, e.g. /home2/user/cooldude/mybot.
quota - Shows how much disk space is allocated to you, and how much you're using.
rm <file> - Deletes a file. To delete a directory and all its contents (including subdirectories), use rm -rf .
tar -xf <file> - Used to extract a tar file. To extract a tar.gz or .tgz file, use tar -zxf <file> (if that doesn't work, use gunzip <file> then tar -xf <file>).
The above commands are basically all you need to know in order to setup and run an Eggdrop. You may wish to learn some more commands as you become more experienced using the shell. Some other useful and interesting commands are shown below.
netstat - Displays all connections going to and from the server.
top - Displays details about system resource usage.
uptime - Displays the current uptime and server load.
Using FTP on the Shell
One of the most common uses for shell accounts is to download files from a server to the shell via FTP (note that this is different from transferring files between your machine and the shell via FTP). To do this,
you connect to your shell account via telnet or SSH, and use the shell's FTP client. This works similarly to downloading files to your computer, but instead the file downloads to your space on the shell, and you can later download the file from the shell to your computer if needed. A fast shell is capable of downloading files at a much faster rate than a typical dial-up connection.
To download a file, type ftp at the shell prompt. You will then be greeted with the ftp prompt. Below is a list of the basic commands you need to use at the ftp prompt to download a file to your shell (shown in the order one would typically use them).
open <server> - Connects to the specified FTP server. If the connection is successful, you'll be prompted to enter a login name and password (for most servers, type anonymous as login, and firstname.lastname@example.org as your password).
ls - Lists the contents of the current directory on the FTP server.
cd - Changes to the specified directory on the FTP server. To switch to the directory above the current one, specify two periods as the directory, i.e. cd ...
bin - Switches to binary mode. You need to use this command before you download any files.
hash - Enables the display of hash marks while downloading a file. Useful for monitoring download progress.
prompt - Disables prompting between gets if getting multiple files using mget (below).
get <file> - Downloads the specified file to your shell.
mget <file1 file2 fileN> - Downloads all specified files, one after the other. This command supports wildcards, e.g. mget egg* will download all files in the current directory on the FTP server with names starting with 'egg'.
close - Disconnects from the FTP server.
quit - Quits you from the ftp program.
As a final note, make sure you don't give out your shell password to anyone! Giving others access to your shell is asking for trouble. If you really want to give someone else access to your shell, make sure it's someone you trust and have known for a while, although doing even this may be against the shell provider's policy.
Advantages of shell accounts:
Requires little local configuration or equipment (2400 modem and communications software is sufficient).
Fairly simple to use.
Can access and use Gopher, text-based Web browsers, telnet, ftp, email, etc. from host computer or by connecting to other servers on the Internet.
Can use older computers for access.
Often less expensive than other types of accounts.
Disadvantages of shell accounts:
You can't use graphical interfaces such as Netscape that allow multimedia access.
Your Internet connection is not direct, and some operations like file transfers require extra steps.
You may get a busy signal when dialing up.
Knowledge of basic UNIX commands often needed to use effectively.
~ shn ~
This article was originally written by shn