FTP команды в Linux

Автор: logi. Рубрика: Linux Дата: 17.08.2010
Метки: ftp

Сегодня я решил рассказать Вам о командах к ftp серверу. Нужны они, в основном, при работе в консоле, так как в графическом режиме проще всего использовать любой из FTP клиентов, например бесплатный FTP клиент Filezilla.

FTP (File Transfer Protocol) – Это сетевой протокол, который служит для копирования файлов с одного компьютера на другой по средствам либо локальной сети, либо сети интернет. FTP использует 21 порт.
Здесь так же стоит отметить, что протокол FTP уязвим, ваши данные при передаче не шифруются, и могут легко быть перехвачены злоумышленниками. Для более безопасной передачи данных, используйте протокол SFTP (Secure File Transfer Protocol). Протокол SFTP использует точно такие же команды, как и FTP.

Используйте один из следующих вариантов обращения к серверу:

ftp ftp.example.com
ftp 1.2.3.4
ftp user@ftp.example.com

Вы должны знать имя пользователя и пароль, для аутентификации с правами пользователя, в противном случае, Вы можете авторизоваться как анонимный пользователь. Давайте попробуем авторизоваться на ftp.freebsd.org как аноним. Откройте терминал, и выполните команду:

ftp ftp.freebsd.org

Сессия проходит следующим образом:

Trying 2001:6c8:2:600::132...
Trying 2001:4f8:0:2::e...
Trying 149.20.64.73...
Connected to ftp.freebsd.org.
220 Welcome to freebsd.isc.org.
Name (ftp.freebsd.org:logi.cc): ftp
331 Please specify the password.
Password: ftp
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Когда Вы введёте собственные имя пользователя и пароль для сервера ftp.example.com, у Вас появиться строка:

ftp>

После этого, Вы можете пользоваться ftp сервером, при помощи команд.

Задача: Просмотреть файлы в директории

Просто выполните команду ls на сервере:

ftp> ls

Вывод будет примерно таким:

ftp> ls
229 Entering Extended Passive Mode (|||49734|)
150 Opening ASCII mode data connection for '/bin/ls'.
total 10
drwxrwxr-x  2 0     5      512 Jul 19  2007 .snap
drwx------  2 0     0     2048 Jul 19  2007 lost+found
drwxr-xr-x  3 1006  1006   512 Sep 21  2009 pub
drwxr-xr-x  3 1006  1006   512 Jun  5  2007 sup
drwxr-xr-x  4 1006  0      512 Sep 18  2009 www
226 Transfer complete.

Таким образом, мы видим, какие файлы и папки находятся в текущей удалённой директории.

Задача: Поменять директорию

Для того, чтобы поменять директорию на ftp сервере, используйте команду cd.

ftp> cd ИмяДиректории

Например, чтобы попасть в директорию pub, нужно выполнить команду:

ftp> cd pub

После того, как всё прошло удачно, мы получим положительный ответ от сервера:

250 CWD command successful.

Задача: Скачать или скопировать фаил

Для того, чтобы скопировать один файл с удалённого ftp сервера, к себе на компьютер, используйте команду get.

get fileName
get fileName newFileName

Для того, чтобы скопировать файл README.TXT с ftp.freebsd.org нужно быть в директории с этим файлом и выполнить команду

ftp> get README.TXT

Вот вывод этой команды:

ftp> get README.TXT
local: README.TXT remote: README.TXT
229 Entering Extended Passive Mode (|||49181|)
150 Opening BINARY mode data connection for 'README.TXT' (6430 bytes).
100% |*************************************|  6430      32.64 KB/s    00:00 ETA
226 Transfer complete.
6430 bytes received in 00:00 (32.62 KB/s)

А в этом примере я копирую файл data.tar.gz с удалённого сервера, в файл backup.tar.gz на локальный компьютер:

ftp> get data.tar.gz backup.tar.gz

Все файлы копируются в текущую локальную директорию. Для того, чтобы изменить текущую локальную директорию, используйте команду:

ftp> lcd /путь/до/новой/директории
ftp> lcd /tmp

Вывод:

Local directory now: /tmp

Узнать текущую директорию можно командой:

ftp> lpwd

