チートシート

Linuxコマンド一覧:初心者と管理者のためのチートシート

更新日: · Skillaria.Top

Linuxの基本コマンドは、ナビゲーション(pwd、ls、cd)、ファイル操作(cp、mv、rm、mkdir)、権限(chmod、chown)、パッケージ(apt)、プロセス(ps、top、kill)、検索とテキスト処理(find、grep、sed、awk)、ネットワーク(ip、ss、curl)、サービス(systemctl、journalctl)のグループに分けられます。以下の表は、コマンドと使用例をまとめ、ターミナルでの日常作業の大部分をカバーします。

このLinuxコマンド一覧は、作業内容ごとにまとめています。ファイルを探す、パッケージを入れる、固まったプロセスを止める、ログから1行を抜き出す、ポートを確認する、といった場面で使えます。コマンドはUbuntuとDebianで確認しています。ほとんどは他のディストリビューションでも使えますが、違いは主にパッケージマネージャです。

ヘルプとヒント

コマンド内容
man lsコマンドの完全なマニュアル。終了は q、検索は /単語
ls --helpオプションの簡単な説明
type cd組み込みコマンド、エイリアス、ファイルのどれかを表示
which python3実行ファイルのパス
historyコマンド履歴。!123 で123番のコマンドを再実行
Ctrl+R履歴の検索
Ctrl+C / Ctrl+Dコマンドの中断 / シェルの終了

ファイルシステムの移動

コマンド内容
pwd現在のディレクトリ
ls -la隠しファイルを含むすべてのファイルを、権限とサイズ付きで表示
ls -lhサイズを読みやすい単位(K、M、G)で表示
ls -lt更新日時の順に並べる
cd /var/log絶対パスで移動
cd .. / cd ~ / cd -1つ上 / ホーム / 直前のディレクトリ
tree -L 22階層のディレクトリツリーを表示(tree パッケージ)

ファイルとディレクトリの操作

コマンド内容
touch file.txt空のファイルを作成、または更新日時を変更
mkdir -p a/b/c親ディレクトリも含めて作成
cp file.txt backup.txtファイルをコピー
cp -r src/ dst/ディレクトリを再帰的にコピー
mv old.txt new.txt名前の変更または移動
rm file.txtファイルを削除(ゴミ箱には入らない)
rm -r dir/ディレクトリを中身ごと削除。-f は確認なしで実行するため注意
rmdir dir空のディレクトリを削除
ln -s /opt/app/current appシンボリックリンクを作成
stat file.txtサイズ、権限、inode、日時などの詳細
file image.bin内容からファイルの種類を判定

内容の表示

コマンド内容
cat fileファイル全体を表示
less fileページ単位で表示。検索は /、終了は q
head -n 20 file先頭20行
tail -n 50 file末尾50行
tail -f /var/log/syslogファイルをリアルタイムで監視
wc -l file行数を数える
diff a.conf b.conf2つのファイルの差分

権限と所有者

コマンド内容
chmod +x script.sh実行を許可
chmod 644 filerw-r--r--:所有者は読み書き、その他は読み取りのみ
chmod 755 dirrwxr-xr-x:ディレクトリやスクリプトでよく使う
chmod 600 ~/.ssh/id_ed25519所有者だけがアクセス可能:秘密鍵向け
sudo chown www-data:www-data file所有者とグループを変更
sudo chown -R alice /srv/app所有者を再帰的に変更
id自分のUID、GID、所属グループ
sudo -irootのシェルを起動
sudo usermod -aG docker aliceユーザーをグループに追加

パッケージ(apt、DebianとUbuntu)

コマンド内容
sudo apt updateリポジトリからパッケージの一覧を更新
sudo apt upgradeインストール済みのパッケージを更新
sudo apt install nginxパッケージをインストール
sudo apt remove nginx設定を残して削除。purge は設定も含めて削除
sudo apt autoremove不要になった依存パッケージを削除
apt search htopパッケージを検索
apt show nginx説明とバージョンを表示
dpkg -l | grep nginxパッケージがインストールされているか確認
dpkg -L nginxパッケージがインストールしたファイルの一覧

RHEL、Fedora、Rocky Linuxでは、同等のコマンドは dnf install、dnf remove、dnf upgrade、rpm -qa です。

環境とプロファイル

コマンド内容
echo $PATHシェルがプログラムを探すディレクトリ
envすべての環境変数
export APP_ENV=prod現在のセッションと子プロセスに変数を設定
alias ll='ls -la'コマンドの短縮名
source ~/.bashrc再ログインせずにプロファイルを再読み込み
crontab -e / crontab -lcronジョブの編集 / 表示

プロセス

コマンド内容
ps auxすべてのプロセスをユーザー、CPU、メモリ付きで表示
ps aux | grep nginxプロセスを探す
pgrep -a nginx名前からPIDとコマンドラインを表示
top / htopリアルタイムの負荷を表示
kill 1234プロセスに終了を要求(SIGTERM)
kill -9 1234強制終了(SIGKILL)。最終手段
pkill -f "python app.py"コマンドラインの一致でプロセスを終了
command &、jobs、fgバックグラウンド実行とジョブ管理
nohup ./job.sh &ターミナルを閉じてもプロセスが継続
free -hメモリとswapの状況
uptime稼働時間と平均負荷
strace -p 1234プロセスのシステムコールを表示

サービスとログ(systemd)

