PR

Linuxを使いこなしたいけれど,使い慣れたWindowsとは操作方法が違うので思うように操作できない。この”壁“を取り払うのが本コラムの目的です。Linuxやその上で動くソフトウエアを実際に使うために役立つ知識や操作方法を説明します。
今回は,ヘルプの閲覧方法と,テキスト・エディタの使い方を説明します。

 Linuxを使っていると,デスクトップ環境よりコマンドラインで操作する方が便利なことがあります。しかし,数多くのコマンドの名前を覚え,それぞれが持つさまざまなオプションを把握するのは困難です。

 今回は,各コマンドのヘルプを閲覧する方法や目的のコマンドを探し出す方法を紹介します。また,各ソフトウエアの設定を変更するときに便利なテキスト・エディタの使い方も説明します。

manとinfo

 デスクトップ環境でソフトウエアを利用しているときに,操作方法が分からなくなったら,Windows同様,[ヘルプ]メニューを使うと便利です。一般に[ヘルプ]-[目次],もしくは「F1」キーでヘルプが表示されます(図1)。

図1●関数電卓のヘルプ
図1●関数電卓のヘルプ
メニュー・バーの[ヘルプ],もしくは「F1」キーで開く。

 デスクトップ環境がGNOMEであれば,「Yelp」と呼ばれるヘルプ・ブラウザが用意されています。多くのソフトウエアがYelpを採用しており,メイン・メニューの[デスクトップ]-[ヘルプ]から各ソフトウエアのYelp対応のヘルプを検索できます(写真1)。ただし,画像処理ソフト「GIMP」など,独自形式のヘルプを用意しているソフトウエアのものは検索できません。

写真1●GNOMEのヘルプ・ブラウザ「Yelp」
写真1●GNOMEのヘルプ・ブラウザ「Yelp」
ここからYelp対応のヘルプを検索できる。

 デスクトップ環境で利用するソフトウエアでも,[ヘルプ]メニューを用意していないものがあります。また,シェル上で利用するコマンドには,[ヘルプ]メニューはありません。こういったソフトウエアやコマンドは,「man」もしくは「info」と呼ばれる形式のヘルプを用意していることがほとんどです。

歴史あるヘルプ・システム

 manは,1970年代にLinuxの見本となるUNIXが誕生したときから採用されているヘルプです。一方のinfoは,1980年代に,GNUプロジェクトによって開発されたヘルプです。

 infoの方が後発であるため,manより高機能になっています。ただ,manの方が歴史ある分,man形式のヘルプを用意しているソフトウエアの方が圧倒的に多くなっています。両方の形式をサポートしているソフトウエアもあります。

 man形式やinfo形式のヘルプは,KDEを利用したデスクトップ環境上や,専用コマンドを使ったシェル上で,閲覧できます。シェル上での閲覧が一般的ですが,まずは操作が簡単なKDE上の方法を紹介します。

Konquerorを使った閲覧

 KDEのデスクトップ環境では,「Konqueror」(コンカラー)と呼ばれるファイル・マネージャが備わっています。Konquerorで,man形式やinfo形式のヘルプを閲覧できます。

 Konquerorは,[アプリケーション]-[インターネット]-[Konqueror]で起動できます。

man形式

 Konquerorを起動したら,「場所」に「man:/ 」と入力すると,写真2の状態になります。これが,manのトップ・ページです。

写真2●Konquerorでmanのトップ・ページを開いたところ
写真2●Konquerorでmanのトップ・ページを開いたところ
場所に「man:/ 」と入力する。

 前述のYelpと同様,用途別にヘルプが分類されています。各用途は,「セクション」と呼ばれ,ここで表示されているセクションに続く数字(セクション番号)が操作上,重要になってきます。この中でよく利用するのは,一般ユーザーが利用できるコマンドのヘルプの「ユーザコマンド」(セクション1),ファイル・フォーマットを説明した「ファイル形式」(同5),管理者向けコマンドのヘルプである「システム管理」(同8)です。

 「場所」に次のように入力すると,「passwd」に関するヘルプが検索されます。

man:/passwd

 ここでは,複数のヘルプが見つかりました(写真3)。

