Как использовать пассивный режим FTP в командной строке Windows? Доступ к FTP ресурсам из командной строки

ИМЯ
ftp - протокол передачи файлов

СИНТАКСИС

Ftp [-v] [-d] [-i] [-n] [-U] [-p] [-g]

ОПИСАНИЕ
Программа ftp позволяет передавать файлы на удаленный компьютер или получать их оттуда, и работает с файлами и каталогами удаленного компьютера.

РАБОТА С FTP.
Чтобы использовать программу ftp, вам нужно открыть связь между вашей и удаленной машиной, куда или откуда вы хотите переместить файл. Эта программа позволяет вам иметь несколько связей одновременно, хотя вы можете давать команды, которые воздействуют только на одну связь. Многомашинная связь позволяет вам связаться с несколькими машинами за один сеанс работы ftp. Вам нет необходимости вновь регистрироваться на другой машине, когда вы хотите сменить машину для связи. Связь, которая используется в данный момент, называется текущей связью.

Виды записи файла для передачи в ftp.
Программа ftp позволяет использовать два вида записи: ASCII или двоичный. Используйте ASCII для текстовых файлов. Двоичный вид используется для двоичных данных, которые должны представлять собой непрерывную последовательность бит. ASCII задается по умолчанию. Двоичный вид может быть использован для некоторых специальных файлов, например программ, картинок, архивов.

Вызов ftp.
Чтобы вызвать ftp из оболочки UNIX, введите команду ftp. Когда команда это выполнено, на вашем экране появится приглашение этой команды. Оно выглядит следующим образом:

Ftp> Вы можете указать имя машины, с которой хотите связаться, хотя это необязательно. Следующий пример показывает как записывается имя машины ftp.botik.ru: $ ftp ftp.botik.ru Это эквивалентно использованию команды ftp open для установления связи с машиной, которую вы назвали. Вы можете также вызвать ftp без имени машины, например: $ ftp Если вы не установили имя машины при вызове ftp, вы должны открыть связь с этой машиной в ftp. Это делается используя ftp open команду до того как вы начали передавать файлы. Для более детальной информации по этому вопросу смотрите раздел "Описание ftp команд" дальше в этой главе.

Опции ftp.
Дополнительно при вызове ftp, вы можете задать некоторые опции этой команды. Эти опции помещаются после названия команды ftp, но до имени машины, если оно указывается. Каждая опция состоит из дефиса (-) и одной буквы, например: -v. Каждая опция имеет соответствующую команду того же имени, которая может быть использована внутри ftp. Вам следует различать использование опций и соответствующих ftp команд.

-v Заставляет ftp работать в многословном режиме. В этом режиме сообщения ftp, посланные удаленной машиной в ftp появляются на экране вашего дисплея. Кроме того, если вы используете этот режим после завершения передачи каждого файла появляется статистическое сообщение об этом. Этот режим устанавливается по умолчанию, если ftp выполняется интерактивно. Если ftp выполняется в командном режиме, многословный режим выключен, тогда его включает опция -v. Вы можете включить этот режим внутри ftp с помощью команды verbose.
-d Заставляет ftp работать в режиме отладки. В этом режиме сообщения ftp, посланные ftp в удаленную машину, отображаются на экране вашего дисплея. Если вы не используете эту опцию, информация не отображается. Вы можете также вызвать этот режим в ftp, используя команду debug.
-n Предотвращает использование ftp авторегистрации, во время связи с удаленной машиной. Когда установлен режим авторегистрации, ftp идентифицирует вас автоматически на удаленной машине и регистрирует вас на этой машине. (Смотрите раздел "Использование файла.netrc файла для автоматической регистрации" далее в этом разделе.) Если вы используете -n опцию для отключения автоматической регистрации, вы должны будете использовать команду user, чтобы вручную зарегистрироваться на удаленной машине.
-g Является причиной лишения имен файлов UNIX их расширений, таких как универсальное (*). Если вы не используете эту опцию, ftp расширяет имена файлов с помощью универсального расширения в списке файлов. Вместо этой опции можно использовать команду glob.
Ниже даны примеры использования ftp опций: $ ftp -v -d ftp.botik.ru Вышеприведенная команда вызывает ftp в многословном и отладочном режиме и побуждает ftp открыть связь с удаленной машиной по имени ftp.botik.ru. В отладочном режиме команды, посылаемые к удаленной машине, изображаются на вашем экране. Многословный режим изображает ответы получателя и статистические сведения о полученных байтах информации. $ ftp -vd Вышеприведенная команда вызывает ftp в многословном и отладочном режиме, но не открывает связи с удаленной машиной. $ ftp -ng ftp.botik.ru Вышеприведенная команда вызывает ftp c отменой авторегистрации и универсального расширения, и заставляет открыть связь с удаленной машиной ftp.botik.ru. $ ftp -n -d Вышеприведенная команда вызывает ftp с отменой авторегистрации и универсального расширения, не открывая связи с какой-либо машиной.

