Welcome

CUI Operation ManualはじめてのCUIコマンド操作マニュアル

未経験者向け / Linux・Windows共通

CUIは「文字でコンピューターへ依頼する画面」

CUI(Character User Interface)は、マウスでボタンを押す代わりに文字で命令する操作方法です。CLI(Command Line Interface)とも呼ばれます。サーバーでは、次の3つの利点があります。離れた場所から操作しやすいこと、操作した内容を文字で記録に残せること、同じ手順をもう一度そのまま再現できることです。

見る対象と現在地考える目的と影響実行小さく操作確かめる結果と終了状態
このマニュアルの約束

例は自分専用の仮想マシン(1台のパソコンの中に作る、もう1台の仮想のパソコン)、WSL(Windowsの中でLinuxを動かす仕組み)、または学習用PCで試します。会社・学校・公開中サーバーでは、承認、バックアップ、影響範囲、戻し方を確認してから操作します。掲載例は教材であり、すべてを本番環境で実行した証跡ではありません。

仮想マシン(VM)やWSLをまだ用意していない場合は、先に環境準備ガイドを行ってください。

1. 端末を開き、種類を見分ける

端末(ターミナル)は、CUIを表示するための窓です。シェルは、打ち込んだ文字を読み取って実行するプログラムです。同じ端末でも、LinuxのBash、WindowsのPowerShell、コマンドプロンプトでは文法が少し違います。

BashLinux

Linux / WSL

Linuxでは端末アプリを開きます。WindowsのWSLを使う場合は、Windows Terminal(Windows標準の端末アプリ)を開き、その中からUbuntu(Linuxの種類の一つ)などを選びます。

student@server01:~$

読む:左から順に、ログイン中のユーザー名、接続先の端末名、今いる場所(現在地)が並びます。最後の$は、管理者ではない一般ユーザーとして操作していることを示します。

PowerShellWindows

Windows Terminal

スタートメニューで「ターミナル」または「PowerShell」を検索します。

PS C:\Users\student>

読む:PSはPowerShell、続く文字は現在のフォルダーです。

cmd.exeWindows

コマンドプロンプト

Win + Rcmdと入力して開けます。古い手順や短い確認コマンドで使われます。

C:\Users\student>

注意:PowerShellとCMDは見た目が似ていますが、変数(値を入れておく入れ物)やパイプ(前のコマンドの結果を次へ渡す仕組み)の扱いが異なります。片方で動いた書き方が、もう片方ではそのまま動かないことがあります。

2. コマンドを3つに分けて読む

commandコマンド/何をするoptionオプション/どのようにargument引数/何を対象に
Linux、PowerShell、CMDのコマンド構造の例
環境分解日本語にすると
Linuxls -lah /var/logls + -lah + /var/log/var/logを、隠し項目も含め、詳しく読みやすい単位で一覧にする。
PowerShellGet-Service -Name sshdGet-Service + -Name + sshdsshdという名前のサービス情報を取得する。
CMDping -n 4 server01ping + -n 4 + server01server01へ4回、応答確認を送る。

覚え方:「何をする・どのように・何に対して」長いコマンドも、空白ごとに役割を区切ると読めます。

3. パスはファイルの住所

絶対パスは、一番上から書いた完全な住所です。相対パスは、今いる場所から見た道順の書き方です。Linuxは/、Windowsは通常\で階層を区切ります。

/var/log/nginxLinux

Linuxのパス

先頭の/は、ルート(すべての入り口になる最上位のフォルダー)を表します。~は自分のホーム(利用者ごとに用意された自分専用のフォルダー)、.は現在地、..は1つ上の階層です。

$ pwd
/home/student
$ cd ..
$ pwd
/home
C:\Logs\app.logWindows

Windowsのパス

C:はドライブ。.は現在地、..は1つ上を表します。

PS> Get-Location
C:\Users\student
PS> Set-Location ..
"Monthly Report.txt"共通

空白を含む名前

シェルは空白を「ここで区切り」という記号として読みます。そのため、名前に空白があると別々の指定と受け取られます。これを防ぐため、パス全体を引用符(ダブルクォート)で囲みます。

less "Monthly Report.txt"
Get-Content ".\Monthly Report.txt"

安全策:入力しにくい名前は、Tab補完(途中まで打ってTabキーを押すと、残りを自動で補ってくれる機能)を使います。打ち間違いを防げます。

