Last Modified: Tue Oct 21 15:33:49 EDT 2003 (10/22, 04:33 JST)
コンピュータの使い方を上達させるのに最も早い方法は、「他人の技を盗む」ことです。 UNIX のシェルような複雑なシステムの場合、これはとくにあてはまります。 かくいう新山も、他の人がシェルを使っているのを見て「あ、こんなやり方があるのか」と驚き、 そのたびにいろいろな技を盗用してきました。このように自分がふだんなにげなく使っているものでも、 じつは他人から見ると目から鱗ということがままあるので、ここでは新山の使っている bash の環境と小技 (といえばいえるようなもの) を紹介します。 はっきりいって自信はまったくなく、知ってる人が見れば ひどく頭の悪いこともやっているかもしれませんが、役に立つこともあるかもしれません。
なお、このページのタイトルは「こわざしゅう (小技集)」ではなくて、 「こえだしゅう (小枝集)」ですのでご注意ください。
.bashrc5年以上前、まだ tcsh を使っていた時代からずっと修正しつつ使いつづけてきた bashrc ファイル。たまに何度か環境が変わって大幅に改装していますが、いくつかの行は 何年も前からあったもの。環境変数 LESS の設定とかは苦労した。
~/.bashrc (コメントつき) (17kbytes)
cdhist.sh あるとき、複雑なディレクトリ階層をいったりきたりするために
pushd、popd そして dirs をおぼえた。
でもこれらはどうにも使いにくい。ちょうどそのころ web ブラウザになれていたので、
ブラウザの back や forward のようにカレントディレクトリを行ったりきたりできるコマンドがほしいと思い、
一念発起して作ったのがこれ。いまだに便利に使っています。これはリング状のディレクトリバッファを
持っており、以下のように使います:
yusuke ~[1]$ . cdhist.sh (cdhist を起動) yusuke ~[2]$ cd /tmp (カレントディレクトリが /tmp に移る) yusuke /tmp[3]$ cd /usr/bin (カレントディレクトリが /usr/bin に移る) yusuke /usr/bin[4]$ - (ひとつ前に戻る) yusuke /tmp[5]$ cd /etc (カレントディレクトリが /etc に移る) yusuke /etc[6]$ - (ひとつ前に戻る) yusuke /tmp[7]$ + (ひとつ後に進む) yusuke /etc[8]$ = (ディレクトリの履歴) 3 /usr/bin 2 ~ 1 /tmp 0 /etc yusuke /etc[9]$ = 2 (リスト上のディレクトリを直接指定) yusuke ~[10]$
cdhist.sh (4kbytes)
思いだし次第、適宜増やす予定。
alias which='command -v'
which を使いなれてしまっていたので、それを bash でもそのまま使うため。
(でも実はいまでは「h」というただ一文字のコマンド名になっている)
ls -l `which emacs`
ls -altr
-altr" という文字の並びが覚えやすい。2ちゃんねるのどこかのスレで発見。
dd if=/dev/fd0 of=myfloppy.img bs=1024 count=1440 (読み込み)dd if=myfloppy.img of=/dev/fd0 bs=1024 count=1440 (書き込み)myfloppy.img にベタ読み
(あるいはファイルからフロッピーにベタ書き) する。むかし Slackware をインストールするときには必須の作業。
Uさんがやってた。
ls .??*
." ではじまるファイルを指定する方法。
単に ".*" とやってしまうと . や .. も含まれてしまうので失敗する
(そしてたいていはひどい目にあう)。Sさんから教えてもらったもの。