Linuxコマンドメモ(一)(随時更新)
目次
- 管理系のLinuxコマンド
- a.パフォーマンス関連
- b.ユーザー権限関連
- b-01【chmod】-- パーミッション変更
- b-02【chown】-- ファイル、ディレクトリの所有者を変更する
- b-03【groupadd】-- グループを追加する。
- b-04【groupmod】-- グループの設定を変更する。
- b-05【groupdel】-- グループを削除する。
- b-06【useradd】-- ユーザーを追加する。
- b-07【usermod】-- ユーザーの設定を変更する。
- b-08【userdel】-- ユーザーを削除する。
- b-09【chgrp】-- ディレクトリやファイルの所有者グループを変更する。
- b-10【passwd】-- パスワードを設定する
- b-11【id】-- ユーザのIDを表示する。
- b-12【su】-- ユーザの変更を行う。
- b-13【whoami/groups】-- 現在のユーザ/所属グループの確認を行う。
- b-14【sudo】-- 指定したユーザーでコマンドを実行する。
- b-15【last】-- ログインユーザの履歴を表示する。
- b-16【who】-- ログイン中のユーザ一覧を表示する。
- b-17【w】-- ログインユーザの実行中プロセスを表示する。
- c.監査関連
- d.ファイル/ディレクトリ関連
- d-01【pwd】-- 現ディレクトリを表示する
- d-02【cd】-- ディレクトリを移動する
- d-03【cat】-- ファイルの内容を表示する
- d-04【less】-- (容量の大きい)ファイルの内容を表示する
- d-05【more】-- ファイルの内容を1画面ずつ表示する
- d-06【cut】-- ファイルから特定の文字を抜き出す
- d-07【file】-- ファイルの種類を表示する/文字コードを確認する
- d-08【wc】-- テキストファイルの文字数や行数を表示する
- d-09【iconv】-- ファイルの文字コードを変換する
- d-10【mv】-- ファイルを移動する(ファイル名を変更する)
- d-11【head】-- ファイルの先頭から10行表示する
- d-12【tail】-- ファイルの末尾から10行表示する
- d-13【grep】-- ファイルの中の文字列を検索する
- d-14【touch】-- 空のファイルを作成する
- d-15【diff】-- ファイルの差分を確認する
- d-16【mkdir】-- ディレクトリを作成する
- d-17【cp】-- ファイル/ディレクトリをコピーする
- d-18【rm】-- ファイル/ディレクトリを削除する
- d-19【rmdir】-- 中が空のディレクトリを削除する
- d-20【ls】-- ファイルやディレクトリを一覧で表示する
- d-21【find】-- 指定のディレクトリ配下のファイルとディレクトリを検索する
- d-22【ln】-- シンボリックリンクを作成する
- d-23【tar】-- アーカイブファイルを作成する/展開する
自分用メモとして残します。
管理系のLinuxコマンド
a.パフォーマンス関連
a-01【top】-- 実行中のプロセスをリアルタイムで表示する
主な起動オプション
短いオプション | 意味 |
---|---|
-d 間隔 | 更新する間隔を「ss.tt秒」で指定する |
-n 回数 | 表示を繰り返す回数を指定する |
-b | バッチモード。キー操作を受け付けず、「-n」で指定された回数または「CTRL+C」などで強制終了(kill)されるまで実行を続ける。topの結果をファイルに保存する際などに役立つ |
-s | セキュアモードで動作(起動中に「d」などを受け付けなくなる) |
-U ユーザー, -u ユーザー | 監視するユーザーを名前またはIDで指定 |
-p プロセスID | 監視するプロセスIDを指定。「-p 番号 -p 番号」または「-p 番号, 番号」のように複数指定できる(空白は省略可能) |
-c | COMMAND欄(右端)を、プログラム名の表示とコマンドラインの表示のどちらにするか切り替える(起動後は「c」で切り替え) |
-i | 何も実行していないアイドルプロセスを表示するか、しないかを切り替える(起動後は「i」で切り替え) |
-S | 累積時間モード(起動後は「S」で切り替え) |
-oアイテム | 出力の並べ替えに使用する項目(デフォルトはCPU使用率)を指定。指定できる項目名は「top -O」で確認 ※ |
-w 桁数 | 出力の幅 |
a-02【htop】-- topの代わり高機能なプロセスビューワ
CentOS 7の場合、下記のコマンドでインストールする。
$ sudo yum -y install epel-release
$ sudo yum -y install htop
htopを起動する
htop
下記の画面が表示される。
a-03【nice】-- 優先度を指定してコマンドを実行する
下記のコマンドで実行する。
$ nice -n 優先度
コマンド
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-n優先度 | --adjustment=優先度 | 優先度(-20~19:本文参照)を指定する |
a-04【uptime】-- システム稼働時間を調べる
下記のコマンドで実行する。
$ uptime
18:44:11 up 28 days, 1:26, 5 user, load average: 0.03, 0.07, 0.12
- 現在時刻:18:44:11
- 稼働時間:up 28 days, 1:26
- 接続ユーザー数:5 users
- load average:平均負荷(直近1分内:0.03、5分内:0.07、15分内:0.12)
b.ユーザー権限関連
b-01【chmod】-- パーミッション変更
下記のコマンドでパーミッションを変更する。
$ chmod 3桁数字(8進数)
ファイル名
3桁数字は、左から、1.所有者、2.グループ、3.その他のユーザー
8進数の数値の意味するパーミッションは下記:
名前 | 英字 | 8進数 | ファイル | ディレクトリ |
---|---|---|---|---|
読取 | r | 4 | ファイルの表示 | ファイル一覧の表示 |
書込 | に | 2 | ファイルの上書き、変更 | 新規ファイルの作成、削除 |
実行 | バツ | 1 | ファイルの実行 | そのディレクトリに移動 |
b-02【chown】-- ファイル、ディレクトリの所有者を変更する
下記のコマンドで実行する。
$ chown 所有者名
ファイル名またディレクトリ名
オプション
-c | 所有権が変更された場合、その詳細を表示します。 |
-f | エラーメッセージを表示しません。 |
-h | 指定したファイルがシンボリックリンクの場合、シンボリックリンクのみ所有権を変更します。システムファイルやディレクトリの所有権を一括で変更する場合はこのオプションを使いましょう。 |
-R | 指定したディレクトリとそのディレクトリ以下のファイルやディレクトリの所有権を再帰的に変更します。 |
-v | 所有者変更の詳細を表示します。-cは、変更された場合のみ。 |
b-03【groupadd】-- グループを追加する。
下記のコマンドで実行する。
$ groupadd [オプション]
グループ名
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-g グループID | --gid グループID | 作成するグループのグループIDを指定する(指定しなかった場合、他と重複しない値が自動で付く) |
-o | --non-unique | グループIDが同じグループの作成を許す |
-f | --force | グループが既に存在していた場合、終了する(エラーにはならない)。グループIDが既に用いられていた場合「-g」オプションをキャンセルする |
-p パスワード | --password パスワード | cryptで暗号化されたログインパスワードを利用できるようにする(「-p '暗号化された文字列'」のように指定する) |
-K キー=値 | --key キー=値 | /etc/login.defsに保存されている値を一時的に置き換える |
-r | --system | システムアカウントを作成する。-rを指定すると、ユーザーIDを/etc/login.defのSYS_GID_MINとSYS_GID_MAXに従って作成する。 |
作成したグループを確認する。
$ cat /etc/group
b-04【groupmod】-- グループの設定を変更する。
下記のコマンドで実行する。
$ groupmod [オプション]
グループ名
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-n グループ名 | --new-name グループ名 | 指定したグループ名に名前を変更する |
-g グループID | --gid グループID | 指定したグループIDに変更する |
-o | --non-unique | グループIDの重複を許す(-gと併用) |
-p パスワード | --password パスワード | cryptで暗号化されたログインパスワードを利用できるようにする(「-p '暗号化された文字列'」のように指定する) |
-R ディレクトリ | --root ディレクトリ | 指定したディレクトリに変更を適用し、そのディレクトリにある構成ファイルを使用する(chroot指定) |
b-05【groupdel】-- グループを削除する。
下記のコマンドで実行する。
$ groupdel [オプション]
グループ名
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-R ディレクトリ | --root ディレクトリ | chrootするディレクトリ |
-f | --force | 既存ユーザーのプライマリグループでも削除する |
b-06【useradd】-- ユーザーを追加する。
下記のコマンドで実行する。
$ useradd [オプション]
ユーザー名
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-m | --create-home | ユーザーのホームディレクトリが存在しない場合、作成する |
-M | --no-create-home | ユーザーのホームディレクトリを作成しない |
-b | --base-dir BASE_DIR | ホームディクトリのベースとなるディレクトリ(/homeなど) |
-d ディレクトリ | --home-dir ディレクトリ | ユーザーのホームディレクトリ(通常はユーザー名と同じにする) |
-k ディレクトリ | --skel ディレクトリ | ひな型ディレクトリ(デフォルトは/etc/skel)を指定する。kを指定してもしなくても、ひな型ディレクトリにあるファイルがホームディレクトリにコピーされる |
主な起動オプション(ユーザーIDとグループ関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-u ユーザーID | --iud ユーザーID | 作成するユーザーのユーザーIDを指定する(指定しなかった場合、他と重複しない値を自動で設定する) |
-o | --non-unique | ユーザーIDが同じユーザーの作成を許す(固有のユーザーIDは設定できない) |
-g グループ | --gid グループ | ユーザーが属するプライマリグループの名前またはグループIDを指定する |
-G グループリスト | --groups リスト | ユーザーが属するセカンダリグループのリストを指定する(空白を含まず「,」区切りで指定) |
-U | --user-group | ユーザーと同じ名前のグループを作成する |
-N | --no-user-group | ユーザーと同じ名前のグループを作成しない |
主な起動オプション(その他)
短いオプション | 長いオプション | 意味 |
---|---|---|
-s シェル | --shell シェル | ユーザーのログインシェル(フルパスで指定)を指定する(指定しなかった場合、デフォルト設定を用いる) |
-p パスワード | --password パスワード | cryptで暗号化されたログインパスワードを利用できるようにする(「-p '暗号化された文字列'」のように指定する) |
-e 日付 | --expiredate 日付 | ユーザーのアカウントが期限切れとなる日付を指定する |
-f 日数 | --inactive 日数 | ユーザーのパスワードが期限切れになってからアカウントが無効化されるまでの日数(デフォルト値は「-1」:無効化しない) |
-c コメント | --comment コメント | /etc/passwdのコメント欄の内容を指定する(GECOSフィールド:ユーザーの所属やフルネームなどを書く) |
-l | --no-log-init | ユーザーをlastlogとfaillogのデータベースに追加しない |
-r | --system |
システムアカウントを作成する。-rを指定すると、ユーザーIDを/etc/login.defのSYS_GID_MAXに従って作成する。 ホームディレクトリは作成されない。ログインもできないように設定したい場合は「-s /sbin/nologin」を併用する。 |
-Z ユーザー | --selinux-user ユーザー | SELinuxのユーザーマッピングに指定したユーザーを指定する |
-K キー=値 | --key キー=値 | /etc/login.defsに保存されている値を一時的に置き換える(詳しくは本文を参照) |
-D | --defaults | デフォルト設定を表示する、または変更する(「-b」「-e」「-f」「-g」「-s」と組み合わせる |
b-07【usermod】-- ユーザーの設定を変更する。
下記のコマンドで実行する。
$ usermod [オプション]
ユーザー名
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-L | --lock | ユーザーをロックする(ログインできなくなる) |
-U | --unlock | ユーザーのロックを解除する |
-e 日付 | --expiredate 日付 | アカウントが使用不能になる日付を指定する(「YYYY-MM-DD」形式で指定) |
-f 日数 | --inactive 日数 | パスワードの使用期限が切れてから使えなくなるまでの日数を指定する |
-l 新ログイン名 | --login 新ログイン名 | ログイン名を変更する(ホームディレクトリも併せて変更するには「-d」オプションで指定) |
-d パス | --home パス | ユーザーのホームディレクトリを変更する(現ディレクトリの内容を移動したい場合は「-m」オプションを同時に指定) |
-m | --move-home | (「-d」オプション指定時)現ホームディレクトリの内容を新たな場所に移動する |
-R ディレクトリ | --root ディレクトリ | 「chroot」するディレクトリを指定する |
-p パスワード | --password パスワード | 新たなパスワードを指定する(パスワードは暗号化されたものを指定) |
-s シェル | --shell シェル | ユーザーのシェルを変更する(指定を空白にした場合はデフォルトのシェル) |
-g グループ | --gid グループ | プライマリーグループを変更する |
-G グループ | --groups グループ | セカンダリーグループを変更する(複数ある場合は「,」で区切って指定)。変更ではなく追加したい場合は「-a」オプションを同時に指定する |
-a | --append | 「-G」オプションで指定したグループをセカンダリーグループに追加する |
-u UID | --uid UID | ユーザーIDを変更する |
-o | --non-unique | (「-U」オプション指定時)一意でないユーザー(UIDの重なるユーザー)を許可する |
-c コメント | --comment コメント | 「/etc/passwd」のコメント欄(「GECOS」フィールド。ユーザーの所属やフルネームなどを記述する)を設定する |
b-08【userdel】-- ユーザーを削除する。
下記のコマンドで実行する。
$ userdel [オプション]
ユーザー名
主な起動オプション
短いオプション | 意味 |
---|---|
-r | 対象ユーザーのホームディレクトリとメールスプールも同時に削除する |
b-09【chgrp】-- ディレクトリやファイルの所有者グループを変更する。
下記のコマンドで実行する。
$ chgrp [オプション]
新しい所有グループ ファイル1 ファイル2・・・
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-R | --recursive | ファイルとディレクトリを再帰的に変更する |
--preserve-root | 「/」に対する再帰的な操作は行わない | |
--no-preserve-root | 「/」を特別扱いしない(デフォルト) | |
--reference=参照ファイル | 参照ファイルと同じパーミッションにする | |
-h | --no-dereference | シンボリックリンクそれ自身を変更する |
--dereference | シンボリックリンクそれ自身ではなく、指している先を変更する | |
--from=現在のユーザー:現在のグループ | 現在のユーザーとグループに一致していた場合だけ変更する(chownコマンドのみ) | |
-v | --verbose | 処理した内容を出力する |
-c | --changes | 変更が行われた場合のみ処理内容を出力する |
-f | --silent, --quiet | ほとんどのエラーメッセージを出力しない |
b-10【passwd】-- パスワードを設定する
下記のコマンドで実行する。
$ passwd [オプション]
[ユーザー名]
自分自身のパスワードを変更する。
$ passwd
主な起動オプション
オプション | 意味 |
---|---|
-l ユーザー名 | 指定したユーザーをロックする |
-u ユーザー名 | 指定したユーザーのロックを解除する |
-d ユーザー名 | パスワードを削除する |
-S ユーザー名 | パスワードの状態を表示する |
-n 日数 ユーザー名 | パスワード変更後、再度変更可能になるまでの日数を設定する |
-x 日数 ユーザー名 | パスワードが有効な日数を設定する |
-w 日数 ユーザー名 | パスワード失効前に警告を表示する日数を設定する |
-i 日数 ユーザー名 | パスワードが有効期限に達した後、パスワードを無効にするまでの猶予期間を設定する (これ以上期限切れのままにしているとログインできなくなる) |
--stdin | 新しいパスワードを標準入力から読み込む |
b-11【id】-- ユーザのIDを表示する。
下記のコマンドで実行する。
$ id [オプション]
[ユーザー名]
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-u | --user | 実効ユーザーのみをIDで表示する |
-g | --group | 実効グループのみをIDで表示する(ファイルの作成などはこのグループIDで行われる。通常はプライマリーグループ) |
-G | --groups | ユーザーが所属する全てのグループをIDで表示する |
-n | --name | ユーザーやグループの名前だけを表示する(-u、-g、-Gとともに使用) |
-r | --real | 実効IDの代わりに実IDを表示する(-u、-g、-Gとともに使用) |
-Z | --context | セキュリティコンテキストを表示する(idコマンドを実行しているユーザーのみを表示し、引数にユーザーは指定できない) |
-z | --zero | 区切り文字としてNULLを使用(デフォルトは空白区切り) |
-a | 互換性オプション(他のバージョンとの互換性のために残されているオプションで、オプションなしで実行したときと同様に、全ての情報が表示される) |
b-12【su】-- ユーザの変更を行う。
下記のコマンドで実行する。
$ su [オプション]
[ユーザー名]
スーパーユーザー(root)に切り替える。
$ su
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-c コマンド | --command=コマンド | 対話シェルは起動せずにコマンドを実行する(シェルに「-c」オプションとともに指定したコマンド列を渡す) |
-f | --fast | シェルに「-f」オプションを渡す(csh/tcsh用。「-f」は「.cshrc」を読み込まないオプション) |
-,-l | --login | シェルを「ログインシェル」にする(ログイン時のスタートアップファイルを読み、環境変数を再設定する) |
-m,-p | --preserve-environment | 環境変数「HOME」「USER」「LOGNAME」「SHELL」を変更せず、「/etc/passwd」に設定されているシェルではなく、環境変数SHELLで指定されているシェルを実行する |
-s シェル | --shell=シェル | 実行するシェルを指定する |
b-13【whoami/groups】-- 現在のユーザ/所属グループの確認を行う。
下記のコマンドで自分のユーザー名を表示する。
$ whoami
下記のコマンドで自分の所属グループを表示する。
$ groups
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
― | --help | 使い方を表示して終了する |
― | --version | バージョン情報を表示して終了する |
b-14【sudo】-- 指定したユーザーでコマンドを実行する。
下記のコマンドで実行する。
$ sudo [オプション]
[コマンド]
主な起動オプション(パスワード入力、認証、権限関係)
オプション | 意味 |
---|---|
-A | パスワード入力用のコマンドを使用する(コマンドは「/etc/sudo.conf」または環境変数「SUDO_ASKPASS」で設定) |
-n | パスワードを要求するプロンプトを表示しない(パスワード入力が必要なコマンドの場合はエラーとなって実行できない) |
-p 文字列 | パスワード入力時のプロンプトを指定する(デフォルトは「:」記号) |
-S | パスワードを端末ではなく標準入力から読み込む(パスワードの末尾には改行が必要) |
-k | 保存されている認証情報を無効にする(次回のsudo実行時には必ずパスワード入力が必要)。コマンドと一緒に使用可能 |
-K | 保存されている認証情報を完全に消去する |
-V | 保存された認証情報を更新する |
-u ユーザー | コマンドを実行するときのユーザーを「ユーザー名」または「ユーザーID(#記号と数字)」で指定する |
-g グループ | コマンドを実行するときのグループを「グループ名」または「グループID(#記号と数字)」で指定する |
-P | sudoを実行するユーザーが所属するグループのままコマンドを実行する |
主な起動オプション(その他)
オプション | 意味 |
---|---|
-b | 指定したコマンドをバックグラウンドで実行する |
-e | 指定したファイルを編集する(コマンドは「sudoedit」を使用する) |
-E | 現在の環境変数を保持してコマンドを実行する |
-H | 環境変数「HOME」をrootユーザーのホームディレクトリに変更してコマンドを実行する |
-s | 環境変数「SHELL」で指定されたシェル、またはrootユーザーのシェルを実行する。コマンドを指定しなかった場合は対話シェルとなる |
-i | rootユーザーのデフォルトのシェルをログインシェルとして実行する。コマンドを指定しなかった場合は対話シェルとなる |
-l | sudoを実行するユーザーに許可されているコマンドを一覧表示する。「sudo -l コマンド」のようにコマンドを指定した場合、コマンドが許可されていればコマンドの絶対パスを表示する |
-ll | 「-l」オプションと同様だが、長い形式で表示する |
-U ユーザー | 「-l」オプションと組み合わせて使用し、指定したユーザーの権限で実行できるコマンドを一覧表示する |
b-15【last】-- ログインユーザの履歴を表示する。
下記のコマンドで実行する。
$ last [オプション]
[ユーザー名] [端末番号]
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-n 行数, -行数 | --limit 行数 | lastで表示する行数を指定する |
-t 日時 | --until 日時 | 指定した日時(YYYYMMDDhhmmss)より前のログイン情報を表示する |
-x | --system | システムのシャットダウンとランレベル変更の記録も表示する |
-R | --nohostname | hostname欄を表示しない |
-a | --hostlast | ホスト名を最後の欄に表示する |
-d | --dns | リモートログイン時、ログイン元のIPアドレスをホスト名に変換して表示する |
-i | --ip | リモートログイン時、ログイン元のIPアドレスのまま表示する |
-f ファイル名 | --file ファイル名 | 「/var/log/wtmp」ファイルの代わりに使用するファイルを指定する |
-o | 古い書式のwtmpファイルを読み込む |
b-16【who】-- ログイン中のユーザ一覧を表示する。
下記のコマンドで実行する。
$ who [オプション]
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-a | --all | 全ての情報を表示する。「-b -d --login -p -r -t -T -u」相当 |
-b | --boot | 現在ログインしているシステムが起動した時刻を表示する |
-d | --dead | 終了したプロセスを表示する |
-H | --heading | ヘッダ行を表示する |
-l | --login | システムのログインプロセスを表示する |
--lookup | 正式なホスト名をDNSから取得して表示する | |
-m | 標準入力に関連付けられたホスト名とユーザーのみを表示する | |
-q | --count | ログイン中のユーザーのログイン名とユーザー数を表示する |
-r | --runlevel | 現在のランレベルを表示する |
-s | --short | 名前と端末、ログインした時刻のみを表示する(デフォルト) |
-T,-w | --mesg,--message,--writable | ユーザーがメッセージを受け取れる状態かどうかを表示する |
-u | --users | ログイン以降のアイドルタイム(IDLE列)を表示する(過去1分以内にアクティブな場合は「.」、24時間以上使用されていない場合は「old」と表示) |
b-17【w】-- ログインユーザの実行中プロセスを表示する。
下記のコマンドで実行する。
$ w [オプション]
[ユーザー名]
主な起動オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-h | --no-header | ヘッダを表示しない |
-u | --no-current | 現在のプロセス時間とCPU時間を計算する際に、ログイン名と現在のユーザー名の違いを無視する |
-s | --short | 短く表示する(ログイン時刻、CPU使用時間を表示しない) |
-f | --from | リモートホスト名を表示しない |
c.監査関連
c-01【auditctl】-- 監査システム Audit の動作設定、およびルールを定義する
バージョンを調べる。
$ auditctl -v
auditctl version 2.8.5
オプション一覧を表示する。
$ auditctl -h
usage: auditctl [options]
-a <l,a> Append rule to end of <l>ist with <a>ction
-A <l,a> Add rule at beginning of <l>ist with <a>ction
-b <backlog> Set max number of outstanding audit buffers
allowed Default=64
-c Continue through errors in rules
-C f=f Compare collected fields if available:
Field name, operator(=,!=), field name
-d <l,a> Delete rule from <l>ist with <a>ction
l=task,exit,user,exclude
a=never,always
-D Delete all rules and watches
-e [0..2] Set enabled flag
-f [0..2] Set failure flag
0=silent 1=printk 2=panic
-F f=v Build rule: field name, operator(=,!=,<,>,<=,
>=,&,&=) value
-h Help
-i Ignore errors when reading rules from file
-k <key> Set filter key on audit rule
-l List rules
-m text Send a user-space message
-p [r|w|x|a] Set permissions filter on watch
r=read, w=write, x=execute, a=attribute
-q <mount,subtree> make subtree part of mount point's dir watches
-r <rate> Set limit in messages/sec (0=none)
-R <file> read rules from file
-s Report status
-S syscall Build rule: syscall name or number
-t Trim directory watches
-v Version
-w <path> Insert watch at <path>
-W <path> Remove watch at <path>
--loginuid-immutable Make loginuids unchangeable once set
--reset-lost Reset the lost record counter
Linuxでは、auditdサービスが常に起動されています。
下記のコマンドでauditdサービスの実行状況を調べる。
$ systemctl status
auditd.service
監査ルールの設定方法
2つの方法で設定することができます。
・auditctlコマンドで設定
⇒ auditdサービスが再起動すると、ルールが消える
・/etc/audit/audit.rules
にルールを設定
⇒ auditdサービスが再起動しても、ルールが消えない
監視ルールの表示。-l
$ auditctl -l
No rules
監視ルールを全て削除する。 -D
$ auditctl -D
No rules
監視ルールの追加
- その一:既存ルールの末尾に追加: -a
$ auditctl -a exit,always -F arch=b64 -F path=/tmp/aa.txt -S open
$ auditctl -a exit,always -F arch=b64 -F path=/tmp/bb.txt -S open
$ auditctl -a exit,always -F arch=b64 -F path=/tmp/cc.txt -S open
⇒ 追加したルールを表示する。aa.txt -> bb.txt -> cc.txtの順であることがわかる。
$ auditctl -l
-a always,exit -F arch=b64 -S open -F path=/tmp/aa.txt
-a always,exit -F arch=b64 -S open -F path=/tmp/bb.txt
-a always,exit -F arch=b64 -S open -F path=/tmp/cc.txt
- その二:既存ルールの末尾に追加: -A
$ auditctl -A exit,always -F arch=b64 -F path=/tmp/aa.txt -S open
$ auditctl -A exit,always -F arch=b64 -F path=/tmp/bb.txt -S open
$ auditctl -A exit,always -F arch=b64 -F path=/tmp/cc.txt -S open
⇒ 追加したルールを表示する。cc.txt -> bb.txt -> aa.txtの順であることがわかる。
$ auditctl -l
-a always,exit -F arch=b64 -S open -F path=/tmp/cc.txt
-a always,exit -F arch=b64 -S open -F path=/tmp/bb.txt
-a always,exit -F arch=b64 -S open -F path=/tmp/aa.txt
指定した監視ルールを削除する。 -d
$ auditctl -d exit,always -F arch=b64 -F path=/tmp/aa.txt -S open
No rules
⇒ 監視ルールを表示する。aa.txt が削除されることがわかる。
$ auditctl -l
-a always,exit -F arch=b64 -S open -F path=/tmp/bb.txt
-a always,exit -F arch=b64 -S open -F path=/tmp/cc.txt
【利用】
コマンド実行時にその情報をログに残すよう監査ルールの設定
$ auditctl -a exit,always -F arch=b64 -S execve
c-02【ausearch】-- ログファイルから特定の監査結果を検索する
バージョンを調べる。
$ ausearch -v
ausearch version 2.8.5
オプション一覧を表示する。
$ ausearch -h
usage: ausearch [options]
-a,--event <Audit event id> search based on audit event id
--arch <CPU> search based on the CPU architecture
-c,--comm <Comm name> search based on command line name
--checkpoint <checkpoint file> search from last complete event
--debug Write malformed events that are skipped to stderr
-e,--exit <Exit code or errno> search based on syscall exit code
-f,--file <File name> search based on file name
--format [raw|default|interpret|csv|text] results format options
-ga,--gid-all <all Group id> search based on All group ids
-ge,--gid-effective <effective Group id> search based on Effective
group id
-gi,--gid <Group Id> search based on group id
-h,--help help
-hn,--host <Host Name> search based on remote host name
-i,--interpret Interpret results to be human readable
-if,--input <Input File name> use this file instead of current logs
--input-logs Use the logs even if stdin is a pipe
--just-one Emit just one event
-k,--key <key string> search based on key field
-l, --line-buffered Flush output on every line
-m,--message <Message type> search based on message type
-n,--node <Node name> search based on machine's name
-o,--object <SE Linux Object context> search based on context of object
-p,--pid <Process id> search based on process id
-pp,--ppid <Parent Process id> search based on parent process id
-r,--raw output is completely unformatted
-sc,--syscall <SysCall name> search based on syscall name or number
-se,--context <SE Linux context> search based on either subject or
object
--session <login session id> search based on login session id
-su,--subject <SE Linux context> search based on context of the Subject
-sv,--success <Success Value> search based on syscall or event
success value
-te,--end [end date] [end time] ending date & time for search
-ts,--start [start date] [start time] starting data & time for search
-tm,--terminal <TerMinal> search based on terminal
-ua,--uid-all <all User id> search based on All user id's
-ue,--uid-effective <effective User id> search based on Effective
user id
-ui,--uid <User Id> search based on user id
-ul,--loginuid <login id> search based on the User's Login id
-uu,--uuid <guest UUID> search for events related to the virtual
machine with the given UUID.
-v,--version version
-vm,--vm-name <guest name> search for events related to the virtual
machine with the name.
-w,--word string matches are whole word
-x,--executable <executable name> search based on executable name
監視システム audit ログは、以下のファイルに格納されています。。
$ ls -l /var/log/audit/*
-rw------- 1 root root 5097758 Feb 12 10:11 /var/log/audit/audit.log
⇒現在時刻に変換する -i
$ auditctl ausearch -i -if /var/log/audit/audit.log
type=DAEMON_START msg=audit(●2018年05月14日 15:50:12.485:9877) : op=start ver=2.7.6 format=raw kernel=3.10.0-693.el7.x86_64 auid=unset pid=556 uid=root ses=unset subj=system_u:system_r:auditd_t:s0 res=success
-以下、略-
出力範囲を絞り込む方法(-ts:開始,-te:終了)
9時48分から9時50分までのログを表示する。
$ ausearch -i -if /var/log/audit/audit.log -ts 09:48:00 -te 09:50:00
月を絞り込む方法。this-month
$ ausearch -i -ts this-month
今週でを絞り込む方法。this-week
$ ausearch -i -ts this-week
昨日から今日までで絞り込む方法。yesterday、today
$ ausearch -i -ts yesterday -te today
今日のログに絞り込む方法。today
$ ausearch -i -ts today
直近のログに絞り込む方法。recent
$ ausearch -i -ts recent
c-03【aureport】-- ログファイルから監査結果のレポートを作成する
c-04【history】-- コマンド入力の履歴を表示、再利用する
下記のコマンドで実行する。
$ history [オプション] [ファイル]
オプション項目
短いオプション | 意味 |
---|---|
整数値 | 履歴の末尾から指定した行数分を表示する |
-c | 履歴一覧から全ての項目を削除する |
-d 番号 | 指定した番号の履歴項目を削除する |
-a | 履歴ファイルに現在のセッションの履歴を追加する |
-n | 履歴ファイルからまだ読み込まれていない行を全て読み込む |
-r ファイル | 履歴ファイルを読み込み、内容を履歴一覧に追加する |
-w ファイル | 現在の履歴を履歴ファイルに上書きする |
※オプション -a、-n、-r、-wは、履歴ファイルを指定しなかった場合、
ホームディレクトリの「.bash_history」を用いる。
環境変数HISTFILEが別のファイルを指定していた場合、そのファイルを用いる。
$ ls -l .bash_history
-rw-------. 1 root root 30049 Feb 19 10:44 .bash_history
$ echo $HISTFILE
/root/.bash_history
historyの表示内容は番号とコマンドラインが対になっています。
この番号はコマンドの再利用に役立ちます。コマンドライン上で「!番号」と入力することで、
指定したコマンドを実行します。
$ history 5
1007 history 5
1008 echo $HISTFILESIZE
1009 ll .bash_history
1010 echo $HISTFILE
1011 history 5
$ !1010
echo $HISTFILE
/root/.bash_history
※ 環境変数HISTFILESIZE、またはHISTSIZEを設定することで変更可能。
環境変数の値はexportコマンドで設定できる。
環境変数の内容を確認するにはechoコマンドを使う。
「echo $HISTFILESIZE」「echo $HISTSIZE」などと実行する。
d.ファイル/ディレクトリ関連
d-01【pwd】-- 現ディレクトリを表示する
下記のコマンドで実行する。
$ pwd [オプション] [ファイル]
オプション項目
短いオプション | 意味 |
---|---|
-P | 物理的なディレクトリ名を表示する |
-L | 論理的なディレクトリ名を表示する(デフォルト) |
d-02【cd】-- ディレクトリを移動する
下記のコマンドで実行する。
$ cd [オプション] [ディレクトリ]
オプション項目
短いオプション | 意味 |
---|---|
-P | シンボリックリンクを指定した場合、リンクが指す「物理的な」ディレクトリ名を使用する |
-e | -Pオプション使用時、カレントディレクトリの変更に成功した後で物理的な名前を判定できない場合、0以外(失敗)のステータスを返す |
-L | 論理的なディレクトリ名を使用する(デフォルト) |
d-03【cat】-- ファイルの内容を表示する
下記のコマンドで実行する。
$ cat [オプション] ファイル1 ファイル2・・・
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-n | --number | 行番号を付け加える |
-b | --number-nonblank | 行番号を付け加える。ただし空白行には付けない |
-s | --squeeze-blank | 連続した空行を1行にする |
-v | --show-nonprinting | TAB、改行、改ページ以外の非表示文字を表示する |
-t | ― | 非表示文字を表示、TABを"^I"、用紙送りを"^L"とする |
-E | --show-ends | 行の最後に"$"を表示する |
-A | --show-all | 全ての非表示文字を表示する(-vETと同じ) |
-e | ― | TABを除く全ての非表示文字を表示する(-vEと同じ) |
d-04【less】-- (容量の大きい)ファイルの内容を表示する
下記のコマンドで実行する。
$ less [オプション] ファイル名
オプション項目(通常)
短いオプション | 長いオプション | 意味 |
---|---|---|
+行数,-行数 | 指定した行から表示する | |
+/文字列 | 指定文字列を検索し、見つけた行から表示する(正規表現によるパターン指定が可能) | |
-p文字列 | --pattern=文字列 | 指定文字列を検索し、見つけた行から表示する(正規表現によるパターン指定が可能) |
-oファイル | --log-file=ファイル | パイプ(|)などで標準入力から入力した内容を表示する際、指定したファイルにコピーを保存する。既存ファイルを指定した場合は、上書きするか、追加するかを確認するメッセージが表示される |
-Oファイル | --LOG-FILE=ファイル | 「-o」と同じだが、既存ファイルを指定した場合は、確認せずに上書きする |
-kファイル名 | --lesskey-file=ファイル名 | lesskeyファイル(キー定義ファイル、「lesskey」コマンドで生成)を指定する |
-L | --no-lessopen | 環境変数LESSOPEN(lessコマンド用のオプションを定義した環境変数)を無視する |
オプション項目(スクロール、表示方法関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-s | --squeeze-blank-lines | 連続した空行を1行にする |
-S | --chop-long-lines | 画面幅より長い行を折り返さない |
-# | --shift | 水平方向にスクロールする際のデフォルトの移動桁数(「0」にするとデフォルト値が画面幅の半分になる) |
-数、-z数 | --window=数 | スクロールするウィンドウの大きさを指定する(1画面より小さくする際は負の数で行数を指定。例えば、ウィンドウが24行で「-z-4」とした場合は、20行でスクロールする) |
-q | --quiet、--silent | ファイル末尾まで表示したときのビープ音を鳴らさない(入力コマンドエラー時は鳴らす) |
-Q | --QUIET、--SILENT | 「-q」のときも含め、ビープ音を一切鳴らさない |
-e | --quit-at-eof | ファイルの末尾に2回達したら表示を終了する(実行例4を参照) |
-E | --QUIT-AT-EOF | ファイルの末尾に到達したら表示を終了する |
-F | --quit-if-one-screen | 1画面で表示できる場合はすぐに終了する |
-K | --quit-on-intr | [Ctrl]+[C]キーで終了する |
-n | --line-numbers | 行番号を表示しない |
-N | --LINE-NUMBERS | 行番号を表示する |
-J | --status-column | 画面の左にステータス行を表示する(例えば、検索時に該当する行に「*」記号が表示される) |
-m | --long-prompt | moreコマンド同様、プロンプトに現在の表示位置をパーセントで表示する |
-M | --LONG-PROMPT | 「-m」より詳細なプロンプトを表示する |
-f | --force | 通常のファイル以外も強制的に表示する |
-r | --raw-control-chars | 制御文字をそのまま表示する(デフォルトでは「^A」のようにキャレット記号を使って表示する) |
-R | --RAW-CONTROL-CHARS | 「-r」と同様だが、可能な限り画面表示を正しく維持する |
-XXX | --mark-wrong-char | 表示できない誤った文字を表示する際にマーク文字(〓)を使用する(デフォルトではバイナリとして表示) |
-u | --underline-special | バックスペースとキャリッジリターンを印刷可能文字として扱う |
-U | --UNDERLINE-SPECIAL | バックスペース、タブ、キャリッジリターンを制御文字として扱う(「-u」「-U」ともに指定していない場合は、これらの文字を使って重ね打ちによる太字や下線を表示する) |
-x数,… | --tabs=数,… | タブストップの位置を設定する。「-x4」の場合4の倍数、「-x9,17」は「9,17,25,33…」となる(デフォルトは8) |
-~ | --tilde | ファイル末尾以降のチルダ記号(~)を表示しない |
オプション項目(検索関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-i | --ignore-case | 検索時に大小文字を区別しない(ただし、検索文字列に大文字を使用した場合は大小文字を区別する) |
-I | --IGNORE-CASE | 検索時、常に大小文字を区別しない |
-a | --search-skip-screen | 画面に表示されている次の行以降を検索する(デフォルトは画面内の2行目以降、または最後の検索対象が見つかった行以降を検索する) |
-g | --hilite-search | 検索時、最初に見つけた分だけをハイライト表示する(デフォルトでは見つけた箇所を全てハイライト表示) |
-G | --HILITE-SEARCH | 検索時のハイライト表示をしない |
-w | --hilite-unread | 画面単位でスクロールした際、新しく表示された行の先頭部分をハイライト表示する |
-W | --HILITE-UNREAD | 新しく表示された行の先頭部分を常にハイライト表示する |
-tタグ | --tag=タグ | タグを定義する(タグはソースコードで定義箇所にジャンプしたりする際に使用する) |
-Tタグファイル | --tag-file=タグファイル | タグのリストが書かれたファイルを指定する(タグファイルは「ctags」コマンドで生成) |
主なキー操作
キー操作 | 内容 |
---|---|
※「^v」は[Ctrl]キーを押しながら[v]、[esc-v]は[ESC]キーを押してから[v] | |
h/H | ヘルプを表示(less画面と同様、[Enter]キーで1行、スペースキーで1画面先に進み[q]で終了する) |
q/:q/Q/:Q/ZZ | 終了する(「:q」は[:]キーを押してから[q]キー) |
e/^E/j/^N/return | 1行進む(コマンドに続いて数字を入力すると指定行数分進む) |
y/^Y/k/^K/^P | 1行戻る(コマンドに続いて数字を入力すると指定行数分進む) |
f/^F/^V/space/esc-space | 1画面進む([esc-space]の場合データの末尾で止まらない) |
F | 1画面進み、末尾まで表示しても終了せずにファイルを監視する(「tail -f」同様、データが追加され続けるログファイルなどに使用する) |
b/^B/esc-v | 1画面戻る |
d/^D | 半画面分進む |
u/^U | 半画面分戻る |
esc-)/右矢印 | 半画面分右を表示する |
esc-(/左矢印 | 半画面分左を表示する |
g/</esc-< | 先頭行に移動する(コマンドに続いて数字を指定すると指定した行へ移動する) |
G/>/esc-> | 最終行に移動する(コマンドに続いて数字を指定すると指定した行へ移動する) |
v | 表示中のファイルを「vi」コマンドで編集する(使用するエディタは、環境変数VISUALまたはEDITORで変更可能) |
!コマンド | シェルでコマンドを実行する(シェルは環境変数SHELLで変更可能) |
主なキー操作(検索関係)
キー操作 | 内容 |
---|---|
/ | 検索する(「/」続いて検索パターンを入力する) |
? | 後ろ方向に検索する(「?」に続いて検索パターンを入力する) |
n | 次を検索する(「n」に続いて数字を入力すると指定回数分先に進む) |
N | 逆順に次を検索する(「N」に続いて数字を入力すると指定回数分先に進む) |
esc-u | 検索結果の反転/反転解除を切り替える |
& | 検索パターンにあっている行だけを表示する(「&」に続いて検索パターンを入力する) |
d-05【more】-- ファイルの内容を1画面ずつ表示する
下記のコマンドで実行する。
$ more [オプション] ファイル
他のコマンドの実行結果を1画面ずつ表示する。
$ コマンド | more [オプション]
オプション項目
オプション | 意味 |
---|---|
+数値 | 数値で指定した行から表示する |
+/文字列 | 指定した文字列を検索して、見つけた行の2行上から表示する |
-s | 連続した空行を1行にする |
-l | 改ページを無視する |
-u | 下線の処理を行わない |
-数値 | 画面の行数を指定する |
-f | 画面での行数ではなく、データの行数を表示する |
-d | 無効なキーが入力された場合には、ビープ音の代わりに簡単なヘルプを表示する |
d-06【cut】-- ファイルから特定の文字を抜き出す
下記のコマンドで実行する。
$ cut [オプション] ファイル
「file.txt」を読み込んで各行の先頭10文字だけ出力する。(バイト単位)
$ cat -b 1-10 file.txt
「file.txt」を読み込んで各行の先頭10文字だけ出力する。(文字数単位)
$ cat -c 1-10 file.txt
オプション項目(いずれか1つを必ず指定)
短いオプション | 長いオプション | 意味 |
---|---|---|
-b 出力リスト | --bytes=出力リスト | 切り出す位置のリストをバイト数で指定する |
-c 出力リスト | --characters=出力リスト | 切り出す位置のリストを文字数で指定する |
-f 出力リスト | --fields=出力リスト | 切り出す位置のリストをタブ区切りのフィールドで指定する(区切り文字は「-d」オプションで変更可能) |
リストの指定方法
指定 | 意味 |
---|---|
N | N番目のバイト、文字またはフィールド(行頭を1とする) |
N-M | N番目からM番目まで |
N- | N番目から行末まで |
-M | 頭からM番目まで |
オプション項目(その他)
短いオプション | 長いオプション | 意味 |
---|---|---|
-d 文字 | --delimiter=文字 | フィールドの区切り文字として、タブの代わりに使用する文字を指定する(1文字のみ) |
--output-delimiter=文字列 | 出力の区切り文字として使用する文字列を指定する(1文字以上が使用可能。デフォルトでは入力の区切り文字を使用) | |
-s | --only-delimited | 区切り文字を含まない行を出力しない |
--complement | 出力指定した箇所以外を出力する |
d-07【file】-- ファイルの種類を表示する/文字コードを確認する
下記のコマンドで実行する。
$ file [オプション] ファイル1 ファイル2 ・・・
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-f | --files-from リスト | 検査するファイルの名前をリストファイルから読み込む(実行例2を参照) |
-L | --dereference | シンボリックリンクの参照先を調べる(実行例3を参照) |
-z | --uncompress | 圧縮ファイルの中も検査する(実行例4を参照) |
-b | --brief | 出力行の最初にファイル名を表示しない(簡易モード) |
-N | --no-pad | 出力を整列するためのファイル名への空白の追加を行わない |
d-08【wc】-- テキストファイルの文字数や行数を表示する
下記のコマンドで実行する。
$ wc [オプション] [ファイル・・・]
「find」コマンドは見つけたファイルを「1件1行」で出力するので、行数を数えることでファイルの個数を知ることができます。
$ find . -name "*.txt" | wc -l
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-c | --bytes | バイト数を表示する |
-m | --chars | 文字数を表示する(マルチバイト文字に対応) |
-l | --lines | 改行の数を表示する |
-w | --words | 単語数を表示する |
-L | --max-line-length | 最も長い行の長さを表示する |
--files0-from=リスト | NULL文字で区切られたファイル名のリストを指定する(「--files0-from=- 」とした場合は、ファイル名を標準入力から読み込む) | |
d-09【iconv】-- ファイルの文字コードを変換する
下記のコマンドで実行する。
$ iconv [オプション] [ファイル1 ファイル2……]
「more」コマンドで表示するのであれば「iconv -f sjis ファイル名 | more」とします。デフォルトの出力はUTF-8なので指定は不要ですが、明示したい場合は「-t utf8」のように指定する。
$ iconv -f sjis -t utf8 sampletext.txt | more
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-f コード | --from-code=コード | 入力のエンコーディング(文字コード) |
-t コード | --to-code=コード | 出力のエンコーディング(文字コード) |
-c | 変換できなかった文字を出力しない | |
-s | --silent | 対応していないなどで変換できなかった場合にエラーメッセージを表示しない |
--verbose | 処理中のメッセージ(ファイル名など)を表示する | |
-o | --output=ファイル | 保存先のファイル |
-l | --list | 対応しているコードを表示する |
d-10【mv】-- ファイルを移動する(ファイル名を変更する)
下記のコマンドで実行する。
$ mv [オプション] 移動元 移動先
また、下記のコマンドで実行する。
$ mv [オプション] ファイル1 ファイル2…… 移動先ディレクトリ
オプション項目(「-f」「-i」「-n」を同時に使った場合は、最後に指定したものが有効になります)
短いオプション | 長いオプション | 意味 |
---|---|---|
-f | --force | 移動先に同名ファイルがあっても確認せずに上書きする |
-i | --interactive | 上書き前に確認する |
-n | --no-clobber | 既存のファイルを上書きしない |
-u | --update | 移動先にある同名ファイルのタイムスタンプが同じ、または新しい場合は移動しない |
-t ディレクトリ名 | --target-directory=ディレクトリ名 | 「-t」で指定したディレクトリに移動する |
-T | --no-target-directory | 移動先(最後の引数)がディレクトリでも特別扱いしない(「cp」コマンド[応用編その1]参照) |
--strip-trailing-slashes | 移動元ファイルの最後にあるスラッシュ(/)を取り除く | |
-b | --backup=方法 | 上書きされるファイルのバックアップを作る(「ln」コマンド参照) [方法]:「numbered」または「t」の時は番号の添え字、「simple」または「never」の時は、ファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(「-b」と同じ)、「existing」または「nil」の時は既にあるファイルに従う(ない場合はで「simple」と同じ) |
-S | --suffix=接尾辞 | バックアップファイルを作る際の、ファイル名末尾に付ける文字(無指定時は、「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う) |
-v | --verbose | 経過を表示する |
d-11【head】-- ファイルの先頭から10行表示する
下記のコマンドで実行する。
$ head [オプション] ファイル名
別のコマンドの実行結果の先頭部分を表示する。
$ コマンド | head [オプション]
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-c 数字 | --bytes 数字 | 先頭から指定したバイト数のみ表示する。「-c 5 b」のように単位を付加することも可能(b=512, KB=1000, K=1024, MB=1000*1000, M=1024*1024…) |
-n 数字 | --lines 数字 | 先頭から指定した行数のみ表示する |
-q | --quiet, --silent | ファイルごとのヘッダ表示を行わない(複数ファイル指定時に使う) |
-v | --verbose | 常にファイルごとのヘッダ出力を行う |
d-12【tail】-- ファイルの末尾から10行表示する
下記のコマンドで実行する。
$ tail [オプション] ファイル名
ログファイルを監視する。
$ tail -f /var/log/messages
別のコマンドの実行結果の末尾部分を表示する。
$ コマンド | tail [オプション]
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-c 数字 | --bytes 数字 | 末尾の指定したバイト数のみ表示する。「-c 5 b」のように単位を付加することも可能(b=512, KB=1000, K=1024, MB=1000*1000, M=1024*1024…) |
-n 数字 | --lines 数字 | 末尾の指定した行数のみ表示する |
-q | --quiet, --silent | ファイルごとのヘッダ表示を行わない(複数ファイル指定時に使う) |
-v | --verbose | 常にファイルごとのヘッダ出力を行う |
-f | --follow | ファイルを監視して内容が追加されるたびに末尾に表示する(ログ監視などに使用する。[Ctrl]+[C]キーで終了) |
d-13【grep】-- ファイルの中の文字列を検索する
下記のコマンドで実行する。
$ grep [オプション] 検索パターン ファイル
コマンドの実行結果から必要な箇所だけを抽出する。
$ コマンド | grep [オプション] 検索パターン
オプション項目(検索パターン関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-e 検索パターン | --regexp=パターン | 検索パターンを指定する |
-G | --basic-regexp | 検索に基本正規表現を使う |
-E | --extended-regexp | 検索に拡張正規表現を使う |
-P | --perl-regexp | 検索にPerl正規表現を使う |
-f ファイル | --file=ファイル | ファイルに書かれているパターンを検索する |
-i | --ignore-case | 大文字と小文字を区別しない |
-w | --word-regexp | 単語全体でパターンと一致するものを検索する(「単語単位で検索する」を参照) |
-x | --line-regexp | 行全体がパターンと一致するものを検索する |
オプション項目(表示関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-v | --invert-match | パターンに一致しない行を表示する |
-s | --no-messages | エラーメッセージを表示しない |
-q | --quiet --silent |
結果を表示しない(主にシェルスクリプトなどで判定用に使う) |
-L | --files-without-match | 一致するものが含まれていないファイルのファイル名のみ表示する |
-l | --files-with-matches | 一致するものが含まれているファイルのファイル名のみ表示する |
-c | --count | 一致するものが含まれている回数のみ表示 |
-m 回数 | --max-count=回数 | パターンが指定した回数に達したら処理を終了する |
-o | --only-matching | 一致した箇所だけを表示する(通常は行単位で表示) |
-n | --line-number | 行番号を併せて表示する(「行番号付きで表示する」を参照) |
-b | --byte-offset | パターンが何文字目にあるかを併せて表示する |
-H | --with-filename | ファイル名を併せて表示する |
-h | --no-filename | ファイル名を表示しない(複数ファイル指定時) |
--color=WHEN | 見つかったパターンを目立たせる(WHEN部分にはalways、never、autoを指定) | |
-B 行数 | --before-context=行数 | 一致した行の前の行も表示する(「前後の行も表示する」を参照) |
-A 行数 | --after-context=行数 | 一致した行の後の行も表示する(「前後の行も表示する」を参照) |
-C 行数,-行数 | --context=行数 | 一致した行の前後の行も表示する |
オプション項目(検索結果関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-d ACTION | --directories=ACTION | 検索対象にディレクトリを指定した場合の動作(ACTION部分にはread、recurse、skipを指定) |
-r | --recursive | ディレクトリを指定した場合はサブディレクトリ内のファイルも含めて検索する(--directories=recurse相当) |
-R | --dereference-recursive | サブディレクトリも含めて検索、さらにシンボリックリンクの先も対象とする |
--include=パターン | パターンにマッチするファイルだけを対象とする | |
--exclude=パターン | パターンにマッチするファイルは検索対象から除外する | |
--exclude-from=ファイル | 対象から除外するファイル名のパターンをファイルから読み込む | |
--exclude-dir=パターン | パターンにマッチするディレクトリは検索対象から除外する |
d-14【touch】-- 空のファイルを作成する
下記のコマンドで実行する。
$ touch [オプション] ファイル1 ファイル2……
ファイルのタイムスタンプを現在の時刻に変更する。
$ touch ファイル1 ファイル2……
指定したファイルが存在しなかった場合は、空のファイルが作成される。
$ touch ファイル
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-t スタンプ | 「[[CC]YY]MMDDhhmm[.ss]」形式で指定した日時に変更する(実行例2を参照) | |
-d | --date=日付文字列 | 文字列で指定した日時に変更する(実行例2を参照) |
-r | --reference=ファイル名 | 指定したファイルのタイムスタンプと同じ日時にする |
-a | 最終アクセス日時のみ変更する(指定しない場合は、最終更新日時と最終アクセス日時が変更される) | |
-m | 最終更新日時のみ変更する(指定しない場合は、最終更新日時と最終アクセス日時が変更される) | |
--time=指定 | 指定した種類の時刻を変更する。指定が「access」「atime」「use」ならばアクセス日時(「-a」相当)、「modify」「mtime」の場合は更新日時のみ変更する(「-m」相当) | |
-c | --no-create | ファイルを作成しない |
-h | --no-dereference | シンボリックリンクの場合、リンク先ではなくシンボリックそのもののタイムスタンプを変更する(ファイルシステムが対応している場合のみ) |
d-15【diff】-- ファイルの差分を確認する
下記のコマンドで実行する。
$ diff [オプション] ファイル1 ファイル2
オプション項目(出力関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-c | --context | 違いのある箇所をファイルごとに出力し、!記号で変更箇所を示す(context形式、第103回参照) |
-C 行数 | --context=行数 | context形式で出力する行数を指定(デフォルトは3行) |
-u | --unified | 違いのある箇所を1つにまとめて、-記号と+記号で変更箇所を示す(unified形式、第103回参照) |
-U 行数 | --unified=行数 | unified形式で出力する行数を指定(デフォルトは前後3行) |
-行数 | 異なっている部分の前後の行数を指定(-cまたは-u指定時) | |
-L ラベル | --label=ラベル | context形式とunified形式のヘッダに、ファイル名の代わりに出力するラベル(短縮形式「-L」は非推奨、第103回参照) |
-p | --show-c-function | 変更がC言語のどの関数で行われたのかを表示する。「-F'^[_a-zA-Z$]'」相当 |
-F 正規表現 | --show-function-line=正規表現 | context形式とunified形式で、各差分のブロックに対し、その前方がパターンにマッチした最後の行の一部を表示 |
-T | --initial-tab | normal形式やcontext形式で、テキストの前にスペースでなくタブを出力する(行中でのタブによる桁ぞろえが見やすくなる) |
-t | --expand-tabs | タブによる位置合わせを保存するため、出力のタブをスペースに展開する |
--inhibit-hunk-merge | 隣接する差分ブロックをマージしない | |
-D 名前 | --ifdef=名前 | if-then-else形式で出力する(“名前”はプリプロセッサの条件マクロで使用する名前) |
--changed-group-format=フォーマット | if-then-else形式で、両方のファイルで異なる行を出力する際のフォーマット | |
--line-format=フォーマット | if-then-else形式で、全ての入力行を出力する際のフォーマット | |
--new-group-format=フォーマット | if-then-else形式で、2番目のファイルだけにある行グループを出力する際のフォーマット | |
--new-line-format=フォーマット | if-then-else形式で、2番目のファイルだけにある行の出力に使用するフォーマット | |
--old-group-format=フォーマット | if-then-else形式で、1番目のファイルだけにある行グループを出力する際のフォーマット | |
--old-line-format=フォーマット | if-then-else形式で、1番目のファイルだけにある行の出力に使用するフォーマット | |
--unchanged-group-format=フォーマット | if-then-else形式で、両方のファイルに共通な行グループを出力する際のフォーマット | |
--unchanged-line-format=フォーマット | if-then-else形式で、両方のファイルに共通な行の出力に使用するフォーマット | |
-y | --side-by-side | 2列で出力する(side-by-side) |
-W 文字数 | --width=文字数 | side-by-side形式で出力する幅 |
--left-column | side-by-side形式で、共通な行は左側の列にのみ表示する | |
--suppress-common-lines | side-by-side形式で共通な行を表示しない | |
-e | --ed | edコマンドのスクリプト形式で出力する |
-n | --rcs | RCS(バージョン管理システム)形式の差分を出力する |
-l | --paginate | prコマンドによるページ付けを行う |
--strip-trailing-cr | 行末のCRを取り除く | |
-q | --brief | ファイルが違うかどうかだけを出力する |
-s | --report-identical-files | 2つのファイルが同じだったときも出力する |
オプション項目(比較方法関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-i | --ignore-case | 大文字と小文字の違いを無視する |
-B | --ignore-blank-lines | 空行の有無を無視する |
-b | --ignore-space-change | スペースの数だけが異なる場合は違いを無視する |
-E | --ignore-tab-expansion | タブ展開によるスペースの変更を無視する |
-w | --ignore-all-space | 空白を無視して比較する |
-I 正規表現 | --ignore-matching-lines=正規表現 | パターンにマッチするような行を挿入・削除するだけの変更を無視する |
-H | --speed-large-files | 小さな変更が大量にあるような大きなファイルを高速に扱うためにヒューリスティックな手法を用いる(短縮形式「-H」は非推奨) |
-d | --minimal | より小さな差分を生成する(動作が遅くなる) |
--horizon-lines=行数 | 差分の前後にある共通部分を保持する行数 | |
-a | --text | ファイルを強制的にテキストと見なして1行ずつ比較する |
オプション項目(ディレクトリ比較関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-r | --recursive | ディレクトリを比較するとき、サブディレクトリも再帰的に比較する |
-S ファイル名 | --starting-file=ファイル名 | ディレクトリを比較する際の開始ファイル(中断した比較を続行する際に利用) |
--ignore-file-name-case | ファイルを比較する際にファイル名の大文字小文字を無視する | |
--no-ignore-file-name-case | ファイルを比較する際に、ファイル名の大文字小文字を考慮する | |
-N | --new-file | ディレクトリを比較する際、片方のディレクトリにのみファイルが存在していた場合、“新規ファイルとの比較”として動作する |
-P | --unidirectional-new-file | 2番目のディレクトリにのみファイルが存在していた場合のみ、新規ファイルとの比較として動作する(短縮形式「-P」は非推奨) |
-x パターン | --exclude=パターン | ディレクトリを比較する際に、除外するファイルを指定する |
-X リスト | --exclude-from=リスト | ディレクトリを比較する際に無視する名前のパターンが書かれたファイルを読み込む |
d-16【mkdir】-- ディレクトリを作成する
下記のコマンドで実行する。
$ mkdir [オプション] ディレクトリ名
「dir1/dir2/dir3」というディレクトリを作成する。それぞれのディレクトリが既にある場合は何もせず、警告も表示されない。
$ mkdir -p dir1/dir2/dir3
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-m | --mode=モード | 作成するディレクトリのパーミッションを設定する |
-p | --parents | 必要に応じて親ディレクトリも作成する |
-v | --verbose | 経過を表示する |
d-17【cp】-- ファイル/ディレクトリをコピーする
下記のコマンドで実行する。
$ cp [オプション] コピー元 コピー先
コピー先にディレクトリを指定した場合は、指定したディレクトリにコピー元と同じ名前のファイルが作成される。
$ cp [オプション] ファイル1 ファイル2…… コピー先ディレクトリ
オプション項目(一般)
短いオプション | 長いオプション | 意味 |
---|---|---|
-i | --interactive | 上書きする前に確認する(実行例1を参照) |
-v | --verbose | 実行内容を表示する(実行例3を参照) |
-n | --no-clobber | 存在するファイルを上書きしない |
-f | --force | 強制的に上書きする |
-b | --backup=方法 | 上書きされるファイルのバックアップを作る(「ln」コマンド参照) [方法]:「numbered」または「t」の場合は番号の添え字、「simple」または「never」の場合はファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(「-b」と同じ)、「existing」または「nil」の場合は既にあるファイルに従う(ない場合はで「simple」と同じ) |
-S 接尾辞 | --suffix=接尾辞 | バックアップファイルを作る際のファイル名末尾に付ける文字(無指定時は「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う) |
オプション項目(リンク関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-d | シンボリックリンク自体をコピーする(--no-dereference --preserve=linksと同様) | |
-s | --symbolic-link | コピーの代わりにシンボリックリンクを作成する |
-l | --link | コピーの代わりにファイルのハードリンクを作成する |
-L | --dereference | コピー元のシンボリックリンクを常にたどる |
-P | --no-dereference | コピー元にあるシンボリックリンクをたどらない |
オプション項目(ディレクトリ関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-R,-r | --recursive | コピー元にディレクトリを指定した場合、再帰的に(サブディレクトリも含めて)コピーする |
-t ディレクトリ名 | --target-directory=ディレクトリ名 | 「-t」で指定したディレクトリにコピーする |
-T | --no-target-directory | コピー先(最後の引数)がディレクトリでも特別扱いしない |
オプション項目(属性関連)
短いオプション | 長いオプション | 意味 |
---|---|---|
-a | --archive | サブディレクトリや属性なども含め、可能な限り全てを保持しながらコピーする(-dR --preserve=allと同様) |
-u | --update | コピー元のファイルがコピー先ファイルより新しいか新規ファイルの場合だけコピーする |
-p | パーミッションと所有者とタイムスタンプを保持する(--preserve=mode,ownership,timestamps相当) | |
--preserve[=属性リスト] | 指定した属性を保持する。属性を指定しなかった場合は、mode(パーミッション)、ownership(所有者)、timestamps(タイムスタンプ)が保持される。その他、context(コンテキスト情報)、links(ディレクトリ内のハードリンク)、xattr(ファイルシステムの拡張属性)、all(可能な限り全ての属性)を指定可能 | |
--no-preserve=属性リスト | 指定した属性を保持しない | |
--attributes-only | ファイルのデータをコピーせず、ファイルの属性のみコピーする | |
d-18【rm】-- ファイル/ディレクトリを削除する
下記のコマンドで実行する。
$ rm [オプション] ファイル1 ファイル2 ファイル3……
「rm -r ディレクトリ」でディレクトリを中にあるファイルごと削除する。ファイルやディレクトリは複数指定できる。
$ rm -r [オプション] ディレクトリ1 ディレクトリ2 ディレクトリ3……
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-f | --force | 存在しないファイルを無視する(確認も行わない) |
-i | --interactive | 削除前に確認する |
-v | --verbose | 経過を表示する |
-d | --directory | unlinkでディレクトリを削除する |
-r,-R | --recursive | ディレクトリを再帰的に削除する |
--preserve-root | 「/」を削除しない(デフォルト)(※) | |
--no-preserve-root | 「/」を特別なものとして扱わない(※) |
※「--preserve-root」「--no-preserve-root」が有効かどうかは、rmコマンドのバージョンによって異なります
d-19【rmdir】-- 中が空のディレクトリを削除する
下記のコマンドで実行する。
$ rmdir [オプション] ディレクトリ名
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
--ignore-fail-on-non-empty | ディレクトリが空でない場合のエラーだけを無視する(エラーメッセージを表示しない) | |
-p | --parents | 必要に応じて親ディレクトリも削除する(実行例2を参照) |
-v | --verbose | 経過を表示する |
d-20【ls】-- ファイルやディレクトリを一覧で表示する
下記のコマンドで実行する。
$ ls [オプション] [ファイルまたはディレクトリ……]
オプション項目(表示フォーマット関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-l | 長いフォーマットで表示する。ディレクトリを指定した場合、最初にトータルのブロック数を表示してからディレクトリ内のファイルの情報を表示する | |
-o | 「-l」と同じだが、グループ情報は表示しない | |
-g | 「-l」と同じだが、ファイル所有者を表示しない | |
-n | --numeric-uid-gid | 「-l」と同じだが、所有者とグループ名の代わりにUIDとGIDを数値で表示する |
--full-time | 「-l」と同じだが、完全な日時を表示する(「-l --time-style=full-iso」と同じ) | |
-G | --no-group | 「-l」と併用したとき、グループ名を表示しない |
--author | 「-l」と併用したとき、各ファイルの作成者を表示する | |
オプション項目(サイズ関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-h | --human-readable | 「-l」と併用したとき、サイズを人が読みやすい形式で表示する(例:1K、234M、2G) |
--si | 「-h」と同じだが、乗数の単位として1024の代わりに1000を使用する | |
-k | 「-l」と併用したとき、サイズを1KB単位(1024バイトの倍数)で表示する | |
--block-size=SIZE | 「-l」と併用したとき、サイズを「SIZE」の倍数として表示する。SIZEは1024単位のK、M、G……および1000単位のKB、MB、GB……などが使用可能。例えば、「--block-size=M」とすると1M単位(1,048,576の倍数)で表示 |
オプション項目(時刻関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-c | 「-l」と併用したとき、更新日の代わりに「ctime」(ファイルの属性など変更した時刻)を表示する | |
-u | 「-l」と併用したとき、更新日の代わりに最終アクセス日を表示する | |
--time=WORD | 「-l」と併用し、ファイル更新時刻の代わりに「WORD」で指定した時間を表示する(WORDが「atime」の場合は「-u」相当、「access」の場合は「-u」相当、「use」の場合は「-u」相当、「ctime」「status」の場合は「-c」相当) | |
--time-style=STYLE | 「-l」と併用し、「STYLE」で指定した形式で時間を表示する(STYLEは「full-iso」「long-iso」「iso」「locale」「FORMAT」が指定可能。FORMATは「date」コマンドと同様に指定) |
オプション項目(タイプ識別子関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-F | --classify | 名前の後にタイプ識別子(*/=>@|のいずれか)を付けて出力する(実行例4を参照) |
--file-type | 「-F」と同じだが、実行ファイルを表す「*」は付けない | |
-p | --indicator-style=slash | ディレクトリの場合のみ「/」を付けて表示する |
オプション項目(その他の情報)
短いオプション | 長いオプション | 意味 |
---|---|---|
-i | --inode | 各ファイルの前にファイルの「iノード番号」(ファイルを管理するのに使われている数値)を表示する |
-s | --size | 各ファイルの前にファイルのブロック数を表示する |
-Z | --context | 各ファイルのSELinuxセキュリティコンテキストを表示する |
オプション項目(出力フォーマット)
短いオプション | 長いオプション | 意味 |
---|---|---|
-C | リストを常に複数の列で出力する(リダイレクトやパイプで画面以外に出力した場合も画面表示と同じように複数の列で出力する:実行例3を参照) | |
-1 | リストを常に1件1行で表示する(画面表示の際もリダイレクトやパイプで画面以外へ出力した場合と同じように1行1件で表示する) | |
-m | ファイル名のリストをカンマで区切って表示する | |
-x | 複数列の表示でファイル名を列方向ではなく行方向(縦方向)に並べる | |
-T 数 | --tabsize=文字数 | タブ幅を8の代わりに指定した文字数にする |
-w 数 | --width=文字数 | スクリーン幅を指定した文字数にする |
--format=WORD | 表示スタイルをWORDで指定(例:「--format=long」で「-l」相当。WORDが「across」「horizontal」の場合は「-x」相当、「commas」の場合は「-m」相当、「long」「verbose」の場合は「-l」相当、「single-column」の場合は「-1」相当、「vertical」の場合は「-C」相当) | |
-Q | --quote-name | ファイル名をダブルクオート(")で囲む |
--quoting-style=WORD | ファイル名のクオートをWORDで指定された形式で行う(WORDには「literal」「locale」「shell」「shell-always」「c」「escape」を指定) | |
--color[=WHEN] | カラーで出力する。WHENには「always」「never」「auto」を指定(デフォルトはautoで、出力先が端末の時だけカラーで出力する)、色の設定は環境変数「LS_COLORS」で行う | |
-N | --literal | 生の要素名を表示する(制御文字などを特別扱いしない) |
-q | --hide-control-chars | 表示不可能な文字を「?」に置き換える |
--show-control-chars | 表示不可能な文字をそのまま表示する(出力が端末ではない時のデフォルト) | |
オプション項目(並べ替え関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-t | ファイルの更新日が新しい順に表示する(「-lc」が併せて指定されている場合は「ctime」順、「-lu」が併せて指定されている場合は最終アクセス日順で表示) | |
-S | ファイルサイズの大きい順に並べる | |
--group-directories-first | 先にディレクトリの一覧を表示してからファイルを一覧表示する(「--sort=none」「-U」と併用した場合は無効) | |
--sort=WORD | 名前順の代わりに「WORD」で指定した順で並べ替える(例:「--sort=time」で更新日順。WORDが「none」は「-U」相当、「extension」は「-X」相当、「size」は「-S」相当、「time」は「-t」相当、「version」は「-v」相当) | |
-v | 自然な数字(version)順でソートする | |
-X | 拡張子のアルファベット順にソートする | |
-r | --reverse | 並び順を反転させる |
-U | ファイルを並べ替えず、ディレクトリに含まれている要素順で表示する | |
-f | ファイルを並べ替えず、ディレクトリ情報のままで表示する(「-aU」が有効になり、「--color」が無効になる) | |
オプション項目(表示対象関係)
短いオプション | 長いオプション | 意味 |
---|---|---|
-a | --all | ドットファイルも表示する |
-A | --almost-all | ドットファイルも表示する、ただし「.」と「..」を除く |
-B | --ignore-backups | 「~」で終了する要素を一覧表示しない |
--ignore=PATTERN | シェル形式の「PATTERN」(「D*」や「file[1-3].txt」など)に一致する要素は表示しない | |
--hide=PATTERN | シェル形式の「PATTERN」に一致する要素は表示しない(「-a」または「-A」で上書きされるため「--hide=".b*"」のような指定は無効) | |
-d | --directory | ディレクトリの内容ではなく、ディレクトリそのものの情報を表示する(シンボリックリンクもたどらない) |
-H | --dereference-command-line | コマンドラインで指定したファイルやディレクトリがシンボリックリンクの場合は、リンク先の情報で表示(「-F」「-d」「-l」と一緒に使う。例えば、「/bin」が「/usr/bin」へのシンボリックリンクの場合、「ls -l /bin」ではシンボリックリンクの情報が表示されるが、「ls -lH /etc」では「ls -l /usr/bin」と同じ結果になる) |
--dereference-command-line-symlink-to-dir | コマンド行のシンボリックリンクがディレクトリを指している場合には、シンボリックリンクをたどる | |
-L | --dereference | ディレクトリ内のファイルも含めて、全てをシンボリックリンクのリンク先の情報で表示する |
-R | --recursive | ディレクトリを指定した場合、再帰的に表示する |
d-21【find】-- 指定のディレクトリ配下のファイルとディレクトリを検索する
下記のコマンドで実行する。
$ find [オプション] [検索パス] [検索式]
オプション項目
オプション | 意味 |
---|---|
-P | シンボリックリンクをたどらない(デフォルト) |
-L | 全てのシンボリックリンクをたどる |
-H | コマンドラインで指定したシンボリックリンクをたどる |
-D オプション | 診断用の情報(デバッグ情報)を出力する。オプションには次の文字列が入る help:デバッグ用オプションの説明を表示 tree:検索式を構造化した情報 stat:statやlstatを使ってファイルを調べたときのメッセージ opt:検索式を最適化する際の情報 rates:各処理の成功した回数と失敗した回数を表示 |
-Oレベル | 最適化レベル。「-O1」はファイル名による判別を先に行う(デフォルト)。「-O2」「-O3」では別の判定を先に行うなどで処理を高速化する |
d-22【ln】-- シンボリックリンクを作成する
ファイルのリンク(ハードリンクまたはシンボリックリンク)を作成する。
$ ln [オプション] ファイル名 リンク名
ファイルのシンボリックリンクを作成する。
$ ln -s ファイル名 リンク名
$ ln -s ディレクトリ名 リンク名
$ ln -s ファイル1 ファイル2…… ディレクトリ
オプション項目
短いオプション | 長いオプション | 意味 |
---|---|---|
-s | --symbolic | ハードリンクの代わりにシンボリックリンクを作成する |
-d,-F | --directory | ディレクトリのハードリンクを作成する(スーパーユーザーのみ) |
-f | --force | リンクファイルと同じ名前のファイルがあっても強制的に上書きする |
-i | --interactive | 上書き前に確認する |
-n | --no-dereference | リンクの作成場所として指定したディレクトリがシンボリックリンクだった場合、参照先にリンクを作るのではなく、シンボリックリンクそのものを置き換える(-fと組み合わせて使用) |
-L | --logical | 対象がシンボリックリンクの場合リンクを巡る |
-P | --physical | シンボリックリンク自体へのハードリンクを作成する |
-r | --relative | 相対パスのシンボリックリンクを作成する |
-T | --no-target-directory | リンク先を常に通常ファイルとして扱う |
-t DIR | --target-directory=DIR | 指定したディレクトリにリンクを作成する(DIR部分はディレクトリ名) |
-b | --backup=方法 | 上書きされるファイルのバックアップを作成する(実行例2を参照) [方法]:「numbered」または「t」の場合は番号の添え字、「simple」または「never」の場合はファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(-bと同じ)、「existing」または「nil」の場合は既にあるファイルに従う(ない場合はsimpleと同じ) |
-S 接尾辞 | --suffix=接尾辞 | バックアップファイルを作る際のファイル名末尾に付ける文字(無指定時は「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う) |
-v | --verbose | 経過を表示する |
d-23【tar】-- アーカイブファイルを作成する/展開する
$ tar -czvf アーカイブ.tgz 対象ファイル
$ tar -xzvf アーカイブ.tgz
操作オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-c | --create | 新しいアーカイブを作成する |
-r | --append | アーカイブの最後にファイルを追加する |
-A | --catenate, --concatenate |
アーカイブにtarアーカイブを追加する |
-u | --update | アーカイブのファイルを更新する(アーカイブ内の同名ファイルより新しいものだけを追加する) |
-d | --diff, --compare |
アーカイブとファイルシステムを比較する |
--delete | アーカイブから削除する | |
-t | --list | アーカイブの内容の一覧を表示する |
-x | --extract,--get | アーカイブからファイルを抽出する |
共通オプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-f アーカイブ | --file=アーカイブ | アーカイブファイル名を指定する |
-C ディレクトリ | --directory=ディレクトリ | カレントディレクトリを指定したディレクトリに変更してから実行する |
--recursion | ディレクトリを再帰的に処理する(デフォルト) | |
-h | --dereference | シンボリックリンクをたどる |
--hard-dereference | ハードリンクをたどる | |
-N 日付 | --newer=日付, --after-date=日付 |
指定した日付より新しいファイルだけを保存する(日付の代わりにファイルを指定することも可能。この場合、指定したファイルより新しいファイルだけが対象になる) |
-P | --absolute-names | ファイル名から先頭の「/」を取り除かない |
-p | --preserve-permissions | 所有者などのファイル属性を保持する(スーパーユーザーのデフォルト) |
-k | --keep-old-files | 既存のファイルを置き換えない |
--keep-newer-files | アーカイブより新しい場合は既存ファイルを置き換えない | |
--overwrite | 既存のファイルを上書きする | |
-U | --unlink-first | ファイルを上書きする前に削除する |
--recursive-unlink | ディレクトリを展開する際、いったん既存ディレクトリを空にする | |
--suffix=接尾辞 | バックアップの接尾辞を指定する(環境変数「SIMPLE_BACKUP_SUFFIX」より優先する。どちらも指定されていない場合は「~」を使用する) | |
--remove-files | アーカイブへ追加した後にファイルを削除する | |
-T ファイル | --files-from=ファイル | 対象とするファイル名を指定したファイルから読み込む |
--unquote | 「-T」で読み込んだファイル名の引用符を外す(デフォルト) | |
-X ファイル | --exclude-from=ファイル | 除外するファイル名をファイルから読み込む |
-z | --gzip | アーカイブをgzip形式で圧縮する、gzip形式で圧縮されたアーカイブを展開する(拡張子は「.tar.gz」または「.tgz」) |
-j | --bzip2 | アーカイブをbzip2形式で圧縮する、bzip2形式で圧縮されたアーカイブを展開する(拡張子は.tar.bz2) |
-Z | --compress, --uncompress |
アーカイブをcompress形式で圧縮する、compress形式で圧縮されたアーカイブを展開する(拡張子は「.tar.Z」) |
-W | --verify | アーカイブを書き出した後に検証する |
-v | --verbose | 処理したファイルを詳しく出力する |