Bashrcは、SSHコマンドにエイリアスを追加して、定義されたパスに直接接続してcdします。

Bashrcは、SSHコマンドにエイリアスを追加して、定義されたパスに直接接続してcdします。

開発サーバーに接続するエイリアスがあります。

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

接続して自動的に新しいディレクトリに切り替えることができるようにしたいです。

cd ../my-favorite-directory

1つのローカルエイリアスで両方のコマンドを実行する方法はありますか?

ベストアンサー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で指定されたパスを使用します。

おすすめ記事