Как использовать команду FTP в Linux

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

Предупреждение: не используйте FTP через Интернет

Давайте проясним это с самого начала: протокол передачи файлов (FTP) восходит к началу 1970-х годов и был написан без какого-либо отношения к безопасности. Он ни для чего не использует шифрование. Учетные данные для входа, такие как ваше имя пользователя и пароль, а также данные, которые вы загружаете или выгружаете, передаются в виде открытого текста. Любой желающий может увидеть ваши секреты. Однако FTP все еще находит применение.

Если вы передаете файлы в своей сети, вы должны быть в безопасности - пока никто в сети не перехватывает пакеты и не перехватывает любые конфиденциальные документы, когда вы их передаете. Если ваши файлы не являются конфиденциальными или конфиденциальными, их можно переместить по внутренней сети с помощью FTP. В Linux есть стандартная ftpпрограмма командной строки, которая справляется именно с этим сценарием.

Но определенно не используйте эту  ftp команду для доступа к внешним ресурсам в Интернете. Для этого используйте программу sftpкомандной строки, которая использует безопасный протокол передачи файлов SSH. Мы представим обе эти программы в этом руководстве.

Чтобы прояснить, почему вы никогда не хотите использовать FTP через Интернет, взгляните на снимок экрана ниже. Он показывает пароль FTP в виде открытого текста. Любой в вашей сети или между вами и FTP-сервером в Интернете может легко увидеть, что пароль - «MySecretPassword».

Без шифрования злоумышленник может также изменять файлы, которые вы загружаете или выгружаете в пути.

Команда ftp

Предполагая, что у вас есть действующая учетная запись на FTP-сайте, вы можете подключиться к ней с помощью следующей команды. В этой статье заменяйте IP-адрес в командах IP-адресом FTP-сервера, к которому вы подключаетесь.

ftp 192.168.4.25

Предупреждение : вы должны использовать ftpкоманду только для подключения к серверам в доверенной локальной сети. Используйте sftpописанную ниже команду для передачи файлов через Интернет.

FTP-сервер отвечает приветственным сообщением. Формулировка приветствия будет отличаться от сервера к серверу. Затем он запрашивает имя пользователя учетной записи, в которую вы входите.

Обратите внимание, что отображается IP-адрес сайта, к которому вы подключаетесь, а за ним следует ваше имя пользователя Linux. Если имя вашей учетной записи на FTP-сервере совпадает с именем пользователя Linux, просто нажмите клавишу Enter. Это будет использовать ваше имя пользователя Linux в качестве имени учетной записи на FTP-сервере. Если ваше имя пользователя Linux и имя учетной записи FTP отличаются, введите имя пользователя учетной записи FTP и нажмите Enter.

Вход на FTP-сервер

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

Вам будет представлено ftp>приглашение.

Поиск и получение файлов

Во-первых, вы, вероятно, захотите получить список файлов на FTP-сервере. Команда lsделает именно это. Наш пользователь видит, что файл gc.cнаходится на FTP-сервере, и хочет загрузить его на свой компьютер. Его компьютер - это «локальный компьютер» на языке FTP.

Команда для получения (или «получения») файла - это get. Таким образом, наш пользователь выдает команду get gc.c. Они вводят get, пробел, а затем имя файла, который они хотят получить.

FTP-сервер отвечает, передавая файл на локальный компьютер и подтверждая, что передача произошла. Также отображается размер файла и время, необходимое для передачи.

ls
получить gc.c

Чтобы получить сразу несколько файлов, используйте команду  mget(multiple get). Команда mgetпопросит вас подтвердить, хотите ли вы загружать каждый файл по очереди. Ответьте, нажав «y», если да, и «n», если нет.

Это было бы утомительно для большого количества файлов. По этой причине коллекции связанных файлов обычно хранятся на сайтах ftp в виде отдельных файлов tar.gz или tar.bz2.

СВЯЗАННЫЕ: Как извлечь файлы из файла .tar.gz или .tar.bz2 в Linux

mget * .c

Загрузка файлов на FTP-сервер

В зависимости от разрешений, предоставленных вашей учетной записи FTP, вы можете загружать (или «помещать») файлы на сервер. Чтобы загрузить файл, используйте putкоманду. В нашем примере пользователь загружает файл с именем Songs.tar.gzна FTP-сервер.

поставьте Songs.tar.gz

