Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Essential Linux Commands for Cloud Developers: From Basics to Advanced

2025年10月03日に「Dev.to」が公開したITニュース「Essential Linux Commands for Cloud Developers: From Basics to Advanced」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

システムエンジニアを目指す初心者が知るべきLinuxコマンドを解説。クラウド開発の基礎から応用まで、ファイル操作、ネットワーク、システム管理、自動化などの必須コマンドと具体的な使用例を網羅的に紹介し、実践的なスキル習得を支援する。

ITニュース解説

システムエンジニアを目指す上で、Linuxの操作は避けて通れない基本的なスキルだ。特にクラウド環境でシステムを構築したり運用したりする際には、サーバーOSとしてLinuxが広く利用されているため、コマンドラインからの操作能力は必須となる。ここでは、クラウド開発者が日常的に使うLinuxコマンドの基本から応用までを解説する。

まず、基本的なファイル操作とシステム情報の確認から始める。cdコマンドはカレントディレクトリを移動する際に用い、例えばcd /var/logと入力すればログが格納されているディレクトリへ移動できる。lsはディレクトリの内容を一覧表示するコマンドで、ls -lとすると詳細な情報を表示する。現在のディレクトリの位置を知りたい場合はpwdを実行する。新しいディレクトリを作成するにはmkdir /dataのようにmkdirを使い、ファイルをコピーする場合はcp file.txt /data/のようにcpを、移動する場合はmv file.txt /data/のようにmvを使用する。不要なファイルを削除するにはrm file.txtを実行する。

ファイルの内容を確認・編集するためのコマンドも重要だ。cat file.txtはファイルの内容を一度に全て表示する。長いファイルをスクロールしながら見たい場合はless file.txtが便利だ。リアルタイムでログの追跡をしたい時にはtail -f app.logを使うと、ファイルに追加される内容を継続的に表示できる。ファイルを編集する際にはnano config.yamlvi config.yamlのようなテキストエディタを使う。nanoは初心者にも扱いやすいが、viはより高機能で多くのシステムに標準で搭載されているため、慣れておくと非常に役立つ。

システムの状態やトラブルの原因を探るためのログ関連コマンドも頻繁に利用する。journalctl -xeはsystemdというサービス管理システムが生成する詳細なシステムログを表示する。/var/log/syslogのような特定のログファイルをリアルタイムで監視するにはtail -f /var/log/syslogが役立つ。ハードウェア関連の問題を調査する際には、カーネルのメッセージを表示するdmesgが有効な場合がある。認証に関するログはcat /var/log/auth.logで確認できる。大量のログの中から特定のキーワードを探す場合はgrep "ERROR" logfile.logのようにgrepコマンドを使うと効率的だ。

ユーザー管理とファイルのアクセス権限の設定も、システムのセキュリティと安定運用には不可欠な作業だ。新しいユーザーを作成するにはadduser usernameを、そのユーザーのパスワードを設定・変更するにはpasswd usernameを使用する。特定のユーザーに管理者権限(sudo)を与えたい場合はusermod -aG sudo userと実行する。現在ログインしているユーザー名を知るにはwhoami、ユーザーIDや所属グループを知るにはidを使う。ファイルやスクリプトを実行可能にするにはchmod +x script.shのようにchmodコマンドで権限を変更し、ファイルやディレクトリの所有者や所有グループを変更するにはchown user:group file.txtのようにchownコマンドを使う。

システムのリソース状況を把握するコマンドも重要だ。df -hはディスクの空き容量と使用状況を分かりやすく表示する。free -mはメモリの使用状況をメガバイト単位で示す。uptimeはシステムの稼働時間や平均負荷を表示し、topはCPUやメモリの使用率が高いプロセスをリアルタイムで監視できる。ps auxは現在実行中のすべてのプロセスを一覧表示する。

次に、より高度なクラウドやDevOpsの作業で役立つコマンド群を見ていこう。

ネットワークの設定や接続状況を確認するコマンドは、システムのトラブルシューティングにおいて非常に重要だ。ip aはネットワークインターフェースとそのIPアドレスを表示し、ip rはルーティングテーブル、つまり通信の経路を表示する。netstat -tulnp(あるいは代替としてss)は、システム上でどのポートが利用されているか、どのサービスが待機しているかを確認できる。外部のウェブサービスとの疎通確認にはcurl https://example.comを使ってHTTPリクエストを送信したり、telnet host 80で特定のポートへの接続テストを行ったりする。インターネットへの接続を確認するにはping 8.8.8.8のようにpingコマンドで通信を試み、traceroute google.comで特定のホストまでのネットワーク経路を追跡できる。DNS(ドメイン名とIPアドレスの変換)の情報を調べたい場合はdig domain.comnslookup domain.comが役立つ。さらに、nmap hostは対象ホストの開いているポートをスキャンするツールだが、システムにインストールされている必要がある。

