ホームページ制作・大阪インフォメーションメディアデザイン

06-6809-5021

Staff Blogスタッフブログ

Centosのbash環境にpecoを導入

i.M.D. Staff
i.M.D. Staff
2015.10.29

image_20151029
 
 

少しでも作業効率をよくしようと思いCentosのbash環境にpecoを導入してみました。

■pecoとは
標準入力を受け取り、インクリメンタルな絞り込みができ、
絞り込んだ行を選択し出力する事ができるフィルタリングツールです。

■やりたいこと
pecoを導入してコマンドの実行履歴を表示する「history」から選択した行を
出力できるようにしたい。

■行ったこと
pecoの導入
ダウンロードを行い、それを解凍し、peco_linux_amd64の中にあるpecoを
pathが通っている階層~/usr/local/binに移動させます。

$ cd ~
$ wget https://github.com/peco/peco/releases/download/v0.1.12/peco_linux_amd64.tar.gz
$ tar -C ~/ -xzf peco_linux_amd64.tar.gz
$ mv ~/peco_linux_amd64/peco ~/usr/local/bin

 
 

~/.bashrcに書きを記述します。
これはヒストリ番号を使って sort -k1,1nr することで環境依存を少なくし、
peco から選ぶときhistoryを重複しないようにし、Perlでフィルタリングするようになっています。
centos,bash環境でpecoを導入してコマンド履歴を便利にするまで。のソースコードを記述させていただきました。

peco-select-history() {
    declare l=$(HISTTIMEFORMAT= history | sort -k1,1nr | perl -ne 'BEGIN { my @lines = (); } s/^\s*\d+\s*//; $in=$_; if (!(grep {$in eq $_} @lines)) { push(@lines, $in); print $in; }' | peco --query "$READLINE_LINE")
    READLINE_LINE="$l"
    READLINE_POINT=${#l}
}
bind -x '"\C-r": peco-select-history'

 
 

.bashrcを再読み込みさせる。

source ~/.bashrc

 
 
以上で完了です。
Ctrl+rでpecoが使えるようになりました。

peco
とても便利!

 
■下記サイトが参考にさせていただきました。
centos,bash環境でpecoを導入してコマンド履歴を便利にするまで。
例えば、pecoをビルドしない

i.M.D. Staff
投稿者:i.M.D. Staff
    2015.10.29 | 22:39
    「ありがとう」「ごめんなさい」「許してください」「愛しています」