タスク別に Linux コマンド例を調べる

Ctrl / Cmd + F かグループ見出しで目的の例を探し、パス・権限・破壊的なオプションを確認してから実行してください。

ブラウザ内でローカルに実行
コマンド 説明
arch カーネルが報告するマシンのハードウェア名(uname -m と同じ値)
uname -m マシンのハードウェア名。例: x86_64
uname -r 現在動作中のカーネルのリリース。例: 5.10.134-16.al8.x86_64
dmidecode -q DMI/SMBIOS のハードウェア情報(BIOS・マザーボード・メモリ)。不明エントリの通知は表示しない(root のみ)
hdparm -i /dev/hda IDE/SATA ディスクの識別情報: 型番、ファームウェア、シリアル番号、対応モード
hdparm -tT /dev/sda -T はキャッシュからの読み取り、-t はディスク本体からの読み取りを計測し、生の転送性能を示す
cat /proc/cpuinfo CPU の型番、コア数、フラグをカーネルが公開するままに表示
cat /proc/interrupts CPU ごと・デバイスごとの割り込み回数。ビジーなコントローラの特定に便利
cat /proc/meminfo カーネルのメモリカウンタ(free が読むファイル)
cat /proc/swaps 有効なスワップ領域と、そのサイズ・使用量・優先度
cat /proc/version カーネルのバージョン文字列(ビルドに使われたコンパイラを含む)
cat /proc/net/dev 各ネットワークインターフェースのバイト数・パケット数・エラー・破棄のカウンタ
cat /proc/mounts マウント中のすべてのファイルシステムと現在のマウントオプション
lspci -tv PCI デバイスをツリー表示し、バス・ブリッジ・接続されたデバイスを示す
lsusb -tv USB デバイスをツリー表示し、ベンダー ID と製品 ID を示す(usbutils パッケージ)
date システムクロックの現在の日付と時刻
cal 2007 月または 1 年分のカレンダー。ここでは 2007 年全体
date 041217002007.00 MMDDhhmm[[CC]YY][.ss] 形式で時計を設定する。例は 2007 年 12 月 17 日 00:20(root のみ)
clock -w システム時刻をハードウェアクロックに書き込み、電源断後も時刻を保つ(hwclock -w、root のみ)

コマンド 説明
shutdown -h now マシンを即座に電源オフする(root のみ)
init 0 ランレベル 0(システム停止)に切り替える(root のみ)
telinit 0 制御ソケット経由で init にランレベル 0 を要求する(同じ停止、root のみ)
shutdown -h hours:minutes & 指定した時刻にシャットダウンを予約し、プロンプトに戻る
shutdown -c 以前に予約したシャットダウンを取り消す
shutdown -r now マシンを今すぐ再起動する(root のみ)
reboot init または systemd 経由で再起動する(root のみ)
logout 現在のログインシェルを終了する