Вывод:

/tmp

Команда lpwd показывает текущую директорию на локальном компьютере, чтобы узнать директорию на удалённом ftp сервере, используйте команду pwd:

ftp> pwd

Вывод:

Remote directory: /pub/FreeBSD

Задача: Скачать несколько файлов

Для того, чтобы скачать сразу несколько файлов с удалённого ftp сервера на локальный компьютер используйте команду mget. Перед скачиванием каждого файла Вам нужно будет подтвердить копирование Да/Нет (Y/N), чтобы избежать этого, используйте команду mget с -i. Чтобы скачать все файлы введите:

ftp> mget *

Чтобы скачать все файлы с расширением php:

ftp> mget *.php

Задача: Удалить файл

Для того, чтобы удалить файл на удалённом ftp сервере используйте команду delete

ftp> delete ИмяФайла
ftp> delete output.jpg

Задача: Загрузить один файл

Для того, чтобы загрузить только один файл на ftp сервер используйте команду put

ftp> put ИмяФайла

Для примера, загрузим на ftp сервер логотип

ftp> put logo.jpg

Задача: Загрузить несколько файлов

Для того, чтобы загрузить сразу несколько файлов с локального компьютера на удалённый ftp сервер следует использовать команду mput, Вам так же нужно будет перед каждой загрузкой отвечать Да/Нет (Y/N) на вопрос о загрузке файла. В примере показана загрузка всех файлов с локального компьютера (с текущей директории)

ftp> mput *
ftp> mput *.php

Задача: Создание директории

Для того, чтобы создать новую директорию используйте команду mkdir

ftp> mkdir ИмяДиректории
ftp>mkdir backup
ftp>cd backup
ftp>pwd

Задача: Удаление директории

Для удаления директории используйте команду rmdir

ftp>rmdir ИмяДиректории
ftp>rmdir images
ftp>ls

Задача: Выбор режима передачи данных

Для того чтобы передавать файлы в режиме ASCII введите:

ftp>ascii

Следует учитывать, что режим ASCII используется по умолчанию, в этом режиме рекомендуется передавать текстовые файлы.
Для того, чтобы передавать файлы в режиме binary введите:

ftp>binary

Режим binary более предпочтителен для изображений, архивов и так далее. В этом режиме меньше шансов получить ошибку при передаче.

Задача: Присоединиться к другому FTP серверу

Для того, чтобы присоединиться к другому ftp серверу, используйте команду open:

ftp>open ftp.yandex.ru

Таким образом мы присоединимся к ftp серверу ftp.yandex.ru. Вы так же должны знать имя пользователя и пароль, но так же можете использовать анонимный вход, если сервер это поддерживает.

Задача: Закрытие ftp сессии

Просто введите quit или bye

ftp>quit

или

ftp>bye

Вывод:

221 Goodbye.

Как мне узнать больше о командах к ftp серверу?

Наберите ? или help для того, чтобы узнать больше о командах ftp.

ftp>?
ftp>help

Вывод:

ftp> ?
Commands may be abbreviated.  Commands are:
 
!               features        mls             prompt          site
$               fget            mlsd            proxy           size
account         form            mlst            put             sndbuf
append          ftp             mode            pwd             status
ascii           gate            modtime         quit            struct
bell            get             more            quote           sunique
binary          glob            mput            rate            system
bye             hash            mreget          rcvbuf          tenex
case            help            msend           recv            throttle
cd              idle            newer           reget           trace
cdup            image           nlist           remopts         type
chmod           lcd             nmap            rename          umask
close           less            ntrans          reset           unset
cr              lpage           open            restart         usage
debug           lpwd            page            rhelp           user
delete          ls              passive         rmdir           verbose
dir             macdef          pdir            rstatus         xferbuf
disconnect      mdelete         pls             runique         ?
edit            mdir            pmlsd           send
epsv4           mget            preserve        sendport
exit            mkdir           progress        set

Вы можете получить короткое описание каждой команды:

ftp>help ИмяКоманды
ftp>help chmod

Вывод:

chmod           change file permissions of remote file

На этом собственно и всё. Основные команды мы рассмотрели. Теперь Вы сможете без проблем управляться с FTP с командной строки.