Использование файла.netrc для автоматической регистрации.
Вы можете создать файл по имени.netrc в вашем домашнем каталоге в качестве дополнительного удобства. Этот файл содержит строки-элементы регистрационных данных для каждой машины, которая вам нужна для автоматической связи. Когда вы вызываете ftp, указывая машину, т. е. когда вы одновременно с вызовом открываете связь с машиной, ftp читает файл.netrc. Если есть строка-элемент для этой машины, то ftp автоматически соединяет вашу машину с этой удаленной машиной. Если вы открыли связь в многословном режиме, то вы увидите как это происходит. Формат файла состоит из отдельных полей, представленных ключевыми полями:

Machine имя login имя password пароль где machine, login, password это ключевые слова, за которыми следуют символьные данные, необходимые для регистрации:

machine Имя узла.
login Пользовательское имя для регистрации.
password Пароль пользователя на данном узле. Пароль пишется в нормальной незашифрованной форме текста. Если вы включили ваш пароль в файл.netrc, то вы должны запретить чтение/запись этого файла для вашей группы и всех остальных пользователей, чтобы предотвратить открытие вашего пароля. В противном случае ftp не позволит вам использовать этот файл. Для дополнительной информации по файловым разрешениям смотрите документацию по команде chmod . В записи своего пароля в файл есть определенный риск. Вы должны взвесить все условия безопасности. Спросите своего администратора обо всех особенностях до использования этого файла.
Если вы не введете пароль в файл, ftp спросит вас о нем. Вот пример записи в файле.netrc: machine admin login guido password open где: admin - имя узла, guido - пользователь, который регистрируется в машине admin, open - пароль пользователя guido.

Ограничение для ftp команд.
Есть несколько расширенных команд, предоставляющих дополнительные удобства пользователю. Но не все серверы ftp их понимают. Команды, использование которых будет описано позже в этой главе, имеют определенные ограничения. Программа ftp может предоставить список поддерживаемых команд. Для получения такой информации нужно использовать команду после установления связи с удаленной машиной.

Описание команд ftp.
Когда на экране появляется приглашение ftp, вы можете вводить одну из команд, описанных ниже в этом разделе. После выполнения команды снова появится приглашение ftp. В зависимости от того, какой режим установлен: многословный или отладочный могут появится дополнительные сообщения. После каждой команды нужно нажимать Enter. Выполнение команды не начнется пока вы не нажмете Enter. Если вы сделали ошибку при наборе команды, вы можете использовать клавишу BACKSPACE для редактирования текста.

Вам нет необходимости вводить имя команды полностью, можно вводить определенное количество символов, достаточное для идентификации. В большинстве случаев это один или два символа от названия команды ftp. Однако, лучше не лениться и набирать команды полностью. Дело в том, что клиент ftp на сервере joker может быть изменен системным администратором. Не все клиенты понимают краткие команды. Например, раньше их можно было использовать. Но в один прекрасный день, программу ftp заменили. Поставили более продвинутую версию. Чем она продвинута я не знаю, но вот короткие команды она не понимает.

! Эта команда приостанавливает ftp и вызывает командный язык (shell) на локальной машине. Любой(ые) символ(ы) после восклицательного знака воспринимаются и выполняются как shell команды. Затем можно вернуться в ftp, выйдя из shell. Все ftp опции и связанные удаленные машины возвращаются в то же самое состояние, которое было до появления этой команды. Если команда shell напечатана в той же строке, где и!, то выполняется только эта команда. После выполнения команды программа ftp возвращается в командный режим.
append Команда append заставляет ftp добавлять содержимое локального файла в конец файла удаленной машины, с которой вы соединены в данный момент. Когда вы вызываете эту команду, вы можете указать какой файл к какому добавить, например: ftp> append имя_локального_файла имя_файла_удаленной_машины Вы можете также использовать только имя команды, а затем получить запрос об имени файлов, например: ftp> append (local-file) имя_локального_файла (remote-file) имя_файла_удаленной_машины
ascii Эта команда побуждает ftp преобразовывать файлы в ASCII код. По умолчанию код всегда ASCII.
bell Эта команда приводит к тому, что на вашем терминале появляется сигнал после завершения передачи каждого файла. Чтобы прекратить подачу сигнала, нужно снова набрать эту команду ftp.
binary Эта команда побуждает ftp передавать файл в двоичном коде.
quit По этой команде осуществляется выход из ftp. Эта команда закрывает все открытые связи.
cd По этой команде имя каталога на удаленной машине заменяется на новое. Вы можете записать новое имя, когда вызываете команду, как показано в примере: ftp> cd /usr/bin Вы можете использовать только имя команды ftp, тогда машина запросит имя нового каталога, например: ftp> cd (remote-directory) /usr/bin
close По этой команде закрывается текущая связь. Однако, не происходит выхода из ftp. Вы можете создать другую связь.
debug Эта команда включает и выключает отладочный режим. Если режим включается, то об этом появляется сообщение на вашем дисплее, при выключении сообщений нет.
verbose Эта команда включает и выключает многословный режим. Если режим включается, то об этом появляется сообщение на вашем дисплее, при выключении сообщений нет.
delete По этой команде удаляется файл в удаленной машине, к которой вы подключены в данный момент. Вы можете указать имя файла, который нужно удалить, при вызове ftp команды: ftp> delete имя файла для удаления Если вам больше нравится, то вы можете не указывать имя при вызове команды ftp. Тогда машина вас запросит об имени, например: ftp> delete (remote-file) имя файла для удаления
dir Эта команда выдаст вам оглавление каталога на удаленной машине, к которой вы подключены. Вы можете задать имя каталога, который нужно распечатать, при вызове команды ftp. Например: ftp> dir /usr/bin Если вы не указали имя каталога, то будет распечатан текущий каталог на удаленной машине. Вы можете также побудить ftp занести результаты выполнения команды в файл до того как он появится на экране. Делается это следующим образом: ftp> dir /usr/bin printfile Вы должны указать имя каталога до имени выходного файла (здесь printfile). Таким образом, если вы хотите напечатать текущий каталог в файл, называемый printfile, выполните следующее: ftp> dir . printfile где "." означает текущий каталог.
get Эта команда копирует файл из удаленной машины, к которой вы в данный момент подсоединены. Этот файл копируется в ваш каталог на сервере. Используйте команду mget для копирования нескольких файлов одновременно. Когда вы вызываете эту команду, вы можете указать имя файла на удаленной машине и имя в вашем каталоге, в который вы скопируете файл. Например: ftp> get имя_файла_удаленной_машины имя_файла_вашей_машины Если вы просто укажете имя файла удаленной машины, который нужно скопировать, то файл на вашей машине будет иметь то же самое имя. Пример: ftp> get имя_удаленной_машины Вы можете записать только команду ftp get. Тогда программа ftp запросит вас об имени файла,например: ftp> get (remote-file) имя файла удаленной машины (local-file) имя файла вашей машины
glob Эта команда заставляет ftp запрещать расширение имен файлов UNIX, такое универсальное, как "*". Эта команда служит и для запрещения и для разрешения расширения таким образом что, если задать ее повторно, то расширение вновь будет разрешено. После разрешения расширения ftp ко всем именам файлов добавит расширение при выводе списка файлов.
hash Эта команда побуждает ftp выдавать на экране символ "#" после каждого блока данных, который посылается удаленной машиной. Размер блоков данных может быть различным в зависимости от версии программного обеспечения. На сегодняшний день на машине joker он 1024 байтам. После ввода этой команды будет напечатан текущий размер блока данных. Эта команда включает и выключает выдачу символа "#" на экран ее при повторном наборе. Таким образом, вы сможете оценить скорость передачи файла.
help Эта команда выдает на экран информацию о работе ftp. Если после help задать имя команды, то появится информация об этой команде. Если набрать просто help, то появится список команд ftp.
lcd Эта команда изменяет рабочий каталог, используемый ftp, на вашей машине. Вы можете задать имя каталога, который вам нужен как рабочий, например: ftp> lcd /home/student/имя_вашего_каталог Если вы не задали имя каталога, то будет использоваться текущий каталог.
ls Эта команда распечатывает аббревиатурный список содержания каталога удаленной машины, с которой вы связаны в данный момент. Вы можете задать имя каталога, который вы хотите распечатать. Например: ftp> ls /usr/bin Если вы не задали имя, будет распечатан текущий каталог. Можно задать, чтобы результаты выполнения команды были помещены в файл до появления их на дисплее. Это делается, если указать имя файла на вашей машине, куда следует поместить листинг каталога, например: ftp> ls /usr/bin printfile Имя каталога нужно задать до вывода файла (здесь printfile). Например, если вы хотите распечатать текущий каталог в файл с именем printfile: ftp> ls . printfile где "." ставится, чтобы подчеркнуть, что каталог текущий.
mdelete Эта команда удаляет список файлов на удаленной машине, с которой вы связаны в данный момент. Вы можете задать имена файлов для удаления при вызове команды. Например: ftp> mdelete имя_1файла_удаленной_машины имя_2файла... В противном случае вы можете просто использовать имя команды. Программа ftp запросит вас об имени(ах): ftp> mdelete (remote-files) имя_1файла имя_2файла...
mdir По этой команде выдается список листинг каталога удаленной машины и результат помещается в файл в вашем каталоге. Вы можете задать список файлов удаленной машины и имя файла вашей машины, куда поместить результат при вызове команды. Например: ftp> mdir имя_1файла_удаленной_машины... printfile Заметьте, что последнее имя - это имя файла в вашем каталоге. Возможно просто использовать имя команды. Тогда программа ftp запросит у вас имя файлов, например: ftp> mdir (remote-files) имя_1файла_удаленной_машины... printfile local-file printfile? y
mget Эта команда копирования нескольких файлов с удаленной машины, к которой вы подключены в данный момент в ваш каталог. Файлы после копирования будут иметь те же имена, что и на удаленной машине. Вы можете указать список файлов для копирования: ftp> mget имя_1файла_удаленной_машины имя_2файла... Если вы не задали имена файлов при вызове команды, программа ftp запросит вас о них: ftp> mget (remote-files) имя_1файла_удаленной_машины имя_2файла...
mkdir Эта команда создает каталог на удаленной машине, к которой вы в данный момент подключаетесь. Вы можете задать имя каталога при вызове команды, например: ftp> mkdir /u/mydir Если вы не задали имя, ftp запросит вас о нем, например: ftp> mkdir (directory-name) имя_каталога Разумеется, для выполнения этой команды вы должны иметь право на запись на удаленной машине.
mls Эта команда получает аббревиатурный список группы файлов текущего каталога на удаленной машине и помещает результат в файл на вашей машине. Вы можете задать список файлов удаленной машины и файл вашей машины, куда поместить результат при вызове команды, например: ftp> mls имя_1файла_удаленной_машины... printfile Вы можете не указывать имена при вызове команды, и тогда программа запросит вас о них: ftp> mls (remote-files) имя_1файла_удаленной_машины... printfile local-file printfile? y
mput Эта команда копирует один или более файлов из вашего каталога на удаленную машину, с которой вы связаны в данный момент. На удаленной машине файлы будут иметь те же имена. Разумеется, для выполнения этой команды вы должны иметь право на запись на удаленной машине. Вы можете задать список фалов при вызове команды, например: ftp> mput 1файл_вашего_каталога 2файл_вашей_машины... Если вы не указали имена, программа ftp вас об этом спросит: ftp> mput (local-files) имя_1файла_вашего_каталога имя_2файла...
nmap Используйте эту команду для установки и отмены механизма преобразования имен файлов. Эта команда полезна при связи с UNIX-несовместимыми машинами в которых используется другой способ именования файлов. Например, серверов на базе Apple Macintosh. Переименовывание файлов локальной машины производится с помощью get и mget команд, а удаленной машины с помощью put и mput команд.
ntrans Используйте эту команду для включения и выключения механизма трансляции символов имени файла. Эта команда полезна при связи с UNIX-несовместимой удаленной машиной, где применяется другой способ именования файлов. Например, серверов на базе Apple Macintosh. Трансляция имен файлов локальной машины производится с помощью get и mget команд, а удаленной машины с помощью put и mput команд.
open Эта команда устанавливает связь с удаленной машиной, которая предполагается для передачи файлов. При вызове команды вы можете указать имя машины, например: ftp> open ftp.botik.ru Если имя не указано, программа запросит его: ftp> open (to) имя машины Если вы указали имя машины при вызове команды, вы можете также указать номер порта на удаленной машине. Если указан порт, то ftp откроет связь через этот порт, если он предпочтительнее того, что задается по умолчанию. Изменения порта делаются в том случае, если вас об этом поросят или это задается системным администратором. Если порт не задан, то программа его не запрашивает.
prompt Эта команда предотвращает ваш запрос к ftp о разрешении на переход между файлами в многофайловых командах, таких как mget. Эта команда подключается и отключается при повторном наборе.
put Эта команда перемещает файл из вашей машины в удаленную машину, к которой вы в данный момент подключены. Для передачи нескольких файлов одновременно используйте команду mput. Вы можете задать имя файла вашей машины и имя файла удаленной машины при вызове команды ftp, например: ftp> put имя_вашего_файла имя_файла_удаленной_машины или ftp> put имя_вашего_файла Разумеется, для выполнения этой команды вы должны иметь право на запись на удаленной машине. Если вы не указали имя файлов(а), то программа вас о них запросит, например: ftp> put (local-file) имя_вашего_файла (remote-file) имя_файла_удаленной_машины Если вы не укажете имя файла удаленной машины, то команда put создаст файл на удаленной машине под тем же именем, что и на вашей машине.
pwd Эта команда выводит имя текущего рабочего каталога на удаленной машине, с которой вы связаны в данный момент.
bye Команда аналогична команде quit, о которой говорилось выше.
quote Команда заставляет ftp посылать параметры, которые вы вводите в машину, посылать к удаленной машине для выполнения. Параметры - это ftp команды и другие параметры. Те команды, что ftp поддерживает, могут быть отображены на экране с помощью команды remotehelp. Вы можете ввести эту команду при вызове программы ftp, например: ftp> quote NLST Если вы указали только имя команды, ftp спросит вас о командной строке, которую нужно использовать, например: ftp> quote (command-line to send) NLST Эту команду следует использовать только по совету вашего системного администратора.
recv Эта команда аналогична команде get, описанной выше.
remotehelp Эта команда запрашивает помощь ftp на удаленной машине, с которой вы связаны в данный момент. Эта информация сообщает о том какие команды поддерживает удаленная машина.
rename Эта команда переименовывает файл на удаленной машине, с которой вы связаны в текущий момент. При вызове команды вы можете использовать имена файлов, например: ftp> rename старое_имя_файла новое_имя_файла Если вы использовали только имя команды, то ftp запросит имена файлов: ftp> rename (from-name) старое_имя_файла (to-name) новое_имя_файла Разумеется, для выполнения этой команды вы должны иметь право на запись на удаленной машине.
rmdir Эта команда удаляет каталог на удаленной машине, с которой вы связаны в данный момент. Вы можете задать имя каталога, который следует удалить, при вызове команды, например: ftp> rmdir /u/mydir или вы можете не задавать имя при вызове команды, и машина запросит вас о нем: ftp> rmdir (directory-name) /u/mydir Эта команда не всегда поддерживается удаленной машиной. Разумеется, для ее выполнения вы должны иметь право на запись на удаленной машине.
send Эта команда аналогична команде put, описанной выше.
sendport Эта команда заставляет ftp запрещать возможность задания порта локальной машины для данных удаленной машины. Эта команда может подключаться и отключаться ее повторным набором. При вызове ftp по умолчанию задается определенный порт. Эту команду следует использовать по совету вашего системного администратора. Как правило, она нужна только при работе с каким-либо "неправильным" сервером ftp, который несовместим с вашей программой-клиентом.
status Это команда заставляет ftp изображать свой текущий статус на вашем терминале. Статус включает режимы, которые выбраны командами bell, hash, glob, port, type.
type Эта команда устанавливает в каком виде передается файл. Допустимы коды ASCII и двоичный. Эта команда аналогична командам ascii и binary. Если вы не указали тип при вызове команды, то устанавливается ASCII.
user Эта команда позволяет вам идентифицировать самого себя на удаленной машине при установлении связи. Эта авторегистрация разрешена с опцией -n при вызове ftp. В этом случае данная команда не нужна. Если автоматическая регистрация запрещена, то используйте эту команду для собственной регистрации и идентификации на удаленной машине. Удаленной машине нужно сообщить три вида информации о том, кто вы: регистрационное имя, пароль и имя ресурса. Имя пользователя требуется для всех машин, пароль и имя ресурса требуются только для некоторых систем. Вы можете ввести всю эту информацию при вызове команды user, например: ftp> user mike cat myaccount Вы можете не указывать всю эту информацию при вызове команды. Тогда программа вас о ней запросит, например: ftp> user (usename) mike(имя пользователя) password: Account: myaccount(имя ресурса) Заметьте, что ваш пароль не отображается при его наборе для защиты вашей информации. Если вы не набрали пароль или имя ресурса, то запроса о них не будет.
verbose Эта команда заставляет ftp запрещать многословный режим. Эта команда включается и выключается при повторном наборе. В многословном режиме ftp протокольные сообщения, посланные удаленной машиной появляются на вашем терминале. Кроме того, в этом режиме отображается статистика после передачи каждого файла. Если этот режим запрещен, то данная информация не изображается.
? Другое название команды help.

Примеры работы ftp.
Этот раздел иллюстрирует как можно использовать ftp. Ниже даны три примера. В этих примерах используются две машины, локальная машина с именем HERE и удаленная машина с именем THERE.

Описание 1 примера.
Этот пример показывает использование ftp для посылки и приема файлов. Команда ftp вызывается с именем главной машины и происходит автоматическая регистрация пользователя на другой машине, т.к. не используется опция -n.

Многословный режим запрещен использованием команды verbose. Пользователь затем изменяет рабочий каталог на удаленной машине на /etc каталог. Т.к. нет опции -d и есть команда verbose, многословный режим запрещен и никаких сообщений, кроме приглашение ftp, не появляется.

Пользователь, используя команду ls, получает аббревиатурный листинг каталога /etc машины THERE. команда ftp выдает три файла в каталоге /etc. Команда get passwd затем копирует файл passwd с машины THERE в машину HERE. Файл по имени passwd создается в машине HERE, если было указано имя машины.

Команда put используется, чтобы скопировать файл по имени wall из текущего рабочего каталога локальной машины (HERE) в каталог /etc удаленной машины (THERE). Этот файл копируется с тем же именем, т. к. свое имя не было указано. После окончания передачи, появляется листинг /etc, в котором уже четыре файла, включая wall, который был только что скопирован с машины HERE.