4. 覚えると入力が楽になるキー操作

CUIでよく使うキー操作と意味
操作意味使いどころ注意
Tab候補を補完長いファイル名やコマンド名を正確に入力。補完後の対象を読んでから実行。
/ 履歴を移動直前のコマンドを修正して再利用。変更・削除コマンドを誤って再実行しない。
Ctrl + C実行中の処理を中断pingやログ監視を止める。ファイル更新中の強制中断は破損の原因になり得る。
Ctrl + L画面を整理BashやPowerShellの表示を見やすくする。履歴やファイルは消えない。
q閲覧画面を終了lessmanなどから戻る。通常のプロンプトでは文字qが入力されるだけ。
反応しないと感じたら

パスワード入力中は、画面に文字や*が表示されないことがあります。これは故障ではなく、のぞき見を防ぐための動作です。そのまま最後まで打ち、Enterを押します。引用符が閉じていない場合は、次の行が入力待ちのまま止まります。そのときはCtrl + Cで中断し、最初から入力し直します。

5. コマンドを組み合わせる

かんたんに言うとコマンドは1つずつ使うだけでなく、つなげて使えます。|は前の結果を次のコマンドへ渡し、>は結果をファイルへ書き出し、&&は前が成功したときだけ次へ進みます。

|パイプ

左の結果を右へ渡す

$ journalctl -u nginx | tail -n 20
PS> Get-Service | Where-Object Status -eq 'Running'

読む:|(パイプ)は、左のコマンドの結果を右のコマンドへ渡す記号です。表示が多すぎるとき、必要な情報だけに絞り込めます。PowerShellでは、文字の並びではなくオブジェクト(項目名と値をひとまとめにしたデータ)を渡します。

> / >>ファイル変更

結果をファイルへ保存

$ hostname > check.txt
$ date >> check.txt
PS> Get-Date | Out-File check.txt -Append

重要:>は既存内容を上書き、>>は末尾へ追加します。

&&条件実行

成功したときだけ次へ進む

$ test -f app.conf && echo "found"

Linux:左のコマンドが成功したとき、つまり終了コード(コマンドの結果を表す数字)が0のときだけ、右のコマンドを実行します。PowerShell 7でも利用できますが、Windows PowerShell 5.1では使えません。

* / ?複数対象

ワイルドカードで候補をまとめる

ワイルドカードは、名前の一部を「何でもよい」として指定する記号です。*は任意の文字の並び、?は任意の1文字に一致します。

$ ls *.log
PS> Get-ChildItem *.log

注意:削除や移動と組み合わせる前に、同じ書き方を一覧表示コマンドで試します。意図しないファイルまで一致していないかを、消す前に目で確かめるためです。

6. 「表示された」だけで成功と決めない

かんたんに言うと画面に何か表示されても、それだけでは成功したかどうか分かりません。結果を4つに分けて読むと、成功と失敗を自分で判断できます。

コマンド操作は、入力よりも結果の確認が重要です。次の4つを区別します。標準出力(うまくいったときの通常の表示)、エラー出力(失敗を知らせる表示)、終了コード(成功か失敗かを表す数字)、そして操作したあとの実際の状態です。

$?Linux

終了コードを確認

$ grep -n "error" app.log
$ echo $?
0

読む:一般に0は成功、0以外は「見つからなかった」やエラーを表します。数字の意味はコマンドごとに違うため、そのコマンドの説明書で確認します。

$LASTEXITCODEPowerShell

外部コマンドの終了コード

PS> ping -n 1 server01
PS> $LASTEXITCODE

重要:$LASTEXITCODEには、直前に実行した外部コマンド(PowerShell専用ではない、単独のプログラム)の結果だけが残ります。次の外部コマンドを実行すると上書きされるため、その前にすぐ確認するか、別の変数へ保存します。

再確認共通

状態を別コマンドで確かめる

$ sudo systemctl restart nginx
$ systemctl is-active nginx
$ curl -I http://localhost

考え方:再起動したあと、サービスが動いているか、そして実際に応答が返るかを順番に確かめます。ここまで確認できて初めて、「利用者から見ても復旧した」と言えます。

記録:「いつ・誰が・どこで・何を・結果・次の判断」成功例だけでなく、失敗メッセージと未確認事項も残します。

