Bashrc 为 SSH 命令添加别名,以便连接并直接 cd 到定义的路径

Bashrc 为 SSH 命令添加别名,以便连接并直接 cd 到定义的路径

我有一个连接到我的开发服务器的别名:

alias sshDev='ssh -p 22 username@ip_address'

我希望能够连接并自动切换到新目录:

cd ../my-favorite-directory

是否有办法在一个本地别名下运行这两个命令?

答案1

您可以为该命令设置别名,如下所示:

alias sshDev="ssh -tp 22 username@ip_address 'cd /path/to/dir; bash'"

正如Arthur2e5建议的那样添加参数-il很方便

相关部分man bash

   -i        If the -i option is present, the shell is interactive.
   -l        Make bash act as if it had been invoked as a login shell (see INVOCATION below).

如果您希望有一个动态目标文件夹(每次调用别名时定义它),您将必须编写一个由您的别名调用的函数。例如:

alias sshDev=ssh·Dev

function ssh·Dev() {

  if [ "$#" -eq 0 ]; then
    fav_dir="/path/to/dir"
  else
    fav_dir=$1
  fi

  ssh -tp 22 username@ip_address "cd $fav_dir; bash"

}

使用这一小段代码,当您在命令行中调用(键入)别名时,如下所示:(sshDev不带参数),它将使用函数中定义的静态 /path/to/dir ,否则,如果您像这样调用别名这sshDev /one/other/path/to/dir将使用内联提供的路径。

相关内容