写真3●「passwd」のヘルプを検索した結果の例
写真3●「passwd」のヘルプを検索した結果の例

 ファイル名を見ると,man形式のヘルプは,gz形式で圧縮されていることが分かります。ファイル名にある数字は,前述のセクション番号を指します。つまり,passwd.1.gzはパスワードを変更できるpasswdコマンドのヘルプ,passwd.5.gzはパスワードを収めたpasswdファイルのヘルプ,ということになります。同じ「passwd」のヘルプを区別するために,passwd.1.gzのヘルプを「passwd(1)」,passwd.5.gzのヘルプを「passwd(5)」と表記します。

 このセクション番号については,コマンドラインでも使います。1,5,8が何を表すのか,覚えておきましょう。

 ヘルプの検索結果に,「ja」があるものとないものがあります。これは,ヘルプが英語で書かれているか,日本語で書かれているかの区別です。一般に日本語版は有志によって翻訳されており,翻訳に時間がかかる分,英語版より情報が古いことがあります。できれば,英語版を見るようにしましょう。

 各ヘルプの最後には,「関連項目」や「ファイル」といったリンクがあります。ヘルプを見ても分からないときは,これらをクリックして調べるとよいでしょう。

info形式

 Konquerorでinfo形式のヘルプを見るには,「場所」に「info:/ 」と入力します。infoのトップ・ページ(写真4)が表示されます。

写真4●Konquerorでinfoのトップ・ページを開いたところ
写真4●Konquerorでinfoのトップ・ページを開いたところ
場所に「info:/ 」と入力する。

 次のようにすれば,テキスト・エディタである「ed」のヘルプが表示されます(写真5)。

写真5●テキスト・エディタ「ed」のinfo形式のヘルプ
写真5●テキスト・エディタ「ed」のinfo形式のヘルプ
英語版しかない。

info:/ed

 manと違い,表示は最初から章立てた形式で表示され,見やすくなっています。また,「場所」に指定したコマンド名のヘルプがないときは,エラーになります。

 info形式のヘルプは,英語版しかありません。また,man形式が用意されていても,info形式が用意されていないことはよくあります。

manコマンド

 今度は,シェル上でmanコマンドを使ってヘルプを見てみましょう。

 例えば,passwdコマンドのヘルプを見る場合は,

$ man passwd

と入力します。日本語版のpasswd(1)が開くはずです(写真6)。

写真6●コマンドラインで開いた「passwd」のヘルプ
写真6●コマンドラインで開いた「passwd」のヘルプ
セクション番号が小さい,コマンドとしてのヘルプが自動的に開いた。

 内容はKonquerorで見たときと同じですが,操作方法が異なります(表1)。また,ヘルプの最後にある「関連項目」はリンクになっていません。

表1●manコマンドで表示したときの操作
表1●manコマンドで表示したときの操作

 manコマンドでは,「セクション番号が小さい」,「日本語のページ」が優先されて表示されます。英語版のpasswd(1)を表示するには,

$ LANG=C man passwd 

と入力します。日本語版のpasswd(5)を表示するには,

$ man 5 passwd 

と入力します。

infoコマンド

 info形式のヘルプは,infoコマンドで見れます。

$ info 

と実行すると,写真7の画面が表示されます。操作方法は,表2を参考にしてください。manコマンドの操作とは異なり,後述するテキスト・エディタ「emacs」と似ています。Konquerorと同じようにリンクをたどって,目的のヘルプを見られるようになっています。

写真7●infoコマンドを実行したところ
写真7●infoコマンドを実行したところ

表2●infoコマンドで表示したときの操作
表2●infoコマンドで表示したときの操作

コマンド名を探す

 デスクトップ環境では,目的の結果を得られるソフトウエアを探すとき,用途別に分類されたメニューから見つけやすくなっています。しかし,シェル上はメニューがありません。そこで,目的のコマンド名を探すヒントを紹介します。

manコマンドのkオプション

 manコマンドは,キーワード検索機能を持っています。これを使って,man形式のヘルプを検索することにより,目的のコマンド名を探すことができます。

$ man -k [キーワード]

 キーワードには,日本語は指定できません。検索は,英語版のヘルプだけが対象になっているためです。

ディレクトリから探す

 コマンドが格納されている場所はある程度決まっています(本誌2月号の本コラムを参照)。一般ユーザーがよく利用するコマンドは/binディレクトリや/usr/binディレクトリに,管理者がよく利用するコマンドは/sbinディレクトリや/usr/sbinディレクトリに入っています。そこで,lsコマンドを使って,ファイル名から目的のコマンドを探します。

