Core utilities

提供: ArchWiki
2022年9月12日 (月) 14:42時点におけるAshMyzk (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

この記事では less, ls, grep などの GNU/Linux システムのコアユーティリティを扱っています。この記事の扱う範囲は GNU coreutils パッケージに含まれているユーティリティに留まりません。ユーティリティに関連する様々なヒント・小技、その他便利な情報を載せています。

ほとんどのコマンドラインインターフェイスは 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
cp ファイルやディレクトリをコピー cp(1), info #cp の代替
mv ファイルやディレクトリを移動 mv(1), info
ln ハードリンクやシンボリックリンクを作成 ln(1), info
chown ファイルの所有者やグループを変更 chown(1), info chgrp(1)
chmod ファイルのパーミッションを変更 chmod(1), info
dd ファイルを変換・コピー dd(1), info
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
util-linux dmesg カーネルリングバッファを出力/制御 dmesg(1) systemd/ジャーナル
lsblk ブロックデバイスを一覧表示 lsblk(8)
mount ファイルシステムをマウント mount(8)
umount ファイルシステムをアンマウント umount(8)
su ユーザを変更 su(1) sudo, opendoas
kill プロセスを終了 kill(1) pkill(1), killall(1)
procps-ng pgrep 名前や属性によってプロセスを検索 pgrep(1) pidof(1)
ps プロセスの情報を表示 ps(1) top(1), htop
free メモリの使用/未使用量を表示 free(1)

データの損失を防ぐ

rmmvcp、シェルのリダイレクトは問答無用でファイルを削除/上書きします。rmmvcp はすべて -i フラグをサポートしており、このフラグを使うとファイルを削除/上書きする前にユーザに尋ねるようになります。エイリアスを使って -i フラグをデフォルトで有効化したいユーザもいるでしょう。しかし、これらのシェルオプションに頼りっきりなるのは危険です。これらのオプションに慣れてしまうと、これらを使用していない他のシステムやユーザを使うときにデータ損失を招く可能性があります。データ損失を防ぐ最良の方法はバックアップを取ることです。

その他のコマンド

以下の表にはしばしば便利なコアユーティリティをリストしています。

パッケージ ユーティリティ 説明 ドキュメント 代替品
シェル組み込み alias エイリアスを定義/表示 alias(1p)
type コマンドのタイプを表示 type(1p) which(1)
time コマンドの所要時間を計測 time(1p)
GNU coreutils tee 標準入力を読み込み、標準出力やファイルに書き出す tee(1), info
mktemp テンポラリファイルやテンポラリディレクトリを作成 mktemp(1), info
cut 行の選択した部分を表示 cut(1), info
tr 文字を置換/削除 tr(1), info
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
tail ファイルの最後の部分を出力/追従 tail(1), info
wc 改行や単語、バイト数を表示 wc(1), info
GNU binutils strings バイナリファイル内の表示可能な文字を表示 strings(1), info stringsextAUR
GNU glibc iconv 文字コードを変換 iconv(1) recode
file file ファイルタイプを推測 file(1)

moreutils パッケージには GNU coreutils に無い sponge(1) のような便利なツールを提供します。

代替コマンド

コアユーティリティの代替は BusyBoxtoyboxAURuutils-coreutilsHeirloom Toolchest9basesbase-gitAURubase-gitAUR により提供されています。

cat の代替

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

cd の代替

  • zoxide — ユーザーの癖を学習するスマートな cd コマンド。たった数個のキーストロークでどこへでも移動できます。
https://github.com/ajeetdsouza/zoxide || zoxide

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

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-09-12 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。