FTP (``File Transfer Protocol'') - Протокол Передачи Файлов,
это множество программ, используемых для передачи файлов между
системами в Internet. Большинство систем UNIX, VMS и MS-DOS в
Internet имеют программу, называемую ftp, которая используется
для передачи этих файлов и, если у вас есть выход в Internet,
лучший способ скачать программы для Linux, это с помощью ftp
. Это
приложение рассматривает основы использования ftp
. Разумеется,
ftp
имеет значительно больше функциональных возможностей, чем
рассмотрено здесь.
В конце этого приложения дан список FTP-серверов, где можно
найти программы для Linux. Кроме того, если у вас нет прямого
выхода в Internet, но вы можете обмениваться с Internet
электронной почтой, то ниже приводится и информация по
использованию сервиса ftpmail
.
Если вы используете системы MS-DOS, UNIX или VMS для
скачивания файлов из Internet, то для вас ftp - это программа,
управляемая командами. В то время как в других реализациях ftp,
таких как версия для Macintosh (называемая Fetch), имеются для
этого чудесные меню, которые самопонятны. Даже если вы не
используете командно-управляемое ftp
, информация, приводимая
здесь, все равно может быть полезной.
ftp можно использовать как для посылки файлов (upload), так
и для их получения (download) с других узлов (sites) Internet.
В большинстве случаев вы все-таки будете скачивать
программы. В Internet большое количество общедоступных архивных
FTP-серверов, т.е. машин, позволяющих любому войти на них по ftp
и скачать свободнораспространяемое (free)
sunsite.unc.edu
, который состоит из множества
Санов (Sun Microsystems), работает как (единый) один из самых
мощных серверов Linux. Кроме того, архивные FTP-сервера
осуществляют "зеркальное" отображение друг на друга, то есть,
размещенное на одном сервере, автоматически копируется на ряд
других серверов. так что не удивляйтесь, если увидите один и тот
же файл на многих различных архивных серверах.
Обратите внимание на то, что в "экранах", приводимых ниже, я лишь показываю наиболее существенную информацию, так что то, что вы можете увидеть на реальном экране, может отличаться.
Для запуска ftp
и установления связи с сервером просто
используйте команду
ftp <hostname>
где <hostname>
- имя сервера, с которым вы связываетесь.
Например, для связи с мифическим сервером shoop.vpizza.com
можно
использовать команду
ftp shoop.vpizza.com
Когда запускается ftp
, мы можем увидеть что-то вроде
Connected to shoop.vpizza.com.
220 Shoop.vpizza.com FTPD ready at 15 Dec 1992 08:20:42 EDT
Name (shoop.vpizza.com:mdw):
Здесь ftp
просит нас ввести имя (Name) пользователя, под
которым мы хотим войти на сервер shoop.vpizza.com
. По умолчанию
здесь "mdw
", что служит моим именем пользователя для FTP-входа.
Поскольку у меня нет account
shoop.vpizza.com
, я не могу войти под своим
именем. Вместо этого, чтобы войти на общедоступный FTP-сервер вы
входите как anonymous
(аноним) и сообщаете свой адрес e-mail
(если он у вас есть) в качестве пароля. То есть нам следует
ввести
Name (shoop.vpizza.com:mdw): anonymous
331-Guest login ok, send e-mail address as password.
Password: mdw@sunsite.unc.edu
230- Welcome to shoop.vpizza.com.
230- Virtual Pizza Delivery[tm]: Download pizza in 30 cycles
or less
230- or you get it FREE!
ftp>
Разумеется, вам следует сообщать свой e-mail адрес вместо
моего, он не будет отображаться на экране при вашем вводе
(поскольку он вводится под "вывеской" пароля). ftp
должен
позволить нам войти и мы будем иметь возможность скачивать
программы.
О'кей, мы вошли. ftp>
- это наша подсказка, теперь программа
ftp
ждет ввода команд.
Есть несколько основных команд, которые вам надо знать.
Прежде всего, команды
ls <file>
и
dir <file>
обе дают список файлов (где <file>
- необязательный
аргумент, указывающий, какой список вывести). Разница в том, что
ls
обычно выдает короткий список, а dir
- длинный (то есть с
большей информацией относительно размера файлов, даты модификации
и т.п.). Команда
cd <directory>
переместит "вас" в указанный каталог (точно также, как
команда cd
в UNIX или MS-DOS). Вы можете использовать команду
cdup
для перехода в родительский (находящийся выше) каталог
Команда
help <command>
даст вам подсказку по указанной команде ftp
(такой как ls
или cd
). Если команда не указана, ftp
выдаст список всех
доступных команд. Если мы введем теперь dir
, мы увидим
начальный каталог нашего местонахождения.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 1337
dr-xr-xr-x 2 root wheel 512 Aug 13 13:55 bin
drwxr-xr-x 2 root wheel 512 Aug 13 13:58 dev
drwxr-xr-x 2 root wheel 512 Jan 25 17:35 etc
drwxr-xr-x 19 root wheel 1024 Jan 27 21:39 pub
drwxrwx-wx 4 root ftp-admi 1024 Feb 6 22:10 uploads
drwxr-xr-x 3 root wheel 512 Mar 11 1992 usr
226 Transfer complete.
921 bytes received in 0.24 seconds (3.7 Kbytes/s)
ftp>
Каждая из этих строк представляет каталог, а не отдельный
файл, который мы можем скачать (на это указывает символ "d
" в
первой позиции списка). На большинстве архивных FTP-серверов
общедоступные программы находятся под каталогом /pub
, так
что давайте туда и пойдем.
ftp> cd pub
ftp> dir
200 PORT command successful.
150 ASCII data connection for /bin/ls (128.84.181.1,4525) (0
bytes).
total 846
-rw-r--r-- 1 root staff 1433 Jul 12 1988 README
-r--r--r-- 1 3807 staff 15586 May 13 1991 US-DOMAIN.TXT.2
-rw-r--r-- 1 539 staff 52664 Feb 20 1991 altenergy.avail
-r--r--r-- 1 65534 65534 56456 Dec 17 1990 ataxx.tar.Z
-rw-r--r-- 1 root other 2013041 Jul 3 1991 gesyps.tar.Z
-rw-r--r-- 1 432 staff 41831 Jan 30 1989 gnexe.arc
-rw-rw-rw- 1 615 staff 50315 Apr 16 1992 linpack.tar.Z
-r--r--r-- 1 root wheel 12168 Dec 25 1990 localtime.o
-rw-r--r-- 1 root staff 7035 Aug 27 1986 manualslist.tblms
drwxr-xr-x 2 2195 staff 512 Mar 10 00:48 mdw
-rw-r--r-- 1 root staff 5593 Jul 19 1988 t.out.h
226 ASCII Transfer complete.
2443 bytes received in 0.35 seconds (6.8 Kbytes/s)
ftp>
Здесь мы можем видеть ряд (интересных?) файлов, один из
которых называется README
, который нам следует скачать
(большинство FTP-серверов имеет файл README
в каталоге /pub).
Перед скачиванием файлов следует обратить внимание на
Включение хэш-меток осуществляется командой
ftp> hash
Hash mark printing on (8192 bytes/hash mark).
ftp>
README
).
Почему тип файла имеет значение? Только потому, что на некоторых системах (таких, как MS-DOS), определенные символы текстового файла, вроде возврата каретки, должны быть преобразованы так, чтобы файл был читаем. А при передаче бинарных файлов никаких преобразований не осуществляется - файл просто передается байт за байтом.
Команды bin
и ascii
используются для перевода соответственно
в бинарный режим передачи файлов и текстовый соответственно.
Если возникают сомнения - используйте бинарный режим. Если
вы попытаетесь передать бинарный файл в текстовом режиме,
файл будет испорчен при передаче до полной бесполезности.
(Это одна из популярнейших ошибок на начальных этапах
использования FTP). Но разумеется, вы можете использовать
текстовый режим для передачи нормальных текстовых файлов
(чьи имена часто заканчиваются на .txt
).
Например, мы скачиваем файл README который, скорее всего, текстовый так что мы используем команду
ftp> ascii
200 Type set to A.
ftp>
lcd
меняет местный (l-local)
каталог.
Например, чтобы установить местный каталог
/home/db/mdw/tmp
, используйте команду
ftp> lcd /home/db/mdw/tmp
Local directory now /home/db/mdw/tmp
ftp>
Теперь вы действительно готовы скачивать файлы. Команда
get <remote-name> <local-name>
используется именно для этого, где <remote-name>
имя файла
на удаленной машине, а <local-name>
- имя, которое вы хотите дать
файлу на вашей машине. <local-name>
- необязательный аргумент; по
умолчанию имя местного файла то же, что и у скачиваемого файла.
Но, если например вы скачиваете файл README
, и у вас уже есть
файл с именем README
в этом каталоге, вам
следует дать другое имя для <local-filename>
, чтобы не затереть
существующий. Например, для скачивания файла README
мы просто
используем
ftp> get README
200 PORT command successful.
150 ASCII data connection for README (128.84.181.1,4527) (1433
bytes).
#
226 ASCII Transfer complete.
local: README remote: README
1493 bytes received in 0.03 seconds (49 Kbytes/s)
ftp>
Для прекращения FTP-сессии просто используйте команду
quit
Команда
close
может использоваться для закрытия связи с данным
FTP-сервером; команда open
может быть после этого использована
для начала сессии с другим сервером (без выхода из программы
FTP).
ftp> close
221 Goodbye.
ftp> quit
ftpmail
- это сервис, который позволяет получить файлы из
FTP-архива через электронную почту Internet. Если у вас нет
прямого выхода на Internet, но есть возможность посылать письма в
Internet (например, из CompuServe), ftpmail - это хороший способ
получить файлы из архивов FTP-серверов. К сожалению, ftpmail
может быть медленным, особенно при пересылке больших об'емов.
Перед попыткой скачать большое число программ с использованием
ftpmail
, убедитесь, что область спуллинга вашей mail будет
способна справиться с такими объемами входного трафика. Во многих
системах есть ограничения на объем приходящей электронной почты
sunsite.unc.edu
- один из главных архивных Linux
FTP-серверов, имеет также ftpmail
-сервер. Для того, чтобы
воспользоваться этим сервисом, пошлите письмо по адресу:
ftpmail@sunsite.unc.edu
А в письме только одно слово
help
В результате вы получите в ответ список команд ftpmail
и
краткую инструкцию по пользованию системой.
Например, для получения списка файлов sunsite.unc.edu, пошлите письмо по вышеуказанному адресу со следующим текстом:
open sunsite.unc.edu
cd /pub/Linux
dir
quit
Вы можете использовать ftpmail
для связи с архивом
FTP-сервера; и это не ограничивается лишь sunsite.unc.edu
. В
следующем разделе приводится список Linux FTP-архивов.
Таблица C.1 - это список наиболее известных архивных FTP-серверов, которые хранят пакеты программ для Linux. Имейте в виду, что многие другие сервера имеют зеркальные отображения многих из этих архивов, так что скорее всего вы найдете нужное вам на серверах, отсутствующих в этом списке.
tsx-11.mit.edu
, sunsite.unc.edu
и nic.funet.fi
- это "дом
родной" для Linux, где вы можете найти большинство новых
программ. Большинство других серверов из списка зеркально
отображают некоторую комбинацию из этих трех. Для уменьшения
сетевого трафика выбирайте сервер, который ближе к вам
географически.
Имя сервера IP адрес Каталог
tsx-11.mit.edu 18.172.1.2 /pub/linux
sunsite.unc.edu 152.2.22.81 /pub/Linux
nic.funet.fi 128.214.6.100 /pub/OS/Linux
ftp.mcc.ac.uk 130.88.200.7 /pub/linux
fgb1.fgb.mw.tu-muenchen.de 129.187.200.1 /pub/linux
ftp.informatik.tu-muenchen.de 131.159.0.110 /pub/Linux
ftp.dfv.rwth-aachen.de 137.226.4.105 /pub/linux
ftp.informatik.rwth-aachen.de 137.226.112.172 /pub/Linux
ftp.ibp.fr 132.227.60.2 /pub/linux
kirk.bu.oz.au 131.244.1.1 /pub/OS/Linux
ftp.uu.net 137.39.1.9 /systems/unix/linux
wuarchive.wustl.edu 128.252.135.4 /systems/linux
ftp.win.tue.nl 131.155.70.100 /pub/linux
ftp.ibr.cs.tu-bs.de 134.169.34.15 /pub/os/linux
ftp.denet.dk 129.142.6.74 /pub/OS/linux
Таблица C.1: FTP-серверы Linux