Bash Hack & Tips 1

最近shellにハマってるので調べて便利そうなものをまとめてみます。

タイトルに「1」と記載してますがシリーズ化するかは分かりません。たぶんしないでしょう…

cd コマンド 少しのスペルミスを自動で修正して実行してくれる

次の一文を ~/.bashrc または ~/.bash_profile に記載

1
$ shopt -s cdspell

ex)

1
2
$ cd Dropbix/Publoc
Dropbox/Public

少しのスペルミスは構わず実行します。リファレンスによるとチェックされるスペルミスは

チェックされる誤りは、文字の入れ替わり・文字の欠け・ 1 文字余分にあることです

だそうです。このオプションは対話型のみに有効でスクリプト内では無効となっています。

historyからのコマンドの実行は一度編集バッファに出力する

次の一文を ~/.bashrc または ~/.bash_profile に記載

1
$ shopt -s histverify

ex)

1
2
3
直前に実行したコマンドを再実行
$ !!
rake preview

histverifyオプションが無効の場合、即時に実行されますが有効の場合は、確認後に実行することができます。

連続して実行したコマンドはhistoryに保存しない

次の一文を ~/.bashrc または ~/.bash_profile に記載

1
$ export HISTCONTROL=ignoredups

historyの最後の行と同じコマンドは記録されません。

空白で始まるコマンドはhistoryに保存しない

次の一文を ~/.bashrc または ~/.bash_profile に記載

1
$ export HISTCONTROL=ignorespace

ignoredups ignorespace 両方を指定したい場合

1
$ export HISTCONTROL=ignoreboth

EOF (Ctrl-D) 入力の許可数を設定する

次の一文を ~/.bashrc または ~/.bash_profile に記載

1
$ export IGNOREEOF=5

デフォルトでは Ctrl-D を一度押すとログアウトしてしまいますが、IGNOREEOFを設定することでその回数を任意に決めることができます。

バックアップファイルを簡単に作成する

作業をする際に念のためconfファイルのバックアップをとっておきたい場合があります。

通常のコピー

1
$ cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.back

もっと短く書けます。

1
$ cp /etc/httpd/conf/httpd.conf{,.back}

ディレクトリを複数作成する

上記と同じ方法で複数のディレクトリを作成することできます。

1
2
3
4
5
6
7
8
$ mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ ll ~/rpm/

drwxr-xr-x  2 noto  staff  68  4 17 00:19 BUILD
drwxr-xr-x  2 noto  staff  68  4 17 00:19 RPMS
drwxr-xr-x  2 noto  staff  68  4 17 00:19 SOURCES
drwxr-xr-x  2 noto  staff  68  4 17 00:19 SPECS
drwxr-xr-x  2 noto  staff  68  4 17 00:19 SRPMS

参考

Comments