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.

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

Shell
1
2
3
ftp ftp.example.com
ftp 1.2.3.4
ftp user@ftp.example.com

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

Shell
1
ftp ftp.freebsd.org

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

Shell
1
2
3
4
5
6
7
8
9
10
11
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, у Вас появиться строка:

Shell
1
ftp>

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

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

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

Shell
1
ftp> ls

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

Shell
1
2
3
4
5
6
7
8
9
10
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.

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

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

Shell
1
ftp> cd pub

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

Shell
1
250 CWD command successful.

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

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

Shell
1
2
get fileName
get fileName newFileName

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

Shell
1
ftp> get README.TXT

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

Shell
1
2
3
4
5
6
7
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 на локальный компьютер:

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

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

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

Вывод:

Shell
1
Local directory now: /tmp

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

Shell
1
ftp> lpwd

Вывод:

Shell
1
/tmp

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

Shell
1
ftp> pwd

Вывод:

Shell
1
Remote directory: /pub/FreeBSD

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

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

Shell
1
ftp> mget *

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

Shell
1
ftp> mget *.php

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

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

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

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

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

Shell
1
ftp> put ИмяФайла

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

Shell
1
ftp> put logo.jpg

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

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

Shell
1
2
ftp> mput *
ftp> mput *.php

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

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

Shell
1
2
3
4
ftp> mkdir ИмяДиректории
ftp>mkdir backup
ftp>cd backup
ftp>pwd

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

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

Shell
1
2
3
ftp>rmdir ИмяДиректории
ftp>rmdir images
ftp>ls

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

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

Shell
1
ftp>ascii

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

Shell
1
ftp>binary

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

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

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

Shell
1
ftp>open ftp.yandex.ru

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

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

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

Shell
1
ftp>quit

или

Shell
1
ftp>bye

Вывод:

Shell
1
221 Goodbye.

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

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

Shell
1
2
ftp>?
ftp>help

Вывод:

Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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

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

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

Вывод:

Shell
1
chmod change file permissions of remote file

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