コマンド 説明
cd /home 絶対パスで指定したディレクトリに移動する
cd .. 1 つ上のディレクトリに移動する
cd ../.. 2 つ上のディレクトリに移動する
cd ホームディレクトリに移動する
cd ~user1 他ユーザーのホームディレクトリに移動する
cd - 直前にいたディレクトリに戻る
pwd 現在の作業ディレクトリを表示する
ls 現在のディレクトリの内容を一覧表示する
ls -F 種別記号付きで一覧表示する: / ディレクトリ、* 実行可能、@ シンボリックリンク
ls -l パーミッション・所有者・サイズ・更新日時を含む詳細一覧
ls -a 先頭がドットの項目も含める(.bashrc など)
ls *[0-9]* 名前に数字を含むものだけを一覧表示する(パターンはシェルが展開)
tree 現在のパスのディレクトリツリー。別パッケージのため入っていないことが多い
lstree 同じツリー表示の別名。多くのシステムではエイリアス
mkdir dir1 ディレクトリを 1 つ作成する
mkdir dir1 dir2 2 つのディレクトリを 1 回で作成する
mkdir -p /tmp/dir1/dir2 必要な親ディレクトリも作成し、パスが既にあってもエラーにしない
rm -f file1 ファイルを削除し、存在しない名前でも問い合わせずに無視する
rmdir dir1 空のディレクトリを削除する
rm -rf dir1 中身ごとディレクトリを削除する(確認なし)
rm -rf dir1 dir2 2 つのツリーをまとめて削除する
mv dir1 new_dir ディレクトリの名前を変更する。移動先が別パスなら移動になる
cp file1 file2 ファイルをコピーする
cp dir/* . ディレクトリ内のすべてを現在のディレクトリにコピーする
cp -a /tmp/dir1 . パーミッション・所有者・リンク・時刻を保つアーカイブコピー
cp -a dir1 dir2 2 つ目のツリーに対する同じアーカイブコピー
ln -s file1 lnk1 パスを保持するシンボリックリンクを作成する
ln file1 lnk1 ハードリンクを作成する: 同じ inode への 2 つ目の名前
touch -t 0712250000 file1 更新日時を現在時刻ではなく 2007 年 12 月 25 日 00:00 に固定する
iconv -l この iconv が扱える文字コードをすべて一覧表示する
iconv -f fromEncoding -t toEncoding inputFile > outputFile ファイルをある文字コードから別の文字コードに変換し、結果を新しいファイルに書き出す
find . -maxdepth 1 -name '*.jpg' -exec ls -l {} \; このディレクトリ直下の JPEG だけを表示し、各結果に対してコマンドを実行する

コマンド 説明
find / -name file1 ファイルシステム全体から完全一致のファイル名を探す
find / -user user1 あるユーザーが所有するすべてのファイル
find /home/user1 -name \*.bin ワイルドカードを含む名前パターンを、あるディレクトリ配下で検索する
find /usr/bin -type f -atime +100 最後に読まれてから 100 日以上経過した通常ファイル
find /usr/bin -type f -mtime -10 過去 10 日以内に変更された通常ファイル
find / -name \*.rpm -exec chmod 755 '{}' \; 一致した各項目に対してコマンドを実行する。{} は一致したパスを表す
find / -xdev -name \*.rpm 1 つのファイルシステム内に限定し、マウント済みメディアやネットワーク共有を除外する
locate \*.ps updatedb の索引で名前を検索する。find より大幅に速いが、最新の索引実行時点の情報
whereis halt コマンドの実行ファイル・ソース・マニュアルページの場所を調べる
which halt シェルが実際に実行する実行ファイルを表示する

コマンド 説明
mount /dev/hda2 /mnt/hda2 パーティションをファイルシステムツリーのディレクトリに割り当てる(root のみ)
umount /dev/hda2 パーティションを再び切り離す。マウントポイントを引数にしてもよい
fuser -km /mnt/hda2 マウントポイントを使用中のプロセスを終了させ、アンマウントできるようにする(root のみ)
umount -n /mnt/hda2 /etc/mtab に変更を書き込まずにアンマウントする
mount /dev/fd0 /mnt/floppy 1 台目のフロッピードライブをマウントする(旧デバイス名)
mount /dev/cdrom /mnt/cdrom /dev/cdrom リンクの先にある光学ドライブをマウントする
mount /dev/hdc /mnt/cdrecorder 旧 hdX 命名の 3 番目のデバイス(通常は CD ライター)をマウントする
mount /dev/hdb /mnt/cdrecorder 同じく最初の IDE チャネルの 2 番目のデバイスをマウントする
mount -o loop file.iso /mnt/cdrom ISO イメージの内容をディレクトリとして見せる
mount -t vfat /dev/hda5 /mnt/hda5 vfat ドライバで FAT パーティションをマウントし、Windows のファイルを読めるようにする
mount /dev/sda1 /mnt/usbdisk USB ディスクの最初のパーティションをマウントする
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Windows 共有をマウントする。現在のカーネルは smbfs ではなく -t cifs と認証情報ファイルを使う

コマンド 説明
df -h 各ファイルシステムの空き容量を読みやすい単位で表示する
ls -lSr |more このディレクトリのファイルをサイズ順(大きい順)に並べ、more でページ表示する
du -sh dir1 1 つのディレクトリが使用しているディスク容量の合計
du -sk * | sort -rn 各項目のサイズをキロバイト単位で大きい順に表示する
rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n インストール済み RPM パッケージとバイト単位のサイズを、その列で並べ替えて表示する
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n Debian パッケージでの同じ一覧: インストール済みサイズとパッケージ名

コマンド 説明
groupadd group_name グループを作成する(root のみ)
groupdel group_name グループを削除する(root のみ)
groupmod -n new_group_name old_group_name グループの名前を変更する(root のみ)
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 コメント・主グループ・ホームディレクトリ・ログインシェルを指定してアカウントを作成する(root のみ)
useradd user1 /etc/default/useradd の既定値でアカウントを作成する(root のみ)
userdel -r user1 アカウントをホームディレクトリごと削除する(root のみ)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 既存アカウントのコメント・グループ・ホームディレクトリ・シェルを変更する(root のみ)
passwd 自分のパスワードを変更する
passwd user1 他のアカウントのパスワードを変更する(root のみ)
chage -E 2030-12-31 user1 アカウントに有効期限を設定し、それ以降のログインを拒否する(root のみ)
pwck /etc/passwd と /etc/shadow に矛盾したエントリがないか確認する(root のみ)
grpck /etc/group と /etc/gshadow に同種の問題がないか確認する(root のみ)
newgrp group_name 別のグループを実効の主グループとする新しいシェルを起動する

コマンド 説明
ls -lh サイズを K・M・G で表示する詳細一覧
ls /tmp | pr -T5 -W$COLUMNS 端末幅に合わせて 5 列で一覧を出力する
chmod ugo+rwx directory1 ディレクトリに対し、所有者・グループ・その他へ読み取り・書き込み・実行の権限を与える
chmod go-rwx directory1 グループとその他からすべての権限を外す
chown user1 file1 ファイルの所有者を変更する(root のみ)
chown -R user1 directory1 ディレクトリとその配下すべての所有者を変更する(root のみ)
chgrp group1 file1 ファイルのグループを変更する
chown user1:group1 file1 所有者とグループを 1 回で変更する(root のみ)
find / -perm -u+s システム内の setuid バイナリをすべて探す
chmod u+s /bin/file1 setuid ビットを立て、所有者の権限で実行されるようにする(root のみ)
chmod u-s /bin/file1 setuid ビットを再び外す
chmod g+s /home/public setgid ビットを立て、ディレクトリ配下の新規項目がそのグループを継承するようにする
chmod g-s /home/public setgid ビットを外す
chmod o+t /home/public スティッキービットを立て、共有ディレクトリでは自分のファイルだけ削除できるようにする
chmod o-t /home/public スティッキービットを外す

コマンド 説明
chattr +a file1 追記のみ: ファイルは追記できるが、書き換えも削除もできない(root のみ)
chattr +c file1 ファイルをディスク上で圧縮して保存する(ext4、root のみ)
chattr +d file1 dump によるバックアップの対象から外す(root のみ)
chattr +i file1 変更不可: 属性を外すまで root でも変更・削除できない(root のみ)
chattr +s file1 shred: 削除時にブロックをゼロで上書きする(root のみ)
chattr +S file1 同期書き込み: 変更は即座にディスクへ書き込まれる(root のみ)
chattr +u file1 削除不可: 内容を保持し、削除後も復元できるようにする(root のみ)
lsattr ファイルの属性フラグを一覧表示する。引数なしではカレントディレクトリを辿る

コマンド 説明
bunzip2 file1.bz2 bzip2 ファイルを展開し、圧縮元のファイルを削除する
bzip2 file1 bzip2 でファイルを圧縮する(file1.bz2 になる)
gunzip file1.gz gzip ファイルを展開する
gzip file1 ファイルを圧縮する(file1.gz になる)
gzip -9 file1 同じ処理を最大圧縮で行う(速度は落ちる)
rar a file1.rar test_file RAR アーカイブにファイルを追加する(rar はシェアウェアで多くのディストリビューションに無い)
rar a file1.rar file1 file2 dir1 複数のファイルとディレクトリを RAR アーカイブに追加する
rar x file1.rar RAR を展開し、記録されたディレクトリ構造を保つ
unrar x file1.rar 同じ展開を unrar コマンドで行う
tar -cvf archive.tar file1 非圧縮のアーカイブを作成し、追加した各メンバーを表示する
tar -cvf archive.tar file1 file2 dir1 複数のメンバーを含む同じアーカイブ
tar -tf archive.tar 展開せずにアーカイブのメンバーを一覧表示する
tar -xvf archive.tar アーカイブを現在のディレクトリに展開する
tar -xvf archive.tar -C /tmp 別のディレクトリに展開する。-C は以降のすべてに適用される
tar -cvfj archive.tar.bz2 dir1 bzip2 で圧縮したアーカイブを作成する(-j)
tar -jxvf archive.tar.bz2 bzip2 で圧縮されたアーカイブを展開する(-j)
tar -cvfz archive.tar.gz dir1 gzip で圧縮したアーカイブを作成する(-z)
tar -zxvf archive.tar.gz gzip で圧縮されたアーカイブを展開する
zip file1.zip file1 新しい ZIP アーカイブにファイルを 1 つ入れる
zip -r file1.zip file1 file2 dir1 ファイル 2 つとディレクトリを、中まで含めて追加する
unzip file1.zip ZIP アーカイブを現在のディレクトリに展開する

コマンド 説明
rpm -ivh package.rpm 進捗バーとファイル名を表示しながらパッケージをインストールする
rpm -ivh --nodeps package.rpm 依存関係を解決せずにインストールする(通常は望ましくない)
rpm -U package.rpm パッケージを更新する。旧版が無い場合はインストールする
rpm -F package.rpm refresh: 旧版が既に入っている場合だけ更新する
rpm -e package_name インストール済みパッケージを削除する。引数はファイルではなくパッケージ名
rpm -qa インストール済みの全パッケージを名前・バージョン・リリース付きで一覧表示する
rpm -qa | grep httpd インストール済み RPM の一覧をパッケージ名で絞り込む
rpm -qi package_name インストール済みパッケージの詳細情報
rpm -qg "System Environment/Daemons" あるグループに属する全パッケージ
rpm -ql package_name パッケージが所有するファイル
rpm -qc package_name パッケージの設定ファイルだけ
rpm -q package_name --whatrequires この機能に依存しているパッケージ
rpm -q package_name --whatprovides このパッケージが提供する機能
rpm -q package_name --scripts パッケージのインストール・アンインストール用スクリプトレット
rpm -q package_name --changelog パッケージのメタデータに記録された変更履歴
rpm -qf /etc/httpd/conf/httpd.conf 指定したファイルを所有するパッケージ
rpm -qp package.rpm -l インストールされていないパッケージファイルの中身
rpm --import /media/cdrom/RPM-GPG-KEY パッケージを検証できるよう、署名鍵を RPM データベースに追加する
rpm --checksig package.rpm パッケージファイルの署名とチェックサムを検証する
rpm -qa gpg-pubkey RPM データベースに登録されている鍵を一覧表示する
rpm -V package_name インストール済みパッケージをメタデータ(サイズ・ダイジェスト・権限)と比較する
rpm -Va インストール済みの全パッケージを検証する(遅く、差分をすべて表示する)
rpm -Vp package.rpm インストール済みではなくパッケージファイル自体を検証する
rpm2cpio package.rpm | cpio --extract --make-directories \*bin\* インストールせずに RPM を展開し、*bin* に一致するパスだけを取り出す
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm ビルドツリーからインストールする。アーキテクチャは arch が埋める
rpmbuild --rebuild package_name.src.rpm ソース RPM からバイナリ RPM をビルドする

コマンド 説明
yum install package_name リポジトリから依存関係ごとパッケージをインストールする
yum localinstall package_name.rpm ローカルの RPM ファイルをインストールし、依存関係はリポジトリから取得する
yum update package_name.rpm ローカルファイルからパッケージを更新する
yum update package_name インストール済みパッケージを最新版に更新する
yum remove package_name パッケージと、それに依存するパッケージを削除する
yum list インストール済みと利用可能なパッケージを一覧表示する
yum search package_name 名前やキーワードでリポジトリを検索する
yum clean packages ダウンロード済みのパッケージファイルをキャッシュから削除する
yum clean headers キャッシュされたリポジトリのメタデータヘッダーを削除する
yum clean all メタデータを含めてキャッシュ全体を空にする

コマンド 説明
dpkg -i package.deb リポジトリを参照せずに .deb ファイルをインストールする
dpkg -r package_name インストール済みパッケージを削除し、設定ファイルは残す
dpkg -l インストール済みパッケージをバージョン付きで一覧表示する
dpkg -l | grep httpd インストール済み Debian パッケージの一覧を名前で絞り込む
dpkg -s package_name インストール済みパッケージの状態とメタデータ
dpkg -L package_name パッケージがインストールしたファイル
dpkg --contents package.deb インストールされていない .deb の中身
dpkg -S /bin/ping 指定したパスをインストールしたパッケージ

コマンド 説明
apt-get install package_name Debian リポジトリから依存関係ごとパッケージをインストールする
apt-cdrom add CD や DVD をパッケージソースとして登録し、そこからインストールする
apt-get update 設定されたすべてのソースからパッケージ索引を更新する
apt-get upgrade 削除を行わずに利用可能な更新を適用する
apt-get remove package_name Debian リポジトリのパッケージを削除し、設定ファイルは残す
apt-get check パッケージデータベースが整合しているか確認する
apt-get clean /var/cache/apt からダウンロード済みの .deb を削除する
apt-cache search searched-package 名前または説明でパッケージ索引を検索する

コマンド 説明
cat file1 ファイル全体を標準出力に出力する
tac file1 行の順序を逆にして出力する
more file1 ファイルを前方向にだけページ表示する
less file1 ファイルを前後どちらにも移動して閲覧し、検索する
head -2 file1 ファイルの先頭 2 行(既定は 10 行)
tail -2 file1 ファイルの末尾 2 行
tail -f /var/log/messages 増え続けるログを追跡し、書き込まれた新しい行を表示する

コマンド 説明
cat file1 | sed 's/old/new/g' > result.txt ファイルを別のプログラムに渡し、結果を新しいファイルに書き出す
cat file1 | sed 's/old/new/g' >> result.txt 同じ処理だが、ファイルを置き換えずに結果を追記する
grep Aug /var/log/messages そのテキストを含む行
grep ^Aug /var/log/messages 行頭がそのテキストで始まる行(先頭に固定)
grep [0-9] /var/log/messages 数字を 1 文字以上含む行
grep Aug -R /var/log/* 指定したパス配下を再帰的に検索する
sed 's/string1/string2/g' example.txt ある文字列のすべての出現を別の文字列に置き換える
sed '/^$/d' example.txt 空行を削除する
sed '/ *#/d; /^$/d' example.txt コメント行と、その結果残る空行を削除する
echo 'example' | tr '[:lower:]' '[:upper:]' tr の文字クラスでテキストを大文字に変換する
sed -e '1d' result.txt 1 行目を削除して残りを出力する
sed -n '/string1/p' example.txt 一致した行だけを出力する。-n は既定の出力を抑止する
sed -e 's/ *$//' example.txt 各行の末尾の空白を取り除く
sed -e 's/string1//g' example.txt ある語のすべての出現を削除し、行の残りを保つ
sed -n '1,5p;5q' example.txt 先頭 5 行を出力し、5 行目で読み取りを終了する
sed -n '5p;5q' example.txt 5 行目だけを出力して終了する
sed -e 's/00*/0/g' example.txt 連続する 0 を 1 つの 0 にまとめる
cat -n file1 出力時に各行へ番号を付ける
cat example.txt | awk 'NR%2==1' 奇数行を出力する
echo a b c | awk '{print $1}' 空白で区切られた 1 番目のフィールドを出力する
echo a b c | awk '{print $1,$3}' 1 番目と 3 番目のフィールドを出力する
paste file1 file2 2 つのファイルをタブ区切りで行ごとに連結する
paste -d '+' file1 file2 同じ処理を + を区切り文字として行う
sort file1 file2 2 つのファイルをまとめて昇順に並べ替える
sort file1 file2 | uniq 隣接する重複行を取り除く。入力は事前に並べ替えておく必要がある
sort file1 file2 | uniq -u ちょうど 1 回だけ現れる行のみ出力する
sort file1 file2 | uniq -d 2 回以上現れる行のみ出力する
comm -1 file1 file2 file1 にしかない行を隠し、残り 2 列を表示する
comm -2 file1 file2 file2 にしかない行を隠す
comm -3 file1 file2 2 つのファイルで異なる行だけを出力する

コマンド 説明
dos2unix filedos.txt fileunix.txt CRLF の行末を LF に変換し、新しいファイルに書き出す
unix2dos fileunix.txt filedos.txt LF の行末を CRLF に変換する
recode ..HTML < page.txt > page.html recode の文字コード対応表を使ってプレーンテキストを HTML エンティティに変換する
recode -l | more この recode が扱える文字コードと変換の一覧を表示する

コマンド 説明
badblocks -v /dev/hda1 パーティションの全ブロックを読み、異常のあるブロックを進捗付きで報告する
fsck /dev/hda1 種別に応じてファイルシステムを検査する。パーティションはマウントしていてはならない
fsck.ext2 /dev/hda1 fsck を経由せず ext2 のチェッカーを直接実行する
e2fsck /dev/hda1 ext2 / ext3 / ext4 のファイルシステムを検査する
e2fsck -p /dev/hda1 問い合わせなしで修復できるものは自動修復する(preen)
fsck.ext3 /dev/hda1 同じチェッカーの ext3 版
fsck.vfat /dev/hda1 dosfstools のチェッカーで FAT ファイルシステムを検査する
fsck.msdos /dev/hda1 MS-DOS FAT チェッカーの別名
dosfsck /dev/hda1 FAT ファイルシステムを修復する。-a はすべての問いに yes と答える

