13.9. FTP-клиенты

FTP означает File Transfer Protocol (протокол передачи файлов). Он позволяет вам обмениваться файлами между двумя компьютерами. Для этого существуют FTP-серверы и FTP-клиенты. В этом разделе мы поговорим о клиентах.

Если вы ещё не поняли, “клиент” - это вы. “Сервер” - это компьютер, который отвечает на ваши FTP-запросы и позволяет вам войти в систему. Вы будете загружать и выгружать файлы на сервер. Клиент не может принимать FTP-подключения, он может только подключаться к серверам.

13.9.1. ftp

Чтобы подключиться к серверу FTP, просто выполните команду ftp(1), указав хост:

% ftp <имя хоста> [порт]

Если на хосте работает FTP-сервер, он запросит у вас имя пользователя и пароль. Вы можете войти в систему под собой или как “anonymous” (анонимно). Анонимные FTP-сайты являются очень популярными в качестве архивов с программным обеспечением. Например, чтобы загрузитьSlackware Linux через FTP, вы должны использовать анонимный FTP.

После подключения вы увидите приглашение ftp>. Для FTP существуют специальные команды, однако они очень похожи на другие стандартные команды системы. Ниже представлены некоторые основные команды и их действие:

Таблица 13-1. Команды ftp

Команда Действие
ls вывод списка файлов
cd <имя_каталога> смена каталога
bin установка двоичного режима передачи
ascii установка текстового режима передачи
get <имя_файла> загрузка файла
put <имя_файла> выгрузка файла
hash переключение индикатора статистики в виде знака решётки
tick переключение индикатора счётчика байтов
prom переключение интерактивного режима для загрузок
mget <маска> загрузка файла или группы файлов; допускается использование шаблонов
mput <маска> выгрузка файла или группы файлов; допускается использование шаблонов
quit выход с FTP-сервера

Вы также можете использовать некоторые из следующих команд, названия которых говорят сами за себя: chmod, delete, rename, rmdir. Чтобы получить полный список всех команд и их значения, просто наберите help или ? и вы получите на экране полный перечень.

FTP - это довольно простая в использовании программа, однако ей не хватает пользовательского интерфейса, использование которых стало уже практически стандартом на сегодняшний день. Страница руководства содержит описание опций командной строки ftp(1).

ftp> ls *.TXT
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
-rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
-rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
-rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
-rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
-rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
-rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
-rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
-rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
-rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
226 Transfer complete.
ftp> tick
Tick counter printing on (10240 bytes/tick increment).
ftp> get README81.TXT
local: README81.TXT remote: README81.TXT
200 PORT command successful.
150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
Bytes transferred: 12339
226 Transfer complete.
12339 bytes received in 0.208 secs (58 Kbytes/sec)

13.9.2. ncftp

ncftp(1) (произносится как "Nik-F-T-P") - это альтернатива традиционному ftp-клиенту, входящая в состав Slackware. Это всё ещё консольная программа, однако она имеет много преимуществ по сравнению с ftp:

По умолчанию ncftp пытается анонимно войти на указанный вами сервер. Вы можете заставить ncftp вывести приглашение для входа в систему с помощью опции “-u”. После входа в систему вы можете использовать те же команды, что и для ftp за тем исключением, что вы увидите более приятный интерфейс, который больше напоминает bash.

ncftp /pub/linux/slackware > cd slackware-current/
Please read the file README81.TXT
  it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago
CWD command successful.
ncftp ...ware/slackware-current > ls
BOOTING.TXT               FAQ.TXT                   bootdisks/
CHECKSUMS                 FILELIST.TXT              extra/
CHECKSUMS.asc             GPG-KEY                   isolinux/
CHECKSUMS.md5             PACKAGES.TXT              kernels/
CHECKSUMS.md5.asc         PRERELEASE_NOTES          pasture/
COPYING                   README81.TXT              rootdisks/
COPYRIGHT.TXT             SPEEKUP_DOCS.TXT          slackware/
CRYPTO_NOTICE.TXT         SPEEK_INSTALL.TXT         source/
CURRENT.WARNING           Slackware-HOWTO
ChangeLog.txt             UPGRADE.TXT
ncftp ...ware/slackware-current > get README81.TXT
README81.TXT:                                           12.29 kB  307.07 kB/s