シェルとは
シェルとは、ユーザーがコンピュータのオペレーティングシステムと対話するためのインターフェースです。主にコマンドラインインターフェース(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の強力な機能を活用できます。