Linuxコマンド
この記事でわかること
Section titled “この記事でわかること”- 初心者がまず覚えるべき目的別の主要Linuxコマンド一覧
- サーバー運用やトラブルシューティングで最初に使う10個の基本コマンド
- 障害発生時にシステムやサービスのログを確認する流れ
- 実行時に注意が必要な危険なコマンドと安全のための対策
- 主要ディストリビューション(Ubuntu/Debian/Fedora/Arch)におけるコマンドの違い
Linuxの操作において、無数のコマンドを丸暗記しようとする必要はありません。
結論として、Linuxコマンドは「ファイルの確認」「ディレクトリの移動」「情報の表示」「検索」「権限管理」「サービス起動」といった、具体的な『目的』とセットで覚えるのが最も効率的です。
実際の業務や個人開発では、コマンドのスペルを暗記することよりも、「どのコマンドを使えば必要な情報にアクセスできるか」という切り分けの流れを知っておくことの方が遥かに重要です。また、システムに変更を加えるコマンド(ファイルの削除やシステム管理者権限での実行)を使用する際は、常に注意深くあるべきです。まずは基本となる10個のコマンドから触れて、少しずつCLI(コマンドラインインターフェース)の操作に慣れていきましょう。
目的別Linuxコマンド早見表
Section titled “目的別Linuxコマンド早見表”Linuxでよく行う操作を、目的別に整理したコマンド一覧です。
| 目的 | 代表的なコマンド | 概要 |
|---|---|---|
| 場所の移動・確認 | pwd, cd | 現在自分が作業しているディレクトリ(フォルダ)のパスを確認し、移動する。 |
| ファイル・一覧表示 | ls, cat, less | ディレクトリ内のファイル一覧を表示したり、ファイルの内容を画面に出力する。 |
| ファイル操作 | cp, mv, rm, mkdir | ファイルやディレクトリのコピー、移動・名前変更、削除、新規作成を行う。 |
| テキスト検索・フィルタ | grep, find | ファイルの中から特定の文字列を検索したり、システム内のファイルを検索する。 |
| 権限の制御 | chmod, chown, sudo | ファイルの読み書き権限の変更、所有者の変更、管理者権限でのコマンド実行を行う。 |
| システム・プロセス確認 | top, df, free, ps | CPU・メモリの使用状況や、ディスク容量、実行中のプログラムを確認する。 |
| ネットワーク確認 | ping, ip a, curl | ネットワークの接続状態や、自身のIPアドレスの確認、外部へのWebリクエストを行う。 |
| サービス管理 | systemctl | Webサーバーやデータベースなどの各種バックグラウンドサービスを起動・停止する。 |
初心者が最初に覚えるべき「基本10コマンド」
Section titled “初心者が最初に覚えるべき「基本10コマンド」”これだけ知っておけば、Linuxの基本操作や設定ファイルの編集作業ができるようになる10のコマンドです。
ls(List) 現在のディレクトリにあるファイルやフォルダを表示します。詳細表示(権限やサイズ、更新日時)を見たい場合はls -l、隠しファイルを含めて表示したい場合はls -laを使います。cd(Change Directory) 指定したディレクトリに移動します(例:cd /var/log/)。一つ上のディレクトリに戻る場合はcd ..と入力します。cat(Concatenate) テキストファイルの内容をターミナルに表示します。短い設定ファイルを確認する際に便利です(例:cat /etc/hostname)。less(Less is more) 大きなファイルやログを1画面ずつスクロールしながら閲覧します。qキーで閲覧を終了します。ファイル内検索(/+ キーワード)も可能です。cp(Copy) ファイルやディレクトリをコピーします。設定ファイルを編集する前に、バックアップを作成する際によく使われます(例:cp config.conf config.conf.bak)。mv(Move) ファイルを別の場所に移動する、またはファイル名を変更します。rm(Remove) ファイルやディレクトリを削除します。[!IMPORTANT]
rmで削除したファイルはWindowsの「ゴミ箱」のような場所には行かず、原則として二度と復元できません。重要なファイルの削除や、ディレクトリごと一括削除するrm -rfを実行する際は、必ず削除対象のパスが正しいか指差し確認する癖をつけましょう。mkdir(Make Directory) 新しいディレクトリ(フォルダ)を作成します。grep(Global Regular Expression Print) ファイルの中から特定のテキストパターン(文字列)を含む行を検索して抽出します(例:grep "error" /var/log/syslog)。他のコマンドの出力結果から絞り込む際にもパイプ(|)と併せてよく使用されます。sudo(Superuser Do) システム設定の変更やパッケージのインストールなど、管理者(root)権限が必要なコマンドの先頭につけて実行します。[!WARNING]
sudoはシステム全体を破壊しうる強い権限を持つため、信頼できないスクリプトや、コマンドの意味が理解できていない状態で安易に実行しないでください。
ログを確認するトラブルシューティングの流れ
Section titled “ログを確認するトラブルシューティングの流れ”Linuxサーバーで不具合が発生した際、「どのサービスが、なぜ落ちたのか」を調べるためのログ確認の基本フローです。
1. systemctl status でサービスの状態を確認
Section titled “1. systemctl status でサービスの状態を確認”Webサーバー(Nginx等)やデータベース(MySQL等)が稼働しているか、異常終了していないかを確認します。
sudo systemctl status nginx出力結果に Active: active (running) とあれば正常稼働中、failed や inactive の場合は何らかのエラーで停止しています。
2. journalctl でシステム・サービスの詳細ログを追う
Section titled “2. journalctl でシステム・サービスの詳細ログを追う”systemctl の状態表示だけではエラー原因が特定できない場合、システム全体のログ管理機構である systemd のジャーナルからエラーログを抽出します。
- 特定のサービス(例: nginx)のログを表示する:
(最新の50行を表示)
Terminal window sudo journalctl -u nginx -n 50 --no-pager - リアルタイムでエラーを監視する(監視状態にする):
Terminal window sudo journalctl -fログの詳細なチェック手順については、こちらの記事が参考になります:Linuxシステムログ確認の第一歩
3. dmesg でカーネル・ハードウェアログの確認
Section titled “3. dmesg でカーネル・ハードウェアログの確認”OS自体がクラッシュしかけている場合や、メモリ不足でプロセスが強制終了された(OOM Killer)、USBデバイスやディスクの認識に問題がある場合は、Linuxカーネルが出力するリングバッファログを確認します。
sudo dmesg -T | tail -n 50-T オプションをつけることで、読みやすい日時形式で表示されます。
危険なコマンドと安全のための鉄則
Section titled “危険なコマンドと安全のための鉄則”Linuxには、一つの入力ミスでシステム全体を破壊したり、データを全て消去してしまうコマンドがあります。以下のコマンドや操作を行う際は、特別な注意を払ってください。
⚠️ 絶対に注意すべきコマンド
Section titled “⚠️ 絶対に注意すべきコマンド”rm -rf /ルートディレクトリ(システム全体)以下のすべてのファイルを警告なしで強制削除する、最も有名な破壊的コマンドです。現在の一部のOSでは保護機能(--no-preserve-root)が働きますが、特定のパスを指定する際(例:rm -rf /usr /localのつもりがスペースが入ってrm -rf /usr/ localになった等)に誤って実行してしまう事故は未だに発生します。chown -Rやchmod -R所有権やアクセス権限を再帰的(配下のすべてのファイル)に変更するコマンドです。例えば/(ルート)や/etcなどの重要なシステムディレクトリに対して誤った権限を一括適用すると、OSが起動しなくなったり、セキュリティホールが生まれます。- リダイレクト(
>)によるファイルの上書き コマンドの出力をファイルに保存する>ですが、既存のファイルに対して使うと、中身が全て上書き(消去)されます。追記したい場合は必ず>>を使用してください。
主要ディストリビューションによる違い
Section titled “主要ディストリビューションによる違い”Linuxには多くの種類(ディストリビューション)があり、特に「ソフトウェアのインストール(パッケージ管理)」に関する基本コマンドが異なります。
| 系列 | 代表OS | パッケージインストールコマンド | アップデートコマンド |
|---|---|---|---|
| Debian / Ubuntu系列 | Ubuntu, Debian | sudo apt install <パッケージ名> | sudo apt update && sudo apt upgrade |
| Red Hat系列 | Fedora, AlmaLinux | sudo dnf install <パッケージ名> | sudo dnf upgrade |
| Arch系列 | Arch Linux | sudo pacman -S <パッケージ名> | sudo pacman -Syu |
- 関連記事:Ubuntuの基本操作と設定
- 関連記事:Linuxのアップデートと脆弱性チェックコマンド
FAQ(よくある質問)
Section titled “FAQ(よくある質問)”Q1. コマンドを入力しても「Command not found」と表示されます。
Section titled “Q1. コマンドを入力しても「Command not found」と表示されます。”A1. 主に「コマンド名のスペルミス」か「必要なパッケージが未インストール」か「PATH(環境変数)が通っていない」のいずれかです。
例えば、git と入力してこのエラーが出た場合は、まだシステムにGitがインストールされていません。各OSのパッケージマネージャー(apt や dnf)を使ってインストールしてください。
Q2. 実行中のコマンドを途中で止めたい(強制終了したい)時は?
Section titled “Q2. 実行中のコマンドを途中で止めたい(強制終了したい)時は?”A2. キーボードで Ctrl + C を押してください。
無限ループに入ってしまった処理や、時間のかかるファイル検索などを安全に中断させることができます。
Q3. 長いコマンドを毎回入力するのが面倒です。省略する方法はありますか?
Section titled “Q3. 長いコマンドを毎回入力するのが面倒です。省略する方法はありますか?”A3. 「エイリアス(Alias)」機能を使用すると、独自のショートカットを作成できます。
ユーザーのホームディレクトリにある設定ファイル(.bashrc または .zshrc)に alias ll='ls -la' のように記述して保存することで、以降は ll と入力するだけで ls -la が実行されるようになります。
Q4. コマンドの使い方がわからない時、調べる方法はありますか?
Section titled “Q4. コマンドの使い方がわからない時、調べる方法はありますか?”A4. コマンドの後ろに --help オプションをつけて実行するか、man コマンドを使用してください。
例えば、ls --help を実行するとそのコマンドで使えるオプションの一覧が表示されます。また、man ls と入力すると、詳細な取扱説明書(マニュアル)を読むことができます(q で終了します)。
Q5. ディレクトリを削除しようと rm を実行したら「Is a directory」とエラーが出ました。
Section titled “Q5. ディレクトリを削除しようと rm を実行したら「Is a directory」とエラーが出ました。”A5. ディレクトリ(フォルダ)を削除するには、-r(再帰的削除)オプションが必要です。
空のディレクトリであれば rmdir <ディレクトリ名> でも削除できますが、中にファイルが入っているディレクトリを削除する場合は、rm -r <ディレクトリ名> と入力する必要があります。
追加調査で押さえる実務ポイント
Linuxコマンドは、ファイル、プロセス、サービス、ネットワーク、ログ、パッケージを端末から確認・操作するためのインターフェースです。同じ名前でもGNU、BusyBox、BSD系でoptionが異なる場合があります。このページでは、最初に読み取り専用の確認コマンドを使い、変更・削除・権限操作は対象と戻し方を確認してから実行します。
目的別の入口
| 目的 | 最初のコマンド |
|---|---|
| 現在地 | pwd |
| ファイル一覧 | ls -la |
| 内容確認 | less file |
| 検索 | grep、find |
| 容量 | df -h、du -sh |
| プロセス | ps、top |
| サービス | systemctl status |
| ログ | journalctl |
| ネットワーク | ip、ss |
| OS確認 | cat /etc/os-release |
最初に覚える確認コマンド
pwd
ls -la
file target
stat target
whoami
id
uname -a
cat /etc/os-release
df -h
free -h
これらは主に状態確認です。ただし、対象ファイルや環境により機密情報を表示する場合があります。
helpを先に読む
command --help
man command
type command
command -V command
alias、shell builtin、外部commandのどれかを確認します。
ログ確認
systemctl status nginx.service
journalctl -u nginx.service --since "1 hour ago"
dmesg --level=err,warn
サービス障害では、再起動より先に状態とログを保存します。
危険度を分ける
| 種類 | 例 | 注意 |
|---|---|---|
| 読み取り | ls, cat, ps | secret表示 |
| 作成 | mkdir, cp | 上書き |
| 変更 | mv, chmod | path確認 |
| 削除 | rm | 原則undo不可 |
| 管理 | sudo, systemctl | 全体へ影響 |
| disk | dd, mkfs | データ消失 |
rmを安全に扱う
削除前に対象を表示し、絶対path、glob展開、symlinkを確認します。
printf '%s
' ./target/*
表示結果を確認するための例です。削除コマンドへ直結させません。
command not found
type、PATH、package名、spelling、対象distributionを確認します。ネット上の不明なcurl ... | shを解決策として直接実行しません。
ディストリ差
package管理はAPT、DNF、pacman、Zypper、APKなどで異なります。service管理もsystemd以外の環境があります。
次に読む
参考リンク
- www.gnu.org - GNU Coreutils
- man7.org - Linux man-pages
- www.freedesktop.org - systemd manual