如何通过 SSH 连接到 Linux 上的特定目录

您是否曾经遇到过想要通过 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 文件

编辑 .bashrc 文件

请注意,您应该在远程系统的 .bash_profile 或者 .bashrc 或者 。轮廓 文件,不在您的本地系统中。 按 Ctrl+O 然后按 ENTER 保存并按 Ctrl+X 到 close 文件。

最后,运行以下命令来更新更改:

 $ source ~/.bashrc

从现在开始,无论何时登录(通过 SSH 或直接登录),都会执行 cd 命令,并且您将自动进入“/home/ostechnix/dir1”目录。

SSH 进入 Linux 上的特定目录

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 执行命令

在远程 Linux 系统上通过 SSH 执行命令

以下指南中提供了有关在远程系统上通过 SSH 执行命令的更多示例。

  • 通过 SSH 在远程 Linux 系统上执行命令

希望这可以帮助。

相关阅读:

  • 如何在一个命令中使用 cd 和 ls
  • 如何在一个命令中 cp 或 mv 和 cd
  • 在 Linux 中允许或拒绝对特定用户或组的 SSH 访问