Linuxのコマンドは数百種類ありますが、日常の運用で使うものは限られます。この記事では、よく使う49コマンドを用途別の早見表にまとめ、頻度の高いものは実行例つきで解説します。ifconfigやnetstatが動かない理由と代替コマンドに加え、Ubuntu 26.04 LTSと26.10でコアユーティリティの実装が違う点も扱います。手元でコマンドが見つからない、エラーの文面が手順書と違う、といったときの切り分けにも使えます。
まとめ
- 覚える順序は、ファイル操作(ls・cd・cp・mv・rm)→テキスト検索(grep)→権限(chmod・chown)が実務で詰まりにくい順番です。
- ifconfigやnetstatが「command not found」になるのは故障ではありません。net-toolsが既定で入らなくなったためで、現在の標準はipとssです。
- Ubuntu 26.04.1 LTSではlsやchownなど大半がRust製のuutils coreutils 0.10.0、cp・mv・rmだけがGNU coreutils 9.7です。2026年10月15日公開の26.10ではcp・mv・rmもuutils 0.12.0へ移りました。
- GNU版へ戻す公式手順は、
coreutils-from-gnuを入れると同時にcoreutils-from-uutilsを外すaptコマンドです(後述)。gnulsやgnucpのように頭にgnuを付ければ、切り替えずにGNU版も呼べます。 - cdやaliasは独立した実行ファイルを持たないシェル組み込みコマンドで、
man cdでは引けません。Bashならhelp cdかman bashで説明を読みます。 - chownの再帰指定は大文字の-Rです。小文字の-rはGNU版でもuutils版でもエラーになります。
用途別Linuxコマンド早見表
実務で登場する頻度が高い49コマンドを5分類で整理しました。目的のコマンドをここで引き、詳しい使い方は後続の章で確認してください。
ファイル・ディレクトリ操作
| コマンド | 用途 | 主なオプション | 例 |
|---|---|---|---|
| ls | ファイル一覧の表示 | -l 詳細/-a 隠しファイル/-h 単位 | ls -lh |
| cd | ディレクトリの移動 | – 直前の位置へ戻る | cd /var/log |
| pwd | 現在地の絶対パス表示 | -P リンクを解決した実体パス | pwd |
| cp | コピー | -r 再帰/-i 確認/-p 属性保持 | cp -r src dst |
| mv | 移動・名前変更 | -i 確認/-n 上書き禁止 | mv old.txt new.txt |
| rm | 削除 | -r 再帰/-i 確認/-f 強制 | rm -i file.txt |
| mkdir | ディレクトリ作成 | -p 親ごと作成 | mkdir -p a/b/c |
| rmdir | 空ディレクトリ削除 | -p 親もまとめて削除 | rmdir tmp |
| touch | 空ファイル作成・時刻更新 | -t 時刻を指定 | touch memo.txt |
| find | 条件を指定した検索 | -name/-type/-mtime | find . -name "*.log" |
| ln | リンク作成 | -s シンボリックリンク | ln -s target link |
テキストの表示・検索・加工
| コマンド | 用途 | 主なオプション | 例 |
|---|---|---|---|
| cat | ファイル内容の連結表示 | -n 行番号 | cat app.conf |
| less | ページ送りでの閲覧 | -N 行番号/+F 追記を追従 | less app.log |
| head | 先頭のみ表示 | -n 行数 | head -n 20 app.log |
| tail | 末尾表示・追記の追従 | -f 追従/-n 行数 | tail -f app.log |
| grep | 文字列検索 | -r 再帰/-n 行番号/-i 大小無視 | grep -rn "error" . |
| sed | 置換・行編集 | -i 直接編集/-e 複数指定 | sed -i 's/a/b/g' f.txt |
| awk | 列の抽出・集計 | -F 区切り文字の指定 | awk '{print $1}' f.txt |
| sort | 並べ替え | -n 数値/-r 逆順/-h 単位付き | sort -n nums.txt |
| uniq | 連続する重複行の除去 | -c 件数/-d 重複行のみ | sort f.txt | uniq -c |
| wc | 行数・単語数の計上 | -l 行/-w 単語/-c バイト | wc -l app.log |
| diff | 差分比較 | -u 統一形式/-r 再帰 | diff old.txt new.txt |
プロセス・システム情報
| コマンド | 用途 | 主なオプション | 例 |
|---|---|---|---|
| ps | プロセス一覧 | aux 全プロセス/-ef 別書式 | ps aux |
| top | 負荷のリアルタイム監視 | -u ユーザー指定 | top |
| kill | プロセスへのシグナル送信 | -9 強制終了/-l シグナル一覧 | kill -15 1234 |
| df | ディスク使用量 | -h 単位/-i inode使用量 | df -h |
| du | ディレクトリ別の使用量 | -s 合計のみ/-h 単位 | du -sh * |
| free | メモリ使用量 | -h 単位/-s 秒間隔で更新 | free -h |
| uptime | 稼働時間と負荷平均 | -p 稼働時間のみ | uptime |
| uname | カーネル・CPU種別の表示 | -r カーネル版/-m アーキテクチャ | uname -r |
| systemctl | サービスの制御 | status/start/enable | systemctl status ssh |
| journalctl | システムログ閲覧 | -u 単位指定/-f 追従 | journalctl -u ssh |
OSのバージョンは cat /etc/os-release、カーネルは uname -r と見る場所が分かれます。使い分けはLinuxのバージョン確認コマンド|OSはos-release、カーネルはuname -rで見るにまとめています。systemctlとjournalctlの背景にある仕組みはsystemdとは?読み方・SysVinitとの違いとsystemctl・ユニットファイルの基本【v262】で解説しました。
圧縮・アーカイブ・転送
| コマンド | 用途 | 主なオプション | 例 |
|---|---|---|---|
| tar | アーカイブの作成・展開 | -c 作成/-x 展開/-t 一覧/-z gzip | tar -czf a.tar.gz dir |
| gzip | 単一ファイルの圧縮 | -d 展開/-k 元ファイルを残す | gzip app.log |
| gunzip | gz形式の展開 | -c 標準出力へ書き出す | gunzip app.log.gz |
| zip | zip形式の圧縮 | -r 再帰/-e パスワード保護 | zip -r a.zip dir |
| unzip | zip形式の展開 | -l 一覧/-d 展開先/-O 文字コード | unzip a.zip |
| scp | SSH経由のファイル転送 | -r 再帰/-P ポート番号 | scp f.txt host:~/ |
| rsync | 差分同期 | -a 属性保持/-v 詳細/–delete | rsync -av src/ dst/ |
権限・ユーザー・ネットワーク
| コマンド | 用途 | 主なオプション | 例 |
|---|---|---|---|
| chmod | アクセス権の変更 | -R 再帰/–reference 権限を複製 | chmod 644 f.txt |
| chown | 所有者の変更 | -R 再帰(小文字-rは不可) | chown -R app:app dir |
| chgrp | 所有グループの変更 | -R 再帰 | chgrp www-data f.txt |
| sudo | 管理者権限での実行 | -u 実行ユーザー/-i ログインシェル | sudo apt update |
| adduser | ユーザー追加(Debian系推奨) | –system システム用アカウント | sudo adduser taro |
| deluser | ユーザー削除(Debian系推奨) | –remove-home ホームも削除 | sudo deluser taro |
| ip | IPアドレス・経路の確認 | -c 色付き/-br 簡易表示 | ip -c addr show |
| ss | 通信ポートの確認 | -t TCP/-u UDP/-l 待受/-n 数値 | ss -tuln |
| ping | 疎通確認 | -c 回数/-i 送信間隔 | ping -c 4 example.com |
| curl | HTTP通信の確認 | -I ヘッダのみ/-o 保存/-L 追従 | curl -I https://example.com |
ファイル・ディレクトリ操作コマンドの実行例
ls -lahの表示内容と各列の意味
lsは引数なしでも動きますが、実務では-lと-hを組み合わせます。-lで詳細表示、-hで容量を読みやすい単位(K、M、G)に変換し、隠しファイルまで含めるなら-aを足します。
$ ls -lah
total 24K
drwxr-xr-x 3 app app 4.0K Jul 30 09:12 .
drwxr-xr-x 8 app app 4.0K Jul 28 17:55 ..
-rw-r--r-- 1 app app 220 Jul 12 11:40 .env
-rw-r--r-- 1 app app 4.2K Jul 30 09:12 app.conf
drwxr-xr-x 2 app app 4.0K Jul 28 18:03 logs
先頭の10文字は「ファイル種別+所有者・グループ・その他の権限」です。1文字目がdならディレクトリ、-なら通常ファイル、lならシンボリックリンクを指します。続く数字はハードリンク数で、以降は所有者名、所有グループ名、サイズ、更新日時、名前と並びます。-hを付けない場合、サイズの単位はバイトです。
cp・mv・rmの事故防止オプション
この3つは取り消しが効かないため、オプションの選び方が事故を分けます。cpでディレクトリを扱うときは再帰の指定が必須で、-r(-Rと同じ)か、属性も保つ-aを付けます。mvは移動と名前変更を兼ねており、ファイル名の変更もmvで行います。移動先に同名ファイルがあると無言で上書きする点に注意してください。
$ cp -r src/ backup/
$ mv -i report.txt report_2026.txt
$ rm -i old.log
-iを付けると上書きや削除の前に確認を求めます。共用サーバーでの作業や、ワイルドカードを含む削除では-iを既定にしておくと安全側に倒せます。rm -rf を対話なしでパス変数と組み合わせるのは避けてください。変数が空になった場合に想定外の範囲を削除します。
テキスト検索・加工コマンドの実行例
grepによるログの絞り込み
grepは-rでディレクトリ再帰、-nで行番号表示、-iで大文字小文字の無視を組み合わせると調査が速くなります。
$ grep -rni "timeout" /var/log/app/
/var/log/app/worker.log:184:connection timeout after 30s
該当行の前後も見たい場合は-Aで後ろ、-Bで前、-Cで両方の行数を指定します。障害調査では grep -C 5 でエラー行の前後5行を出すと、原因になった直前の処理を追えます。正規表現の書き方まで含めた詳細はgrepコマンドとは?基本構文・オプション・正規表現からログ検索まで実装者向けに解説【2026年版】にあります。
sed・awkの役割分担
sedは行単位の置換、awkは列単位の抽出が得意です。置換はsed、集計はawkと切り分けると読みやすいコマンドになります。
$ sed -i.bak 's/localhost/db.internal/g' app.conf
$ awk '{print $1}' access.log | sort | uniq -c | sort -rn | head
sedの-iは元ファイルを直接書き換えます。上の例のように-i.bakと拡張子を続けると、書き換え前の内容がapp.conf.bakとして残ります。本番の設定ファイルを触るときは拡張子付きで使ってください。-i.bakの書き方はmacOSのBSD sedでもそのまま動きます。差が出るのはバックアップを作らない場合で、GNU sedは sed -i 's/a/b/g' f.txt、BSD sedは sed -i '' 's/a/b/g' f.txt のように空文字の引数が必要です。手順書をMacとLinuxで共用するときの定番のつまずきどころです。
sort・uniqによる重複集計
uniqが除去するのは「連続する」重複行だけです。並べ替えずに渡すと、離れた位置にある同じ行は別々に数えられます。
$ printf 'a\nb\na\n' | uniq -c
1 a
1 b
1 a
$ sort ip.txt | uniq -c | sort -rn
42 203.0.113.10
7 198.51.100.4
1つ目の例ではaが2回あるのに1件ずつ数えられています。件数を集計するときは、必ず先にsortを通してください。
プロセス・リソース確認コマンドの実行例
ps・topでの負荷原因の特定
psは実行時点のスナップショット、topは継続的な監視です。プロセスIDを調べてから停止する、という流れが基本になります。
$ ps aux | grep '[n]ginx'
www-data 2417 0.0 0.4 55212 8123 ? S 09:01 0:00 nginx: worker process
検索文字列の1文字目を角括弧で囲むと、grep自身のプロセスが結果に混ざるのを防げます。topは起動後に M でメモリ順、P でCPU順に並べ替えられます。
killのシグナル使い分け
killは「強制終了」専用のコマンドではなく、プロセスへシグナルを送るコマンドです。既定はSIGTERM(15)で、これは終了の要求です。ハンドラーを持つアプリケーションは後始末をしてから終了しますが、何をするかはアプリケーション側の実装次第です。要求に応じない場合だけSIGKILL(9)を使います。
$ kill 2417
$ kill -9 2417
最初から-9を使うのは避けてください。SIGKILLは捕捉も無視もできず、プロセスに後始末の余地を与えません。書き込み途中のファイルや、アプリケーションが作るロックファイル・PIDファイルが残る場合があります。データベースやキューを扱うプロセスでは、-9で止めた後の復旧作業のほうが高くつきます。
df・duによるディスク容量の切り分け
「ディスクが満杯」の調査では、dfで全体を見てからduで原因のディレクトリを絞ります。ファイル数が多い環境では容量に余裕があっても df -i のinode枯渇で書き込みに失敗するため、あわせて確認してください。
$ df -h
$ du -sh /var/* 2>/dev/null | sort -h | tail -5
圧縮・アーカイブコマンドの実行例
tarのオプション組み合わせとgzの解凍
tarのオプションは、c(作成)、x(展開)、t(一覧)、z(gzip圧縮)、f(ファイル名指定)、v(詳細表示)の組み合わせで覚えると迷いません。
$ tar -tzf backup.tar.gz
etc/nginx/nginx.conf
etc/nginx/sites-available/default
$ mkdir -p /tmp/restore
$ tar -xzvf backup.tar.gz -C /tmp/restore/
$ gunzip -k access.log.gz
展開前にtで中身を確認する習慣を付けると、カレントディレクトリにファイルが散乱する事故を防げます。拡張子で使うコマンドが変わる点も押さえてください。.tar.gz はtarで展開し、単体の .gz はgunzipで戻します。gunzipは元の.gzを消すため、残したいときは上の例のように-kを付けます。
GNU tarには、アーカイブ名の拡張子から圧縮形式を選ぶ-a(–auto-compress)もあります。GNU tarのマニュアルの対応表では、.zstと.tzstがzstdに割り当てられています。ただしtarは圧縮を外部プログラムに任せるため、Ubuntu 26.04の公式Dockerイメージでは tar -caf a.tar.zst dir が「zstd: not found」で失敗しました。使う前に sudo apt install zstd で導入してください。26.04と26.10に入っているGNU tarはどちらも1.35です。
zip・unzipとWindows間の受け渡し
zipとunzipは、Ubuntu 26.04と26.10の公式Dockerイメージには入っていませんでした。サーバーやコンテナで見つからない場合は導入します。Windowsと受け渡しするファイルでは、tar.gzよりzipのほうが相手側で開きやすくなります。
$ sudo apt install zip unzip
$ zip -r docs.zip docs/
$ unzip -O cp932 from_windows.zip
Windowsで作成されたzipは、ファイル名がShift_JIS系(CP932)で格納されていることがあります。展開後に日本語ファイル名が文字化けする場合は、上の例のように-Oで文字コードを指定してください。-OはUbuntuのunzipパッケージのマニュアルに載っているオプションで、他のディストリビューションでは使えるか事前に確認してください。サーバー間の転送はSCPコマンドとは?基本構文・主要オプション・SSH越しの安全なファイル転送を実装者向けに解説【2026年版】、差分同期はrsyncのアップデート手順と脆弱性|最新3.5.1で直るCVEと配布版の確認方法で扱っています。
パーミッション・ユーザー管理コマンドの実行例
chmodの数値表記とシンボリック表記
chmodには数値で指定する方法と、記号で指定する方法があります。数値は読み取り4、書き込み2、実行1の合計を、所有者・グループ・その他の順に3桁で並べます。
| 指定 | 意味 | 主な用途 |
|---|---|---|
| 644 | 所有者は読み書き、他は読み取り | 設定ファイル・HTML |
| 755 | 所有者は全権、他は読み取りと実行 | ディレクトリ・スクリプト |
| 600 | 所有者のみ読み書き | 認証情報・鍵ファイル |
| 700 | 所有者のみ全権 | 個人用ディレクトリ |
$ chmod 600 ~/.ssh/id_ed25519
$ chmod u+x deploy.sh
SSHの秘密鍵がグループやその他のユーザーから読める権限になっていると、sshクライアントが鍵の読み込みを拒否します。秘密鍵は600か400にします。接続できないときは、まず権限を確認してください。777は「誰でも書き換えられる」状態を意味するため、公開ディレクトリで使ってはいけません。
chown・chgrpによる所有者の変更
chownは所有者を、chgrpは所有グループを変更します。chownはコロン区切りで両方を一度に指定できます。
$ sudo chown -R www-data:www-data /var/www/html
$ sudo chgrp developers shared.txt
ディレクトリ配下をまとめて変更する再帰オプションは、大文字の-Rです。GNU coreutilsのchownの説明にある再帰指定は-Rと–recursiveで、小文字の-rはありません。小文字で打ったときのエラー文面は実装で異なり、Ubuntu 24.04(GNU 9.4)では chown: invalid option -- 'r'、26.04と26.10(uutils)では error: unexpected argument '-r' found と表示されました。どちらも大文字に直せば通ります。
Ubuntuでのuseraddとadduserの使い分け
ユーザー追加にはuseraddとadduserの2つがありますが、Ubuntuを含むDebian系では後者が推奨されています。Ubuntu 26.04のuseraddのマニュアルには「useradd is a low level utility for adding users.」とあり、続けて「On Debian, administrators should usually use adduser(8) instead.」と書かれています。
$ sudo adduser taro
$ sudo usermod -aG sudo taro
useraddは低水準ユーティリティで、ホームディレクトリを作るかどうかは-mオプションや /etc/login.defs の設定次第です。パスワードも対話では聞かれず、別途passwdで設定します。ホーム作成とパスワード設定を対話的に一通り進めるadduserを使うほうが、設定漏れによるログイン不可を避けられます。管理者権限を与える場合は、上の例のようにsudoグループへ追加します。なおUbuntu 26.04以降のsudoはRust製のsudo-rsで、従来版との違いはsudo-rsとは|Ubuntu 26.04・26.10既定のRust製sudoとの違い・脆弱性・元に戻す手順で整理しています。
ネットワーク確認コマンドのip・ssへの移行
ifconfigやnetstatを実行して「command not found」と表示されても、環境が壊れているわけではありません。これらを収録するnet-toolsパッケージが、既定でインストールされなくなったためです。Canonicalは2017年の公式ブログで「We’ve already stopped installing ifconfig on desktops (it still gets installed on servers for now)」と述べ、iproute2系への移行を案内していました。
| 旧コマンド | 現在の標準 | 用途 |
|---|---|---|
| ifconfig | ip address show | IPアドレスの確認 |
| ifconfig | ip link show | MACアドレス・リンク状態 |
| netstat | ss | ソケット・ポートの確認 |
| route | ip route | 経路表の確認 |
| ipmaddr | ip maddress | マルチキャストアドレス |
| mii-tool | ethtool | リンク速度・全二重の確認 |
$ ip -c addr show
$ ip route
$ sudo ip link set enp0s3 up
$ sudo ss -tulpn
ipコマンドは省略形が使えるため、日常の確認は ip a(アドレス表示)と ip r(経路表示)で足ります。リンク状態を変える ip link set はroot権限が必要です。上の enp0s3 はVirtualBoxの既定名にあたるため、物理サーバーやクラウドでは ip -c addr show で確認した実際の名前に置き換えてください。
ssは/procを走査するnetstatと違い、netlink経由でカーネルから直接情報を取得します。-tulpnで「TCP・UDPの待ち受けポートとプロセス名」を確認できますが、-pで他プロセスの名前まで出すにはroot権限が要るため、sudoを付けてください。
Ubuntuの公式Dockerイメージは、ifconfigどころかipもssも入っていない最小構成です。26.04と26.10のイメージで確かめたところ、どちらも ip が見つからず、sudo apt install iproute2 で入る版は26.04が6.19.0、26.10が7.2.0でした。既存の手順書がifconfig前提なら、net-toolsは26.04・26.10とも2.10-2ubuntu1がリポジトリに残っており sudo apt install net-tools で導入できます。ただし新しく書く手順はip系に寄せるべきです。net-toolsはネットワーク名前空間など新しい機能を扱えません。経路を調べるtracerouteも既定では入らないため、必要なら sudo apt install traceroute で追加します。
Ubuntu 26.04と26.10で異なるコアユーティリティの実装
lsやcatといったコマンドの中身は、C言語製のGNU coreutilsからRust製のuutils coreutilsへ置き換わりつつあります。既定になったのは中間リリースのUbuntu 25.10からで、LTSとしては2026年4月23日公開の26.04が最初です。ただし26.04ではcp・mv・rmだけがGNUのまま残り、2026年10月15日公開の26.10でその3つも移っています。公式Dockerイメージで各コマンドの --version を確認した結果は次のとおりです(2026年11月1日時点)。
| コマンド | 24.04.5 LTS | 26.04.1 LTS | 26.10 |
|---|---|---|---|
| ls・cat・sort・chown・chmod | GNU 9.4 | uutils 0.10.0 | uutils 0.12.0 |
| cp・mv・rm | GNU 9.4 | GNU 9.7 | uutils 0.12.0 |
| sudo | sudo(C実装) | sudo-rs | sudo-rs |
$ ls --version | head -1
ls (uutils coreutils) 0.10.0
$ cp --version | head -1
cp (GNU coreutils) 9.7
$ readlink -f "$(command -v cp)"
/usr/bin/gnucp
上は26.04.1での出力です。cpの実体は /usr/bin/gnucp、lsの実体は /usr/lib/cargo/bin/coreutils/ls を指していました。26.04のリリース時点ではuutilsは0.8.0でしたが、その後の更新で0.10.0(パッケージ版 0.10.0-1ubuntu2~26.04.1)に上がっています。リリース時の版番号で書かれた解説は、すでに手元の表示と合いません。
cp・mv・rmが据え置かれた理由を、Canonicalは2026年4月22日の告知で「remaining open TOCTOU (time-of-check to time-of-use) issues (8 as of Apr 22, 2026)」と説明しています。同じ告知によると、外部監査で見つかった指摘は2回の監査で計113件でした。ファイルを壊しうる3つだけを慎重に扱い、26.10で100%移行を目指すとしていた計画どおり、26.10のリリースノートは「The remaining GNU utilities (cp, mv, and rm), previously retained due to compatibility issues, have now been migrated.」と記載しました。
GNU版を呼ぶ・GNU版へ戻す方法
GNU版は削除されておらず、コマンド名の頭にgnuを付ければそのまま呼べます。26.04.1と26.10の公式イメージには gnuls や gnucp など、gnuで始まるコマンドが104個入っていました。26.10で gnucp --version を実行すると「cp (GNU coreutils) 9.10」と返ります。一時的にGNUの挙動と比べたいときは、この方法が最も手軽です。
システム全体をGNU版へ切り替える公式手順は、26.04 LTSのリリースノートに載っています。
# GNU coreutilsへ切り替える
$ sudo apt install coreutils-from-gnu coreutils-from-uutils- --allow-remove-essential
# Rust版へ戻す
$ sudo apt install coreutils-from-uutils coreutils-from-gnu- --allow-remove-essential
26.10の公式イメージで実行すると、lsもcpもrmも「GNU coreutils 9.10」に変わり、戻すコマンドで「uutils coreutils 0.12.0」に戻りました。途中で「this is a protected package; it should not be removed」という警告が出ますが、–allow-remove-essentialを付けているため処理は完了します。sudo apt install coreutils-from-gnu だけを打つと、coreutils-from-uutilsと競合して終了コード100で止まります。末尾のハイフンで外す側を指定する部分まで省略しないでください。
移行で影響が出やすい場面
日常のコマンド操作が変わるわけではありません。影響が出るのは、エラーメッセージの文面を前提にしたスクリプトです。前述のchown -rのように、オプションの誤りに対する文面はGNUとuutilsで違います。一方、存在しないファイルに対する ls・cp・rm のエラー(「cannot access」「cannot stat」「cannot remove」)は、26.04.1と26.10で同じ文面でした。終了コードで判定しているスクリプトは影響を受けにくく、標準エラー出力の文字列をgrepしているスクリプトは移行前に実機で確かめる必要があります。GNU拡張のマイナーなオプションに依存した処理も確認対象です。uutilsはGNU互換を目標にしていますが、実装状況はオプション単位で異なります。
24.04から26.04.1への通常アップグレードは2026年9月29日に解禁されました。手順と注意点はUbuntu 26.04 LTS(Resolute Raccoon)とは|リリース日・新機能と24.04からのアップグレード【26.04.1対応】で整理しています。業務サーバーのOS更新やクラウド移行をまとめて任せたい場合は、AWS・Google Cloud・Azureのインフラ構築支援もご相談いただけます。
manが引けないコマンドと公式の一覧の調べ方
Bash組み込みコマンドのhelpによる確認
manコマンドはマニュアルを表示しますが、cdやaliasでは期待した内容が出ません。これらは独立した実行ファイルではなく、シェル自身に組み込まれたコマンドだからです。echoのように、組み込み版と外部の実行ファイル版(GNU coreutilsのecho)の両方があるコマンドもあり、どちらが動くかで挙動が変わります。まずtypeで正体を確かめます。
$ type cd
cd is a shell builtin
$ type find
find is /usr/bin/find
$ help cd
「shell builtin」と表示されたものは、Bashなら help で説明を読みます。helpはBashの組み込み機能で、詳しい仕様は man bash の「SHELL BUILTIN COMMANDS」にあります。Ubuntuの既定の.bashrcはlsやgrepにaliasを設定しているため、これらを調べるときはbashで type -a ls と-aを付けて全候補を出すほうが確実です。
man -kによるキーワード検索
コマンド名を忘れた場合は、man -k compress のようにキーワードを渡すと、説明文に一致するコマンドの一覧が返ります。検索対象は英語のマニュアルなので、日本語で引きたいときは sudo apt install manpages-ja で日本語manページを追加してください。その環境で実行できるコマンド名を全部並べるなら、bashで compgen -c | sort -u が使えます(aliasや関数も含まれます)。manの項目にある1や8はセクション番号で、1が一般ユーザー向けコマンド、5がファイル形式、8が管理者向けコマンドです。同名で内容が違う場合は man 5 crontab のようにセクションを指定します。
公式のコマンド一覧とPDF版マニュアル
「Linuxの公式コマンド一覧」という1枚の表は存在しません。Linuxはカーネルの名前で、ls・cp・grepといったコマンドは別々のプロジェクトが作っているためです。公式に近い一覧として参照できるのは次の3つです。
- POSIX(Issue 8)のユーティリティ索引:UNIX系OSが共通で備えるべきコマンドの規格です。cd・ls・grep・awk・psなど155項目が並び、ipやsystemctlのようなLinux固有のものは含みません。
- GNU coreutilsのマニュアル:ls・cp・chmodなど基本コマンドの全オプションを収めた公式文書で、PDF版(約1.2MB)も配布されています。印刷して手元に置くならこれが一次資料です。
- Ubuntu Manpage Repository:Ubuntuの版ごとに、パッケージに含まれるmanページをブラウザで読めます。
Ubuntu 26.04以降の既定のlsやchmodはuutils実装なので、GNUのマニュアルと細部が異なる場合があります。オプションの有無に迷ったら、手元で ls --help を実行した結果を正としてください。
WindowsコマンドプロンプトとLinuxコマンドの対応
Windowsからサーバー運用に入ると、手が覚えたコマンドが通じずに戸惑います。よく使うものの対応は次のとおりです。
| Windows(cmd) | Linux | 用途 |
|---|---|---|
| dir | ls | 一覧表示 |
| cd | cd | 移動(同名) |
| copy | cp | コピー |
| move / ren | mv | 移動・名前変更 |
| del | rm | 削除 |
| type | cat | 内容表示 |
| findstr | grep | 文字列検索 |
| tasklist | ps | プロセス一覧 |
| taskkill | kill | プロセス停止 |
| ipconfig | ip addr | IPアドレス確認 |
| tracert | traceroute | 経路の確認 |
| cls | clear | 画面の消去 |
表記の違いも押さえておくと混乱しません。パス区切りはWindowsが円記号(バックスラッシュ)、Linuxはスラッシュです。Linuxのパスは大文字と小文字を区別するため、Report.txtとreport.txtは別のファイルになります。オプションの記号もWindowsのスラッシュ形式に対し、Linuxはハイフン形式です。
Windows上でLinuxコマンドを試すなら、WSL2を使えば仮想マシンを別に構築せずにUbuntu環境を動かせます。仕組みと導入手順はWSL2とは?WSL1との違い・仕組み・インストール手順【WSL 3.0対応・2026年10月】で解説しています。
よくある質問
Linuxコマンドの公式の一覧やPDFはありますか?
Linux全体の公式一覧はありません。規格としてはPOSIXのユーティリティ索引(155項目)、基本コマンドの公式文書としてはGNU coreutilsのマニュアル(PDF版あり)が参照先です。自分の環境に入っているコマンドだけを並べるなら、bashで compgen -c | sort -u を実行します。
ls -lの各列は何を表していますか?
左から、権限(先頭1文字が種別、続く9文字が所有者・グループ・その他の読み書き実行)、ハードリンク数、所有者、所有グループ、サイズ、最終更新日時、名前の順です。サイズの単位は既定でバイトのため、KやMで読みたい場合は-hを追加してください。
ifconfigがcommand not foundになるのはなぜですか?
net-toolsパッケージが既定でインストールされなくなったためです。現在の標準はipコマンドで、ip addr show が同じ用途にあたります。どうしても必要なら sudo apt install net-tools で導入できますが、新規の手順書はip系で書くことをおすすめします。
sudo chown -rがエラーになるのはなぜですか?
chownの再帰オプションは大文字の-Rで、小文字の-rは定義されていないためです。Ubuntu 24.04では「invalid option — ‘r’」、26.04以降では「unexpected argument ‘-r’ found」と文面は違いますが、原因は同じです。sudo chown -R user:group dir と大文字で指定してください。
コマンドプロンプトのコマンドはLinuxでも使えますか?
copyやdelなどWindows固有のコマンドはLinuxでは動きません。cdのように名前が共通のものに加え、dirもGNU coreutilsに同名コマンドがあります(ls -C -b 相当で、Windowsのdirとは表示が違います)。tracertはtraceroute、ipconfigはip addrのように置き換えが必要です。前章の対応表で読み替えるか、WSL2でLinux環境そのものを用意してください。