你是否曾经遇到过想要通过SSH连接到远程服务器并立即进入目录并继续以交互方式工作的情况?本文将介绍如何直接SSH到远程Linux系统的特定目录,不只是SSH到特定目录,你可以在连接到SSH服务器后立即立即运行任何命令。安装SSH请参考图解在Ubuntu 18.10系统下安装ssh的方法、在Ubuntu 18.04系统中启用SSH登录的方法。
SSH进入远程系统的特定目录 在我知道这个方法之前,我通常首先使用命令SSH到远程远程系统: $ ssh user@remote-system 然后cd进入如下目录: $ cd <some-directory> 但是,你不需要使用两个单独的命令,可以使用一个命令组合这些命令并简化任务。 看看下面的例子: $ ssh -t sk@192.168.225.22 'cd /home/sk/ywnz ; bash' 上面的命令将通过SSH连接到远程系统(192.168.225.22)并立即进入名为'/home/sk/ywnz /'目录的目录,并在提示符处留下自己的位置。 这里,-t标志用于强制伪终端分配,这是必要的或交互式shell。 以下是上述命令的示例输出(动画图片):
也可以使用下面命令: $ ssh -t sk@192.168.225.22 'cd /home/sk/ywnz ; exec bash' 或者: $ ssh -t sk@192.168.225.22 'cd /home/sk/ywnz && exec bash -l' 这里,-l标志将bash设置为登录shell。 在上面的例子中,我在最后一个参数中使用了bash,它是我的远程系统中的默认shell,如果你不知道远程系统上的shell类型,请使用以下命令: $ ssh -t sk@192.168.225.22 'cd /home/sk/ywnz && exec $SHELL' 就像我已经说过的,这不仅仅是连接到远程系统后进入目录的CD,你也可以使用此技巧运行其他命令,例如,以下命令将使你进入'/home/sk/ywnz/'目录,然后执行'uname -a'命令: $ ssh -t sk@192.168.225.22 'cd /home/sk/ywnz && uname -a && exec $SHELL' 或者,你可以在连接到远程系统的.bash_profile文件上的SSH服务器之后添加要运行的命令。 编辑.bash_profile文件: $ nano ~/.bash_profile 逐个添加命令,在我的情况下,我添加以下行: cd /home/sk/ywnz >& /dev/null 保存并关闭文件,最后,运行以下命令以更新更改: $ source ~/.bash_profile 请注意,你应该在远程系统的.bash_profile或.bashrc文件(什么是bashrc配置文件,如何对其进行编辑)中添加此行,而不是在本地系统中。
结语 经过以上操作,就可以从现在开始,无论何时登录(无论是通过SSH还是直接登录),cd命令都将执行,你将自动登陆“/home/sk/ywnz/”目录。
相关主题 |