◆ コマンドとは
コマンドはプログラムまたはスクリプトであり、入力しEnterキーを押すと実行結果が表示されます。
例えば以下はdateコマンドの実行結果。オプションを指定することなく、単独で実行できるコマンド。
$ date
Fri May 17 04:26:03 PDT 2013
|
また、コマンドの後に指定可能なオプションを指定することで詳細な情報が得られます。例えば以下は
lsコマンドの後に、-l のオプションを指定することでファイルの詳細情報を表示しています。
$ ls -l
total 4
-rw-rw-r--. 1 admin admin 29 May 18 00:03 test1.txt
|
また、コマンドにより、コマンド後にファイル名やディレクトリ名を指定する必要がある場合もあります。
例えば以下はmoreコマンドの後、パスを指定した上でhostsファイルを指定しその内容を表示しています。
$ more /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
◆ コマンドの実行 - 制御
コマンドは1行に複数並べて実行することもできます。コマンドを「 ; 」で区切ると、複数のコマンドを
同時に実行できます。例えばdateコマンドとpwdコマンド(現在のディレクトリの絶対パスを表示)の結果。
◆ 「 ; 」 で区切った場合のコマンド実行
$ date;pwd
Sat May 18 00:20:00 PDT 2013
/home/admin/Desktop
|
「 ; 」で区切った場合、最初の実行コマンドが正常に終了できても、終了できなくても次のコマンドが
実行されるのに対して「 && 」で区切ると最初に実行したコマンドが正常に終了できた場合のみ、次の
コマンドが実行されます。以下の場合はtestというコマンドがないのでpwdコマンドは実行されません。
◆ 「 && 」 で区切った場合のコマンド実行
「 || 」で区切ると、最初に正常にコマンド終了できなかった場合のみ次のコマンドを実行します。例えば、
以下の場合はtestというコマンドがなく正常にコマンド終了できなかったのでpwdコマンドが実行されます。
◆ 「 || 」 で区切った場合のコマンド実行
$ test || pwd
/home/admin/Desktop
|
「 || 」のもう少し実践的な使い方として、カレントディレクトリにtempファイルがある場合は内容を表示
して、tempファイルがない場合(コマンドを正常に終了できない場合)not found というメッセージを表示。
$ cat temp || echo 'not found' |
複数のコマンドをひとまとまりとして実行したい場合、それらのコマンドを( )で囲みます。例えば以下は
dateコマンドとpwdコマンドをひとまとまりとして実行し、その結果をtest1.txtファイルに出力しています。
◆ ( ) で囲んだ場合のコマンド実行
このようにコマンドを実行すると、シェルは新しくシェルを起動しそのシェル上でコマンドが実行されます。
現在のシェル内でコマンドが実行できるようにするには { } でコマンドを囲みます。以下は制御方法の一覧。
コマンド |
説明 |
command1;command2 |
command1の実行完了後、command2を実行 |
command1 && command2 |
command1が正常に終了できた場合のみcommand2を実行 |
command1 || command2 |
command1が正常に終了できなかった場合のみcommand2を実行 |
(command1;command2) |
command1とcommand2をひとまとまりとして実行 |
{command1;command2} |
command1とcommand2を現在のシェル内でコマンドを実行 |
◆ コマンドの実行 - 引用符の使い方
Linuxで使用できる引用符には「 ' 」、「 "」、「 ` 」の3種類があり、使い方は以下の内容通りです。
引用符 |
用語 |
説明 |
' |
シングルクォーテーション |
単一引用符に囲まれると、全て文字列であると見なされる。
|
" |
ダブルクォーテーション |
二重引用符に囲まれると、文字列であるとみなされるが、
この中に、変数がある場合は変数の中身が展開されます。
また、バッククォーテーションがある場合はその中身も展開。
|
` |
バッククォーテーション |
バッククォーテーションに囲まれたコマンドがある場合、その
コマンドを実行した結果が展開される。変数の場合、変数に
格納されたコマンドの実行結果が展開される。
|
以降に「 ' 」「 "」「 ` 」の使用例を紹介します。前提として Date=date と変数定義をした上での実行。
◆ シングルクォーテーションの使用例
$ DATE=date
$ echo '$DATE'
$DATE
|
◆ ダブルクォーテーションの使用例
$ DATE=date
$ echo "$DATE"
date
|
◆ バッククォーテーションの使用例
$ DATE=date
$ echo `$DATE`
Fri May 17 04:26:03 PDT 2013
|
◆ コマンドの履歴
過去に入力したコマンドは上矢印キー(↑)を押すことで直近に入力したコマンドから表示されていきます。
また、下矢印キー(↓)を押せば逆順で表示されていきます。historyコマンドを実行すれば、コマンドの
履歴が履歴番号とともに表示されます。「!履歴番号」のように履歴番号を指定してコマンドの実行も可能。
$ history
1 ls
2 ls -al
3 pwd
$ !3
pwd
/home/admin/Desktop
|
コマンド |
内容 |
↑ ( Ctrl + P ) |
過去に入力したコマンドが直近から表示 |
↓ ( Ctrl + N ) |
↑で遡っていったコマンド履歴を逆順で表示 |
!! |
直前に入力したコマンドを実行 |
!履歴番号 |
履歴番号で指定したコマンドを実行 |
!文字列 |
過去に実行したコマンドの中で、指定した文字列から始まるコマンドを実行 |
コマンド履歴は .bash_history ファイル(各ユーザのホームディレクトリにあるファイル)に保存されます。
この値は環境変数(HISTFILE)で変更できます。デフォルトでは HISTSIZE=1000 として定義されており
1000の履歴数を保持しています。全ユーザの環境変数HISTSIZEの値を変更するには、/etc/profile を編集。
◆ マニュアルの参照 - manコマンド
Linuxではmanコマンドでマニュアルを参照することができます。コマンド、ファイル、システムコール
ライブラリなどの機能を参照することができます。マニュアルのファイルは /usr/share/man に配置。
【構文】 man オプション コマンド名またはキーワード
オプション |
説明 |
-a |
全てのセクションのマニュアルを表示 |
-f |
指定された完全一致のキーワードを含むドキュメントを表示 |
-k |
指定された部分一致のキーワードを含むドキュメントを表示 |
-w |
マニュアルの置かれているディレクトリの表示 |
manページは左側にインデックスが設けられており、それぞれの意味は以下のとおりです。
MANページのインデックス |
日本語 |
説明 |
NAME |
名前 |
コマンドやファイルの名前説明 |
SYNOPSIS |
書式 |
オプションや引数の書式 |
DESCRIPTION |
説明 |
簡単な説明 |
OPTIONS |
オプション |
指定できるオプションの説明 |
FILES |
ファイル |
設定ファイルなど関連するファイル |
ENVIRONMENT |
環境変数 |
関連する環境変数 |
NOTES |
注意 |
その他の注意事項 |
BUGS |
バグ |
既知の不具合 |
SEE ALSO |
関連項目 |
関連項目 |
AUTHOR |
著書 |
プログラムやドキュメントの著書 |
manコマンドにより表示されるページは、ほとんどが1画面に表示されないので、以下のキー操作により
画面がスクロールしたり、文字列を検索します。
キー操作 |
説明 |
上矢印キー(↑)、kキー |
上方向に1行スクロール |
下矢印キー(↓)、jキー、Enterキー |
下方向に1行スクロール |
bキー |
上方向に1画面スクロール |
fキー、スペースキー |
下方向に1画面スクロール |
/検索文字 |
下方向に文字列検索 |
?検索文字 |
上方向に文字列検索 |
hキー |
ヘルプの表示 |
qキー |
終了 |
manコマンドの際にセクションと呼ばれる数字を指定することで、同じ名前のキーワードを区別できます。
例えば、passwdコマンドを調べたい場合と、/etc/passwdファイルを調べたい場合とでは、以下のように
セクションを指定することにより、同じ名前の文字列を区別した上でマニュアルを参照することができます。
◆ セクション値の「1」を指定して、ユーザコマンドの「passwd」のマニュアルページの参照
◆ セクション値の「5」を指定して、設定ファイルの「/etc/passwd」のマニュアルページの参照
セクション値 |
説明 |
1 |
ユーザコマンド |
2 |
システムコール(カーネル機能を使用するための関数) |
3 |
ライブラリ(C言語の関数) |
4 |
デバイスファイル |
5 |
設定ファイル |
6 |
ゲーム |
7 |
その他 |
8 |
システム管理コマンド |
9 |
Linux独自のカーネル用ドキュメント |
-a を指定することで、全てのセクション値のマニュアルページが表示されます。
-f を指定することで、指定した文字列で表示できるセクション値の一覧が表示されます。
$ man -f passwd
passwd (1) - update user's authentication tokens
passwd (5) - password file
|
-k を指定することで、例えばキーワード「passwd」を含むコマンドリストが表示されます。
|