Linuxコマンド完全ガイド【エンジニア必修】基本操作からシェルスクリプトまで

Linuxとコマンドラインの操作は、エンジニアにとって避けては通れない必須スキルです。本記事では、Linux基本コマンド・シェルスクリプト・ファイル操作・パーミッション・プロセス管理・ネットワークツールを、エンジニア初心者でも理解できるように丁寧に解説します。

なぜエンジニアはLinuxを学ぶべきか

世界のサーバーのほぼすべてはLinux(またはUnix系OS)で動いています。AWSのEC2・Dockerコンテナ・GitHubのCI/CDパイプラインも内部はLinuxです。コマンドライン操作ができないと、本格的なバックエンド開発・インフラ構築・DevOpsは難しいのが現実です。

基本コマンド一覧

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

# 現在のディレクトリを表示
pwd

# ディレクトリ一覧表示
ls -la  # 隠しファイル含む詳細表示

# ディレクトリ移動
cd /home/user/projects
cd ..   # 親ディレクトリへ
cd ~    # ホームディレクトリへ

# ディレクトリ作成
mkdir my-project
mkdir -p parent/child/grandchild  # 再帰的に作成

# ファイルコピー・移動・削除
cp source.txt dest.txt
cp -r source_dir/ dest_dir/  # ディレクトリのコピー
mv old_name.txt new_name.txt
rm file.txt
rm -rf directory/  # ディレクトリごと削除(注意)

# ファイル内容表示
cat file.txt
less file.txt   # ページネーション付き表示
head -n 20 file.txt  # 先頭20行
tail -f /var/log/app.log  # リアルタイムでログ監視

検索・テキスト処理

# ファイル検索
find . -name "*.py" -type f
find /var/log -name "*.log" -mtime -7  # 7日以内に更新

# テキスト検索(grep)
grep "error" app.log
grep -r "TODO" ./src/  # ディレクトリ再帰検索
grep -n "function" main.py  # 行番号付き

# 置換(sed)
sed 's/old/new/g' file.txt
sed -i 's/http:/https:/g' config.yml  # ファイルを直接書き換え

# 列処理(awk)
awk '{print $1, $3}' access.log  # 1列目と3列目を表示
awk -F',' '{sum += $2} END {print sum}' data.csv

パーミッション(権限)管理

# パーミッション確認
ls -l file.sh
# -rwxr-xr-- 1 user group 1234 May 3 10:00 file.sh
# 読み取り(r=4) 書き込み(w=2) 実行(x=1)

# パーミッション変更
chmod 755 script.sh   # 所有者:rwx、グループ:r-x、その他:r-x
chmod +x script.sh    # 実行権限を追加
chmod 600 .env        # 秘密ファイルは所有者のみ読み書き

# 所有者変更
chown user:group file.txt
chown -R nginx:nginx /var/www/html/

プロセス管理

# プロセス一覧
ps aux
ps aux | grep node  # Node.jsプロセスを確認

# リソース使用状況リアルタイム監視
top
htop  # より見やすいtop(要インストール)

# プロセス終了
kill -9 1234     # PID 1234を強制終了
pkill -f node    # 'node'を含むプロセスをすべて終了

# バックグラウンド実行
nohup ./server.sh &
# プロセスIDを確認
echo $!

ネットワークコマンド

# 接続確認
ping google.com
curl -I https://tech-athletes.com  # HTTPレスポンスヘッダー確認

# ポート確認
netstat -tlnp   # リスニングポートを確認
ss -tlnp        # netstatの現代版(高速)

# ファイル転送(SSH)
scp local.txt user@server:/home/user/
rsync -avz ./src/ user@server:/var/www/app/

シェルスクリプト入門

#!/bin/bash
# deploy.sh - シンプルなデプロイスクリプト

set -e  # エラーで即時終了
set -u  # 未定義変数の使用でエラー

APP_DIR="/var/www/myapp"
BACKUP_DIR="/var/backups/myapp"

echo "=== デプロイ開始 ==="

# バックアップ作成
echo "バックアップ中..."
cp -r $APP_DIR $BACKUP_DIR/$(date +%Y%m%d_%H%M%S)

# 最新コードを取得
cd $APP_DIR
git pull origin main

# 依存関係インストール&ビルド
pnpm install --frozen-lockfile
pnpm build

# サービス再起動
systemctl restart myapp

echo "=== デプロイ完了 ==="

まとめ:Linuxコマンド習得のロードマップ

Step 1(初週):ls・cd・mkdir・cp・mv・rm・cat・grepをマスター
Step 2(2週目):パーミッション・プロセス管理・find・sedを習得
Step 3(1ヶ月):シェルスクリプト・cron・SSH・ネットワークコマンドを実践
Step 4(実践):DockerとAWS EC2上でLinux環境を本番運用

関連記事

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です