
📝 2026年10月4日に全面リライトしました
2023年8月に公開した記事を、「つくって学ぶ」の趣旨に合わせて書き直した。コマンドを実際に打ち、簡単なシェルスクリプトを作りながら、コマンドラインとシェルを体験できる内容になっている。
はじめに
前回のOS記事では、OSの役割を確認した。今回は、そのOS(カーネル)に指示を出す入口である「コマンドライン」と「シェル」を、GitHub Codespaces(Ubuntu)で実際に体験しながら学ぶ。
シェルの役割と機能は、基本情報技術者試験のシラバスにも載っている。
なお、コードは、筆者のGitHubリポジトリ pc-labo-hands-on の shell/ フォルダにまとめてある。
コマンドラインとは
文字だけでコンピューターに指示を出し、結果も文字で受け取る。Windows 11では、PowerShellなどのシェルをターミナル上で利用できる。この方式をCUI(キャラクタユーザーインターフェース)という。
マウスでウインドウやアイコンを操作する方式は、GUIという。
コマンドラインとは、キーボードから文字でコマンドを入力して、コンピューターを操作するためのインターフェースである。ターミナルを開いて、次を入力してみよう。
ls -a
カレントディレクトリのファイルが、隠しファイルも含めて一覧表示される。行頭の表示(コマンドプロンプト)は環境で異なるが、本稿では $ で示す。
シェルとは
コマンドを受け付けて実行しているのがシェルである。シェルは、ユーザーとカーネルの橋渡し役をする。カーネルに処理を頼むときは「システムコール」を使うが、その細かい部分を、ユーザーの代わりに引き受けてくれる。
名前は、カーネルを貝殻(shell)のように包んでいることに由来する。
体験1:今使っているシェルを調べる
echo $SHELL
ps -p $$
cat /etc/shells
- 1行目:ログインシェルのパス
- 2行目:今動いているシェルのプロセス(OS記事で見たPIDと同じ考え方)
- 3行目:この環境で使えるシェルの一覧
代表的なシェル
- sh(Bourne Shell):昔のUNIX系OSの標準
- bash:GNU製で、sh互換。多くのLinuxで標準
- zsh:sh互換で、bashより機能が豊富
- csh / tcsh:文法がC言語風。BSD系で使われる
コマンドの種類
コマンドには、シェル自身が処理する内部コマンドと、独立したプログラムの外部コマンドがある。
体験2:内部と外部を見分ける
type cd
which ls
cd はシェルの組み込みコマンド、ls は実行ファイルの場所が表示される。
外部コマンドは、実行ファイルとして存在し、シェルから起動されて実行される。
体験3:シェルスクリプトを作る
コマンドを並べたファイルを作れば、シェルが順に実行してくれる。hello.sh として保存する。
#!/bin/bash
echo "こんにちは、$(whoami) さん"
echo "実行しているスクリプトは $0 です"
chmod +x hello.sh
./hello.sh
先頭の #!/bin/bash は、どのシェルで実行するかの指定である。
まとめ
- コマンドラインは、コマンドを入力する行である
- シェルは、ユーザーとカーネルの橋渡し役である
- コマンドには内部と外部があり、
typeやwhichで見分けられる - シェルスクリプトで、コマンドをまとめて自動実行できる
更新履歴
- 2026年10月4日:全面リライト(試す内容に刷新)
- 2023年8月11日:初版公開




コメント