「インストールしてみたけど,使い方が分からず途方に暮れた」「本を読んだけど,難しくて理解できなかった」
「操作手順だけでなく,基本的な仕組みを知りたい」...。
こうした意見にこたえるため,“Linuxの基本”を説明するコラムが復活しました。
実際にLinuxを操作しながら,基本操作と仕組みに関する知識を身に付けましょう。
Linuxをコマンドラインから使うときに,「これだけは知っておくべき」と思われるコマンドやツールの基本的な使い方を説明していきます。主に,(1)パスの設定と(2)ファイル操作関連に関するコマンドを解説します。
インターネットに接続できる方は,日経LinuxのWebサイト*1にある「Linuxコマンド集*2(写真1[表示]) と「コマンド逆引き大全」で各コマンドを確認しながら,読み進めていくとより理解しやすいでしょう。
コマンド検索パス
Linuxのコマンドは複数のパス(言い換えれば,異なるディレクトリ)に分散して格納されています。最初に,検索パスと環境変数PATHについて説明します。
コマンドを実行するときは,コマンドラインからコマンドを入力することになります。コマンドもファイルですから,絶対パス名あるいは相対パス名で指定することになるはずですが,通常シェルにはコマンド名だけを指定すれば実行できます。
これは,コマンド検索パスが環境変数PATHに設定されているためです。例えば,Fedora Core 3のデフォルトで,一般ユーザーの設定を確認してみましょう。
検索パス名として合計6個が「:」で区切られて指定されています。最初の5個のパス名はシステムのディレクトリ,最後のパス名はユーザーの実行可能ファイルを格納するディレクトリです。また,Vine Linux 3.2のrootユーザーでの環境変数PATHの設定を写真2[表示]に示します。
Fedora Coreの場合,シェルは,例えばlsというコマンド名を受け取ると環境変数PATHの設定に従って,/usr/kerberos/binディレクトリにコマンドlsがあるかどうかを検索します。見つからないので,次に/usr/local/binディレクトリを検索し,それでも見つからないので,/binを検索してコマンドlsが存在することを確認します。そこでシェルは,/bin/lsを起動します。
逆に言えば,環境変数PATHに設定されていないディレクトリをシェルは検索しません。Fedora Coreの例では,一般ユーザーですので,システム管理者用のコマンドが格納されたディレクトリ/sbinや/usr/sbinは(環境変数PATHに)設定されていません。
例えば,adduserコマンドはディレクトリ/usr/sbinに格納されていますので,一般ユーザーが実行しようとするとコマンド検索に失敗します*3。シェルは,コマンドが見つからない場合には,次のようなメッセージを出力します。
例えば/usr/local/binと/usr/binのディレクトリに同じコマンドが格納されている場合には,環境変数PATHの設定順に検索されることから,/usr/local/binにある方のコマンドをシェルが起動します。コマンド名を絶対パス名や相対パス名でシェルに入力すると,コマンド検索は行いません。
ちなみに,rootユーザーでの環境変数を示した写真2では,システム管理者用のコマンドが格納されたディレクトリ/sbinや/usr/sbinも設定されています。
コマンドの在りかを探す
通常は名前だけを入力して実行しているコマンドの絶対パス名を調べてみましょう。コマンドの在りか(格納場所)を調べます。そこで用いるコマンドが,whichです*4。
先ほど紹介した「Linuxコマンド集」のページでは,「その他」の項目にあります。ここでは,「コマンドを探す」と説明されています(写真3[表示])。
実際に使ってみましょう。まず,catコマンドの在りかを調べてみましょう。
また,一般ユーザーがadduserコマンドの在りかを調べると,以下のようなメッセージが出力されます。
adduserは環境変数PATHの設定ディレクトリすべてを検索しても見つからなかったことが分かります。もちろん,システム管理者権限を取得してから実行すると,きちんと検索できます(写真4[表示])。