Linuxコマンド入門完全ガイド【2026年版】

Linuxコマンドを使いこなせば、サーバ管理や開発効率が劇的に向上します。今すぐ基本コマンドから実践的なテクニックまで学び、あなたの作業を自動化しましょう。
本記事では、Linuxコマンドの基礎から応用まで、2026年現在の最新環境に対応した完全ガイドを提供します。初心者でも理解できる丁寧な解説と、実務で即役立つ具体例を豊富に掲載しています。この記事を読み終える頃には、Linuxコマンドを使った作業効率が飛躍的に向上しているはずです。
目次
- Linuxコマンドとは何か
- 基本的なLinuxコマンド20選
- ファイル操作コマンドの完全マスター
- ネットワーク管理に必須のコマンド
- システム監視とパフォーマンス最適化
- 実践的なテクニックと応用例
- よくある質問と回答
- まとめと次のステップ
Linuxコマンドとは何か
Linuxコマンドは、テキストベースでLinuxシステムを操作するためのツールです。グラフィカルユーザーインターフェース(GUI)がなくても、コマンドを使って効率的に作業できます。特にサーバ管理や開発現場では、コマンドラインインターフェース(CLI)が必須のスキルとなっています。
Linuxコマンドの特徴は以下の通りです:
- 高速な処理:GUIよりも圧倒的に高速な操作が可能
- 自動化:繰り返し作業をスクリプト化して自動実行
- リモート管理:SSH経由で遠隔地のサーバを操作
- 柔軟性:パイプやリダイレクトで複雑な処理を組み合わせ可能
2026年現在、クラウドサービスの普及により、Linuxサーバの需要はさらに高まっています。AWS、GCP、Azureなどのクラウドプラットフォームでは、ほとんどの操作がコマンドラインで行われています。
基本的なLinuxコマンド20選
Linuxコマンドを学ぶ上で、まずは基本的な20個のコマンドをマスターしましょう。これらのコマンドを使いこなせれば、日常的な操作の80%はカバーできます。
| コマンド | 用途 | 基本的な使い方 | 実用例 |
|---|---|---|---|
| ls | ファイル・ディレクトリの一覧表示 | ls [オプション] [ディレクトリ] | ls -la /home/user |
| cd | ディレクトリの移動 | cd [ディレクトリパス] | cd /var/log |
| pwd | 現在のディレクトリを表示 | pwd | pwd |
| mkdir | 新しいディレクトリの作成 | mkdir [ディレクトリ名] | mkdir projects |
| rm | ファイル・ディレクトリの削除 | rm [オプション] [ファイル] | rm -rf temp/ |
| cp | ファイル・ディレクトリのコピー | cp [オプション] [ソース] [ destination] | cp file.txt /backup/ |
| mv | ファイル・ディレクトリの移動・名前変更 | mv [オプション] [ソース] [ destination] | mv oldname.txt newname.txt |
| cat | ファイルの内容表示 | cat [ファイル] | cat /etc/passwd |
| less | ファイルの内容をページ単位で表示 | less [ファイル] | less /var/log/syslog |
| grep | テキスト検索 | grep [オプション] [パターン] [ファイル] | grep “error” /var/log/syslog |
| find | ファイル・ディレクトリの検索 | find [パス] [条件] | find /home -name “*.txt” |
| chmod | ファイル・ディレクトリのパーミッション変更 | chmod [モード] [ファイル] | chmod 755 script.sh |
| chown | ファイル・ディレクトリの所有者変更 | chown [所有者:グループ] [ファイル] | chown user:group file.txt |
| ps | 実行中のプロセス表示 | ps [オプション] | ps aux | grep nginx |
| top | システムリソースの監視 | top | top |
| kill | プロセスの終了 | kill [オプション] [PID] | kill -9 1234 |
| tar | ファイルの圧縮・解凍 | tar [オプション] [ファイル] | tar -xzvf archive.tar.gz |
| wget | ファイルのダウンロード | wget [URL] | wget https://example.com/file.zip |
| curl | HTTPリクエストの送信 | curl [オプション] [URL] | curl -X POST https://api.example.com |
| man | コマンドのマニュアル表示 | man [コマンド] | man ls |
これらの基本コマンドをマスターすることで、Linuxシステムの基本的な操作が可能になります。各コマンドの詳細な使い方については、後述のセクションで解説します。
コマンドの実行環境を整える
Linuxコマンドを学ぶには、実際に手を動かすことが最も重要です。以下の方法で、すぐに実践できる環境を整えましょう。
1. 仮想マシンのセットアップ
WindowsやMacでも、仮想マシンを使ってLinux環境を構築できます。
- VirtualBox:無料で使える仮想化ソフトウェア
- VMware Workstation Player:有料だが高性能
- Hyper-V:Windows Pro/Enterpriseに標準搭載
おすすめのLinuxディストリビューション:
- Ubuntu:初心者に最適な使いやすさ
- CentOS Stream:サーバ向けの安定性
- Debian:高い安定性とセキュリティ
2. クラウドサービスの利用
AWS、GCP、Azureなどのクラウドサービスでは、無料枠でLinuxサーバを利用できます。
- AWS EC2:t2.microインスタンスで無料利用可能
- Google Cloud Platform:f1-microインスタンスで無料
- Azure Virtual Machines:B1Sインスタンスで無料
クラウドサービスを使えば、インターネット経由でどこからでもLinuxコマンドを実行できます。
3. WSL(Windows Subsystem for Linux)
Windows 10/11では、WSLを使ってネイティブのLinux環境を利用できます。
- WSL 2:高いパフォーマンスと完全なLinuxカーネル
- Ubuntu on WSL:Microsoft Storeから簡単にインストール
WSLを使えば、Windows上でLinuxコマンドを実行でき、開発環境としても非常に便利です。
ファイル操作コマンドの完全マスター
Linuxにおけるファイル操作は、システム管理の基礎中の基礎です。ここでは、ファイルやディレクトリの操作に関する重要なコマンドとテクニックを詳しく解説します。
ファイルとディレクトリの基本操作
1. ファイルの作成と編集
touchコマンド:空のファイルを作成します。
touch file.txt
nanoエディタ:簡単なテキスト編集に便利です。
nano file.txt
vimエディタ:高度なテキスト編集に適しています。
vim file.txt
2. ファイルの表示
catコマンド:ファイルの内容を一気に表示します。
cat file.txt
lessコマンド:ファイルの内容をページ単位で表示します。
less /var/log/syslog
head/tailコマンド:ファイルの先頭または末尾を表示します。
head -n 10 file.txt # 先頭10行 tail -f /var/log/syslog # リアルタイムで末尾を表示
3. ファイルの検索
findコマンド:ファイルやディレクトリを検索します。
# 名前で検索 find /home -name "*.txt" # サイズで検索 find /var -size +10M # 変更時刻で検索 find /etc -mtime -7
locateコマンド:高速なファイル検索(事前にupdatedbが必要)
locate file.txt
4. ファイルの圧縮と解凍
tarコマンド:ファイルやディレクトリをアーカイブします。
# 圧縮 tar -czvf archive.tar.gz /path/to/directory # 解凍 tar -xzvf archive.tar.gz
gzip/gunzipコマンド:単一ファイルの圧縮・解凍
gzip file.txt # file.txt.gzを作成 gunzip file.txt.gz # 解凍
zip/unzipコマンド:Windows互換の圧縮・解凍
zip archive.zip file1.txt file2.txt unzip archive.zip
5. ファイルの権限管理
Linuxでは、ファイルやディレクトリに対して所有者、グループ、その他のユーザーに対して異なる権限を設定できます。
chmodコマンド:ファイルの権限を変更します。
# 数値形式(r=4, w=2, x=1) chmod 755 script.sh # 所有者:rwx, グループ:r-x, その他:r-x # 記号形式 chmod u+x script.sh # 所有者に実行権限を追加 chmod g-w file.txt # グループから書き込み権限を削除
chownコマンド:ファイルの所有者を変更します。
chown user:group file.txt
umaskコマンド:新規ファイルのデフォルト権限を設定します。
umask 022 # 新規ファイルは644(rw-r--r--)に設定
ファイル操作の実践的なテクニック
1. パイプとリダイレクト
パイプ(|):コマンドの出力を別のコマンドに渡します。
# ps auxの出力をgrepでフィルタリング ps aux | grep nginx # lsの出力をlessで表示 ls -l | less
リダイレクト(>、>>、<):コマンドの入出力をファイルにリダイレクトします。
# 標準出力をファイルに保存 echo "Hello" > file.txt # 標準出力をファイルに追記 echo "World" >> file.txt # 標準入力をファイルから受け取る sort < file.txt
teeコマンド:出力をファイルに保存しつつ、画面にも表示します。
ls -l | tee list.txt
2. ファイルの比較
diffコマンド:2つのファイルの違いを表示します。
diff file1.txt file2.txt
cmpコマンド:2つのファイルの最初の違いを表示します。
cmp file1.txt file2.txt
md5sum/sha256sumコマンド:ファイルのハッシュ値を計算します。
md5sum file.txt sha256sum file.txt
3. ファイルの同期
rsyncコマンド:効率的なファイル同期を行います。
# ローカル間の同期 rsync -avz /source/ /destination/ # リモートサーバとの同期 rsync -avz -e ssh user@remote:/path/ /local/path/
scpコマンド:ファイルを安全にコピーします。
scp file.txt user@remote:/path/
ネットワーク管理に必須のコマンド
Linuxシステムのネットワーク管理には、多くのコマンドが用意されています。ここでは、ネットワークの設定、監視、トラブルシューティングに必須のコマンドを詳しく解説します。
ネットワークインターフェースの管理
1. ネットワークインターフェースの確認
ipコマンド:ネットワークインターフェースの情報を表示します。
# 全てのインターフェースを表示 ip addr show # 特定のインターフェースの詳細を表示 ip addr show eth0 # ルーティングテーブルを表示 ip route show
ifconfigコマンド:古いシステムで使用されるネットワークインターフェースの情報表示コマンド(現代のLinuxでは非推奨)
ifconfig
nmcliコマンド:NetworkManagerを操作するコマンド
# 接続の一覧を表示 nmcli connection show # Wi-Fiネットワークのスキャン nmcli device wifi list
2. ネットワークインターフェースの設定
/etc/network/interfaces:Debian系ディストリビューションのネットワーク設定ファイル
# 例:静的IPアドレスの設定
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4/etc/netplan/*.yaml:Ubuntuのネットワーク設定ファイル(Netplan)
# 例:静的IPアドレスの設定
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]systemd-networkd:systemdベースのシステムで使用されるネットワーク管理
# 設定ファイルの例(/etc/systemd/network/20-wired.network) [Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8
ネットワーク接続のテスト
1. pingコマンド
pingコマンド:ネットワーク接続をテストします。
ping example.com ping -c 4 8.8.8.8 # 4回のみpingを実行
2. tracerouteコマンド
tracerouteコマンド:パケットが宛先に到達するまでの経路を表示します。
traceroute example.com
mtrコマンド:tracerouteとpingを組み合わせたツール
mtr example.com
3. nslookup/digコマンド
nslookupコマンド:DNSサーバに問い合わせを行います。
nslookup example.com
digコマンド:DNSクエリを詳細に表示します。
dig example.com
hostコマンド:DNSクエリを簡単に表示します。
host example.com
ネットワークサービスの管理
1. SSHサーバの設定と管理
sshd_configファイル:SSHサーバの設定ファイル(/etc/ssh/sshd_config)
# 例:基本的なSSHサーバの設定 Port 22 Protocol 2 PermitRootLogin no PasswordAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
sshコマンド:リモートサーバに接続します。
ssh user@remote-server ssh -p 2222 user@remote-server # カスタムポートで接続
scpコマンド:ファイルを安全にコピーします。
scp file.txt user@remote-server:/path/ scp -r directory/ user@remote-server:/path/ # ディレクトリを再帰的にコピー
ssh-keygenコマンド:SSH鍵ペアを生成します。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh-copy-idコマンド:公開鍵をリモートサーバにコピーします。
ssh-copy-id user@remote-server
2. FTPサーバの設定と管理
vsftpd:安全なFTPサーバソフトウェア
# 設定ファイル(/etc/vsftpd.conf)の例 anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES pasv_min_port=40000 pasv_max_port=50000
ftpコマンド:FTPサーバに接続します。
ftp remote-server
lftpコマンド:高機能なFTPクライアント
lftp -e "mirror /remote/path /local/path" ftp://user:password@remote-server
3. HTTPサーバの設定と管理
Apache HTTP Server:人気のWebサーバソフトウェア
# 設定ファイル(/etc/apache2/apache2.conf)の例 ServerName example.com DocumentRoot /var/www/htmlOptions Indexes FollowSymLinks AllowOverride All Require all granted
Nginx:高性能なWebサーバソフトウェア
# 設定ファイル(/etc/nginx/nginx.conf)の例
worker_processes auto;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}
}curlコマンド:HTTPリクエストを送信します。
curl https://example.com
curl -X POST -d '{"key":"value"}' https://api.example.comwgetコマンド:Webページやファイルをダウンロードします。
wget https://example.com/file.zip wget -r https://example.com/ # 再帰的にダウンロード
ネットワークセキュリティの強化
1. ファイアウォールの設定
iptables:Linuxの標準的なファイアウォールツール
# ルールの表示 iptables -L -n -v # ルールの追加 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -j DROP # ルールの保存(iptables-persistentパッケージが必要) iptables-save > /etc/iptables/rules.v4
ufw(Uncomplicated Firewall):iptablesを簡単に操作するためのツール
# ufwの有効化 ufw enable # ルールの追加 ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw default deny incoming ufw default allow outgoing
firewalld:RHEL系ディストリビューションで使用されるファイアウォールツール
# firewalldの有効化 systemctl enable firewalld systemctl start firewalld # ゾーンの表示 firewall-cmd --list-all # サービスの追加 firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent firewall-cmd --reload
2. ネットワークトラフィックの監視
tcpdumpコマンド:ネットワークパケットをキャプチャします。
tcpdump -i eth0 -w capture.pcap tcpdump -i eth0 port 80
tsharkコマンド:Wiresharkのコマンドライン版
tshark -i eth0 -w capture.pcap
iftopコマンド:リアルタイムでネットワークトラフィックを表示します。
iftop -i eth0
nloadコマンド:ネットワーク帯域幅の使用状況を表示します。
nload eth0
3. セキュリティスキャン
nmapコマンド:ネットワークのポートスキャンを行います。
nmap -sV example.com # サービスバージョンを表示 nmap -p 1-65535 example.com # 全ポートをスキャン
netstatコマンド:ネットワーク接続やポートの状態を表示します。
netstat -tuln # リスニングポートを表示 netstat -an # 全ての接続を表示
ssコマンド:netstatの代替コマンド(より高速)
ss -tuln # リスニングポートを表示 ss -s # 統計情報を表示
システム監視とパフォーマンス最適化
Linuxシステムの安定稼働には、システム監視とパフォーマンス最適化が不可欠です。ここでは、システムリソースの監視、ログ管理、パフォーマンスチューニングに関する重要なコマンドとテクニックを解説します。
システムリソースの監視
1. CPU使用率の監視
topコマンド:リアルタイムでシステムリソースを監視します。
top
htopコマンド:topの改良版で、より使いやすいインターフェースを提供します。
htop
mpstatコマンド:CPU使用率の詳細な統計情報を表示します。
mpstat -P ALL 1 # 全てのCPUの統計を1秒間隔で表示
vmstatコマンド:システム全体のパフォーマンス統計を表示します。
vmstat 1 # 1秒間隔で表示
2. メモリ使用率の監視
freeコマンド:メモリとスワップの使用状況を表示します。
free -h # 人間が読みやすい形式で表示
vmstatコマンド:メモリ使用率も表示します。
vmstat -s
smemコマンド:メモリ使用量をプロセスごとに表示します。
smem -r # RSS(Resident Set Size)でソート
3. ディスクI/Oの監視
iostatコマンド:ディスクI/Oの統計情報を表示します。
iostat -x 1 # 拡張モードで1秒間隔で表示
iotopコマンド:リアルタイムでディスクI/Oを監視します。
iotop -o # I/Oを行っているプロセスのみ表示
dfコマンド:ディスク容量の使用状況を表示します。
df -h # 人間が読みやすい形式で表示
duコマンド:ディレクトリやファイルのサイズを表示します。
du -sh /var/log # /var/logディレクトリの合計サイズを表示
システムログの管理
1. syslogの管理
rsyslog:Linuxの標準的なログ管理システム
設定ファイル:/etc/rsyslog.conf
# 例:特定のログを別のファイルに保存 if $programname == 'nginx' then /var/log/nginx/nginx.log if $programname == 'nginx' then stop
journalctlコマンド:systemdのジャーナルログを表示します。
journalctl -u nginx # nginxサービスのログを表示 journalctl -f # リアルタイムでログを表示 journalctl --since "2024-01-01" --until "2024-01-31" # 日付範囲を指定
2. ログローテーション
logrotate:ログファイルのローテーションと圧縮を行います。
設定ファイル:/etc/logrotate.conf
# 例:nginxのログローテーション設定(/etc/logrotate.d/nginx)
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx
endscript
}パフォーマンス最適化
1. プロセスの最適化
nice/reniceコマンド:プロセスの優先度を変更します。
nice -n 10 command # 優先度を10に変更してコマンドを実行 renice 15 -p 1234 # PID 1234のプロセスの優先度を15に変更
tasksetコマンド:プロセスを特定のCPUコアに割り当てます。
実践的なテクニックと応用例
Linuxコマンドの活用は、単純なファイル操作やプロセス管理を超えて、システムの効率化やトラブルシューティングに大きく貢献します。例えば、findコマンドを応用して、特定の条件に合致するファイルを一括で処理することで、作業時間を大幅に短縮できます。また、grepと組み合わせることで、ログファイルから特定のパターンを抽出し、問題の原因を迅速に特定することも可能です。これらのコマンドは、システム管理者や開発者にとって欠かせないツールとなっています。
さらに、Linuxコマンドを活用する際には、パイプ(|)やリダイレクト(>、>>)を駆使することで、複数のコマンドを組み合わせた柔軟な処理が実現できます。例えば、ps aux | grep nginxといったコマンドを実行することで、実行中のnginxプロセスを簡単に確認できます。このように、コマンドの組み合わせ次第で、より高度な処理を効率的に行うことが可能です。
実践的な応用例としては、以下のようなシーンが挙げられます。
- システムリソースの監視:
topやhtopを使用してCPUやメモリの使用状況をリアルタイムで監視し、パフォーマンスのボトルネックを特定します。
よくある質問と回答
Linuxコマンドに関する疑問やトラブルシューティングについて、初心者から実務者まで幅広く対応したFAQを用意しました。実際の運用で役立つ回答をご確認ください。
Q1. Linuxコマンドを学ぶ際の効果的な方法は?
A1. Linuxコマンドを習得するには、実践を重視した学習が効果的です。まずは基本的なコマンド(ls、cd、pwdなど)を覚え、実際にターミナルで操作しながら理解を深めましょう。オンラインのチュートリアルやハンズオン形式の演習を活用するのも良い方法です。また、日常的にLinuxを使用する環境(例えばWSLやクラウドサーバー)でコマンドを試すことで、実務に近い感覚を養うことができます。公式ドキュメントや信頼性の高い技術書も参照しながら、段階的にスキルを向上させてください。
Q2. Linuxコマンドの実行権限エラーが発生した場合の対処法は?
A2. 実行権限エラーは、主にファイルやディレクトリに対するアクセス権限が不足している場合に発生します。例えば「Permission denied」というメッセージが表示された際は、chmodコマンドで実行権限を付与するか、chownで所有者を変更します。また、管理者権限が必要なコマンドの場合は、sudoを使用して実行します。ただし、sudoの乱用はセキュリティリスクを高めるため、必要最小限の権限で運用するよう心がけましょう。権限に関する詳細は、man chmodやman chownで確認できます。
Q3. Linuxコマンドの履歴を活用する方法は?
A3. Linuxのコマンド履歴は、historyコマンドで確認でき、過去に実行したコマンドを再利用したり編集したりすることができます。履歴から特定のコマンドを検索するには、Ctrl+Rを押してインタラクティブな検索モードに切り替え、入力したキーワードに一致するコマンドを呼び出します。また、履歴ファイル(通常は~/.bash_history)を直接編集することで、不要なコマンドを削除したり、頻繁に使用するコマンドを追加したりすることも可能です。履歴のサイズを制限するには、HISTSIZEやHISTFILESIZE環境変数を設定します。
Q4. Linuxコマンドの実行結果をファイルに保存する方法は?
A4. Linuxコマンドの実行結果をファイルに保存するには、リダイレクト機能を使用します。例えば、コマンドの出力をファイルに上書き保存するには>を、追記するには>>を使用します(例:ls -l > output.txt)。また、エラー出力を別ファイルに保存するには2>を使用します(例:ls /nonexistent 2> error.log)。さらに、標準出力とエラー出力の両方を1つのファイルに保存するには&>を使用します(例:ls /nonexistent &> combined.log)。保存したファイルはcatやlessで確認できます。
まとめと次のステップ
Linuxコマンド入門の第一歩として、基本的な操作からファイル管理、ユーザー権限、ネットワーク設定まで、幅広い機能を学んできました。コマンドラインインターフェースは、GUIでは実現できない柔軟性と効率性を提供し、システム管理や自動化において強力なツールとなります。特に、ファイル操作やテキスト処理、プロセス管理などの基本コマンドを習得することで、Linux環境での作業が大幅に効率化されるでしょう。また、シェルスクリプトを活用することで、繰り返し作業の自動化や複雑な処理の効率化が可能になります。
次に進むためのステップとして、実務に即した応用的なコマンドや、システム管理に関する知識を深めることをおすすめします。例えば、ログ管理やセキュリティ設定、ネットワークトラブルシューティングなど、より高度なトピックに取り組むことで、実践的なスキルを磨くことができます。さらに、Linuxディストリビューションごとの特性や、クラウド環境での活用方法についても理解を広げると、幅広いシーンで活躍できるでしょう。継続的な学習と実践を通じて、Linuxコマンドの活用範囲を広げていってください。
本記事はInfra Academy編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
編集ポリシーはこちら




