目次
- シェル
- シェルの基本操作(メタキャラクタの利用、ディレクトリの指定)
- シェル変数と環境変数(シェル変数、環境変数)
- 環境PATH
- コマンドの実行制御
- 引用符
- コマンドの履歴
- マニュアル参照
シェル
Linux上でコマンドを入力すると、そのコマンドに対応するプログラムが実行され、その結果が表示されます。ユーザーからのコマンドを受け付け、必要なプログラムを実行しているのは、シェル(shell)と言うプログラムです。
多くのディストリビューションで標準的に使用されているシェルはbashです。
システムにログインした直後に起動されるシェルはログインシェルと呼ばれます。
ユーザーごとのログインシェルは/etc/passwdファイルに記述されています。
ユーザーがログインするとシェルは「$」「#」などのプロンプトを表示してユーザーからの指示を待ちます。
bashでは、一般ユーザーの場合「$」でスーパーユーザー(root)の場合「#」を表示します。
シェルの基本操作
bashでは、コマンドアインでの作業を効率よく行えるように様々な機能があります。
メタキャラクタの利用
ファイルを検索する時に役立るのがシェルのメタキャラクタです。
メタキャラクタとは、ファイル名のパターンを表す特殊な記号のことです。
以下、主なメタキャラクタです。
メタキャラクタ | 説明 |
* | 0文字以上の文字列 |
? | 任意の位置文字 |
[] | []内のいずれか位置文字 [abc]-a,b,cのどれか位置文字 [a-z]-小文字のアルファベットa~zの1文字 [!abc]-a,b,c以外の1文字 |
ディレクトリの指定(メタキャラクタ)
ディレクトリを表す特別記号(メタキャラクタ)を使うことが出来ます。
メタキャラクタ | 説明 |
~ | ホームディレクトリ |
. | カレントディレクトリ |
.. | 1つ上のディレクトリ |
シェル変数と環境変数
シェルはユーザーとLinuxシステムとの対話をつかさどります。
その為にはユーザーのホームディレクトリやログイン名など、ユーザーに関する情報を保持していなければなりません。Linuxではこのような情報は変数に保存されます。
変数は、その有効範囲によってシェル変数と環境変数に分類されます。
シェル変数
シェル変数の有効範囲は、その変数を定義したシェル・プロセスのみになります。
当該のシェル・プロセスを終了するとシェル変数は失われます。
環境変数
環境変数は、その変数を定義したシェル上、及びそのシェルで実行されるプログラムにも引き継がれる変数です。
環境変数は、シェル変数をexportコマンドでエクスポートすることによって設定されます。
以下、よく利用される環境変数です。
環境変数 | 説明 |
HISTFILE | コマンド履歴保存ファイルのパス |
HISTSIZE | 現在のシェルでのコマンド履歴の保存数 |
HISTFILESIZE | コマンド履歴保存ファイルへの履歴保存数 |
HOSTNAME | ホスト名 |
HOME | ログインしているユーザのホームディレクトリ |
LANG | ロケール(言語設定) |
PATH | コマンドやプログラムを検索するディレクトリのリスト |
PWD | カレントディレクトリのパス |
USER | ログインしているユーザ |
定義された変数はexportコマンドを使って参照できます。
変数を削除するにはunsetコマンドを使います。
定義されている環境変数を一覧表示するには、envコマンドやprintenvコマンドを使います。
環境変数とシェル変数を両方表示したい場合は、setコマンドを使います。
環境変数PATH
プロンプトが表示されている状態でコマンドを入力すると、シェルはそのコマンドを実行します。
コマンドには、内部コマンドと外部コマンドの2種類があります。
- 内部コマンド・・・シェル自体に組み込まれているもの。
- 外部コマンド・・・独立したプログラムとして存在する。
コマンドの実行制御
以下、複数コマンドの実行制御です。
コマンド | 説明 |
コマンド1 ; コマンド2 | コマンド1に続いてコマンド2を実行する。 |
コマンド1 && コマンド2 | コマンド1が正常に終了した時のみコマンド2を実行する。 |
コマンド1 || コマンド2 | コマンド1が正常に終了しなかった場合のみコマンド2を実行する。 |
(コマンド1 ; コマンド2) | コマンド1とコマンド2をひとまとまりのコマンドグループとして実行する。 |
{コマンド1 ; コマンド2;} | 現在のシェル内でコマンド1とコマンド2を実行する。 |
引用符
「’」—単一引用符(シングルクォーテーション)
単一引用符の中は、すべて文字列であると解釈されます。
「”」—二重引用符(ダブルクォーテーション)
二重引用符内も文字列であるとみなされます。
ただし、二重引用符内に変数があれば、その変数の内容が展開されます。
また、二重引用符内にバッククォーテーション「`」が使われているとその中も展開されます。
展開させたくない場合は、バックスラッシュを使います。
バックスラッシュの直後の文字は、すべて通常の文字であるとみなされます。
「‛」—バッククォーテーション
バッククォーテーション内にコマンドがあれば、そのコマンドを実行した結果が展開されます。
また、変数の場合は、変数に格納されているコマンドを実行した結果が展開されます。
コマンド履歴
一度使ったコマンドをもう一度使ったり、一部だけ変更して使いたい場合は、bashの履歴機能を利用します。bashは実行したコマンドを保存しているので、その結果を呼び出すことにより、再入力の手間が省けます。
プロンプトが表示されている状態で上矢印(↑)キーを押すと、実行したコマンドが最近実行したものからさかのぼって表示されます。
historyコマンドを使うと、コマンド履歴が順に表示されます。
マニュアルの参照
Linuxでは、オンラインマニュアルページが標準で用意されています。
オンラインマニュアルページはmanコマンドを使って表示することが出来ます。
manコマンドでは、デフォルトのページャとしてlessが設定されています。
テキストを表示するだけでなく、テキスト内検索することも出来ます。
以下、lessの主なキー操作です。
キー操作 | 説明 |
kキー、↑キー | 上方向に一行スクロール |
jキー、↓キー、Enterキー | 下方向に一行スクロール |
スペースキー、fキー | 下方向に一画面スクロール |
bキー | 上方向に一行スクロール |
qキー | 終了 |
/検索文字列 | 下方向に文字列を検索 |
?検索文字列 | 上方向に文字列を検索 |
hキー | ヘルプを表示する |
manコマンドには、同一の名前で異なる内容を扱えるようにするために、セクションが設定されています。
セクションとは、ドキュメントの内容による分類です。
セクション | 説明 |
1 | ユーザーコマンド |
2 | システムコール(カーネルの機能を使うための関数) |
3 | ライブラリ |
4 | デバイスファイル |
5 | 設定ファイル |
6 | ゲーム |
7 | その他 |
8 | システム管理コマンド |
9 | Linux独自のカーネル用ドキュメント |
最後まで読んで頂き、ありがとうございました。
他の分野へ移動できる全体ページへは下記リンクから移動できます。