Using a text based ftp client is not truly Linux specific, however there is
a chance that you may need to download a file from an ftp server and don't want
the overhead of installing a GUI based ftp client nor using a comparitively bloated webbrowser. Maybe you want to use some of the power and features available
in a ftp client that for whatever reasons aren't supported in the webbrowsers.
Most text based ftp clients, regardless of the operating system they run on,
use the same command set that you type in to instruct the client on what it is
you want it to do - generally speaking you should be able to learn how to use
a text based ftp client once and use that knowledge many times. I'm writing
this under the assumption that you are using Linux to connect to ftp servers.
1. Logging in.
Firstly you will need to open a connection to the ftp server:
This opens a connection to the ftp server running on my Linux box called 'edge'
and could also have been done by typing
ftp> open edge
After the client has connected to the server you will see a login banner and a
username prompt. After typing in the user name you will be prompted for a
password - if you want to log in to an 'anonymous' account you should enter youremail address as the password.
To log out, type 'quit'.
If you use ncftp as the ftp client and it has automatic anonymous logins
enabled (which it does by default), then you won't be prompted for a username
2.1 Initial directory.
If you log in as anonymous then your initial working directory will be the root
dierctory, otherwise your initial working directory will be the home directory
of the user that you logged in as.
2.2 Changing directories:
You will need to move to the appropiate directory once you have logged in.
Doing this is the very same as changing directories within Linux - with the
'cd' command. Using 'cd' will move you around the directory structure of the
ftp server, if you need to move around the directories of the PC that you are
connecting with, then you should use the 'lcd' command.
Depending on which operating system the ftp server is running on it will most likly be case sensitive with regards to file and directory names.
2.3 Directory Listings.
As with Unix, the 'ls' command should be used if you want to get a general
listing of what files are in the remote working directory.
There's a particular twist though, if you want a 'long' directory listing
similar to what you get with 'ls -l' you can either type 'ls -l' itself or be
slightly lazy about it and type 'dir'.
If you would like to keep a local copy of the directory listing, the 'mls'
command should be used.
With regard to using mls, you have to specify which remote directory the
listing should be of, so if you want a listing of the current directory you
have to type '.' as the name of the directory.
You then have to specify the local file that you want the directory listing to
be saved to and type 'y' in response to the 'output to local file' question
2.4 Modification date of a file.
The 'modtime' command is useful for when you need to know when a remote file
was last modified.
3. Running a 'shell' command.
It can be useful at times to run a shell command from within an ftp connection.
This is done by first typing an exclamation mark (!) followed by the command
I do this quite often to ensure that I am in the correct local directory as it
helps to make certain that I am not going to to overwrite a local file.
To do this, you should type:
You can also use '!' on it's own to get to the command prompt without
logging out from the ftp session. You can get back to the ftp prompt by
4. Transferring files.
Okay, so now that you know how to log in and change directories the next thing
that you need to learn is how to transfer files.
Before you get around to transferring a file though it is important that you
are in the correct transfer type.
4.1 Transfer type.
There are two transfer types that can be used to transfer files; ascii and
To see which transfer type is currently active, use the 'type' command.
As seen in the example above, type 'ascii' to change to the ascii type
and 'binary' to change to the binary type.
Using binary mode to transfer files.
200 Type set to A.
Using ascii mode to transfer files.
200 Type set to I.
Using binary mode to transfer files.
4.2 Copying files.
To get a copy of a file from the server to the local computer you use the
Tp put a copy of a local file onto the sever you use the command 'put'.
4.3 Copying multiple files.
If you need to copy a number of files of the same transfer type from one remote
directory to a local directory you can use the command 'mget', similarly
'mput' should be used to transfer a number of files of the same type
onto the server.
You can be as specific or as general in your use of 'mget' or 'mput' as you
For example 'mget *' means that all remote files (both binary and ascii)
will get copied down from the server. Similarly 'mget foo*' means that
all files starting with 'foo' will be copied down from the server.
Each time that you use mget or mput you will be prompted to confirm the
transfer. Typing anything other than 'n' means the file will be copied.
You can quit out of mget or mput and remain in the ftp session by pressing
4.4 Resuming a 'get'.
One of the nice advantages that you get by using an ftp client over a web
browser that supports the ftp protocol is that, if your connection to the
server breaks for whatever reason, you can get the ftp client to start over
again from where it left off. This is done by using the 'reget' command.
4.5 Visual confirmation.
If you are copying a large file and would like some form of visual indication
of progress then the 'hash' command, which causes the hash mark (#) to
be printed for each segment of the file which has been copied, will be of use
You should use the 'hash' command before copying the file for which you want
the visual indication.
5. Deleting files.
Once you have made a local copy of a file from the server you may want to
delete the original file that you copied. Naturally, this will only work if
you have the appropriate permissions to delete the file.
To do this, use the 'delete'
if you have a number of files to delete, I'd suggest you use the
'mdelete' command which can be aborted by pressing ctrl-c.
I doubt this facility is available in all text based ftp clients but it is far
too useful to not mention.
You can use 'macdef' to combine several commands into a macro, so that
for example if you find that you always follow a 'pwd' with a '!pwd' then you
could combine these into a macro called '2pwd' and use that instead.
ftp> macdef 2pwd
To indicate that you want to use a macro instead of a standard command you have
to preceed the name of the macro with a dollar sign ($). For example:
Enter macro line by line, terminating it with a null line
This is a very trivial example but you should be able to see how to apply this
to a larger sequence of commands.
257 "/home2/wolfhaven" is current directory.
X. More Information.
If you would like to learn more of the ftp client's commands, I'd suggest you
use the help command and also man ftp at the command prompt.
Using 'help' on its own will present you with a list of commands that the ftp
client supports, to get details of what a specific command does then add it as
a parameter to the help command. For example:
ftp> help verbose
verbose toggle verbose
By Ken Guest.
About the author, Ken Guest.