回答:
$_
または!$
を使用して、前のコマンドの最後の引数を呼び出すことができます。
また、Alt + .
以前のコマンドのいずれかの最後の引数をリコールするために使用することができます。
!!:1
、!!:2
など(!!:0
前のコマンドそのものである。)を参照してくださいgnu.org/software/bash/manual/bashref.html#History-Interaction
!$
、!^
最初の引数に使用します。
echo tiger rabbit
どのように参照できtiger
ますか?
Alt + .
viモードでは機能しません。ここで混乱した他の人のために、参考までに。
前のコマンドに次のような2つの引数がある場合
ls a.txt b.txt
最初のものが欲しかったので、
!:1
与える
a.txt
または、両方が必要な場合は、次のように入力できます
!:1-2
与える
a.txt b.txt
これを任意の数の引数に拡張できます。例:
!:10-12
-bash: :1-2: bad word specifier
ls a.txt
行目2行目ll !:1-2
!:^-$
数値と組み合わせて使用したり、もちろん同様のコードを使用したりできます。
!!:n
ここn
で、必要な引数の0ベースの位置です。
例えば:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
!
プレフィックスは、前のコマンドにアクセスするために使用されます。
その他の便利なコマンド:
!$
-前のコマンドの最後の引数!^
-前のコマンドからの最初の引数(プログラム/組み込み/スクリプトの後)!!
-前のコマンド(「バンバン」と発音されることが多い)!n
- n
からのコマンド番号history
!pattern
-最新のコマンド一致 pattern
!!:s/find/replace
-最後のコマンド、代替find
とreplace
!!:s/find/replace
、あなたもできます^find^replace
。
!*
-前のコマンドからのすべての引数(プログラム/組み込み/スクリプトの後)。例: ls *.tmp *.cache rm !*
コマンドラインでesc- .またはalt+を押すことができます.
前のコマンドの最後の引数を循環します。
↑
との↓
キーも常に機能することがわかりました。
!*は、以前のすべての引数を使用して新しいコマンドを実行します。
ls /tmp
cd !*
#you are now in /tmp
$_
代わりに使用する必要がありました。