ターミナル環境をターボチャージ!
2007/07/03 20:59 posted by kunkichi

lifehacker.com に『HowTo: Turbocharge your terminal』という記事が掲載されています。(原文ままのタイトルですね)
ということでターミナルを便利に使うための .bashrc の設定がいくつか紹介されていたので paralles にインストールしてある CentOS 5でやってみました。
-
まずは今使っている .bashrc バックアップ
$ cd
$ cp -pi .bashrc .bashrc_BAK -
次に .bashrc に以下の記述を追記します。.bashrc に直接追加していくのではなく、.LifehackerTerminalTweaks という別のファイルを読み込むようにしておいてそちらに記述していくというわけね。
if [ -f ~/.bashrc ]; then
source ~/.LifehackerTerminalTweaks
fi -
では .LifehackerTerminalTweaks に 設定 を追加していきます。
まずはよく使うコマンドをショートカット化、ということで、自分がどんなコマンドを多く使っているかを見てみます。僕の場合はこんな結果。$ history | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -n | tail | sort -nr
180 ls
138 cp
95 cd
67 yum
29 dateテスト環境なのであんまりたいしたコマンド叩いてないね(笑)。まあとりあえずこういうコマンドを多く叩いてることがわかったのでこの辺りをaliasコマンドでショートカットとして使えるようにします。
viコマンドで .LifehackerTerminalTweaksを開いて
$ vi .LifehackerTerminalTweaks僕の場合は以下の設定を追加
# lsコマンドで.で始まるファイルも表示します。
alias ls="ls -a"
# lsコマンドで詳細表示かつ更新日の新しいものから表示します。
# もちろん.で始まるファイルも表示。
alias ll="ls -alt"
# ターミナルの表示をクリアします。
alias c="clear"
# 一つ上の階層に移動します。
alias up="cd .."
# ホームディレクトリに移動します。
# cd だけでいいじゃん、って気もするけどね。
alias home="cd ~"
# トップの階層(/)に移動します。
alias disk="cd /"
# yumでアップデート可能なパッケージがあるかチェックします。
alias check="sudo yum check-update"
# yumでアップデートします。
alias update="sudo yum update"
# yumでパッケージの検索をします。
alias search="sudo yum search"
-
次は、ヒストリー機能の設定。
bashにはヒストリー機能があって過去に実行したコマンドの履歴を追うことができて、カーソルキーの上下で再度呼び出して実行したりすることが出来るのだけど。デフォルトではコマンド履歴数も履歴保存ファイル(.bash_historyファイル。こっちはログアウトしても履歴が読み出せる。)のコマンド履歴数も1000になっていて、手数が多い(爆)僕にはちょっと少ないので増やします。
HISTFILESIZE=100000000
HISTSIZE=100000ただ、セキュリティ的には、コマンド履歴がファイルに保存されてしまう点に問題がある場合もあるので、職場とか共有のサーバでは実施しない方がいいかもしれません。
-
次に、補完機能の設定。
bash ではコマンドやパスを途中まで入力してタブキーを押すと自動的に補完してくれる機能があるのだけど、通常これはデフォルトで有効になっています。でも補完の動作を自分で書くことも出来るらしくて(これは初めて知った)その動作がファイルで別途用意されている場合があります。その場合はそのファイルを読み込んで、より高度な補完機能を使えるようにします。
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fiちなみに CentOS 5.5 ではこのファイルは存在しなくて。調べてみたところ、このファイルをカスタマイズして配布されているサイトがあり、以前はかなり精力的にメンテされていたようだったので早速頂いてきて試し中です。
・Working more productively with bash 2.x/3.x
上記サイトから”Download”のすぐ下の”bash-completion-20060301.tar.gz”をダウンロードしてきて展開。中の bash_completion ファイルを /etc に置きます。
-
まだまだ行きます。次は暗号化と復号化。
最近はセキュリティも気になるので、ファイルの暗号化・複合化をGNU pg を使って簡単にできるように。もちろん GNU pg必須です。
encrypt ()
{
gpg -ac --no-options "$1"
}
decrypt ()
{
gpg --no-options "$1"
}使い方は、暗号化の場合、
$ encrypt ファイル名複合化の場合、
$ decrypt ファイル名
で、両方ともパスワードを聞かれるので入力すればOK。 -
あと少し。次はログイン直後に表示されるメッセージのカスタマイズ。
ログイン直後に一通り把握しておくとよいものをコマンドで実行して表示するようにしておけば便利です。とりあえず表示するのはこんなところ。
- 日付・時間(dateコマンド)とカレンダー(calコマンド)
- システム起動からの経過時間と現在ログインしているユーザ数(uptimeコマンド)
lifehacker.comの記事ではちょっと間違っているようだったので修正。
clear
echo -e "Lifehacker, the Productivity and Software Guide"
echo -e ""
echo -ne "Today is "; date
echo -e ""; cal ;
echo -ne "Uptime: ";uptime | awk '{print $3, $4 "users."}'出力してみるとこんな感じになります。
Lifehacker, the Productivity and Software Guide
Today is 2007年 7月 3日 火曜日 20:13:21 JST
7月 2007
日 月 火 水 木 金 土
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Uptime: 2:46, 2users. -
最後です。プロンプト表示をカスタマイズ。
ターミナルでずーっと作業をしていると、自分が今どこのディレクトリにいるかわからなくなったり、ユーザ名とかがわからなくなることが多々あります。pwd とか id とかコマンド実行すればわかるんだけどいちいち実行するのも面倒です。あと、たくさんターミナルを開いて複数のサーバにログインしてたりとかすると、どのターミナルがどのサーバのものなのか、わかんなくなります。
ということで、この辺をプロンプトに表示しておくとわかりやすくなります。僕の場合、表示したいのは以下。
- 現在の時刻
- ユーザ名
- ホスト名
- 現在のディレクトリ
でこんな感じで設定。
PS1="[¥t ¥u@¥h ¥W]¥¥$ "で表示はこんな感じ。
[20:31:05 kunkichi@paralles ~]$
これで終了。そんな難しいことはやってないけど、こうやってまとめてあると参考になりますね。
ちなみにlifehacker.comの設定はダウンロードできるようなので、一から作らなくてもダウンロードしてみて、慣れたらいろいろカスタマイズしてみるのが良いと思います。
・HowTo: Turbocharge your terminal(lifehacker.com)






コメント&トラックバック
トラックバックURL: