Linux「コマンドラインとシェル」~入力して確かめる~【GitHub対応】

Linux OS・開発環境
OSくん
OSくん

📝 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日:初版公開

コメント

タイトルとURLをコピーしました