回答:
たとえば、次のコマンドを実行すると:
mkdir long_path_here/new_dir
ほとんどの場合、最近作成したディレクトリに移動します。次の「ショートカット」を使用してこれを行うことができます。
cd Esc.- cdを押してからEsc続けて押します.(同時にではありません)。前のコマンドに引数がない場合、前のコマンド自体を取得します。cd !*-この場合、previuosコマンドからすべての引数を取得します。前のコマンドに引数がない場合、何も取得しません。cd Alt+ .-タイプcdとプレスの後Altと.(同じ時間で)。実際、この方法を使用して.(リリースせずにAlt)を押し続けると、すべてのコマンドの最後の引数が履歴から取得されます。コマンドに引数がない場合、コマンド自体を取得します。一般的に:<command> Esc.または<command> !*または<command> Alt+ .。
前のコマンドのすべての引数、または最後の引数だけが必要な場合は、いくつかのショートカットがあります。
<command> !* <command> !$例:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
前のコマンドの引数リストから単一の引数が必要な場合は、次を使用できます。 <command> !!:<argNumber>
例:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
!単一のargバージョンには1つだけが必要です(例:)!:2。デフォルトのbashを想定しています。
!^代わりに使用することもできます!:1。
n前のコマンドからth引数を取るには、Alt+ n+と入力しますAlt_。たとえば、後:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
echo続けて入力するAlt2Alt_と、次のプロンプトでこれが表示されます。
$ echo 2
ヒットした後の「スクリーンショット」Alt2は次のとおりです。
(arg: 2) echo
Alt_複数回繰り返してn、前のコマンドのth引数を連続して取得できます。
別の便利なアイデアは、aliasを定義することr="fc -s"です。次に、コマンドの置換を実行できます。
$ echo 1
1
$ r echo=history
history 1
27755 history 1