FreeBSD tips集
ちっとは役に立つ情報を提供しなければ、と、tipsのページをようやく開設します。まとまってから
アップしよう、なんて考えは捨てました。いつになってもできないからです。逐次取り込み、ある程度
たまったら整理します。
<<インデックス>>
- lsの日本語化・・・フィルタを使えばOK(99.7/12)
日本語の名前のついたファイルは、標準のlsでは、???のように表示されます。
ファイル名自体は、ファイルシステムもcshなどのシェルもマルチバイト
コードに対応しており(シェルのヒストリ機能など一部を除く)、例えばecho *と
すると、カレントディレクトリに、ディレクトリも含め、ファイル名が日本語の
ものがあれば、ちゃんと表示してくれます。
しかし、これでは整形してくれませんし、ファイル属性の表示や日時でのソート
などのlsのオプション機能は使えません。
最近のパッケージでは、日本語化lsがパッケージとして追加されているようです
が、実をいうと、既存のlsのままでも、日本語ファイル名の表示はできます。
ソースを見れば分かるのですが、実はlsコマンドも、一応マルチバイトコードの
表示には機能的に対応しており、ファイルシステム上のファイル名をそのまま出力
することができるのです。ところが、よくよくみると、出力先がtty、つまり
ターミナルのときには、ASCIIでないコードは、すべて?に置き換えて
いるのです。
以前は、日本語を使うために私はこのコマンドのソースそのものにパッチを当てて、この判定を外す
ことで日本語化して使っていました。しかし考えてみると、出力先が
ターミナルでなければいいわけです。例えば、
ls > /tmp/ls.log
としてやれば、/tmp/ls.logファイルの中には、ちゃんと日本語の
ファイル名が出力されるのです。
当然、これはパイプでもいいわけで、
ls | cat -
でOKです。私の場合、せっかくフィルタを使うのだからと、もう少しひねって、
ls [オプション] [ファイル名] | nkf -e
となるように、cshのaliasを、
alias ls "/bin/ls \!* | nkf -e"
と、.cshrcファイルに定義してあります。
なお、半角かなは使うべきでない、という教訓は、ファイル名についても
同様です。
- メディアがないと削除されるリムーバブルメディア(99.7/02)
FreeBSD2.2.xでは、MOなどのリムーバブルメディアは、空でもドライブの電源が入っていれば、
デバイスのコンフィギュレーションが実行され、あとからメディアをいれれば自由にマウントして使えました。
しかし、FreeBSD3.1Rでは、メディアが空だと、ドライブは認識するのですが、デバイスとしては、
コンフィギュレーションを削除されてしまいます。このため、/dev/da*とか、/dev/od*でのアクセスは
できなくなります。
なお、メディアは、入ってさえいれば、別にファイルシステムが作成済みでなくても大丈夫、
MS-DOSフォーマットや、未フォーマットでもOKです。でなきゃ、未フォーマットのメディアしかない
時は困ってしまいますからね(^_^)。
ともかく、リムーバブルメディアを使いたいときは、ブートする前に、ドライブの電源だけでなく、
なんらかのメディアを中に入れておきましょう。
- ちょっと戸惑うpppの動作(99.6/29)
tipsとは言えないかも知れませんが、pppの動きについて触れます。
FreeBSD 3.1Rのpppのフロントエンドの動作は、2.2.7Rと変わっています。
それまでも、pppの機能については、結構変更がありました。当初は、ppp.secretの設定がなければ、
どのユーザも自由にpppの起動ができました。もちろん、モデムのつながったシリアルデバイスファイルの
パーミッションがあれば、ですが。2.1.xの頃の話です。しかし、これではセキュリティに問題があると
見なされたらしく、 2.2.5Rの頃以降は、スーパーユーザモードでしか起動できなくなりました。しかし、
それではさすがに不便だということだったのか、3.1Rでは、/etc/ppp/ppp.conf に、allow userコマンドを
記述することで、特定の一般ユーザも起動できるように、さらに改良されています。
ここまでは蛇足です。実は、今回の動作の変更というのは、インタラクティブモードでダイヤルした時の
動きです。もう2.2.7Rでの環境では使っていないので、早くも私の記憶は曖昧ですが、これまでは、
ダイヤルの動作や、プロバイダへのログイン時の認証などの接続の経過が、フロントエンドに表示されて
いました。ダイヤル中の電話番号などです。その結果、「ppp ON myhost > 」というプロンプトが入力
モードに戻ってきたときに、pppが小文字ならログイン失敗、PPPと大文字に変わればリンク確立成功と
いう意味でした。
ところが、今回、dialコマンドを入力すると、すぐにプロンプトが戻って、入力モードとなるのです。
これは、従来はプロンプトが戻るまでは入力キーが受け付けられず、killでも使わないとpppの動作を
制御できなかったのが、できるようになったのだと思います。しかし、私はその変更が分からなかった
ため、てっきりダイヤルに失敗しているのですぐ戻るのだと思い、またオンラインマニュアルからも
そうした変更を読み取れなかったため、しばらく試行錯誤してしまいました。どうしても理由が
わからん、と思っていたら、いつの間にかpppがPPPとなって、つながっているではありませんか。
その時点で、ようやくpppのインタフェースが変更されたのだと気付きました。
ちなみに、今回の仕様では、pppは、ppp→Ppp→PPp→PPPと変化します。意味は、[Ppp=接続完了、LCP 完了]、
[PPp=認証完了]、[PPP=IP アドレス合意完了]です。実際に、プロバイダに接続するための設定は、
いずれまた紹介します。
- PAOなしで電源断シャットダウンのできるFreeBSD 3.1R(99.6/25)
シャットダウンで電源を落とせるのはMacもWinもUNIXも同じですが、UNIXの決定的な特長は、コマンド
ラインで実行できること。だから、会社に自宅からログインして作業し、終わればリモートで電源を
落とすことができるし、大量にプリントアウトしているような場合、
# sleep 6000; shutdown -x now
と入力しておくことで、この場合では100分後に勝手に電源を切ってくれるので、そのまま外出したり
就寝したりすることができます。
さて、これまで、デスクトップ機で、APMによる電源断シャットダウンをするには、ノート用の
パッケージであるPAOをインストールしてカーネルを作り直す必要がありました。shutdownコマンドも、
標準のものは電源断指定の-xオプションはないので、このPAOにより作り直され、既存のshutdownを
差し換えます。
ところで、ノートの環境でカードなどを使うのにPAOが必要という状況は変わっていませんが、
デスクトップ機で、電源断シャットダウンをするためだけにPAOを導入する必要は、3.1Rでは
なくなっています。標準カーネルにも組み込まれているAPMデバイス、apm0と、fasthaltコマンドで、
電源断シャットダウンが可能となっているのです(もしかしたらもっと前のバージョンから可能に
なっていたかもしれませんが、今回初めて気付きました)。
現在、apm0は、標準カーネルはディセーブルとなっています。したがって、起動時にこれをイネーブル
にして立ち上げ、終了時、shutdown -x nowの代りに、fasthalt -pと
コマンド入力(もちろんスーパーユーザーで)すれば、それだけで電源断までやってくれます。
2.2.xと違い、3.xは、カーネルブート時のコンフィギュレーションが次回の起動時に反映されませんので、
上記方法で正しく動けば、apm0のディセーブル指定を外してカーネルを再構築するのがベストでしょう。
ブート時のドライバのイネーブルの仕方や、カーネルコンフィギュレーションと構築の方法は、
一般的事項としてここでは省略しますが、わからない、というメールなりをいただければ、その
方法に関する記事を別途作成し、アップします。
- viでエディットできないテキストファイルはどうする?(99.6/24)
・・・意外と使えるee
テキストエディタなのにviでエディットできないファイルってあるの?とまず問われそうですが、
これがあるんです。典型的な例が、一行の長〜いファイルと、半角カナ。
viでは、一行ごとにバッファを生成して編集しますので、そのバッファサイズがある程度大きくなると、
「行が長すぎるからエディットしてやんない」といって起動を断るか、単に長すぎる行以降を断りもなく
捨ててしまったりします。
私は、ページの更新を家でやったり会社の休み時間にやったりするのですが、そうすると、どれが
最新のファイルか分からなくなります。ジオツールで作成する人は関係ないですが、私はあくまで
エディタでしこしこ作成するのが好きですので、そういうときは、エエイめんどうだ、と、WWWcpなどの
ツールを使って、もっぺん全部ダウンロードしたり、必要なファイルだけブラウザから保存したりします。
このとき、ジオシティのファイルは、オリジナルのファイルに、広告バナーがついていますが、
この広告バナーが、viで開けられないくらい長〜い一行なのです。また、私のようにftpでアップする場合、
そのまんまでputすると、バナーが二つに増殖してしまいます。そこで、いずれにしてもバナーをいったん
除いてやる必要があります。
UNIXに慣れた人ならすぐ思い付くのはfoldコマンドで長すぎるファイルを行分割することでしょう。
また、muleのエディタも、長い行に耐性があります。パターンが決まっているなら、その行を
自動削除するよう、簡単にシェルスクリプトでも書くという手もいいでしょう。しかし、foldでいったん
別のファイルに置き換えるのはおっくうだし、muleは重たいし、スクリプトでは特定のパターンしか
できないし、という場合は、ee(easy editor,日本語版はjee)を使ってみることをお勧めします。
このエディタはいかにも初心者向けに、標準で起動すると、編集コマンドのヘルプが画面上部に
表示されます。簡単な操作なら、使ったことのない人でも問題ありません。viで開けない長い行も開ける
ほか、viのもっとも苦手なEUCの半角カナも、ちゃんと扱えます。
私は、まずjeeでファイルを起動し、不要な部分を削除してから、viでエディットすることにしています。
何も考えなくていいので、実に楽です。
ちなみに、上記のように半角カナも使えるのは、なかなか便利です。kterm上でelvis(vi)で半角カナを
開けると、ktermがおかしくなってしまって、ターミナルリセットしなければならなくなりますから、
半角カナを含むファイルのビューアとして使うという用途にも適しています。
- 安定したNetscapeはどれ?(99.6/22)
・・・Communicator4.04ならばっちり!!
日本語の正式サポートされていないFreeBSD版のNetscape。いろいろな方の努力で、リソースの
日本語化や、日本語入力も、一部のmotifに起因すると言われるバグのほかは、ずいぶんと
完成度の高いものとなっています。
ただ、動作の不安定さにはどうも悩まされます。固まったり、突如バスエラーを起して死んだり・・・。
もともとNetscapeは、linux版については一応SUPPORTEDとなっていますが、FreeBSD版は、UNSUPPORTEDと
なっています。しかし、それではlinux版が安定しているかというと、そうともいえないのです。Turbo Linux
Pro 3.0に収録されているCommunicator(バージョンは忘れた。4.05?)は、Linux上で使用しても結構
不安定でした。
もっとひどいのはFreeBSD 3.1Rに付属しているFreeBSD版のCommunicator4.50で、これはもうちょっと
使うとすぐバスエラーで消え失せてしまいます。
可能な対策は、
- Netscape Navigatorバージョン3を使う。
- linux版を使う(少しはまし?)。
などがあります。
まず、Netscape Navigatorバージョン3は、実際、非常に安定していました。そのため、現在のリリース
でも、通常、パッケージにはCommunicator以外にそれが含まれています。しかし、その分機能は古く、
たとえばJRの座席予約確認、CYBER STATION
は、このバージョンではうまく動作しません。
次にlinux版ですが、これはFreeBSDの最近のパッケージにも含まれています。要するに、linux
エミュレーション機能を使用して、より安定したlinux版Communicatorを使おう、という趣旨です。しかし、
これも上述のように、それほど安定しているとは言えません。
では、FreeBSDユーザにとっては、安定したブラウザを使うことは夢なのでしょうか。いいえ、そうでは
ありません。
実はこれは偶然発見したのですが、少なくともFreeBSD3.1Rで使う分には、2.2.7Rのパッケージに収録
されていたCommunicator4.04が、異常なほど(変な言い方 ^_^;)安定しているのです。
このへんのCommunicatorのバージョンのFreeBSD版には、どうもメモリ管理に不備があるらしく、
異常にメモリを食います。最初、ノートにインストールしたときは、しばらく使っていると頻繁に
スワップが起き、ついにはスワップ領域不足というシステムエラーがコンソールに表示されて
ブラウザが落ちました。そして、ひどいときにはX-Windowのサーバも道連れです。
これは使えんわ、と思ったのですが、その後、会社のマシンにFreeBSD 3.1Rをインストールしたのを期に、
使えるCommunicatorを探していて、4.04の安定に気付いたわけです。そして、ノートも3.1Rにアップグレード
した後、今度は十分なスワップサイズを確保して利用してみると、やはり非常に安定して使える
ことがわかりました。要するに、メモリをたっぷり積むか、十分なスワップ領域をとればいいのです。
目安は、128Mくらいでしょうか。環境によって変わるので、各自調整してください。
ただ、会社の環境では、たまに、ブラウザを終了してもプロセスが残るという現象が起こっています。
大した実害はないのですが、頻繁にプラウザを起動・終了する場合は、killコマンドでいったん殺して
やる必要があったり、前のロックファイルが残って、起動時に警告メッセージが出たりするかも
しれません。ノートでは今のところその現象は見られていません。
ということで、安定したブラウザを求めて悩んでいる方は、ぜひトライしてみてください。
メール待ってます!!
neyubacca@yahoo.co.jp