Personal tools
You are here: Home ブログ matsuyama History command in practice
Document Actions

History command in practice

ヒストリコマンドをマスターして心も体もDRYになろう。

一つ前のコマンドを実行

% echo a b c
a b c
% !!
echo a b c
a b c

n個前のコマンドを実行

% echo a b c
% touch me
% !-2
echo a b c
a b c

n番目のコマンドを実行

% history
1 echo a b c
2 touch me
% !1
echo a b c
a b c

コマンド履歴からコマンドを検索して実行

% echo a b c
a b c
% touch me
% !ech
echo a b c
a b c

コマンド履歴からインクリメンタルにコマンドを検索して補完

% echo a b c
% touch me
% [C-r]
ech
% echo a b c
a b c

一つ前のコマンドの最初の引数を取り出す

% echo a b c
a b c
% echo !^
echo a

n個前のコマンドの最初の引数を取り出す

% echo a b c
a b c
% touch me
% echo !-2:^
echo a
a

一つ前のコマンドの最後の引数を取り出す

% echo a b c
a b c
% echo !$
echo c
c

n個前のコマンドの最後の引数を取り出す

% echo a b c
a b c
% touch me
% echo !-2:$
echo c

一つ前のコマンドの全ての引数を取り出す

% echo a b c
a b c
% echo !*
echo a b c
a b c

一つ前のコマンドのnから最後までの引数を取り出す

% echo a b c
a b c
% echo !:2*
echo b c
b c

x個前のコマンドのnから最後までの引数を取り出す

% echo a b c
a b c
% touch me
% echo !-2:2*
echo b c
b c

一つ前のコマンドのnからmまでの引数を取り出す

% echo a b c d e f g
a b c d e f g
% echo !:2-4
echo b c d

x個前のコマンドのnからmまでの引数と取り出す

% echo a b c d e f g
a b c d e f g
% touch me
% echo !-2:2-4
echo b c d
b c d
% echo !-3:2-4
echo b c d

一つ前のコマンドのコマンド部を取り出す

% echo a b c
a b c
% echo !:0
echo echo
echo

n個前のコマンドのコマンド部を取り出す

% echo a b c
% touch me
% echo !-2:0
echo echo
echo

ちょっとtypoしたときにすばやく修正する

実際は普通に修正したほうが速いってのは秘密。

% echo xy
xy
% !:s/xy/yx
echo yx
yx

あるいはこちら。当方HHKB Proを使っておりハットが非常にうちづらいので滅多に使いません。

% echo xy
xy
% ^xy^yx
echo yx
yx

いちいちC-rするのは面倒だけど!xxxのxxxの部分がわからない

そんなときは!?xxx?を使います。

% echo very long command is here
very long command is here
% !?long?
echo very long command is here
very long command is here
% !?long #省略可能
echo very long command is here
very long command is here

履歴からrm -rf *とか実行されたら恐いです

素直に打ちなおすか、以下の方法を取るべきです。

% ls *
aaa bbb ccc
% rm -rf !$
rm -rf aaa bbb ccc

どうしても履歴から実行したい場合は以下のようにしましょう。

% !rm:p
rm -rf *
% #実際には実行されません

個人的にヒストリコマンドの文法が非常に覚えにくかったので、in practice形式で冗長に列挙してみました。これだけ読めばどのような文法か理解できるでしょう。ヒストリコマンドは非常に便利なので是非活用してみてください。

Category(s)
linux
The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/matsuyama/history-command-in-practice/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.