Linuxシェルとは?

コマンドを受け付けて結果を表示するプログラム
2023-09-28
ヒーローイメージ

目次
  1. シェルとは?
  2. シェルとコマンドの関係
  3. シェルの種類
  4. ログインシェルとは?
  5. シェルのショートカットキー

シェルとは?

  • シェル(shell)とは、Linux上で①ユーザからコマンドを受け付け、②必要なプログラムを実行し、③その結果を表示する、プログラムです。

  • ユーザがLinuxにログインするとシェルは$#などのプロンプトを表示してユーザからコマンドの入力も待ちます。

    bashプロンプト表示例
    [root@hostname ~]#
  • プロンプト表示はシェルによって異なります。例えばbashと呼ばれるシェルにおいては、一般ユーザの場合は$が表示され、スーパーユーザ(root)の場合は#が表示されます。 また、ユーザ名を表示する、カレントディレクトリを表示する、ホスト名を表示する、などプロンプトの表示形式は自由に設定することが可能です。

    Note

    プロンプトの設定は環境変数PS1で行います。

シェルとコマンドの関係

  • 下図はシェルとコマンドの関係のイメージです。

    シェルとコマンドの関係図

    1. Linuxにコマンドラインでログインすると下記のようにプロンプトが画面に表示されます(ユーザからコマンドを受け付ける状態になります)。

      [root@hostname ~]#
    2. ここでカレントディレクトパスを確認するためpwdコマンドを入力しEnterReturn)キーを押下します。

      [root@hostname ~]# pwd
    3. するとシェルはpwdコマンドを検索し実行します。

    4. pwdプロセスの実行結果が画面に表示されます。

      [root@hostname ~]# pwd
      /root
    5. 実行結果が画面表示された後はpwdプロセスは終了します。

    6. その後再度プロンプトが画面表示されます(ユーザからコマンドを受け付ける状態になります)。

      [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)
    kshbashtcshの機能を取り入れたシェルです。
    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 コマンド履歴を検索する。

コメント


Palette Codeなるべく丁寧にプログラミング関連技術を解説するサイト