コマンド 説明
mkfs /dev/hda1 パーティションにファイルシステムを作成する(既存の内容は消える)
mke2fs /dev/hda1 ext2 ファイルシステムを作成する
mke2fs -j /dev/hda1 ジャーナルを追加して ext3 ファイルシステムを作成する
mkfs -t vfat -F 32 /dev/hda1 dosfstools のツールで FAT32 ファイルシステムを作成する
fdformat -n /dev/fd0 フロッピーディスクを低レベルフォーマットする(検証パスは省略)
mkswap /dev/hda3 パーティションをスワップ領域として用意する

コマンド 説明
mkswap /dev/hda3 パーティションをスワップ領域として用意する
swapon /dev/hda3 スワップパーティションを使い始める
swapon /dev/hda2 /dev/hdb3 2 つのスワップ領域を 1 回で有効にする

コマンド 説明
dump -0aj -f /tmp/home0.bak /home /home の完全(レベル 0)ダンプを圧縮ファイルに保存する
dump -1aj -f /tmp/home0.bak /home 増分ダンプ: レベル 0 以降に変化したものだけ
restore -if /tmp/home0.bak ダンプを対話的にたどり、復元するファイルを選ぶ
rsync -rogpav --delete /home /tmp リンク・所有者・グループ・権限・時刻を保ってツリーを /tmp に複製する。--delete は消えたファイルを削除する
rsync -rogpav -e ssh --delete /home ip_address:/tmp 同じ複製を SSH 経由で行う
rsync -az -e ssh --delete ip_addr:/home/public /home/local 転送中に圧縮しながらリモートのツリーを取得する
rsync -az -e ssh --delete /home/local ip_addr:/home/public ローカルのツリーをリモートホストへ送る
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' gzip と SSH を通してディスク全体を 1 MB ずつコピーする
dd if=/dev/sda of=/tmp/file1 ディスクを別のファイルシステム上のファイルへコピーする
tar -Puf backup.tar /home/user 既存のアーカイブに追記し、パス先頭のスラッシュを保つ
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' パイプ経由でツリーをリモートホストへコピーする。-p は権限を復元する
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 絶対パスを起点にした同じコピー
tar cf - . | (cd /tmp/backup ; tar xf - ) 現在のツリーを同じマシン内の別ディレクトリへコピーする
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents ファイル一覧をコピーし、コピー先でディレクトリ構造を再現する
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 find が見つけたファイルをアーカイブし、その流れを直接圧縮する
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 マスターブートレコードを 512 バイトずつコピーする
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 そのレコードを書き戻す。宛先を誤るとディスクが破壊される

コマンド 説明
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 書き換え可能ディスクをライターで消去して排出する(cdrtools の cdrecord)
dd if=/dev/cdrom of=cd.iso 光学ディスクを ISO イメージファイルへコピーする
dd if=/dev/cdrom | gzip > cd_iso.gz 同じイメージを書き込みながら圧縮する
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd ディレクトリから ISO イメージを作成する。Joliet と Rock Ridge の名前を付ける
cdrecord -v dev=/dev/cdrom cd.iso ISO イメージをディスクに書き込む
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 圧縮イメージをパイプから直接書き込む
mount -o loop cd.iso /mnt/iso イメージをディレクトリとして読み戻す
cd-paranoia -B CD のオーディオトラックを WAV ファイルに取り込む
cd-paranoia -- "-3" 3 番目のトラックを取り込む。-- により先頭のハイフンがオプションと解釈されない
cdrecord --scanbus ライターが到達できる SCSI/ATA アドレスを一覧表示する
dd if=/dev/hdc | md5sum 光学ドライブの生データのチェックサムを計算する

コマンド 説明
dhclient eth0 インターフェース用のアドレスとリースを DHCP サーバーに要求する(root のみ)
ethtool eth0 ネットワークインターフェースのリンク速度・デュプレックスモード・ドライバ情報
host www.example.com BIND の host コマンドで名前をアドレスに解決する
hostname このマシンの名前を表示する
ifconfig eth0 1 つのインターフェースのアドレス・ネットマスク・カウンタ(net-tools。ip コマンドに取って代わられた)
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 次の再起動まで有効な固定アドレスを設定する(root のみ)
ifconfig eth0 promisc インターフェースをプロミスキャスモードにし、見えるフレームをすべて保持させる(root のみ)
ifdown eth0 ifupdown のスクリプトでインターフェースを停止する(root のみ)
ifup eth0 再び起動し、/etc/network/interfaces の設定を適用する(root のみ)
ip link show すべてのネットワークデバイスの状態。ifconfig に代わる現代的なコマンド
iwconfig eth1 インターフェースの無線設定: ESSID、モード、周波数(wireless-tools)
iwlist scan 無線カードから見えるアクセスポイントを一覧表示する(root のみ)
mii-tool eth0 有線インターフェースのリンク状態をドライバの報告どおりに表示する
netstat -tup 各ソケットを所有するプロセス付きで、有効な TCP・UDP 接続を表示する
netstat -tulp 接続を待ち受けているソケットだけを、所有プロセス付きで表示する
netstat -rn 名前解決を行わず数値アドレスでカーネルのルーティングテーブルを表示する
nslookup www.example.com 名前やアドレスをネームサーバーに問い合わせる。dig が現代的な代替
route -n 名前解決を行わないルーティングテーブル(net-tools)
route add default gw 192.168.1.1 次回起動まで有効なデフォルトゲートウェイを設定する(root のみ)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 ネットワークへの静的ルートを追加する(root のみ)
route del default gw 192.168.1.1 そのデフォルトルートを再び削除する(root のみ)
echo 1 > /proc/sys/net/ipv4/ip_forward インターフェース間でルーティングできるよう IPv4 転送を有効にする(root のみ)
tcpdump tcp port 80 回線上を流れる HTTP トラフィックを取得する(root のみ)
whois www.example.com WHOIS データベースからドメインの登録情報を取得する

