「Core utilities」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(同期)
 
(7人の利用者による、間の41版が非表示)
1行目: 1行目:
[[Category:システム管理]]
+
[[Category:コマンドライン]]
[[Category:コマンドシ]]
+
[[Category:ソフトウア一覧]]
[[fa:Core utilities]]
 
 
[[en:Core utilities]]
 
[[en:Core utilities]]
 
[[es:Core utilities]]
 
[[es:Core utilities]]
[[it:Core utilities]]
+
[[fa:Core utilities]]
[[ko: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|Bash}}
+
{{Related|コマンドラインシェル}}
{{Related|Zsh}}
+
{{Related|ユーザーとグループ}}
  +
{{Related|Systemd}}
  +
{{Related|Pacman}}
 
{{Related|一般的な推奨事項}}
 
{{Related|一般的な推奨事項}}
{{Related|GNU プロジェクト}}
 
{{Related|sudo}}
 
{{Related|cron}}
 
{{Related|man ページ}}
 
{{Related|ディスクの完全消去#shred}}
 
{{Related|ファイルのパーミッションと属性}}
 
{{Related|コンソールのカラー出力}}
 
 
{{Related articles end}}
 
{{Related articles end}}
  +
この記事では ''less'', ''ls'', ''grep'' などの GNU/Linux システムの''コア''ユーティリティを扱っています。この記事の扱う範囲は GNU {{Pkg|coreutils}} パッケージに含まれているユーティリティに留まりません。ユーティリティに関連する様々なヒント・小技、その他便利な情報を載せています。
 
  +
''Core utilitiy'' は、[[GNU]]/[[Linux]] システムにおける基本的で基礎的なツールのことです。この記事では、それらのツールに関する完全ではない概要や、ドキュメントへのリンク、有用な代替プログラムに関する情報を提供します。この記事の扱う範囲は [https://www.gnu.org/software/coreutils/coreutils.html GNU coreutils] にとどまりません。ほとんどの core utility は伝統的な [[Wikipedia:Unix|Unix]] ツールで、多くが [[Wikipedia:POSIX|POSIX]] によって標準化されました。しかし、さらに多くの機能を提供するように開発され続けています。
  +
  +
ほとんどのコマンドラインインターフェイスは [[man ページ]] に、[[GNU|GNU プロジェクト]] によるユーティリティは [[GNU#Texinfo|Info マニュアル]]にドキュメント化されています。一部の[[シェル]]は {{ic|help}} コマンドをシェルの組み込みコマンドとして提供しています。加えて、ほとんどのユーティリティは {{ic|--help}} フラグで実行すると使用方法を表示します。
   
 
== 基本コマンド ==
 
== 基本コマンド ==
   
以下の表には全ての Linux ユーザーが知っておくべき基本的シェルコマンドを載せています。太字のコマンドはシェルに含まれおり、その他のコマンドはシェルとは別個のプログラムです。詳しは下のセクションや''関連記事''を見て下さい。
+
以下の表には ArchLinux ユーザーが知っておくべきいくつかの重要ユーティリティを載せています。{{man|1|intro}} も参照してくさい。
   
{| class="wikitable"
+
{| class=wikitable
  +
! パッケージ !! ユーティリティ !! 説明 !! ドキュメント !! 代替品
! コマンド
 
! 説明
 
! 例
 
 
|-
 
|-
  +
| シェル組み込み || cd || ディレクトリを変更 || {{man|1p|cd}} || [[#cd の代替]]
| man
 
| コマンドのマニュアルページを表示
 
| man ed
 
 
|-
 
|-
  +
|rowspan=13| GNU {{Pkg|coreutils}}
| '''cd'''
 
  +
| ls || ファイルを一覧表示 || {{man|1|ls}}, [https://www.gnu.org/software/coreutils/manual/html_node/ls-invocation.html info] || {{Pkg|tree}}, [[#ls の代替]]
| ディレクトリを変更
 
| cd /etc/pacman.d
 
 
|-
 
|-
  +
| cat || ファイルを連結して表示 || {{man|1|cat}}, [https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html info] || {{man|1|tac}}, [[#cat の代替]]
| mkdir
 
| ディレクトリを作成
 
| mkdir ~/newfolder
 
 
|-
 
|-
  +
| mkdir || ディレクトリを作成 || {{man|1|mkdir}}, [https://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocation.html info]
| rmdir
 
| 空のディレクトリを削除
 
| rmdir ~/emptyfolder
 
 
|-
 
|-
  +
| rmdir || 空のディレクトリを削除 || {{man|1|rmdir}}, [https://www.gnu.org/software/coreutils/manual/html_node/rmdir-invocation.html info]
| rm
 
| ファイルを削除
 
| rm ~/file.txt
 
 
|-
 
|-
  +
| rm || ファイルやディレクトリを削除 || {{man|1|rm}}, [https://www.gnu.org/software/coreutils/manual/html_node/rm-invocation.html info] || [[shred]] {{man|1|unlink}}
| rm -r
 
| ディレクトリとその中身を削除
 
| rm -r ~/.cache
 
 
|-
 
|-
  +
| cp || ファイルやディレクトリをコピー || {{man|1|cp}}, [https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html info] || [[#cp の代替]]
| ls
 
| ファイルを一覧表示
 
| ls *.mkv
 
 
|-
 
|-
  +
| mv || ファイルやディレクトリを移動 || {{man|1|mv}}, [https://www.gnu.org/software/coreutils/manual/html_node/mv-invocation.html info]
| ls -a
 
| 隠しファイルを一覧表示
 
| ls -a /home/archie
 
 
|-
 
|-
  +
| ln || ハードリンクやシンボリックリンクを作成 || {{man|1|ln}}, [https://www.gnu.org/software/coreutils/manual/html_node/ln-invocation.html info] || {{man|8|sln}} (soname リカバリ)
| ls -al
 
| 隠しファイルとファイルのプロパティを一覧表示
 
|
 
 
|-
 
|-
  +
| [[chown]] || ファイルの所有者やグループを変更 || {{man|1|chown}}, [https://www.gnu.org/software/coreutils/manual/html_node/chown-invocation.html info] || {{man|1|chgrp}}
| mv
 
| ファイルを移動
 
| mv ~/compressed.zip ~/archive/compressed2.zip
 
 
|-
 
|-
  +
| [[chmod]] || ファイルのパーミッションを変更 || {{man|1|chmod}}, [https://www.gnu.org/software/coreutils/manual/html_node/chmod-invocation.html info]
| cp
 
| ファイルをコピー
 
| cp ~/.bashrc ~/.bashrc.bak
 
 
|-
 
|-
  +
| [[dd]] || ファイルを変換・コピー || {{man|1|dd}}, [https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html info] || [[#dd の代替]]
| chmod +x
 
| ファイルに実行可能属性を付与
 
| chmod +x ~/.local/bin/myscript.sh
 
 
|-
 
|-
  +
| df || ファイルシステムの使用状況を表示 || {{man|1|df}}, [https://www.gnu.org/software/coreutils/manual/html_node/df-invocation.html info] || [[#df の代替]]
| cat
 
| ファイルの中身を表示
 
| cat /etc/hostname
 
 
|-
 
|-
  +
| du || ファイルとディレクトリによって使用されているディスクの容量を推定します || {{man|1|du}}, [https://www.gnu.org/software/coreutils/manual/html_node/du-invocation.html info] || [[#du の代替]]
| strings
 
| バイナリファイル内の出力可能文字を表示
 
| strings /usr/bin/free
 
 
|-
 
|-
  +
| GNU {{Pkg|tar}} || [[tar]] || tar アーカイバ || {{man|1|tar}}, [https://www.gnu.org/software/tar/manual/html_chapter/index.html info] || [[アーカイブと圧縮|アーカイバ]]
| find
 
| ファイルを検索
 
| find ~ -name myfile
 
 
|-
 
|-
  +
| GNU {{Pkg|less}} || less || ターミナルページャ || {{man|1|less}} || [[アプリケーション一覧/ユーティリティ#Terminal pagers|ターミナルページャ]]
| mount
 
| パーティションをマウント
 
| mount /dev/sdc1 /media/usb
 
 
|-
 
|-
  +
| GNU {{Pkg|findutils}} || find || ファイルやディレクトリを検索 || {{man|1|find}}, [https://www.gnu.org/software/findutils/manual/html_node/find_html/index.html info], [[https://mywiki.wooledge.org/UsingFind|GregsWiki]] || [[#find の代替]]
| df -h
 
| パーティションの残り容量を表示
 
|
 
 
|-
 
|-
  +
| GNU {{Pkg|diffutils}} || diff || ファイルを行毎に比較 || {{man|1|diff}}, [https://www.gnu.org/software/diffutils/manual/html_node/Invoking-diff.html info] || [[#diff の代替]]
| ps -A
 
| 実行中のプロセスを表示
 
|
 
 
|-
 
|-
  +
| GNU {{Pkg|grep}} || grep || パターンに一致する行を表示 || {{man|1|grep}}, [https://www.gnu.org/software/grep/manual/html_node/index.html info] || [[#grep の代替]]
| killall
 
| プロセスの実行中のインスタンスを終了
 
|
 
 
|-
 
|-
  +
| 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}}
| ss -at
 
  +
|-
| 開かれている TCP ソケットのリストを表示
 
  +
| 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}}
  +
| [[Wikipedia:ja:dmesg|dmesg]] || カーネルリングバッファを出力/制御 || {{man|1|dmesg}} || [[systemd/ジャーナル]]
  +
|-
  +
| [[lsblk]] || ブロックデバイスを一覧表示 || {{man|8|lsblk}}
  +
|-
  +
| [[mount]] || ファイルシステムをマウント || {{man|8|mount}}
  +
|-
  +
| [[umount]] || ファイルシステムをアンマウント || {{man|8|umount}}
  +
|-
  +
| [[su]] || ユーザを変更 || {{man|1|su}} || [[sudo]], [[doas]]
  +
|-
  +
| kill || プロセスを終了 || {{man|1|kill}} || {{man|1|pkill}}, {{man|1|killall}}
  +
|-
  +
|rowspan=3| {{Pkg|procps-ng}}
  +
| pgrep || 名前や属性によってプロセスを検索 || {{man|1|pgrep}} || {{man|1|pidof}}
  +
|-
  +
| ps || プロセスの情報を表示 || {{man|1|ps}} ||rowspan=2| {{man|1|top}}, [[アプリケーション一覧/ユーティリティ#タスクマネージャ|タスクマネージャ]]
  +
|-
  +
| free || メモリの使用/未使用量を表示 || {{man|1|free}}
 
|}
 
|}
   
  +
=== データの損失を防ぐ ===
== cat ==
 
   
  +
{{ic|rm}} や {{ic|mv}}、{{ic|cp}}、シェルのリダイレクトは問答無用でファイルを削除/上書きします。{{ic|rm}} と {{ic|mv}}、{{ic|cp}} はすべて {{ic|-i}} フラグをサポートしており、このフラグを使うとファイルを削除/上書きする前にユーザに尋ねるようになります。[[エイリアス]]を使って {{ic|-i}} フラグをデフォルトで有効化したいユーザもいるでしょう。しかし、これらのシェルオプションに頼りっきりなるのは危険です。これらのオプションに慣れてしまうと、これらを使用していない他のシステムやユーザを使うときにデータ損失を招く可能性があります。データ損失を防ぐ最良の方法は[[バックアップ]]を取ることです。
[[Wikipedia:ja:cat (UNIX)|cat]] (''catenate'') はファイルを連結して表示する標準の Unix ユーティリティです。
 
   
  +
== その他のコマンド ==
* ''cat'' はシェルにビルトインされていないため、多くの場合で[[wikipedia:ja:リダイレクト (CLI)|リダイレクション]]を使ったほうが便利です (例: スクリプト、もしくはパフォーマンスが必要な場合)。実際 {{ic|< ''file''}} は {{ic|cat ''file''}} と全く同じです。
 
   
  +
以下の表にはしばしば便利なコアユーティリティをリストしています。
* ''cat'' は複数行でも動作します:
 
   
  +
{| class=wikitable
{{bc|
 
  +
! パッケージ !! ユーティリティ !! 説明 !! ドキュメント !! 代替品
$ cat << EOF >> ''path/file''
 
''first line''
 
...
 
''last line''
 
EOF
 
}}
 
代わりに {{ic|printf}} コマンドを使用:
 
$ printf '%s\n' 'first line' ... 'last line'
 
 
* ファイルの行を逆順で cat する必要がある場合、[[Wikipedia:tac (Unix)|tac]] (''cat'' reversed) という名前のユーティリティがあります。
 
 
== dd ==
 
 
[[Wikipedia:ja:dd (UNIX)|dd]] は主にファイルを変換・コピーするために使われる Unix や Unix ライクなオペレーティングシステムのコマンドです。
 
 
''cp'' はいくつかのオペランドを除いて ''dd'' と同じですが、多目的のディスク消去作業向きには作られてはいません。
 
 
{{Tip|デフォルトでは、''dd'' は作業が完了するまで何も出力しません。操作の進捗を監視したい場合、コマンドに {{ic|1=status=progress}} オプションを追加してください。このオプションは古いバージョン (8.24 以前) の {{Pkg|coreutils}} では使えません。}}
 
 
'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''}})
 
* バックアップユーティリティとして使用
 
* ファイルを大文字・小文字に変換
 
 
詳しくは {{man|1|dd}} や [https://www.gnu.org/software/coreutils/dd ドキュメント] を読んでください。
 
 
=== dd 派生 ===
 
 
他の ''dd'' ライクなプログラムには定期的に状態を出力する (例: シンプルなプログレスバー) 機能があります。
 
 
; dcfldd : {{Pkg|dcfldd}} は dd にフォレンジクスやセキュリティの面で改良を加えたバージョンです。ほとんどの dd のパラメータを扱うことができステータスの出力もできます。dcfldd の最後の安定版は2006年12月19日にリリースされました。<sup>[http://dcfldd.sourceforge.net/]</sup>
 
 
; ddrescue : GNU {{Pkg|ddrescue}} はデータ復旧ツールです。ディスク消去でほとんどの場合無用な機能である読み込みエラーを無視できます。詳しくは [http://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html 公式マニュアル] を見て下さい。
 
 
== 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|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]] を見てください。
 
 
== find ==
 
 
''find'' は {{Pkg|findutils}} パッケージに含まれており、{{Grp|base}} パッケージグループのひとつとしてインストールされます。
 
 
''find'' コマンドはファイル名を引数としてファイルシステムの中に名前が一致するファイルがないか検索するコマンドではありません。下の [[#locate]] を見てください。
 
 
find はディレクトリのセットとマッチするファイルの正規表現を引数として取ります。非常に強力なワンライナーを作ることができますが、直感的な検索コマンドとしては使えません。詳しい使用方法は [http://mywiki.wooledge.org/UsingFind UsingFind] を見てください。
 
 
== 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}} パッケージに含まれており、このパッケージは {{Grp|base}} グループに入っています。}}
 
 
{| class="wikitable"
 
! オブジェクト !! 用途 !! man ページ
 
 
|-
 
|-
  +
|rowspan=3| シェル組み込み
| ip addr || プロトコルアドレス管理 || {{man|8|ip-address}}
 
  +
| [[alias]] || エイリアスを定義/表示 || {{man|1p|alias}}
 
|-
 
|-
  +
| type || コマンドのタイプを表示 || {{man|1p|type}} || {{man|1p|command}}, {{man|1|whereis}}, {{man|1|which}}
| ip addrlabel || プロトコルアドレスラベル管理 || {{man|8|ip-addrlabel}}
 
 
|-
 
|-
| ip l2tp || tunnel ethernet over IP (L2TPv3) || {{man|8|ip-l2tp}}
+
| time || コマンドの所要時間を計測 || {{man|1p|time}}
 
|-
 
|-
  +
|rowspan=16| GNU {{Pkg|coreutils}}
| ip link || ネットワークデバイス設定 || {{man|8|ip-link}}
 
  +
| [[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]
| ip maddr || マルチキャストアドレス管理 || {{man|8|ip-maddress}}
 
 
|-
 
|-
  +
| mknod || 名前付きパイプやデバイスノードを作成する || {{man|1|mknod}}, {{man|1|mkfifo}}, [https://www.gnu.org/software/coreutils/manual/html_node/mkfifo-invocation.html#mkfifo-invocation info]
| ip monitor || netlink メッセージの監視 || {{man|8|ip-monitor}}
 
 
|-
 
|-
  +
| truncate || ファイルのサイズを縮小/拡張する || {{man|1|truncate}}, [https://www.gnu.org/software/coreutils/manual/html_node/truncate-invocation.html#truncate-invocation info] || {{man|1|fallocate}}
| ip mroute || マルチキャストルーティングキャッシュ管理 || {{man|8|ip-mroute}}
 
 
|-
 
|-
  +
| basenc || 入力をエンコードし、結果を出力する || {{man|1|basenc}}, {{man|1|base64}}, [https://www.gnu.org/software/coreutils/manual/html_node/basenc-invocation.html info]
| ip mrule || マルチキャストルーティングポリシー db のルール ||
 
 
|-
 
|-
  +
| cut || 行の選択した部分を表示 || {{man|1|cut}}, [https://www.gnu.org/software/coreutils/manual/html_node/cut-invocation.html info] || {{man|1|colrm}}, {{pkg|hck}}, {{pkg|choose}}
| ip neigh || neighbour/arp テーブル管理 || {{man|8|ip-neighbour}}
 
 
|-
 
|-
  +
| tr || 文字を置換/削除 || {{man|1|tr}}, [https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html info] || {{man|1|uconv}}
| ip netns || プロセスネットワーク名前空間管理 || {{man|8|ip-netns}}
 
 
|-
 
|-
  +
| 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}}
| ip ntable || neighbour テーブル設定 || {{man|8|ip-ntable}}
 
 
|-
 
|-
  +
| sort || 行をソート || {{man|1|sort}}, [https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html info]
| ip route || ルーティングテーブル管理 || {{man|8|ip-route}}
 
 
|-
 
|-
  +
| uniq || 繰り返される行を表示/省略 || {{man|1|uniq}}, [https://www.gnu.org/software/coreutils/manual/html_node/uniq-invocation.html info] || {{pkg|anewer}}, {{aur|runiq}}, {{aur|huniq-git}}
| ip rule || ルーティングポリシーデータベース管理 || {{man|8|ip-rule}}
 
 
|-
 
|-
  +
| comm || 2つのソート済みのファイルを行単位で比較 || {{man|1|comm}}, [https://www.gnu.org/software/coreutils/manual/html_node/comm-invocation.html info] || {{aur|zet}}
| ip tcp_metrics || TCP Metrics の管理 || {{man|8|ip-tcp_metrics}}
 
 
|-
 
|-
  +
| head || ファイルの最初の部分を出力 || {{man|1|head}}, [https://www.gnu.org/software/coreutils/manual/html_node/head-invocation.html info]
| ip tunnel || トンネル設定 || {{man|8|ip-tunnel}}
 
 
|-
 
|-
  +
| join || 2 つの入力のフィールドが共通な行を結合する || {{man|1|join}}, [https://www.gnu.org/software/coreutils/manual/html_node/join-invocation.html info] || {{man|1|combine}} {{aur|zet}}
| ip tuntap || TUN/TAP デバイスの管理 ||
 
 
|-
 
|-
  +
| 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}}
| ip xfrm || IPsec ポリシーの管理 || {{man|8|ip-xfrm}}
 
  +
|-
  +
| tail || ファイルの最後の部分を出力/追従 || {{man|1|tail}}, [https://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html info]
  +
|-
  +
| wc || 改行や単語、バイト数を表示 || {{man|1|wc}}, [https://www.gnu.org/software/coreutils/manual/html_node/wc-invocation.html info]
  +
|-
  +
| 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|moreutils}} パッケージには GNU coreutils に無い {{man|1|sponge}} のような便利なツールを提供します。
全てのオブジェクトで {{ic|help}} コマンドが利用可能です。例えば、{{ic|ip addr help}} と入力すればアドレスオブジェクトで利用できるコマンド構文が表示されます。高度な利用方法は [http://www.policyrouting.org/iproute2.doc.html iproute2 documentation] を見て下さい。
 
   
  +
== 代替コマンド ==
[[ネットワーク設定]]の記事では実際問題として ''ip'' コマンドを様々な作業でどうやって使えばいいのか解説しています。
 
   
  +
コアユーティリティの代替は以下のパッケージによって提供されています:
{{Note|もしかしたら [[Wikipedia:ifconfig|ifconfig]] コマンドの方が親しみがあるかもしれません。このコマンドは Linux の旧バージョンでインターフェイス設定に使われていました。現在 Arch Linux では廃止されているため、代わりに ''ip'' を使って下さい。}}
 
   
  +
* {{App|[[BusyBox]]|レスキューや組み込みシステム向けのユーティリティ。|https://busybox.net|{{Pkg|busybox}}}}
== locate ==
 
  +
* {{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 の代替 ===
{{Pkg|mlocate}} パッケージを[[インストール]]してください。インストール後、自動的にデータベースを更新するスクリプトが毎日実行されるようになります。手動で root で ''updatedb'' を実行することでいつでもデータベースは更新できます。デフォルトでは {{ic|/media}} や {{ic|/mnt}} などのパスは無視されるので ''locate'' は外部デバイスのファイルを検索できません。詳しくは {{man|8|updatedb}} を見てください。
 
   
  +
* {{App|bat|シンタックスハイライトと Git 統合機能を備えた cat クローン|https://github.com/sharkdp/bat|{{Pkg|bat}}}}
''locate'' コマンドはファイルを名前で検索する一般的な Unix ツールです。あらかじめ作成しておいたデータベースファイルを使って検索するためファイルシステムを直接検索する [[wikipedia:Find|find]] ツールよりも高速に検索できます。欠点としてデータベースが作成された後に作られたファイルは ''locate'' で検索できません。データベースを更新する ''updatedb'' コマンドを定期的に実行することで問題は抑えられます。
 
   
  +
=== cd の代替 ===
''locate'' は使う前にデータベースの作成が必要です。root で {{ic|updatedb}} を実行してください。
 
   
  +
* {{App|zoxide|ユーザーの癖を学習するスマートな cd コマンド。たった数個のキーストロークでどこへでも移動できます。|https://github.com/ajeetdsouza/zoxide|{{Pkg|zoxide}}}}
[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] も参照。
 
  +
* {{App|autojump|コマンドラインからファイルシステムを移動する高速な方法。|https://github.com/wting/autojump|{{AUR|autojump}}}}
   
  +
[[Bash#パスを入力したら自動で "cd"]] と [[Zsh#最近のディレクトリを記憶させる]] も見てください。
== less ==
 
   
  +
=== cp の代替 ===
[[Wikipedia:ja:less|less]] はテキストファイルの中身を一画面単位で表示するのに使われるターミナルページャプログラムです。[[Wikipedia:ja:more (UNIX)|more]] や [[Wikipedia:pg (Unix)|pg]] といった他のページャと同じですが、''less'' はより高度なインターフェイスと完全な [http://www.greenwoodsoftware.com/less/faq.html feature-set] を提供します。
 
   
  +
[[rsync#cp/mv の代わりとして使う|rsync を cp/mv の代わりとして使う]]ことで、失敗したファイル転送の再開、転送状況の表示、すでに存在するファイルのスキップ、チェックサムによる転送先ファイルの整合性の確認が可能になります。
less の代替プログラムについては[[アプリケーション一覧#ターミナルページャ]]を見て下さい。
 
   
=== もうひとつページャとしての Vim ===
+
=== ls 代替 ===
   
  +
* {{App|broot|ディレクトリツリーを表示・移動する新しい方法|https://github.com/Canop/broot|{{Pkg|broot}}}}
[[Vim]] (''visual editor improved'') にはテキストファイル・圧縮ファイル・バイナリ・ディレクトリの中身を表示するスクリプトが含まれています。次の行をシェルの設定ファイルに追加することでページャとして使うことが可能です:
 
  +
* {{App|clifm|ls(1) のようにファイルを一覧表示し、さらにアイコン表示と RGB カラーサポートを備えたファイルマネージャ|https://github.com/leo-arch/clifm/wiki/Advanced#files-lister-ls-mode|{{AUR|clifm}}}}
{{hc|~/.bashrc|2=alias less='/usr/share/vim/vim80/macros/less.sh'}}
 
  +
* {{App|eza|カラー表示、ツリー表示、git 統合などの機能を備えたもう一つの ls 代替。もはやサポートされていない exa をベースとしています。|https://github.com/eza-community/eza|{{Pkg|eza}}}}
  +
* {{App|lsd|多くの美しい色と素晴らしいアイコンを備えたモダンな ls|https://github.com/Peltoche/lsd|{{Pkg|lsd}}}}
   
  +
=== find の代替 ===
また、''less.sh'' マクロの代替も存在し、{{ic|PAGER}} 環境変数として使えます。{{Pkg|vimpager}} をインストールしてシェルの設定ファイルに以下を加えて下さい:
 
{{hc|~/.bashrc|2=
 
export PAGER='vimpager'
 
alias less=$PAGER
 
}}
 
   
  +
* {{App|fd|シンプルで速く、ユーザーフレンドリーな find の代替。隠しファイルや {{ic|.gitignore}} にあるファイルをデフォルトで無視します。|https://github.com/sharkdp/fd|{{Pkg|fd}}}}
これで {{ic|PAGER}} 環境変数を使うプログラム、[[git]] などはページャとして ''vim'' を使うようになります。
 
  +
* {{App|fuzzy-find|ファイル検索のためのあいまい補完。|https://github.com/silentbicycle/ff|{{AUR|ff-git}}}}
  +
* {{App|[[mlocate]]|locate/updatedb の実装をマージ。|https://pagure.io/mlocate|{{Pkg|mlocate}}}}
  +
* {{App|plocate|よりさらに速い locate|https://plocate.sesse.net/|{{Pkg|plocate}}}}
  +
* {{App|rawhide|C 言語のきれいな式を使ってファイルを検索します。|https://raf.org/rawhide/|{{AUR|rawhide}}}}
   
  +
グラフィカルなファイル検索ソフトウェアは [[アプリケーション一覧/ユーティリティ#ファイル検索]] をご覧ください。
== ls ==
 
   
  +
=== diff の代替 ===
[[Wikipedia:ja:ls|ls]] (''list'') は Unix や Unix ライクなオペレーティングシステムで使われる、ファイルを一覧するコマンドです。
 
   
  +
{{Pkg|diffutils}} では単語単位の差分表示ができませんが、それが可能なプログラムがいくつか存在します:
詳しい情報は {{ic|info ls}} や [https://www.gnu.org/software/coreutils/manual/html_node/ls-invocation.html#ls-invocation オンラインマニュアル] を見てください。
 
   
  +
* [[git]] の diff は {{ic|--color-words}} フラグを使用すると単語単位の差分表示が可能です。{{ic|--no-index}} フラグを使用すれば Git のワークツリー外でも使用可能です。
=== 長い出力 ===
 
  +
* {{App|cwdiff|出力をカラー表示化する GNU wdiff ラッパー|https://github.com/junghans/cwdiff|{{AUR|cwdiff}}}}
  +
* {{App|git-delta|git や diff 、grep 用の出力をシンタックスハイライトするページャ|https://dandavison.github.io/delta/|{{Pkg|git-delta}}}}
  +
* {{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|wdiff|GNU diff の単語単位の実装。カラー表示はサポートしません。|https://www.gnu.org/software/wdiff/|{{Pkg|wdiff}}}}
   
  +
[[アプリケーション一覧/ユーティリティ#Comparison, diff, merge]] もご覧ください。
{{ic|-l}} オプションはメタデータを表示します。例:
 
   
  +
=== grep の代替 ===
{{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
 
}}
 
   
  +
* {{App|mgrep|複数行 grep|https://sourceforge.net/projects/multiline-grep/|{{AUR|mgrep}}}}
{{ic|total}} の値はディレクトリ内のファイルに割り当てられたディスクのブロック数を表します。
 
  +
* {{App|pdfgrep|PDF ファイル内のテキストを検索するツール|https://pdfgrep.org/|{{Pkg|pdfgrep}}}}
  +
* {{App|ripgrep-all|プレーンテキストのみならず、PDF ファイルや E-Books、Office ドキュメント、zip、tar.gz ファイル内のテキストも検索できます。|https://github.com/phiresky/ripgrep-all|{{Pkg|ripgrep-all}}}}
   
  +
==== コード検索ソフトウェア ====
ファイルやサブディレクトリの行は7つのメタデータフィールドに分けられます:
 
   
  +
以下のツールはコード検索の場面で grep を置き換えることを目的としています。これらはデフォルトで再帰検索をし、バイナリファイルや {{ic|.gitignore}} 内にあるファイルをスキップします。
* タイプとパーミッション:
 
** 最初の文字はタイプです。タイプの説明は {{ic|info ls -n "What information is listed"}} を見てください。例:
 
*** {{ic|-}} は通常のファイルです。
 
*** {{ic|d}} はディレクトリです。
 
*** {{ic|p}} は名前付きパイプ (別名 FIFO) です。
 
*** {{ic|l}} はシンボリックリンクです。
 
** 他の文字は[[パーミッション]]です。
 
* [[Wikipedia:Hard link|ハードリンク]]の数。ファイルは最低でも1になります。フォルダは最低でも2になります。
 
* 所有者の[[ユーザー]]の名前。
 
* [[グループ]]の名前。
 
* サイズ。
 
* 最後に更新されたタイムスタンプ。
 
* エンティティ名。
 
   
  +
* {{App|ack|Perl ベースの grep 置き換え。多種多様なソースコードの大きなツリーを扱うプログラマに向けです。|https://beyondgrep.com/|{{Pkg|ack}}}}
=== 空白を含むファイル名がクォートで囲まれる ===
 
  +
* {{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|ugrep (ug)|インタラクティブなユーザインターフェイス、曖昧検索、boolean クエリ、16進数表示などの機能を持つ非常に高速な grep。|https://github.com/Genivia/ugrep|{{Pkg|ugrep}}}}
   
  +
{{Pkg|cscope}} も参照。
デフォルトで、空白を含むファイル名やディレクトリ名はシングルクォートで囲まれて表示されます。{{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 ==
 
   
  +
* {{App|[[fzf]]|汎用のコマンドラインあいまい検索ソフトウェア。デフォルトで find を使用します。|https://github.com/junegunn/fzf|{{Pkg|fzf}}}}
{{man|8|lsblk}} は利用可能な[[w:Device_file#Block_devices|ブロックデバイス]]とパーティションスキームを表示します。例:
 
  +
* {{App|fzy|高度なスコアリングアルゴリズムを搭載した速くてシンプルなあいまいテキストセレクタ。|https://github.com/jhawthorn/fzy|{{Pkg|fzy}}}}
  +
* {{App|peco|シンプルなインタラクティブフィルタリングツール。|https://github.com/peco/peco|{{Pkg|peco}}}}
  +
* {{App|percol|UNIX シェルの伝統的なパイプにインタラクティブフィルタリングを追加。|https://github.com/mooz/percol|{{Pkg|percol}}}}
  +
* {{App|skim|Rust で書かれたあいまい検索ソフトウェア。fzf に似ています。|https://github.com/lotabout/skim|{{Pkg|skim}}}}
   
  +
=== dd の代替 ===
{{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 /
 
}}
 
   
  +
[[dd]] や [[ddrescue]] も参照してください。
デバイスの名前はブロックデバイスのタイプを表します。近代的なストレージデバイス (例: ハードディスク, [[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}}) が存在し、それぞれ異なる[[ファイルシステム]]が使われていることが確認できます。
 
   
  +
==== 代替 dd の実装 ====
他によく使われるブロックデバイスのタイプとしてはメモリカードの {{ic|mmcblk}} や [[ソリッドステートドライブ/NVMe|NVMe]] デバイスの {{ic|nvme}} などがあります。知らないタイプは [https://www.kernel.org/doc/Documentation/devices.txt カーネルドキュメント] で検索してください。
 
   
  +
このサブセクションでは、{{man|1p|dd}} の POSIX 仕様に (ほぼ) 準拠しているインターフェイスとデフォルトの挙動を持つ ''dd'' の実装をリストアップしています。
== mkdir ==
 
   
  +
* {{app|ddpt|Linux カーネルの SCSI サブシステムのメンテナによる、{{man|8|sg_dd}} のポータブルな代替。オプションですが、非常に特殊化されたハードウェア I/O (SCSI コマンドセット) をサポートし、さらに他の多くの機能を有しています。|http://sg.danny.cz/sg/ddpt.html|{{aur|ddpt}}}}
[[Wikipedia:ja:mkdir|mkdir]] (''make directory'') はディレクトリを作成するコマンドです。
 
  +
* {{app|sdd|Joerg Schilling による、UNIX 環境間で移植性の高い dd の実装。コピーされたデータのチェックサムや、不良ブロックを再読込させることができます。|https://schilytools.sourceforge.net/|{{aur|schily-tools-sdd}}}}
   
  +
===== GNU dd のスピンオフ =====
* ディレクトリと階層全体を作るには、{{ic|-p}} スイッチを使って下さい。そうしないとエラーが表示されます。{{ic|-p}} スイッチをデフォルトで使うようにすることもできます:
 
: {{bc|1=alias mkdir='mkdir -p -v'}}
 
: {{ic|-v}} スイッチはメッセージを有効にします。
 
   
  +
{{pkg|coreutils}} にある ''dd'' の GNU 実装も POSIX に準拠しています。このサブセクションでは GNU dd のフォークをリストアップしています。
* 作成したディレクトリのモードを変更するのに ''chmod'' を使う必要はありません。{{ic|-m}} オプションでアクセス権限を定義できます。
 
   
  +
* {{App|[[Wikipedia:Dd_(Unix)#dcfldd|dcfldd]]|科学捜査やセキュリティの場面のための、機能が強化された GNU dd フォーク。次のような機能を有しています: 臨機応変なハッシュ検証機能、柔軟なディスク消去、書き込み検証、同時に複数のターゲットに出力、出力の分割やパイプ。|https://dcfldd.sourceforge.net|{{AUR|dcfldd}}}}
{{Tip|一時ディレクトリが欲しいときは代わりに [[Wikipedia:Temporary file|mktemp]] (''make termporary'') を使って下さい: {{ic|mktemp -p}}。}}
 
  +
* {{App|[[Wikipedia:Dd_(Unix)#dc3dd|dc3dd]]|アメリカ国防総省サイバー犯罪センター (DC3) による、GNU dd のパッチ済みバージョン。dcfldd とよく似た目的と機能を有しています。|https://sourceforge.net/projects/dc3dd/|{{AUR|dc3dd}}}}
   
  +
==== モダンな dd の類似品 ====
== mv ==
 
   
  +
このサブセクションでは、(JCL に似たコマンドライン構文と[https://unix.stackexchange.com/a/192114 デフォルトの挙動]という点で) POSIX に準拠していない dd の代替をリストアップしています。
[[Wikipedia:ja:mv_(UNIX)|mv]] (''move'') はファイルやディレクトリを移動したり名前の変更をするコマンドです。
 
   
  +
* {{app|dd_rescue|多くの機能が積み込まれたモダンな dd の類似品。日々のスクリプティングやディスク複製、データリカバリに適しています。|http://www.garloff.de/kurt/linux/ddrescue/|{{pkg|dd_rescue}}}}
*危険なコマンドになる可能性があるので範囲に制限をかけたほうが賢明です:
 
  +
* {{app|rw|従来のコマンドラインフラグ付きの必要最低限でポータブルな ''dd'' 類似品。|https://sortix.org/rw/|{{aur|rw}}}}
: {{bc|1=alias mv=' timeout 8 mv -iv'}}
 
:このエイリアスは8秒後に ''mv'' を中止し、3つ以上のファイルの削除を確認し、進行中の操作を表示し、(スペースから始まるコマンドを無視するようシェルが設定されている場合) シェルの history ファイルに操作を保存しません。
 
   
  +
==== buffer のスピンオフ ====
== od ==
 
   
  +
このサブセクションでは、{{aur|buffer}} のフォークをリストアップしています。buffer は、''dd'' に似た汎用 I/O バッファリングユーティリティですが、動的サイズバッファを持っています。ブロック単位の I/O をサポートしており、LTO テープを書き込み/読み込みする際に摩耗を防ぐために使用できます。
[[Wikipedia:od (Unix)|od]] (''o''ctal ''d''ump) コマンドは人間が読める形式になっていないデータ (プログラムの実行形式のコードやフォーマットされていないデバイスの中身など) を可視化するのに役立ちます。詳しくは [https://www.gnu.org/software/coreutils/manual/html_node/od-invocation.html#od-invocation マニュアル] を参照してください。
 
   
  +
* {{app|mbuffer|''buffer'' ユーティリティにマルチスレッディングや他の機能を組み合わせたもの。|https://www.maier-komor.de/mbuffer.html|{{Pkg|mbuffer}}}}
== pv ==
 
   
  +
=== df の代替 ===
{{Pkg|pv}} (''pipe viewer'') を使うことでデータ操作の進捗をパイプラインで監視できます。例:
 
   
  +
* {{App|duf|ディスクの使用量と空き容量を調べるユーティリティ|https://github.com/muesli/duf|{{Pkg|duf}}}}
# dd if=''/source/filestream'' | pv -''monitor_options'' -s ''size_of_file'' | dd of=''/destination/filestream''
 
   
  +
=== du の代替 ===
大抵の場合 {{ic|pv}} は {{ic|cat}} の代替として機能します。
 
   
  +
* {{App|cdu|カラー出力で、美しいヒストグラムを出力する du ラッパ。|http://arsunik.free.fr/prog/cdu.html|{{aur|cdu}}}}
== rm ==
 
  +
* {{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}}}}
   
  +
[[アプリケーション一覧/ユーティリティ#ディスク使用量表示プログラム]] も見てください。
[[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}} を記述することで暗示的な拡張を避けることができます。
 
   
  +
* [https://www.gnu.org/software/coreutils/manual/coreutils.html GNU Coreutils ドキュメント]
* 空のディレクトリを削除するときは、''rmdir'' を使ってください。
 
  +
* [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 メンテナのノート
== sed ==
 
  +
* [https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html POSIX utilities]
 
[[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}} パッケージに含まれており {{Grp|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|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
 
 
== 参照 ==
 
   
  +
{{TranslationStatus|Core utilities|2023-09-09|787190}}
* [http://www.reddit.com/r/commandline/comments/19garq/a_sampling_of_coreutils_120/ A sampling of coreutils] [http://www.reddit.com/r/commandline/comments/19ge6v/a_sampling_of_coreutils_2040/ , part 2] [http://www.reddit.com/r/commandline/comments/19j1w3/a_sampling_of_coreutils_4060/ , part 3] - coreutils のコマンドの概要
 
* [https://www.gnu.org/software/coreutils/manual/coreutils.html GNU Coreutils オンラインドキュメント]
 
* [https://www.linuxquestions.org/questions/linux-newbie-8/learn-the-dd-command-362506/ Learn the DD command]
 

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)

データの損失を防ぐ

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 colrm(1), hck, choose
tr 文字を置換/削除 tr(1), info uconv(1)
od ファイルを8進数や他の基数でダンプ od(1), info hexdump(1), vimxxd(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 — レスキューや組み込みシステム向けのユーティリティ。
https://busybox.net || busybox
  • Toybox — オールインワンの Linux コマンドライン。
https://landley.net/toybox || toyboxAUR
  • uutils — GNU coreutils を Rust で書き直したクロスプラットフォームなユーティリティ。
https://github.com/uutils/coreutils || uutils-coreutils
  • Heirloom Toolchest — 標準的な Unix ユーティリティの伝統的な実装。
https://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
  • eza — カラー表示、ツリー表示、git 統合などの機能を備えたもう一つの ls 代替。もはやサポートされていない exa をベースとしています。
https://github.com/eza-community/eza || eza
  • lsd — 多くの美しい色と素晴らしいアイコンを備えたモダンな ls
https://github.com/Peltoche/lsd || lsd

find の代替

  • fd — シンプルで速く、ユーザーフレンドリーな find の代替。隠しファイルや .gitignore にあるファイルをデフォルトで無視します。
https://github.com/sharkdp/fd || fd
  • fuzzy-find — ファイル検索のためのあいまい補完。
https://github.com/silentbicycle/ff || ff-gitAUR
  • mlocate — locate/updatedb の実装をマージ。
https://pagure.io/mlocate || mlocate
  • plocate — よりさらに速い locate
https://plocate.sesse.net/ || plocate
  • rawhide — C 言語のきれいな式を使ってファイルを検索します。
https://raf.org/rawhide/ || rawhideAUR

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

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 || dwdiffAUR
  • 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

コード検索ソフトウェア

以下のツールはコード検索の場面で 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) — インタラクティブなユーザインターフェイス、曖昧検索、boolean クエリ、16進数表示などの機能を持つ非常に高速な grep。
https://github.com/Genivia/ugrep || ugrep

cscope も参照。

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

  • 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 の実装。コピーされたデータのチェックサムや、不良ブロックを再読込させることができます。
https://schilytools.sourceforge.net/ || schily-tools-sddAUR
GNU dd のスピンオフ

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

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

モダンな dd の類似品

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

  • dd_rescue — 多くの機能が積み込まれたモダンな dd の類似品。日々のスクリプティングやディスク複製、データリカバリに適しています。
http://www.garloff.de/kurt/linux/ddrescue/ || dd_rescue
  • rw — 従来のコマンドラインフラグ付きの必要最低限でポータブルな dd 類似品。
https://sortix.org/rw/ || rwAUR

buffer のスピンオフ

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

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

df の代替

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

du の代替

  • cdu — カラー出力で、美しいヒストグラムを出力する du ラッパ。
http://arsunik.free.fr/prog/cdu.html || cduAUR
  • 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 の翻訳バージョンです。最後の翻訳日は 2023-09-09 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。