こんにちは、インフラエンジニアのryuです。
今回の記事では、Linuxでよく使うコマンドを40個紹介します。lsやpwd、cd、mkdirなどの基本操作から、ログ調査やサーバー管理で役立つコマンドまでまとめました。
Linuxを学び始めると、コマンドの多さに驚きませんか。参考書を開いても知らないコマンドが次々と出てきて、すべて暗記しなければいけないように感じる方もいると思います。
しかし、最初から全部を完璧に覚える必要はありません。よく使うコマンドを、使う場面と一緒に覚えることが大切です。
私はエンジニアとして10年ほどLinuxサーバーを扱ってきましたが、日常的に使うコマンドはある程度決まっています。まずはこの記事の40個を知り、その中でも自分がよく使うものから手を動かして覚えていきましょう。
Linuxコマンドとは?¶
Linuxコマンドとは、ターミナルやコンソールからLinuxへ指示を出すための文字列です。ファイルの作成、ディレクトリの移動、ログの検索、ネットワークの確認などを、キーボードだけで実行できます。
たとえば、現在のディレクトリにあるファイルを確認する場合は、次のように入力します。
ls
コマンドには、動作を変更するオプションや、操作対象を示す引数を付けられます。
ls -la /var/log
この例では、lsがコマンド、-laがオプション、/var/logが引数です。最初は難しく見えますが、コマンド・オプション・引数の順番を意識すると読みやすくなります。
Linuxでよく使うコマンド40個の一覧¶
まずは、この記事で紹介する40個を一覧で確認しておきましょう。役割ごとに分けると、何のために使うコマンドなのか整理しやすくなります。
| 分類 | コマンド | 主な用途 |
|---|---|---|
| 移動・確認 | ls |
ファイルやディレクトリの一覧を表示する |
| 移動・確認 | pwd |
現在いるディレクトリを表示する |
| 移動・確認 | cd |
作業するディレクトリを移動する |
| ファイル操作 | mkdir |
ディレクトリを作成する |
| ファイル操作 | rmdir |
空のディレクトリを削除する |
| ファイル操作 | touch |
空ファイルを作成する |
| ファイル操作 | cp |
ファイルやディレクトリをコピーする |
| ファイル操作 | mv |
ファイルを移動する、名前を変更する |
| ファイル操作 | rm |
ファイルやディレクトリを削除する |
| ファイル操作 | ln |
ハードリンクやシンボリックリンクを作る |
| 内容確認 | cat |
ファイルの内容を表示する |
| 内容確認 | less |
長いファイルを1画面ずつ確認する |
| 内容確認 | head |
ファイルの先頭を表示する |
| 内容確認 | tail |
ファイルの末尾を表示する |
| 検索・加工 | grep |
文字列を含む行を検索する |
| 検索・加工 | find |
ファイルやディレクトリを検索する |
| 検索・加工 | wc |
行数、単語数、文字数を数える |
| 検索・加工 | sort |
行を並べ替える |
| 検索・加工 | uniq |
重複した行をまとめる |
| 検索・加工 | cut |
指定した列を切り出す |
| 検索・加工 | awk |
列単位で抽出や集計を行う |
| 検索・加工 | sed |
文字列の置換や行の加工を行う |
| 入出力 | echo |
文字列や変数の内容を表示する |
| 入出力 | tee |
画面表示とファイル保存を同時に行う |
| プロセス | ps |
実行中のプロセスを確認する |
| プロセス | top |
CPUやメモリの使用状況を確認する |
| プロセス | kill |
プロセスへ終了などのシグナルを送る |
| システム | free |
メモリの使用量を確認する |
| システム | df |
ファイルシステムの空き容量を確認する |
| システム | du |
ファイルやディレクトリの使用量を確認する |
| 権限 | chmod |
パーミッションを変更する |
| 権限 | chown |
所有者や所有グループを変更する |
| 圧縮・保存 | tar |
複数のファイルをまとめて保存・展開する |
| 情報確認 | date |
日付と時刻を表示する |
| 情報確認 | history |
過去に実行したコマンドを確認する |
| 情報確認 | man |
コマンドのマニュアルを表示する |
| ネットワーク | ip |
IPアドレスや経路情報を確認する |
| ネットワーク | ping |
通信相手までの疎通を確認する |
| リモート操作 | ssh |
別のLinuxサーバーへ接続する |
| リモート操作 | scp |
SSHを使ってファイルを転送する |
一覧を見ただけでは、なかなか使い方までイメージできませんよね。ここからは、実際のコマンド例を交えながら用途別に解説します。
ディレクトリの移動と確認で使うLinuxコマンド¶
Linuxを操作するときは、今どこにいて、そこに何があるのかを確認するところから始まります。まずはpwd、ls、cdの3つを覚えましょう。
pwd・ls・cdの基本¶
pwdは現在地、lsはディレクトリの中身を表示します。cdは作業するディレクトリを移動するコマンドです。
pwd
ls -la
cd /var/log
ls -laでは、隠しファイルを含む詳細情報を確認できます。1つ上へ戻る場合はcd ..、ホームディレクトリへ戻る場合はcd ~です。
実務では、対象ディレクトリへ移動したあとにpwdとls -laを実行し、操作場所を確認します。単純ですが、別の場所にあるファイルを誤って変更する事故を防げます。
パスの考え方が不安な方は、【関連記事】Linuxの絶対パスと相対パスの違いも確認してみてください。
ファイルとディレクトリを操作するLinuxコマンド¶
次は、ファイルやディレクトリを作成、コピー、移動、削除するコマンドです。設定ファイルを扱うときにも欠かせません。
mkdir・rmdir・touchで作成する¶
mkdirはディレクトリ、touchは空ファイルを作成します。rmdirは空のディレクトリだけを削除できます。
mkdir -p practice/logs
touch practice/sample.txt
rmdir practice/logs
mkdir -pを使うと、途中のディレクトリもまとめて作成できます。
cp・mv・rmでコピー、移動、削除する¶
cpはコピー、mvは移動や名前変更、rmは削除に使います。
cp sample.txt sample.txt.bak
mv sample.txt practice.txt
rm practice.txt
私は本番サーバーの設定を変更する前に、cpでバックアップを取るようにしています。Linuxでは削除したファイルを簡単に元へ戻せないため、rm -rfは対象パスを確認してから実行してください。
lnでリンクを作る¶
ln -sを使うと、別のファイルやディレクトリを参照するシンボリックリンクを作れます。
ln -s /var/log/nginx/access.log access.log
長いパスにあるファイルへ、短い名前でアクセスしたいときに便利です。
ファイルの内容を確認するLinuxコマンド¶
短いファイルと長いファイルでは、適した表示方法が異なります。cat、less、head、tailを使い分けましょう。
cat・less・head・tailの使い分け¶
catはファイル全体、lessは長い内容を1画面ずつ表示します。headは先頭、tailは末尾だけを確認するコマンドです。
cat /etc/hosts
less /var/log/messages
head -n 5 users.csv
tail -n 20 application.log
ログをリアルタイムで監視する場合はtail -f application.logを使います。終了するときはCtrl + Cを押してください。
文字列の検索と加工で使うLinuxコマンド¶
Linuxでは、複数のコマンドをパイプでつなぎ、必要な情報だけを取り出せます。検索と加工は、ログ調査で特によく使います。
grep・findで検索する¶
grepはファイルの中身、findはファイルやディレクトリそのものを検索します。
grep -n "ERROR" application.log
find /var/log -name "*.log"
詳しいオプションは、【関連記事】Linuxのgrepコマンドの使い方で解説しています。
wc・sort・uniqで数える¶
wc -lは行数を数えます。sortとuniq -cを組み合わせると、同じ値の出現回数を集計できます。
cut -d ' ' -f 1 access.log | sort | uniq -c | sort -nr
この例では、アクセスログの1列目を取り出し、出現回数が多い順に表示します。
cut・awk・sedで加工する¶
cutは指定した列を切り出し、awkは条件指定や計算を行えます。sedは文字列の置換に向いています。
cut -d ',' -f 2 users.csv
awk -F ',' '$3 >= 80 {print $1, $3}' scores.csv
sed 's/old/new/g' sample.txt
awkを詳しく学びたい方は、【関連記事】Linuxのawkコマンドの使い方も参考にしてください。
画面出力とファイル保存で使うLinuxコマンド¶
echoは文字列や変数の内容を表示します。リダイレクトを使えば、表示内容をファイルへ保存できます。
echo "first line" > sample.txt
echo "second line" >> sample.txt
>は上書き、>>は末尾への追記です。既存ファイルへ>を使うと内容が消えるため注意してください。
teeは、結果を画面へ表示しながらファイルにも保存します。
ip addr | tee network-info.txt
標準入力と標準出力の仕組みは、Linuxの標準入力・標準出力を解説した記事で詳しく紹介しています。
プロセスとサーバーの状態を確認するLinuxコマンド¶
サーバーが重い、ディスク容量が少ないといった問題では、プロセスやリソースを確認します。
ps・top・killでプロセスを確認する¶
ps auxはプロセスの一覧、topはCPUやメモリの状態をリアルタイムで表示します。終了させる場合は、対象のプロセスIDを確認してkillを実行します。
ps aux | grep nginx
kill 1234
free・df・duで使用量を確認する¶
free -hはメモリ、df -hはファイルシステム全体の空き容量を表示します。大きなディレクトリを探す場合はdu -shが便利です。
free -h
df -h
du -sh /var/log/*
実務では、df -hで容量が少ない領域を見つけ、du -shで原因を絞り込みます。
権限変更とファイル保存で使うLinuxコマンド¶
chmod・chownで権限と所有者を変更する¶
chmodはパーミッション、chownは所有者や所有グループを変更します。
chmod 644 sample.txt
chown ryu:developers sample.txt
意味を理解せずに777を設定するのは避けましょう。必要なユーザーへ、必要な権限だけを与えることが基本です。
tarでファイルをまとめる¶
tarは複数のファイルをまとめて保存・展開するコマンドです。
tar -czf logs.tar.gz logs/
tar -xzf logs.tar.gz
設定ファイルやログをまとめて退避するときに使います。
日付・履歴・マニュアルを確認するLinuxコマンド¶
dateは日付と時刻、historyは過去に実行したコマンドを表示します。
date +%Y%m%d_%H%M%S
history | grep ssh
パスワードなどをコマンドへ直接書くと、履歴に残る可能性があるので注意してください。
使い方を忘れた場合は、man lsやls --helpで確認できます。すべてを暗記するより、必要なときに調べられることの方が大切です。
ネットワークとリモート接続で使うLinuxコマンド¶
ip・pingでネットワークを確認する¶
ip addrはIPアドレス、ip routeは経路情報を表示します。pingは、通信相手まで疎通できるかを確認するコマンドです。
ip addr
ip route
ping -c 4 192.168.1.1
pingが成功しても、WebやSSHなど目的のサービスが利用できるとは限りません。ネットワーク調査の一段階として使いましょう。
ssh・scpでリモート操作する¶
sshは別のLinuxサーバーへ接続し、scpはSSHを利用してファイルを転送します。
ssh ryu@192.168.1.10
scp sample.txt ryu@192.168.1.10:/home/ryu/
接続先のIPアドレス、ユーザー名、転送先のパスを実行前に確認してください。
Linuxコマンドを効率よく覚える方法¶
40個を一度に暗記する必要はありません。使う目的とセットで、少しずつ覚えていきましょう。
作業の流れで覚える¶
ディレクトリを確認するならpwdとls、ログを見るならtailとgrep、容量を調べるならdfとduというように組み合わせます。作業の流れに沿って使うと、コマンドが自然に定着します。
補完と履歴を活用する¶
途中まで入力してTabキーを押すと、コマンドやファイル名を補完できます。上矢印キーを押せば、直前のコマンドを呼び出せます。
短時間でも実際に入力する¶
1日10分でもよいので、ディレクトリを作り、ファイルをコピーし、内容を検索してみてください。エンジニア歴が長くなっても、知らないオプションはその都度調べます。
Linuxのコマンドの使い方を学びたい方¶
Linuxのコマンドの使い方を学びたい方は、インフラ学習サイトのInfraAcademyがおすすめです。
InfraAcademyでは、Linuxが体系的に学習できます。ディレクトリとパス、ファイル操作、アクセス権限、Vim、ユーザー管理、ネットワークまで、実際にコマンドを入力しながら進められます。
ブラウザ上でコマンドを練習したい方は、Linuxのコマンド練習用サイトInfraAcademyの紹介も参考にしてください。
まとめ¶
今回は、Linuxでよく使うコマンドを40個紹介しました。
最初は、pwd、ls、cdで現在地を確認し、mkdir、touch、cp、mvでファイルを操作するところから始めるのがおすすめです。その後、grepやfindによる検索、psやdfによるサーバーの状態確認へ進みましょう。
Linuxコマンドは、英単語のように一覧だけを丸暗記するものではありません。実際に困った場面で使い、結果を確認しながら少しずつ身につけるものです。
この記事の40個をすべて覚えることを最初の目標にせず、まずは今日3個だけ実行してみてください。その小さな積み重ねが、Linuxを自在に操作する力につながります。