2.1 SSH 工具与 FTP 工具
C/C++ 开发中,我们大多数使用的开发机器是 Windows 和 Mac,等程序开发完毕以后拿到专门的 Linux 机器上去编译和调试,尤其是在公司内部,通常不大可能给员工每个人分配一台专门的装有 Linux 系统的机器,而是准备一台配置较高的开发机器,给每个开发人员分配一个 Linux 账号;或者干脆让员工自己安装虚拟机,并在虚拟机上安装 Linux 系统使用。
无论哪种方式,我们通常都不会直接登录到 Linux 系统中去进行直接操作,而是通过一些支持 SSH 协议的工具远程连接到目标 Linux 上,目前主流使用的两大 SSH 工具分别是 xshell 和 SecureCRT,这两种工具的用法基本相似,我们这里以 xshell 为例来说明。
# xshell
xshell 的官网是:https://www.netsarang.com/en/,虽然 xshell 是一款商业软件,但也提供了免费的个人使用版本(Free License for Home and School Users),在官网找到下载链接:
进入个人免费版本后填写自己的姓名和邮箱后点击下载按钮,相应的邮箱就会收到一封含有下载 xshell 免费版本链接的邮件:
下载并安装 xshell 之后,我们就可以使用 xshell 连接到 Linux 机器上去了。
点击主界面的菜单【文件】- 【新建...】,或者点击工具栏的新建按钮弹出【新建会话属性】对话框:
在相应编辑框中输入你的 Linux 机器名称、主机地址、端口号(默认是 22),然后点击连接按钮即可。
在接下来弹出的对话框中输入你的 Linux 机器的用户名和密码点击“确定”按钮后,即可连接上 Linux 机器。
出现如下图所示界面即表示连接成功。
在 xshell 的左侧有一个会话管理界面,记录了我们所有连接过的会话,我们双击其中某一项即可使用对应的配置连接对应的 Linux 机器。
我们有时候需要在目标 Linux 机器与本地机器之间相互发送文件,对于 CentOS 系统,可以使用 sz 和 rz 命令,如果读者的机器上没有这两个命令可以使用如下命令安装:
yum install lrzsz
安装完毕之后,如果需要给目标 Linux 机器发送一个文件,可以在连接上 Linux 机器后在 shell 终端执行:
rz -y
此时就会弹出选择文件的对话框,我们选择需要上传的文件可以将本机上的该问价上传到远端 Linux 机器上。
反过来,如果我们想将远端 Linux 机器上的文件发送到本机,执行:
sz 文件全饰路径
这样会弹出一个对话框让我们选择要将文件保存到本机的位置。
# FTP 工具
上面介绍的 rz 和 sz 命令虽然方便,但只适用于传输单个文件,不适用批量传输文件和文件夹,为此我们可以使用支持 SFTP 协议的工具远程连接到目标 Linux 机器上来进行文件和文件夹传输。
这样的工具很多,例如 WinSCP、xshell 配套的 XFTP,笔者喜欢的一款工具是开源的 FTP 软件 FileZilla。FileZilla 界面如下图所示:
点击菜单【文件】- 【站点管理器...】或者工具栏【打开站点管理器】按钮打开站点管理器界面:
将协议改成 SFTP,输入主机名、用户名和密码信息之后点击“连接”按钮即可连接上远程 Linux。
此时我们就可以自由将文件在本机和远端 Linux 系统中拖拽了。
需要注意的是,如果登录的账号对 Linux 下某个目录无权限访问,是不可以将本机的文件拖到该目录下的,或者从该目录将文件下载到本机。
FileZilla 的源码是开源的,源码质量也比较高,有兴趣的读者可以从 https://filezilla-project.org/ (opens new window) 下载其源码进行学习。