Core utilities

提供: ArchWiki
2023年2月1日 (水) 11:49時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎diff の代替: ページャに変更)
ナビゲーションに移動 検索に移動

関連記事

Core utilitiy は、GNU/Linux システムにおける基本的で基礎的なツールのことです。この記事では、それらのツールに関する完全ではない概要や、ドキュメントへのリンク、有用な代替プログラムに関する情報を提供します。この記事の扱う範囲は GNU coreutils にとどまりません。ほとんどの core utility は伝統的な Unix ツール (Heirloom を参照) で、多くが 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
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)

データの損失を防ぐ

rmmvcp、シェルのリダイレクトは問答無用でファイルを削除/上書きします。rmmvcp はすべて -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 hck
tr 文字を置換/削除 tr(1), info uconv(1)
od ファイルを8進数や他の基数でダンプ od(1), info hexdump(1), vim's xxd(1)
sort 行をソート sort(1), info
uniq 繰り返される行を表示/省略 uniq(1), info
comm 2つのソート済みのファイルを行単位で比較 comm(1), info
head ファイルの最初の部分を出力 head(1), info
join 2 つの入力のフィールドが共通な行を結合する join(1), info combine(1)
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
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 — レスキューや組み込みシステム向けのユーティリティ。
https://busybox.net || busybox
  • Toybox — オールインワンの Linux コマンドライン。
https://landley.net/toybox || toyboxAUR
  • uutils — GNU coreutils を Rust で書き直したクロスプラットフォームなユーティリティ。
https://github.com/uutils/coreutils || uutils-coreutils
http://heirloom.sourceforge.net || heirloom-shAUR, heirloom-doctoolsAUR
  • 9base — Plan9 の様々なツールを Unix に移植したもの。
https://tools.suckless.org/9base || 9base
  • sbase — *nix core ユーティリティの suckless 版。
https://core.suckless.org/sbase || sbase-gitAUR
  • ubase — sbase ユーティリティの拡張。
https://core.suckless.org/ubase || ubase-gitAUR

cat の代替

  • bat — シンタックスハイライトと Git 統合機能を備えた cat クローン
https://github.com/sharkdp/bat || bat

cd の代替

  • zoxide — ユーザーの癖を学習するスマートな cd コマンド。たった数個のキーストロークでどこへでも移動できます。
https://github.com/ajeetdsouza/zoxide || zoxide
  • autojump — コマンドラインからファイルシステムを移動する高速な方法。
https://github.com/wting/autojump || autojumpAUR

Bash#パスを入力したら自動で "cd"Zsh#最近のディレクトリを記憶させる も見てください。

cp の代替

rsync を cp/mv の代わりとして使うことで、失敗したファイル転送の再開、転送状況の表示、すでに存在するファイルのスキップ、チェックサムによる転送先ファイルの整合性の確認が可能になります。

ls の代替

  • broot — ディレクトリツリーを表示・移動する新しい方法
https://github.com/Canop/broot || broot
  • clifm — ls(1) のようにファイルを一覧表示し、さらにアイコン表示と RGB カラーサポートを備えたファイルマネージャ
https://github.com/leo-arch/clifm/wiki/Advanced#files-lister-ls-mode || clifmAUR
  • exa — カラー表示、ツリー表示、git 統合などの機能を備えたもう一つの ls 代替
https://github.com/ogham/exa || exa
  • lsd — 多くの美しい色と素晴らしいアイコンを備えたモダンな ls
https://github.com/Peltoche/lsd || lsd

find の代替

  • fd — シンプルで速く、ユーザーフレンドリーな find の代替。隠しファイルや .gitignore にあるファイルをデフォルトで無視します。
https://github.com/sharkdp/fd || fd
  • mlocate — locate/updatedb の実装をマージ。
https://pagure.io/mlocate || mlocate
  • plocate — よりさらに速い locate
https://plocate.sesse.net/ || plocate

グラフィカルなファイル検索ソフトウェアは アプリケーション一覧/ユーティリティ#ファイル検索 をご覧ください。

diff の代替

diffutils では単語単位の差分表示ができませんが、それが可能なプログラムがいくつか存在します:

  • git の diff は --color-words フラグを使用すると単語単位の差分表示が可能です。--no-index フラグを使用すれば Git のワークツリー外でも使用可能です。
  • cwdiff — 出力をカラー表示化する GNU wdiff ラッパー
https://github.com/junghans/cwdiff || cwdiffAUR
  • git-delta — git や diff 、grep 用の出力をシンタックスハイライトするページャ
https://dandavison.github.io/delta/ || git-delta
  • dwdiff — 単語単位で差分表示する diff のフロントエンド。カラー表示サポート付き。
https://os.ghalkes.nl/dwdiff.html || dwdiff
  • icdiff — Python で書かれたカラー表示 diff ツール。"Improved color diff" は通常の diff の使用を補助するという意味です。
https://github.com/jeffkaufman/icdiff || icdiffAUR
  • wdiff — GNU diff の単語単位の実装。カラー表示はサポートしません。
https://www.gnu.org/software/wdiff/ || wdiff

アプリケーション一覧/ユーティリティ#Comparison, diff, merge もご覧ください。

grep の代替

  • mgrep — 複数行 grep
https://sourceforge.net/projects/multiline-grep/ || mgrepAUR
  • pdfgrep — PDF ファイル内のテキストを検索するツール
https://pdfgrep.org/ || pdfgrep
  • ripgrep-all — プレーンテキストのみならず、PDF ファイルや E-Books、Office ドキュメント、zip、tar.gz ファイル内のテキストも検索できます。
https://github.com/phiresky/ripgrep-all || ripgrep-all

コード検索ソフトウェア

以下の3つのツールはコード検索の場面で grep を置き換えることを目的としています。これらはデフォルトで再帰検索をし、バイナリファイルや .gitignore 内にあるファイルをスキップします。

  • ack — Perl ベースの grep 置き換え。多種多様なソースコードの大きなツリーを扱うプログラマに向けです。
https://beyondgrep.com/ || ack
  • ripgrep (rg) — ag の使いやすさと grep のそのままの速さを組み合わせた検索ツール。
https://github.com/BurntSushi/ripgrep || ripgrep
  • The Silver Searcher (ag) — Ack に似ているがより速いコード検索ツール。
https://github.com/ggreer/the_silver_searcher || the_silver_searcher
  • ugrep (ug) — インタラクティブな TUI、曖昧検索、boolean クエリ、16進数表示などの機能を持つ非常に高速な grep。
https://github.com/Genivia/ugrep || ugrep

インタラクティブフィルター

  • fzf — 汎用のコマンドラインあいまい検索ソフトウェア。デフォルトで find を使用します。
https://github.com/junegunn/fzf || fzf
  • fzy — 高度なスコアリングアルゴリズムを搭載した速くてシンプルなあいまいテキストセレクタ。
https://github.com/jhawthorn/fzy || fzy
  • peco — シンプルなインタラクティブフィルタリングツール。
https://github.com/peco/peco || peco
  • percol — UNIX シェルの伝統的なパイプにインタラクティブフィルタリングを追加。
https://github.com/mooz/percol || percol
  • skim — Rust で書かれたあいまい検索ソフトウェア。fzf に似ています。
https://github.com/lotabout/skim || skim

dd の代替

ddddrescue も参照してください。

代替 dd の実装

このサブセクションでは、dd(1p) の POSIX 仕様に (ほぼ) 準拠しているインターフェイスとデフォルトの挙動を持つ dd の実装をリストアップしています。

  • ddpt — Linux カーネルの SCSI サブシステムのメンテナによる、sg_dd(8) のポータブルな代替。オプションですが、非常に特殊化されたハードウェア I/O (SCSI コマンドセット) をサポートし、さらに他の多くの機能を有しています。
http://sg.danny.cz/sg/ddpt.html || ddptAUR
  • sdd — Joerg Schilling による、UNIX 環境間で移植性の高い dd の実装。コピーされたデータの md5 チェックサムや、全体の処理のあとに不良ブロックを再読込させることができます。
http://schilytools.sourceforge.net/ || schily-tools-sddAUR
GNU dd のスピンオフ

coreutils にある dd の GNU 実装も POSIX に準拠しています。このサブセクションでは GNU dd のフォークをリストアップしています。

  • dcfldd — 科学捜査やセキュリティの場面のための、機能が強化された GNU dd フォーク。次のような機能を有しています: 臨機応変なハッシュ検証機能、柔軟なディスク消去、書き込み検証、同時に複数のターゲットに出力、出力の分割やパイプ。
http://dcfldd.sourceforge.net || dcflddAUR
  • dc3dd — アメリカ国防総省サイバー犯罪センター (DC3) による、GNU dd のパッチ済みバージョン。dcfldd とよく似た目的と機能を有しています。
https://sourceforge.net/projects/dc3dd/ || dc3ddAUR

モダンな dd の類似品

このサブセクションでは、(JCL に似たコマンドライン構文とデフォルトの挙動という点で) POSIX に準拠していないものの、dd 固有の機能と整合する基本的な機能を持つ dd の代替をリストアップしています。

  • dd_rescue — 多くの機能が積み込まれたモダンな dd の類似品。日々のスクリプティングやディスク複製、データリカバリの場面に適しています。
http://www.garloff.de/kurt/linux/ddrescue/ || dd_rescue
  • rw — IBM JCL には似ていない、必要最低限の移植性の高い dd 類似品。
https://sortix.org/rw/ || rwAUR

buffer のスピンオフ

このサブセクションでは、bufferAUR のフォークをリストアップしています。buffer は、汎用 I/O バッファリングユーティリティで、dd に動的サイズのバッファを付け加えたものに似ています。ブロック単位の I/O をサポートしており、LTO テープを書き込み/読み込みする際に摩耗を防ぐためによく使用されます。

  • mbufferbuffer ユーティリティにマルチスレッディングや他の機能を組み合わせたもの。
https://www.maier-komor.de/mbuffer.html || mbufferAUR

df の代替

  • duf — ディスクの使用量と空き容量を調べるユーティリティ
https://github.com/muesli/duf || duf

du の代替

  • dust — Rust で記述された du のより直感的なバージョン。
https://github.com/bootandy/dust || dust
  • ncdu — ncurses のシンプルなディスク使用量アナライザ。
https://dev.yorhel.nl/ncdu || ncdu
  • gdu — Go で記述された、コンソールインターフェイスのディスク使用量アナライザ。
https://github.com/Dundee/gdu || gdu

アプリケーション一覧/ユーティリティ#ディスク使用量表示プログラム も見てください。

参照

翻訳ステータス: このページは en:Core utilities の翻訳バージョンです。最後の翻訳日は 2022-10-08 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。