web-dev-qa-db-ja.com

前のbashコマンドの引数を思い出すにはどうすればよいですか?

Bashに前のコマンドの引数を思い出す方法はありますか?

私は通常、vi file.cに続いてgcc file.cを実行します。

Bashに前のコマンドの引数を思い出す方法はありますか?

269
The Coder

$_または!$を使用して、前のコマンドの最後の引数を呼び出すことができます。

また、Alt + .を使用して、前のコマンドの最後の引数を呼び出すことができます。

492
codaddict

前のコマンドに次のような2つの引数があった場合

ls a.txt b.txt

そして、あなたは最初のものを望んでいた、あなたは入力することができます

!:1

与える

a.txt

または、両方が必要な場合は、次のように入力できます

!:1-2

与える

a.txt b.txt

これを任意の数の引数に拡張できます。例:

!:10-12
145
Robert Gowland

!!:nここで、nは、必要な引数の0から始まる位置です。

例えば:

echo 'one' 'two'
# "one two"

echo !!:2
# "two"

!プレフィックスは、前のコマンドにアクセスするために使用されます。

その他の便利なコマンド:

  • !$-前のコマンドの最後の引数
  • !^-前のコマンドからの最初の引数(プログラム/ビルトイン/スクリプトの後)
  • !!-前のコマンド(「バンバン」と発音されることが多い)
  • !n-コマンド番号n from history
  • !pattern-patternに一致する最新のコマンド
  • !!:s/find/replace-最後のコマンド、findreplaceに置き換えます

コマンド履歴の詳細

72
Johntron

コマンドラインで次を押すことができます esc-. または alt+.

前に使用した引数を繰り返し使用します。

60
Antonio Mano

特定のコマンドの履歴で指定された番号がわかっている場合、次の用語を使用して、そのコマンドの引数を取ることができます。

履歴の3番目のコマンドから2番目の引数を取得するには、次を使用します。

!3:2

次を使用して、履歴の最後から5番目のコマンドから3番目の引数を取得します。

!-5:3

マイナス記号を使用して、履歴の最後のコマンドから移動するように要求します。

28
Madisz

はい、!$を使用して、前のコマンドの最後の引数を呼び出すことができます。

15
Justin Ethier

!*は、以前のすべての引数を使用して新しいコマンドを実行します。

ls /tmp
cd !*
#you are now in /tmp
15
user6768257