コマンド 説明
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Windows 共有をマウントする。現在のカーネルは smbfs ではなく -t cifs と認証情報ファイルを使う
nbtscan 192.168.1.0/24 サブネットを走査し、NetBIOS 名とその背後にあるマシンを調べる
nmblookup -A 192.168.1.10 1 台のホストに NetBIOS 名を問い合わせる。nbtstat に対する Samba の答え
smbclient -L 192.168.1.10 Windows ホストが提供する共有を一覧表示する
smbget -Rr smb://192.168.1.10/share Samba の wget 風クライアントで共有を再帰的にダウンロードする

コマンド 説明
iptables -t filter -L filter テーブルのルールを一覧表示する
iptables -t nat -L アドレス変換を担う nat テーブルのルールを一覧表示する
iptables -t filter -F filter テーブルのルールをすべて削除する
iptables -t nat -F nat テーブルのルールをすべて削除する
iptables -t filter -X 参照されていないユーザー定義チェーンを削除する
iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT ポート 23 への受信 Telnet を許可するルールを追加する
iptables -t filter -A OUTPUT -p tcp --dport telnet -j DROP 送信 Telnet トラフィックを破棄する
iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT 転送される POP3 トラフィックを通過させる
iptables -t filter -A INPUT -j LOG --log-prefix "INPUT: " 受信パケットを検索しやすいプレフィックス付きで記録する
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 送信パケットの送信元アドレスを書き換える。これが簡単な NAT ゲートウェイの仕組み
iptables -t nat -A POSTROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 宛先アドレスを書き換えて SSH を内部ホストへ転送する

