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 はこれらのコマンドを実行しません。静的な文書なので、読むだけでシステムが変わることはありません。
コマンド欄には動作する例を載せています。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 でデバイス名を誤ると、データは取り返しのつかない形で失われます。