学習

Linuxコマンド入門|エンジニアが毎日使う基本コマンド50選

5分で読めます
Tech Study Work編集部
Linuxコマンドラインターミナルシェルインフラ
Linuxコマンド入門|エンジニアが毎日使う基本コマンド50選

LinuxコマンドラインがエンジニアのCORE SKILLである理由

サーバーサイド開発・インフラ構築・データ処理・デプロイ作業など、バックエンドエンジニアの業務のほとんどはLinux/Unixコマンドラインで行われます。DockerコンテナもLinux・シェルスクリプトもLinuxベースです。WSL2(Windows Subsystem for Linux)の普及でWindowsユーザーもLinux環境を使えるようになり、コマンドライン操作は「ITエンジニアの基礎体力」として職種を問わず求められます。

クラウドサービス(AWS・GCP・Azure)のサーバー管理はほぼすべてLinuxで行われます。EC2インスタンスに接続してログを確認したり、Dockerコンテナの中でコマンドを実行したり、CI/CDパイプラインのデバッグをしたりと、Linuxコマンドを知らないとエンジニアの仕事の大半でつまずきます。エンジニア転職の技術面接でもLinuxコマンドの知識を問う質問は頻出で、最低限の習熟が必要です。

  • インフラエンジニア:サーバー設定・監視・障害対応でLinuxが中心
  • バックエンドエンジニア:デプロイ作業・ログ確認・環境構築でLinuxを日常使用
  • フロントエンドエンジニア:npm/yarn・Git操作・ビルドスクリプトでシェルを利用

ファイル操作の基本コマンド

最初に習得すべきファイル操作コマンドは「ls(ファイル一覧)」「cd(ディレクトリ移動)」「pwd(現在のディレクトリ表示)」「mkdir(ディレクトリ作成)」「touch(ファイル作成)」「cp(コピー)」「mv(移動・リネーム)」「rm(削除)」「cat(ファイル内容表示)」「less/more(ページング表示)」の10コマンドです。特にrm -rfは「ディレクトリごと完全削除」するため、本番環境での実行前には必ず二重確認する習慣をつけましょう。

実務でよく使うオプションをまとめます。ls -laで隠しファイルを含む詳細一覧表示、cp -r dir1 dir2でディレクトリを再帰的にコピー、find . -name "*.log" -mtime +7で7日以上前のログファイルを検索できます。これらのオプションを組み合わせることで、GUIでは時間のかかる操作も数秒で完了します。

この記事を読んでいるあなたへ

具体的なサービス選びで迷っているなら、編集部が厳選した比較記事もご参考ください。

スクールを比較する →

テキスト処理コマンド:grep・sed・awk

ログ解析・データ加工で欠かせないテキスト処理コマンドを押さえましょう。「grep(パターン検索)」はgrep -r "error" /var/log/でログ内のエラーを再帰的に検索できます。「sed(ストリームエディタ)」はsed 's/old/new/g' file.txtでファイル内の文字列を一括置換できます。「awk(データ加工)」はawk '{print $1, $3}' file.txtで特定のカラムだけを抽出できます。これら3つを組み合わせると複雑なログ解析・データ変換をワンライナーで実行できます。

実際の活用例として、アクセスログからエラー件数を集計する場合:grep "500" access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10のように複数のコマンドをパイプ(|)でつなぐことで、複雑なデータ処理を一行で実現できます。この「パイプラインの思想」はUnixの設計哲学の核心であり、Linuxコマンドを使いこなす上で最も重要な概念です。

プロセス管理とシステム監視

本番環境の監視・トラブルシューティングで使うプロセス管理コマンドは「ps aux(プロセス一覧)」「top/htop(リアルタイムリソース監視)」「kill/pkill(プロセス終了)」「df -h(ディスク使用量)」「du -sh(ディレクトリサイズ)」「free -h(メモリ使用量)」「netstat -tlnp(ポート使用状況)」「lsof(開いているファイル・ポート確認)」です。サーバーが重い原因の特定には「top → CPU使用率の高いプロセスを確認 → kill」の流れが基本です。

  • CPU問題の調査:topでCPU使用率が高いプロセスを特定→strace/perf で詳細分析
  • メモリ問題の調査:free -hでメモリ残量確認→cat /proc/meminfo で詳細→プロセスごとのメモリ使用量はps aux --sort=-%mem
  • ディスク問題の調査:df -hで全体使用量→du -sh /* で各ディレクトリのサイズ→ncduで対話的に確認
  • ネットワーク問題の調査:netstat/ss でポート使用状況→tcpdump でパケットキャプチャ→curl -v でHTTP通信の詳細確認

権限管理・SSHの基礎

Linuxのファイル権限は「rwx」(読み取り・書き込み・実行)の組み合わせで表現されます。chmod 755 script.shでスクリプトに実行権限を付与し、chown user:group fileでファイルの所有者を変更できます。SSHによるリモートサーバー接続はssh -i ~/.ssh/key.pem user@server-ipが基本形です。公開鍵認証の設定・~/.ssh/configによる接続設定の簡略化を習得すると、日常的なサーバー操作が大幅に効率化します。

~/.ssh/configの設定例として、「Host myserver → HostName 192.168.1.100 → User ubuntu → IdentityFile ~/.ssh/mykey.pem」と記述することで、以後ssh myserverだけで接続できます。複数のサーバーやAWS環境を管理するエンジニアにとって、SSH Config管理は毎日の作業効率を大きく左右します。

シェルスクリプトで作業を自動化する

繰り返し行う作業はシェルスクリプト(.sh)で自動化しましょう。「デプロイの一連コマンドをスクリプト化」「定期的なログローテーション」「バックアップ処理の自動化」などが代表例です。シェルスクリプトの基本は「変数定義」「if文(条件分岐)」「for/whileループ」「関数定義」です。cronジョブと組み合わせると「毎日深夜2時に自動バックアップ」などの定期実行タスクを簡単に設定できます。

シェルスクリプトのベストプラクティスとして「set -euo pipefailをスクリプト先頭に書く(エラーで即座に停止する設定)」「変数は常にダブルクォートで囲む(スペース含む文字列の安全な扱い)」「処理の開始・終了をログに出力する(デバッグを容易にする)」が重要です。エラーの多いスクリプトは本番で大きな事故を引き起こすため、これらの基本を守ることが肝心です。

関連する比較記事

この記事に関連するサービス比較をチェック

インフラ・クラウドスキルを伸ばす

Linuxを含むインフラ技術を体系的に学べるサービスを比較しましょう。

学習サービスを比較する

よくある質問

この記事をシェアする