プロセスの管理やリソースの監視には、より詳細な情報を提供するツールがある。htoptopよりも視覚的に分かりやすく、プロセスを管理しやすい高機能な監視ツールだが、これもインストールが必要な場合がある。問題のあるプロセスを強制終了したい場合はkill -9 PIDのようにkillコマンドを使う。コマンドの実行優先度を設定するにはnice -n 10 cmdのようにniceコマンドを利用する。

ソフトウェアのインストールや管理はパッケージマネージャーを通じて行う。UbuntuやDebianベースのシステムではaptコマンドが使われる。sudo apt update && sudo apt upgradeでシステムのパッケージ情報を更新し、インストールされているパッケージを最新の状態にする。新しいソフトウェアをインストールするにはapt install htopのように実行し、不要なパッケージを削除するにはapt remove <pkg>を使う。dpkg -lはインストールされているすべてのパッケージを一覧表示する。特定のコマンドがどこにインストールされているかを知りたい場合はwhich <command>が役立つ。RHELやCentOSなどのシステムではyumdnf、openSUSEではzypperといった異なるパッケージマネージャーを使用する。

リモートサーバーへのアクセスとファイル転送にはSSH関連のコマンドが不可欠だ。ssh user@ip-addressはリモートサーバーに安全に接続するためのコマンドだ。ローカルのファイルをリモートにコピーするにはscp file.txt user@host:/dirを使い、rsync -avz /src/ /dest/は効率的にファイルを同期する際に非常に便利だ。SSH接続のセキュリティを高めるために、公開鍵認証方式で使う鍵ペアを生成するにはssh-keygenを、生成した公開鍵をリモートサーバーに登録するにはssh-copy-id user@hostを利用する。

ディスクやファイルシステムの管理も重要な作業だ。lsblkはシステムに接続されているブロックデバイス(ディスクなど)の一覧を表示する。新しいディスクをシステムに認識させ、利用可能にするにはmount /dev/sdb1 /mnt/dataのようにmountコマンドを使う。df -Thはディスクの使用状況に加えてファイルシステムの種類も表示し、du -sh *はカレントディレクトリ内の各ディレクトリやファイルのサイズを合計して分かりやすく表示する。

現代のLinuxシステムでは、サービス管理にsystemdが広く使われている。systemctl status nginxはNginxのような特定のサービスの稼働状況を確認する。サービスを開始するにはsystemctl start nginx、システム起動時に自動的にサービスが起動するように設定するにはsystemctl enable nginxを実行する。特定のサービスに関連するログだけを表示したい場合はjournalctl -u nginxが便利だ。

これらのコマンドは、クラウド環境での作業を自動化するためのシェルスクリプトにも利用される。例えば、システムを更新し、Nginxサービスを再起動するスクリプトは次のように書ける。#!/bin/bashでシェルスクリプトであることを宣言し、sudo apt update && sudo apt upgrade -yでシステムを更新、sudo systemctl restart nginxでNginxを再起動する。このスクリプトはchmod +x update_and_restart.shで実行権限を付与し、./update_and_restart.shで実行できる。定期的にタスクを実行したい場合はcrontab -eを使ってcronジョブを設定する。envコマンドで環境変数を表示することもできる。

これらのLinuxコマンドを習得することは、クラウド環境でシステムを管理する上での大きな武器となる。例えば、ssh ec2-user@ip 'df -h'と入力すれば、リモートのEC2インスタンスに接続してディスクの空き容量をすぐに確認できる。ローカルからリモートの仮想マシン(VM)のログをコピーしたい場合はscp ec2-user@ip:/var/log/app.log ./logs/を使い、リモートサーバー上で特定のサービスを再起動するにはssh user@host 'sudo systemctl restart nginx'と実行できる。

このように、Linuxコマンドはクラウド開発者が日々の業務で直面する多様な課題を解決するための強力なツールだ。アプリケーションのデバッグからシステムの自動化、インフラストラクチャの管理に至るまで、これらのコマンドが作業の効率性、安定性、そしてセキュリティの基盤となる。

関連コンテンツ

関連IT用語

関連ITニュース