• English
  • Japanese

Linux 入門

1. ディレクトリ構造

Linux のコマンドを説明する前に,Linux のファイルシステムについて説明します. Linux は独自の階層構造をとっています. ちょうど木を逆さにしたような形になるので,Tree 構造と呼ばれます. 一番上は根にあたるので “root”(ルート)と呼ばれます. この下にサブディレクトリ,ファイルなどが入ります. またサブディレクトリのさらにその下にファイルやサブディレクトリを作成することができます.

さて,みなさんログインしてみてください.ログインすると,自動的に自分のディレクトリに移動します. 自分のディレクトリ,ホームディレクトリともいいますが,“~”(チルダ)で表されます. 5.2 で説明する pwd コマンドで自分の現在のディレクトリを確認すると,/home/student/.... のように表されると思います. このように “/” から全部のディレクトリを記述することを絶対パス名といいます. 現在のディレクトリのことをカレントディレクトリといいます.

また,カレントディレクトリの 1 つ上のディレクトリを示す場合,“..”等と記述します.また,カレントディレクトリに“hogehoge”ディレクトリがあり,これを示す場合,“./hogehoge/”等と記述します.このようにカレントディレクトリからのディレクトリを記述することを相対パス名といいます.

2. コマンドの基本

コマンドは基本的には次のような構成になっています.

command option arguments

command は,実行するコマンドの名前をいれます. option は,その実行する機能を指定します. これは,ひとつのコマンドで幾つもの機能がある場合に,機能を指定する時に使います. この後に,自分が操作するファイル名や番号を指定します. なお便宜上ここでは,ファイル名やディレクトリ名など場合によって変わるものは,file のように表します. [ ]で囲まれているものは,省略可能なものです. オプションは基本的に一文字のものは連続して書くことができます.

-a -b -c → -abc

大文字と小文字は区別します.注意してください.

3. 正しいファイル名

ファイル名は通常は英数字を使用します. 漢字は使いません.また,特殊な記号は使用しないでください. こちらも大文字と小文字は区別します.

4. ファイル名のワイルドカード

ファイルを複数コピーする場合に,いちいちファイル名を指定していたら大変です. “*”(アスタリスク)は,任意の文字列に対応しており,また,“?”は任意の一文字に対応しています.例えば,

cp * /tmp

とすれば,カレントディレクトリにあるファイルをすべて /tmp へコピーします.また,

rm foo.?

とすれば,たとえば,foo.1foo.c などが削除されますが,foo.txt などは削除されません. つまり,“?” は何か一文字に対応するのに対し,“*” は何文字以上でも対応します. くれぐれも,“rm *” をするときは,注意してください. 必要なファイルもすべて消してしまう可能性があります.

また,“[” と “]”(ブラケット)で囲まれたものは,カッコ内の任意の一文字に対応します.例えば

rm foo.[tcld]*

とすると,foo.texfoo.cfoo.log など,ピリオドの後の最初の文字がカッコ内に表された文字と一致した時にファイルが消去されます.

5. 基本のコマンド

ディスクは有限な資源です. 一人一人が不要なメールなど,不要なファイルを残したままにしておくとディスク資源を無駄に消費してしまい,他のワークステーション利用者に迷惑がかかります. よって,自分のディレクトリは常に整理しなければなりません. そのために使うファイル操作のためのコマンドを示します.

5.1 ファイルの一覧 (ls)

ls [-alF] [dir]
オプションの説明
-a  “.”(ピリオド)ではじまるファイルも表示
-l  ファイルに対する詳しい情報を表示
-F  ディレクトリの後には “/” を,実行ファイルには “*” をつけて表示

ディレクトリ名を指定したら,そのディレクトリの下のファイルを表示します.
また,-a を指定した場合に “.” と “..”が表示されます. “.”はカレントディレクトリを表し,“..” はカレントディレクトリの 1 つ上のディレクトリを表します.

5.2 現在のディレクトリの表示 (pwd)

pwd

自分が今作業しているディレクトリ (カレントディレクトリ) を表示します.

5.3 ディレクトリの移動 (cd)

cd [dir]

ディレクトリを指定した場合は,そのディレクトリに移動し,省略した場合は,ホームディレクトリに移動します.
また,カレントディレクトリが /tmp/hoge で,1 つ上のディレクトリである /tmp に移動したい場合は

cd ..

/tmp に移動できます. さらに /tmp/hoge から 2 つ上のディレクトリである / に移動したい場合,

cd ../..

で移動できます.

5.4 ディレクトリの作成 (mkdir)

