Tips


コマンドの詳しい使い方を知りたい

あるコマンド(ここでは jlug としましょう)の使い方が分からない, 詳しい使い方を知りたいという時, jlug -h または、 jlug --help と, オプションをつけて実行してみましょう. ほら, 使い方がでてきたでしょ.
え, もっと詳しい使い方はないかって? そんな時はman jlug と, man コマンドを実行しましょう. 詳しい使い方はman manで.

画面内に収まらないメッセージを読むには

"Ctrl-s" で画面表示を一時停止できます. 再開するには "Ctrl-q" です. 端末によっては "Shift-PageUp/PageDown" で ある程度画面をさかのぼることもできます.

起動メッセージを読むには

dmesg というコマンドで起動メッセージをもう一度表示することができます. "dmesg | less" のようにすればゆっくり参照できます.

コマンドの実行結果をファイルに保存したい

リダイレクトと呼ばれるシェルの機能を利用します. "コマンド >& 保存ファイル名"
具体的にはこうです. "ls >& logfile" こうするとコマンド ls の実行結果は, 画面に表示されずにファイル logfile に保存されます.

標準出力や標準エラー出力のどちらかだけを選択して ファイルに保存することも可能ですが, これは使用しているシェルによって書き方が違います.

sh 系
標準出力のみを保存したい場合 ">&" の変わりに ">" または "1>" を使います. 具体的には "ls > logfile" のようになります. 標準エラー出力には "2>" を使います. また ">&" は, 標準出力と標準エラー出力両方のリダイレクトとなります. bash の場合は "&>" も同じ意味になります.
csh 系
標準出力のみを保存したい場合には ">&" の代わりに ">" を使います. 標準エラー出力のみを保存するのはちょっと難しいので割愛します.

リダイレクトには他にも多くの使い方があります.

シェルの実行結果をファイルに保存したい

複数のコマンドの出力結果や シェルのプロンプトを含む実行結果を保存したい場合には script コマンドが有効です. まず一連のコマンドを実行しようとする前に script ~/hogehogeと入力します. その後で質問しようとしているコマンドを実行します. 全部実行し終えたら exit と入力しましょう. ホームディレクトリに hogehoge という記録ファイルができているはずです.

フリーソフトのバージョン番号

hoged-1.2.33 というプログラムがあったとしましょう. プロジェクト名は hoged, バージョン番号は 1.2.33 です. 最初の 1 はメジャーバージョンと言われ, 相当な変化があった時に増加します. 例えば 「Linux カーネルは バージョン 1.2 から 2.0 にメジャーバージョンアップした」などと言います.

小数点の次の 2 はマイナーバージョンと呼ばれます. マイナーバージョンの使い方はプロジェクトごとにさまざまです. 多くのプロジェクトでは, バグフィックスを含む比較的小さな修正にマイナーバージョンをあてるようです. 大規模なプロジェクト(Linux カーネルや gimp など)では 安定版と開発者版に別れてリリースされることがあります. このような場合, マイナーバージョンが偶数のものは, 安定動作を目的 としたリリース(例:カーネル 2.2.xx) に使い, 奇数のものは開発者向けのリリース(例:カーネル 2.3.xx)に使うことがあります. しかしこれはプロジェクト毎にさまざまで, 決まった作法があるわけではありません.

最後の 33 はマイクロバージョンと呼ばれます. 2つのリリース系列を持つ大規模なプロジェクトでは, バージョン番号の使い方の都合上, なかなかマイナー バージョンを変更するわけにはいかないので, 日常のバージョンアップにマイクロバージョンを使います. この場合のマイナーバージョンの変更は, 商用ソフトのメジャーバージョンアップに, ほぼ相当します. バージョン 0.99.xx には多くの場合, 特別な意味があり, 初めての安定版リリースである, バージョン 1.0 に備えてのバグフィクス段階であるという表示です.

シェルの補完機能

Linux ではファイル名を手でつけるならば, 事実上長さの制限がないうえに, ファイル名に使ってはいけない文字も, ほとんどありません. 何文字のファイル名まで許容され, 使ってはいけない文字はどれかを 捜すのも面白いものです. ext2 ファイルシステムで, やってみましょう.

