ファイルの圧縮、解凍
・gzip [オプション] [ファイル名] 指定したファイルを圧縮。拡張子は .gz となる
| -c | 圧縮結果を標準出力に表示します。 |
| -d | 圧縮されたファイルを展開します。gunzipコマンドと同等。 |
| -f | ファイルが既に存在する場合は上書きします。 |
| -l | 圧縮されたファイルの情報(サイズ、圧縮率、ファイル名)を表示します。 |
| -r | 指定したディレクトリ内のファイルを圧縮します。 |
・bzip2 [オプション] [ファイル名] 指定したファイルを圧縮。拡張子は .bz2 となる
| -c | 圧縮結果を標準出力に表示します。 |
| -d | 圧縮されたファイルを展開します。bunzip2コマンドと同等。 |
| -f | ファイルが既に存在する場合は上書きします。 |
・gunzip [ファイル名] gzipで圧縮したファイルの解凍
・bunzip2 [ファイル名] bzip2で圧縮したファイルの解凍
・xz [オプション] [ファイル名] 指定したファイルを圧縮。拡張子は .xzとなる
| オプション | 説明 |
|---|---|
| -d | 圧縮ファイルを展開する |
| -k | 圧縮・解凍後にファイルを元ファイルを削除しない |
| -l | 圧縮ファイル内のファイルを一覧表示する |
・圧縮ファイルの閲覧 解凍無しで内容を表示
| コマンド | 説明 |
|---|---|
| zcat | gzipコマンドで圧縮されたファイルの内容を表示 |
| bzcat | bzip2コマンドで圧縮されたファイルの内容を表示 |
| xzcat | xzコマンドで圧縮されたファイルの内容を表示 |
アーカイブの作成、展開
・tar[オプション]ファイル名あるいはディレクトリ名
| オプション名 | 概要 | 実例 |
|---|---|---|
| -c, –create | アーカイブを作成する | tar -cvf archive.tar folder |
| -x, –extract | アーカイブからファイルを抽出する | tar -xvf archive.tar |
| -t, –list | アーカイブ内のファイルを一覧表示する | tar -tvf archive.tar |
| -v, –verbose | 実行結果を詳細表示する | tar -cvf archive.tar folder |
| -f, –file | アーカイブファイル名を指定する | tar -cvf archive.tar folder |
| -z, –gzip | gzip形式で圧縮・解凍する | tar -czvf archive.tar.gz folder |
| -j, –bzip2 | bzip2形式で圧縮・解凍する | tar -cjvf archive.tar.bz2 folder |
| -J, –xz | xz形式で圧縮・解凍する | tar -cJvf archive.tar.xz folder |
| -C, –directory | 指定したディレクトリで作業を行う | tar -xvf archive.tar -C /tmp |
| -u, –update | アーカイブ内の古いファイルを更新する | tar -uvf archive.tar new_file.txt |
| -r, –append | アーカイブにファイルを追加する | tar -rvf archive.tar new_file.txt |
| –delete | アーカイブから指定したファイルを削除する | tar –delete -f archive.tar file.txt |
| –exclude | アーカイブの対象から指定したファイルを除外する | tar -cvf archive.tar –exclude ‘*.log’ folder |
・cpio フラグ [オプション]<ファイルrリスト>[アーカイブ]
| -o / –create | コピーアウトモード (copy-out mode) | ファイルに格納するモード。アーカイブを作成する |
| -i / –extract | コピーインモード (copy-in mode) | ファイルから展開するモード。アーカイブからファイルを 取り出す |
| -p / –pass-through | コピーパスモード (copy-pass mode) | copy-passモード。アーカイブにせつずに別ディレクトリ などにファイルをそのままコピーする |
| -A / –append | 既存のアーカイブにファイルを追加する。 |
| -d / –make-directories | 必要な場合にディレクトリを作成する |
| -v / –verbose | 処理されたファイル一覧を表示する。 -tオプションと併用すると「is -l」と同じ出力になる |
| -r / –rename | 対話的にファイル名を変更する |
| -t / –list | 入力ファイルの一覧を表示する |
・dd [オプション] ブロック単位でファイルをコピー、変換する
| オプション | 意味 |
|---|---|
| if=ファイル | 標準入力の代わりにファイルから読み出す。デバイスファイルも指定可能 |
| of=ファイル | 標準出力の代わりにファイルへ書き込む。デバイスファイルも指定可能 |
| bs=バイト数 | 1回に読み書きするブロックサイズ(バイト数) ※2 |
| count=個数 | ibsで指定したサイズのブロックを入力から個数分だけコピーする |
パーミッションの設定
・ファイルのパーミッションと所有者の確認

・アクセス権
| アクセス権 | 表記 | 説明 |
| 読み取り | r | read。ファイルの読み取りが可能 ( 内容表示など ) |
| 書き込み | w | write。ファイルへの書き込みが可能 ( 編集や上書きコピーなど ) |
| 実行 | x | execute。ファイルの実行が可能 ( プログラムやシェルスクリプトの実行 ) |

・ファイルの種別 「- 」はファイル、「 d 」はディレクトリ、「 l 」はリンク
・アクセス権を数値で表す 読み取り(r = 4)、書き込み(w = 2) 実行(x = 1)
| 記号表記 | 数値 |
| — | 0 |
| –x | 1 |
| -w- | 2 |
| -wx | 3 |
| r– | 4 |
| r-x | 5 |
| rw- | 6 |
| rwx | 7 |
・chmod [ オプション ] アクセス権 ファイル名 アクセス権を変更する
| オプション | 説明 |
| -R | 指定したディレクトリ以下の全てのファイルのアクセス権の変更 |
| 対象 | 説明 |
| u | 所有者 |
| g | グループ |
| o | その他のユーザ |
| a | 全てのユーザ |
| 操作 | 説明 |
| + | アクセス権の追加 |
| – | アクセス権の削除 |
| = | アクセス権の指定 |
| 許可の種別 | 説明 |
| r | 読み取り権限 |
| w | 書き込み権限 |
| x | 実行権限 |
| s | SUID または SGID |
| t | スティッキービット |
$ chmod go+w testdata.txt
SUID、SGID、スティッキービット
| 比較項目 | 数値表現 | 文字列表現 | ファイルにつけた場合 | ディレクトリにつけた場合 |
|---|---|---|---|---|
| SUID | 4000 | u+s | そのコマンドが所有者の権限 で実行される | 意味なし |
| SGID | 2000 | g+s | そのコマンドが所有グループの権限で実行される | その中に作成されるファイルや ディレクトリはそのグループを継承する |
| スティッキービット | 1000 | o+t | 意味なし | その中のファイルを名前変更・削除できるのは所有者のみ |
142970 28 -rwsr-xr-x 1 root root 27616 3月 13 23:36 ./chfn
153584 116 -rwsr-xr-x 1 root root 118128 3月 22 09:49 ./sudo
/usr/bin:1]# find . -perm +2000 -ls
142966 16 -rwxr-sr-x 1 root tty 14992 3月 13 23:36 ./write
142965 28 -rwxr-sr-x 1 root tty 27480 3月 13 23:36 ./wall
・umask オプション無しで実行で現在の設定値を表示
・umask[マスク値] ファイル:666からディレクトリ777からマスク値を引く
・chown [オプション] ユーザー[:グループ] ファイル
指定したファイルやディレクトリのユーザー所有権(所有者)
やグループ所有権(グループ)を変更。
・chgrp [オプション] グループ ファイル 指定したファイルのグループを変更するコマンド
| -R | 指定したディレクトリとそのディレクトリ以下のファイルやディレクトリの所有権を再帰的に変更します。 |
ハードリンクとシンボリックリンク
・ハードリンク
inodeが同じファイル。異なるファイルが同じデータ実体を参照。

・シンボリックリンク
コピーを作成するのではなく、あくまで本体ファイルやディレクトリへのショートカット、エイリアスを作成

・ln [オプション] リンク元(実体)リンクファイル リンクを作成
| オプション | 意味 |
|---|---|
| -s | シンボリックリンクを作成する |
| なし | ハードリンクが作成 |
プロセスの管理
・ps[オプション] OS内部で現在実行されているプロセス一覧を表示するコマンド
| オプション | 意味 |
|---|---|
| -A, -e | 全てのプロセスを表示する |
| a | 端末を持つ全てのプロセスを表示する |
| x | 端末を持たない(デーモン等)全てのプロセスを表示する |
| -C コマンドリスト | 実行ファイル名を指定して表示する |
| -u ユーザーリスト | ユーザーを指定して表示する(※) |
| -g グループリスト | グループを指定して表示する(※) |
| -p PIDリスト | プロセスIDを指定して表示する(p, –pidと同じ) |
| u | ユーザー名も表示する |
| -l | 長いフォーマットで表示する |
| f, -H, –forest | 階層表示する |
| w, -w | 出力時の幅を広げる |
・top[オプション] 現在実行中のプロセスをCPU利用率が高い順に表示
表示はリアルタイムで更新されていき、「q」を入力すると終了。
| オプション | 説明 |
|---|---|
| -b | バッチモードで実行 |
| -n 回数 | 更新する回数を指定 |
| -d 秒 | 更新する間隔を指定(秒) |
| -u ユーザー名 | 指定したユーザーのプロセスのみ監視 |
・kill -[シグナル名またはシグナルID] PID プロセスに対してシグナルを送るコマンド
・kill -s [シグナル名またはシグナルID] PID プロセスに対してシグナルを送るコマンド
・kill -SIGシグナル名 PID プロセスに対してシグナルを送るコマンド
・killall -[シグナル名またはシグナルID] プロセス名 プロセスに対してシグナルを送るコマンド
・killall -s [シグナル名またはシグナルID] プロセス名 プロセスに対してシグナルを送るコマンド
・killall -SIGシグナル名 プロセス名 プロセスに対してシグナルを送るコマンド
・pkill [オプション][シグナル] プロセス名 プロセスに対してシグナルを送るコマンド
| シグナル名 | シグナルID | 動作 |
| HUP | 1 | ハングアップ(端末が制御不能もしくは切断による終了) |
| INT | 2 | キーボードからの割り込み(Ctrl+Cと同じ) |
| KILL | 9 | 強制終了(デフォルトよりも強制的に修正する) |
| TERM | 15 | 終了(デフォルトの設定だ) |
| CONT | 18 | 停止しているプロセスを再開 |
| STOP | 19 | 一時停止 |
kill -l ー> 利用できるシグナルの一覧を表示するコマンド以下のコマンドは全て同じ
$ kill 560 / $ kill -15 560 / $ kill -s 15 560 / $ kill -TERM 560 / $ kill -SIGTERM 560
| オプション | 説明 |
|---|---|
| -u ユーザー名 | プロセスの実行ユーザーを指定する |
| -g グループ名 | プロセスの実行グループを指定する |
kill / killall / pkillの違い
・kill プロセスIDを指定
・killall プロセス名を指定
・pkill プロセス名を指定。プロセス名を正規表現で指定
・pgrep [オプション] [プロセス名などのパターン]
実行中のプロセスの中から、プロセス名やユーザー、グループ、端末名などを表す
パターンを使ってプロセスIDを探すコマンド
| オプション | 説明 |
|---|---|
| -u ユーザー名 | プロセスの実行ユーザーを指定する |
| -g グループ名 | プロセスの実行グループを指定する |
ジョブ管理
・jobs[オプション] [ジョブ番号] アクティブなジョブをリスト表示するコマンド
| ジョブ番号 | 説明 |
| %n | n番目のジョブ |
| %%、%+ | カレントジョブ |
| %- | 以前のジョブ |
| オプション | 説明 |
| -l | リスト表示にプロセスIDを付加します。 |
| -p | プロセスIDのみをリスト表示します。 |
| -r | 実行中のジョブにのみをリスト表示します。 |
| -s | 停止中のジョブにのみをリスト表示します。 |
・バックグランドジョブ
コマンド実行時 コマンドの最後に”&”を付ける
実行中のジョブ Ctrl+Zでジョブを止めてジョブ番号を引数にbgコマンドを実行
・フォアグランドジョブ
バックグランドで実行中のジョブ jobコマンドでジョブ番号を確認 fgコマンドを実行
・nohup コマンド [引数] & 端末を閉じてもログアウトしても処理を続ける
・free [オプション] システムの物理メモリとスワップメモリの使用量、空き容量を表示
| オプション | 意味 |
|---|---|
| -b | メモリの量をバイト単位で表示する |
| -k | メモリの量をKB単位で表示する(デフォルト) ※ |
| -m | メモリの量をMB単位で表示する |
| -g | メモリの量をGB単位で表示する |
| -h | 読みやすい単位で表示する |
| -s 間隔 | 再出力の間隔を「ss.tt秒」で指定する(デフォルトは1回出力して終了する) |
・watch [オプション] コマンド コマンドを一定間隔で繰り返し実行する
| オプション | 意味 |
|---|---|
| -t | ヘッダを表示しない |
| -d | 直前の実行結果から変化した箇所をハイライト表示する。 「permanent」または「cumulative」オプションを付けると 初回実行時から変化した箇所を表示する(「-d=permanent」のように指定) |
| -n 秒数 | 実行間隔を秒数で指定する(設定できる最小値と最小間隔は0.1秒) |
・uname [オプション] システム情報を表示
| -a | すべてのシステム情報を表示します。 |
| -i | ハードウェアのプラットフォームを表示します。 |
| -m | ハードウェア名を表示します。 |
| -n | ホスト名を表示します。 |
| -o | OS名を表示します。 |
| -p | プロセッサの種類を表示します。 |
| -r | カーネルのリリース番号を表示します。 |
| -s | カーネルの名前を表示します。 |
| -v | カーネルのバージョンを表示します。 |
端末の活用
・tmux システム情報を表示
プロセスの実行優先度
・nice [オプション][実行したいコマンドとそのオプション] プログラムの優先度を変更して実行するコマンド
| オプション | 意味 |
|---|---|
| -n 優先度 | 優先度 |
nice –10 ー> 優先度ー10
・renice [-n]優先度[[-p] PID][[-u] ユーザー名] 実行中のプロセスの優先度を変更するコマンド
| オプション | 意味 |
|---|---|
| -n 優先度 | 優先度(nice値)を指定する ※1 |
| -p プロセスID | 対象のプロセスIDを指定する |
| -g グループID | 対象プロセスのグループIDを指定する |
| -u ユーザー | 対象プロセスのユーザーIDまたはユーザー名を指定する |