Linuxコマンド総まとめ

ファイルとディレクトリ、権限、テキスト処理、プロセス、ネットワーク、圧縮、vi/vim エディタのショートカットまで、よく使うコマンド71個をカテゴリ別に検索できます。

ファイルとディレクトリ

📁

ls

ディレクトリ内のファイルとフォルダの一覧を表示します。

基本文法とオプション

  • 基本形: `ls [オプション] [パス]`
  • -l: ファイルサイズ・権限・更新日時などの詳細情報を表示します。
  • -a: 隠しファイル(.で始まるファイル)も含めてすべて表示します。
  • -h: ファイルサイズを人が読みやすい単位(KB/MB)で表示します。

ls -al → 隠しファイルを含めた詳細な一覧を表示します。

📂

cd

現在作業中のディレクトリを移動します。

基本文法とオプション

  • `cd パス`で目的のディレクトリへ移動します。
  • `cd ..`は親ディレクトリへ、`cd ~`はホームディレクトリへ移動します。
  • `cd -`は直前にいたディレクトリへ戻ります。

cd /var/log → /var/log ディレクトリへ移動します。

📍

pwd

現在いるディレクトリのフルパスを表示します。

基本文法とオプション

  • Print Working Directory の略です。
  • シェルスクリプトで現在のパスを変数に保存する際にもよく使われます。
🗂️

mkdir

新しいディレクトリ(フォルダ)を作成します。

基本文法とオプション

  • `mkdir フォルダ名`でフォルダを作成します。
  • -p オプションを使うと、途中の経路がなくても一度に作成できます。

mkdir -p project/src/utils → 入れ子になったフォルダを一度に作成します。

🗑️

rmdir

空のディレクトリを削除します。

基本文法とオプション

  • 中身があるディレクトリは削除できず、その場合は `rm -r` を使う必要があります。
✨

touch

空のファイルを作成するか、既存ファイルの更新日時を今の時刻に変更します。

基本文法とオプション

  • ファイルがなければ新規作成し、あれば最終更新時刻だけを現在時刻に変更します。

touch notes.txt → 空のテキストファイルを作成します。

📋

cp

ファイルやディレクトリをコピーします。

基本文法とオプション

  • `cp コピー元 コピー先` の形で使用します。
  • ディレクトリ(フォルダ)全体をコピーするには -r オプションが必要です。
  • -i オプションは同名ファイルを上書きする前に確認を求めます。

cp -r src backup → src フォルダ全体を backup にコピーします。

➡️

mv

ファイルやディレクトリを移動、または名前を変更します。

基本文法とオプション

  • 同じ場所で名前だけ変えるとファイル名の変更として、別のパスを指定すると移動として動作します。

mv old.txt new.txt → ファイル名を変更します。

❌

rm

ファイルやディレクトリを削除します。

基本文法とオプション

  • 基本的にファイルのみ削除でき、ディレクトリを削除するには -r(再帰)オプションが必要です。
  • -f オプションは確認なしで強制的に削除するため、慎重に使う必要があります。
  • ゴミ箱の概念がなく、一度削除すると復元は非常に困難です。

rm -rf old_folder → フォルダとその中身をすべて強制削除します(慎重に使用してください)。

📄

cat

ファイルの内容をそのまま画面に出力します。

基本文法とオプション

  • 複数のファイルを一度に連結して出力することもできます(`cat a.txt b.txt`)。
  • 短いファイルの内容をすばやく確認する際によく使われます。
🔎

find

条件に合うファイルやディレクトリを検索します。

基本文法とオプション

  • `find パス -name "パターン"` で名前による検索ができます。
  • -type f(ファイル) / -type d(ディレクトリ)で種類を指定できます。
  • -mtime オプションで更新時刻を基準にした検索も可能です。

find . -name "*.log" → 現在のフォルダ以下で拡張子が .log のファイルをすべて探します。

🌳

tree

ディレクトリ構造をツリー形式で一目で表示します。

基本文法とオプション

  • 一部のディストリビューションには標準搭載されておらず、別途インストールが必要な場合があります(例: `apt install tree`)。
  • -L 数字 オプションで表示するフォルダの階層数を制限できます。

