第三章 GNU & UNIX コマンド
3.1 コマンドライン操作
シェル(shell)
ユーザーからの個尾万度を受け付け、必要なプログラムを実行するプログラム
シェルの種類
| シェル名 | 説明 |
|---|---|
| Bourneシェル(sh) | UNIXの標準的なシェル |
| bash(Bourne Again Shell) | shを改良したもの。多くのディストリビューションで標準シェルとなっている |
| Cシェル(csh) | C言語に似たスクリプトが利用できるシェル |
| tcsh | cshを拡張したシェル。LinuxでCシェルとして使われているのはtcsh。 |
| Korn(ksh)シェル | Bourneシェルを拡張したシェル |
| zsh | kshにbash、tcshの機能を取り入れたシェル |
利用可能なシェルの確認
$ cat /etc/shells
ログインシェル
システムにログインした直後に起動されるシェル
/etc/passwd に各ユーザのログインシェルの設定をする。
シェルのプロンプトによりユーザが分かれる
$ スーパーユーザ(root)
# 一般ユーザ
カレントディレクトリ(カレントワーキングディレクトリ)
ユーザーが現在作業中のディレクトリ
カーソル移動
| コマンド | 説明 |
|---|---|
| Tab | 文字列の補完 |
| Ctrl+A | カーソルを行頭に移動 |
| Ctrl+E | カーソルを行末に移動 |
| Ctrl+D | カーソル部分の一文字を削除 |
| Ctrl+H | カーソル左側の一文字を削除 |
| Ctrl+L | 画面をクリアしてからカレント行を再表示 |
| Ctrl+C | 処理の中断 |
| Ctrl+S | 画面への出力を停止 |
| Ctrl+Q | 画面への出力を再開 |
| Ctrl+Z | 処理を一時停止(サスペンド) ※1 |
| ※1:サスペンドしたコマンドは「fg」で再開 |
ディレクトリ指定
| メタキャラクタ (特殊記号) |
説明 |
|---|---|
| ~ | ホームディレクトリ |
| . | カレントディレクトリ |
| .. | 1つ上のディレクトリ |
シェル変数
有効範囲はその変数を定義したシェル・プロセスのみ
当該シェル・プロセスを終了すると変数の値も失われる
環境変数
その変数を定義したシェル上、及びそのシェルで実行されるプログラムにも引き継がれる。
シェル変数をexportコマンドで設定する。
主な環境変数
| 環境変数 | 説明 |
|---|---|
| PATH | コマンドやプログラムを検索するディレクトリリスト |
| PWD | カレントディレクトリ |
| HOSTNAME | ホスト名 |
| USER | 現在のユーザー名 |
| LANG | ロケール(言語処理方式) |
| HOME | カレントユーザーのホームディレクトリ |
| LOGNAME | ログインシェルのユーザー名 |
| PS1 | プロンプトの表示文字列 |
| PS2 | 複数行にわたる入力時のプロンプト |
| HISTSIZE | コマンド履歴の最大値 |
| HISTFILE | コマンド履歴を格納するファイル |
| HISTFILESIZE | HISTFILEに保存する履歴数 |
| TERM | 端末の種類 |
定義された変数は「echo」コマンドを使って参照ができる。
$ echo $PATH
パスの設定
$ PATH=$PATH:/xxx/bin
表記法
- 絶対パス・・・最上位のディレクトリ(/)から表記する方法
- 相対パス・・・カレントディレクトリ(.)を基点とした方法
内部コマンド/外部コマンド
- 内部コマンド・・・シェル自体に組み込まれているもの
- 外部コマンド・・・独立したプログラムとして存在するもの
コマンドの実行
$ コマンド オプション 引数
$ AAA;BBB
※AAAに続いてBBBを実行する
$ AAA && BBB
※AAAが正常に終了した時のみBBBを実行する
$ AAA || BBB
※AAAが正常に終了しなかった場合のみBBBを実行する
$(AAA;BBB)
※ひとまとまりのコマンドグループとして実行する
${AAA;BBB}
※現在のシェル内でコマンドを実行する
引用符
- 「'」単一引用符(シングルクォーテーション)
⇒ 囲った中の文字列は、全て文字列として解釈される - 「"」二重引用符(ダブルクォーテーション)
⇒ 文字列二重引用符内に変数がある場合は内容が展開される(※バックスラッシュ(\)でエスケープが可能) - 「`」バッククォーテーション
⇒ バッククォーテーション内にコマンドがあれば実行した結果が展開される
コマンド履歴
| コマンド | 説明 |
|---|---|
| history | コマンド履歴の表示 |
| ↑(Ctrl+P) | 一つ前のコマンドを表示する |
| ↓(Ctro+N) | 一つ次のコマンドを表示する |
| !文字列 | 実行したコマンドの中で、指定した文字列から始まるコマンドを実行する |
| !?文字列 | 実行したコマンドの中で、指定した文字列を含むコマンドを実行する |
| !!文字列 | 直前に実行したコマンドを再実行する |
| !履歴番号 | 履歴番号のコマンドを実行する |
※全ユーザーの環境変数は「/etc/profile」内の該当箇所を編集する。
| コマンド | 説明 |
|---|---|