7. 変更コマンドの前に6点確認

1

対象

hostname(機器の名前)、whoami(今のユーザー名)、pwd / Get-Location(現在地)を使い、これから操作する場所が正しいかを確認します。

2

目的

何を直し、どうなれば成功かを1文で説明。

3

影響

停止、通信断、上書き、権限変更の影響を確認。

4

退避

設定やデータをバックアップし、復元方法を確認。

5

戻し方

元に戻すコマンド、いつ戻すと決めるかの判断基準、困ったときの連絡先を、операции前に用意します。

6

再確認

状態、ログ、利用者から見た動作を確認。

8. 障害対応は変更せず事実を集める

かんたんに言うと障害のときは、すぐ直そうとせず、まず事実を集めます。手前(自分の端末)から奥(サーバーの中)へ順に見ていくと、どこで止まっているかが分かります。

「Webが開かない」とき、いきなり再起動すると原因の手掛かりが消えることがあります。次の順で確認します。対象 → 時刻 → 名前解決(名前をIPアドレスへ変換すること) → 経路(通信が通る道すじ) → ポート(サービスごとの入口の番号) → サービス → ログ。

サーバー障害の一次切り分け手順
確認Linux例Windows例見るところ
1対象・時刻hostname; date; whoamihostname
Get-Date
whoami
正しい端末とアカウントか。
2IPと経路ip addr
ip route
ipconfig /all期待するIP、ゲートウェイか。
3名前解決getent hosts server01Resolve-DnsName server01期待するIPへ変換できるか。
4ポートcurl -I http://server01Test-NetConnection server01 -Port 80サービスの入口へ届くか。
5サービスsystemctl status nginxGet-Service -Name W3SVC起動状態と直近エラー。
6ログjournalctl -u nginx -n 50Get-WinEvent -LogName System -MaxEvents 50発生時刻付近の記録。
報告は「事実・推測・未確認」を分ける

例をあげます。事実=14:05の時点で名前解決は成功、TCP 443(HTTPS通信で使う入口の番号)は失敗。推測=サービスの停止か、通信許可の設定を要確認。未確認=サーバー側の状態(権限がないため確認できていない)。このように分けて書くと、思い込みでの断定や、勝手な変更を防げます。

9. 15分ずつの段階演習

学習用環境で実施します。「作業前の確認」「操作」「作業後の確認」「自分の言葉で説明」までできれば完了です。

演習 1 / 参照

作業場所を説明する

  1. 端末を開く。
  2. ユーザー名、端末名、現在地を表示。
  3. ホームへ移動し、一覧を表示。
  4. 結果を「誰が・どこで」に言い換える。
コマンド例

Linux:whoamihostnamepwdcdls -la
PowerShell:whoamihostnameGet-LocationSet-Location $HOMEGet-ChildItem -Force

演習 2 / 学習用ファイル

作成・コピー・確認

  1. cui-practiceフォルダーを作成。
  2. note.txtを作成。
  3. note-backup.txtへコピー。
  4. 一覧と内容を確認してから、学習用フォルダーだけを片付ける。
コマンド例

Linux:mkdir cui-practicecd cui-practicetouch note.txt、コピーはcp note.txt note-backup.txt、片付けはrm -i cui-practice/note.txtrm -i cui-practice/note-backup.txt
PowerShell:New-Item -ItemType Directory cui-practiceSet-Location cui-practiceNew-Item note.txt、コピーはCopy-Item note.txt note-backup.txt、片付けはRemove-Item note.txt -ConfirmRemove-Item note-backup.txt -Confirm

合格条件

各操作前に現在地と対象を確認し、コピー元とコピー先を説明できること。削除前に学習用フォルダー以外が含まれないと確認できること。

演習 3 / 一次対応

Web接続を報告する

  1. example.comの名前解決を確認。
  2. TCP 443またはHTTPS応答を確認。
  3. 実行時刻、コマンド、結果を保存。
  4. 事実・推測・未確認を3行で報告。
注意

結果にはIP、端末名、ユーザー名が含まれる場合があります。公開前に機密情報や個人情報を除きます。

次はOS別のコマンドを学ぶ

共通ルールを理解したら、具体的な確認方法を練習します。

Linuxコマンド集 Windowsコマンド集 Linux一次運用Lab