前のコマンドのパラメータ(cd、ls、echo以外)を使用してコマンドを再実行するショートカットはありますか?

前のコマンドのパラメータ(cd、ls、echo以外)を使用してコマンドを再実行するショートカットはありますか?

以下を使用して、渡されたログファイルを検索します。

/path/to/logファイル| grep -iEw 'ここにいくつかのIPアドレスがあります。'

これにより、これまでに渡されたすべてのログ行が提供されるため、何が起こったかを確認できます。今何が起こっているのかを確認したいので、以下を交換する必要がありcatますtail -f

テール-f/path/to/logファイル| grep -iEw 'ここにいくつかのIPアドレスがあります。'

答え1

!!:*最後のコマンドラインのゼロワード以外のすべての単語を引用するために使用できます。

!!前のコマンドを参照し、:イベント指定を単語指定子と区別し、*0番目の単語を除くすべての単語を参照します。

これはHISTORY EXPANSIONbash(1)の一部です。

wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» tail -f !!:*
tail -f foo | grep bar
bar

^string1^string2^クイック置換を使用して最後のコマンドを繰り返して、次のものを置き換えることもstring1できますstring2

wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» ^cat^tail -f
tail -f foo | grep bar
bar

答え2

  1. 前の行を読み込むには、UpまたはCtrl+を押します。P前の行などが必要な場合は繰り返します。
  2. 行の先頭に移動するには、HomeまたはCtrl+を押します。A
  3. Alt+を押すと、カーソルDの下にある単語、つまり置き換えたいコマンドが削除されます。
  4. 今実行したいコマンドを入力してください。
  5. 実行コマンドを押しますEnter

関連情報