新卒インフラエンジニア向けLinuC 101 試験対策シリーズの第1回です。
サーバーの前に座ったあなたが最初に必要になるのは、「入って・確認して・出て・止める」という基本動作です。本記事では、AlmaLinux 9.6の検証VMを使って、ログイン・接続確認・ログアウト・シャットダウンの流れを実機で体験します。
環境前提
- ディストリビューション: AlmaLinux 9.6(Sage Margay)
- カーネル: 5.14.0-570 系
- ユーザー:
developer(sudo NOPASSWD設定済み) - 検証環境: Hyper-V on Windows 11
- 関連VM:
linuc-alma(10.0.10.132) - ホストPC: External Switch(192.168.1.0/24)から SSH接続
今ここマップ
LinuC 101 試験対策シリーズ(全12回)
▶ 第1回 Linuxの起動・接続・停止 ← いまここ
第2回 ブートプロセスの仕組み
第3回 systemdマスター講座
第4回 プロセス管理とハードウェア基礎
第5回 仮想マシンとコンテナの基礎
第6回 パッケージ管理マスター
第7回 ファイル操作の実践
第8回 パーミッション・所有者・特殊権限
第9回 コマンドライン・リダイレクト・パイプ
第10回 テキスト処理(grep / sed / awk)
第11回 vi/vim 入門
第12回 ディスク・パーティション・ファイルシステム
この記事で身につくこと
- Hyper-Vコンソールから AlmaLinux にログインできる
- SSHで
linuc-almaに接続・切断できる - ログイン状況を
whowlastで把握できる shutdownrebootsystemctlでシステムを安全に停止・再起動できる- systemd ターゲット(旧ランレベル)の概念を理解し、確認・切替ができる
なぜ「ログイン」と「停止」を最初に学ぶのか
サーバーは「動いてあたりまえ」「止まったら大事件」が前提の領域です。新卒エンジニアが現場で最初に求められるのは、難しいシェルスクリプトを書くことではなく、ログインしてサーバーの状態を見て、必要なら安全に止める/再起動する、という地味で確実な操作です。
そして、ここを雑に覚えると現場で本当に痛い目を見ます。本番サーバーで間違えて shutdown -h now を打って深夜に呼び出されるエンジニアは、毎年どこかにいるのです。だからこそ、最初の1回で仕組みから順を追って理解してください。
第1章:Linuxへのログイン
1.1 ログインとは何をしているのか
「ログイン」とは、システムに対して「自分が誰か」を証明し、その人の権限でシェル(コマンド入力受付)を起動してもらう行為です。Linuxには大きく分けて2つの入口があります。
- コンソールログイン:物理キーボード/Hyper-Vなどの仮想コンソールから直接操作
- リモートログイン:ネットワーク経由でSSH接続して操作
現場の運用では、ほぼすべての作業がリモートのSSH経由です。コンソールはネットワーク障害でSSH接続できなくなったときのフォールバック経路として残しておく、という棲み分けになります。
1.2 Hyper-Vコンソールでのログイン
Hyper-Vマネージャーから linuc-alma を選び、「接続」をクリックすると黒い画面に linuc-alma login: のプロンプトが現れます。
コンソール画面表示例:
AlmaLinux 9.6 (Sage Margay)
Kernel 5.14.0-570.12.1.el9_6.x86_64 on an x86_64
linuc-alma login: developer
Password: ********
Last login: Sat May 9 19:16:32 from 192.168.1.100
[developer@linuc-alma ~]$
このプロンプト [ユーザー名@ホスト名 カレントディレクトリ]$ が出れば、ログインに成功してシェルが立ち上がっています。$ は一般ユーザーシェルのプロンプト記号です(rootは #)。
ログイン直後にシステムの素性を確認しておいてください。
実行コマンド:
$ hostnamectl
実行結果:
Static hostname: linuc-alma
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: 9675dfbf54f14d9ebfa704b59841fc8f
Boot ID: 44ba742031594ff8a3b3facbf1a6ee39
Virtualization: microsoft
Operating System: AlmaLinux 9.6 (Sage Margay)
CPE OS Name: cpe:/o:almalinux:almalinux:9::baseos
Kernel: Linux 5.14.0-570.12.1.el9_6.x86_64
Architecture: x86-64
Hardware Vendor: Microsoft Corporation
Hardware Model: Virtual Machine
Firmware Version: Hyper-V UEFI Release v4.1
ホスト名・OS・カーネル・仮想化基盤が一目で分かります。「自分は今どこに入っているのか」を確認する習慣を身につけてください。複数のサーバーを行き来する現場では、これを怠ると致命的なミスにつながります。
1.3 SSHでのリモートログイン
SSH(Secure Shell)は、暗号化された通信路を使って遠隔のLinuxにログインする標準プロトコルです。事前にSSH鍵認証を設定しておけば、パスワードなしで安全にログインできます。
ホストPCのターミナル(PowerShellでもGit Bashでも可)で実行:
実行コマンド(ホストPCで実行):
PS> ssh developer@192.168.1.132
実行結果:
Last login: Sat May 9 19:16:32 2026 from 192.168.1.100
[developer@linuc-alma ~]$
SSHが使うポートは標準で 22/tcp。OpenSSHが現代のLinuxサーバーで使われるSSH実装の事実上の標準で、AlmaLinux 9.6に同梱されているのは OpenSSH 8.7p1 です。
実行コマンド:
$ ssh -V
実行結果:
OpenSSH_8.7p1, OpenSSL 3.5.1 1 Jul 2025
SSH鍵認証の詳しい仕組みは第10回(暗号化によるデータ保護)で扱います。今回はまず「リモートからログインできた」という体験が大事です。
📖 試験Tipsボックス:ログイン関連
主題:1.01.1 Linuxのインストール、起動、接続、切断と停止(重要度:中)
出題パターン:「ログインプロンプトを表示する仕組みは?」「SSH接続のデフォルトポート番号は?」
暗記ポイント
- コンソールのログインプロンプトは
getty系プロセスが提供する - SSHのデフォルトポートは 22/tcp
- ログイン直後に読まれる主なファイル:
/etc/profile→~/.bash_profile→~/.bashrc
第2章:ログイン状態を把握する
サーバーに入ったら、「他に誰が入っているか」「いつから動いているか」を必ず確認してください。共用の検証サーバーを再起動する前にログイン中のユーザーがいれば、必ず一声かけるべきです。
2.1 who — 今ログインしている人
実行コマンド:
$ who
実行結果(誰もログインしていない場合は空):
developer pts/0 2026-05-09 19:50 (192.168.1.100)
左から「ユーザー名」「端末(pts/0 は擬似端末0番)」「ログイン日時」「接続元IP」です。tty1 はコンソール、pts/0 以降はSSH等のリモート接続です。
2.2 w — 誰が何をしているか
w は who よりリッチな情報を出してくれます。何のコマンドを実行しているかまで見えます。
実行コマンド:
$ w
実行結果:
19:51:02 up 47 min, 1 user, load average: 0.00, 0.01, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
develope pts/0 19:50 0.00s 0.05s 0.00s w
1行目に注目してください。uptime(起動からの経過時間)と load average(システム負荷)がさりげなく表示されます。「いつから動いているか」「今負荷が高くないか」が一目で分かる便利コマンドです。
なお、USER列は8文字幅で表示されるため、developer(9文字)は develope と切り詰められます。完全なユーザー名を確認するなら who を使ってください。
2.3 last — ログイン履歴
last は過去のログイン履歴と再起動履歴を遡って表示します。/var/log/wtmp が情報源です。
実行コマンド:
$ last -n 5
実行結果:
develope pts/0 192.168.1.100 Sat May 9 19:16 - 19:16 (00:00)
reboot system boot 5.14.0-570.12.1. Sat May 9 19:04 still running
reboot system boot 5.14.0-570.12.1. Sat May 9 18:53 - 19:03 (00:09)
wtmp は Sat May 9 18:53:54 2026 から始まっています
reboot system boot の行は、システムの再起動履歴を意味します。「いつ再起動されたか」「現在のセッションはいつから継続しているか」が分かる重要な記録です。
実行コマンド:
$ last reboot -n 3
実行結果:
reboot system boot 5.14.0-570.12.1. Sat May 9 19:04 still running
reboot system boot 5.14.0-570.12.1. Sat May 9 18:53 - 19:03 (00:09)
wtmp は Sat May 9 18:53:54 2026 から始まっています
第3章:ログアウトと切断
シェルを終了するには exit または logout、もしくは Ctrl + D(EOF送信)を使います。
実行コマンド:
$ exit
実行結果(SSHセッションの場合):
logout
Connection to 192.168.1.132 closed.
PS>
SSHセッションでは exit 後にホストPC側のシェルへ戻ります。「自分が今どのシェルにいるか」を見失わないことが大事です。SSH先のつもりで shutdown を打ったが、本当はホストPCで叩いていた…という事故も実際にあります。
プロンプトのホスト名([developer@linuc-alma ~]$ の linuc-alma 部分)を必ず目視で確認する習慣をつけてください。
第4章:システムの停止と再起動
「サーバーを止める」のは緊張する作業の代表格です。仕組みを理解し、用途に応じてコマンドを使い分けてください。
4.1 shutdown コマンドの基本
shutdown は AlmaLinux 9 では systemctl へのラッパーですが、伝統的なオプション体系が今も使えます。
実行コマンド:
$ shutdown --help
実行結果(抜粋):
shutdown [OPTIONS...] [TIME] [WALL...]
Options:
-H --halt Halt the machine
-P --poweroff Power-off the machine
-r --reboot Reboot the machine
-h Equivalent to --poweroff, overridden by --halt
-k Don't halt/power-off/reboot, just send warnings
--no-wall Don't send wall message before halt/power-off/reboot
-c Cancel a pending shutdown
--show Show pending shutdown
主要オプションの整理:
| オプション | 意味 | 用途 |
|---|---|---|
-h または -P | 電源オフ | サーバーを完全停止 |
-r | 再起動 | OS更新後の reboot 等 |
-H | halt(停止) | 停止状態で電源は切らない(ハードウェア依存) |
-k | 警告のみ | 「停止しますよ」のテスト通知。実際は停止しない |
-c | キャンセル | 予約済みのshutdownを取り消す |
--no-wall | wall抑制 | 他ユーザーへの通知メッセージを送らない |
4.2 時刻指定で予約停止する
本番環境のメンテナンスでは、即時停止ではなく事前通知をしてから止めるのが鉄則です。
30分後にシャットダウンする例(コマンドのみ紹介。実行はしないこと):
$ sudo shutdown -h +30 "メンテナンスのため30分後に停止します"
このコマンドを実行すると、ログイン中の全ユーザーの端末に「Broadcast message」が送信され、30分後に自動でpoweroffされます。気が変わったら、別ターミナルで以下を実行してキャンセル可能です。
$ sudo shutdown -c
時刻形式の指定方法:
+5:5分後23:00:今日の23時00分(過ぎていれば翌日)now:即時(=+0)
4.3 reboot / poweroff / halt
reboot poweroff halt は、それぞれ shutdown -r now shutdown -P now shutdown -H now 相当の即時実行コマンドです。事前通知は送られません。
$ sudo reboot # 即時再起動
$ sudo poweroff # 即時電源オフ
$ sudo halt # 即時halt(電源は切らない)
これらは AlmaLinux 9 では systemctl reboot systemctl poweroff systemctl halt と等価です。実体は systemd を経由した停止処理になります。
⚠️ ヒヤリハット:本番サーバーで shutdown を即実行
新人エンジニアA君は、検証環境で習った shutdown -h now を、本番DBサーバーで叩いてしまいました。事前通知なし、関係者への連絡なし、即停止。深夜帯にもかかわらず障害アラートが鳴り響き、復旧に2時間かかりました。
教訓:本番では絶対に now を使わない。最低でも shutdown -h +10 "メンテのため10分後停止" として、Slack等で事前にアナウンスすること。さらに、停止前に必ず w や last で他ユーザーの作業状況を確認してください。
📖 試験Tipsボックス:shutdownオプション
主題:1.01.1(重要度:中)
出題パターン:「shutdownを取り消すオプションは?」「警告のみ送信するオプションは?」
暗記ポイント
-h=poweroff(電源オフ)、-r=reboot、-H=halt-k=警告のみ、-c=予約取消- 時刻指定は
+分数またはHH:MM shutdownは内部的にsystemctlを呼ぶ
第5章:systemd ターゲット — ランレベルの今
5.1 ランレベルから systemd ターゲットへ
「ランレベル」という言葉を聞いたことがありますか? 古い SysV init の時代、Linuxには 0〜6 のランレベルという概念がありました。
| 旧ランレベル | 意味 | systemd ターゲット |
|---|---|---|
| 0 | 停止(halt) | poweroff.target |
| 1, S | シングルユーザー | rescue.target |
| 3 | マルチユーザー(CUI) | multi-user.target |
| 5 | マルチユーザー(GUI) | graphical.target |
| 6 | 再起動 | reboot.target |
| — | 緊急モード | emergency.target |
AlmaLinux 9 を含む現代のディストリビューションでは、SysV init は systemd に置き換わりました。systemd では「ランレベル」の概念が「ターゲット(target unit)」に進化しています。サーバー用途のデフォルトは multi-user.target(旧ランレベル3相当)です。
5.2 現在のターゲットを確認する
実行コマンド:
$ systemctl get-default
実行結果:
multi-user.target
互換コマンドで旧ランレベル風にも見られます。
実行コマンド:
$ runlevel
$ who -r
実行結果:
N 3
run-level 3 2026-05-09 19:04
N 3 の N は「前のランレベルなし(=起動時から3)」、3 は現在のランレベル番号です。multi-user.target がランレベル3 に相当することが分かります。
5.3 アクティブなターゲットの一覧
実行コマンド:
$ systemctl list-units --type=target --state=active
実行結果(抜粋):
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
getty.target loaded active active Login Prompts
multi-user.target loaded active active Multi-User System
network-online.target loaded active active Network is Online
network.target loaded active active Network
remote-fs.target loaded active active Remote File Systems
sysinit.target loaded active active System Initialization
timers.target loaded active active Timer Units
...
20 loaded units listed.
ターゲットは「複数のユニットをまとめた到達点」と理解してください。multi-user.target は、ネットワーク・ログインプロンプト・各種サービスといったユニット群が起動した状態を意味します。
5.4 ターゲットの切り替え(systemctl isolate)
稼働中のターゲットを切り替えるには systemctl isolate を使います。たとえば緊急時のみ rescue.target へ移ることで、最低限のサービスだけが動く状態にできます(ネットワーク含めほぼ全停止する)。
$ sudo systemctl isolate rescue.target # レスキューモードへ移行
$ sudo systemctl isolate multi-user.target # 通常運用へ戻す
本記事では実機操作はせず、コマンド形のみ紹介します。リモートで実行するとSSH切断されてしまうため、コンソールから実行するのが原則です。
5.5 systemctl による停止系コマンド
systemctl 経由でも停止・再起動を実行できます。shutdown も内部的にはこれを呼び出しています。
$ sudo systemctl poweroff # 電源オフ(=shutdown -h now)
$ sudo systemctl reboot # 再起動(=shutdown -r now)
$ sudo systemctl halt # halt(=shutdown -H now)
$ sudo systemctl rescue # レスキューターゲットへ
$ sudo systemctl emergency # 緊急ターゲットへ
システム全体の状態は systemctl is-system-running で確認できます。
実行コマンド:
$ systemctl is-system-running
実行結果:
running
running(正常)以外に degraded(一部失敗ユニットあり)、maintenance(緊急モード)、starting(起動中)といった状態があります。朝一番にこのコマンドで「サーバーが健全に動いているか」を確認するのは、現場のあるある運用です。
📖 試験Tipsボックス:systemd ターゲット
主題:1.01.1(重要度:中)
出題パターン:「ランレベル3 に相当する systemd ターゲットは?」「現在のターゲットを確認するコマンドは?」
暗記ポイント
- ランレベル0=poweroff、1=rescue、3=multi-user、5=graphical、6=reboot
- 既定確認:
systemctl get-default/ 既定変更:systemctl set-default <target> - 切替:
systemctl isolate <target> - 互換コマンド:
runlevel、who -r
現場での使いどころ
- 朝の死活確認:
uptimesystemctl is-system-runninglast reboot -n 5をワンセットで確認。前日からの稼働継続性をチェック - メンテナンス前の参加者把握:
wで他ユーザーの作業状況確認 → 一声かけてからshutdown -h +30で予告停止 - 監視からの障害連絡対応:
last rebootで予期せぬ再起動の有無を即確認 - クラウド/オンプレ問わず通用するスキル:AWSのEC2、Azure VM、オンプレ物理いずれでもこの操作は基本
- リモートワーク前提の運用:物理的にデータセンターに行けない以上、SSH 接続が事実上の唯一の経路。SSH切断時のレスキューモード手順は緊急時の必須知識
やってみよう
検証環境(linuc-alma)で以下を順番に実行し、出力を観察してください。本番に近い感覚で「自分は今どこのサーバーにいるか」を意識しながら進めてください。
演習1:SSHでログインして自分のいる場所を確認
- ホストPCのターミナルから
ssh developer@192.168.1.132で接続 - プロンプトが
[developer@linuc-alma ~]$に変わったことを目視確認 hostnamectl、whoami、pwdを順番に実行し、自分の場所と権限を確認
演習2:ログイン状況の把握
whoで現在のログインユーザーを確認wでload averageと各ユーザーの作業内容を確認last -n 10で過去10件のログイン履歴を確認last reboot -n 3で再起動履歴を確認
演習3:systemd ターゲットの確認
systemctl get-defaultで既定ターゲットを確認systemctl is-system-runningでシステム健全性を確認runlevelとwho -rでランレベル互換情報を確認systemctl list-units --type=target --state=activeでアクティブなターゲット一覧を確認
演習4:shutdown の予約と取消(実害なしの練習)
sudo shutdown -k +5 "テスト通知です"を実行(-kなので警告のみ)- 別ターミナルからもう一度SSHで入り、broadcast messageを観察
shutdownの--showオプションで予約状況を確認- 必要なら
sudo shutdown -cでキャンセル - 最後に
exitで安全にログアウト
注意:演習4の -k は警告のみのため実際には停止しませんが、絶対に -h や -r に変えないでください。検証環境とはいえ、再起動は時間のロスにつながります。manページで確認する習慣もつけてください。
$ man shutdown
理解度チェック
○か×で答えてください。回答と解説は次回冒頭で振り返ります。
shutdown -k +10は10分後に電源を切る予約コマンドである。multi-user.targetは旧ランレベル5(GUI)に相当する。- SSHのデフォルトポート番号は 22/tcp である。
last rebootはシステムの再起動履歴を表示する。- 現在のシステム状態を
running/degraded/maintenanceで示すのはsystemctl is-system-runningである。
解答
- 1. ×
-kは警告のみで実際には停止しない - 2. ×
multi-user.targetは旧ランレベル3(CUI)相当。GUIはgraphical.target - 3. ○ 22/tcp が標準
- 4. ○
/var/log/wtmpから再起動履歴を表示 - 5. ○ システム全体の健全性を一語で返す
次回予告
第2回は「ブートプロセスの仕組み:BIOS/UEFI → GRUB → systemd の流れ」です。今回登場したsystemdターゲットの一段階手前、「電源を入れた瞬間からログインプロンプトが出るまで何が起きているのか」を、コマンドと設定ファイルで追いかけます。
ブートプロセスを理解しておくと、起動失敗のトラブルシュートが目に見えて速くなります。
LinuC 101 試験対策シリーズ 全12回
- 第1回 Linuxの起動・接続・停止:systemctl・login・shutdownの基本(本記事)
- 第2回 ブートプロセスの仕組み:BIOS/UEFI → GRUB → systemd の流れ
- 第3回 systemdマスター講座:サービス管理・unitファイル・ターゲット
- 第4回 プロセス管理とハードウェア基礎(ps, top, lsblk, lspci, lsusb)
- 第5回 仮想マシンとコンテナの基礎:KVM・Docker・Podman 入門
- 第6回 パッケージ管理マスター:dnf / apt / rpm / dpkg の実践
- 第7回 ファイル操作の実践:cp, mv, find, リンク, FHS
- 第8回 パーミッション・所有者・特殊権限(SUID/SGID/Sticky)
- 第9回 コマンドライン・リダイレクト・パイプの基礎
- 第10回 テキスト処理の三種の神器:grep / sed / awk + 正規表現
- 第11回 vi/vim 入門:現場で使えるエディタ操作
- 第12回 ディスク・パーティション・ファイルシステム(fdisk, mkfs, mount, LVM)
