シェルはpingを送信したIPアドレスを保存しますか? [コピー]

シェルはpingを送信したIPアドレスを保存しますか? [コピー]

覚えていない、または見つけることができない近道を見たことがあります。 IPにpingを送信した後、そのIPにsshを試みると、IPは自動的に変数に保存されます。

それは次のとおりです。

    ping 10.1.23.4
    ...
    ssh root@$!

そしてIPは2行目にコピーされ、問題なく$!を置き換えます。

それでは、これは実際の構文が何であるかについてのアイデアを提供しますか?それとも特別な構成ですか?関連がある場合はCentosを実行していると思います。ティア

答え1

これがbashismです。 bashはCentOSのデフォルトのシェル言語です。 (Cshにも似ています。)関連セクションを参照してください。歴史的拡張マニュアルでは、!*「前のコマンドのすべての引数」に興味があるかもしれません。または!^、最初の引数を提供するか、!$最後の引数を提供します。

この点に注意してくださいいいえ変わりやすい。これは履歴リセット値に拡張され置換されます。

答え2

別のオプションは、emacs編集モード(デフォルト)でbashを使用している場合は、次のことができます。

$ ping x.x.x.xCtrl- wCtrl-y

- 最後の単語(IPアドレス)をCtrl削除しwて入力します。殺人リング, Ctrl-yキリングの内容が貼り付けられます。

その後、必要なだけ多くのコマンドを実行することができ、IPが必要なときに繰り返すことができますCtrly

$ ssh root@Ctrl-y

新しいコマンドラインで終了関連関数を実行すると、終了ループの内容が置き換えられます。

$ ping x.x.x.xCtrl- wCtrl-y

$ touch /tmp/example.fileCtrl- wCtrl-y

$ ssh root@Ctrl-y

結果は次のとおりです。

$ ssh root@/tmp/example.file

関連情報