Bash

bash で直前の履歴を有効活用したい

More than 5 years have passed since last update.

直前のコマンドの引数をそのまま使う

コマンドで長いパスを打って、また次の別コマンドで同じパスを打つのって面倒ですよね。
↑キーを押してカーソルを動かして、コマンドの部分だけ書き換えるなんて、あたしって、ほんとバカ…

そんなときは !$ を使いましょう!
直前のコマンドの引数をそのまま参照してくれます♪

$ cat ~/madoka/magica/mami.txt
tiro finale!

$ rm !$
rm ~/madoka/magica/mami.txt

直前のコマンド全体をそのまま使う

sudo を忘れてコマンド打っちゃうなんて、あたしって、ほんとバカ…

そんなときは !! を使いましょう!
直前のコマンドを、(オプションや引数も含めて) まるごと参照してくれます♪

$ rm -f /etc/madoka/magica/walpurgisnacht.txt
 rm: cannot remove `/etc/madoka/magica/walpurgisnacht.txt': 許可がありません

$ sudo !!
sudo rm -f /etc/madoka/magica/walpurgisnacht.txt

ちなみに history コマンドを打つと、コマンド履歴に連番が振られたリストが表示されますが、
その履歴の番号を利用して、例えば !123 と打つと、その番号に紐付いたコマンドが実行されます。
もっと過去の履歴を活用したいときは、こちらの方法で。

$ history
    1  cd ~/madoka/magica/
    2  ls
    3  cat kyoko.txt
    4  history

$ !3
cat kyoko.txt
rosso phantasma!