Как и следовало ожидать, есть команда для одновременного размещения нескольких файлов на FTP-сервере. Это называется mput(множественный путь). Как и mgetкоманда, mputзапросит подтверждение «y» или «n» для загрузки каждого файла, один за другим.

Тот же аргумент для помещения наборов файлов в архивы tar применяется для помещения файлов, как и для получения файлов. Наш пользователь загружает несколько файлов «.odt» с помощью следующей команды:

mput * .odt

Создание и изменение каталогов

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

Чтобы изменить каталоги на ftp-сервере, используйте cdкоманду. Когда вы используете cdкоманду, ftp>подсказка не изменится в соответствии с вашим новым текущим каталогом. Команда pwd(распечатать рабочий каталог) покажет вам ваш текущий каталог.

Наш ftp-пользователь создает каталог с именем music, переходит в этот новый каталог, подтверждает, где он находится, с помощью pwdкоманды, а затем загружает файл в этот каталог.

mkdir музыка
cd музыка
pwd
поместите songs.tar.gz

Для быстрого перехода в родительский каталог текущего каталога используйте cdupкоманду.

cdup

Доступ к локальному компьютеру

Чтобы изменить каталог на локальном компьютере, вы можете использовать lcdкоманду в командной ftp>строке. Однако легко потерять из виду, где вы находитесь в локальной файловой системе. Более удобный метод доступа к локальной файловой системе - использовать !команду.

Команда !открывает окно оболочки на локальном компьютере. В этой оболочке можно делать все, что можно в стандартном окне терминала. При вводе exitвы вернетесь к ftp>приглашению.

Наш пользователь использовал !команду и вошел в окно оболочки на локальном компьютере. Они выполнили lsкоманду, чтобы увидеть, какие файлы присутствуют в этом каталоге, а затем набрали exitкоманду, чтобы вернуться к ftp>приглашению.

!
ls
Выход

Переименование файлов

Чтобы переименовать файлы на FTP-сервере, используйте renameкоманду. Здесь наш FTP-пользователь переименовывает файл в, renameа затем использует lsкоманду для вывода списка файлов в каталоге.

переименовать песни.tar.gz rock_songs.tar.gz
ls

Удаление файлов

Для удаления файлов на FTP-сервере используйте deleteкоманду. Чтобы удалить сразу несколько файлов, используйте mdeleteкоманду. Вам будет предложено указать «y» или «n» подтверждения для удаления каждого файла.

Здесь наш FTP-пользователь перечислил файлы, чтобы увидеть их имена, а затем выбрал один для удаления. Затем они решают удалить их все.

ls
удалить gc.o
mdelete * .o

Использование команды sftp

Читатели, знакомые с системой IP-адресации, заметят, что адрес 192.168 FTP-сервера, использованный в приведенных выше примерах, является внутренним IP-адресом, также называемым частным IP-адресом. Как мы предупреждали в начале этой статьи, ftpкоманду следует использовать только во внутренних сетях.

Если вы хотите подключиться к удаленному или общедоступному FTP-серверу, используйте sftpкоманду. Наш пользователь собирается подключиться к учетной записи SFTP, вызываемой demoна общедоступном FTP-сервере, расположенном по адресу test.trebex.net.

Когда они подключаются, им сообщают, что соединение установлено. Им также сообщают, что подлинность хоста не может быть проверена. Это нормально для первого подключения нового хоста. Они нажимают «y», чтобы принять соединение.

Поскольку имя учетной записи пользователя ( demo) было передано в командной строке, они не запрашивают имя учетной записи пользователя. У них запрашивается только пароль. Он вводится, проверяется и принимается, и они отображаются с sftp>подсказкой.

sftp [email protected]

Команды FTP, которые мы описали выше, будут работать точно так же в сеансе SFTP, за следующими исключениями.

  • Для удаления файла используйте rm(FTP использует delete)
  • Для удаления нескольких файлов используйте rm(используется FTP mdelete)
  • Для перехода в родительский каталог используйте cd ..(FTP использует cdup)

Наш пользователь использовал несколько команд в своем сеансе SFTP. Их нужно использовать lsдля вывода списка файлов и cdперехода в каталог pub. Они использовали pwdдля печати рабочего каталога.

В мире Linux есть и другие варианты передачи файлов, в частности scp(безопасное копирование), но здесь мы сосредоточились на FTP и SFTP. Эти две команды, используемые в соответствующих сценариях, будут хорошо служить вам и вашим потребностям в хранении и извлечении файлов.