シェルスクリプトでよく使うコマンドまとめ

シェルスクリプトは、Linuxサーバー管理や自動化で欠かせない技術です。
その中でも頻出コマンドを 目的別 に整理しながら紹介します。

目次

シェルスクリプトでよく使う主要コマンド一覧

分類代表コマンド
ファイル操作ls cp rsync mv rm touch mkdir
テキスト加工cat echo printf grep sed awk
文字列/整形cut tr sort uniq
プロセス・ジョブps kill jobs wait
システム情報df du free top uname
ネットワークcurl wget ping ss netstat
アーカイブtar zip/unzip gzip/gunzip
その他date xargs find test [ ] trap set

ファイル操作

ls

lsコマンドとは?

ls コマンドは、Linuxでディレクトリ(フォルダ)内のファイルやディレクトリ一覧を表示する最も基本的なコマンドです。

ls [オプション] [パス]

オプション意味用途の例
-l詳細表示(パーミッション・所有者・サイズなど)ファイル情報を確認
-a隠しファイル(ドットから始まる)も表示.env .git などを見たいとき
-hサイズを人間向け表示(KB, MB)-l とセットで使うこと多い
-R再帰的にサブディレクトリまで表示ディレクトリツリーを確認
-t更新日時で並び替え(新しい順)最近更新されたファイルを見たい
-r表示順を逆順にする並び替えと組み合わせる
-11行につき1ファイルで表示パイプ処理と相性が良い

よく使う組み合わせ

コマンド例説明
ls -l詳細表示
ls -la または ls -al詳細 & 隠しファイル表示
ls -lhサイズをKB/MB/GBで見やすく
ls -alh最も頻出:詳細+隠し+見やすいサイズ
ls -ltr古い順で並べ替え(履歴確認に便利)
ls -lt新しいファイル順で確認(ログ調査に◎)
ls -R階層を再帰的に表示

ls -l の表示内容の読み方

$ ls -l
-rw-r–r– 1 user staff 5432 Nov 10 12:40 report.txt

項目意味
-rw-r--r--パーミッション(種類 + 権限)
1ハードリンク数
user所有ユーザー
staff所属グループ
5432ファイルサイズ(バイト)
Nov 10 12:40更新日時
report.txtファイル名
cp

cpコマンドとは?

ファイルやディレクトリを コピー するための基本コマンド。

  • コピー元 → コピー先
  • 上書き、属性保持、確認表示など幅広いオプションが実務で多用される

基本構文

cp [オプション] コピー元 コピー先

よく使うオプション

オプション内容よく使う用途
-i上書き時に確認(interactive)誤上書き防止
-f強制コピー(force)自動処理・スクリプト
-rディレクトリを再帰的コピーフォルダ丸ごとコピー
-aアーカイブ(-rpPなどのセット)バックアップ・属性保持
-pパーミッション・所有者・タイムスタンプ保持正確なファイル複製
-u新しいファイルのみコピー差分コピー
-v詳細を表示(verbose)実行結果をログに残す
rsync

rsyncとは

rsync差分転送ベースのファイル同期ツール
ローカル間/リモート間どちらでも使え、ネットワーク越しの大量データ転送・バックアップに強く、再開・帯域制限・除外ルール・ハードリンクベースの増分バックアップ等をサポートします。

基本の使い方(構文)

rsync [OPTIONS] SOURCE… DEST

リモート例(SSH経由)
rsync -avz /src/ user@host:/dest/

取得(pull)
rsync -avz user@host:/src/ /dest/

末尾のスラッシュ / の有無が重要/src/ は中身、/src はディレクトリ自体をコピー)。

よく使うオプション

オプション要点 / 用途
-aarchive モード(-rlptgoD 等の集合)。実務で基本。
-vverbose(詳しい出力)
-z圧縮転送(帯域節約)
-P--partial --progress の短縮。進捗表示と中断ファイル保持(再開用)。
--delete宛先で存在しないファイルを削除(ミラーに使う)
--delete-after転送後に削除(安全)
--exclude / --include除外/包含ルール(ワイルドカード可能)
--bwlimit=KBPS帯域制限(KB/s)
-e sshssh 経由で転送(デフォルトでは ssh 使用)
--link-dest=DIRハードリンクを使う増分バックアップ(スナップショット)
-cchecksum ベースで差分判定(遅いが正確)
--partial-dir=DIR中断ファイルを置くディレクトリ指定
--chmod=...転送後のパーミッション調整
--rsync-path='sudo rsync'リモートで sudo 実行する場合
--numeric-idsユーザー/グループを名前ではなくIDで扱う
--times (-t)タイムスタンプを保持(-a に含まれる)
--perms (-p)パーミッションを保持(-a に含まれる)
--owner / --group所有者・グループを保持(rootでのみ有効なことが多い)

rsync と他ツールの使い分け

  • cp:単純なローカルコピー(小規模)
  • scp/sftp:単発でリモートへコピー(rsync の差分・再開・高速機能は無し)
  • rsync:差分・再開・除外ルール・増分バックアップ(最も汎用的)
  • tar+転送:大量小ファイルやメタデータ問題がある場合は tar 化して転送→展開の方が速いことがある
mv

mvファイル・ディレクトリの移動 / 名前変更 を行うコマンドです。

mv の基本構文

mv [オプション] <移動元> <移動先>

移動元:動かしたいファイル・ディレクトリ
移動先:保存先 or 新しい名前

よく使うオプション

オプション意味実務での用途
-i上書き前に確認誤上書き防止
-f強制上書きスクリプトで確認を求められないように
-n既存ファイルがあると上書きしない安全重視
-v処理内容を表示大量処理の確認に便利
-u移動先より新しい場合のみ上書き差分だけ更新
rm

rmファイル・ディレクトリを削除するコマンドです。
ただし、一度削除すると 元に戻せない(復元ほぼ不可) ため、Linuxコマンドの中でも最も慎重に扱うべきコマンドです。

基本構文

rm [オプション] <削除したいファイル・ディレクトリ>

よく使うオプション

オプション内容使う場面
-i削除前に確認する安全に削除したい
-f強制削除(確認なし)非対話スクリプトで使う
-rディレクトリを再帰的に削除ディレクトリ削除時
-v実行内容を表示大量削除時の確認
-I大量削除時のみ確認安全かつ便利なオプション
touch

touchファイルのタイムスタンプを変更する コマンドで、
同時に 空ファイルを新規作成する コマンドとしてもよく使われます。

基本構文

touch [オプション] <ファイル名>

よく使うオプション

オプション説明使用例
-cファイルがなければ作らない存在時のみ時刻更新
-aatime のみ更新読み取り時間だけ更新
-mmtime のみ更新更新時間だけ変えたい
-t時刻を手動で指定(形式:YYYYMMDDhhmm)
例) touch -t 202501011200 file.txt
バッチテスト
-r別ファイルの時刻をコピー同期処理
-d日時を自然言語で指定"yesterday" など
mkdir

mkdir はディレクトリ(フォルダ)を作るための超基本コマンド。

基本構文

mkdir [オプション] ディレクトリ名…

よく使うオプション

オプション説明実務での用途
-p, --parents親ディレクトリがなければ作る(存在してもエラーにならない)パス一括作成 / スクリプトで常用
-m MODE, --mode=MODE作成時のパーミッションを指定(例 -m 0755umask に左右されず権限を固定したいとき
-v, --verbose作成したディレクトリを表示ログ出力やデバッグ時

テキスト加工

cat

cat(concatenate) は、ファイルの中身を表示したり、複数ファイルを結合したり、新規ファイルを作成するときに使うコマンドです。

「とりあえず中身を確認したい」「小さなファイルをサッと作りたい」など、実務では非常に出番が多いコマンドです。

基本構文

cat [オプション] [ファイル名…]

よく使うオプション

オプション説明
-n全行に番号を付けるcat -n file.txt
-b空行以外に番号を付けるcat -b file.txt
-s連続する空行をまとめるcat -s file.txt
-E行末に「$」を表示(改行可視化)cat -E file.txt
-Tタブを「^I」で表示cat -T file.txt
echo

echo
は、文字列や変数の値を画面に表示したり、ファイルに出力するときに使う基本コマンドです。シェルスクリプトでもほぼ必ず登場するほど変化します。

基本構文

echo [オプション] [文字列]

よく使うオプション

オプション説明使用例
-n最後の改行を出さないecho -n "Hello"
-eエスケープを有効にするecho -e "A\tB\nC"
-Eエスケープ無効(デフォルト)echo -E "\t"
記号意味
\n改行
\tタブ
\\逆スラッシュ
\"ダブルクォート
\a警告音(ベル)
printf

printfは「フォーマット付きの文字列出力」を行うコマンドです。

基本構文

printf “フォーマット” [引数 …]

フォーマット指定子

指定子説明
%s文字列"abc"
%d整数10
%f小数3.14
%x16進数ff
%o8進数77
%%% 文字%

書式制御まとめ

書式説明
%10s文字列を10桁で右詰め
%-10s左詰め
%03d3桁ゼロ埋め
%8.2f幅8、小数2
%.f小数以下を表示しない

printf がよく使われる理由(echo との違い)

機能echoprintf
改行自動付与○(付く)×(付かない)
改行が付かないため、自分で
\n書く
エスケープの一貫性△(環境で挙動が異なる)◎(常に安定)
フォーマット制御×◎(桁揃え・小数点制御など)
スクリプト向け

使用例

表形式出力(ログ整形に使える)

printf “%-10s %-5s %-5s\n” “NAME” “AGE” “ID”
printf “%-10s %-5d %-5d\n” “Taro” 20 100
printf “%-10s %-5d %-5d\n” “Hanako” 25 200

表のように出る:

NAME AGE ID
Taro 20 100
Hanako 25 200

grep

grep は「指定した文字列・正規表現にマッチする行」を検索して表示するコマンドです。
大規模ログの解析、設定ファイルの検索、文字列抽出に欠かせません。

基本構文

grep [オプション] “検索文字列” ファイル

よく使うオプション

オプション説明用途
-i大文字小文字を無視ERROR / Error / error など
-n行番号を表示ログの位置特定
-vマッチしない行を表示(除外)ノイズ除去
-r再帰的に検索ディレクトリ全体検索
-lマッチがあるファイル名のみ表示設定ファイルの検索
-Hファイル名を表示複数ファイル検索時
-oマッチ部分のみ表示部分抽出
-E拡張正規表現(+、?、OK)
-w単語単位で一致“cat” と “category” の区別
-cマッチ数を数えるログ集計
sed

sed はテキストストリームを行単位で処理・変換する強力なツールです。
ログ整形、設定ファイルの一括置換、ワンライナーでのテキスト加工に頻出します。awk が「列と集計」向けなら、sed は「行の置換・挿入・削除・整形」です。

sed はデフォルトで出力先は標準出力(ファイルは上書きしない)。実際にファイルを変えたいときは -i(in-place)を使います(後述)。

基本構文

sed [オプション] ‘コマンド’ ファイル

一番よく使う:置換

sed ‘s/検索/置換/’ file # その行で最初に見つかった1つだけ置換
sed ‘s/検索/置換/g’ file # 行中の全てを置換

in-place 編集(ファイルを直接変更する)

sed -i.bak ‘s/old/new/g’ file # 元ファイルは file.bak に残る
sed -i ‘s/old/new/g’ file # 元ファイルを上書き(バックアップなし)

まず sed 's/.../.../g' file > file.new で結果を確認してから mv するのが安全。

アドレス指定(どの行にコマンドを適用するか)

行番号:2、範囲:2,5
パターン:/ERROR/、範囲:/start/,/end/

#2行目だけ置換
sed ‘2s/foo/bar/’ file

#”BEGIN”~”END” の範囲で置換
sed ‘/BEGIN/,/END/s/old/new/g’ file

行の削除

行削除:d

#”DEBUG” を含む行を削除
sed ‘/DEBUG/d’ file

#5行目だけ削除
sed ‘5d’ file

行の挿入・追加・置換(i, a, c)

i\ : その行のに挿入
a\ : その行のに追加
c\ : その行を置き換え

#”HEADER” をファイルの最初に挿入
sed ‘1i\HEADER’ file

#”FOOTER” を “END” 行の後に追加
sed ‘/END/a\FOOTER’ file

#3行目を丸ごと置換
sed ‘3c\this is new line’ file

sed と正規表現の注意点

  • デフォルトは BRE(基本正規表現)()+\( \+ のようにエスケープが必要。-E を使うと(拡張)() + が直感的に使えます。
  • パターンにスラッシュ / を含むと面倒 → 区切り文字を #| に替える
  • 大きなファイルで複雑な正規表現を使うと遅くなる(必要なら perl を検討)。
    perl:もっと複雑なテキスト処理や Unicode/複雑な正規表現が必要な場合。
awk

テキストを行単位 + 列(フィールド)単位で処理するためのツール
ログ解析、CSV、設定ファイル処理、集計に最適。

基本構文

awk ‘パターン { アクション }’ ファイル

例:1列目と3列目を表示

awk ‘{ print $1, $3 }’ file.txt

基本の考え方

  • 1行が1レコード
  • 行を区切る文字(フィールド区切り)は $1, $2, … で参照
  • $0 は「行全体」
  • 区切り文字は -F で変更できる

よく使う組み込み変数

変数意味
$0行全体
$1 $2各フィールド(列)
NF列数(Number of Fields)
NR行番号(Number of Records)
FS入力フィールド区切り文字
OFS出力フィールド区切り文字

文字列/整形

cut

テキストを 列単位で切り出す コマンドです。
CSV・ログ・設定ファイルなどの 特定フィールド抜き出しに特化

基本構文

cut [オプション] ファイル

よく使うオプション

オプション内容
-d区切り文字の指定(デフォルトはタブ)
-f抽出したいフィールド(列番号)
-c文字位置で切り出し(固定長データ向け)

例)

cut -d’,’ -f1,3 file.csv # 1列目と3列目
cut -d’,’ -f1-3 file.csv # 1〜3列目
cut -c5-10 file.txt # 5〜10文字目を抜き出す

tr

tr(translate)は、文字の置き換え・削除・圧縮ができるコマンドです。
標準入力(stdin)を読み取り、標準出力(stdout)へ結果を返すのが基本仕様です。

基本構文

tr [オプション] ‘置換前’ ‘置換後’

よく使うオプション

オプション内容
-d指定した文字を削除
-s重複する文字を 1 つに圧縮
-c補集合(指定以外の文字を対象)

よく使う文字クラス

クラス内容
[:lower:]小文字
[:upper:]大文字
[:digit:]数字
[:space:]空白文字(スペース・タブなど)
[:alpha:]英字

例で理解する tr コマンド

小文字 → 大文字

echo “hello world” | tr ‘[:lower:]’ ‘[:upper:]’

> HELLO WORLD

特定文字の置換

echo “banana” | tr ‘a’ ‘A’

> bAnAnA

特定文字の削除(-d)

echo “ID-123-456” | tr -d ‘-‘

> ID123456

連続した空白を 1 つに圧縮(-s)

echo “A B C” | tr -s ‘ ‘

> A B C

補集合で操作(-c)

echo “abc123” | tr -c ‘[:alpha:]’ ‘-‘

> abc—
(英字以外 → - に置換)

数字以外を削除(数字抽出)

echo “Tel: 090-1234-5678” | tr -cd ‘[:digit:]’

> 09012345678

Windows → Linux の改行コード CRLF 削除

tr -d ‘\r’ < windows.txt > linux.txt

sort

sortテキストの行を並べ替えるコマンドです。
数値・文字列・日付など様々な基準でソートでき、ログ解析やデータ前処理で大活躍!

基本構文

sort [オプション] [ファイル]

よく使うオプション

オプション意味使用例
-r逆順大→小、Z→A
-n数値として並べ替え10 > 2 正しく並ぶ
-kキー指定(列指定)-k2,2(2列目でソート)
-t区切り文字指定CSV/TSV で使用
-u重複行を削除しつつソートuniq+sort
-f大文字小文字を無視A=a として扱う
-o出力先ファイルを指定上書き可
uniq

uniq連続する重複行を処理するコマンドです。

基本構文

uniq [オプション] [入力ファイル] [出力ファイル]

よく使うオプション

オプション内容
-d重複している行だけ表示
-u重複していない行だけ表示(ユニーク)
-c各行の重複回数を表示
-i大文字小文字を無視
-f N行頭から N フィールド無視
-s N行頭から N 文字無視

プロセス・ジョブ

ps

ps現在動作中のプロセス情報を表示するコマンドです。
プロセス管理・トラブルシュートで必須!

基本構文

ps [オプション]

よく使うオプション

オプション形式内容
aBSD全端末のプロセス表示
xBSD端末に属さないプロセスを表示(デーモン等)
uBSDプロセス所有者表示(USER, %CPU, %MEM)
-eUNIXすべてのプロセス表示(= -A
-fUNIX親子関係などフルフォーマット(CMDの引数も)
-oUNIX列を選択して表示
-pUNIXPID 指定で表示
-CUNIXコマンド名で絞り込み
-UUNIX指定ユーザーのプロセス

よく使う ps のパターン

コマンド内容
ps現在のシェルのプロセスを表示(最小情報)
ps aux全プロセス表示(BSD形式)
ps -ef全プロセス表示(UNIX形式)
ps -o表示項目をカスタム

BSD形式(ps aux)の出力例

意味
USER実行ユーザー
PIDプロセスID
%CPUCPU使用率
%MEMメモリ使用率
VSZ仮想メモリサイズ(KB)
RSS実メモリ使用量(KB)
TTY端末
STATプロセス状態
START起動時刻
TIME累計CPU時間
COMMAND実行コマンド

STAT(状態)の主な意味

状態意味
R実行中
Sスリープ(待機中)
D割り込み不可スリープ(I/O待ち)
Zゾンビ(終了したが親が回収していない)
T一時停止
<優先度高
N優先度低

UNIX形式(ps -ef)の特徴

意味
UIDユーザーID
PIDプロセスID
PPID親プロセスID
CCPU使用率(簡易)
STIME起動日時
CMD実行コマンド
kill

kill は、プロセスに対して シグナル(指令)を送るためのコマンドです。
主に プロセスを停止・終了する目的で使われますが、終了以外の指令も送れます。

基本構文

kill [シグナル] プロセスID(PID)

よく使うシグナル一覧

シグナル番号内容使用用途
SIGTERM15プロセスに終了を依頼(正常停止)基本の終了方法
SIGKILL9強制終了(拒否不可)応答しないプロセス
SIGHUP1設定リロード / セッション切断デーモンの再読み込み
SIGSTOP19一時停止(一時中断)作業一時中止
SIGCONT18一時停止したプロセスの再開停止から復帰

pkill: 名前でkill

pkill httpd

jobs

jobs は、シェルが管理しているバックグラウンドジョブ一覧を表示するコマンドです。

& で起動したジョブ
Ctrl+Z で停止中のジョブ
などの状態確認に使います。

基本構文

jobs [オプション]

主なオプション

オプション説明
-lPID(プロセスID)込みで表示
-pPID だけ表示
-r実行中ジョブのみ表示
-s停止中ジョブのみ表示

jobs 出力例:

[1]- Running sleep 100 &
[2]+ Stopped top

表示状態内容
Running実行中バックグラウンドで動作
Stopped停止中Ctrl+Z で停止させた状態
Done完了終了したが表示が残っている
表示意味
+デフォルトのジョブfg, bg で対象になる)
-次点のジョブ
wait

waitシェルの子プロセスが終了するのを待つためのシェル組み込み(builtin)です。並列に起動した処理の完了待ちや、終了ステータスの収集に使います。

wait に引数を与えない場合、Bash では 全ての子プロセスが終わるまで待ち、最後に終了した子の終了コードを返す(シェルによる差はある)。

wait現在のシェルが親である子プロセスだけ を待てます(別ターミナルや別シェルで起動したプロセスは対象外)。

wait <PID> の終了コードは「その子プロセスの終了ステータス」を返します(= $? に反映)。

基本構文

# 引数なしで「全ての子プロセス」を待つ
wait

# 複数指定して順に待つ
wait <PID1> <PID2> …

# PIDまたはジョブ指定で待つ
wait <PID or job>

システム情報

df

ファイルシステム(ディスク)の使用状況 を表示するコマンドです。

基本構文

df [オプション] [対象ファイル or パス]

よく使うオプション

オプション説明よく使う場面
-h人間に読みやすく表示(GB/MB等)実務の標準
-Tファイルシステムタイプも表示ext4? xfs? NFS? 知りたい時
-iinode使用状況を表示「空き容量あるのに書けない!」原因調査
-PPOSIX形式で出力(スクリプト向け)表形式崩しを防ぐ
-x <fstype>指定FSを除外tmpfs除外など
--total合計行を表示全体容量把握

基本出力の見方

Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 20511356 5119380 14483772 27% /
tmpfs 4045304 0 4045304 0% /dev/shm

項目意味
Filesystemデバイス名(どのディスクか)
1K-blocksディスク容量(1KB単位)
Used使用済み容量
Availableユーザーが使える空き容量(root除いた値)
Use%使用率
Mounted onマウントポイント(どこに接続されているか)
du

du(Disk Usage)ディレクトリ・ファイルごとの使用容量 を表示するコマンドです。

基本構文

du [オプション] [ファイル/ディレクトリ]

よく使うオプション

オプション意味よく使う場面
-h人間に読みやすい表示(K/M/G)容量を一目で
-s合計のみ表示(サブディレクトリ非表示)「ここ全体で何GB?」
-d N表示の深さを制限(Bash版)大量出力防止
--max-depth=N-d N と同等互換性目的
-x他ファイルシステム除外NFS混入回避
-aファイルも表示どれが重い?
-c合計を最後に表示全体確認

df との違い(混同ポイント)

コマンド役割
dfディスク全体の容量状況確認
duディレクトリ/ファイルごとのサイズ集計
free

free コマンドとは?

システムのメモリ使用状況を表示するコマンドです。
・物理メモリ(RAM)
・スワップ領域
・キャッシュ / バッファ
などの状態を一目で把握できます。

基本構文

free [オプション]

よく使うオプション

オプション説明
-h読みやすい単位(MB/GB)で表示
-mMB単位で表示
-gGB単位で表示
-tメモリ・スワップ含め合計表示
-w旧形式(free/buff/cacheの3列)で表示

free の出力内容の読み方

          total        used        free      shared  buff/cache   available
Mem:    15Gi    3.8Gi    1.2Gi    200Mi    10Gi    11Gi

Swap:   2.0Gi    0.0Gi    2.0Gi
Mem項目意味
total総メモリ容量
used実際にアプリが使っているメモリ量
free完全に未使用のメモリ
sharedtmpfsなど共有メモリの使用量
buff/cacheファイルキャッシュとして利用されている領域
availableアプリが実際に利用できるメモリ量
Swap項目説明
totalスワップ全体容量
usedスワップ使用量(高いと性能劣化)
free空きスワップ


top

top コマンドとは?

システムの状態をリアルタイムで監視するためのコマンドです。

確認できる主な情報:

  • CPU使用率
  • メモリ/スワップ使用量
  • 実行中のプロセス
  • プロセスごとのCPU/メモリ負荷
  • uptime、ロードアベレージ

基本起動

top

終了:

q

top の画面構成と読み方

top – 11:24:01 up 3 days, 2:17, 2 users, load average: 0.15, 0.22, 0.30
Tasks: 179 total, 1 running, 178 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.0 us, 1.0 sy, 0.0 ni, 95.0 id, 0.5 wa, 0.0 hi, 0.5 si, 0.0 st
MiB Mem : 16000.0 total, 2000.0 free, 5000.0 used, 9000.0 buff/cache
MiB Swap: 2000.0 total, 0.0 used, 2000.0 free

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1265 root 20 0 130000 30000 5000 S 5.0 0.2 2:10 nginx

上部(サマリー情報)

表示意味
load averageシステムの負荷指標(1m, 5m, 15m)
Tasks実行状態別のプロセス数
usユーザーCPU時間(アプリによる負荷)
syカーネルCPU時間(システム処理負荷)
idアイドル時間(CPUが暇な割合)
waI/O待ち時間(ディスク遅延の指標)
buff/cacheメモリキャッシュ使用量

下部(プロセス情報)

意味
PIDプロセスID
PR / NI優先度 / nice値
VIRT仮想メモリ使用量
RES物理メモリ使用量
SHR共有メモリ
S状態(R/S/Z 等)
%CPUCPU使用率
%MEMメモリ使用率
TIME+累積CPU時間
COMMANDコマンド名

操作ショートカット

キー内容
q終了
PCPU使用率順に並べ替え
Mメモリ使用率順に並べ替え
T実行時間順に並べ替え
kプロセスを kill(PID入力)
rnice値変更
1CPUコアごとの使用率表示
hヘルプ表示
uname

uname コマンドとは?

Linuxシステムに関する基本情報(カーネルやOS、ハードウェア情報など)を表示するコマンドです。

基本構文

uname [オプション]

よく使うオプション

オプション表示内容主な用途
-aすべての情報uname -a一括確認で便利
-sカーネル名uname -sOS識別(Linux / Darwin etc)
-nホスト名uname -nサーバ識別
-rカーネルリリース(バージョン)uname -rカーネル更新の確認
-vカーネル詳細バージョンuname -vビルド情報確認
-mマシンハードウェア名(CPUアーキテクチャ)uname -mx86_64 / aarch64 判別
-pプロセッサタイプuname -pCPU判別(環境で未知になる場合あり)
-iハードウェア種別uname -iマシン識別
-oOS名uname -oGNU/Linux など

ネットワーク

curl

curl コマンドとは?

URL(HTTP/HTTPS/FTPなど)を操作するデータ転送ツールです。
REST API やファイル取得、動作確認に多用されます。

例:

curl https://example.com

→ WebページのHTMLが取得され画面に表示されます。

よく使うオプション

オプション説明使用例
-Oファイル名を保持して保存curl -O URL
-o保存ファイル名指定curl -o file.txt URL
-IHTTPレスポンスヘッダのみ取得curl -I URL
-Lリダイレクトを追跡curl -L URL
-kSSL証明書検証を無視開発環境向け
-uBasic 認証 (user:pass)curl -u user:pass URL
-XHTTPメソッド指定POST/PUT/DELETEなど
-HHTTPヘッダ追加API通信で頻出
-dPOSTデータ送信フォーム/API
wget

wget コマンドとは?

HTTP / HTTPS / FTP などの URL から
ファイルを取得(ダウンロード)するコマンドです。

例:

wget https://example.com/file.zip

→ カレントディレクトリに保存されます。

curl は転送結果を標準出力へ、wget はファイル保存が基本

よく使うオプション

オプション説明使用例
-O保存ファイル名を指定wget -O new.zip URL
-c中断したダウンロードを再開wget -c URL
-P DIR保存先ディレクトリ指定wget -P /tmp URL
--limit-rateダウンロード速度制限--limit-rate=500k
--user --passwordBasic/FTP 認証
--no-check-certificateSSL証明書チェック無効化開発環境向け
ping

ping コマンドとは?

ネットワークの疎通確認を行うコマンドです。
対象ホストに ICMP Echo Request を送り、応答(Echo Reply)があるかを確認します。

基本構文

ping [オプション] 対象ホスト

よく使うオプション

オプション説明使用例
-c 回数指定回数だけ実行ping -c 4 8.8.8.8
-i 秒送信間隔設定ping -i 2 8.8.8.8
-s バイトパケットサイズ指定ping -s 1024 8.8.8.8
-W 秒応答待ちタイムアウトping -W 2 8.8.8.8
-q統計のみ表示(静音)ping -c 5 -q 8.8.8.8
-4 / -6IPv4 / IPv6 指定ping -4 google.com

実行例と見方

> ping google.com

64 bytes from xxx: icmp_seq=1 ttl=118 time=15.3 ms

表示意味
64 bytes応答パケットサイズ
ttl=118到達可能ホップ数の推定
time=15.3ms応答時間(遅延)

— google.com ping statistics —
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 14.928/15.266/15.583/0.243 ms

項目意味
packet lossパケット損失率(0%であるべき)
ss

ss(socket statistics) は、Linuxのネットワークソケット状態を表示するコマンドです。
従来の netstat の後継で、より高速・高機能です。

基本構文

ss [オプション]

よく使うオプション

オプション説明
-tTCP接続のみ
-uUDP接続のみ
-lLISTEN状態のみ
-n名前解決なし(表示高速)
-pプロセス情報を表示
-a全てのソケットを表示
-4 / -6IPv4 / IPv6のみ表示
-s統計情報を表示
netstat

netstat(network statistics)
ネットワーク通信の状態やポートの使用状況を確認するコマンドです。

ただし現在は後継の ssコマンドが推奨されており、
netstat は非推奨化が進んでいます。
でもまだ多くの環境で使用されています。

基本構文

netstat [オプション]

よく使うオプション

オプション説明
-tTCP接続表示
-uUDP接続表示
-lLISTEN状態のみ
-pプロセス情報表示
-n名前解決なし(表示高速)
-a全ソケット表示
-rルーティングテーブル表示
-iインターフェース統計
-sプロトコル統計
-c常時更新(リアルタイム監視)

アーカイブ

tar

tar(Tape ARchive) は、複数のファイルやディレクトリを
1つのアーカイブファイル(.tar)にまとめる コマンドです。
gzip / bzip2 / xz などと 組み合わせて圧縮もできます。

基本構文

tar [オプション] [アーカイブファイル] [対象ファイル/ディレクトリ]

よく使うオプション

オプション( – なしでもOK)意味よく使うシーン
-c作成(Create)アーカイブ作成
-x展開(Extract)解凍・取り出し
-fファイル指定(File).tarファイルを扱う
-v詳細表示(Verbose)実行状況確認
-zgzip圧縮/解凍.tar.gz
-jbzip2圧縮/解凍.tar.bz2
-Jxz圧縮/解凍.tar.xz
-t中身表示(list)内容確認
-C展開先ディレクトリ指定解凍場所指定

よく使う操作例

① アーカイブ作成(圧縮なし)

tar cvf backup.tar /path/to/dir

②gzip 圧縮して tar 作成(.tar.gz)

tar czvf backup.tar.gz /path/to/dir

③gzip 圧縮 tar を展開(.tar.gz)

tar xzvf backup.tar.gz

④ 指定したフォルダに解凍

tar xzvf backup.tar.gz -C /tmp

⑤アーカイブの中身確認(解凍しない)

tar tvf backup.tar.gz

⑥特定ファイルだけ展開

tar xvf backup.tar file1 file2

zip/unzip

zip は、複数のファイルやフォルダを
ZIP形式に圧縮するコマンドです。

OSを問わない形式なので、
Windowsとの互換性が高いのが最大の強み!

コマンド用途
zipファイルを ZIP 形式で圧縮
unzipZIPファイルを展開(解凍)

zip の基本構文

zip [オプション] 圧縮後.zip 対象ファイル/ディレクトリ

zipコマンドのよく使うオプション

オプション内容
-rディレクトリを再帰的に圧縮
-eパスワード付きZIPを作成
-9最高圧縮率(遅いが小さい)
-q静かに実行(出力少なめ)

unzip の基本構文

unzip ZIPファイル

unzipコマンドのよく使うオプション

オプション内容
-lZIPファイルの内容一覧を表示
-d展開先ディレクトリ指定
-o上書きして展開(確認なし)
-Pパスワード指定して展開
-q静かに実行
gzip/gunzip

gzip / gunzip とは?

コマンド役割
gzipファイルを gzip 圧縮(.gz)にする
gunzipgzip 圧縮ファイル(.gz)を解凍

gzip の特徴

  • 単一ファイルを圧縮(複数はまとめられない)
  • 拡張子は .gz
  • 圧縮率と速度のバランスが良い
  • tar と組み合わせて使うのが一般的

基本構文

gzip [オプション] ファイル
gunzip [オプション] ファイル.gz

gzip のよく使うオプション

オプション意味
-k元ファイルを残す
-d解凍(gunzip同様)
-v詳細表示
-1~-9圧縮レベル(デフォルト: -6)

その他

date

date コマンドは、Linuxで現在の日付・時刻を表示したり、設定したりするコマンドです。

基本構文

date
date [オプション] [+フォーマット]
date [オプション] [MMDDhhmm[[CC]YY][.ss]] # 時刻設定

よく使うオプション

オプション説明
+FORMAT日付・時刻の表示形式を指定
-uUTC(協定世界時)で表示
-RRFC 2822 形式で表示(メール用)
-IISO 8601形式で表示
-d指定日付の計算・表示
-sシステム時刻を設定(root権限必要)

フォーマット指定の例(+FORMAT)

フォーマット説明
%Y西暦4桁2025
%y西暦下2桁25
%m月(01-12)11
%d日(01-31)22
%H時(00-23)23
%M分(00-59)45
%S秒(00-59)12
%a曜日省略形Fri
%A曜日全称Friday
%j年内通算日326

例:カスタム表示

date “+%Y/%m/%d %H:%M:%S”

出力例: 2025/11/22 23:45:12

xargs

xargsコマンドとは?

標準入力から受け取ったデータを引数としてコマンドに渡すコマンドです。

例えば、rm file1 file2 file3 のように、
引数が大量になる処理を自動化・効率化できるのがxargs。

基本例

echo “file1 file2 file3” | xargs rm

= rm file1 file2 file3 と同じ意味

よく使うオプション

オプション説明
-I {}占位文字 {} を使い任意位置に挿入
-0NULL区切り対応(findの-print0と組)
-p実行前に確認(対話モード)
-n NUM一度に渡す引数の数を制限
-L NUM一度に渡す入力行数を制限
-P NUM並列実行(高速処理)
find

findコマンドとは?

ファイルやディレクトリを検索するコマンド
名前・サイズ・更新日時・所有者・パーミッションなど、あらゆる条件で検索可能。

基本構文

find 検索開始ディレクトリ [検索条件] [実行アクション]

例:

find . -name “*.log”

よく使う検索条件

条件説明
-name "PATTERN"ファイル名一致-name "*.txt"
-type f通常ファイル
-type dディレクトリ
-size +10Mサイズ10MBより大-size -1G(1GB未満)
-mtime -33日以内に更新-mtime +30(30日以上)
-user USER所有者検索-user root
-perm MODEパーミッション一致-perm 644

条件の論理演算

演算記述例意味
ANDスペースで繋ぐ-type f -name "*.sh"
OR-o-name "*.txt" -o -name "*.log"
NOT!! -name "*.txt"
test [ ]

test / [ ] コマンドとは?

ファイルの状態や文字列比較、数値比較などの
条件判定を行うコマンドです。

test[ ] の機能はほぼ同じ([ ] を使うことの方が多い)

例:

if test 条件; then
処理
fi

if [ 条件 ]; then
処理
fi

主に使う3種類の判定

種類判定内容
ファイル判定存在・ディレクトリ・読み書き権限など
文字列比較等しい/空/長さ比較
整数比較大小比較

ファイル判定

オプション意味
-e存在するか[ -e file ]
-f通常ファイル[ -f file ]
-dディレクトリ[ -d dir ]
-r読み取り可能[ -r file ]
-w書き込み可能[ -w file ]
-x実行可能[ -x script.sh ]
-sサイズ > 0[ -s file ]

文字列比較

条件意味
=一致
!=不一致
-z長さ0(空文字)
-n長さ>0

数値比較

条件意味
-eq
-ne
-lt
-le
-gt
-ge

複数条件の組み合わせ

演算子説明
-a AND[ -f a -a -f b ]
-o OR[ -f a -o -f b ]
!NOT[ ! -f file ]

拡張版:[[ ]]

bashでのみ使用可能

機能[ ][[ ]]
ワイルドカードでの比較×
&& / `` の利用
クォート省略不可ある程度可
trap

trapコマンドとは?

シェルスクリプトで シグナルを検知して特定の処理を実行するためのコマンドです。

例:
強制終了(Ctrl+C)された際に後処理(後片付け)を実行する

役割まとめ

役割使用例
強制終了時の後始末一時ファイル削除
エラー発生時の処理ログ出力、終了処理
スクリプト終了時処理実行cleanup処理

基本構文

trap ‘実行するコマンド’ シグナル名

よく使うシグナル

シグナル名称
INT割り込み(Ctrl+C)trap '...' INT
TERM終了要求サービス停止時
EXITスクリプト終了時正常/異常問わず実行
ERRコマンド失敗時set -e と相性◎
HUPハングアップデーモン再起動時

例:Ctrl+Cで cleanup 実行

trap ‘echo “停止!後片付け中…”; rm -f tempfile’ INT

使用例

一時ファイル削除の典型例

#!/bin/bash

tmp=$(mktemp)
trap “rm -f $tmp; echo Cleaned!” EXIT

echo “作業中…”
sleep 5

複数シグナル同時設定

trap ‘rm -f $tmp; echo Cleaned!’ INT TERM HUP

途中で失敗したときに後始末する

set -e # エラーでスクリプト停止
trap “echo ‘エラー発生!後始末を実行中…’; cleanup” ERR

cleanup() {
echo “クリーンアップ中…”
# 後始末処理
}

set

set コマンド は、シェル(特に Bash)で動作環境やスクリプトの動作モードを制御する強力なコマンドです。

set は大きく分けて2つの用途があります。

  1. シェルオプションの設定や解除
  2. 位置パラメータの設定(引数の再定義)

基本構文

set [オプション]
set [–] [引数…]

よく使うオプション

オプション説明備考
-eコマンドが失敗(終了ステータス非0)したらスクリプトを即終了set -e大規模スクリプトで安全性向上
-u未定義変数の参照を禁止set -uタイプミスやバグ防止
-x実行されるコマンドを表示(デバッグ用)set -x実行後に set +x で解除可能
-o pipefailパイプ内の途中で失敗したコマンドも検出set -o pipefailデフォルトは最後のコマンドだけ反映
-EERRトラップを関数やサブシェルにも伝播set -Etrap '処理' ERR と組み合わせて使用
--位置パラメータ($1, $2…)を手動で設定set -- "arg1" "arg2"関数内で引数をリセット可能
+e-e の解除set +eスクリプト途中でエラー時終了を無効化
+x-x の解除set +xデバッグ表示を停止
+u-u の解除set +u未定義変数チェックを無効化

実務での活用例

安全なスクリプトの書き方

#!/bin/bash

set -euo pipefail

echo “Start backup”
cp /source/file /backup/file
echo “Backup complete”

  • -e:エラーで終了
  • -u:未定義変数チェック
  • -o pipefail:パイプ内のエラーを検出

→ この3つを組み合わせると、スクリプトの安全性が格段に向上します。

デバッグ用の表示

#!/bin/bash

set -x

echo “Debugging this script”

実行中のコマンドと引数を確認できるので、トラブルシュートが簡単になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次