Linuxコマンド完全ガイド:初心者が最初に覚えるべきコマンド一覧と使い方

実務レシピ

Linux の世界へようこそ!
初心者が最初に踏み出すべきは、コマンドライン(ターミナル)です。
ターミナルがあれば、GUI で操作できない細かい設定や自動化が可能になり、システム管理や開発が格段に効率化します。
本記事では、最も頻繁に使われる Linux コマンドを分かりやすく紹介し、実際に手を動かすためのサンプルコードやコツを交えて、コマンドライン操作をマスターする道筋を示します。


  1. 1. ターミナルを起動する
  2. 2. 基本ディレクトリとファイル操作
    1. 2.1 ディレクトリの移動
      1. CDPATH でよく使うディレクトリへ素早く移動
    2. 2.2 ファイル・ディレクトリ一覧
      1. ls の主なオプション一覧
    3. 2.3 ファイル・ディレクトリ作成
    4. 2.4 ファイルのコピー・移動・削除
  3. 3. テキストファイルを扱う
    1. 3.1 ファイル内容を見る
    2. 3.2 テキスト検索
    3. 3.3 テキスト加工(sed / awk / sort / uniq)
    4. 3.4 ファイルの行数・サイズ確認
  4. 3b. システム情報確認コマンド
    1. uname でカーネル情報
    2. free でメモリ使用量
    3. df でディスク使用状況
    4. du でディレクトリサイズ調査
  5. 4. ファイル名や権限を理解する
    1. 4.1 権限を見る
    2. 4.2 権限を変更
    3. 4.3 所有者・グループを変更
  6. 5. シェルコマンドの便利な応用
    1. 5.1 変数と置換
    2. 5.2 簡易的な if 文
    3. 5.3 for ループ
    4. 5.4 コマンド置換
  7. 6. プロセス管理
    1. 6.1 現在動いているプロセスを見る
    2. 6.2 プロセスを検索
    3. 6.3 プロセスを終了
    4. 6.4 リソース使用情報
  8. 7. ネットワーク関連コマンド
    1. 7.1 ホスト名・IP を確認
    2. 7.2 接続状況を確認
    3. 7.3 端末からファイルを転送
    4. 7.4 SSH でサーバへ接続
    5. 7.5 ファイルのダウンロード
    6. 7.6 DNS 情報確認
  9. 8. パッケージ管理
    1. 8.1 Debian 系
    2. 8.2 RedHat 系
    3. 8.3 Arch 系
  10. 9. シェルスクリプトの作成と実行
    1. 9.1 スクリプトサンプル
    2. 9.2 実行権限を付与
    3. 9.3 スクリプトを実行
  11. 9b. 便利ツール集
  12. 9c. コマンドを効率よく覚えるコツ
  13. 10. よくある質問(FAQ)
  14. 11. まとめ
  15. 関連記事

1. ターミナルを起動する

まずはターミナルを開くことから始めましょう。

  • Ubuntu/Debian 系: Ctrl+Alt+T
  • Fedora/RedHat 系: Alt+F2gnome-terminal
  • Mac (Git Bash など): Terminal.app

ターミナルが開いたら、現在のディレクトリを確認するコマンドを試しましょう。

pwd

2. 基本ディレクトリとファイル操作

2.1 ディレクトリの移動

cd ~/Documents   # ホーム配下の Documents に移動
cd ..            # 親ディレクトリへ
cd ./folder      # 相対パスで folder に移動
cd /usr/bin      # 絶対パスで移動

ヒント
~ は現在のユーザーのホームディレクトリを表します。
cd - を使うと直前のディレクトリに戻れます。

CDPATH でよく使うディレクトリへ素早く移動

シェルに検索パスを追加すると、フルパスを入力しなくても cd でアクセスできます。

export CDPATH=~/projects:/opt/tools
cd projXYZ   # ~/projects/projXYZ を自動検索

pwdls -d */ を組み合わせると、現在地とサブディレクトリを一度に確認できます。

pwd && ls -d */
ミス 原因 対処法
cd /var/tmp で失敗 パーミッション不足 su - で root に切り替える(sudo cd は無効)
cd ../ が想定外の場所に行く シンボリックリンク内にいる cd -P で物理パスを使う
cd で予期せぬ場所へ CDPATH が設定されている unset CDPATH で一時解除

2.2 ファイル・ディレクトリ一覧

ls              # カレントディレクトリのファイル一覧
ls -l           # 詳細表示(権限・サイズ・日時)
ls -a           # 隠しファイル (.dot ファイル) も表示
ls -R           # 再帰的に全サブディレクトリも表示

ls の主なオプション一覧

オプション 説明
-l パーミッション・オーナー・サイズ・日時を詳細表示
-a / --all ドットで始まる隠しファイルも表示
-h ファイルサイズを人が読みやすい単位(K/M/G)で表示
-t 最終更新時刻でソート
-S ファイルサイズでソート
-r ソート順を逆に
-F 種別識別文字を末尾に付ける(/=ディレクトリ、*=実行ファイル)
-1 1列表示
# 詳細・隠しファイル・人が読みやすいサイズを同時に表示
ls -lah --color