そのせいかどうかわかりませんが, たまに手で間違わずにタイプするのが かなり厳しい名前を持つファイルがあります. こんなファイル名を全部自分でタイプするのは, ちょっとイヤだなあ, と思ったのはあなたが最初ではありません. そして, そんなときには大抵の場合, どこかの Hacker が既に解決策を 用意してくれているものなのです.

あるディレクトリに `a_very_very_long_file-name.c' と `also_very_long_enough_file-name.h' という 2つのファイルがあったとしましょう. このとき, 最初のファイル名は `a_' の2文字をタイプしたところで `tab' キーをタイプすれば, 残る文字列は shell が勝手に入力してくれます. 2 つめのファイル名は `al' までタイプし, あとは `tab' でいいのです. これがファイル名の補完機能です.

コマンドの補完機能もあります. `the_longest_command' が, `the' で始まる唯一のコマンドだったとしましょう. この場合, `the' までタイプしてあとは `tab' で, 残る文字列が補完されます. 長いコマンドも, 全部タイプする必要はありません. もっとも unix のコマンドは大抵の場合, タイプするのが大変というよりは, 名前が極端に短くて何だかわからないものが多いのですが.

Linux についてくる bash や tcsh にはこういったユーザを助ける機能が充実しています. 補完ができるのは, shell だけではありません. emacs/mule でも, さまざまなところで補完ができます. また, zsh は, ファイル名だけではなく, コマンドのオプションなども補完することができます. こういった機能を活用すれば, GUI に頼らずとも快適な Linux 生活を送ることが出来るのです.

X Window System でのカット アンド ペースト

左クリックしたままドラッグすると, たいていの X のアプリケーションでは ドラッグした範囲が選択されます. 選択された範囲は, 色が反転するなどして, いかにも「選択されてます」という表示になるでしょう. すこしわかりにくいかもしれませんが, じつは選択しただけの状態で既に 選択範囲はコピーされています. 「コピー」などのメニューはありません. 選択したら, そこはコピーするのが普通なので, こうなっているのです.

ペーストは, はりつけたいアプリケーションの窓で, 張り付けたい位置に ポインタを持って行き, まんなかボタンをクリックします. GNOME 等のアプリケーションの中には, 「ペースト」メニューを持っているものも 存在します.

ログ

起動メッセージは先に紹介したように 読み返すことができますが, それ以後のシステムの挙動に関しては, syslogd というプログラムがファイルに記録を取っています. 記録されるファイルは, /etc/syslog.conf で設定され, 多くの場合はディレクトリ "/var/log" 以下に存在します. これらは「ログ ファイル」あるいは簡単に「ログ」と呼ばれ, 正しい設定を詰めたり, トラブルの解決に無くてはならないものです.

ログの内容は, 一つの出来事につき一行が書き込まれ, 一行は

     日時  ホスト名  プログラム名  記録
    

という体裁をしています. いつ, どこで, どのプログラムが, 何をしたかが, 記録されるわけです. サーバプログラムは, ほとんどがログを残すようになっているので, 新しくサーバをインストールしたり, 設定を変更するときなどは, 新しく kterm などを開き, そこで

     tail -f ログファイル名
    

というコマンドを実行し, ログをリアルタイムでチェックしながら作業すれば, 比較的能率が良くなります. ネットワークに常時接続され, サービスを提供しているホストでは, 定期的にログをチェックしなければなりません. 何かおかしくなったときに, 正常に動いていたときの記録と比較すれば, どこで間違えたのかを突き止める手がかりになるし, 時には侵入者 (このサイトに来る人は, "ハッカー" という 用語をこの意味で使わないようにしましょう) の足跡を発見することもあります.

端末がおかしくなったら

テキスト情報以外を表示させた場合に, 端末の表示がおかしくなる場合があります. たとえば, バイナリファイルを cat してしまったときなどに, それ以後端末が文字化けして正常に表示できなくなることがあります. コンソールでは, logout しても正常に復帰しないこともあり, 大変困ります.

そんなときは, 端末をリセットしてみましょう. 表示が正常に復帰することがあります. リセットするにはコマンド "reset" を実行します. 入力したコマンドは正常に表示されませんが, シェルには正しく認識され, 実行されます. また, xterm や kterm は, リセットメニューを持っており, "Control + 真中クリック" でこれを呼び出せます.

info システム
man コマンドは有名ですが, Linux など GNU のツール群を用いて作られた システムでは, もっと使いやすく詳細なドキュメントを info システムで 見ることができます.

[x]emacs (mule) からならば, M-x info で, また, 端末から (kterm やコンソールから) なら info というコマンドで html 文書をブラウザで閲覧するような感じで閲覧できます. info のトップページにその使い方を説明した項目があるので, 詳しい使い方は そこからどうぞ. GNOME を使っていれば, info は付属の ヘルプブラウザからも閲覧可能です. また, この場合はポピュラーなウェブブラウザと全く同様の操作感覚です.

新しい info ファイルは, info のファイルが置いてあるディレクトリ /usr/info などに 配置し, そこにあるdir というインデックスファイルに必要項目を追加することで, トップページに登場します. 追加方法は, 他の項目を参考にしてください.

man (マニュアル) の逆引き

man コマンドは, あるプログラムや関数について調べる時に使います. これが役に立つのはそのプログラムや関数の名前が判っている時で, 何かやりたいけれどそのためのプログラムの名前が判らない時には 一見, マニュアルは役に立ちません.

実は, マニュアルは逆引きが可能です. 次のコマンドを試してみて下さい. 二つのコマンドを併記してありますが, 実行される内容は同じです.

apropos キーワード
     man -k キーワード

これで, キーワードでヒットしたマニュアルページの一覧が 得られます. apropos が検索するデータベースは makewhatisというコマンドで生成されるもので, 多くのディストリビューションでは, データベースの更新が たとえば週に 1度などの頻度で自動的に実行されるようになっています. つまり, Linux (多くの unix) のコマンドライン・インターフェースは, コマンドを知っていなくても使えるのです.

ランレベル

ランレベル (runlevel) はシステムの状態に関する指標で, 起動されるべきプログラムと, 停止されるべきプログラムなどが 決められています. 一般的な Linux の持つランレベルは 0 から 6 までと S 及び s の 8 つです. ランレベル 0, 1, 6 は予約されていて, それぞれシステムの停止, シングルユーザモード, 再起動です. 多くの場合, 3 はコンソールが起動するマルチユーザモード (普通に起動して, 各種のサービスが利用できる状態) 4 あるいは 5 が X Window System が起動するマルチユーザモードに 割り当てられています.

シングルユーザモードは, システムの保守, 復旧に用いられます. たとえば, ファイルシステムが壊れて正常に起動しなくなった場合, LILO の起動プロンプトで

linux 1

などと入力すれば, ランレベル 1(シングルユーザモード) で起動します. 一旦ランレベル 1 で起動してしまえば, ファイルシステムを修復する などしてトラブルを解消し, いつも使っているランレベルに

telinit ランレベル

というコマンドで復帰することができます. ランレベル関連の操作は全て root 権限で行われますので, 何かしでかしたときの被害は甚大です. 気を付けて使って下さい. ランレベルに関する, もっと詳しく正確な解説は, man init でどうぞ.

シェルからのマルチタスク

ウィンドウ・システムでは複数のプログラムが同時に動作しているのが よく見えますが, マルチタスクの恩恵 (そうです! Linux はとてもよくできた マルチタスク機能を持ったシステムです!) を受けるにはそのようなグラフィカルな環境である必要はありません. Linux では, コマンドラインからの環境であっても フルにその恩恵にあずかることができます.

コマンドの最後に "&" を付けて enter キーをタイプして 下さい. 例えばこんな感じです.

netscape http://www.linux.or.jp/ &

Netscape Navigtor が動作中であっても, 他のコマンドを 入力可能になります. 他のコマンドを入力してみましょう.

info emacs

emacs の info ドキュメントが閲覧できます. さて, それでは emacs を使ってみましょう. しかし, info がコマンドライン環境を占領していて, これ以上コマンドを入力できませんね. ちょうどマルチウィンドウ環境で, 全画面を占領するプログラムを起動したら, 新たに他のプログラムを起動できなくなったのと同じです. そんなときは, コマンドラインを占領しているプログラムに "Control-z" を入力してみましょう. コントロールキー を押したままで "z" をタイプします.

またコマンドが入力できるようになりました. ここで, コマンド

jobs

を実行してみましょう. 現在, そのコマンドラインから実行中のプログラムが表示されます. シェルは, 上から順にこれら実行中のプログラムに "%1, %2, %3, ..." と名前を付けて管理しています. シェルが管理しているこれらのプログラムを "job" といいます. job はコマンドラインから操作可能です. たとえば

kill %1

これで最初の job (netscape) へ終了シグナルが送信されます. netscape は終了しましたか? 終了シグナルを受けても終了しない ものもありますので, 落胆しないでください. それよりも, 次のコマンドを試して下さい.

fg %2

さっき停止させた info が復活しました. "fg" は "fore ground" です. info でさっき見ていたページが, そのままの状態で 復帰するところに注目しましょう. つまり, info はさっき操作していた状態そのままで凍結されていたわけです. マニュアルを閲覧しながらコマンドをいろいろと試す時に, これが非常に役立ちます.

起動後にユーザがいろんな操作/閲覧するコマンド (マニュアルなど) 以外に, 起動したら終了するまで放置するタイプのコマンドもあります. 起動時に "&" を間違いなく入力できれば良いのですが, それを忘れた場合は Ctrol-z では現状を保って停止されるだけです. ですが, ここは一旦 Control-z で止めて下さい. そして,

bg

を入力してください. "bg" は "back ground" です. これで処理は継続されますから, 結果的に, コマンドの最後に "&" を付けたのと同じになりました. back ground に廻した job は, いつでも fg で fore ground に廻せます. こうして, 複数のプログラムを同時に実行し, 停止させたり 処理を継続させたりすることが, コマンドラインからも 可能になっています.

Linux についている大抵のシェルには複数の job を管理/制御する機能が ありますから, ここに書いた技は有効でしょう. ただし, job の管理は シェル固有の機能なので, 使い方はシェルによって若干の違いがあります. 詳細は自分の使っているシェルのマニュアルページを見て下さい. え? 自分のシェルがどれだか判らない? /etc/passwd の自分に関する行の最後を見れば載ってますよ.

X Session のレスキュー

xdm などを使って X からのログインを制御している場合, ユーザのログイン/ログアウト は, 予め定められた ユーザセッション となるプログラムの開始/終了によって定義されます.

多くの場合, ユーザセッションとなるプログラムはユーザのホームディレクトリに 置かれた ".xsession" というファイルであり, 大抵はシェルスクリプトです. このファイルをユーザが好きなように編集することで ログイン環境を自由に設定できるのですが, 不適切な変更を加えると, ログインできなくなる場合もあります. たとえば, ".xsession" の 実行可能属性を落としただけで, ログインできなくなる可能性があります.

うっかり自分の xsession を壊してログインできなくなってしまったら, ログイン画面で パスワードを入力する時に, Control キーを 押したままで Enter キーをタイプしてみましょう. ユーザの定義した xsession は使われず, システムが用意した 緊急用の xsession がユーザ権限で起動し, とりあえずログインできます.

止まったように見えるときは

キー操作・マウス操作を受けつけなくなり, 止まったように見えるときがあります. それは, カーネルが panic を起こしてシステム全体が停止しているのではなく, プロセスのどれかが停止しているだけなのかもしれません. 井上さんの GNU/Linuxがフリーズした時の対処 には, 止まったように見える状況からのさまざまな復帰手段が まとめられています. 「フリーズ」したときに備えて一読をお勧めします.


Tips の募集

皆さんの Tips を募集しています. 知らないと困るようなものから, 目から鱗のものまで, なにか情報がありましたら Webmasters までおしらせください.


[ ホーム | マップ | ニュース | 検索 | ドキュメント | リンク | プロジェクト ]
このサイトに関するご意見・ご要望は Webmasters までお願い致します.