您是否曾经遇到过想要通过 SSH 连接到远程服务器并立即 cd 进入目录的情况? 是的? 好吧,你在正确的轨道上! 这个简短的教程描述了如何直接通过 SSH 进入 Linux 上的特定目录。 含义 – 当通过 SSH 登录到远程系统时,我们可以自动切换到特定目录。 不只是 SSH 进入特定目录,甚至可以在通过 SSH 连接到远程服务器后立即运行任何命令。
SSH 进入远程 Linux 系统的特定目录
在我知道这种方法之前,我通常会先使用以下命令通过 SSH 连接到远程远程系统:
$ ssh [email protected]
然后 cd 进入如下目录:
$ cd <some-directory>
这就是我如何切换到远程系统中的目录。 不再! 无需使用两个单独的命令!!
为了 example,以下命令允许我通过 SSH 连接到远程系统(192.168.225.52),并自动 cd 进入名为“dir1”的目录:
$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash'
上述命令将通过 SSH 连接到远程系统 (192.168.225.52) 并立即 cd 进入一个名为 ‘/home/ostechnix/dir1’ 目录,最后将您留在远程系统的外壳中。
在这里, -t flag 用于强制进行伪终端分配,这对于交互式 shell 是必需的。 如果不指定此标志,则不会出现提示。 如果你不添加 ” bash” 在上述命令结束时,连接将终止并将控制权返回给本地系统。
以下是上述命令的示例输出:
SSH 进入远程 Linux 系统的特定目录
这里还有一些 example SSH 到特定目录的命令:
$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; bash --login'
在这里, – 登录 标志集“bash” 作为登录外壳。
或者,
$ ssh -t [email protected] 'cd /home/ostechnix/dir1 ; exec bash'
或者,
$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec bash -l'
在这里, -l 标志集“bash” 作为登录外壳。
在上面的例子中,我已经明确提到 bash 作为登录外壳。 因为,我知道 Bash 是我的远程系统中的默认 shell。 如果您不知道远程系统上的 shell 类型,请使用以下命令:
$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && exec $SHELL'
在远程系统上创建一个目录并自动 SSH 进入它
如果您尝试 SSH 到远程系统中不存在的目录,您将在成功验证后看到以下消息:
bash: line 0: cd: /home/ostechnix/dir2: No such file or directory
如您所见,名为“dir2”的目录在远程系统中不可用。 如果要在远程系统中创建目录并通过 SSH 自动 cd 进入,只需从本地系统运行以下命令:
$ ssh -t [email protected] 'mkdir -p dir2 ; cd /home/ostechnix/dir2 ; bash --login'
在远程系统中创建一个目录并通过 SSH 自动 cd 进入它
使更改永久化
如果您不想每次都手动键入上述命令,只需在连接到远程系统上的 SSH 服务器后添加您想要运行的命令 ~/.bashrc 或者 ~/.bash_profile 或者 ~/.profile 文件。
编辑 .bashrc 文件:
$ nano ~/.bashrc
一一添加命令。 就我而言,我添加了以下行:
cd /home/ostechnix/dir1 >& /dev/null
编辑 .bashrc 文件
请注意,您应该在远程系统的 .bash_profile 或者 .bashrc 或者 。轮廓 文件,不在您的本地系统中。 按 Ctrl+O 然后按 ENTER 保存并按 Ctrl+X 到 close 文件。
最后,运行以下命令来更新更改:
$ source ~/.bashrc
从现在开始,无论何时登录(通过 SSH 或直接登录),都会执行 cd 命令,并且您将自动进入“/home/ostechnix/dir1”目录。
SSH 进入 Linux 上的特定目录
在远程 Linux 系统上通过 SSH 执行命令
就像我已经说过的,这个技巧不仅仅是在连接到远程系统后 cd 进入目录。 您也可以使用此方法运行其他命令。
为了 example,下面的命令会让你进入 ‘/home/ostechnix/dir1’ 目录,然后执行 ‘uname -a’ 命令。
$ ssh -t [email protected] 'cd /home/ostechnix/dir1 && uname -a && exec $SHELL'
在远程 Linux 系统上通过 SSH 执行命令
以下指南中提供了有关在远程系统上通过 SSH 执行命令的更多示例。
- 通过 SSH 在远程 Linux 系统上执行命令
希望这可以帮助。
相关阅读:
- 如何在一个命令中使用 cd 和 ls
- 如何在一个命令中 cp 或 mv 和 cd
- 在 Linux 中允许或拒绝对特定用户或组的 SSH 访问