Linux入門:コマンド操作のきほん
Linuxとは?OSの基礎を理解する
手元では動いたのに、サーバーでは動かない
自分のパソコンでは問題なく動いたプログラムが、会社のサーバーに置いた途端に落ちる。よくある原因のひとつは、その 2 台が違う OS の上で動いていることです。
OS はハードウェアとアプリケーションの間に立つソフトウェアで、CPU・メモリ・ディスク・ネットワークを管理し、アプリがそれらを安全に使えるように取り持ちます。アプリはハードウェアに直接触れず、必ず OS を経由します。だから土台が違えば、同じプログラムでも振る舞いが変わります。
そして、世の中のサーバーの大半はこの土台に Linux を使っています。クラウドの仮想マシン、Docker コンテナの中身、CI の実行環境、Android スマートフォンまで、開けてみればどれも Linux です。
今どの OS の上にいるのかを、機械に聞く
ターミナル
uname
# Linuxuname は、今動いている OS の名前を答えるコマンドです。Mac のターミナルで同じものを打つと Darwin と返るので、自分がどちら側にいるかがすぐ分かります。
ターミナル
uname -m
# x86_64オプションを足すと、答える項目が変わります。-m なら CPU の種類です。uname は項目ごとにオプションが分かれていて、カーネルの版数だけを答えさせるものもあります。
Ubuntu と Linux は、別のものなのか
Linux という名前は、本来ハードウェアを直接制御する中核部分、つまりカーネルを指します。そこにコマンド群やパッケージ管理を組み合わせ、ひとつの OS として配布したものがディストリビューションで、Ubuntu、Debian、Rocky Linux、Alpine などがあります。どれを選んでも下で動いているカーネルは同じ Linux なので、このコースで覚える操作はそのまま通用します。
画面の無いサーバーには、マウスが刺さらない
このコースでは最初から最後までコマンドを打ちます。理由はふたつです。ひとつは、同じ操作を何百回でも繰り返せること。もうひとつは、画面もマウスも無いサーバーを触れることです。クラウド上のマシンに GUI はほとんど入っていないので、文字で指示を出す以外の入り口がありません。
ここで覚える操作は Linux 専用のものではありません。macOS のターミナルでも、Windows の WSL でも、Docker コンテナの中でも、同じコマンドがほぼそのまま通じます。