コマンド 説明
free -m メモリとスワップの使用量をメビバイトで表示する
kill -9 1234 SIGKILL: プロセスは即座に終了し、後始末はできない(1234 は PID の例)
kill -1 1234 SIGHUP: 多くのデーモンは設定を読み直す(1234 は PID の例)
last reboot 再起動だけに絞ったログイン履歴。マシンがいつ再起動したかが分かる
lsmod 現在ロードされているカーネルモジュールを一覧表示する
lsof -p 1234 1 つのプロセスが開いているファイル・ソケット・デバイスのすべて
lsof /home/user1 あるパス配下のファイルを開いているプロセス
ps -eafw 全プロセスを完全なコマンドライン付きの横長表示で一覧する
ps -e -o pid,args --forest PID とコマンドだけを示すプロセスツリー
pstress PostgreSQL 用の負荷テストツール。標準的なディストリビューションには含まれない
smartctl -A /dev/hda ディスクの S.M.A.R.T. 属性。代替処理済みセクターは故障の兆候
smartctl -i /dev/hda ディスクの型番・ファームウェア・シリアル番号・健全性
strace -c ls >/dev/null コマンドが発行するシステムコールを数え、要約を表示する
strace -f -e open ls >/dev/null コマンドとその子プロセスの open() 呼び出しを追跡する
tail /var/log/dmesg カーネルのリングバッファログの末尾を表示する
tail /var/log/messages システム全体のログの末尾を表示する
top CPU 使用率順に並ぶプロセスのライブ一覧。見ている間に更新される
watch -n 1 'cat /proc/interrupts' 1 秒ごとにコマンドを実行し、その出力を画面に表示し続ける

