●○スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



●○history

historyコマンドって、意外と便利な機能がいっぱいあるんですね。最近は、身近なコマンドをしっかりと使えるようにする事に熱中しています。

Manpage of BASH」を読むと、知らないオプションがたくさんあって、驚きました。今まで、「!n」(nライン目のコマンドを実行)ぐらいしか使ってなかった。

「!n」「!!」「!string」「^string1^string2^」あたりが、かなり使えそうです。
修飾子では、「h」「t」「r」「e」「s/string1/string2/」が使えそうです。
「h」ディレクトリ部を残す(headのh)
「t」ファイル名を残す(tailのt)
「r」サフィックスを取り除き、ベース名を残す
「e」末尾のサフィックスを残す


単語指示子と修飾子の使い方の例をメモしておきます。

$ ls ~/bin/tv.sh
このコマンドを始めに実行したとします。

・ls を du に変更する(その1)
$ !!:s/ls/du
置換を使って変更します。

・複数の ls を du に変更する(その2)
$ !!:gs/ls/du
置換したい文字列が複数個ある時は、:gs/ を付けます。
:s/ だけだと最初に文字列しか置換されません。

・ls を du に変更する(その3)
$ ^ls^du^
置換を使って変更します。

・ls を du に変更する(その3)
$ du !!:1
引数を取り出して、再利用します。

・tv.sh を del.sh に変更する(その1)
$ !!:0 ~/bin/del!!:1:e
これは、複数の履歴を使った例。
5つ前のプログラム名と1つ前の引数を組み合わせる事もできます。
例:$ !-5:0 !!:*

・tv.sh を del.sh に変更する(その2)
$ !!:0 !!:1:r!!:e
「!!:1:r」で前の実行結果のベース名を取り出し、「!!:e」で前の実行結果の末尾のサフィックスとくっつける。

・tv.sh を del.sh に変更する(その3)
$ !!:0 !!*:h/!!*:t
「!!*:h」は、最後のスラッシュも無くなってしまう。

・tv.sh を tv.org に変更する
$ !!:r.org


もう、全部タイプした方が早い気がする様な例でした。使いようによっては、かなりコマンドを打つ量を減らして、日々の操作を高速化できそうです。
スポンサーサイト










ブログ管理人にのみ表示を許可する


trackback
trackback_url
http://moom6.blog2.fc2.com/tb.php/40-ef0302ca

[TOP]
copyright (C) 2006 Linuxとかのメモ all rights reserved. [ template by *mami ]
//
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。