Linux の世界へようこそ!
初心者が最初に踏み出すべきは、コマンドライン(ターミナル)です。
ターミナルがあれば、GUI で操作できない細かい設定や自動化が可能になり、システム管理や開発が格段に効率化します。
本記事では、最も頻繁に使われる Linux コマンドを分かりやすく紹介し、実際に手を動かすためのサンプルコードやコツを交えて、コマンドライン操作をマスターする道筋を示します。
1. ターミナルを起動する
まずはターミナルを開くことから始めましょう。
- Ubuntu/Debian 系:
Ctrl+Alt+T - Fedora/RedHat 系:
Alt+F2→gnome-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 を自動検索
pwd と ls -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 |
top と htop の違いは? |
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 日 5 分、毎回同じコマンドを打ってみよう。
- 実際に作業: 例として自分のダウンロードフォルダを整理する、Git リポジトリをクローンする。
- エラーを恐れない:
sudo rm -rf /は絶対にしないようにする(危険)。エラーは学びのチャンス。 - マニュアルを読む:
man <command>でヘルプを確認。オンラインリファレンスも活用。 - ショートカット: ターミナルのショートカット(
Ctrl+Dで終了、Ctrl+Cで中断)を覚える。
これらを実践すれば、コマンドラインに対する自信を持てるようになります。
それでは、新しい Linux 環境での冒険をスタートしてください! 🚀

コメント