サーバーに頻繁にログインしてから、特定のディレクトリにcdします。これら2つのコマンドを1つに簡略化することは可能ですか?
ssh bob@foo
cd /home/guest
サーバー管理者と一緒にクリアする必要があるので、可能であれば 'foo'の変更は避けたいです。私はbashを使用していますが、他のシェルでの回答も受け入れています。
〜bob/.bash_profileファイルの最後の行としてfooに配置するだけです。
cd /home/guest >& /dev/null
これで、ログインするたびに(SSHを使用するかどうかに関係なく)、cdコマンドが実行されます。 sshをいじる必要はありません。
私はあなたが「可能であれば 'foo'で何も変更しないようにしたい」と書いたことを知っていますが、bob @ fooアカウントがあなたのものである場合、あなた自身の.bash_profileの変更は受け入れられるはずです、いいえ?
これはOpenSSHで動作します:
ssh -t bob@foo 'cd /home/guest && exec bash -l'
最後の引数は、ログインシェルで実行されます。 -t
フラグがssh
に渡されると、ssh
は疑似端末を強制的に割り当てます。これは、対話型シェルに必要です。 -l
フラグをbash
に渡すと、bashが ログインシェル として開始されます。
@EvanTeitelmanのソリューションと同様に、この方法でも実行できます。
$ ssh -t bob@foo "cd /tmp ; bash"
または、もう一方のシェルがわからない場合:
$ ssh -t bob@foo "cd /tmp && exec \$Shell"
またはこのように:
$ ssh -t bob@foo 'cd /tmp && exec $Shell'