権限とユーザー

🔐

chmod

ファイルやディレクトリのアクセス権限(読み取り/書き込み/実行)を変更します。

基本文法とオプション

  • 権限は所有者・グループ・その他のユーザーの順に、読み取り(4)・書き込み(2)・実行(1)の数字を足して表します。
  • 例えば755は、所有者はすべて可能、グループとその他のユーザーは読み取り・実行のみ可能という意味です。
  • `chmod +x script.sh` のように記号(+ / -)でも指定できます。

chmod 755 script.sh → 所有者に読み取り/書き込み/実行、それ以外には読み取り/実行の権限を付与します。

👤

chown

ファイルやディレクトリの所有者(ユーザー)を変更します。

基本文法とオプション

  • `chown ユーザー名 ファイル名` の形で使用します。
  • `chown ユーザー:グループ ファイル名` のように所有者とグループを同時に変更することもできます。

chown user1 file.txt → file.txt の所有者を user1 に変更します。

👥

chgrp

ファイルやディレクトリの所有グループを変更します。

基本文法とオプション

  • `chgrp グループ名 ファイル名` の形で使用します。
🛡️

sudo

管理者(root)権限でコマンドを実行します。

基本文法とオプション

  • "Substitute User DO" の略とされています。
  • システム設定の変更やパッケージのインストールなど、一般ユーザー権限ではできない作業に使用します。
  • 実行前に現在ログイン中のアカウントのパスワードを要求します。
🔄

su

別のユーザー(デフォルトは root)に切り替えます。

基本文法とオプション

  • `su` だけ入力すると root への切り替えを試み、`su ユーザー名` で特定のアカウントに切り替えます。
  • sudo と異なり、切り替え先アカウントのパスワードが必要です。
🙋

whoami

現在ログイン中のユーザー名を表示します。

基本文法とオプション

  • スクリプトやリモートサーバー接続時に、今どのアカウントで作業しているかをすばやく確認する際に使用します。

テキスト処理と検索

🔍

grep

ファイルや入力の中から特定の文字列(パターン)を含む行を検索します。

基本文法とオプション

  • `grep "パターン" ファイル名` の形で使用します。
  • -i オプションは大文字小文字を区別せずに検索します。
  • -r オプションはディレクトリ内のファイルを再帰的に検索します。
  • -n オプションは一致した行の番号も一緒に表示します。

grep -rn "TODO" ./src → src フォルダ以下のすべてのファイルから TODO を含む行と行番号を探します。

✂️

sed

ルールに従ってテキストを置換・編集するストリームエディタです。

基本文法とオプション

  • 最もよく使われる形は文字列の置換です: `sed 's/old/new/g' ファイル`
  • 末尾のgは1行内のすべての一致箇所を置換するという意味です。
  • -i オプションを付けると、画面出力の代わりに元のファイルを直接書き換えます。

sed -i 's/foo/bar/g' file.txt → file.txt 内のすべての foo を bar に置き換えて保存します。

🧮

awk

行と列(フィールド)単位でテキストを処理するプログラミング言語兼コマンドです。

基本文法とオプション

  • デフォルトでは空白を基準に各行をフィールド(`$1`、`$2`…)に分けて扱います。
  • ログファイルから特定の列だけを抜き出す際によく使われます。

awk '{print $1}' access.log → 各行の最初のフィールドだけを出力します。

⬇️

tail

ファイルの末尾数行だけを出力します。

基本文法とオプション

  • デフォルトは10行です。
  • ログファイルをリアルタイムで確認する際に -f(follow)オプションがよく使われます。

tail -f /var/log/syslog → ログファイルに新しく追加される内容をリアルタイムで表示し続けます。

🔀

sort

テキストを行単位で並べ替えます。

基本文法とオプション

  • デフォルトは辞書順での並べ替えです。
  • -n オプションは数値順で並べ替えます。
  • -r オプションは並び順を反転(逆順)します。
🧹

uniq

連続して続く重複行を1つにまとめます。

基本文法とオプション

  • ソートされていないデータには正しく機能しないため、通常は `sort` と一緒に使います(`sort file | uniq`)。
  • -c オプションは重複した回数も一緒に表示します。