# よく使うオプションはエイリアスに登録すると便利
alias ll="ls -lah --color"
alias la="ls -aF"

2.3 ファイル・ディレクトリ作成

mkdir new_dir          # ディレクトリ作成
mkdir -p parent/child  # 親ディレクトリが無い場合は一括で作成
touch new_file.txt     # 空ファイル作成

2.4 ファイルのコピー・移動・削除

コマンド 機能
cp コピー cp src.txt dest.txt
mv 移動/名前変更 mv oldname.txt newname.txt
rm 削除 rm file.txt
rm -r ディレクトリの削除 rm -r mydir/

注意
rm -r は慎重に。誤ったデータ削除は元に戻せません。


3. テキストファイルを扱う

3.1 ファイル内容を見る

cat file.txt            # そのまま内容を表示
less file.txt           # ページャーで閲覧、`q` で終了
more file.txt           # `less` に比べ機能が少ないが使える
head file.txt          # 上部10行を表示
tail file.txt          # 下部10行を表示
tail -f logfile.log     # 継続的に新しい行を表示(監視)

3.2 テキスト検索

grep "検索ワード" file.txt
grep -i "Search" file.txt    # 大文字小文字無視
grep -r "word" ./          # 再帰的に検索
grep -v "exclude" file.txt  # 除外検索

パイプで組み合わせる
コマンドをつなげると強力です。

cat file.txt | grep "error" | wc -l

3.3 テキスト加工(sed / awk / sort / uniq)

  • sed(ストリームエディタ)

    sed -n '3p' file.txt        # 3行目だけ表示
    sed 's/old/new/g' file.txt  # 全行で old を new に置換
    
  • awk(テキスト処理言語)

    awk '{print $1}' file.txt          # 1列目だけ表示
    awk '/pattern/ {print $2}' file.txt # パターンに一致する行の2列目
    
  • sort / uniq

    sort file.txt > sorted.txt  # ソート
    uniq sorted.txt             # 重複行を削除
    sort file.txt | uniq -c    # 出現回数をカウント
    

3.4 ファイルの行数・サイズ確認

wc -l file.txt      # 行数
wc -w file.txt      # 文字数
wc -c file.txt      # バイト数
wc -m file.txt      # 文字数(マルチバイト対応)

3b. システム情報確認コマンド

uname でカーネル情報

uname -a   # OS・カーネルバージョン・アーキテクチャを一覧表示
uname -r   # カーネルバージョンのみ

free でメモリ使用量

free -h    # -h で K/M/G の人が読みやすい単位に変換

df でディスク使用状況

df -h      # マウントポイントごとに容量・使用率を表示

du でディレクトリサイズ調査

du -sh *          # カレントディレクトリ直下を一括取得
du -sh folder/    # 指定ディレクトリのサイズを確認

まとめて確認するワンライナーuname -r && free -h && df -h でシステム状態を素早く把握できます。


4. ファイル名や権限を理解する

4.1 権限を見る

ls -l file.txt

出力例:

-rw-r--r-- 1 user group 2048 Jul 12 10:32 file.txt
  • 第1文字はファイルタイプ(d:ディレクトリ, -:通常ファイル)
  • 9文字は権限(3 つの三文字ずつ)

4.2 権限を変更

chmod 755 script.sh   # 所有者 rwx, グループ rx, その他 rx
chmod u+x myfile      # 所有者に実行権限を追加
chmod -R 644 dir/     # ディレクトリとファイルを一括変更

4.3 所有者・グループを変更

chown user:user file.txt   # 所有者とグループを同時に変更
chown user file.txt        # 所有者のみ変更

5. シェルコマンドの便利な応用

5.1 変数と置換

MY_NAME="Alice"
echo "Hello, $MY_NAME!"

5.2 簡易的な if 文

if [ -f "$1" ]; then
    echo "$1 is a file."
else
    echo "$1 is not a file."
fi

5.3 for ループ

for FILE in *.txt; do
    echo "Processing $FILE"
done

5.4 コマンド置換

CURRENT_BRANCH=$(git branch --show-current)
echo "Current branch: $CURRENT_BRANCH"

6. プロセス管理

6.1 現在動いているプロセスを見る

ps aux

6.2 プロセスを検索

ps aux | grep firefox

6.3 プロセスを終了

kill -9 12345          # PID を使って強制終了
pkill firefox          # 名前で検索して終了

6.4 リソース使用情報

top          # インタラクティブな監視
htop         # より見やすいバージョン(インストールが必要)

7. ネットワーク関連コマンド

7.1 ホスト名・IP を確認

hostname
ifconfig           # legacy
ip addr             # 推奨

7.2 接続状況を確認

ping -c 4 google.com
traceroute google.com

7.3 端末からファイルを転送

