
【Linux】シェルとは
シェルとは、ユーザーがコンピュータのオペレーティングシステムと対話するためのインターフェースです。主にコマンドラインインターフェース(CLI)として提供され、ユーザーはコマンドを入力し、シェルはそのコマンドを解釈して実行します。シェルはスクリプトを書くための言語としても使用され、自動化やシステム管理のための強力なツールです。

シェルの種類
| シェル名 | フルスペル | 読み方 | 説明 |
|---|---|---|---|
| sh | Bourne Shell | ボーンシェル | 古典的なUNIXシェルで、多くのスクリプトで互換性があります。 |
| ksh | Korn Shell | コーンシェル | shの拡張版で、スクリプティング機能が強化されています。 |
| bash | Bourne Again Shell | バッシュ | shの後継で、多くのLinuxディストリビューションでデフォルトのシェルです。 |
| csh | C Shell | シーシェル | C言語に似た構文を持つシェルで、特定の環境で人気があります。 |
| tcsh | TENEX C Shell | ティーシーシェル | cshの拡張版で、コマンドライン編集や履歴機能が強化されています。 |
| zsh | Z Shell | ゼットシェル | 高度な機能を持ち、カスタマイズ性が高いシェルで、多くのユーザーに人気があります。 |
bashの機能
| 機能 | 説明 |
|---|---|
| コマンド履歴の保存 | ユーザーが入力したコマンドの履歴を保存し、再利用可能にします。 |
| コマンドの別名設定 | alias コマンドを使ってコマンドの短縮形や別名を設定できます。 |
| シェルの変数設定 | 環境変数やユーザー定義の変数を設定し、スクリプトやセッション全体で使用できます。 |
| 引用符の解釈 | シングルクォート(')やダブルクォート(")を使って文字列の解釈を制御します。 |
| コマンド実行のアレンジ | 複数のコマンドを実行する。 |
| ワイルドカードの解釈 | * や ? などのワイルドカードを使ってファイル名のパターンマッチングを行います。 |
| シェル機能の保存と設定 | .bashrc や .bash_profile などの設定ファイルを使ってシェルの設定を永続化します。 |
| スクリプティング機能 | 条件分岐、ループ、関数などを使って複雑なスクリプトを作成できます。 |
| 自動補完機能 | Tabキーを使ってコマンドやファイル名を自動補完します。 |
| 入出力リダイレクト | 標準入力、標準出力、標準エラーのリダイレクトをサポートします。 |
| コマンド置換 | コマンドの出力を別のコマンドの入力として使用できます。 |
これらの機能により、bashは多くのLinuxユーザーにとって強力で便利なツールとなっています。
bashの機能の具体例
以下に、bashの主要な機能とその具体的な例を紹介します。

コマンド履歴の保存
- 機能: ユーザーが入力したコマンドの履歴を保存し、再利用可能にする。
- 具体例:
historyコマンドを使って過去のコマンドを見ることができます。
history- 再利用: 矢印キーの上下を使って以前のコマンドを呼び出せます。
!23 # 23番目のコマンドを再実行コマンドの別名設定
- 機能:
aliasコマンドを使ってコマンドの短縮形や別名を設定。 - 具体例:
llをls -laのエイリアスとして設定。
alias ll='ls -la'エイリアスの解除
unalias llシェルの変数設定
- 機能: 環境変数やユーザー定義の変数を設定。
- 具体例: 環境変数
PATHにディレクトリを追加。
export PATH=$PATH:/new/directoryユーザー定義変数
my_var="Hello, World!"
echo $my_var引用符の解釈
- 機能: シングルクォート(')やダブルクォート(")を使って文字列の解釈を制御。
- 具体例: ダブルクォートは変数展開を行う。
name="John"
echo "Hello, $name" # 出力: Hello, Johnシングルクォートは変数展開を行わない
echo 'Hello, $name' # 出力: Hello, $name入出力リダイレクト
- 機能: パイプ(|)、リダイレクト(>、>>、<)を使用してコマンドの入力と出力をアレンジ。
- 具体例: コマンドの出力をファイルにリダイレクト。
ls > file_list.txtパイプを使用
ps aux | grep bashワイルドカードの解釈
- 機能:
*や?などのワイルドカードを使ってファイル名のパターンマッチングを行う。 - 具体例: ディレクトリ内のすべてのテキストファイルを表示。
ls *.txtシェル機能の保存と設定
- 機能:
.bashrcや.bash_profileなどの設定ファイルを使ってシェルの設定を永続化。 - 具体例:
.bashrcにエイリアスを追加。
echo "alias ll='ls -la'" >> ~/.bashrc
source ~/.bashrcその他の機能
- 自動補完機能: Tabキーを使ってコマンドやファイル名を自動補完。
cd Doc[TAB] # Documents ディレクトリに補完これらの具体例を使って、bashの強力な機能を活用できます。
