如何在Linux上使用FTP命令

程式化的Linux终端提示

文件传输协议比我们的大多数读者都要老,但它仍然很强大。 FTP没有现代协议的安全性,但无论如何您可能需要使用它。这是怎么做的。

警告:不要在Internet上使用FTP

让我们从一开始就明确这一点:文件传输协议(FTP)可以追溯到20世纪70年代早期,并且在不考虑安全性的情况下编写。它不会对任何东西使用加密。您的用户名和密码以及下载或上传的数据等登录凭据将以明文形式传输。一路上的任何人都可以查看您的秘密。但是,FTP仍有其用途。

如果您要在网络中传输文件,那么您应该是安全的 – 只要网络中没有人在传输任何敏感文档时都会对数据包进行嗅探和窃听。如果您的文件不以任何方式保密或敏感,那么使用FTP在内部网络中移动它们应该没问题。 Linux有标准 FTP 命令行程序来处理这种情况。

但绝对不要使用 FTP 命令通过Internet访问外部资源。为此,使用 SFTP 命令行程序,它使用安全的SSH文件传输协议。我们将在本教程中介绍这两个程序。

为了澄清您为什么不想通过Internet使用FTP,请查看下面的屏幕截图。它以纯文本显示FTP密码。您网络上或您与Internet上的FTP服务器之间的任何人都可以轻松地看到密码是“MySecretPassword”。

如果没有加密,恶意行为者也可以修改您正在下载或上传的文件。

网络数据包跟踪带有明文密码

ftp命令

假设您在FTP站点上拥有有效帐户,则可以使用以下命令连接到该站点。在本文中,将命令中的IP地址替换为您要连接的FTP服务器的IP地址。

ftp 192.168.4.25

警告:你应该只使用 FTP 命令连接到受信任的本地网络上的服务器。使用 SFTP 用于通过互联网传输文件的命令,如下所述。

终端窗口中的ftp连接命令

FTP服务器以欢迎消息响应。问候语的措辞因服务器而异。然后它会询问您登录的帐户的用户名。

请注意,将显示您要连接的站点的IP地址,后跟您的Linux用户名。如果FTP服务器上的帐户名与Linux用户名相同,只需按Enter键即可。这将使用您的Linux用户名作为FTP服务器上的帐户名。如果您的Linux用户名和FTP帐户名不同,请键入FTP帐户用户名,然后按Enter键。

登录FTP服务器

系统将提示您输入FTP站点的密码。输入您的密码,然后按Enter键。您的密码不会显示在屏幕上。如果FTP服务器验证了您的FTP用户帐户名和密码组合,则会登录到FTP服务器。

你将获得 FTP> 提示。

在终端窗口中登录ftp帐户

环顾四周并检索文件

首先,您可能希望获得FTP服务器上的文件列表。该 LS 命令就是这样。我们的用户看到了该文件 gc.c 在FTP服务器上,他想将它下载到自己的计算机上。他的计算机是FTP用语中的“本地计算机”。

检索(或“获取”)文件的命令是 得到。因此,我们的用户发出命令 得到gc.c。他们打字 得到,一个空格,然后是他们想要检索的文件的名称。

FTP服务器通过将文件传输到本地计算机并确认传输发生来进行响应。还显示了文件的大小和传输所花费的时间。

LS
得到gc.c

终端窗口中的ftp文件传输

要一次检索多个文件,请使用 MGET (多次获取)命令。该 MGET 命令将要求您确认是否要依次下载每个文件。按“y”表示“是”,“n”表示否。

这对于大量文件来说将是乏味的。因此,相关文件的集合通常作为单个tar.gz或tar.bz2文件存储在ftp站点上。

有关: 如何从Linux上的.tar.gz或.tar.bz2文件中提取文件

mget * .c

终端窗口中的mget命令

将文件上载到FTP服务器

根据已授予您的FTP帐户的权限,您可以将文件上载(或“放入”)到服务器。要上传文件,请使用 命令。在我们的示例中,用户正在上载名为的文件 Songs.tar.gz 到FTP服务器。

把Songs.tar.gz

将命令放在终端窗口中