🔢

wc

ファイルの行数、単語数、文字(バイト)数を数えます。

基本文法とオプション

  • -l は行数のみ、-w は単語数のみ、-c はバイト数のみを出力します。

wc -l file.txt → ファイルの総行数を出力します。

📜

less

ファイルの内容を画面単位でスクロールしながら閲覧できるビューアです。

基本文法とオプション

  • cat と違い、ファイル全体を一度にメモリへ読み込まないため、大きなファイルも軽快に開けます。
  • 矢印キーでスクロール、`/検索語`でファイル内検索、qで終了します。
🆚

diff

2つのファイルの内容を行単位で比較し、違いを表示します。

基本文法とオプション

  • どの行が追加・削除・変更されたかを表示してくれるため、コードや設定ファイルの比較に便利です。

diff old.txt new.txt → 2つのファイル間で異なる行を表示します。

プロセスとシステム

⚙️

ps

現在実行中のプロセス一覧を表示します。

基本文法とオプション

  • `ps aux` が最もよく使われる形で、すべてのユーザーの全プロセスを詳細に表示します。

ps aux | grep nginx → 実行中のプロセスのうち、名前に nginx を含むものだけを探します。

📊

top

実行中のプロセスを CPU・メモリ使用量順にリアルタイムで表示します。

基本文法とオプション

  • 画面は定期的に自動更新され、qを押すと終了します。
  • より使いやすい改良版として htop が広く使われています(別途インストールが必要)。
🛑

kill

プロセスにシグナルを送って終了させます。

基本文法とオプション

  • `kill プロセスID(PID)` の形で使用します。
  • デフォルトのシグナルで終了しない場合は -9(強制終了)オプションを使用します。

kill -9 1234 → PIDが1234のプロセスを強制終了します。

💥

killall

プロセス名を指定して複数のプロセスを一度に終了させます。

基本文法とオプション

  • PIDが分からなくても実行ファイル名だけで終了できるため便利です。

killall firefox → 名前が firefox のプロセスをすべて終了します。

🧾

jobs

現在のターミナルセッションでバックグラウンド実行中、または停止中のジョブ一覧を表示します。

