UNIXを使っていて気づいた細かい不満を挙げます。他の人の意見も 混ざっています。もっと UNIX が嫌いになりたい人は Unix Hater's Handbook をどうぞ。UNIXをなんとかしたい人は Let's Make Unix Not Suck をどうぞ。
目次
設定ファイル地獄
- 山のような設定ファイル
ソフトウェアごとに異なる流儀を覚えるのむちゃくちゃ面倒。 まさに、しょうもない 雑多なノウハウ の山。 - procmail の設定ファイル
変態的。 :0 ってなんだ? - BIND の設定ファイル
ドメイン名を書くレコードの最後に . をつけ忘れる。 - シェルごとの .*rc .*profile .*login などの挙動の違い
わけわからん。 - /etc/shells
こいつを設定しないと telnet や ftp のログインではまる。 - /etc/ld.so.conf (linux)
/usr/local/libを追加(と ldconfigの実行)を忘れてはまる
変な文法
- Makefile の左端のTAB
端末からコピーアンドペーストしたときは、ただの空白になりがち。 - Makefile の $$
$ をエスケープするには $$。わかりづらいな。 - シェルスクリプトでの $@ と "$@" の違い
普通こんなの気づかないよ。 - シェルスクリプト、 Makefile、Perlなどの暗号的変数名
$@ $< $_ $$ などなど。覚えられるかこんなの。
流儀の違い
- foobar --help を標準エラーに出力するプログラム
|lessでつかめない。 2>&1|lessとするのは面倒。 - foobar --longname と長いオプションが指定できないプログラム
1文字のオプション覚えるのは苦痛。 - 正規表現の古い流派
\(foo\|bar\) なんて書くのは面倒。 (foo|bar) の方がずっといい。 - あほなtarball
展開するとカレントディレクトリにファイルをぶちまかれる。 - GNUものに慣れると他のものが使えなくなる
cp -a や引数なしの find は常に使いたい。
貧乏くささ
- xbiff のポーリング
ファイルシステムの方からイベントで通知してほしい。 - kill -HUP `cat /var/lock/foo.pid`
やり忘れる。設定ファイルの更新くらい自分で気づいてほしい。 - locate/updatedb/locatedb
ファイルの一覧のデータベースを cronで作成する機構。 最新の情報じゃないし、そもそもファイルシステムが賢ければ こんなものいらない。 - mktexlsr
mktexlsr は有害だ (mktexlsr Considered Harmful) を参照のこと。 locatedb と同じようなもの。
プログラミング
- bcopy と memcpy
引数の順序が逆。どちらかしか存在しないことも。 - 大抵のプログラミング言語
シンボル名に `-' が使えない (Lispはいい!) - ./configure スクリプト
こんなものが存在しない世界が理想なのだが。 - memcpy と memmove
memmove だけでいいのに。The Practice of Programming の p.43を参照のこと。
初心者の敵
- test
./test - - からはじまるファイル
rm ./-foo - gcc foo.c -lm
-lm を忘れる。「そういうオプションだ」と勘違いしがち。 - kterm で Ctrl + s を押してしまう
Ctrl + q で復帰する。 - pstopos
下手に回転させると用紙の外に飛び出でてしまう。 - zsh
最後に改行のない出力をプロンプトが隠してしまう。例:
% echo -n foobar
%
% unsetopt promptcr
% echo -n foobar
foobar% - TeX
萩谷氏の エッセイを参照のこと。
X Window System
- .Xdefaults と .Xresources の違い
ようわからん。 - Xのフォントの仕組み
覚えること多すぎ。 - たくさんフォントがある環境でxfontselすると 選択候補が画面からはみだす
Athenaウィジェットしょぼすぎ。 - GTK以外のツールキット
もはや見たくない。GTKで見た目を統一したい。
その他
- 空白の入ったファイル名
災いの元。 - fml の管理用のアドレス (-ctl のつくやつ)
間違って subscribe の申し込みを投稿用のアドレスに送ってしまう。