正如您所料,有一个命令可以将多个文件同时放入FTP服务器。它被称为 MPUT (多次放)。就像 MGET 命令做了, MPUT 将逐个要求上传每个文件的“y”或“n”确认。

将文件集放入tar档案的相同论点适用于放置文件以获取文件。我们的用户使用以下命令上传多个“.odt”文件:

mput * .odt

终端窗口中的mput命令

创建和更改目录

如果您的ftp服务器上的用户帐户允许,您可以创建目录。执行此操作的命令是 MKDIR 。要清楚,您使用。创建的任何目录 MKDIR 命令将在ftp服务器上创建,而不是在本地计算机上创建。

要更改ftp服务器上的目录,请使用 光盘 命令。当你使用 光盘 命令 FTP> 提示不会更改以反映您当前的新目录。该 PWD (打印工作目录)命令将显示您当前的目录。

我们的ftp用户创建一个名为music的目录,更改为该新目录,使用该目录确认它们的位置 PWD 然后命令将文件上载到该目录。

mkdir音乐
cd音乐
PWD
把songs.tar.gz

终端窗口中的cd pwd和mkdir命令

要快速移动到当前目录的父目录,请使用 CDUP 命令。

CDUP

在终端widnowindow中的cdup命令

访问本地计算机

要更改本地计算机上的目录,可以使用 液晶显示 命令在 FTP> 提示。但是,很容易忘记您在本地文件系统中的位置。访问本地文件系统更方便的方法是使用 命令。

命令打开本地计算机的shell窗口。您可以在标准终端窗口中执行此shell中的任何操作。当你输入 出口 你回到了 FTP> 提示。

我们的用户已经使用了 命令并在本地计算机上输入shell窗口。他们发了一个 LS 命令以查看该目录中存在哪些文件然后键入 出口 回到 FTP> 提示。


LS
出口

!终端窗口中的shell命令

重命名文件

要重命名FTP服务器上的文件,请使用 改名 命令。这里我们的FTP用户使用重命名文件 改名 然后使用 LS 命令列出目录中的文件。

重命名songs.tar.gz rock_songs.tar.gz
LS

在终端窗口中重命名命令

删除文件

要删除FTP服务器上的文件,请使用 删除 命令。要一次删除多个文件,请使用 mdelete 命令。您将被要求提供删除每个文件的“y”或“n”确认。

在这里,我们的FTP用户列出了文件以查看其名称,然后选择一个删除。然后他们决定全部删除它们。

LS
删除gc.o
mdelete * .o

ls在终端窗口中删除和mdelete命令

使用sftp命令

熟悉IP寻址系统的读者会注意到,上述示例中使用的FTP服务器的192.168地址是内部IP地址,也称为私有IP地址。正如我们在本文开头所警告的那样 FTP 命令只应在内部网络上使用。

如果要连接到远程或公​​共FTP服务器,请使用 SFTP 命令。我们的用户将连接到名为的SFTP帐户 演示 在位于的公共访问FTP服务器上 test.trebex.net

当他们连接时,他们被告知已建立连接。他们还被告知无法验证主机的真实性。对于新主机的第一次连接,这是正常的。他们按“y”接受连接。

因为用户帐户名称(演示)在命令行上传递,它们不会被提示输入用户帐户名。仅提示输入密码。这是输入,验证和接受,并与它们一起呈现 SFTP> 提示。

sftp [email protected]

连接到终端窗口中的sftp站点

我们上面描述的FTP命令在SFTP会话中的工作方式相同,但有以下例外。

  • 删除文件使用 R M (FTP使用 删除
  • 删除多个文件使用 R M (FTP使用 mdelete
  • 要移动到父目录使用 cd .. (FTP使用 CDUP

我们的用户在其SFTP会话中使用了一些命令。他们有用 LS 列出文件,和 光盘 要切换到pub目录。他们用过了 PWD 打印工作目录。

终端窗口中的sftp命令

还有其他选择在Linux世界中传输文件,特别是 SCP (安全副本),但我们在这里专注于FTP和SFTP。在适用的场景中使用这两个命令将为您提供服务,并且您的文件存储和检索需要很好。

本文机器自动生成,不保证语句完整通顺和表达准确,亦不对内容真实有效性负责,请读者知悉。