Linux入門:コマンド操作のきほん
Linuxとは?OSの基礎を理解する
Linuxとは?OSの基礎を理解する
このレッスンで分かること
- Linux は「ハードウェアとアプリの間に立つ OS の一種」で、世界中のサーバー・スマホ・家電を支えている
- 厳密には「Linux カーネル + ユーザー空間のコマンド群」をまとめて配布したものが ディストリビューション (Ubuntu, Debian, Alpine 等)
- 本コースで学ぶ
ls / cd / cat / grepなどは Linux だけでなく macOS や WSL でもほぼそのまま使える- 自分の OS を即確認するコマンドは次の通り
ターミナル
uname -a # 例: Linux ubuntu 6.5.0-21-generic #21-Ubuntu SMP ... x86_64 GNU/Linux
Linux とは
LinuxのOSとしての基礎を学びます。Linuxの役割と構成要素について解説します。本レッスンでは、Linux の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。
なぜ重要か
Webサーバー、クラウドインフラ、スマートフォン、家電、スーパーコンピュータまで、現代のコンピューティングの基盤は Linux が支えています。たとえば AWS や Google Cloud のサーバーの大半は Linux で稼働しており、Android も内部は Linux カーネルです。エンジニアとして関わるプロダクトの裏側にはほぼ確実に Linux があり、ここを理解しているかどうかで開発・運用の幅が大きく変わります。
しかし「Linux」という言葉は曖昧に使われがちで、人によって OS そのものを指したり、カーネルだけを指したり、コマンドラインの環境を指したりします。最初のレッスンではこの輪郭を整理し、後続レッスンで扱う「シェル」や「コマンド」が、どのレイヤーの話なのかを位置付けられるようにします。
OS とは何か
OS (Operating System) はハードウェアとアプリケーションの間に立つソフトウェアで、CPU・メモリ・ストレージ・ネットワークなどの資源を管理し、複数のプログラムが安全に動作できるようにする土台です。エンジニアが書くアプリは OS の API を経由してハードウェアを使います。
ターミナル
uname -a
# 例: Linux ubuntu 6.5.0-21-generic #21-Ubuntu SMP ... x86_64 GNU/Linuxuname は OS の名前やカーネルのバージョンを表示するコマンドで、自分が今どんな環境で作業しているかを最初に確認するときによく使います。
Linux カーネルとディストリビューション
「Linux」と一口に言いますが、厳密にはカーネルとディストリビューション (略してディストロ) を分けて考えると整理しやすくなります。
| 構成要素 | 役割 | 具体例 |
|---|---|---|
| カーネル | ハードウェア制御、プロセス管理、メモリ管理 | linux kernel 6.x |
| 基本コマンド | ファイル操作・テキスト処理 | GNU coreutils, bash |
| パッケージ管理 | ソフトウェアの導入・更新 | apt, dnf, pacman |
| デスクトップ環境 | GUI レイヤ (任意) | GNOME, KDE |
カーネル + これらを組み合わせて一つの OS として配布したものがディストリビューションです。代表例は Ubuntu, Debian, Red Hat Enterprise Linux, CentOS Stream, Rocky Linux, Alpine, Arch などで、用途によって選び分けます。サーバーなら Ubuntu や Rocky、組み込みやコンテナなら Alpine がよく使われます。
用途別ディストリビューションの選び方
| 用途 | 候補 | 理由 |
|---|---|---|
| Web サーバー | Ubuntu Server / Rocky Linux | 情報量が多くサポートが手厚い |
| Docker コンテナ | Alpine | サイズが 5MB 程度と非常に軽量 |
| デスクトップ学習 | Ubuntu Desktop | GUI 付きでとっつきやすい |
| 業務 (有償サポート) | Red Hat Enterprise Linux | 商用サポートと長期メンテ |
| 組み込み / IoT | Alpine / Debian-slim | 軽量で起動が速い |
図解 Linux の階層構造
階層の読み方 (図と同じ内容を箇条書きで再掲)
- 最下層は ハードウェア (CPU・メモリ・ディスク・ネットワークカード)
- その上に Linux カーネル が乗り、ハードを直接制御している
- さらに上に システムライブラリ (glibc 等) があり、カーネルへの呼び出し方を整える
- 最上層が ユーザー空間 (シェル
bash、コマンドls、アプリpythonなど) - ユーザーが触るのは最上層のみ。下位への要求はすべてカーネル経由
上の図のとおり、ユーザーが触れるシェルやコマンドは一番上のレイヤです。直接ハードを叩いているわけではなく、カーネルに依頼してメモリ確保やファイル読み書きをしてもらっています。この境界を意識すると、後で出てくる「権限」や「プロセス」が理解しやすくなります。
Linux と Unix と macOS の関係
ターミナル
# macOS のターミナル
uname
# Darwin
# Linux のターミナル
uname
# LinuxmacOS は Linux ではありませんが、同じ Unix 系の OS で、ファイル構造やコマンドの大半が共通しています。本コースで学ぶ ls, cd, cat, grep などはほぼそのまま macOS でも使えます。Windows も WSL (Windows Subsystem for Linux) を使えば Linux と同等の環境を手元に用意できます。
Unix 系 OS の世界では「コマンドはどこでも通じる共通言語」になっています。Linux で覚えた操作は macOS、WSL、Docker コンテナの中、クラウド上の VM など、ほぼすべての場面でそのまま使えます。
オープンソースという文化
Linux はソースコードが公開されており、世界中の開発者が機能追加やバグ修正を行い、それが上流のカーネルに取り込まれます。企業も Google, Meta, Microsoft, Amazon などが多数のコミッターを抱え、共同で改善しています。自分が使っている OS の内部実装をいつでも読める、というのは商用 OS にはない大きな特徴です。
オープンソースだからこそ、調べたい挙動の根拠を最終的にはコードまで遡れます。マニュアルや stack overflow だけで分からないときに、
manや GitHub 上のカーネルソースまで降りて行ける感覚を持っておくと、トラブルシュートの粘り強さが変わります。
どこで Linux に触れているか
身近な接点は次の通りです。
- 業務で使うクラウドサーバー (EC2, GCE, Cloud Run, App Engine)
- Docker コンテナの中身 (Alpine, Debian-slim ベースが多い)
- CI/CD ランナー (GitHub Actions の Ubuntu)
- 自宅の Raspberry Pi、家庭用ルーターのファームウェア
- Android スマートフォン
普段は意識していないだけで、エンジニアの日常はほぼ Linux に取り囲まれています。
まとめ
- Linux は OS の一種で、ハードウェアと人間の間を取り持つ土台
- 厳密にはカーネル + ユーザー空間ツール群、それをまとめて配布したものがディストリビューション
- macOS や WSL も Unix 系で、本コースで学ぶ操作はほぼ共通
- オープンソースで世界中の開発者が支えており、内部実装に手が届く透明性が魅力
- サーバー、クラウド、コンテナ、スマホまで、現代のソフトウェア基盤の多くが Linux 上で動いている
次のレッスン
次は エンジニアにLinuxが必要な理由 で、LinuxのOSとしての基礎を学びます を学びます。
事前確認 — 進む前に次の 3 つができることを確認しましょう。
- Linuxとは の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. Linuxとは とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン