4.1. シェル

4.1.1. シェルとシェルの種類

シェルとは

シェルはコマンドを解釈して実行するプログラムのこと。 利用可能なシェルは/etc/shellsで確認可能。

シェルの種類

シェル説明
shUNIX V7から標準添付されているUNIXの基本的なシェル
cshC言語スタイルの構文を持ったUNIX系OSの代表的なシェル
tcshCシェルの派生版の中で特にユーザーインターフェイス部分を中心に拡張されたシェル
kshBシェルと上位互換を保ちながら、Cシェルなどから優れた機能を取り込んだシェル
bashUNIX系のシェルの1つでLinuxで用いられる標準のシェル

ログインシェル

ログインシェルはシステムへのログイン直後に起動するシェルのことで、これはユーザごとに定義が可能。 ユーザごとのログインシェルは/etc/passwdファイルに記述される。

なお現在ログインしている自身が使用しているシェルはps $$コマンドで確認できる。

4.1.2. シェルの基本操作と設定

シェルのキーボード操作

入力キー説明
Tabキーコマンドやディレクトリ名などを補完する
Ctrl + C実行処理を中断する
Ctrl + Z実行処理を一時停止する
Ctrl + A行の先頭へカーソルを移動する
Ctrl + Dカーソル上にある文字列を1文字削除する
Ctrl + E行の最後へカーソルを移動する
Ctrl + Hカーソルの左側の文字列を1文字削除する
Ctrl + L画面をクリアして、現在の行だけを再表示する
Ctrl + Q画面への出力を再開する
Ctrl + S画面への出力を停止する

ディレクトリの指定

メタキャラクタ説明
~ホーム
.カレントディレクトリ
..1つ上のディレクトリ

4.1.3. シェル変数と環境変数

Linuxが扱う変数にはシェル変数と環境変数の2種類がある。

シェル変数

シェル変数は現在実行しているシェルの中だけで有効な変数のこと。 特徴は以下の通り。

  • シェルを終了すると失われる
  • 別のシェルから参照することはできない

利用方法はecho $変数名で行い、例は以下の通り。

echo $hoge
hoge=123

なおunset 変数名で定義した変数の削除が可能。

環境変数

環境変数は現在実行しているシェルとそのシェルで実行されたプログラムにも引き継がれる変数のこと。

利用方法はexport 変数名で行い、例は以下の通り。

hoge=123
export hoge

また主な環境変数は以下の通り。

環境変数説明
PWDカレントディレクトリ
HOSTNAMEホスト名
USER現在のユーザー
LOGNAMEログインシェルのユーザー名
HISTSIZEコマンド履歴の最大値
HISTFILEコマンド履歴を格納するファイル
HISTFILESIZEHISTFILEに保存する履歴数
LANGロケール
HOMEカレントユーザーのホームディレクトリ

またPATHは既存のパスの後ろに;区切りで追加して以下のように通す。

export PATH=$PATH:/additional/path

シェル変数/環境変数の確認

シェル変数と環境変数を確認するためにはsetコマンドを使用する。 また設定済みの環境変数を一覧表示するためには、envコマンドやprintenvコマンドを使用する。

4.1.4. コマンドの実行と引用句

コマンドの区切り文字との実行

コマンドの区切り文字でコマンドを挟むと以下のような効果がある。

<コマンド1> <区切り文字> <コマンド2>
区切り文字説明
;コマンドを同時に実行
&&最初に実行したコマンドが正常に終了できた場合のみ次コマンドを実行
||最初に正常にコマンド終了できなかった場合のみ次コマンドを実行

コマンドに引用句を使う

引用句説明
''常に文字列として扱う
""変数展開する
~~コマンド展開する
``コマンドを実行した結果を展開する

4.1.5. コマンド履歴の確認とマニュアルの確認

historyコマンド

historyコマンドはコマンド履歴を確認するコマンド

コマンド説明
history 数字数自分だけ過去の履歴を表示
!数字数字のコマンドを実行
!!直前のコマンドを実行

manコマンド

manコマンドはオンラインマニュアルページを閲覧できるコマンド。 マニュアルを構成するファイルは/usr/share/manにある。

man <オプション> コマンド | キーワード
オプション説明
-a全てのセクションのマニュアルを表示
-f指定された完全一致のキーワードを含むドキュメントを表示
-k指定された部分一致のキーワードを含むドキュメントを表示
-wマニュアルの置かれているディレクトリの表示