scp localfile.txt user@remote:/path/
sftp user@remote     # 対話型
rsync -avz file.txt user@remote:/path/

7.4 SSH でサーバへ接続

ssh username@host.com                    # 基本接続
ssh -i ~/.ssh/id_rsa username@host.com   # 鍵認証
ssh -p 2222 username@host.com            # ポート指定

7.5 ファイルのダウンロード

wget http://example.com/file.tar.gz                      # ファイルをダウンロード
curl -O http://example.com/file.tar.gz                   # curl でダウンロード
curl -H "Authorization: Bearer TOKEN" https://api.example.com  # ヘッダー付きリクエスト

7.6 DNS 情報確認

nslookup example.com   # DNSレコード確認
dig example.com        # より詳細なDNS情報

8. パッケージ管理

8.1 Debian 系

sudo apt update
sudo apt upgrade
sudo apt install curl
sudo apt remove curl

8.2 RedHat 系

sudo yum update
sudo yum install curl
sudo yum remove curl

8.3 Arch 系

sudo pacman -Syu
sudo pacman -S curl
sudo pacman -R curl

9. シェルスクリプトの作成と実行

9.1 スクリプトサンプル

#!/usr/bin/env bash
# hello.sh - こんにちはスクリプト

echo "Hello, $1!"

9.2 実行権限を付与

chmod +x hello.sh

9.3 スクリプトを実行

./hello.sh World

9b. 便利ツール集

ツール 役割 使い方の例
htop インタラクティブなプロセス監視 htop
ncdu ディスク使用状況の可視化 ncdu /
tree ディレクトリをツリー表示 tree -L 2
bat cat の代替(シンタックスハイライト付き) bat README.md
fzf インタラクティブなfuzzy finder find . | fzf
rg(ripgrep) 高速な全文検索 rg -i "TODO" .
tig Gitのターミナルビューア tig

9c. コマンドを効率よく覚えるコツ

  • 実務に直結するコマンドから覚える:ls・cd・grep・cp・mv など日常的に使うものを優先
  • エイリアスを活用するalias ll='ls -lah' のように短縮すると自然に定着する
  • 作業フローごとに覚える:「ファイルを探す → 内容を確認する → 編集する」という流れで一連のコマンドを習得
  • コマンドの意味をイメージ化するgrep(Global Regular Expression Print)など語源を理解すると記憶が定着しやすい
  • 小さなスクリプトを書く:実際に動くものを作ることで体が覚える

10. よくある質問(FAQ)

質問 回答
ターミナルで「Permission denied」になるのはなぜ? ファイルやディレクトリに適切な権限がない場合。sudo で管理者権限を使う、または chmod で権限を変更。
cd で移動した後にパスが覚えていない。 pwd で現在のディレクトリを確認、pwd の後に cd - で前の場所へ戻る。
tar で圧縮解凍する方法は? 圧縮: tar -czvf archive.tar.gz dir/
解凍: tar -xzvf archive.tar.gz
grep で結果を新しいファイルに保存したい。 パイプでリダイレクト: grep "word" file.txt > result.txt
tophtop の違いは? htop はカラーリングやマウス操作ができ、インタラクティブにプロセスを選択・操作しやすい。
ターミナルを開いたときにデフォルトのシェルが sh になっている。 /etc/passwd で設定を確認、chsh -s /bin/bash username で Bash に変更。
sudo の意味は? 「スーパーユーザー(root)権限で実行する」こと。パッケージインストール・設定変更など管理者権限が必要な操作に使用します。
chmod 777 にしても大丈夫? 誰でも読み書き実行できる状態になるため、セキュリティ上好ましくありません。必要な権限のみ細かく設定することを推奨します。
&&|| の違いは? && は左側が成功した場合のみ右側を実行。|| は左側が失敗した場合に右側を実行します。例: mkdir dir && cd dir
cd -cd .. の違いは? cd .. は親ディレクトリへ移動。cd - は直前にいたディレクトリに戻ります(どんな階層でも1コマンドで戻れる)。

11. まとめ

Linux のコマンドラインは最初はとても広く感じるかもしれませんが、基本的な ファイル操作 → テキスト操作 → プロセス管理 → ネットワーク操作 → パッケージ管理 の順で学んでいけば、自然にスキルが積み上がります。
以下のポイントを意識して練習すると効率的です。

  1. 毎日少しずつ: 1 日 5 分、毎回同じコマンドを打ってみよう。
  2. 実際に作業: 例として自分のダウンロードフォルダを整理する、Git リポジトリをクローンする。
  3. エラーを恐れない: sudo rm -rf / は絶対にしないようにする(危険)。エラーは学びのチャンス。
  4. マニュアルを読む: man <command> でヘルプを確認。オンラインリファレンスも活用。
  5. ショートカット: ターミナルのショートカット(Ctrl+Dで終了、Ctrl+Cで中断)を覚える。

これらを実践すれば、コマンドラインに対する自信を持てるようになります。
それでは、新しい Linux 環境での冒険をスタートしてください! 🚀

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント