以下は、シェルスクリプトで頻繁に使用されるコマンドをカテゴリ別に整理した一覧です。
基本操作
基本操作は、どんな作業を行う際にも必要となるシェルコマンドの基礎です。このカテゴリでは、ディレクトリの移動や環境変数の設定、ファイルやディレクトリの構造を把握するためのツールを網羅的に取り上げています。日常的に使用するコマンドを正確に使いこなすことが、効率的なシステム運用の第一歩です。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
alias | コマンドのエイリアスを作成 | alias ll='ls -la' | なし |
basename | パスからファイル名を抽出 | basename /path/to/file.txt | -s 拡張子:指定した拡張子を除外 |
cal | カレンダーを表示 | cal | -y:現在の年のカレンダーを表示 -m 月:特定の月を表示 |
cd | ディレクトリを変更 | cd /path/to/directory | -P:シンボリックリンクを解決 |
clear | 画面をクリア | clear | なし |
date | 現在の日付と時刻を表示 | date "+%Y-%m-%d %T" | +%Y-%m-%d:年月日を表示 +%T:時刻を表示 |
dirname | パスからディレクトリ部分を抽出 | dirname /path/to/file.txt | なし |
echo | メッセージや変数の値を出力 | echo "Hello, World!" | -n:改行を抑制 -e:エスケープシーケンスを有効化 |
env | 環境変数を表示 | env | なし |
export | 環境変数を設定 | export VAR=value | なし |
help | 組み込みコマンドのヘルプを表示 | help cd | -d:デバッグモードで表示 |
history | コマンド履歴を表示 | history | -c:履歴を消去 -n:新しい履歴を読み込む |
id | 現在のユーザーのIDとグループIDを表示 | id | -u:ユーザーIDのみ表示 -g:グループIDのみ表示 |
ls | ディレクトリの内容を一覧表示 | ls -l | -l:詳細情報付きで表示 -a:隠しファイルを含めて表示 -h:サイズを人間が読みやすい形式で表示 |
printenv | 環境変数を表示 | printenv PATH | なし |
pwd | 現在のディレクトリを表示 | pwd | なし |
readonly | 変数を読み取り専用に設定 | readonly VAR | なし |
seq | 指定した範囲の数値を生成 | seq 1 10 | -w:ゼロ埋めで出力 -s 文字列:出力を区切る文字列を指定 |
time | コマンドの実行時間を測定 | time ls | なし |
type | コマンドの種類を表示 | type cd | なし |
unalias | エイリアスを削除 | unalias ll | なし |
which | コマンドの実行ファイルのパスを表示 | which ls | なし |
whoami | 現在のユーザー名を表示 | whoami | なし |
ファイル操作
ファイルの生成、移動、削除から、テキストの検索や編集まで、ファイル操作の知識はシステム運用の核となります。このカテゴリでは、grep や sed、awk といった強力なツールを含む、さまざまなファイル操作コマンドを網羅します。データ管理の柔軟性を向上させるための技術を確認できます。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
awk | テキスト処理ツール | awk '{print $2}' file.txt | -F:フィールド区切りを指定 |
basename | パスからファイル名を抽出 | basename /path/to/file.txt | -s 拡張子:指定した拡張子を除外 |
cat | ファイルの内容を表示 | cat file.txt | -n:各行に行番号を付与 -E:行末記号を表示 |
chmod | ファイルやディレクトリの権限を変更 | chmod 755 file.txt | -R:再帰的に変更 |
chown | ファイルやディレクトリの所有者を変更 | chown user:group file.txt | -R:再帰的に変更 |
cp | ファイルやディレクトリをコピー | cp source.txt destination.txt | -r:ディレクトリを再帰的にコピー -i:上書き前に確認 |
cut | ファイルの一部を抽出 | cut -d: -f1 file.txt | -d 文字:区切り文字を指定 -f フィールド:抽出するフィールドを指定 |
diff | 2つのファイルを比較 | diff file1.txt file2.txt | -u:統一形式で出力 |
dirname | パスからディレクトリ部分を抽出 | dirname /path/to/file.txt | なし |
file | ファイルの種類を表示 | file file.txt | なし |
find | ファイルを検索 | find /path -name 'filename' | -name:名前で検索 -mtime:最終更新日で検索 |
grep | テキストファイルから特定の文字列を検索 | grep 'pattern' file.txt | -i:大文字小文字を区別しない -r:ディレクトリを再帰的に検索 |
ln | シンボリックリンクやハードリンクを作成 | ln -s target linkname | -s:シンボリックリンクを作成 |
mktemp | 一時ファイルを作成 | mktemp | -d:ディレクトリを作成 |
mv | ファイルやディレクトリを移動または名前変更 | mv oldname.txt newname.txt | -i:上書き前に確認 -v:処理内容を表示 |
rename | ファイル名を一括リネーム | rename 's/old/new/' *.txt | なし |
rm | ファイルやディレクトリを削除 | rm file.txt | -r:ディレクトリを再帰的に削除 -f:確認なしで強制削除 |
sed | テキストを編集 | sed 's/old/new/g' file.txt | s/old/new/g:文字列を置換 |
shred | ファイルを安全に削除 | shred -u file.txt | -u:ファイルを削除 -n 回数:指定回数上書き |
sort | データをソート | sort file.txt | -r:降順でソート -n:数値でソート |
split | ファイルを分割 | split -b 1M file.txt | -b サイズ:指定したサイズで分割 |
stat | ファイルの詳細情報を表示 | stat file.txt | なし |
tar | ファイルやディレクトリをアーカイブ | tar -czvf archive.tar.gz /path | -c:新しいアーカイブを作成 -x:アーカイブを展開 -z:gzip形式で圧縮 |
tee | 出力をファイルに保存しつつ標準出力 | ls | tee output.txt | -a:ファイルに追記 |
touch | 空のファイルを作成 | touch newfile.txt | -a:アクセスタイムのみ変更 -m:修正時間のみ変更 |
tr | 文字列を置換 | echo 'text' | tr a-z A-Z | -d:指定文字を削除 |
uniq | 重複を削除 | uniq file.txt | -c:重複回数を表示 |
unzip | ZIPファイルを解凍 | unzip archive.zip | -l:圧縮ファイルの内容をリスト表示 |
vim | ファイルを編集 | vim file.txt | +行番号:指定行から開始 |
wc | 単語、行数、バイト数を表示 | wc -l file.txt | -l:行数を表示 -w:単語数を表示 |
xargs | 引数を別コマンドに渡す | find . -name '*.txt' | xargs rm | -n 数:コマンドライン引数の数を制限 -I 文字列:プレースホルダーを指定 |
zip | ファイルを圧縮 | zip archive.zip file.txt | -r:ディレクトリを再帰的に圧縮 |
ネットワーク操作
ネットワーク環境の構築やトラブルシューティングを効率化するために必要なコマンドを集約。ネットワーク接続確認の基本から、通信状況のモニタリング、外部サーバーとのデータのやり取りまで、包括的なネットワーク操作スキルを支えるコマンドが揃っています。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
arp | ARPキャッシュを操作 | arp -a | -a:ARPテーブルを表示 |
curl | URLからデータを取得 | curl -O https://example.com/file.txt | -O:URLのファイル名で保存 -L:リダイレクトを追跡 -d データ:POSTデータを送信 |
dig | DNS情報を取得 | dig example.com | @サーバー:特定のDNSサーバーを指定 +short:簡略形式で出力 |
ethtool | イーサネットデバイスを設定 | ethtool eth0 | -i:デバイス情報を表示 -s:デバイスの状態を設定 |
ftp | FTPサーバーに接続 | ftp ftp.example.com | なし |
ifconfig | ネットワークインターフェイスを設定・表示 | ifconfig eth0 | up:インターフェイスを有効化 down:インターフェイスを無効化 |
ip | ネットワークの設定を管理 | ip addr | addr:IPアドレスを表示 link:インターフェイス情報を表示 |
nc(netcat) | ネットワーク通信を行う | nc -zv host 80 | -z:ポートスキャンモード -v:詳細情報を表示 |
netstat | ネットワーク接続や統計情報を表示 | netstat -tuln | -t:TCP接続を表示 -u:UDP接続を表示 -n:数値形式で出力 |
ping | ネットワーク接続を確認 | ping 8.8.8.8 | -c 数:パケット送信回数を指定 -i 秒:パケット送信間隔を指定 |
rsync | ファイルやディレクトリを効率的に同期 | rsync -avz /src/dir /dest/dir | -a:アーカイブモードでコピー --delete:同期先に不要なファイルを削除 |
scp | ファイルをリモートサーバーと転送 | scp file.txt user@host:/path/to/dest | -r:ディレクトリを再帰的にコピー -P ポート番号:ポート番号を指定 |
ssh | リモートサーバーに接続 | ssh user@host | -p ポート番号:ポート番号を指定 -i 鍵ファイル:鍵ファイルを指定 |
telnet | リモートホストに接続 | telnet host | なし |
traceroute | パケットの経路を追跡 | traceroute example.com | -m 数:最大ホップ数を指定 -p ポート番号:特定のポートを使用 |
wget | URLからファイルをダウンロード | wget https://example.com/file.txt | -c:中断したダウンロードを再開 -r:再帰的にダウンロード |
システム操作
システムリソースの状態を的確に把握し、適切に管理するために必要なコマンド群を扱います。プロセス管理、ディスク使用量の確認、メモリの使用状況など、パフォーマンスモニタリングに欠かせない操作を中心に取り上げています。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
crontab | スケジュールタスクを管理 | crontab -e | -e:タスクを編集 -l:タスク一覧を表示 |
df | ディスクの空き容量を表示 | df -h | -h:読みやすい形式で出力 -T:ファイルシステムの種類を表示 |
dmesg | カーネルメッセージを表示 | dmesg | -T:タイムスタンプを人間が読みやすい形式で表示 |
du | ディレクトリやファイルの使用容量を表示 | du -sh /path/to/dir | -h:読みやすい形式で出力 -s:合計サイズのみ表示 |
free | メモリの使用状況を表示 | free -h | -h:読みやすい形式で表示 |
htop | インタラクティブなプロセスモニタ | htop | なし |
iostat | CPU使用率とI/Oの統計を表示 | iostat | -x:詳細なI/O統計を表示 |
iotop | I/Oの使用状況を表示 | iotop | -o:現在I/Oを使用しているプロセスのみ表示 |
kill | 指定したプロセスを終了 | kill 1234 | -9:強制終了 |
lsof | 開いているファイルを表示 | lsof | -i:ネットワーク接続を表示 |
ps | 実行中のプロセスを表示 | ps aux | -e:すべてのプロセスを表示 -f:詳細な形式で表示 |
reboot | システムを再起動 | reboot | なし |
shutdown | システムをシャットダウン | shutdown now | -r:再起動を実行 -h:シャットダウン後に停止 |
top | リアルタイムでシステムのパフォーマンスを表示 | top | -d 秒:更新間隔を指定 |
uptime | システムの稼働時間を表示 | uptime | なし |
vmstat | システムのパフォーマンスを表示 | vmstat 1 | -s:システムの統計を表示 |
w | ログイン中のユーザーとシステム情報を表示 | w | なし |
who | 現在ログインしているユーザーを表示 | who | なし |
パーミッション管理
セキュアなシステム運用を実現するために、ファイルやディレクトリのアクセス権を適切に管理する技術が重要です。このカテゴリでは、基本的なパーミッションの変更から、ACL(アクセス制御リスト)による詳細な設定まで、アクセス権の制御に必要なコマンドを網羅しています。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
getfacl | ファイルやディレクトリのACL(アクセス制御リスト)を表示 | getfacl file.txt | -R:ディレクトリを再帰的に表示 |
setfacl | ファイルやディレクトリにACL(アクセス制御リスト)を設定 | setfacl -m u:username:rwx file.txt | -m:ACLを変更 -x:指定したエントリを削除 -R:ディレクトリを再帰的に適用 |
umask | 新規ファイルやディレクトリのデフォルトパーミッションを設定 | umask 022 | -S:シンボリック形式で表示 |
プロセス管理
システム内で動作するプロセスを効率的に管理するために必要な操作を網羅。バックグラウンドジョブの制御や特定のプロセスの検索、終了方法など、システムの安定性を維持する上で必須のスキルにフォーカスしています。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
bg | ジョブをバックグラウンドで再開 | bg %1 | なし |
fg | ジョブをフォアグラウンドで再開 | fg %1 | なし |
jobs | シェルのバックグラウンドジョブを表示 | jobs | -l:ジョブ番号とPIDを表示 |
pgrep | 名前でプロセスを検索 | pgrep bash | -u ユーザー:指定したユーザーのプロセスを検索 -l:プロセス名とPIDを表示 |
pkill | 名前でプロセスを終了 | pkill bash | -u ユーザー:指定したユーザーのプロセスを終了 -SIGKILL:強制終了(シグナル指定) |
ログ管理
システムの状態を把握し、トラブルシューティングを効率的に進めるためには、ログを適切に操作する技術が不可欠です。このカテゴリでは、ログの表示、フィルタリング、記録など、運用に必要な操作を行うためのコマンドを幅広く取り上げています。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
head | ファイルの先頭を表示 | head -n 10 /var/log/syslog | -n 行数:表示する行数を指定 |
journalctl | systemdのログを表示 | journalctl -u nginx.service | -u ユニット名:特定のユニットのログを表示 -f:リアルタイムでログを表示 --since \時間\":指定した時間以降のログを表示" |
logger | システムログにメッセージを記録 | logger \ログに記録するメッセージ\"" | -p 優先度:ログの優先度を指定 -t タグ:メッセージにタグを付ける |
tail | ファイルの末尾を表示 | tail -n 10 /var/log/syslog | -n 行数:表示する行数を指定 -f:ファイルの末尾を継続的に表示 |
アーカイブ管理
データの保存や転送を効率化するために欠かせないアーカイブ管理の知識を整理。圧縮と解凍、アーカイブの作成と展開に特化したコマンドを中心に、膨大なデータを扱う際の作業効率を大幅に向上させる手法を取り上げています。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
bunzip2 | bzip2形式で圧縮されたファイルを解凍 | bunzip2 file.txt.bz2 | なし |
bzip2 | ファイルをbzip2形式で圧縮 | bzip2 file.txt | -k:元のファイルを保持 -z:圧縮モード(デフォルト) |
gunzip | gzipで圧縮されたファイルを解凍 | gunzip file.txt.gz | -k:元の圧縮ファイルを保持 |
gzip | ファイルを圧縮 | gzip file.txt | -k:元のファイルを保持 -r:ディレクトリを再帰的に圧縮 |
tar | ファイルやディレクトリをアーカイブ | tar -czvf archive.tar.gz /path | -c:新しいアーカイブを作成 -x:アーカイブを展開 -z:gzip形式で圧縮 -j:bzip2形式で圧縮 -v:処理内容を詳細に表示 |
unxz | xz形式で圧縮されたファイルを解凍 | unxz file.txt.xz | なし |
xz | ファイルをxz形式で圧縮 | xz file.txt | -k:元のファイルを保持 -z:圧縮モード(デフォルト) |
セキュリティとアクセス管理
セキュリティポリシーの実装とシステムアクセスの制御は、安定した運用の基盤となります。このカテゴリでは、ユーザー管理やアクセス権の設定に関連する重要なコマンドを扱い、システムの安全性と信頼性を高めるための手法を整理しています。
コマンド | 説明 | 使用例 | オプション |
---|---|---|---|
chmod | ファイルやディレクトリのパーミッションを変更 | chmod 755 file.txt | -R:ディレクトリを再帰的に変更 +x:実行権限を付与 -w:書き込み権限を削除 |
chown | ファイルやディレクトリの所有者を変更 | chown user:group file.txt | -R:ディレクトリを再帰的に変更 |
passwd | ユーザーのパスワードを変更 | passwd | -l:アカウントをロック -u:アカウントをアンロック -d:パスワードを削除 |
su | 別のユーザーに切り替え | su - username | -:ログインシェルを開始 |
sudo | 管理者権限でコマンドを実行 | sudo apt update | -l:現在許可されているコマンドを表示 -u ユーザー:指定したユーザーとしてコマンドを実行 |