なぜエンジニアにLinuxコマンドが必要なのか
世界のサーバー市場の90%以上がLinuxで動いています。Webサービス・クラウドインフラ・コンテナ(Docker/Kubernetes)はすべてLinux上で動作しています。エンジニアとして本番環境の障害対応・デプロイ・ログ確認・パフォーマンスチューニングを行うためには、Linuxコマンドラインの操作が必須です。
フロントエンドエンジニアであっても、GitHubのCI/CD・Vercelのデプロイログ確認・WSL2(Windows Subsystem for Linux)での開発環境構築など、日常的にターミナルを使う場面があります。本記事では、実務で実際によく使うコマンドを優先して紹介します。
ファイル・ディレクトリ操作の必須コマンド
日常的に最も使うファイル操作コマンドを解説します。
基本操作:
ls -la:ファイル一覧を詳細表示(-a 隠しファイルも表示・-l 詳細表示)
cd [ディレクトリ]:ディレクトリ移動(cd ~ でホーム・cd .. で一つ上)
pwd:現在のディレクトリを表示
mkdir -p dir1/dir2:ディレクトリを再帰的に作成
rm -rf [ディレクトリ]:ディレクトリを再帰的に削除(注意!)
cp -r [元] [先]:ディレクトリを再帰的にコピー
mv [元] [先]:移動・リネーム
touch [ファイル]:空ファイル作成
テキスト操作:
cat [ファイル]:ファイル内容を表示
less [ファイル]:ページング表示(q で終了・/ で検索)
head -n 20 [ファイル]:先頭20行を表示
tail -n 100 -f [ファイル]:末尾100行を表示しリアルタイム更新(ログ確認に必須)
grep -r 'パターン' . :再帰的にパターン検索
grep -v '除外文字' :指定文字を含まない行を表示
wc -l [ファイル]:行数を表示
プロセス・システム管理コマンド
サーバー管理・障害対応で必須のプロセス管理コマンドを解説します。
プロセス確認:
ps aux:動作中の全プロセスを表示
top:システムリソースとプロセスをリアルタイム表示
htop:topのインタラクティブ版(別途インストール必要)
kill [PID]:プロセスを終了(-9 で強制終了)
killall [プロセス名]:プロセス名で終了
ディスク・メモリ確認:
df -h:ディスク使用量を人間が読みやすい形式で表示
du -sh [ディレクトリ]:ディレクトリのサイズを表示
free -h:メモリ使用量を表示
uptime:システムの稼働時間とロードアベレージを表示
ネットワーク確認コマンド
障害対応・接続確認でよく使うネットワーク系コマンドを解説します。
接続確認:
ping [ホスト]:接続確認(-c 3 で3回送信)
curl -I [URL]:HTTPレスポンスヘッダを表示
curl -X POST -H 'Content-Type: application/json' -d '{"key":"value"}' [URL]:APIリクエスト
wget [URL]:ファイルダウンロード
ss -tlnp:リッスン中のポートを表示(netstatの代替)
netstat -tlnp:ポートと接続状態を表示
nslookup [ドメイン]:DNS解決を確認
traceroute [ホスト]:経路を追跡
シェルスクリプトと便利なテクニック
エンジニアの生産性を高めるシェルの便利テクニックを紹介します。
パイプ(|):コマンドの出力を別コマンドに渡す
例:cat access.log | grep 'ERROR' | wc -l (エラーログの件数を数える)
リダイレクト:
command > file(上書き)・command >> file(追記)
command 2>&1(標準エラーを標準出力にマージ)
よく使うシェルの構文:
for i in {1..10}; do echo $i; done (ループ)
if [ -f file ]; then echo 'exists'; fi (ファイル存在確認)
$(command):コマンドの実行結果を変数に代入
便利なショートカット:
Ctrl+C:実行中のコマンドを中断
Ctrl+Z:コマンドをバックグラウンドに移動
Ctrl+R:コマンド履歴を検索
!!:直前のコマンドを再実行
!$:直前のコマンドの最後の引数
現役エンジニアが実務で頻繁に使うLinuxコマンド厳選30
実際の開発現場でよく使われるLinuxコマンドを厳選して紹介します。これらをマスターすれば日常的なサーバー操作を自信を持って行えます。
- ファイル操作系:ls -la(詳細リスト)、cp -r(ディレクトリごとコピー)、mv(移動・名前変更)、rm -rf(強制削除※注意)、mkdir -p(中間ディレクトリも作成)
- テキスト処理系:grep -r(再帰検索)、awk(フィールド処理)、sed(置換処理)、cut(列抽出)、sort | uniq(重複排除)が実務で活躍します。
- プロセス管理系:ps aux(プロセス一覧)、kill -9(強制終了)、top/htop(リアルタイム監視)、nohup(バックグラウンド実行)
- ネットワーク系:curl(HTTP通信)、wget(ファイルダウンロード)、netstat -tulpn(ポート確認)、ssh(リモート接続)、scp(ファイル転送)
- 権限・ユーザー管理系:chmod 755(権限変更)、chown(所有者変更)、sudo(特権実行)、useradd/usermod(ユーザー管理)