7

あるマシンから別のマシンにSSHで接続した後、毎回コマンドを実行するにはどうすればよいですか?

例えば

ssh mymachine
stty erase ^H

ssh接続が完了した後は毎回「sttyerase^H」を実行したいだけです。

このコマンドは、単に私の.zshrcファイルに入ることができません。つまり、ローカルセッションの場合、コマンドを実行できません(キーバインドが台無しになります)。ただし、リモートセッションで実行する必要があります。

4

6 に答える 6

12

コマンドを入れる~/.ssh/rc

于 2008-11-14T03:13:32.633 に答える
7

シェルの起動ファイルに次のようなものを入れることができます:

if [ -n "$SSH_CONNECTION" ]
then
  stty erase ^H
end

この-nテストはSSH_CONNECTION、SSH 経由でログインした場合にのみ発生する が設定されているかどうかを判断します。

于 2008-11-14T03:00:26.310 に答える
1

シェルを使用して *nix ボックスにログインしている場合は、それをシェルのスタートアップに入れてみませんか?

.bashrcまたは.profileほとんどの場合。

于 2008-11-14T02:43:04.237 に答える
0

Linuxターゲットを想定して、それをあなたの.profile

于 2008-11-14T02:41:27.267 に答える
0

~/.bashrc の最後にコマンドを追加してみてください。ログオフ時に終了する必要があります。ssh セッションからログオフするときにのみこのコマンドを実行しますか? ローカルセッションなどはどうですか?

trap 'stty erase ^H; exit 0' 0

おそらく、これと同じパターンを使用して /etc/profile から .logout ファイルをセットアップすることもできます。

于 2008-11-14T03:05:59.917 に答える
0

screen/byobu ユーザーの私たちへの回答:

画面が「端末に接続する必要があります。」と不平を言うため、ジオカーのソリューションは機能しません。(これはおそらく、シェルが開始される前に.ssh/rc が処理されることが原因です。 のLOGIN PROCESSセクションを参照してくださいman 8 sshd)。

ここでは Robert のソリューションの方が優れていますが、screen と byobu は独自の bash インスタンスを開くため、無限再帰を避ける必要があります。そこで、屏風に合わせて調整したバージョンを以下に示します。

## RUN BYOBU IF SSH'D ##
## '''''''''''''''''' ##
# (but only if this is a login shell)

if shopt -q login_shell
then
    if [ -n "$SSH_CONNECTION" ]
    then
        byobu
        exit
    fi
fi

exitafterも追加したことに注意してくださいbyobu。そもそも byobu を使用する場合、IMO は通常、それ以外で何もしたくないからです。

于 2012-12-10T17:46:03.897 に答える