mkdir dir

指定された名前のディレクトリを作ります.

5.5 ディレクトリの削除 (rmdir)

rmdir dir

指定された名前のディレクトリを消します. ただし,そのディレクトリにファイルが存在すると消去できません. 全部消してからもう一度実行してください.

5.6 ファイルの表示 (cat, more)

cat [-n] file

ファイルを表示します. 一画面に収まらないファイルはスクロールしながら連続的に表示します.

オプションの説明
-n  行に番号をつけて表示
more dir

これもファイルの表示をしますが,一画面に収まらないファイルはディスプレイの一番下に ---more--- と表示して一時停止します.このときキーを押すことで,以下の機能を利用することができます.

<space>         次の一画面分を表示
<return>        一行分だけ先に進める
<ctrl>          前の一画面分を表示
q               more を終了する

5.7 ファイルのコピー,ファイル名の変更 (cp)

cp file dir

ファイルを指定したディレクトリにコピーします. もとのファイルは残っています.また, cp file1 file2 で,file1file2 に名前を変えてコピーします.

5.8 ファイルの移動,ファイル名の変更 (mv)

mv file dir

ファイルを指定したディレクトリに移動します.もとのファイルは残りません.また,

mv oldname newname

で,ファイルを別の名前に変更して移動します.元のファイルは残りません.

5.9 ファイルの削除 (rm)

rm files

指定されたファイルを削除します.

5.10 ファイルの中身の検索 (grep)

grep pattern file

データの中から特定の文字列パターンが含まれる行を抽出します. 例えば,org.data というファイルから ABC という文字列を含む行だけを表示させるには,grep ABC org.data とします.

6. 標準入力と標準出力

6.1 リダイレクション

標準では出力は画面になりますが,この画面にでる表示をファイルに切り替えて保存することができます. これで,例えば “ls” で表示したディレクトリ中のファイル名をあとでエディターでみたり,エラーメッセージをとっておき,間違いの原因を調べたりすることができます.

出力をファイルに保存するのは,“>” を使います.

command > file

で,結果の出力先が画面からファイルに変更されます. また,このファイルに更に別の出力をつけ加えたいときは “>>” を使います.

command >> file

で,指定したファイルの後ろに出力が追加されます.

コマンドからのエラーメッセージは,出力と扱いが異なります. これをファイルにするには,“>&”を使います. また,追加は “>>&” です.

また,標準の入力はキーボードから行いますが,これをファイルから入力することもできます. これは,“<” を使います.

command < file

というように使います.

たとえば,ファイルをアルファベット順にソートしたいときは,sort コマンドを使い,

sort < file1 > file2

と実行することにより,file1 をソートした結果が file2 につくられます.

6.2 コマンドを組み合わせて実行する

Linux では,いくつかのコマンドを連続して実行することができます. これをパイプ処理があります. これはコマンドが出した出力を,そのまま次のコマンドの入力にしてしまうものです. これには,“|” を使います.たとえば,“ls”でディレクトリをみようと思っても,ファイル数が多くて一画面で収まらないときは

ls | more

と,実行させることにより,一画面分ずつ見ることができます.

7. その他のコマンド

7.1 ほかのユーザの情報 (finger, who)

finger [-il] username

単に finger とすると,現在使用しているユーザを表示します. 以下はこのとき使用できるオプションです.

-i  idle time を表示します.
-l  .plan というファイルがホームディレクトリに作成されていればその内容も含めて表示します.

また,option 無しで username を指定することで,個人についての情報を見ることもできます.これは姓もしくは,名,login name のどちらからでも調べられます.

who

これも現在の使用者についての情報を表示しますが,finger ほど詳細な情報は得られません.

7.2 ディスクの使用状況 (du)

du [-sa] filename dir

カレントディレクトリのディスク使用状況を表示します.

-s  総計のみ表示する
-a  各ファイルの大きさを表示する

ファイルを指定することで,そのファイルの大きさを調べることができます.

8. オンラインマニュアル

Linux の大きな特徴として,オンラインマニュアルが十分整備されていることがあげられます. コマンドについてわからないことがあれば,人に聞く前にコンピュータに問い合わせてみましょう.

8.1 オンラインマニュアル (man)

man commandname

オンラインマニュアルからそのコマンドのヘルプを表示します. 一画面に収まらない場合は,前に説明した moremore よりも多機能な less が自動的に起動され,一画面に入ったところで一時停止します. more については man more を,less については man less を参照してください.

最終更新日: 2011年6月15日

内容はここまでです。