$ ls /usr/sbin/*user*

 上記は,「user」と名前の付く管理用コマンドを探す場合です。「user」と付くので,ユーザー管理関係のコマンドが検索結果に含まれるはずです。このように,目的を表す英単語を使うと見つけやすいでしょう。

過去に使ったコマンドを調べる

 過去に実行したことがあるコマンドなら,パイプを使って次のように調べられます。


$ history | grep pass
124 passwd
212 man 5 passwd
224 history | grep pass
(表示内容は,過去に実行したコマンドにより異なります)

 上記では,「pass」と付く過去に実行したコマンドが表示されます。コマンド名だけでなく,指定したオプションやパラメータも表示されます。検索結果の中からコマンドを実行したいときは,


$ !212 

と番号で指定します。この場合は,「$ man 5 passwd 」を実行したときと同じ結果が得られます。非常に長い文字列の履歴を検索し,再度実行するときに便利です。

ファイル名を検索する

 ファイル名の一部が分かるなら,locateコマンドが便利です。あらかじめファイル名のデータベースが作成されているため,高速に検索できます。findコマンドでも検索できますが,データベースがないため,検索には時間がかかります。

 Fedora Core 4の場合,データベースは/var/lib/slocateファイルに格納されています。データベースは,updatedbコマンドで更新できます。実行には,管理者権限が必要ですので,事前にsuを使います。


$ su - 
# updatedb 

 Fedora Core 4は,デフォルト(初期設定)で早朝4時2分に自動更新するようになっています。常時起動しているパソコンであれば,ほぼ最新になっていますが,そうでないパソコンはlocateの実行前にデータベースを更新しておいた方がよいでしょう。


$ locate [キーワード] 

と実行すると,各ファイルやディレクトリの絶対パスまで含めた名前の中から,キーワードを含むものが一覧表示されます。

 絶対パスの部分も検索の対象になっていますので,コマンド名を検索するときは,次のようにするとよいでしょう。


$ locate [キーワード] | grepbin 

rpmコマンドを使う

 RPMパッケージで導入したソフトウエアのコマンドが分からない場合は,次の手順で調べられます。

 まず,次のコマンドで最近インストールしたパッケージを表示させます。


$ rpm -qa --last | head

 パイプでつなげた「head」コマンドは,先頭10行のみを表示するためのものです。

 これでパッケージ名が分かれば,図2のように実行して,コマンド名を探せます。

図2●rpmコマンドを使って最近導入したパッケージのコマンドを探す
図2●rpmコマンドを使って最近導入したパッケージのコマンドを探す

コマンド・リファレンスを参照する

 最終的にコマンドが分からなければ,書籍やWebサイトで調べるのが得策です。Webページ「Linuxコマンド逆引き大全」(URLは,http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230579/。日経Linuxのトップページ=http://linux.nikkeibp.co.jp/からも閲覧できます)なら,目的からコマンドを検索できる逆引き機能があり,とても便利です(写真8)。

写真8●Web上でコマンド・リファレンスを確認する
写真8●Web上でコマンド・リファレンスを確認する
Webサイトによっては,逆引き機能もある。写真は,http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230579/

テキスト・エディタ

 Windowsでは,多くのソフトウエアの設定情報は「レジストリ」と呼ばれる1つのデータベースに格納されています。一方,Linuxにはレジストリがありません。多くの場合,ソフトウエアごとに,別々のファイルに記述されています。

 これらの設定ファイルは,ほとんどがテキスト形式です。管理者であれば,テキスト・エディタを使い,自由に編集して設定を変更できます。

 最近では,各ディストリビューションにGUIで操作できる設定ツールが用意されています。ただし,telnetなどでリモートからログインしたり,デスクトップが動かなかったりしたときは,これらのツールを使えません。また,GUIツールで設定を変更した場合,細かい設定がどうなっているかを確認できないことがあります。これらを解消できるのが,テキスト・エディタによる変更です。ここでは,テキスト・エディタの使い方をマスターしましょう。

デスクトップ環境上のエディタ

 デスクトップ環境上では,GNOMEなら「gedit」,KDEなら「KWrite」というテキスト・エディタがよく使われています。ここでは,geditの操作方法を解説します。

テキストをダブル・クリック

 GNOMEのデスクトップ環境上では,テキスト・ファイルは写真9のように見えます。拡張子が「txt」でなくても,テキスト形式であれば,このアイコンになります。KDEでも同様です。GNOMEの場合,このアイコンをダブル・クリックすれば,geditが起動します。テキスト・ファイルを新規作成するときなどは,メイン・メニューの[アプリケーション]-[アクセサリ]-[GNOMEテキスト・エディタ]で起動します。

写真9●GNOMEのデスクトップ環境でテキスト形式のファイルを確認する
写真9●GNOMEのデスクトップ環境でテキスト形式のファイルを確認する
テキストはこのアイコン表示になる。

 基本操作は,Windowsの「メモ帳」と大きく変わりません。大きな違いは,タブ機能があることです。写真10のように,編集中のテキスト・ファイルはタブ形式で表示されるため,1つのウインドウで複数ファイルを扱えます。行番号の表示や英単語の禁則処理などもできます。

写真10●geditでは複数ファイルをタブ形式で編集できる
写真10●geditでは複数ファイルをタブ形式で編集できる

 一方,KWriteにはタブ機能はありません。ただし,検索時に「正規表現」が使用できます。正規表現については,後述します。

 日本語を入力するときは,「半角/全角」キー,もしくは「Shift」+スペース・キーで可能になります。

 編集内容を保存していないと,エディタを閉じる際に警告画面が出ます。保存作業は忘れないようにしましょう。

コマンドラインで編集する

 コマンドラインで利用できるテキスト・エディタには,「ed」「vi」「emacs」などが有名です。いずれも,UNIX系OS上で古くからあるエディタです。

 コマンドライン上のテキスト・エディタは2つに分けられます。


・ライン・エディタ(行エディタ)
・スクリーン・エディタ(画面エディタ)

 ライン・エディタは,編集中の行しか表示されないタイプです。edがこれに相当します。組み込み用途などで,1行しか表示できない特殊なディスプレイを搭載したマシンなどでは重宝します。

 一方のスクリーン・エディタは,複数行を1画面に表示できるタイプです。viやemacsが,これに相当します。一般にはこちらを利用します。

 ここでは,スクリーン・エディタのviを解説します。emacsの方が高機能ですが,viの方が動作が軽快で,最初から導入されているディストリビューションが多いからです。

 最近では,edの改良版の「ex」,viの改良版として「vim」(vi improved)というコマンドもあります。ただ,exはvimの一部の機能として実現できるため,exもviもvimへのシンボリック・リンクになっていることがほとんどです。

viの起動

 viで「sample2.txt」を編集するときは,次のように起動します。


$ vi sample2.txt 

 viが起動すると,画面が一度クリアされ,指定したファイルの内容が表示されます(写真11)。「~」(チルダ)は,その行にはデータがないことを示します。指定したファイルが存在しない場合は,画面には「~」のみが表示されます。

写真11●viを起動したところ
写真11●viを起動したところ
空白行は「~」で表現される。

モードの切り替え

 geditなどのデスクトップ環境上のテキスト・エディタと異なり,起動後に本文を入力しようとしてもすぐには入力できません。これは,viに「モード」という考え方があるからです。

 viには,2つのモードがあります。


・テキスト入力モード
・コマンド入力モード

 正確には,もう1つ,コマンド入力モード時に「:」を入力すると,「exモード」というモードに切り替わります。しかし,これもコマンド入力モードとみなして,ここでは「テキスト入力モード」と「コマンド入力モード」の2種類で話を進めます。

基本操作方法を学ぶ

 viの起動時は,コマンド入力モードになっています。このモードでは,表3にあるようなキーで操作をします。これ以外にもたくさんありますが,ひとまずこれだけは使えるようにしておいてください。

表3●viの基本操作コマンド
表3●viの基本操作コマンド

 現在のモードについては,最下行で確認できます。「― 挿入 ―」もしくは「― INSERT ―」となっていれば,テキスト入力モードです。それ以外は,コマンド入力モードです。

コピーや貼り付け

 デスクトップ環境のテキスト・エディタでは,コピーや貼り付けの作業は,マウスで範囲選択をして,右クリックのメニューでできました。viも,デスクトップ環境のシェル上で起動していれば,マウスを利用できます。複数のシェルのウインドウを表示して,テキストを同時に編集しているときなどは便利です。

 コマンド入力モードであれば,キーボードだけでできます。主な操作方法を次に挙げます。

yy:カーソルのある行をコピー
d :1文字を切り取る
dn:n文字を切り取る(nは数値)
dd:カーソルのある行を切り取る
x :カーソル上の1文字を削除
p :貼り付け

保存,終了時の注意

 上書き保存は,次のコマンドです。


:w 

別名保存を行うときは,次のようにします。


:w ファイル名 

 気を付けないといけないのは,Windowsとは異なり,別名保存をしても,その後の編集作業は元々開いていたファイルに反映されます。この点は忘れると痛い目に会うので注意してください。

 編集した内容を反映せずに終了したい場合は,次のようにします。


:q! 

 「!」は,強制という意味です。「!」を付けないで終了しようとすると,最下行にエラーが表示され,終了できません。

異常終了のリカバリをする

 デスクトップ環境で使っているときは,ウインドウの「×」ボタンや「Alt」+「F4」キーなどによってシェル・ウインドウを終了させてしまうことがあります。編集作業途中だったときなどは,次回起動時に写真12のような画面が出ます。このときの対処方法を紹介します。

写真12●ファイルを編集中に異常終了や強制終了すると,次回起動時に警告される
写真12●ファイルを編集中に異常終了や強制終了すると,次回起動時に警告される

 viは,ファイルを開いた時点でスワップ・ファイルと呼ばれる一時保存を行うためのファイルを作ります。このファイル名は,先頭に「.」,最後に「.swp」が付き,間に元のファイル名が入ります。このように最初に「.」が付くファイルは隠しファイルとして扱われます。そのため,コマンドラインで見るためには,


$ ls -a 

と入力します。

 作業途中だった内容を復活させるには,まず写真12の状態でスペース・キーを押し,プロンプトを表示させます。ここで「r」キーを入力し,最後に保存の「:w 」を実行すれば保存できます。

 このとき,スワップ・ファイルは削除されないため,後でrmコマンドで削除する必要があります。

検索機能を活用する

 「/」を入力すると,テキスト検索ができます。この作業では,画面最下行に注目してください。


/[検索したい文字列] 

とすれば,検索が始まります。文字列が見つかるとヒットした文字列の色が変わります。「n」キーで次を検索し,「N」キーで1つ前にヒットした文字列に移動します。

 検索には,「正規表現」を使うと絞り込みしやすくなります。正規表現とは,文字列のパターンを表現する方法です。主な正規表現は,表4に挙げました。いろいろ試してみてください。

表4●主な正規表現とそれを利用した検索の例
表4●主な正規表現とそれを利用した検索の例

文字コードを意識する

 最後に,「文字コード」について簡単に説明します。文字コードは,GUI,CUIに限らず,テキスト・エディタを扱う上で,共通の注意事項です。

 文字コードとは,各文字を数値化したものです。さまざまな種類があり,利用しているOSなどにより変わってきます。各テキスト・ファイルは,いずれかの文字コードを使って文字データを保存しています。Windowsで作成したファイルをLinuxで見たり,逆にLinuxで作成したファイルをWindowsで見たりするときは,この文字コードの違いを意識する必要があります。

 Windowsでは文字コードに「シフトJIS」が使用されていますが,Linuxでは「UTF-8」や「EUC-JP」という文字コードが使用されています。そのため,Windowsのメモ帳で作成したテキスト・ファイルを,Linuxのcatコマンドなどで表示しようとしても,正しく表示されません。これが「文字化け」と呼ばれるものです。

 こんなときは,nkfコマンドを利用します。


$ nkf -w -Lu [ファイル名]>[変換後のファイル名]

 「w」オプションはUTF-8に変換する指定です。Vine Linuxなど,EUC-JPを採用したディストリビューションの場合は「e」を指定します。「Lu」は,改行コードをLinuxの「LF」に変更するオプションです。逆に,Windows向けに変更するときは,オプションに「-s -Lw」にします。

 上記の「>」は本誌3月号の本コラムで紹介したリダイレクションです。「>」以降を省略すると画面上に変換結果が表示されます。