Linuxシェルとは?
シェルとは?
-
シェル(shell)とは、Linux上で①ユーザからコマンドを受け付け、②必要なプログラムを実行し、③その結果を表示する、プログラムです。
-
ユーザがLinuxにログインするとシェルは
$
や#
などのプロンプトを表示してユーザからコマン ドの入力も待ちます。bashプロンプト表示例[root@hostname ~]#
-
プロンプト表示はシェルによって異なります。例えば
bash
と呼ばれるシェルにおいては、一般ユーザの場合は$
が表示され、スーパーユーザ(root)の場合は#
が表示されます。 また、ユーザ名を表示する、カレントディレクトリを表示する、ホスト名を表示する、などプロンプトの表示形式は自由に設定することが可能です。Noteプロンプトの設定は環境変数
PS1
で行います。
シェルとコマンドの関係
-
下図はシェルとコマンドの関係のイメージです。
-
Linuxにコマンドラインでログインすると下記のようにプロンプトが画面に表示されます(ユーザからコマンドを受け付ける状態になります)。
[root@hostname ~]#
-
ここでカレントディレクトパスを確認するため
pwd
コマンドを入力しEnter
(Return
)キーを押下します。[root@hostname ~]# pwd
-
するとシェルは
pwd
コマンドを検索し実行します。 -
pwd
プロセスの実行結果が画面に表示されます。[root@hostname ~]# pwd /root
-
実行結果が画面表示された後は
pwd
プロセスは終了します。 -
その後再度プロンプトが画面表示されます(ユーザからコマンドを受け付ける状態になります)。
[root@hostname ~]# pwd /root [root@hostname ~]#
-
シェルの種類
-
シェルにはいくつもの種類があり、ユーザは好みに応じてシェルを選択することが可能です。代表的なシェルは以下のとおりです。
- sh(Bourne shell)
- UNIXの標準的なシェルです。
- bash(Bourne Again shell)
sh
を改良したシェルです。多くのLinuxディストリビューションにおいて標準シェルになっています。- csh(c shell)
- C言語に似たスクリプトが利用できるシェルです。cshを拡張した
tcsh
もあり、LinuxでCシェルとして利用されているのはtcsh
です。 - tcsh
- cshを拡張したシェルです。Linuxでは
csh
ではなくtcsh
が利用されています。 - ksh(korn shell)
sh
を拡張したシェルです。- zsh(z shell)
ksh
にbash
やtcsh
の機能を取り入れたシェルです。- fish(friendly interactive shell)
- ユーザーフレンドリーで直感的な操作を重視したシェルです。
Note利用可能なシェルについては
/etc/shells
ファイルで確認することができます。
またchsh
コマンドを使ってデフォルトシェルを変更することができます。
ログインシェルとは?
-
システムにログインした直後に起動されるシェルはログインシェルと呼びます。
ユーザ毎のログインシェルは/etc/passwd
ファイルに記述されています。以下が記載例です。- 以下だと
root
ユーザのログインシェルはbash
になっていることが確認できます(:
区切りの最後のフィールド)。
root:x:0:0:root:/root:/bin/bash
- 以下だと
シェルのショートカットキー
- 以下は
bash
で利用できるショートカットキーです。
カテゴリ | ショートカットキー | 説明 |
---|---|---|
補完機能 | Tab | コマンドやファイル名/ディレクトリ名を入力補完する。 |
カーソル移動 | ctrl+a | 行頭にカーソルを移動する。 |
ctrl+e | 行末にカーソルを移動する。 | |
ctrl+f | 1文字右へカーソルを移動する。 | |
ctrl+b | 1文字左へカーソルを移動する。 | |
編集 | ctrl+l | 画面をク リアしてカレント行を再表示する。 |
ctrl+d | カーソル部分を1文字削除する。削除対象がなければログアウトする。 | |
ctrl+h | カーソルの左を1文字削除する(Backspaceと同じ)。 | |
ctrl+k | カーソルより右側の文字を全削除する。 | |
ctrl+u | カーソルより左側の文字を全削除する。 | |
実行制御 | ctrl+c | 処理を中断する |
ctrl+s | 画面への出力を停止する。 | |
ctrl+q | 画面への出力を再開する。 | |
ctrl+z | 処理を一時停止(サスペンド)する。 | |
履歴 | ctrl+p | 1つ前のコマンド履歴を表示する。 |
ctrl+n | 1つ先のコマンド履歴を表示する。 | |
ctrl+r | コマンド履歴を検索する。 |
コメント