コマンド内容
systemctl status nginxサービスの状態と直近のログ行
sudo systemctl start|stop|restart nginx起動、停止、再起動
sudo systemctl reload nginx停止せずに設定を再読み込み
sudo systemctl enable --now nginx自動起動を有効にして、すぐ起動
systemctl --failed失敗しているユニット
journalctl -u nginx -fサービスのログをリアルタイムで表示
journalctl -u nginx --since "1 hour ago"直近1時間のログ
journalctl -p err -b起動してからのエラー

ファイルの検索

コマンド内容
find /var/log -name "*.log"名前で検索
find . -type f -mtime -1過去1日以内に更新されたファイル
find / -size +500M 2>/dev/null大きなファイルを探す。アクセスエラーは非表示
find . -name "*.tmp" -delete検索して削除
du -sh *ディレクトリ内の各項目のサイズ
df -hファイルシステムの空き容量

テキストの検索と処理:grep、sed、awk、jq

コマンド内容
grep "error" app.log単語を含む行を表示
grep -i -n "error" app.log大文字小文字を区別せず、行番号付きで表示
grep -r "listen" /etc/nginx/ディレクトリを再帰的に検索
grep -v "DEBUG" app.log単語を含まない行を表示
grep -c "500" access.log一致した件数
grep -E "warn|error" app.log拡張正規表現を使用
sed 's/old/new/g' file置換して結果を表示
sed -i 's/8080/9090/' app.confファイルを直接書き換え
sed -n '10,20p' file10〜20行目を表示
awk '{print $1}' access.log各行の最初のフィールド
awk -F: '{print $1}' /etc/passwdユーザー名の一覧(区切り文字は :)
awk '$9 == 500' access.log9番目のフィールドが500の行
sort | uniq -c | sort -rn重複を数えて頻度順に並べる
cut -d, -f2 data.csvCSVの2列目
jq '.items[].name' data.jsonJSONからフィールドを抽出

パイプラインの例:nginxへのリクエストが最も多い10個のIPアドレス。

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

リダイレクトとパイプ

書き方内容
cmd > out.txt出力をファイルに書き込む(上書き)
cmd >> out.txtファイルの末尾に追記
cmd 2> err.txtエラー出力をファイルへ
cmd > all.log 2>&1出力とエラーを1つのファイルへ
cmd1 | cmd21つ目のコマンドの出力を2つ目の入力に渡す
cmd | tee out.txt画面に表示しつつファイルにも保存
cmd1 && cmd21つ目が成功したときだけ2つ目を実行
cmd1 || cmd21つ目が失敗したときだけ2つ目を実行

アーカイブ

コマンド内容
tar -czf backup.tar.gz dir/まとめてgzipで圧縮
tar -xzf backup.tar.gz展開
tar -tzf backup.tar.gz中身を一覧表示
zip -r site.zip site/ / unzip site.zipzip形式のアーカイブ

ネットワーク

コマンド内容
ip aネットワークインターフェースとIPアドレス
ip rルーティングテーブル
ping -c 4 8.8.8.8ホストに到達できるか確認
ss -tulpn開いているポートと、それを使用しているプロセス
dig example.com / nslookup example.comDNSの問い合わせ
curl -I https://example.comレスポンスヘッダーのみ表示
curl -s https://api.example.com | jqAPIにリクエストし、JSONを整形して表示
wget URLファイルをダウンロード
traceroute example.comホストまでのパケットの経路
ssh user@hostサーバーに接続
ssh-keygen -t ed25519SSH鍵ペアを作成
scp file user@host:/tmp/ファイルをサーバーにコピー
rsync -avz dir/ user@host:/srv/dir/ディレクトリを同期
sudo ufw statusファイアウォールのルール

システムとディスク

コマンド内容
uname -aカーネルとアーキテクチャ
cat /etc/os-releaseディストリビューションとバージョン
hostnamectlホスト名とシステム情報
lsblkディスクとパーティション
sudo mount /dev/sdb1 /mntパーティションをマウント
who / w現在ログインしているユーザー
sudo reboot / sudo shutdown -h now再起動 / シャットダウン

まとめ

日常の作業には、数十個のコマンドで十分です。ls、cd、cp、mv、rm、chmod、sudo、apt、ps、kill、systemctl、journalctl、grep、find、ss、curl、ssh などです。このチートシートを保存しておき、コマンドが自然に手に馴染むまで参照してください。各コマンドグループは、Linuxコースで実践を通して解説しています。

よくある質問

manやlessから抜けるにはどうすればいいですか?

qキーを押します。内容を検索するには、スラッシュに続けて単語を入力し、nで次の一致箇所に移動します。

vimエディタを終了するにはどうすればいいですか?

Escを押してから :q! と入力してEnterを押すと保存せずに終了します。:wq と入力すると保存して終了します。初心者はnanoでファイルを編集する方が簡単です。

rm -rf は何が危険なのですか?

確認なしで削除され、ゴミ箱にも入りません。パスを間違える(たとえば、アスタリスクの前に余計なスペースを入れる)と、意図しないディレクトリを消してしまうことがあります。実行前に ls でパスを確認してください。

直前のsudoつきコマンドを繰り返すにはどうすればいいですか?

sudo !! と入力します。シェルが直前のコマンド全体に置き換えます。

ターミナルで止まったコマンドを停止するにはどうすればいいですか?

Ctrl+Cで中断シグナルを送ります。反応しない場合は、別のターミナルで ps または pgrep を使ってPIDを探し、kill で終了させてください。

動画でこのテーマを学ぶ

このテーマはコース「Linux: с нуля до уверенного администрирования」で実践とともに詳しく解説しています。

コースへ