
目的(リンク押下で詳細を確認) | コマンド |
---|---|
現在のディレクトリを表示 | pwd |
現在のディレクトリ内のファイルやフォルダを一覧で表示 | ls |
ディレクトリを移動 | cd [フォルダ名] |
新しいディレクトリを作成 | mkdir [フォルダ名] |
ファイルやディレクトリを削除 | rm -rf [ファイル名 or フォルダ名] |
ファイルをコピーする | cp [コピー元] [コピー先] |
ファイルを移動 or リネームする | mv [旧ファイル名] [新ファイル名] |
ファイルの内容を表示 | cat [ファイル名] |
ファイルの内容をページごとに表示 | less [ファイル名] |
空ファイルを作成 or タイムスタンプを更新 | touch [ファイル名] |
文字列を検索 | grep "[検索ワード]" [ファイル名] |
ファイルを検索 | find [検索開始パス] -name "[パターン]" |
ファイルのパーミッションを変更 | chmod [パーミッション] [ファイル名] |
所有者を変更 | chown [ユーザー]:[グループ] [ファイル名] |
プロセスを確認 | ps aux |
実行中プロセスのリアルタイム監視 | top |
プロセスを終了 | kill [PID] |
ディスク使用状況を確認 | df -h |
フォルダの容量を確認 | du -sh [フォルダ名] |
ファイル・ディレクトリを圧縮・解凍 | tar -czvf [アーカイブ名].tar.gz [対象フォルダ] |

pwd
現在の作業ディレクトリ(カレントディレクトリ)の絶対パスを表示します。
「print working directory」の略で、ターミナルで今どこのディレクトリにいるかを確認するために使用します。
pwd
- コマンドを実行した時点での「カレントディレクトリ(作業しているフォルダ)」の絶対パス(ルートディレクトリからのパス)を出力します
- スクリプト内でディレクトリ確認をしたいときや、cd で移動したあと現在位置を知りたいときなどに便利です
cd コマンドと合わせて頻繁に使われる、超基本コマンドです。
ls
指定したディレクトリの中にあるファイルやディレクトリを一覧表示します。
「list segments(リスト表示)」の略とも言われ、Linuxを操作する上で最も基本的なコマンドのひとつです。
( 現在のディレクトリ内のファイルやフォルダを一覧で表示 )
ls
( 任意のディレクトリの中身を表示 )
ls ディレクトリ名
( 隠しファイル(ドットファイル)を含めて、詳細情報(パーミッション・サイズ・更新日時など)を表示 )
ls -la
-
-a
隠しファイル(.から始まるファイル)も表示する -
-l
詳細情報(パーミッション・所有者・サイズなど)を一覧表示 -
-h
サイズを読みやすい形式(KB, MBなど)で表示(-lと併用することが多い) -
-R
サブディレクトリ内も再帰的に表示 -
-t
更新日時順に並び替えて表示 -
-S
ファイルサイズ順に並び替えて表示
cd
ディレクトリ(フォルダ)を移動するためのコマンドです。
「change directory(ディレクトリを変更する)」の略です。
( 指定したディレクトリに移動 )
cd ディレクトリ名
( 1つ上の階層に移動 )
cd ..
( ファイルシステムの最上位階層に移動 )
cd /
( 自分のホームディレクトリに移動 )
cd ~
-
-
直前にいたディレクトリに戻る(トグルのように行き来できます) -
./
カレントディレクトリ(今いる場所)を意味します(実質何もしない) -
../..
2階層上のディレクトリに移動します
mkdir
新しいディレクトリ(フォルダ)を作成するためのコマンドです。
「make directory(ディレクトリを作成する)」の略です。
( 指定した名前のディレクトリを現在の場所に作成 )
mkdir ディレクトリ名
( 中間のディレクトリが存在しない場合でも、すべて一括で作成 )
mkdir -p 親ディレクトリ/子ディレクトリ
使用例 : mkdir -p src/components/common
-
-p
存在しない中間ディレクトリを含めて一括で作成する。既存ディレクトリがあってもエラーにならない -
-v
作成したディレクトリを出力する(verbose モード)
rm
ファイルやディレクトリを削除するためのコマンドです。
「remove(取り除く)」の略です。
( 指定したファイルを削除 )
rm ファイル名
( ディレクトリごと削除(中のファイルやサブディレクトリも含む) )
rm -r ディレクトリ名
( 確認メッセージなしで強制的にディレクトリを削除 )
rm -rf ディレクトリ名
-
-r
ディレクトリ内を再帰的に削除する(recursive) -
-f
削除確認なしで強制的に削除する(force) -
-i
削除のたびに確認メッセージを表示する(interactive) -
-v
削除する対象を表示する(verbose)
rm は「ごみ箱」に移動するわけではなく「完全に削除」するため、-f オプションを安易に使うのは危険です。
まずは rm -i や rm -r を使って、慣れてから -rf を使うようにしましょう。
特に sudo rm -rf / のようなコマンドはシステムを破壊する危険があるため絶対に実行しないでください。
一度削除すると基本的に元には戻せないため、特にディレクトリ削除時には注意が必要です。
cp
ファイルやディレクトリをコピーするコマンドです。
「copy(コピーする)」の略です。
オリジナルのファイルは残ったまま、新しい場所や名前で複製されます。
( ファイルを別名でコピー )
cp コピー元ファイル コピー先ファイル
( index.html を index_backup.html としてコピー )
使用例 : cp index.html index_backup.html
( 指定したファイルを、別のディレクトリにコピー )
cp コピー元ファイル ディレクトリ
( 現在のディレクトリにある script.js を backup フォルダにコピー )
使用例 : cp script.js ./backup/
-
-r
ディレクトリを再帰的にコピー(ディレクトリコピー時に必須) -
-i
上書きする前に確認(interactive) -
-u
コピー先にファイルがない or 古いときだけコピー(update) -
-v
実行中にコピーされるファイルを表示(verbose) -
-p
パーミッション・所有者・タイムスタンプも保持してコピー
mv
ファイルやディレクトリを移動したり、名前を変更するためのコマンドです。
「move(移動する)」の略です。
ファイルの「移動」と「リネーム」をどちらもこのコマンドで行います。
( ファイルの名前を変更 )
mv 元ファイル名 新しいファイル名
( old_name.txt を new_name.txt に名前変更 )
使用例 : mv old_name.txt new_name.txt
( ファイルを別のディレクトリに移動 )
mv ファイル名 ディレクトリ名
( report.md を docs ディレクトリに移動 )
使用例 : mv report.md ./docs/
( ディレクトリの名前を変更 )
mv ディレクトリ名 新しいディレクトリ名
( old_folder を new_folder に名前変更 )
使用例 : mv old_folder new_folder
-
-i
移動先に同名ファイルがあった場合、上書き前に確認(interactive) -
-r
上書き確認なしで強制的に移動(force) -
-v
移動処理の内容を表示(verbose) -
-n
同名ファイルがあっても上書きしない(no-clobber)
cat
ファイルの中身を表示したり、複数のファイルを連結したりするコマンドです。
「concatenate(連結する)」の略です。
( 指定したファイルの内容を表示 )
cat ファイル名
( hello.txt の中身を標準出力(画面)に表示 )
使用例 : cat hello.txt
-
-n
各行の先頭に行番号を付けて表示 -
-b
空白行を除いて行番号を付ける -
-E
行末に $ マークを表示(改行の位置が分かる) -
-s
連続した空白行を1行にまとめる(squeeze) -
-T
タブを ^I で表示する(タブの可視化)
less
less コマンドは、長いファイルを1画面ずつスクロールして表示するための「ページャー」です。
cat では一気に表示されてしまう長いファイルでも、less を使えば快適に閲覧できます。
( 指定したファイルの中身を1画面ずつスクロールして表示 )
less ファイル名
( long.txt の中身を1画面ずつスクロールして表示 )
使用例 : less long.txt
-
-N
行番号を表示 -
-S
横スクロール可能(行の折り返しをしない) -
-+F
末尾追従モード(tail -f のような動き)を無効 -
-X
終了後に画面をクリアしない
less 使用中の操作キー一覧
-
j または ↓
1行下へスクロール -
k または ↑
1行上へスクロール -
space
1ページ下へ -
b
1ページ上へ(back) -
G
最後の行へ移動(Go to bottom) -
g
最初の行へ移動(go to top) -
/文字列
文字列を下方向に検索 -
?文字列
文字列を上方向に検索 -
n
次の検索結果へジャンプ -
N
前の検索結果へジャンプ -
q
less を終了する(quit)
他のコマンドとの連携例
標準出力の結果を less に渡して見やすくできます。
( 実行中のプロセス一覧をスクロールしながら確認 )
ps aux | less
( git の差分を1画面ずつ確認 )
git diff | less
q で終了するのを知らないと焦る人が多いので、覚えておこう。
touch
touch コマンドは主に以下の目的で使われます
- 空のファイルを作成する
- 既存ファイルの「最終更新時刻」を変更する
( 空のファイルを作成 )
touch ファイル名
( hello.txt という空のファイルを作成します(すでに存在する場合は、更新日時のみ変更されます) )
touch hello.txt
-
-c または --no-create
ファイルが存在しない場合は作成せず、存在する場合のみ更新する -
-t [[CC]YY]MMDDhhmm[.ss]
指定した日時にタイムスタンプを変更する(例:touch -t 202501011200 file.txt) -
-a
最終アクセス時刻のみを変更 -
-m
最終修正時刻のみを変更 -
-r 参照ファイル
他のファイルのタイムスタンプをコピーして適用する
空のファイルを複数作ってからスクリプトや演習で使うことが多いです。学習環境の準備や動作確認のテストに最適です。
grep
grep は、ファイルや出力の中から「特定の文字列を検索」するコマンドです。
大量のログやテキストの中から、必要な情報だけを抽出したいときに大活躍します。
読み方は「グレップ」。語源は「global/regular expression/print」の略。
grep 検索文字列 ファイル名
( server.log の中から “error” を含む行だけを表示 )
grep "error" server.log
( ファイル出力をパイプで渡して「404」を検索 )
cat ファイル名 | grep "404"
( 大文字・小文字を無視して検索(Error も error もヒット) )
grep -i "error" ファイル名
( 「DEBUG」を含まない行を表示(逆マッチ) )
grep -v "DEBUG" ファイル名
( src ディレクトリ以下すべてのファイルを再帰的に検索 )
grep -r "TODO" ./src
-
-i
大文字・小文字を区別しない(ignore-case) -
-v
検索に一致しない行を表示(逆マッチ) -
-r
ディレクトリを再帰的に検索(recursive) -
-n
一致した行の行番号も表示 -
-c
一致する行数をカウント -
-l
一致するファイル名だけ表示(内容は表示しない) -
-E
拡張正規表現を使用できる(egrep 相当) -
--color=auto
一致箇所を色付きで表示(見やすい!)
複雑な検索には awk や sed などと組み合わせることも可能です。正規表現を使えばより高度な検索が可能になります。
find
指定したディレクトリの中から「条件に合うファイル・ディレクトリ」を再帰的に検索できます。
find 検索開始ディレクトリ 検索条件
( カレントディレクトリ以下から main.c を探す )
find . -name "main.c"
( 拡張子 .conf のファイルを /etc 以下から探す )
find /etc -name "*.conf"
( 名前が "backup" のディレクトリを探す )
find . -type d -name "backup"
( 10MB を超えるファイルを探す )
find . -type f -size +10M
( 最終更新が 1日以内のファイルを探す )
find . -mtime -1
( .log ファイルを探して削除する(要注意) )
find . -name "*.log" -delete
-
-name "パターン"
ファイル名やディレクトリ名で検索(ワイルドカード * 使用可) -
-iname
-name の大文字・小文字を無視した版 -
-type f
通常ファイルのみ対象(f = file) -
-type d
ディレクトリのみ対象(d = directory) -
-size +10M
サイズが 10MB を超えるファイルを検索(M=MB, k=KB, G=GB) -
-mtime -n
n日以内に更新されたファイル(-n は「以内」、+n は「より前」) -
-user ユーザー名
所有者が指定ユーザーのファイルを検索 -
-perm 644
パーミッションが 644 のファイルを検索 -
-exec
条件に合ったファイルに対してコマンドを実行(下記で解説)
chmod
ファイルやディレクトリの「アクセス権(パーミッション)」を変更するために使います。
( sample.txt のアクセス権を 644 に設定 )
chmod 644 sample.txt
( 実行権限をすべてのユーザーに追加 )
chmod +x script.sh
- 数値表記:r(読み取り)=4, w(書き込み)=2, x(実行)=1 を合計して指定
- 例)644 → 所有者:rw-, グループ:r--, その他:r--
- 記号表記:
-
+
権限を追加 -
-
権限を削除 -
=
権限を明示的に設定
-
Linuxにおけるパーミッション管理はセキュリティの基本。よく使うので覚えておこう!
chown
ファイルやディレクトリの「所有者(user)」や「所有グループ(group)」を変更するために使います。
( 所有者を user1 に変更 )
chown user1 file.txt
( 所有者を user1、グループを group1 に変更 )
chown user1:group1 file.txt
( ディレクトリ配下すべての所有者を変更(再帰的) )
chown -R user1:group1 /path/to/dir
-
-R
ディレクトリ内のすべてのファイルに対して適用(recursive)
所有者の変更には管理者権限(sudo)が必要です。
ps
実行中のプロセス情報を表示するコマンドです。
( 自分の端末で実行中のプロセスを表示 )
ps
( すべてのプロセスを詳細に表示(a:他ユーザー、u:ユーザー情報、x:端末なし) )
ps aux
( 同様に全プロセス表示(System V 形式) )
ps -ef
-
PID
プロセスID -
USER
実行ユーザー -
%CPU / %MEM
CPU / メモリ使用率 -
TIME
累積CPU時間 -
COMMAND
実行しているコマンド
top
リアルタイムでプロセスの情報を表示します。タスクマネージャー的存在。
( リアルタイムのプロセス情報を表示 )
top
-
q
終了 -
P
CPU使用率順に並び替え -
M
メモリ使用率順 -
k
プロセスをkillする -
u
特定ユーザーのプロセスに絞る
kill
指定したプロセスに「シグナル」を送って終了させるコマンドです。
( PIDが1234のプロセスを終了 )
kill 1234
( 強制終了させる(-9) )
kill -9 1234
-
kill
のシグナル種類-
-15
優しく終了(デフォルト) -
-9
強制終了(応答しないとき用)
-
-
ps
やtop
でPIDを確認してから使うのが一般的
df
ファイルシステムごとの「ディスク使用状況」を表示します。
( 人間に読みやすい単位(MB/GB)で表示 )
df -h
- ファイルシステム、使用済み容量、空き容量、使用率が確認できる
-
-T
ファイルシステムの種類も表示
du
「ディレクトリやファイルのサイズ」を表示します。
( カレントディレクトリの使用容量を表示 )
du -h
( /var/log 以下の各ディレクトリサイズを表示 )
du -h /var/log
( 合計サイズのみを表示 )
du -sh .
-
-h
人間にわかりやすい形式(KB/MB) -
-s
合計のみ(summary) -
-a
ファイルごとに表示
tar
複数のファイルを「アーカイブ(まとめる)」するためのコマンドです。オプションによって圧縮も可能。
( ディレクトリを tar.gz 形式で圧縮 )
tar -czf archive.tar.gz mydir/
( 圧縮ファイルを展開(解凍) )
tar -xzf archive.tar.gz
( 中身を一覧表示 )
tar -tzf archive.tar.gz
-
-c
作成(create) -
-x
展開(extract) -
-z
gzip 圧縮 / 解凍 -
-f
ファイル名を指定 -
-t
中身の一覧表示
オプション順序は重要(例:-czf、-xzf など)。必ず順番に意味があるので覚えておこう。