コマンド 説明
alias hh='history' 現在のシェル内でコマンドに短い名前を付ける
apropos keyword マニュアルページの名前と説明からキーワードを検索する
chsh ログインシェルを対話的に変更する
chsh --list-shells /etc/shells に載っているシェルを表示する
gpg -c file1 対称暗号でファイルをパスフレーズにより file1.gpg へ暗号化する
gpg file1.gpg そのファイルを再び復号し、パスフレーズを尋ねる

コマンド表の使い方

このページは 347 個のコマンド例を 27 の折りたたみグループにまとめたものです。システム情報やファイルから、ネットワーク、パッケージ、バックアップ、光学メディアまでを扱います。Ctrl / Cmd + F を使うかグループの見出しをクリックして必要な部分を開閉してください。コマンド欄は実際に入力するシェル構文のままで、隣の注記がそのユーティリティやオプションの働きを説明します。

注記は各ユーティリティ自身のマニュアルページをもとに書いたため、定型文の繰り返しではなくツールの動作を述べています。uname -r はカーネルのリリースを表示し、e2fsck -p は問い合わせなしで修復できる箇所を自動修復し、iptables -t nat -F はアドレス変換テーブルを空にします。KivTools はこれらのコマンドを実行しません。静的な文書なので、読むだけでシステムが変わることはありません。

  1. 必要なグループを探します。システムとハードウェア情報、ファイルとディレクトリ、ファイル検索、マウント、ディスク使用量、ユーザーとグループ、パーミッション、拡張属性、アーカイブ、RPM / YUM / Debian / APT パッケージ、ファイル閲覧、テキスト処理、文字コード、ファイルシステム検査、ファイルシステム作成、スワップ、バックアップと復元、光学メディア、Ethernet と Wi-Fi、SMB、iptables、監視と診断、その他のユーティリティがあります。
  2. グループの見出しをクリックすると開閉できます。Ctrl / Cmd + F で tar -xvf のようなコマンド名や、注記の中の語句へ直接移動できます。
  3. コピーする前に注記を読んでください。例がどのオプションに依存しているか(bzip2 なら -j、別の場所への展開なら -C、setuid の検索なら -perm)を示し、root が必要な行にはその旨を記しています。
  4. 例が前提にしているパス、デバイス名、ディストリビューションを確認してください。/dev/hda や /dev/hdc は旧 IDE 命名なので、現代のシステムでは /dev/sda や /dev/sr0 と入力します。yum は RHEL 8 以降 dnf に転送され、ifconfig・route・netstat は net-tools のもので、ip・ss・ip route に置き換えられています。
  5. そのうえで自分のシェルで実行し、結果を確認してください。ここでは何も実行されず、閲覧中にブラウザからリクエストが出ることもありません。

注記に書かれていること、このページがしないこと

各行の書き方

コマンド欄には動作する例を載せています。mkdir -p /tmp/dir1/dir2 は親ディレクトリも作成し、パスが既にあっても失敗しません。tar -xvf archive.tar -C /tmp は -C が以降すべてに適用されるため別ディレクトリに展開します。find / -xdev -name \*.rpm は 1 つのファイルシステム内にとどまります。元の一覧に誤記や存在しないオプションがあった箇所(iptables -t nae、e2fsck -j、gpg -c filel、mkisofs /dev/cdrom、netstat -tup1、/proc/sys/net/ipv4/ip_foward)は例を修正し、注記は修正後の形を説明しています。

何をどう確認したか

このページに載るすべてのユーティリティは、KivTools を動かしているのと同じ Linux サーバー(Alibaba Cloud Linux 3)で確認しました。バイナリは command -v、マニュアルは man -w で調べています。141 個のうち 106 個にそのホスト上でマニュアルページがあり、注記は NAME 行とオプション一覧の記述に沿っています。32 個はそもそも入っていません(apt-get、dpkg、rar、smartctl、tree、whois、rsync、smbclient など)。それらの注記は、この環境での実行結果ではなく上流ツールの説明です。

掲載しているオプションは例であり、すべてのオプションではありません。残りは --help や man で確認してください。

データに触れる行

rm -rf dir1、dd if=/dev/fd0 of=/dev/hda、mkfs /dev/hda1、iptables -F、shutdown -h now のような行は説明のみで、ここで実行されることはありません。root が必要な行は注記にその旨を記しています。ターミナルで作業するときと同じ注意が必要です。デバイス、パス、対象ホストを先に確認してください。dd や mkfs でデバイス名を誤ると、データは取り返しのつかない形で失われます。

最近使ったツール: