「Core utilities」の版間の差分
(冒頭を英語版に同期) |
(同期) |
||
(3人の利用者による、間の21版が非表示) | |||
1行目: | 1行目: | ||
− | {{Translateme|2018年訳出後の更新に追従できておらず、大幅に翻訳しなおす必要があります。英語版の参照を推奨。}} |
||
[[Category:コマンドライン]] |
[[Category:コマンドライン]] |
||
[[Category:ソフトウェア一覧]] |
[[Category:ソフトウェア一覧]] |
||
− | [[fa:Core utilities]] |
||
[[en:Core utilities]] |
[[en:Core utilities]] |
||
[[es:Core utilities]] |
[[es:Core utilities]] |
||
− | [[ |
+ | [[fa:Core utilities]] |
− | [[ko:Core utilities]] |
||
[[pt:Core utilities]] |
[[pt:Core utilities]] |
||
[[ru:Core utilities]] |
[[ru:Core utilities]] |
||
[[zh-hans:Core utilities]] |
[[zh-hans:Core utilities]] |
||
− | [[zh-hant:Core utilities]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
− | {{Related|コマンドシェル}} |
+ | {{Related|コマンドラインシェル}} |
{{Related|ユーザーとグループ}} |
{{Related|ユーザーとグループ}} |
||
{{Related|Systemd}} |
{{Related|Systemd}} |
||
19行目: | 15行目: | ||
{{Related articles end}} |
{{Related articles end}} |
||
+ | ''Core utilitiy'' は、[[GNU]]/[[Linux]] システムにおける基本的で基礎的なツールのことです。この記事では、それらのツールに関する完全ではない概要や、ドキュメントへのリンク、有用な代替プログラムに関する情報を提供します。この記事の扱う範囲は [https://www.gnu.org/software/coreutils/coreutils.html GNU coreutils] にとどまりません。ほとんどの core utility は伝統的な [[Wikipedia:Unix|Unix]] ツールで、多くが [[Wikipedia:POSIX|POSIX]] によって標準化されました。しかし、さらに多くの機能を提供するように開発され続けています。 |
||
− | この記事では ''less'', ''ls'', ''grep'' などの GNU/Linux システムの''コア''ユーティリティを扱っています。この記事の扱う範囲は GNU {{Pkg|coreutils}} パッケージに含まれているユーティリティに留まりません。ユーティリティに関連する様々なヒント・小技、その他便利な情報を載せています。 |
||
ほとんどのコマンドラインインターフェイスは [[man ページ]] に、[[GNU|GNU プロジェクト]] によるユーティリティは [[GNU#Texinfo|Info マニュアル]]にドキュメント化されています。一部の[[シェル]]は {{ic|help}} コマンドをシェルの組み込みコマンドとして提供しています。加えて、ほとんどのユーティリティは {{ic|--help}} フラグで実行すると使用方法を表示します。 |
ほとんどのコマンドラインインターフェイスは [[man ページ]] に、[[GNU|GNU プロジェクト]] によるユーティリティは [[GNU#Texinfo|Info マニュアル]]にドキュメント化されています。一部の[[シェル]]は {{ic|help}} コマンドをシェルの組み込みコマンドとして提供しています。加えて、ほとんどのユーティリティは {{ic|--help}} フラグで実行すると使用方法を表示します。 |
||
32行目: | 28行目: | ||
| シェル組み込み || cd || ディレクトリを変更 || {{man|1p|cd}} || [[#cd の代替]] |
| シェル組み込み || cd || ディレクトリを変更 || {{man|1p|cd}} || [[#cd の代替]] |
||
|- |
|- |
||
− | |rowspan= |
+ | |rowspan=13| GNU {{Pkg|coreutils}} |
| ls || ファイルを一覧表示 || {{man|1|ls}}, [https://www.gnu.org/software/coreutils/manual/html_node/ls-invocation.html info] || {{Pkg|tree}}, [[#ls の代替]] |
| ls || ファイルを一覧表示 || {{man|1|ls}}, [https://www.gnu.org/software/coreutils/manual/html_node/ls-invocation.html info] || {{Pkg|tree}}, [[#ls の代替]] |
||
|- |
|- |
||
− | | cat || ファイルを連結して表示 || {{man|1|cat}}, [https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html info] || {{man|1|tac}}, |
+ | | cat || ファイルを連結して表示 || {{man|1|cat}}, [https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html info] || {{man|1|tac}}, [[#cat の代替]] |
|- |
|- |
||
| mkdir || ディレクトリを作成 || {{man|1|mkdir}}, [https://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocation.html info] |
| mkdir || ディレクトリを作成 || {{man|1|mkdir}}, [https://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocation.html info] |
||
41行目: | 37行目: | ||
| rmdir || 空のディレクトリを削除 || {{man|1|rmdir}}, [https://www.gnu.org/software/coreutils/manual/html_node/rmdir-invocation.html info] |
| rmdir || 空のディレクトリを削除 || {{man|1|rmdir}}, [https://www.gnu.org/software/coreutils/manual/html_node/rmdir-invocation.html info] |
||
|- |
|- |
||
− | | rm || ファイルやディレクトリを削除 || {{man|1|rm}}, [https://www.gnu.org/software/coreutils/manual/html_node/rm-invocation.html info] || [[shred]] |
+ | | rm || ファイルやディレクトリを削除 || {{man|1|rm}}, [https://www.gnu.org/software/coreutils/manual/html_node/rm-invocation.html info] || [[shred]] {{man|1|unlink}} |
|- |
|- |
||
| cp || ファイルやディレクトリをコピー || {{man|1|cp}}, [https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html info] || [[#cp の代替]] |
| cp || ファイルやディレクトリをコピー || {{man|1|cp}}, [https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html info] || [[#cp の代替]] |
||
47行目: | 43行目: | ||
| mv || ファイルやディレクトリを移動 || {{man|1|mv}}, [https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html info] |
| mv || ファイルやディレクトリを移動 || {{man|1|mv}}, [https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html info] |
||
|- |
|- |
||
− | | ln || ハードリンクやシンボリックリンクを作成 || {{man|1|ln}}, [https://www.gnu.org/software/coreutils/manual/html_node/ln-invocation.html info] |
+ | | ln || ハードリンクやシンボリックリンクを作成 || {{man|1|ln}}, [https://www.gnu.org/software/coreutils/manual/html_node/ln-invocation.html info] || {{man|8|sln}} (soname リカバリ) |
|- |
|- |
||
| [[chown]] || ファイルの所有者やグループを変更 || {{man|1|chown}}, [https://www.gnu.org/software/coreutils/manual/html_node/chown-invocation.html info] || {{man|1|chgrp}} |
| [[chown]] || ファイルの所有者やグループを変更 || {{man|1|chown}}, [https://www.gnu.org/software/coreutils/manual/html_node/chown-invocation.html info] || {{man|1|chgrp}} |
||
53行目: | 49行目: | ||
| [[chmod]] || ファイルのパーミッションを変更 || {{man|1|chmod}}, [https://www.gnu.org/software/coreutils/manual/html_node/chmod-invocation.html info] |
| [[chmod]] || ファイルのパーミッションを変更 || {{man|1|chmod}}, [https://www.gnu.org/software/coreutils/manual/html_node/chmod-invocation.html info] |
||
|- |
|- |
||
− | | [[dd]] || ファイルを変換・コピー || {{man|1|dd}}, [https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html info] |
+ | | [[dd]] || ファイルを変換・コピー || {{man|1|dd}}, [https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html info] || [[#dd の代替]] |
|- |
|- |
||
− | | df || ファイルシステムの使用状況を表示 || {{man|1|df}}, [https://www.gnu.org/software/coreutils/manual/html_node/df-invocation.html info] |
+ | | df || ファイルシステムの使用状況を表示 || {{man|1|df}}, [https://www.gnu.org/software/coreutils/manual/html_node/df-invocation.html info] || [[#df の代替]] |
+ | |- |
||
+ | | du || ファイルとディレクトリによって使用されているディスクの容量を推定します || {{man|1|du}}, [https://www.gnu.org/software/coreutils/manual/html_node/du-invocation.html info] || [[#du の代替]] |
||
|- |
|- |
||
| GNU {{Pkg|tar}} || [[tar]] || tar アーカイバ || {{man|1|tar}}, [https://www.gnu.org/software/tar/manual/html_chapter/index.html info] || [[アーカイブと圧縮|アーカイバ]] |
| GNU {{Pkg|tar}} || [[tar]] || tar アーカイバ || {{man|1|tar}}, [https://www.gnu.org/software/tar/manual/html_chapter/index.html info] || [[アーカイブと圧縮|アーカイバ]] |
||
67行目: | 65行目: | ||
| GNU {{Pkg|grep}} || grep || パターンに一致する行を表示 || {{man|1|grep}}, [https://www.gnu.org/software/grep/manual/html_node/index.html info] || [[#grep の代替]] |
| GNU {{Pkg|grep}} || grep || パターンに一致する行を表示 || {{man|1|grep}}, [https://www.gnu.org/software/grep/manual/html_node/index.html info] || [[#grep の代替]] |
||
|- |
|- |
||
− | | GNU {{Pkg|sed}} || sed || ストリームエディタ || {{man|1|sed}}, [https://www.gnu.org/software/sed/manual/html_node/index.html info], [http://sed.sourceforge.net/sed1line.txt one-liners] |
+ | | GNU {{Pkg|sed}} || sed || ストリームエディタ || {{man|1|sed}}, [https://www.gnu.org/software/sed/manual/html_node/index.html info], [http://sed.sourceforge.net/sed1line.txt one-liners] || {{Pkg|sad}} |
|- |
|- |
||
− | | GNU {{Pkg|gawk}} || awk || パターンスキャンとデータ処理言語 || {{man|1|gawk}}, [https://www.gnu.org/software/gawk/manual/html_node/index.html info] || {{Pkg|nawk}}, {{AUR|mawk}} |
+ | | GNU {{Pkg|gawk}} || awk || パターンスキャンとデータ処理言語 || {{man|1|gawk}}, [https://www.gnu.org/software/gawk/manual/html_node/index.html info] || {{Pkg|nawk}}, {{AUR|mawk}}, {{aur|goawk}} |
|- |
|- |
||
|rowspan=6| {{Pkg|util-linux}} |
|rowspan=6| {{Pkg|util-linux}} |
||
80行目: | 78行目: | ||
| [[umount]] || ファイルシステムをアンマウント || {{man|8|umount}} |
| [[umount]] || ファイルシステムをアンマウント || {{man|8|umount}} |
||
|- |
|- |
||
− | | [[su]] || ユーザを変更 || {{man|1|su}} || [[sudo]], |
+ | | [[su]] || ユーザを変更 || {{man|1|su}} || [[sudo]], [[doas]] |
|- |
|- |
||
| kill || プロセスを終了 || {{man|1|kill}} || {{man|1|pkill}}, {{man|1|killall}} |
| kill || プロセスを終了 || {{man|1|kill}} || {{man|1|pkill}}, {{man|1|killall}} |
||
87行目: | 85行目: | ||
| pgrep || 名前や属性によってプロセスを検索 || {{man|1|pgrep}} || {{man|1|pidof}} |
| pgrep || 名前や属性によってプロセスを検索 || {{man|1|pgrep}} || {{man|1|pidof}} |
||
|- |
|- |
||
− | | ps || プロセスの情報を表示 || {{man|1|ps}} ||rowspan=2| {{man|1|top}}, |
+ | | ps || プロセスの情報を表示 || {{man|1|ps}} ||rowspan=2| {{man|1|top}}, [[アプリケーション一覧/ユーティリティ#タスクマネージャ|タスクマネージャ]] |
|- |
|- |
||
| free || メモリの使用/未使用量を表示 || {{man|1|free}} |
| free || メモリの使用/未使用量を表示 || {{man|1|free}} |
||
106行目: | 104行目: | ||
| [[alias]] || エイリアスを定義/表示 || {{man|1p|alias}} |
| [[alias]] || エイリアスを定義/表示 || {{man|1p|alias}} |
||
|- |
|- |
||
− | | type || コマンドのタイプを表示 || {{man|1p|type}} || {{man|1|which}} |
+ | | type || コマンドのタイプを表示 || {{man|1p|type}} || {{man|1p|command}}, {{man|1|whereis}}, {{man|1|which}} |
|- |
|- |
||
| time || コマンドの所要時間を計測 || {{man|1p|time}} |
| time || コマンドの所要時間を計測 || {{man|1p|time}} |
||
|- |
|- |
||
− | |rowspan= |
+ | |rowspan=16| GNU {{Pkg|coreutils}} |
− | | [[tee]] || 標準入力を読み込み、標準出力やファイルに書き出す || {{man|1|tee}}, [https://www.gnu.org/software/coreutils/manual/html_node/tee-invocation.html info] |
+ | | [[tee]] || 標準入力を読み込み、標準出力やファイルに書き出す || {{man|1|tee}}, [https://www.gnu.org/software/coreutils/manual/html_node/tee-invocation.html info] || {{man|1|pee}} |
|- |
|- |
||
| mktemp || テンポラリファイルやテンポラリディレクトリを作成 || {{man|1|mktemp}}, [https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html info] |
| mktemp || テンポラリファイルやテンポラリディレクトリを作成 || {{man|1|mktemp}}, [https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html info] |
||
|- |
|- |
||
− | | |
+ | | mknod || 名前付きパイプやデバイスノードを作成する || {{man|1|mknod}}, {{man|1|mkfifo}}, [https://www.gnu.org/software/coreutils/manual/html_node/mkfifo-invocation.html#mkfifo-invocation info] |
|- |
|- |
||
− | | |
+ | | truncate || ファイルのサイズを縮小/拡張する || {{man|1|truncate}}, [https://www.gnu.org/software/coreutils/manual/html_node/truncate-invocation.html#truncate-invocation info] || {{man|1|fallocate}} |
|- |
|- |
||
− | | |
+ | | basenc || 入力をエンコードし、結果を出力する || {{man|1|basenc}}, {{man|1|base64}}, [https://www.gnu.org/software/coreutils/manual/html_node/basenc-invocation.html info] |
+ | |- |
||
+ | | cut || 行の選択した部分を表示 || {{man|1|cut}}, [https://www.gnu.org/software/coreutils/manual/html_node/cut-invocation.html info] || {{man|1|colrm}}, {{pkg|hck}}, {{pkg|choose}} |
||
+ | |- |
||
+ | | tr || 文字を置換/削除 || {{man|1|tr}}, [https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html info] || {{man|1|uconv}} |
||
+ | |- |
||
+ | | od || ファイルを8進数や他の基数でダンプ || {{man|1|od}}, [https://www.gnu.org/software/coreutils/manual/html_node/od-invocation.html info] || {{man|1|hexdump}}, [[vim]] の {{man|1|xxd}} |
||
|- |
|- |
||
| sort || 行をソート || {{man|1|sort}}, [https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html info] |
| sort || 行をソート || {{man|1|sort}}, [https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html info] |
||
|- |
|- |
||
− | | uniq || 繰り返される行を表示/省略 || {{man|1|uniq}}, [https://www.gnu.org/software/coreutils/manual/html_node/uniq-invocation.html info] |
+ | | uniq || 繰り返される行を表示/省略 || {{man|1|uniq}}, [https://www.gnu.org/software/coreutils/manual/html_node/uniq-invocation.html info] || {{pkg|anewer}}, {{aur|runiq}}, {{aur|huniq-git}} |
|- |
|- |
||
− | | comm || 2つのソート済みのファイルを行単位で比較 || {{man|1|comm}}, [https://www.gnu.org/software/coreutils/manual/html_node/comm-invocation.html info] |
+ | | comm || 2つのソート済みのファイルを行単位で比較 || {{man|1|comm}}, [https://www.gnu.org/software/coreutils/manual/html_node/comm-invocation.html info] || {{aur|zet}} |
|- |
|- |
||
| head || ファイルの最初の部分を出力 || {{man|1|head}}, [https://www.gnu.org/software/coreutils/manual/html_node/head-invocation.html info] |
| head || ファイルの最初の部分を出力 || {{man|1|head}}, [https://www.gnu.org/software/coreutils/manual/html_node/head-invocation.html info] |
||
+ | |- |
||
+ | | join || 2 つの入力のフィールドが共通な行を結合する || {{man|1|join}}, [https://www.gnu.org/software/coreutils/manual/html_node/join-invocation.html info] || {{man|1|combine}} {{aur|zet}} |
||
+ | |- |
||
+ | | md5sum || 入力の暗号ハッシュ関数の値を計算し、出力する || {{man|1|sha256sum}}, {{man|1|sha512sum}}, [https://www.gnu.org/software/coreutils/manual/html_node/md5sum-invocation.html info] || {{man|1|shasum}}, {{man|1|hashdeep}}, {{man|1|rhash}} |
||
|- |
|- |
||
| tail || ファイルの最後の部分を出力/追従 || {{man|1|tail}}, [https://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html info] |
| tail || ファイルの最後の部分を出力/追従 || {{man|1|tail}}, [https://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html info] |
||
135行目: | 143行目: | ||
| GNU {{Pkg|binutils}} || strings || バイナリファイル内の表示可能な文字を表示 || {{man|1|strings}}, [https://sourceware.org/binutils/docs/binutils/strings.html info] || {{AUR|stringsext}} |
| GNU {{Pkg|binutils}} || strings || バイナリファイル内の表示可能な文字を表示 || {{man|1|strings}}, [https://sourceware.org/binutils/docs/binutils/strings.html info] || {{AUR|stringsext}} |
||
|- |
|- |
||
− | | |
+ | | {{pkg|util-linux}} || column || ファイルを複数列に整形する、任意でグリッド付きの表で綺麗に出力する || {{man|1|column}} || {{man|1|paste}}, {{aur|csview}} |
+ | |- |
||
+ | | GNU {{Pkg|findutils}} || xargs || 標準入力からの引数を組み合わせる、またはテンプレート化し、外部コマンドを呼び出す || {{man|1|xargs}} || {{man|1|parallel}} ({{man|7|parallel_alternatives}}) |
||
+ | |- |
||
+ | | GNU {{Pkg|glibc}} || iconv || 文字コードを変換 || {{man|1|iconv}} || {{Pkg|recode}}, {{man|1|uconv}} |
||
+ | |- |
||
+ | | GNU {{pkg|sharutils}} || uudecode || ファイルを email に適したテキストにエンコードする || {{man|1|uuencode}}, {{man|1|uudecode}}, [https://www.gnu.org/software/sharutils/manual/html_node/uuencode-Invocation.html info] || {{man|1|uudeview}} |
||
|- |
|- |
||
| {{Pkg|file}} || file || ファイルタイプを推測 || {{man|1|file}} |
| {{Pkg|file}} || file || ファイルタイプを推測 || {{man|1|file}} |
||
144行目: | 158行目: | ||
== 代替コマンド == |
== 代替コマンド == |
||
− | + | コアユーティリティの代替は以下のパッケージによって提供されています: |
|
+ | |||
+ | * {{App|[[BusyBox]]|レスキューや組み込みシステム向けのユーティリティ。|https://busybox.net|{{Pkg|busybox}}}} |
||
+ | * {{App|[[Wikipedia:ja:Toybox|Toybox]]|オールインワンの Linux コマンドライン。|https://landley.net/toybox|{{AUR|toybox}}}} |
||
+ | * {{App|uutils|GNU coreutils を Rust で書き直したクロスプラットフォームなユーティリティ。|https://github.com/uutils/coreutils|{{Pkg|uutils-coreutils}}}} |
||
+ | * {{App|Heirloom Toolchest|標準的な Unix ユーティリティの伝統的な実装。|https://heirloom.sourceforge.net|{{AUR|heirloom-sh}}, {{AUR|heirloom-doctools}}}} |
||
+ | * {{App|9base|Plan9 の様々なツールを Unix に移植したもの。|https://tools.suckless.org/9base|{{Pkg|9base}}}} |
||
+ | * {{App|[[Wikipedia:sbase|sbase]]|*nix core ユーティリティの suckless 版。|https://core.suckless.org/sbase|{{AUR|sbase-git}}}} |
||
+ | * {{App|ubase|sbase ユーティリティの拡張。|https://core.suckless.org/ubase|{{AUR|ubase-git}}}} |
||
=== cat の代替 === |
=== cat の代替 === |
||
153行目: | 175行目: | ||
* {{App|zoxide|ユーザーの癖を学習するスマートな cd コマンド。たった数個のキーストロークでどこへでも移動できます。|https://github.com/ajeetdsouza/zoxide|{{Pkg|zoxide}}}} |
* {{App|zoxide|ユーザーの癖を学習するスマートな cd コマンド。たった数個のキーストロークでどこへでも移動できます。|https://github.com/ajeetdsouza/zoxide|{{Pkg|zoxide}}}} |
||
+ | * {{App|autojump|コマンドラインからファイルシステムを移動する高速な方法。|https://github.com/wting/autojump|{{AUR|autojump}}}} |
||
+ | |||
+ | [[Bash#パスを入力したら自動で "cd"]] と [[Zsh#最近のディレクトリを記憶させる]] も見てください。 |
||
=== cp の代替 === |
=== cp の代替 === |
||
162行目: | 187行目: | ||
* {{App|broot|ディレクトリツリーを表示・移動する新しい方法|https://github.com/Canop/broot|{{Pkg|broot}}}} |
* {{App|broot|ディレクトリツリーを表示・移動する新しい方法|https://github.com/Canop/broot|{{Pkg|broot}}}} |
||
* {{App|clifm|ls(1) のようにファイルを一覧表示し、さらにアイコン表示と RGB カラーサポートを備えたファイルマネージャ|https://github.com/leo-arch/clifm/wiki/Advanced#files-lister-ls-mode|{{AUR|clifm}}}} |
* {{App|clifm|ls(1) のようにファイルを一覧表示し、さらにアイコン表示と RGB カラーサポートを備えたファイルマネージャ|https://github.com/leo-arch/clifm/wiki/Advanced#files-lister-ls-mode|{{AUR|clifm}}}} |
||
− | * {{App| |
+ | * {{App|eza|カラー表示、ツリー表示、git 統合などの機能を備えたもう一つの ls 代替。もはやサポートされていない exa をベースとしています。|https://github.com/eza-community/eza|{{Pkg|eza}}}} |
* {{App|lsd|多くの美しい色と素晴らしいアイコンを備えたモダンな ls|https://github.com/Peltoche/lsd|{{Pkg|lsd}}}} |
* {{App|lsd|多くの美しい色と素晴らしいアイコンを備えたモダンな ls|https://github.com/Peltoche/lsd|{{Pkg|lsd}}}} |
||
168行目: | 193行目: | ||
* {{App|fd|シンプルで速く、ユーザーフレンドリーな find の代替。隠しファイルや {{ic|.gitignore}} にあるファイルをデフォルトで無視します。|https://github.com/sharkdp/fd|{{Pkg|fd}}}} |
* {{App|fd|シンプルで速く、ユーザーフレンドリーな find の代替。隠しファイルや {{ic|.gitignore}} にあるファイルをデフォルトで無視します。|https://github.com/sharkdp/fd|{{Pkg|fd}}}} |
||
− | * {{App|fuzzy-find|ファイル |
+ | * {{App|fuzzy-find|ファイル検索のためのあいまい補完。|https://github.com/silentbicycle/ff|{{AUR|ff-git}}}} |
* {{App|[[mlocate]]|locate/updatedb の実装をマージ。|https://pagure.io/mlocate|{{Pkg|mlocate}}}} |
* {{App|[[mlocate]]|locate/updatedb の実装をマージ。|https://pagure.io/mlocate|{{Pkg|mlocate}}}} |
||
* {{App|plocate|よりさらに速い locate|https://plocate.sesse.net/|{{Pkg|plocate}}}} |
* {{App|plocate|よりさらに速い locate|https://plocate.sesse.net/|{{Pkg|plocate}}}} |
||
+ | * {{App|rawhide|C 言語のきれいな式を使ってファイルを検索します。|https://raf.org/rawhide/|{{AUR|rawhide}}}} |
||
− | グラフィカルなファイル検索ソフトウェアは [[アプリケーション一覧/ユーティリティ# |
+ | グラフィカルなファイル検索ソフトウェアは [[アプリケーション一覧/ユーティリティ#ファイル検索]] をご覧ください。 |
=== diff の代替 === |
=== diff の代替 === |
||
180行目: | 206行目: | ||
* [[git]] の diff は {{ic|--color-words}} フラグを使用すると単語単位の差分表示が可能です。{{ic|--no-index}} フラグを使用すれば Git のワークツリー外でも使用可能です。 |
* [[git]] の diff は {{ic|--color-words}} フラグを使用すると単語単位の差分表示が可能です。{{ic|--no-index}} フラグを使用すれば Git のワークツリー外でも使用可能です。 |
||
* {{App|cwdiff|出力をカラー表示化する GNU wdiff ラッパー|https://github.com/junghans/cwdiff|{{AUR|cwdiff}}}} |
* {{App|cwdiff|出力をカラー表示化する GNU wdiff ラッパー|https://github.com/junghans/cwdiff|{{AUR|cwdiff}}}} |
||
− | * {{App|git-delta|git や diff 、grep 用の出力をシンタックスハイライトするページャ |
+ | * {{App|git-delta|git や diff 、grep 用の出力をシンタックスハイライトするページャ|https://dandavison.github.io/delta/|{{Pkg|git-delta}}}} |
− | * {{App|dwdiff|単語単位で差分表示する diff のフロントエンド。カラー表示サポート付き。|https://os.ghalkes.nl/dwdiff.html|{{ |
+ | * {{App|dwdiff|単語単位で差分表示する diff のフロントエンド。カラー表示サポート付き。|https://os.ghalkes.nl/dwdiff.html|{{AUR|dwdiff}}}} |
* {{App|icdiff|Python で書かれたカラー表示 diff ツール。"Improved color diff" は通常の diff の使用を補助するという意味です。|https://github.com/jeffkaufman/icdiff|{{AUR|icdiff}}}} |
* {{App|icdiff|Python で書かれたカラー表示 diff ツール。"Improved color diff" は通常の diff の使用を補助するという意味です。|https://github.com/jeffkaufman/icdiff|{{AUR|icdiff}}}} |
||
* {{App|wdiff|GNU diff の単語単位の実装。カラー表示はサポートしません。|https://www.gnu.org/software/wdiff/|{{Pkg|wdiff}}}} |
* {{App|wdiff|GNU diff の単語単位の実装。カラー表示はサポートしません。|https://www.gnu.org/software/wdiff/|{{Pkg|wdiff}}}} |
||
195行目: | 221行目: | ||
==== コード検索ソフトウェア ==== |
==== コード検索ソフトウェア ==== |
||
− | 以下 |
+ | 以下のツールはコード検索の場面で grep を置き換えることを目的としています。これらはデフォルトで再帰検索をし、バイナリファイルや {{ic|.gitignore}} 内にあるファイルをスキップします。 |
* {{App|ack|Perl ベースの grep 置き換え。多種多様なソースコードの大きなツリーを扱うプログラマに向けです。|https://beyondgrep.com/|{{Pkg|ack}}}} |
* {{App|ack|Perl ベースの grep 置き換え。多種多様なソースコードの大きなツリーを扱うプログラマに向けです。|https://beyondgrep.com/|{{Pkg|ack}}}} |
||
* {{App|ripgrep (rg)|ag の使いやすさと grep のそのままの速さを組み合わせた検索ツール。|https://github.com/BurntSushi/ripgrep|{{Pkg|ripgrep}}}} |
* {{App|ripgrep (rg)|ag の使いやすさと grep のそのままの速さを組み合わせた検索ツール。|https://github.com/BurntSushi/ripgrep|{{Pkg|ripgrep}}}} |
||
* {{App|The Silver Searcher (ag)|Ack に似ているがより速いコード検索ツール。|https://github.com/ggreer/the_silver_searcher|{{Pkg|the_silver_searcher}}}} |
* {{App|The Silver Searcher (ag)|Ack に似ているがより速いコード検索ツール。|https://github.com/ggreer/the_silver_searcher|{{Pkg|the_silver_searcher}}}} |
||
+ | * {{App|ugrep (ug)|インタラクティブなユーザインターフェイス、曖昧検索、boolean クエリ、16進数表示などの機能を持つ非常に高速な grep。|https://github.com/Genivia/ugrep|{{Pkg|ugrep}}}} |
||
+ | |||
+ | {{Pkg|cscope}} も参照。 |
||
==== インタラクティブフィルター ==== |
==== インタラクティブフィルター ==== |
||
209行目: | 238行目: | ||
* {{App|skim|Rust で書かれたあいまい検索ソフトウェア。fzf に似ています。|https://github.com/lotabout/skim|{{Pkg|skim}}}} |
* {{App|skim|Rust で書かれたあいまい検索ソフトウェア。fzf に似ています。|https://github.com/lotabout/skim|{{Pkg|skim}}}} |
||
− | == |
+ | === dd の代替 === |
+ | [[dd]] や [[ddrescue]] も参照してください。 |
||
− | === cat === |
||
+ | ==== 代替 dd の実装 ==== |
||
− | [[Wikipedia:ja:cat (UNIX)|cat]] (''catenate'') はファイルを連結して表示する標準の Unix ユーティリティです。 |
||
+ | このサブセクションでは、{{man|1p|dd}} の POSIX 仕様に (ほぼ) 準拠しているインターフェイスとデフォルトの挙動を持つ ''dd'' の実装をリストアップしています。 |
||
− | * ''cat'' はシェルにビルトインされていないため、多くの場合で[[wikipedia:ja:リダイレクト (CLI)|リダイレクション]]を使ったほうが便利です (例: スクリプト、もしくはパフォーマンスが必要な場合)。実際 {{ic|< ''file''}} は {{ic|cat ''file''}} と全く同じです。 |
||
+ | * {{app|ddpt|Linux カーネルの SCSI サブシステムのメンテナによる、{{man|8|sg_dd}} のポータブルな代替。オプションですが、非常に特殊化されたハードウェア I/O (SCSI コマンドセット) をサポートし、さらに他の多くの機能を有しています。|http://sg.danny.cz/sg/ddpt.html|{{aur|ddpt}}}} |
||
− | * ''cat'' は複数行でも動作します: |
||
+ | * {{app|sdd|Joerg Schilling による、UNIX 環境間で移植性の高い dd の実装。コピーされたデータのチェックサムや、不良ブロックを再読込させることができます。|https://schilytools.sourceforge.net/|{{aur|schily-tools-sdd}}}} |
||
+ | ===== GNU dd のスピンオフ ===== |
||
− | {{bc| |
||
− | $ cat << EOF >> ''path/file'' |
||
− | ''first line'' |
||
− | ... |
||
− | ''last line'' |
||
− | EOF |
||
− | }} |
||
− | 代わりに {{ic|printf}} コマンドを使用: |
||
− | $ printf '%s\n' 'first line' ... 'last line' |
||
+ | {{pkg|coreutils}} にある ''dd'' の GNU 実装も POSIX に準拠しています。このサブセクションでは GNU dd のフォークをリストアップしています。 |
||
− | * ファイルの行を逆順で cat する必要がある場合、[[Wikipedia:tac (Unix)|tac]] (''cat'' reversed) という名前のユーティリティがあります。 |
||
+ | * {{App|[[Wikipedia:Dd_(Unix)#dcfldd|dcfldd]]|科学捜査やセキュリティの場面のための、機能が強化された GNU dd フォーク。次のような機能を有しています: 臨機応変なハッシュ検証機能、柔軟なディスク消去、書き込み検証、同時に複数のターゲットに出力、出力の分割やパイプ。|https://dcfldd.sourceforge.net|{{AUR|dcfldd}}}} |
||
− | === chmod === |
||
+ | * {{App|[[Wikipedia:Dd_(Unix)#dc3dd|dc3dd]]|アメリカ国防総省サイバー犯罪センター (DC3) による、GNU dd のパッチ済みバージョン。dcfldd とよく似た目的と機能を有しています。|https://sourceforge.net/projects/dc3dd/|{{AUR|dc3dd}}}} |
||
+ | ==== モダンな dd の類似品 ==== |
||
− | [[ファイルのパーミッションと属性#パーミッションを変更]]を見てください。 |
||
+ | このサブセクションでは、(JCL に似たコマンドライン構文と[https://unix.stackexchange.com/a/192114 デフォルトの挙動]という点で) POSIX に準拠していない dd の代替をリストアップしています。 |
||
− | === chown === |
||
+ | * {{app|dd_rescue|多くの機能が積み込まれたモダンな dd の類似品。日々のスクリプティングやディスク複製、データリカバリに適しています。|http://www.garloff.de/kurt/linux/ddrescue/|{{pkg|dd_rescue}}}} |
||
− | [[ファイルのパーミッションと属性#所有者を変更]]を見てください。 |
||
+ | * {{app|rw|従来のコマンドラインフラグ付きの必要最低限でポータブルな ''dd'' 類似品。|https://sortix.org/rw/|{{aur|rw}}}} |
||
− | === |
+ | ==== buffer のスピンオフ ==== |
+ | このサブセクションでは、{{aur|buffer}} のフォークをリストアップしています。buffer は、''dd'' に似た汎用 I/O バッファリングユーティリティですが、動的サイズバッファを持っています。ブロック単位の I/O をサポートしており、LTO テープを書き込み/読み込みする際に摩耗を防ぐために使用できます。 |
||
− | [[Wikipedia:ja:dd (UNIX)|dd]] は主にファイルを変換・コピーするために使われる Unix や Unix ライクなオペレーティングシステムのコマンドです。 |
||
+ | * {{app|mbuffer|''buffer'' ユーティリティにマルチスレッディングや他の機能を組み合わせたもの。|https://www.maier-komor.de/mbuffer.html|{{Pkg|mbuffer}}}} |
||
− | ''cp'' はいくつかのオペランドを除いて ''dd'' と同じですが、多目的のディスク消去作業向きには作られてはいません。 |
||
+ | === df の代替 === |
||
− | {{Tip|デフォルトでは、''dd'' は作業が完了するまで何も出力しません。操作の進捗を監視したい場合、コマンドに {{ic|1=status=progress}} オプションを追加してください。このオプションは古いバージョン (8.24 以前) の {{Pkg|coreutils}} では使えません。}} |
||
+ | * {{App|duf|ディスクの使用量と空き容量を調べるユーティリティ|https://github.com/muesli/duf|{{Pkg|duf}}}} |
||
− | 'dd' は以下のような作業ができます: |
||
− | * [[ディスクのクローン#dd を使う|ドライブ関連]]の作業: |
||
− | ** イメージの作成。 |
||
− | ** イメージの書き込み。 |
||
− | ** ドライブやパーティションの複製。 |
||
− | ** ドライブやパーティションの消去。 |
||
− | ** パーティションテーブルやブートセクタの消去。 |
||
− | ** ブートセクタのバックアップ。 |
||
− | ** システムの復元。 |
||
− | * デバイスや {{ic|dd /dev/random}}、あるいは入力デバイスからストリームを取得 |
||
− | * CPU に負担をかける (例: {{ic|1=dd if=/dev/zero of=/dev/null}}). |
||
− | * ディスクに負担をかける (例: {{ic|1=dd if=/dev/zero of=/''path''/''testfile'' bs=''number_of''G count=''times'' oflag=''fdatasync''}}) |
||
− | * バックアップユーティリティとして使用 |
||
− | * ファイルを大文字・小文字に変換 |
||
+ | === du の代替 === |
||
− | 詳しくは {{man|1|dd}} や [https://www.gnu.org/software/coreutils/dd ドキュメント] を読んでください。 |
||
+ | * {{App|cdu|カラー出力で、美しいヒストグラムを出力する du ラッパ。|http://arsunik.free.fr/prog/cdu.html|{{aur|cdu}}}} |
||
− | ==== dd 派生 ==== |
||
+ | * {{App|dust|Rust で記述された du のより直感的なバージョン。|https://github.com/bootandy/dust|{{Pkg|dust}}}} |
||
+ | * {{App|ncdu|ncurses のシンプルなディスク使用量アナライザ。|https://dev.yorhel.nl/ncdu|{{Pkg|ncdu}}}} |
||
+ | * {{App|gdu|Go で記述された、コンソールインターフェイスのディスク使用量アナライザ。|https://github.com/Dundee/gdu|{{Pkg|gdu}}}} |
||
+ | [[アプリケーション一覧/ユーティリティ#ディスク使用量表示プログラム]] も見てください。 |
||
− | 他の ''dd'' ライクなプログラムには定期的に状態を出力する (例: シンプルなプログレスバー) 機能があります。 |
||
− | |||
− | ; dcfldd : {{AUR|dcfldd}} は dd にフォレンジクスやセキュリティの面で改良を加えたバージョンです。ほとんどの dd のパラメータを扱うことができステータスの出力もできます。dcfldd の最後の安定版は2006年12月19日にリリースされました。<sup>[http://dcfldd.sourceforge.net/]</sup> |
||
− | |||
− | ; ddrescue : GNU {{Pkg|ddrescue}} はデータ復旧ツールです。ディスク消去でほとんどの場合無用な機能である読み込みエラーを無視できます。詳しくは [https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html 公式マニュアル] を見て下さい。 |
||
− | |||
− | === find === |
||
− | |||
− | ''find'' は {{Pkg|findutils}} パッケージに含まれており、{{Pkg|base}} パッケージグループのひとつとしてインストールされます。 |
||
− | |||
− | {{Tip|{{Pkg|fd}} はシンプルかつ高速でユーザーフレンドリーな {{ic|find}} の代替です。デフォルト設定がわかりやすいものになっています (例: 隠しファイル・ディレクトリや {{ic|.gitignore}} で指定されたファイルは無視する、{{ic|find -iname '*PATTERN*'}} ではなく {{ic|fd PATTERN}} で検索できる)。特徴として ([[#ls|ls]] と同じような) カラー出力や Unicode 対応、正規表現が使用できます。}} |
||
− | |||
− | ''find'' コマンドはファイル名を引数としてファイルシステムの中に名前が一致するファイルがないか検索するコマンドではありません。下の [[#locate]] を見てください。 |
||
− | |||
− | find はディレクトリのセットとマッチするファイルの正規表現を引数として取ります。非常に強力なワンライナーを作ることができますが、直感的な検索コマンドとしては使えません。詳しい使用方法は [http://mywiki.wooledge.org/UsingFind UsingFind] を見てください。 |
||
− | |||
− | === grep === |
||
− | |||
− | [[Wikipedia:ja:grep|grep]] ([[Wikipedia:ja:ed|ed]] の ''g/re/p'', ''global/regular expression/print'' から) は Unix のために書かれたコマンドラインの文章検索ユーティリティです。''grep'' コマンドはファイルや標準入力から与えられた正規表現と一致する行を検索し、プログラムの標準出力に表示します。 |
||
− | * ''grep'' はファイルを処理できるので、{{ic|cat ''file'' <nowiki>|</nowiki> grep ''pattern''}} のようなコンストラクトは {{ic|grep ''pattern'' ''file''}} に置き換えられます |
||
− | * VCS のソースコードを ''grep'' する場合、{{Pkg|ripgrep}} や {{Pkg|ack}}、{{Pkg|the_silver_searcher}} などの最適化されたユーティリティが存在します。 |
||
− | * {{ic|-n}} オプションを使うことで出力にファイルの行番号が含まれているようになります。 |
||
− | |||
− | {{Note|コマンドによっては標準エラー出力の方に出力が送信されることもありますが、grep は標準エラー出力を解釈しません。このような場合、標準エラー出力を標準出力にリダイレクトする必要があります: {{ic|''command'' 2>&1 {{!}} grep ''args''}} または (Bash 4 の場合) {{ic|''command'' {{!}}& grep ''args''}}。[http://www.tldp.org/LDP/abs/html/io-redirection.html I/O Redirection] を参照してください。}} |
||
− | |||
− | カラー出力については[[コンソールのカラー出力#grep]] を見てください。 |
||
− | |||
− | === iconv === |
||
− | |||
− | {{ic|iconv}} は文字列のエンコーディングをあるコードセットから他のコードセットへ変換します。 |
||
− | |||
− | 次のコマンドはファイル {{ic|foo}} を ISO-8859-15 から UTF-8 へ変換して {{ic|foo.utf}} として保存します: |
||
− | |||
− | $ iconv -f ISO-8859-15 -t UTF-8 foo >foo.utf |
||
− | |||
− | 詳しくは {{man|1|iconv}} を読んで下さい。 |
||
− | |||
− | ==== ファイルを変換する ==== |
||
− | {{Tip|mtime を変えてほしくない場合 iconv の代わりに {{pkg|recode}} を使うことができます。}} |
||
− | [[#sed|sed]] とは異なり、''iconv'' にはファイルを変換するオプションはありません。しかしながら、({{pkg|moreutils}} に含まれている) {{ic|sponge}} を使うことでファイルを変換することもできます: |
||
− | |||
− | $ iconv -f WINDOWS-1251 -t UTF-8 foobar.txt | sponge foobar.txt |
||
− | |||
− | 詳しくは {{man|1|sponge}} を参照。 |
||
− | |||
− | === ip === |
||
− | [[wikipedia:Iproute2|ip]] を使うことで Linux の [[Wikipedia:ja:Internet Protocol|IP]] ソフトウェアスタックにおけるネットワークデバイス・IP アドレス・ルーティングテーブルなどの情報を表示することができます。様々なコマンドを加えることで、オブジェクトの操作や設定をすることも可能です。 |
||
− | |||
− | {{Note|''ip'' ユーティリティは {{Pkg|iproute2}} パッケージに含まれており、このパッケージは {{Pkg|base}} グループに入っています。}} |
||
− | |||
− | {| class="wikitable" |
||
− | ! オブジェクト !! 用途 !! man ページ |
||
− | |- |
||
− | | ip addr || プロトコルアドレス管理 || {{man|8|ip-address}} |
||
− | |- |
||
− | | ip addrlabel || プロトコルアドレスラベル管理 || {{man|8|ip-addrlabel}} |
||
− | |- |
||
− | | ip l2tp || tunnel ethernet over IP (L2TPv3) || {{man|8|ip-l2tp}} |
||
− | |- |
||
− | | ip link || ネットワークデバイス設定 || {{man|8|ip-link}} |
||
− | |- |
||
− | | ip maddr || マルチキャストアドレス管理 || {{man|8|ip-maddress}} |
||
− | |- |
||
− | | ip monitor || netlink メッセージの監視 || {{man|8|ip-monitor}} |
||
− | |- |
||
− | | ip mroute || マルチキャストルーティングキャッシュ管理 || {{man|8|ip-mroute}} |
||
− | |- |
||
− | | ip mrule || マルチキャストルーティングポリシー db のルール || |
||
− | |- |
||
− | | ip neigh || neighbour/arp テーブル管理 || {{man|8|ip-neighbour}} |
||
− | |- |
||
− | | ip netns || プロセスネットワーク名前空間管理 || {{man|8|ip-netns}} |
||
− | |- |
||
− | | ip ntable || neighbour テーブル設定 || {{man|8|ip-ntable}} |
||
− | |- |
||
− | | ip route || ルーティングテーブル管理 || {{man|8|ip-route}} |
||
− | |- |
||
− | | ip rule || ルーティングポリシーデータベース管理 || {{man|8|ip-rule}} |
||
− | |- |
||
− | | ip tcp_metrics || TCP Metrics の管理 || {{man|8|ip-tcp_metrics}} |
||
− | |- |
||
− | | ip tunnel || トンネル設定 || {{man|8|ip-tunnel}} |
||
− | |- |
||
− | | ip tuntap || TUN/TAP デバイスの管理 || |
||
− | |- |
||
− | | ip xfrm || IPsec ポリシーの管理 || {{man|8|ip-xfrm}} |
||
− | |} |
||
− | |||
− | 全てのオブジェクトで {{ic|help}} コマンドが利用可能です。例えば、{{ic|ip addr help}} と入力すればアドレスオブジェクトで利用できるコマンド構文が表示されます。高度な利用方法は [http://www.policyrouting.org/iproute2.doc.html iproute2 documentation] を見て下さい。 |
||
− | |||
− | [[ネットワーク設定]]の記事では実際問題として ''ip'' コマンドを様々な作業でどうやって使えばいいのか解説しています。 |
||
− | |||
− | {{Note|もしかしたら [[Wikipedia:ifconfig|ifconfig]] コマンドの方が親しみがあるかもしれません。このコマンドは Linux の旧バージョンでインターフェイス設定に使われていました。現在 Arch Linux では廃止されているため、代わりに ''ip'' を使って下さい。}} |
||
− | |||
− | === less === |
||
− | |||
− | [[Wikipedia:ja:less|less]] はテキストファイルの中身を一画面単位で表示するのに使われるターミナルページャプログラムです。[[Wikipedia:ja:more (UNIX)|more]] や [[Wikipedia:pg (Unix)|pg]] といった他のページャと同じですが、''less'' はより高度なインターフェイスと完全な [http://www.greenwoodsoftware.com/less/faq.html feature-set] を提供します。 |
||
− | |||
− | less の代替プログラムについては[[アプリケーション一覧#ターミナルページャ]]を見て下さい。 |
||
− | |||
− | === locate === |
||
− | |||
− | {{Pkg|mlocate}} パッケージを[[インストール]]してください。インストール後、自動的にデータベースを更新するスクリプトが毎日実行されるようになります。手動で root で ''updatedb'' を実行することでいつでもデータベースは更新できます。デフォルトでは {{ic|/media}} や {{ic|/mnt}} などのパスは無視されるので ''locate'' は外部デバイスのファイルを検索できません。詳しくは {{man|8|updatedb}} を見てください。 |
||
− | |||
− | ''locate'' コマンドはファイルを名前で検索する一般的な Unix ツールです。あらかじめ作成しておいたデータベースファイルを使って検索するためファイルシステムを直接検索する [[wikipedia:Find|find]] ツールよりも高速に検索できます。欠点としてデータベースが作成された後に作られたファイルは ''locate'' で検索できません。データベースを更新する ''updatedb'' コマンドを定期的に実行することで問題は抑えられます。 |
||
− | |||
− | ''locate'' は使う前にデータベースの作成が必要です。root で {{ic|updatedb}} を実行してください。 |
||
− | |||
− | [http://jvns.ca/blog/2015/03/05/how-the-locate-command-works-and-lets-rewrite-it-in-one-minute/ How locate works and rewrite it in one minute] も参照。 |
||
− | |||
− | ==== もうひとつのページャとしての Vim ==== |
||
− | |||
− | [[Vim]] (''visual editor improved'') にはテキストファイル・圧縮ファイル・バイナリ・ディレクトリの中身を表示するスクリプトが含まれています。次の行をシェルの設定ファイルに追加することでページャとして使うことが可能です: |
||
− | {{hc|~/.bashrc|2=alias less='/usr/share/vim/vim80/macros/less.sh'}} |
||
− | |||
− | また、''less.sh'' マクロの代替も存在し、{{ic|PAGER}} 環境変数として使えます。{{Pkg|vimpager}} をインストールしてシェルの設定ファイルに以下を加えて下さい: |
||
− | {{hc|~/.bashrc|2= |
||
− | export PAGER='vimpager' |
||
− | alias less=$PAGER |
||
− | }} |
||
− | |||
− | これで {{ic|PAGER}} 環境変数を使うプログラム、[[git]] などはページャとして ''vim'' を使うようになります。 |
||
− | |||
− | === ls === |
||
− | |||
− | [[Wikipedia:ja:ls|ls]] (''list'') は Unix や Unix ライクなオペレーティングシステムで使われる、ファイルを一覧するコマンドです。 |
||
− | |||
− | 詳しい情報は {{ic|info ls}} や [https://www.gnu.org/software/coreutils/manual/html_node/ls-invocation.html#ls-invocation オンラインマニュアル] を見てください。 |
||
− | |||
− | {{Pkg|exa}} は近代的でユーザーフレンドリーな {{ic|ls}} と {{ic|tree}} の代替ユーティリティです。ファイル名と一緒に [[Git]] の変更を表示したり、{{ic|--long}} モードで各カラムをカラー化したり、{{ic|--long}} モードで {{ic|tree}} ビューとメタデータを同時に表示する機能があります。 |
||
− | |||
− | ==== 長い出力 ==== |
||
− | |||
− | {{ic|-l}} オプションはメタデータを表示します。例: |
||
− | |||
− | {{hc|$ ls -l /path/to/directory| |
||
− | total 128 |
||
− | drwxr-xr-x 2 archie users 4096 Jul 5 21:03 Desktop |
||
− | drwxr-xr-x 6 archie users 4096 Jul 5 17:37 Documents |
||
− | drwxr-xr-x 2 archie users 4096 Jul 5 13:45 Downloads |
||
− | -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 customers.ods |
||
− | -rw-r--r-- 1 archie users 3339 Jun 27 08:28 todo |
||
− | -rwxr-xr-x 1 archie users 2048 Jul 6 12:56 myscript.sh |
||
− | }} |
||
− | |||
− | {{ic|total}} の値はディレクトリ内のファイルに割り当てられたディスクのブロック数を表します。 |
||
− | |||
− | ファイルやサブディレクトリの行は7つのメタデータフィールドに分けられます: |
||
− | |||
− | * タイプとパーミッション: |
||
− | ** 最初の文字はタイプです。タイプの説明は {{ic|info ls -n "What information is listed"}} を見てください。例: |
||
− | *** {{ic|-}} は通常のファイルです。 |
||
− | *** {{ic|d}} はディレクトリです。 |
||
− | *** {{ic|p}} は名前付きパイプ (別名 FIFO) です。 |
||
− | *** {{ic|l}} はシンボリックリンクです。 |
||
− | ** 他の文字は[[パーミッション]]です。 |
||
− | * [[Wikipedia:Hard link|ハードリンク]]の数。ファイルは最低でも1になります。フォルダは最低でも2になります。 |
||
− | * 所有者の[[ユーザー]]の名前。 |
||
− | * [[グループ]]の名前。 |
||
− | * サイズ。 |
||
− | * 最後に更新されたタイムスタンプ。 |
||
− | * エンティティ名。 |
||
− | |||
− | ==== 空白を含むファイル名がクォートで囲まれる ==== |
||
− | |||
− | デフォルトで、空白を含むファイル名やディレクトリ名はシングルクォートで囲まれて表示されます。{{ic|-N}} や {{ic|1=--quoting-style=literal}} オプションを使うことでクォートを消せます。また、{{ic|QUOTING_STYLE}} [[環境変数]]を {{ic|literal}} に設定することでも同じ効果があります [https://unix.stackexchange.com/questions/258679/why-is-ls-suddenly-surrounding-items-with-spaces-in-single-quotes]。 |
||
− | |||
− | === lsblk === |
||
− | |||
− | {{man|8|lsblk}} は利用可能な[[w:Device_file#Block_devices|ブロックデバイス]]とパーティションスキームを表示します。例: |
||
− | |||
− | {{hc|$ lsblk -f| |
||
− | NAME FSTYPE LABEL UUID MOUNTPOINT |
||
− | sda |
||
− | ├─sda1 vfat C4DA-2C4D /boot |
||
− | ├─sda2 swap 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 [SWAP] |
||
− | └─sda3 ext4 56adc99b-a61e-46af-aab7-a6d07e504652 / |
||
− | }} |
||
− | |||
− | デバイスの名前はブロックデバイスのタイプを表します。近代的なストレージデバイス (例: ハードディスク, [[SSD]], USB フラッシュドライブ) は大抵 SCSI ディスク ({{ic|sd}}) と認識されます。タイプの後に付いている小文字は {{ic|a}} なら1番目のデバイス ({{ic|sda}})、{{ic|b}} なら2番目のデバイス ({{ic|sdb}}) を示します。デバイス内に存在するパーティションも同じように1番目のパーティション ({{ic|sda1}}), 2番目のパーティション ({{ic|sda2}}) と {{ic|1}} からの数字が付きます。上記の例の場合、利用できるデバイスはひとつだけ ({{ic|sda}}) で、デバイスには3つのパーティション ({{ic|sda1}} から {{ic|sda3}}) が存在し、それぞれ異なる[[ファイルシステム]]が使われていることが確認できます。 |
||
− | |||
− | 他によく使われるブロックデバイスのタイプとしてはメモリカードの {{ic|mmcblk}} や [[ソリッドステートドライブ/NVMe|NVMe]] デバイスの {{ic|nvme}} などがあります。知らないタイプは [https://www.kernel.org/doc/Documentation/devices.txt カーネルドキュメント] で検索してください。 |
||
− | |||
− | === mkdir === |
||
− | |||
− | [[Wikipedia:ja:mkdir|mkdir]] (''make directory'') はディレクトリを作成するコマンドです。 |
||
− | |||
− | * ディレクトリと階層全体を作るには、{{ic|-p}} スイッチを使って下さい。そうしないとエラーが表示されます。{{ic|-p}} スイッチをデフォルトで使うようにすることもできます: |
||
− | : {{bc|1=alias mkdir='mkdir -p -v'}} |
||
− | : {{ic|-v}} スイッチはメッセージを有効にします。 |
||
− | |||
− | * 作成したディレクトリのモードを変更するのに ''chmod'' を使う必要はありません。{{ic|-m}} オプションでアクセス権限を定義できます。 |
||
− | |||
− | {{Tip|一時ディレクトリが欲しいときは代わりに [[Wikipedia:Temporary file|mktemp]] (''make termporary'') を使って下さい: {{ic|mktemp -d}}。}} |
||
− | |||
− | === mv === |
||
− | |||
− | [[Wikipedia:ja:mv_(UNIX)|mv]] (''move'') はファイルやディレクトリを移動したり名前の変更をするコマンドです。 |
||
− | |||
− | *危険なコマンドになる可能性があるので範囲に制限をかけたほうが賢明です: |
||
− | : {{bc|1=alias mv=' timeout 8 mv -iv'}} |
||
− | :このエイリアスは8秒後に ''mv'' を中止し、3つ以上のファイルの削除を確認し、進行中の操作を表示し、(スペースから始まるコマンドを無視するようシェルが設定されている場合) シェルの history ファイルに操作を保存しません。 |
||
− | |||
− | === od === |
||
− | |||
− | [[Wikipedia:od (Unix)|od]] (''o''ctal ''d''ump) コマンドは人間が読める形式になっていないデータ (プログラムの実行形式のコードやフォーマットされていないデバイスの中身など) を可視化するのに役立ちます。詳しくは [https://www.gnu.org/software/coreutils/manual/html_node/od-invocation.html#od-invocation マニュアル] を参照してください。 |
||
− | |||
− | === pv === |
||
− | |||
− | {{Pkg|pv}} (''pipe viewer'') を使うことでデータ操作の進捗をパイプラインで監視できます。例: |
||
− | |||
− | # dd if=''/source/filestream'' | pv -''monitor_options'' -s ''size_of_file'' | dd of=''/destination/filestream'' |
||
− | |||
− | 大抵の場合 {{ic|pv}} は {{ic|cat}} の代替として機能します。 |
||
− | |||
− | === rm === |
||
− | |||
− | [[Wikipedia:ja:rm_(UNIX)|rm]] (''remove'') はファイルやディレクトリを削除するコマンドです。 |
||
− | |||
− | * 使い方によっては危険性があるので範囲に制限をかけると良いでしょう: |
||
− | : {{bc|1=alias rm=' timeout 3 rm -Iv --one-file-system'}} |
||
− | : このエイリアスは3秒後に ''rm'' を中止し、3つ以上のファイルの削除を確認し、進行中の操作を表示し、複数のファイルシステムに影響を与えず、(スペースから始まるコマンドを無視するようシェルが設定されている場合) シェルの history ファイルに操作を保存しません。たった1つのファイルでも確認が必要ならば {{ic|-I}} の代わりに {{ic|-i}} を使って下さい。 |
||
− | : Zsh のユーザーは {{ic|timeout}} の前に {{ic|noglob}} を記述することで暗示的な拡張を避けることができます。 |
||
− | |||
− | * 空のディレクトリを削除するときは、''rmdir'' を使ってください。 |
||
− | |||
− | === sed === |
||
− | |||
− | [[Wikipedia:ja:sed (コンピュータ)|sed]] (''stream editor'') は文章をパース・変換する Unix ユーティリティです。 |
||
− | |||
− | [http://sed.sourceforge.net/sed1line.txt ここに] ''sed'' を使ったワンライナーのリストがあります。 |
||
− | |||
− | {{Tip|より強力に sed を置き換えるものとして [[Wikipedia:ja:AWK|AWK]] や [[Perl]] 言語があります。}} |
||
− | |||
− | === seq === |
||
− | |||
− | '''seq''' (''sequence'') は連続する数字を生成するユーティリティです。シェルに内蔵されている代替があるので、[[Wikipedia:seq|Wikipedia]] で説明されているように使うと良いでしょう。 |
||
− | |||
− | === ss === |
||
− | |||
− | ''ss'' はネットワークポートを確認するユーティリティです。{{Pkg|iproute2}} パッケージに含まれており {{Pkg|base}} グループのひとつとしてインストールされます。[https://www.archlinux.jp/news/deprecation-of-net-tools/ 非推奨] となった netstat ユーティリティと同じような機能を持っています。 |
||
− | |||
− | 一般的な使用方法: |
||
− | |||
− | 全ての TCP ソケットとサービス名を表示: |
||
− | $ ss -at |
||
− | |||
− | 全ての TCP ソケットとポート番号を表示: |
||
− | $ ss -atn |
||
− | |||
− | 全ての UDP ソケットを表示: |
||
− | $ ss -au |
||
− | |||
− | 詳しくは {{man|8|ss}} や {{Pkg|iproute2}} パッケージの {{ic|ss.html}} を見てください。 |
||
− | |||
− | === tar === |
||
− | |||
− | 初期の Unix の圧縮形式として、{{ic|tar}} ファイル (別名 ''tarball'') は Unix ライクなオペレーティングシステムでパッケージの作成に広く使われています。[[pacman]] と [[AUR]] のパッケージはどちらも tarball であり、Arch はデフォルトで [[GNU プロジェクト|GNU]] の {{Ic|Tar}} プログラムを使います。 |
||
− | |||
− | {{ic|tar}} アーカイブを扱うとき、{{Ic|tar}} はデフォルトで拡張子にあわせてファイルを展開します: |
||
− | |||
− | $ tar xvf file.EXTENSION |
||
− | |||
− | 特定の形式を指定する場合: |
||
− | |||
− | {| class="wikitable" |
||
− | ! ファイルタイプ !! 解凍コマンド |
||
− | |- |
||
− | |{{ic|file.tar}} || {{Ic|tar xvf file.tar}} |
||
− | |- |
||
− | |{{ic|file.tgz}} || {{Ic|tar xvzf file.tgz}} |
||
− | |- |
||
− | |{{ic|file.tar.gz}} || {{Ic|tar xvzf file.tar.gz}} |
||
− | |- |
||
− | |{{ic|file.tar.bz}} || {{Ic|<nowiki>bzip -cd file.bz | tar xvf -</nowiki>}} |
||
− | |- |
||
− | |{{ic|file.tar.bz2}} || {{Ic|tar xvjf file.tar.bz2}}<br> {{Ic|<nowiki>bzip2 -cd file.bz2 | tar xvf -</nowiki>}} |
||
− | |- |
||
− | |{{ic|file.tar.xz}} || {{Ic|tar xvJf file.tar.xz}}<br> {{Ic|<nowiki> xz -cd file.xz | tar xvf -</nowiki>}} |
||
− | |- |
||
− | |{{ic|''file''.tar.zst}} || {{Ic|tar -I zstd xvf ''file''.tar.zst}} |
||
− | |} |
||
− | |||
− | 上記の {{Ic|tar}} 引数の中にはレガシーなものもありますが、特定の操作をするときは未だに有用です。詳しい説明は {{man|1|tar}} の [[man ページ]]の ''Compatibility'' セクションを見て下さい。 |
||
− | |||
− | === which === |
||
− | |||
− | [[wikipedia:Which_(Unix)|which]] コマンドは実行可能ファイルのパスを確認したいときに便利です。例: |
||
− | |||
− | # journalctl $(which sshd) |
||
− | |||
− | === wipefs === |
||
− | |||
− | '''wipefs''' は指定したデバイスの[[ファイルシステム]], [[RAID]], [[パーティショニング|パーティションテーブル]]のシグネチャ (マジック文字列) を確認・消去することができます。ファイルシステム自体は消去せず、デバイスの他のデータが消去されることもありません。 |
||
− | |||
− | 詳しくは wipefs(8) を参照してください。 |
||
− | |||
− | 例えば、{{ic|/dev/sdb}} デバイスのシグネチャを全て消去してシグネチャのバックアップファイル {{ic|~/wipefs-sdb-''offset''.bak}} を作成するには: |
||
− | |||
− | # wipefs --all --backup /dev/sdb |
||
== 参照 == |
== 参照 == |
||
+ | * [https://www.gnu.org/software/coreutils/manual/coreutils.html GNU Coreutils ドキュメント] |
||
− | * [https://www.reddit.com/r/commandline/comments/19garq/a_sampling_of_coreutils_120/ A sampling of coreutils] [https://www.reddit.com/r/commandline/comments/19ge6v/a_sampling_of_coreutils_2040/ , part 2] [https://www.reddit.com/r/commandline/comments/19j1w3/a_sampling_of_coreutils_4060/ , part 3] - coreutils のコマンドの概要 |
||
− | * [https://www.gnu.org/software/coreutils/ |
+ | * [https://www.gnu.org/software/coreutils/faq/coreutils-faq.html GNU Coreutils FAQ] |
+ | * [https://www.pixelbeat.org/docs/coreutils-gotchas.html Coreutils Gotchas]: coreutils コンポーネントにおけるいくつかの紛らわしい挙動に関する、GNU coreutils メンテナのノート |
||
− | * [https://www.linuxquestions.org/questions/linux-newbie-8/learn-the-dd-command-362506/ Learn the DD command] |
||
* [https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html POSIX utilities] |
* [https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html POSIX utilities] |
||
+ | |||
+ | {{TranslationStatus|Core utilities|2023-09-09|787190}} |
2023年9月9日 (土) 12:09時点における最新版
Core utilitiy は、GNU/Linux システムにおける基本的で基礎的なツールのことです。この記事では、それらのツールに関する完全ではない概要や、ドキュメントへのリンク、有用な代替プログラムに関する情報を提供します。この記事の扱う範囲は GNU coreutils にとどまりません。ほとんどの core utility は伝統的な Unix ツールで、多くが POSIX によって標準化されました。しかし、さらに多くの機能を提供するように開発され続けています。
ほとんどのコマンドラインインターフェイスは man ページ に、GNU プロジェクト によるユーティリティは Info マニュアルにドキュメント化されています。一部のシェルは help
コマンドをシェルの組み込みコマンドとして提供しています。加えて、ほとんどのユーティリティは --help
フラグで実行すると使用方法を表示します。
目次
基本コマンド
以下の表には ArchLinux ユーザーが知っておくべきいくつかの重要なユーティリティを載せています。intro(1) も参照してください。
パッケージ | ユーティリティ | 説明 | ドキュメント | 代替品 |
---|---|---|---|---|
シェル組み込み | cd | ディレクトリを変更 | cd(1p) | #cd の代替 |
GNU coreutils | ls | ファイルを一覧表示 | ls(1), info | tree, #ls の代替 |
cat | ファイルを連結して表示 | cat(1), info | tac(1), #cat の代替 | |
mkdir | ディレクトリを作成 | mkdir(1), info | ||
rmdir | 空のディレクトリを削除 | rmdir(1), info | ||
rm | ファイルやディレクトリを削除 | rm(1), info | shred unlink(1) | |
cp | ファイルやディレクトリをコピー | cp(1), info | #cp の代替 | |
mv | ファイルやディレクトリを移動 | mv(1), info | ||
ln | ハードリンクやシンボリックリンクを作成 | ln(1), info | sln(8) (soname リカバリ) | |
chown | ファイルの所有者やグループを変更 | chown(1), info | chgrp(1) | |
chmod | ファイルのパーミッションを変更 | chmod(1), info | ||
dd | ファイルを変換・コピー | dd(1), info | #dd の代替 | |
df | ファイルシステムの使用状況を表示 | df(1), info | #df の代替 | |
du | ファイルとディレクトリによって使用されているディスクの容量を推定します | du(1), info | #du の代替 | |
GNU tar | tar | tar アーカイバ | tar(1), info | アーカイバ |
GNU less | less | ターミナルページャ | less(1) | ターミナルページャ |
GNU findutils | find | ファイルやディレクトリを検索 | find(1), info, [[1]] | #find の代替 |
GNU diffutils | diff | ファイルを行毎に比較 | diff(1), info | #diff の代替 |
GNU grep | grep | パターンに一致する行を表示 | grep(1), info | #grep の代替 |
GNU sed | sed | ストリームエディタ | sed(1), info, one-liners | sad |
GNU gawk | awk | パターンスキャンとデータ処理言語 | gawk(1), info | nawk, mawkAUR, goawkAUR |
util-linux | dmesg | カーネルリングバッファを出力/制御 | dmesg(1) | systemd/ジャーナル |
lsblk | ブロックデバイスを一覧表示 | lsblk(8) | ||
mount | ファイルシステムをマウント | mount(8) | ||
umount | ファイルシステムをアンマウント | umount(8) | ||
su | ユーザを変更 | su(1) | sudo, doas | |
kill | プロセスを終了 | kill(1) | pkill(1), killall(1) | |
procps-ng | pgrep | 名前や属性によってプロセスを検索 | pgrep(1) | pidof(1) |
ps | プロセスの情報を表示 | ps(1) | top(1), タスクマネージャ | |
free | メモリの使用/未使用量を表示 | free(1) |
データの損失を防ぐ
rm
や mv
、cp
、シェルのリダイレクトは問答無用でファイルを削除/上書きします。rm
と mv
、cp
はすべて -i
フラグをサポートしており、このフラグを使うとファイルを削除/上書きする前にユーザに尋ねるようになります。エイリアスを使って -i
フラグをデフォルトで有効化したいユーザもいるでしょう。しかし、これらのシェルオプションに頼りっきりなるのは危険です。これらのオプションに慣れてしまうと、これらを使用していない他のシステムやユーザを使うときにデータ損失を招く可能性があります。データ損失を防ぐ最良の方法はバックアップを取ることです。
その他のコマンド
以下の表にはしばしば便利なコアユーティリティをリストしています。
パッケージ | ユーティリティ | 説明 | ドキュメント | 代替品 |
---|---|---|---|---|
シェル組み込み | alias | エイリアスを定義/表示 | alias(1p) | |
type | コマンドのタイプを表示 | type(1p) | command(1p), whereis(1), which(1) | |
time | コマンドの所要時間を計測 | time(1p) | ||
GNU coreutils | tee | 標準入力を読み込み、標準出力やファイルに書き出す | tee(1), info | pee(1) |
mktemp | テンポラリファイルやテンポラリディレクトリを作成 | mktemp(1), info | ||
mknod | 名前付きパイプやデバイスノードを作成する | mknod(1), mkfifo(1), info | ||
truncate | ファイルのサイズを縮小/拡張する | truncate(1), info | fallocate(1) | |
basenc | 入力をエンコードし、結果を出力する | basenc(1), base64(1), info | ||
cut | 行の選択した部分を表示 | cut(1), info | colrm(1), hck, choose | |
tr | 文字を置換/削除 | tr(1), info | uconv(1) | |
od | ファイルを8進数や他の基数でダンプ | od(1), info | hexdump(1), vim の xxd(1) | |
sort | 行をソート | sort(1), info | ||
uniq | 繰り返される行を表示/省略 | uniq(1), info | anewer, runiqAUR, huniq-gitAUR | |
comm | 2つのソート済みのファイルを行単位で比較 | comm(1), info | zetAUR | |
head | ファイルの最初の部分を出力 | head(1), info | ||
join | 2 つの入力のフィールドが共通な行を結合する | join(1), info | combine(1) zetAUR | |
md5sum | 入力の暗号ハッシュ関数の値を計算し、出力する | sha256sum(1), sha512sum(1), info | shasum(1), hashdeep(1), rhash(1) | |
tail | ファイルの最後の部分を出力/追従 | tail(1), info | ||
wc | 改行や単語、バイト数を表示 | wc(1), info | ||
GNU binutils | strings | バイナリファイル内の表示可能な文字を表示 | strings(1), info | stringsextAUR |
util-linux | column | ファイルを複数列に整形する、任意でグリッド付きの表で綺麗に出力する | column(1) | paste(1), csviewAUR |
GNU findutils | xargs | 標準入力からの引数を組み合わせる、またはテンプレート化し、外部コマンドを呼び出す | xargs(1) | parallel(1) (parallel_alternatives(7)) |
GNU glibc | iconv | 文字コードを変換 | iconv(1) | recode, uconv(1) |
GNU sharutils | uudecode | ファイルを email に適したテキストにエンコードする | uuencode(1), uudecode(1), info | uudeview(1) |
file | file | ファイルタイプを推測 | file(1) |
moreutils パッケージには GNU coreutils に無い sponge(1) のような便利なツールを提供します。
代替コマンド
コアユーティリティの代替は以下のパッケージによって提供されています:
- BusyBox — レスキューや組み込みシステム向けのユーティリティ。
- Toybox — オールインワンの Linux コマンドライン。
- uutils — GNU coreutils を Rust で書き直したクロスプラットフォームなユーティリティ。
- Heirloom Toolchest — 標準的な Unix ユーティリティの伝統的な実装。
- 9base — Plan9 の様々なツールを Unix に移植したもの。
- sbase — *nix core ユーティリティの suckless 版。
- ubase — sbase ユーティリティの拡張。
cat の代替
- bat — シンタックスハイライトと Git 統合機能を備えた cat クローン
cd の代替
- zoxide — ユーザーの癖を学習するスマートな cd コマンド。たった数個のキーストロークでどこへでも移動できます。
- autojump — コマンドラインからファイルシステムを移動する高速な方法。
Bash#パスを入力したら自動で "cd" と Zsh#最近のディレクトリを記憶させる も見てください。
cp の代替
rsync を cp/mv の代わりとして使うことで、失敗したファイル転送の再開、転送状況の表示、すでに存在するファイルのスキップ、チェックサムによる転送先ファイルの整合性の確認が可能になります。
ls の代替
- broot — ディレクトリツリーを表示・移動する新しい方法
- clifm — ls(1) のようにファイルを一覧表示し、さらにアイコン表示と RGB カラーサポートを備えたファイルマネージャ
- eza — カラー表示、ツリー表示、git 統合などの機能を備えたもう一つの ls 代替。もはやサポートされていない exa をベースとしています。
- lsd — 多くの美しい色と素晴らしいアイコンを備えたモダンな ls
find の代替
- fd — シンプルで速く、ユーザーフレンドリーな find の代替。隠しファイルや
.gitignore
にあるファイルをデフォルトで無視します。
- fuzzy-find — ファイル検索のためのあいまい補完。
- mlocate — locate/updatedb の実装をマージ。
- plocate — よりさらに速い locate
- rawhide — C 言語のきれいな式を使ってファイルを検索します。
グラフィカルなファイル検索ソフトウェアは アプリケーション一覧/ユーティリティ#ファイル検索 をご覧ください。
diff の代替
diffutils では単語単位の差分表示ができませんが、それが可能なプログラムがいくつか存在します:
- git の diff は
--color-words
フラグを使用すると単語単位の差分表示が可能です。--no-index
フラグを使用すれば Git のワークツリー外でも使用可能です。 - cwdiff — 出力をカラー表示化する GNU wdiff ラッパー
- git-delta — git や diff 、grep 用の出力をシンタックスハイライトするページャ
- dwdiff — 単語単位で差分表示する diff のフロントエンド。カラー表示サポート付き。
- icdiff — Python で書かれたカラー表示 diff ツール。"Improved color diff" は通常の diff の使用を補助するという意味です。
- wdiff — GNU diff の単語単位の実装。カラー表示はサポートしません。
アプリケーション一覧/ユーティリティ#Comparison, diff, merge もご覧ください。
grep の代替
- mgrep — 複数行 grep
- pdfgrep — PDF ファイル内のテキストを検索するツール
- ripgrep-all — プレーンテキストのみならず、PDF ファイルや E-Books、Office ドキュメント、zip、tar.gz ファイル内のテキストも検索できます。
コード検索ソフトウェア
以下のツールはコード検索の場面で grep を置き換えることを目的としています。これらはデフォルトで再帰検索をし、バイナリファイルや .gitignore
内にあるファイルをスキップします。
- ack — Perl ベースの grep 置き換え。多種多様なソースコードの大きなツリーを扱うプログラマに向けです。
- ripgrep (rg) — ag の使いやすさと grep のそのままの速さを組み合わせた検索ツール。
- The Silver Searcher (ag) — Ack に似ているがより速いコード検索ツール。
- ugrep (ug) — インタラクティブなユーザインターフェイス、曖昧検索、boolean クエリ、16進数表示などの機能を持つ非常に高速な grep。
cscope も参照。
インタラクティブフィルター
- fzf — 汎用のコマンドラインあいまい検索ソフトウェア。デフォルトで find を使用します。
- fzy — 高度なスコアリングアルゴリズムを搭載した速くてシンプルなあいまいテキストセレクタ。
- peco — シンプルなインタラクティブフィルタリングツール。
- percol — UNIX シェルの伝統的なパイプにインタラクティブフィルタリングを追加。
- skim — Rust で書かれたあいまい検索ソフトウェア。fzf に似ています。
dd の代替
代替 dd の実装
このサブセクションでは、dd(1p) の POSIX 仕様に (ほぼ) 準拠しているインターフェイスとデフォルトの挙動を持つ dd の実装をリストアップしています。
- ddpt — Linux カーネルの SCSI サブシステムのメンテナによる、sg_dd(8) のポータブルな代替。オプションですが、非常に特殊化されたハードウェア I/O (SCSI コマンドセット) をサポートし、さらに他の多くの機能を有しています。
- sdd — Joerg Schilling による、UNIX 環境間で移植性の高い dd の実装。コピーされたデータのチェックサムや、不良ブロックを再読込させることができます。
GNU dd のスピンオフ
coreutils にある dd の GNU 実装も POSIX に準拠しています。このサブセクションでは GNU dd のフォークをリストアップしています。
- dcfldd — 科学捜査やセキュリティの場面のための、機能が強化された GNU dd フォーク。次のような機能を有しています: 臨機応変なハッシュ検証機能、柔軟なディスク消去、書き込み検証、同時に複数のターゲットに出力、出力の分割やパイプ。
- dc3dd — アメリカ国防総省サイバー犯罪センター (DC3) による、GNU dd のパッチ済みバージョン。dcfldd とよく似た目的と機能を有しています。
モダンな dd の類似品
このサブセクションでは、(JCL に似たコマンドライン構文とデフォルトの挙動という点で) POSIX に準拠していない dd の代替をリストアップしています。
- dd_rescue — 多くの機能が積み込まれたモダンな dd の類似品。日々のスクリプティングやディスク複製、データリカバリに適しています。
- rw — 従来のコマンドラインフラグ付きの必要最低限でポータブルな dd 類似品。
- https://sortix.org/rw/ || rwAUR
buffer のスピンオフ
このサブセクションでは、bufferAUR のフォークをリストアップしています。buffer は、dd に似た汎用 I/O バッファリングユーティリティですが、動的サイズバッファを持っています。ブロック単位の I/O をサポートしており、LTO テープを書き込み/読み込みする際に摩耗を防ぐために使用できます。
- mbuffer — buffer ユーティリティにマルチスレッディングや他の機能を組み合わせたもの。
df の代替
- duf — ディスクの使用量と空き容量を調べるユーティリティ
du の代替
- cdu — カラー出力で、美しいヒストグラムを出力する du ラッパ。
- dust — Rust で記述された du のより直感的なバージョン。
- ncdu — ncurses のシンプルなディスク使用量アナライザ。
- gdu — Go で記述された、コンソールインターフェイスのディスク使用量アナライザ。
アプリケーション一覧/ユーティリティ#ディスク使用量表示プログラム も見てください。
参照
- GNU Coreutils ドキュメント
- GNU Coreutils FAQ
- Coreutils Gotchas: coreutils コンポーネントにおけるいくつかの紛らわしい挙動に関する、GNU coreutils メンテナのノート
- POSIX utilities