Быстрое руководство к использованию ftp.
Стандартная ftp программа - настоящий ftp клиент. Она входит в большинство дистрибутивов Linux. Сначало появилась в 4.2BSD.
Скажем, вы хотите соединится с FTP сайтом metalab.unc.edu, чтобы получить последние исходные тексты ядра Linux.
В командной строке введите:
$ ftp metalab.unc.edu |
FTP программа попытается соединится с metalab.unc.edu. Другой способ сделать это - запустить ftp из командной строки без параметров, и использовать команду open с именем сайта в качестве аргумента:
$ ftp ftp> open metalab.unc.edu |
Когда вы соединитесь с FTP сайтом, система спросит ваш логин (нажмите Enter, и вы войдете под локальным именем, в данном случае под именем foo). Мы войдем как anonymous или ftp, чтобы получить доступ к общедоступному архиву.
220 helios.oit.unc.edu FTP server (Version wu-2.6.0(2) Wed Nov 17 14:44:12 EST 1999) ready. Name (metalab.unc.edu:foo): |
Далее, мы введем наш адрес электронной почты в качестве пароля (этого требуют большинство FTP сайтов).
331 Guest login ok, send your complete e-mail address as password. Password: |
После успешного входа, вам выдается следующая информация:
Remote system type is UNIX. (Удаленная система - UNIX) Using binary mode to transfer files. (Используется двоичный режим для передачи файлов) ftp> |
После входа на FTP сайт, ftp выдаст тип передачи файлов. В данном случае - двоичный (бинарный) тип передачи. Двоичный режим передачи файлов - передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только тектовых файлов. Вы можете вводить ascii или binary для переключения между режимами передачи.
Поскольку вы хотите получить исходные тексты ядра, оставьте двоичный режим передачи. Бинарный режим необходимо использовать для всех нетекстовых типов файлов - таких как графика, архивы, программы и т.п. Если сомневаетесь - используйте бинарный режим.
Введите команду ls, чтобы просмотреть список файлов. Команда ls выполняется на FTP сервере. Опции этой команды, которые вы можете использовать, отличаются на разных серверах. Большинство основных опций, в общем, везде доступны, смотрите страницы руководства (manpage) по ls для уточнения подробностей.
ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 33590 -r--r--r-- 1 root other 34348506 Dec 03 03:53 IAFA-LISTINGS lrwxrwxrwx 1 root other 7 Jul 15 1997 README -> WELCOME -rw-r--r-- 1 root other 890 Nov 15 13:11 WELCOME dr-xr-xr-x 2 root other 512 Jul 15 1997 bin dr-xr-xr-x 2 root other 512 Jul 15 1997 dev dr-xr-xr-x 2 root other 512 Jul 18 1997 etc drwxrwxrwx 11 ftp 20 4608 Nov 28 16:00 incoming lrwxrwxrwx 1 root other 13 Jun 04 1998 ls-lR -> IAFA-LISTINGS dr-xr-xr-x 17 root root 512 Jun 08 11:43 pub dr-xr-xr-x 3 root other 512 Jul 15 1997 unc dr-xr-xr-x 5 root other 512 Jul 15 1997 usr 226 Transfer complete. |
Если по команде ls выдается большой список файлов, вы можете использовать клавиши Shift-PageUp для прокрутки к началу списка. Это работает в консоли Linux, а также в xterm или rxvt.
На общедоступных FTP архивах, ресурсы обычно хранятся в каталоге /pub. На этом примере вы уже поняли, что исходники ядра находятся в каталоге /pub/Linux/kernel, так что введите следующее, чтобы войти в каталог:
ftp> cd pub/Linux/kernel 250-README for kernel 250- 250-What you'll find here: kernel sources and patches 250- 250- 250 CWD command successful. |
Вы видите сообщения, которые начинаются с "250", эти сообщения посылаются сервером. В данном случае, FTP сервер сконфигурирован, чтобы автоматически посылать вам файл README, когда вы входите в каталог.
Введите ls, и найдите файл, который хотите загрузить с FTP. Это linux-2.2.13.tar.gz. Введите следующую команду:
ftp> get linux-2.2.13.tar.gz local: linux-2.2.13.tar.gz remote: linux-2.2.13.tar.gz 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540 bytes). |
FTP программа начнет сохранять удаленный файл linux-2.2.13.tar.gz на локальный диск под именем linux-2.2.13.tar.gz
Если вы хотите сохранить файл под именем foo.tar.gz, вы должны ввести следующее:
ftp> get linux-2.2.13.tar.gz foo.tar.gz local: foo.tar.gz remote: linux-2.2.13.tar.gz 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540 bytes). |
Если вы хотите загрузить более одного файла за раз, используйте команду mget (multiple get). Вы можете использовать mget вместе со списком файлов, предназначенных для загрузки, разделенных запятыми, или использовать подстановочные знаки с командой mget. Например, команда:
ftp> mget linux* |
Получает все файлы, начинающиеся со строки "linux". Обычно, mget запрашивает вас относительно каждого файла перед тем, как загрузить его. Вы можете выключить это, используя команду prompt.
Допустим, вы написали программу и хотите закачать ее на сервер MetaLab. Сначала перейдите в каталог /incoming (большинство FTP серверов имеют этот каталог, обычно он называется incoming или uploads, туда можно поместить файлы), затем используйте команду put:
ftp> cd /incoming ftp> put foo.tar.gz local: foo.tar.gz remote: foo.tar.gz 200 PORT command successful. 150 Opening BINARY mode data connection for foo.tar.gz. 226 Transfer complete. 10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec) |
Вы можете использовать put, чтобы поместить на сервер несколько файлов одновременно. Есть возможность размещать локальные файлы на сервер под другими именами.
Что если файл foo.tar.gz не в текущей локальной директории? Переключите локальную директорию, используя команду lcd (local change directory):
ftp> lcd /home/foo/ Local directory now /home/foo |
FTP клиент поддерживает использование знака (!), чтобы исполнять локальные команды. Например, вывести список файлов текущей локальной директории:
ftp> !ls |
Так вы можете запускать любые команды, работающие в вашей системе. Пожалуйста, помните, что !cd не работает, поэтому существует команда lcd.
Было бы неплохо наблюдать процесс загрузки файла с FTP. Вы можете использовать команду hash для вывода метки хеширования, пока загружается файл:
ftp> hash Hash mark printing on (1024 bytes/hash mark). |
Программа ftp будет печатать знак диеза для каждых полученных 1024 байт данных.
Имеется опция tick. (но не во всех ftp программах)
ftp> tick Tick counter printing on (10240 bytes/tick increment). This will print something to this effect as you download a file: Bytes transferred: 11680 |
Существуют и другие команды ftp. Если у вас есть права, вы можете создавать каталоги на удаленном сервере, используя команду mkdir. Вы можете удалять файлы на сервере, используя команду delete, или rmdir, для удаления каталогов. Также, вы можете изменять права доступа к файлам, используя команду chmod.
Для получения большего количества информации, смотрите помощь в ftp программе (введите help (без параметров) для вывода списка всех команд или help <имя_команды> для помощи по конкретной команде). Прочитайте страницы руководства (введите man ftp в командной строке).