基本文法とオプション

    ⏯️

    bg / fg

    停止していたジョブをバックグラウンド(bg)またはフォアグラウンド(fg)で再開します。

    基本文法とオプション

    • Ctrl+Zでジョブを一時停止した後、`bg`でバックグラウンドで継続したり、`fg`で再び画面前面に戻したりできます。
    🧰

    systemctl

    systemd ベースの Linux でサービス(デーモン)を管理します。

    基本文法とオプション

    • `systemctl start/stop/restart サービス名` でサービスを開始・停止・再起動します。
    • `systemctl status サービス名` で現在の状態を確認します。
    • `systemctl enable サービス名` で起動時の自動開始を設定します。

    systemctl restart nginx → nginx サービスを再起動します。

    💽

    df

    ディスク(ファイルシステム)の全体容量と使用量を表示します。

    基本文法とオプション

    • -h オプションを付けると容量を人が読みやすい単位(GBなど)で表示します。

    df -h → 各ディスクパーティションの使用量を GB/MB 単位で表示します。

    📦

    du

    ファイルやディレクトリが占める容量を表示します。

    基本文法とオプション

    • `du -sh フォルダ名` でフォルダ全体の合計容量を一目で確認できます。
    🧠

    free

    システムのメモリ(RAM)使用量を表示します。

    基本文法とオプション

    • -h オプションで人が読みやすい単位で表示できます。

    ネットワーク

    📶

    ping

    特定のアドレスへ信号を送り、ネットワーク接続状態と応答速度を確認します。

    基本文法とオプション

    • Ctrl+Cを押すまで応答時間を表示し続けます。

    ping google.com → google.com までの応答時間を確認し続けます。

    🌐

    curl

    URLへデータをリクエストして応答を取得するコマンドで、API のテストなどによく使われます。

    基本文法とオプション

    • デフォルトでは応答内容を画面に出力します。
    • -O オプションで応答をファイルに保存し、-I オプションでヘッダーのみ確認できます。

    curl -I https://example.com → そのサイトの応答ヘッダーだけを確認します。

    ⬇️

    wget

    URLが指すファイルをダウンロードします。

    基本文法とオプション

    • curl よりファイルのダウンロードに特化しています。
    • ダウンロードが途中で中断しても -c オプションで再開できます。
    🔑

    ssh

    リモートサーバーに安全に接続(リモートログイン)します。

    基本文法とオプション

    • 通信内容が暗号化されるため、安全にリモートサーバーを操作できます。

    ssh user@192.168.0.10 → そのIPのサーバーに user アカウントで接続します。

    📤

    scp

    SSH を利用してローカルとリモートサーバー間でファイルを安全にコピーします。

    基本文法とオプション

    • `scp コピー元 コピー先` の形で、サーバー側のパスは `user@ホスト:パス` のように表記します。

    scp file.txt user@server:/home/user/ → ローカルファイルをリモートサーバーへ送信します。

    🧭

    ip / ifconfig

    ネットワークインターフェースのIPアドレスなどの設定情報を確認します。

    基本文法とオプション

    • `ip addr` が最新ディストリビューションの標準コマンドで、`ifconfig` は以前のディストリビューションで使われていた方式です(一部ディストリビューションでは別途インストールが必要です)。
    🔌

    netstat / ss

    現在開いているネットワーク接続とポートの状態を確認します。

    基本文法とオプション

    • `ss` は netstat に代わる新しいコマンドで、より高速に動作します。
    🛰️

    traceroute

    目的地までパケットが経由するネットワーク経路(経由地)を表示します。

    基本文法とオプション

    • どの区間でネットワークの遅延や問題が発生しているかを確認する際に使用します。

    圧縮とその他

    📦

    tar

    複数のファイルを1つのアーカイブファイルにまとめたり、展開したりします。

    基本文法とオプション

    • 圧縮とまとめを同時に行うことが多いため、オプションの組み合わせを覚えておくと便利です。
    • c=作成、x=展開、z=gzip圧縮、v=進行状況表示、f=ファイル名指定。
    • 例: -czvf(圧縮してまとめる)、-xzvf(圧縮を解除しながら展開)。

    tar -czvf backup.tar.gz ./project → project フォルダを gzip で圧縮して backup.tar.gz を作成します。

    🗜️

    gzip / gunzip

    ファイルを .gz 形式に圧縮(gzip)、または解凍(gunzip)します。

    基本文法とオプション

    • 1つのファイルしか圧縮できないため、複数ファイルをまとめる際は tar と一緒に使うことが多いです。
    🎁

    zip / unzip

    ファイルやフォルダを .zip 形式で圧縮・解凍します。

    基本文法とオプション

    • Windows など他のOSとも互換性の高い圧縮形式です。

    unzip archive.zip → archive.zip の内容を現在のフォルダに展開します。

    🕘

    history

    以前に入力したコマンドの一覧を表示します。

    基本文法とオプション

    • `!番号` と入力すると、history に表示された該当番号のコマンドを再実行できます。
    🏷️

    alias

    よく使う長いコマンドを短い別名で登録します。

    基本文法とオプション

    • シェル設定ファイル(例: ~/.bashrc)に登録しておくと、ターミナルを新しく開くたびに自動的に適用されます。

    alias ll="ls -al" → ll と入力するだけで ls -al が実行されるように登録します。

    📚

    man

    コマンドの公式マニュアル(説明書)を表示します。

    基本文法とオプション

    • 矢印キーでスクロール、`/検索語`でマニュアル内検索、qで終了します。

    man ls → ls コマンドの全オプションと使い方を確認します。

    💬

    echo

    文字列や変数の値を画面に出力します。

    基本文法とオプション

    • シェルスクリプトで値を確認したり、ファイルに内容を追記したりする際にもよく使われます。

    echo "text" >> file.txt → file.txt の末尾に text という行を追加します。

    📌

    which

    特定のコマンドが実際に実行されるプログラムファイルのパスを探します。

    基本文法とオプション

    • 同じ名前のコマンドが複数インストールされている場合に、実際にどのファイルが実行されるかを確認する際に便利です。

    which python3 → python3 コマンドが実行される実際のファイルパスを表示します。

    vi/vim エディタ

    📝

    vi 기본 모드

    vi(vim)にはコマンドモード・挿入モード・コマンドラインモードの3つがあり、すべての操作はこれらのモードを行き来しながら行います。

    基本文法とオプション

    • ファイルを開くと最初はコマンドモードで始まります(文字を直接入力できません)。
    • i、a などを押すと挿入モードに切り替わり、文字を入力できます。
    • 挿入モードで Esc を押すと再びコマンドモードに戻ります。
    • コマンドモードでコロン(:)を押すとコマンドラインモードに切り替わり、保存・終了などのコマンドを入力します。

    vi file.txt → file.txt を開いて vi を実行します。

    ✍️

    i / a / I / A

    挿入モードに切り替えて文字の入力を始めます。

    基本文法とオプション

    • i: カーソル位置の「前」から挿入を始めます。
    • a: カーソル位置の「後ろ」から挿入を始めます。
    • I: 行の先頭から、A: 行の末尾から挿入を始めます。
    🔙

    Esc

    挿入モードなど他のモードからコマンドモードに戻ります。

    基本文法とオプション

    • vi のほとんどの操作はコマンドモードで行うため、作業が終わったら習慣的にまず Esc を押してコマンドモードに戻ってから次の操作に進みます。
    🧭

    h / j / k / l

    カーソルを1マスずつ移動します(左/下/上/右)。

    基本文法とオプション

    • h: 左、j: 下、k: 上、l: 右へ移動します。
    • 矢印キーの代わりに、手をホームポジションから離さずに素早く移動できるように作られた方式です。
    🏃

    w / b / e, 0 / $

    単語や行単位でカーソルを移動します。

    基本文法とオプション

    • w: 次の単語の先頭へ、b: 前の単語の先頭へ移動します。
    • e: 現在(または次)の単語の末尾へ移動します。
    • 0: 行の先頭へ、$: 行の末尾へ移動します。
    📄

    gg / G / :숫자

    文書全体の範囲で目的の位置へ一度に移動します。

    基本文法とオプション

    • gg: 文書の一番最初の行へ移動します。
    • G: 文書の一番最後の行へ移動します。
    • `:数字` と入力して Enter を押すと、その行番号へ直接移動します。

    :42 → 42行目へ移動します。

    ✂️

    dd

    現在の行を削除(切り取り)します。

    基本文法とオプション

    • 削除された行は一時保存領域(レジスタ)にコピーされ、pで貼り付けられます。
    • 数字と組み合わせると(`3dd`)、複数行を一度に削除します。
    📋

    yy

    現在の行をコピーします(ヤンク)。

    基本文法とオプション

    • dd と違い、削除せずコピーのみ行います。
    • `3yy` のように数字を付けると複数行を一度にコピーします。
    📥

    p / P

    コピーまたは削除した内容を貼り付けます。

    基本文法とオプション

    • p: カーソルの「次」の行/位置に貼り付けます。
    • P: カーソルの「前」の行/位置に貼り付けます。
    ↩️

    u / Ctrl+r

    操作を取り消したり、やり直したりします。

    基本文法とオプション

    • u:直前の操作を取り消し(undo)ます。
    • Ctrl+r: 取り消した操作をやり直し(redo)ます。
    🔡

    x

    カーソル位置の文字を1つ削除します。

    基本文法とオプション

    • ちょっとした誤字をすぐに修正する際に便利です。
    • `3x` のように数字を付けると複数文字を一度に削除します。
    🖍️

    v / V

    範囲を選択するビジュアルモードに切り替えます。

    基本文法とオプション

    • v: 文字単位で範囲を選択します。
    • V: 行単位で範囲を選択します。
    • 範囲を選択した後、d(削除)、y(コピー)などを押すと選択範囲全体に適用されます。
    🔁

    :%s/old/new/g

    文書全体または特定の範囲で文字列を検索して置換します。

    基本文法とオプション

    • % を外すと現在の行だけに適用され、g を外すと各行の最初の一致のみが置換されます。
    • 末尾に c を付けると(`:%s/old/new/gc`)、置換前に1つずつ確認します。

    :%s/foo/bar/g → 文書全体の foo をすべて bar に置き換えます。

    💾

    :w / :q / :wq / :q!

    作業内容を保存したり、エディタを終了したりします。

    基本文法とオプション

    • :w — 現在の内容を保存します。
    • :q — エディタを終了します(変更がない場合)。
    • :wq (または ZZ) — 保存して終了します。
    • :q! — 変更内容を保存せずに強制終了します。

    :wq → 保存して vi を終了します。

    🔢

    :set number

    各行の先頭に行番号を表示します。

    基本文法とオプション

    • `:set number`(または `:set nu`)でオンにし、`:set nonumber` で再びオフにできます。
    🔂

    .

    ピリオド(.)キーで直前に行った編集操作をもう一度そのまま繰り返します。

    基本文法とオプション

    • 同じ修正を文書の複数箇所に繰り返し適用する必要がある場合に特に便利です。

    このページで扱う内容

    ターミナルでよく目にするものの、オプションまではなかなか覚えられないLinuxコマンドを、ファイルとディレクトリ(ls・cd・cpなど基本操作)→権限とユーザー(chmod・sudoなどアクセス制御)→テキスト処理と検索(grep・sed・awkなど)→プロセスとシステム(ps・top・systemctlなど)→ネットワーク(ping・curl・sshなど)→圧縮とその他(tar・history・aliasなど)→vi/vim エディタ(モード切替、カーソル移動、保存・終了ショートカットなど)の順にまとめました。上のカテゴリタブを押すか、検索欄にコマンドを入力して、必要なものから確認してみてください。

    コマンドがディストリビューションごとに少し違って感じるのはなぜ?

    このページのコマンドは、Ubuntu、Debian系を含むほとんどのLinuxディストリビューションと、macOSのターミナルでもほぼ同じように動作します。 ただし tree のように標準搭載されておらず別途インストールが必要なコマンドもあれば、ifconfig のように最新のディストリビューションでは ip のような新しいコマンドに置き換えられている場合もあります。 コマンドが動作しない場合は、まずディストリビューションのパッケージ管理ツール(apt、dnfなど)でのインストールが必要かどうかを確認してください。

    ご注意

    このページは、よく使われるLinuxコマンドの基本的な使い方を紹介する教育目的のコンテンツです。 特に rm -rf のようにファイルを削除したりシステムを変更したりするコマンドは、誤って使用すると復旧が難しい被害につながる可能性があるため、 実際のシステムで実行する前にコマンドとパスを必ず再確認してください。より詳しいオプションについては、各コマンド項目の man ページも併せて参照してください。

    よくある質問

    Windowsのコマンドプロンプト(cmd)でもこれらのコマンドはそのまま使えますか?

    いいえ。Windowsのcmdやパワーシェル(PowerShell)は文法が異なります。ただし、Windows 10以降でWSL(Windows Subsystem for Linux)をインストールすれば、実際のLinux環境でこのページのコマンドをそのまま使用できます。

    sudoはなぜ何度もパスワードを聞いてくるのですか?

    セキュリティのため、sudoは一定時間(デフォルトで約15分程度)が経つと認証が切れ、再びパスワードを求めます。管理者権限が必要なコマンドを毎回確認なしで実行できてしまうと、誤ってシステムに大きな変更を加えてしまう危険があるためです。

    このページにないコマンドはどこで調べられますか?

    現在、この言語版専用のお問い合わせページはご用意していません。差し当たり、ターミナルで man コマンド名 と入力すれば、そのコマンドの公式マニュアルをすぐに確認できます。

    viとvimは同じものですか?

    vim(Vi IMproved)は、元祖viエディタをベースに、シンタックスハイライトや複数段階の元に戻す機能、プラグインなど多くの機能を追加した改良版です。最近のほとんどのLinuxディストリビューションでは、viという名前で実行しても実際にはvimが開くようになっているため、このページのショートカットはどちらの場合でもそのまま使用できます。