Затем используется команда bye, чтобы вернуться в оболочку операционной системы на локальной машине HERE.

$ ftp THERE Connected to THERE 220 THERE FTP server (Version 4.160 #1) ready Name (THERE:stevea): Password (THERE:stevea): 331 Password required for stevea. 230 User stevea logged in. ftp> verbose Verbose mode off. ftp> cd /etc ftp> ls passwd volcopy whodo ftp> get paswd ftp>put wall ftp> ls passwd volcopy wall whodo ftp> bye $ Описание 2 примера.
Этот пример иллюстрирует экранные изображения, которые можно получить, используя несколько опций ftp. После вызова ftp c именем удаленной главной машины, пользователь вызывает команду, которая позволит вернуть режим отладки. После этого команда ftp выдает сообщения на экран, что свидетельствует о разрешении данной опции. Пользователь затем заменяет рабочий каталог на удаленной машине на /etc. Т.к. присутствуют отладочный и многословный режимы, на экране будут появляться сообщения о посылке команд к удаленной машине (--> CWD/etc) и ответы, полученные с удаленной машины (250 CWD command successful - команда прошла успешно). Заметьте, что cd команда, которая имеет такую же форму, как команда изменения каталога в UNIX, посылается в виде CDW команды (изменение рабочего каталога на удаленной машине). Эта команда применяется ftp вместо cd, чтобы она работала независимо от системной команды.

Следом за cd командой пользователь ставит pwd команду, чтобы подтвердить изменение рабочего каталога. Команды ftp будут изображать на вашем экране сообщения, посылаемые между вашей (локальной) и удаленной машиной, а затем появится текущий рабочий каталог на удаленной машине. Затем пользователь набирает hash опцию, на что появляется сообщение, что данная опция разрешена. Команда get wall myfile приказывает ftp восстановить файл wall и поместить его в файл myfile в текущем рабочем каталоге на вашей машине. Команда ftp выдаст сообщения, посылаемые между локальной и удаленной машинами о начале передачи и затем печатает hash метку для каждого блока, полученной информации. После завершения передачи на экране появляется статистика, в которой время, потребовавшееся для передачи, и дата передачи файла. После получения файла пользователь закрывает связь командой close и выходит из ftp командой bye.

$ ftp THERE Connected to THERE 220 THERE FTP server (Version 4.160 #1) ready Name (THERE:stevea): Password (THERE:stevea): 331 Password required for stevea. ftp> debug Debugging on (debug = 1) ftp> cd /etc ---> CDW /etc 200 CDW command okay. ftp> pwd ---> PWD 251 ftp> hash Hash mark printing on (1024 bytes/hash mark). ftp> get wall mefile ---> PORT 3,20,0,2,4,51 200 PORT command okay. ---> RETR wall 150 Opening data connection for wall (3.20.0.2.1075)(24384bytes #######################. 226 Transfer complete. 24550 bytes received in 12.00 seconds (2 Kbytes/s) ftp> close ---> QUIT 221 Goodbye. ftp> bye $

Все мы знаем сочетание буковок FTP, которое расшифровывается как File Transfer Protocol. Старая, но до сих используемая технология передачи файлов между двумя компьютерами с использованием TCP/IP сети.

Большинство из нас пользуется для работы с этим протоколом какими-либо утилитами или модулями файловых менеджеров. Но давайте представим себе ситуацию, когда нужно получить доступ к FTP-серверу через командную строку. Никаких панелей со списком файлов и кнопочками "Копировать" и "Удалить" там у Вас не будет. (Кстати, я часто именно через командную строку лажу - мне так просто даже быстрее - если приходится что-то сделать или проверить FTP.)

Итак, команда для работы с FTP как в Windows, так и в Unix (включая Linux Debian, CentOS, ubuntu, rhel, FreeBSD и т.д.) одинаковая - так и называется - "ftp".

Просто подсоединиться к определенному серверу - синтаксис тоже отличаться не будет:


А вот хитрости типа автологина и автоматического принятия или отсылки файлов - у разных ОС немного свои и мы здесь их разбирать не будем. Зато разберем - что же через командрую строку все-же сделать можно в самой сессии - и сами команды, конечно.

Итак, начнем. В этой памятке приведены самые часто используемые команды, которые позволят Вам свободно общаться с любым сервером с любым набором опций.

Команды

Присоединиться к указанному серверу.

ftp> open 192.168.0.1


При этом сервер Вас спросит логин и пароль.

CLOSE или DISCONNECT

Закрыть соединение с текущим FTP сервером.

Закрыть соединение и выйти из утилиты FTP.

Залогиниться на данном сервере под указанным пользователем (Вы должны быть уже подключены).

ftp> user myusername


где вместо "myusername" подставьте имя пользователя, под которым логинитесь. FTP-сервер Вас спросит пароль для этого пользователя перед тем, как пустить.

LS или DIR

Показать список файлов и директорий в текущей папке на сервере.

Выгрузить список файлов из нескольких директорий в файл на Ваш компьютер.

ftp> mls dir1 dir2 dir3 mylocalfile.txt

Перейти в указанную папку на сервере.

ftp> cd ../another/folder


Частный случай этой команды: CDUP - перейти в родительскую директорию - то же самое, что и "CD ..":

Перейти у указанную папку на Вашем компьютере.

ftp> cd /home/myusername/ftp

Показать текущий путь (текущую папку) на FTP сервере.

Загрузить с FTP сервера в текущую папку Вашего компьютера указанный файл.

ftp> get myftpfile.txt

Загрузить несколько файлов в текущую папку Вашего компьютера с сервера FTP.

ftp> mget file1.txt file2.txt
mget file1.txt? y
mget file2.txt? y

Загрузить с сервера FTP на Ваш компьютер указанный файл только если Ваш файл старее (т.е. удаленный файл свежее).

ftp> newer myfile1 myfile1


Здесь первый аргумент - имя файла на сервере, а второй аргумент - имя файла на Вашем компьютере.

PUT или SEND

Загрузить на FTP сервер указанный файл с Вашего компьютера.

ftp> put mylocalfile.txt

Загрузить на сервер несколько файлов с Вашего компьютера.

ftp> mput myfile1.txt myfile2.txt
mput myfile1.txt? y
mput myfile2.txt? y

Удалить указанный файл на сервере.

ftp> delete remotefile.txt

Удалить несколько файлов на сервере.

ftp> mdelete file1 file2

Создать директорию на сервере.

ftp> mkdir mynewdir

Удалить директорию на сервере

ftp> rmdir mydir

Вот основные команды. Их, конечно, больше, но именно этот набор позволит Вам успешно работать с любым FTP сервером через командную строку.

Больше Вы, как всегда, можете узнать из справки. Для этого наберите "HELP" в командной строке FTP и получите список поддерживаемых директив.

Пример сессии FTP

Вот пример короткой FTP сессии, в которой мы подключаемся к серверу, создаем папку "newfiles" и заливаем в эту папку файл "binfile.bin".

И задумался: а все ли знают, что для работы с FTP-хранилищами вполне достаточно штатных инструментов Windows? В этой статье я опишу три простых метода передачи файлов по FTP на примере . Те же приемы действуют и в . Вам понадобятся всего лишь , Проводник и командная строка.

Способ первый: Internet Explorer 8

Любому пользователю Интернета знакомы HTTP-адреса для доступа к веб-сайтам, которые вводятся в адресной строке браузера - например, . Адреса для доступа к FTP-серверам строятся по такому же принципу: .

Введите в адресной строке адрес общедоступного FTP-хранилища, например, Microsoft (рис. A) и нажмите . В случае успешного подключения вы увидите корневой каталог. Для доступа к подкаталогам и файлам нажмите на основном каталоге. Чтобы загрузить файл, нажмите на нем правой кнопкой мыши и выберите опцию «Сохранить объект как» (Save Target As).

Как видите, на сервере хранятся все статьи базы данных, исправления, обновления, утилиты и документация Microsoft, только представлены они в виде списка с датами. Подробные сведения о FTP-хранилище содержатся в файлах «readme.txt».

Рисунок A. FTP-сервер Microsoft - вид из Internet Explorer 8.

Обратите внимание: для успешного подключения к FTP-серверу с помощью IE должны быть включены опции «Разрешить просмотр FTP-папок (за пределами Internet Explorer)» (Enable FTP folder view (outside of Internet Explorer)) и «Использовать пассивный FTP-протокол (для совместимости с брандмауэрами и DLS-модемами)» (Use Passive FTP (for firewall and DSL modem compatibility)) в разделе «Обзор» (Browsing) на вкладке «Дополнительно» (Advanced) диалогового окна «Свойства обозревателя» (Internet Options). Вызвать его можно из меню «Сервис» (Tools).

Для доступа к частным FTP-серверам необходимо ввести имя пользователя и пароль (рис. B). Однако таким способом в IE 7 или IE 8 можно посмотреть лишь список файлов. Для загрузки придется воспользоваться Проводником (Windows Explorer). Подробнее см. на рис. C, D, E и F.


Рисунок B. Для доступа к частным FTP-серверам требуется имя пользователя и пароль.


Рисунок C. Выберите опцию «Страница | Открыть FTP-узел в Проводнике Windows» (Page | Open FTP Site in Windows Explorer) или «Вид | Открыть FTP-узел в Проводнике Windows» (View | Open FTP Site in Windows Explorer), чтобы запустить Проводник.



Рисунок D. В диалоговом окне с предупреждением безопасности Internet Explorer нажмите кнопку «Разрешить» (Allow).

Всем привет сегодня расскажу про утилиту ftp.exe как инструмент для работы с FTP -серверами.

Для работы с FTP-серверами вовсе необязательно использовать громоздкие (и иногда не бесплатные) FTP-клиенты, для простейших операций вполне сгодится входящая в состав ОС Windows server 2008 R2 или Windows 7 утилита командной строки ftp.exe .

Чтобы запустить ftp.exe , нужно вызвать диалоговое окно «Выполнить » и набрать ftp . Клиент выведет строку приглашения в командном интерпретаторе cmd.exe и сразу будет готов к работе:

Синтаксис ftp.exe очень прост и достаточно подробно описан во встроенной справке, которую можно вызвать командой help :

В справочной системе ftp.exe существуют краткие описания всех команд. Их вызов осуществляется командой help . Посмотрим, например, что делает команда dir . Для этого наберем help dir :

Попробуем установить соединение с каким-нибудь ftp-сервером. Пусть это будет linuxcenter.ru. В этом нам поможет команда open linuxcenter.ru :

После подключения к ftp-серверу необходимо сообщить ему, в каком режиме мы будем с ним работать. Режимов всего два: port-mode channel и passive-mode data channel . В 99 случаях из 100 используется пассивный режим (подробнее о различиях скажет Википедия ), сообщаем серверу, что мы не исключение из правил, командой quote PASV :

Теперь мы можем приступать к выполнению операций с данными: переходить по структуре каталогов и выводить их листинги, осуществлять upload и download файлов, менять форматы пересылаемых данных и пр. Однако, ftp-серверы бывают разными. Поэтому сперва будет нелишним ознакомиться с синтаксисом, поддерживаемым удаленным сервером. Для этого есть команда remotehelp :

Чтобы закрыть активное соединение, используйте команду close , для выхода из ftp.exe - quit . И help вам в помощь.

Вот так вот еще можно работать с ftp сервером.

Чтобы подключиться к серверу FTP, необязательно использовать какие-либо посторонние программы — это можно сделать и при помощи стандартных возможностей Windows. Для этого можно воспользоваться командной строкой CMD. Но чтобы управлять сервером через стандартные возможности операционной системы, вам придется изучить доступные команды, так как визуального интерфейса у CMD нет. В данной статье вы узнаете основные команды FTP и как применять их на практике.

Почему лучше скачать клиент, чем использовать CMD

Если бы командная строка CMD позволяла выполнять все доступные операции на серверах FTP, то, возможно, в клиентах не было бы нужды. Но реальность такова, что строка CMD весьма ограничена в плане управления сервером. Потому все-таки лучше найдите возможность, и скачайте к себе на компьютер утилиту для управления сервером по FTP. Например, загрузите к себе на ПК программу-клиент FileZilla — ее можно скачать бесплатно с официального сайта разработчиков. На установку много времени не уйдет. А чтобы подключиться к серверу, вам нужно будет всего-навсего ввести логин, пароль и имя хоста в нужную строку. Через CMD это делать гораздо сложнее.

Конкретный недостаток строки CMD в том, что вы даже не сможете перейти в пассивный режим во время пребывания на сервере. А без такого режима у вас не получится обмениваться файлами с серверами FTP, которые работают через NAT.

По сути, это очень большой недочет CMD. Потому смиритесь с тем, что командная строка Windows подойдет только для манипуляций внутри файловой системы без обмена данными. Хотя для тех, кто использует сервер FTP для рутинной однообразной работы, командная строка может показаться весьма удобной. Но лучше попробуйте и клиент, и CMD, чтобы делать какие-либо выводы.

Какие есть команды для управления FTP в командной строке CMD

Для начала запустите командную строку. Сделать это можно при помощи поиска в «Пуске» — найдите файл cmd.exe и откройте его, после чего строка будет запущена.

Чтобы подключиться к серверу, вам нужно воспользоваться командой OPEN. После этой команды необходимо ввести IP-адрес или имя хоста, с которым вы хотите настроить соединение. Уже после введения этого запроса вы сможете залогиниться на сервере. Сделать это можно при помощи команды USER, которая делает запрос на аутентификацию через введенный логин. После вам нужно ввести команду PASS, которая означает пароль. Когда введете пароль, и нажмете «Ввод», вы будете авторизированы на сервере.

В целом, командная строка подходит только для того, чтобы «серфить» по серверу, перемещать файлы и т. п. Для начала вам нужно будет увидеть файлы, которые есть на сервере. Для этого воспользуйтесь командой LS. Поскольку курсора в командной строке нет, вам нужно выделять каталог или файл при помощи специальных команд. Используйте для этого строку CD или LCD — первая нужна для смены текущего объекта на удаленном компьютере, а вторая — для локального, то есть для вашего ПК.

Хоть вы и не сможете загружать на сервер FTP свои файлы через CMD, скачивать данные к себе на компьютер возможно. Для этого используйте команду GET. Сначала пропишите команду GET с названием файла, а потом укажите какой каталог на вашем компьютере является текущим, чтобы сервер передал данные именно в ту папку.

Указанные команды используют чаще всего. То есть большинство пользователей управляют сервером через CMD, чтобы быстро скачивать файлы, не устанавливая предварительно клиент. Но вы можете пойти гораздо дальше, и использовать другие команды на сервере при помощи строки CMD. Например, вы можете добавить сигнальное оповещение о завершении команды на сервере при помощи строки BELL.

Если вы хотите завершить сеанс и выйти из командной строки и сервера, то пропишите BYE. А для прерывания управляющего соединения только на сервере, чтобы вы остались внутри командной строки, напишите CLOSE. При этом файлы, которые вы загружаете на ПК с сервера будут продолжать скачиваться и уже после окончания загрузки сеанс будет полностью прикрыт.

При помощи CMD вы с легкостью сможете манипулировать каталогами на сервере. Например, чтобы удалить указанный каталог, используйте команду DELETE. А чтобы на экране появился перечень файлов определенной папки, пропишите DIR и путь к каталогу. Если вы хотите удалить не одну папку или файл, а сразу несколько, то воспользуйтесь командой MDELETE, то есть мульти-удаление. Точно так же приставку «m» можно использовать и для других команд, чтобы можно объединить несколько действий в одно. Так, для отображения списка файлов сразу нескольких каталогов пропишите MDIR, а для загрузки с сервера пачки данных используйте MGET. Но не путайте мультикоманду с одиночной MKDIR — она нужна для того, чтобы сгенерировать каталог на сервере.

Есть вероятность, что ваш FTP-сервер работает без NAT-технологии, потому пассивный режим клиента и не понадобится. В таком случае у вас получится загружать определенные файлы на хост. Используйте для этого команду MPUT для выгрузки нескольких файлов, и PUT, если вы хотите отправить только один.

Еще одна популярная команда, которая, скорее всего, пригодится и вам — это RENAME. Нужна команда для переименования файлов. Она будет полезна для тех, кто использует сервер в качестве хранилища для данных сайта. Также вам понадобится команда PWD, которая определяет текущую папку на удаленном сервере FTP, а не у вас на компьютере, как это делает строка LCD.

Приведенные команды — это неполный список функций, которые вы можете использовать в FTP. Есть и другие команды. И вы можете узнать о них прямо в командной строке, если введете запрос HELP. После этого появится справочник со всеми доступными командами CMD, которые можно использовать в FTP. Только учтите, что в этот момент вы должны быть подключены к серверу, иначе Windows выдаст вам другой справочник. А если хотите запросить помощь у самого сервера, то пропишите REMOTEHELP.

Разумеется, управление сервером командами — это каменный век. Потому лучше не теряйте время, загружайте на компьютер нормальный FTP-клиент и используйте сервер на максимум, а не частично. Но практика в командной строке CMD еще никому не мешала!