你是否曾经遇到过想要通过SSH连接到远程服务器并立即进入目录并继续以交互方式工作的情况?本文将介绍如何直接SSH到远程linux系统的特定目录,不只是SSH到特定目录,你可以在连接到SSH服务器后立即立即运行任何命令。安装SSH请参考图解在Ubuntu 18.10系统下安装ssh的方法、在Ubuntu 18.04系统中启用SSH登录的方法。
SSH进入远程系统的特定目录
在我知道这个方法之前,我通常首先使用命令SSH到远程远程系统:
$ ssh [email protected]
然后cd进入如下目录:
$ cd <some-directory>
但是,你不需要使用两个单独的命令,可以使用一个命令组合这些命令并简化任务。
看看下面的例子:
$ ssh -t [email protected] 'cd /home/sk/ywnz ; bash'
上面的命令将通过SSH连接到远程系统(192.168.225.22)并立即进入名为'/home/sk/ywnz /'目录的目录,并在提示符处留下自己的位置。
这里,-t标志用于强制伪终端分配,这是必要的或交互式shell。
以下是上述命令的示例输出(动画图片):
也可以使用下面命令:
$ ssh -t [email protected] 'cd /home/sk/ywnz ; exec bash'
或者:
$ ssh -t [email protected] 'cd /home/sk/ywnz && exec bash -l'
这里,-l标志将bash设置为登录shell。
在上面的例子中,我在最后一个参数中使用了bash,它是我的远程系统中的默认shell,如果你不知道远程系统上的shell类型,请使用以下命令:
$ ssh -t [email protected] 'cd /home/sk/ywnz && exec $SHELL'
就像我已经说过的,这不仅仅是连接到远程系统后进入目录的CD,你也可以使用此技巧运行其他命令,例如,以下命令将使你进入'/home/sk/ywnz/'目录,然后执行'uname -a'命令:
$ ssh -t [email protected] '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/”目录。
- 1 玩客云刷armbian架设nginx php mysql 及可道私有云总结
- 2 centos安装好mysql但是无法启动问题(Job for mysqld.service failed because the control process exited with error code.)
- 3 Ubuntu缺少libncurses.so.5的解决办法
- 4 Grafana之Gauge和Bar Gauge使用(第十一篇)
- 5 df空间占用已满,但du查看home目录空间占用却很少
- 6 RHEL 8 安装 Oracle 19c 提示缺少 libnsl.so.1
- 7 vim.fault.GenericVmConfigFault
- 8 cron: can’t lock /var/run/crond.pid, otherpid may be 2699: Resource temporarily unavailable
- 9 行 1: 未预期的符号 `newline' 附近有语法错误
- 10 CentOS 7.7 yum方式安装配置Zabbix 4.0 LTS详解(二)
精彩评论