「Core utilities」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
 
(7人の利用者による、間の48版が非表示)
1行目: 1行目:
[[Category:システム管理]]
+
[[Category:コマンドライン]]
[[Category:コマンドシ]]
+
[[Category:ソフトウア一覧]]
 
[[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-CN:Core Utilities]]
+
[[zh-hans:Core utilities]]
[[zh-TW: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|ファイルシステム検索}}
 
{{Related|man ページ}}
 
{{Related|ディスクの完全消去#shred}}
 
{{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 *.avi
 
 
|-
 
|-
  +
| 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}}
|
 
  +
|-
  +
| 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 ==
 
 
[[Wikipedia:ja:cat (UNIX)|cat]] (''catenate'') はファイルを連結して表示する標準の Unix ユーティリティです。
 
 
* ''cat'' はシェルにビルトインされていないため、多くの場合で[[wikipedia:ja:リダイレクト (CLI)|リダイレクション]]を使ったほうが便利です (例: スクリプト、もしくはパフォーマンスが必要な場合)。実際 {{ic|< ''file''}} は {{ic|cat ''file''}} と全く同じです。
 
 
* ''cat'' は複数行でも動作しますが、バッドプラクティスとして扱われることもあります:
 
 
{{bc|
 
$ cat << EOF >> ''path/file''
 
''first line''
 
...
 
''last line''
 
EOF
 
}}
 
代わりに ''echo'' コマンドを使うほうが良いでしょう:
 
{{bc|
 
$ echo "\
 
''first line''
 
...
 
''last line''" \
 
>> ''path/file''
 
}}
 
 
* ファイルの行を逆順で cat する必要がある場合、[[Wikipedia:tac (Unix)|tac]] (''cat'' reversed) という名前のユーティリティがあります。
 
 
== dd ==
 
 
[[Wikipedia:ja:dd (UNIX)|dd]] は主にファイルを変換・コピーするために使われる Unix や Unix ライクなオペレーティングシステムのコマンドです。
 
 
{{Note|''cp'' はいくつかのオペランドを除いて ''dd'' と同じですが、多目的のディスク消去作業向きには作られてはいません。}}
 
 
=== 実行中に dd の進行度を確認する ===
 
 
デフォルトでは、''dd'' は作業が完了するまで何も出力をしません。''kill'' と {{ic|USR1}} シグナルを使うことでプログラムを終了することなく状態を出力させることが可能です。新しい root のターミナルを開いて次のコマンドを実行してください:
 
# killall -USR1 dd
 
 
{{Note|これは動作中の全ての ''dd'' プロセスに影響を与えます。}}
 
 
もしくは:
 
# kill -USR1 ''pid_of_dd_command''
 
 
例えば:
 
# kill -USR1 $(pidof dd)
 
 
これで ''dd'' は当面の進捗をターミナルに出力するようになります。例:
 
605+0 records in
 
605+0 records out
 
634388480 bytes (634 MB) copied, 8.17097 s, 77.6 MB/s
 
 
==== パイプビューアを使う ====
 
 
{{Pkg|pv}} を使って dd のパイプラインを監視することもできます:
 
# dd if=''/source/filestream'' | pv -''monitor_options'' -s ''size_of_file'' | dd of=''/destination/filestream''
 
 
パイプビューアを使う場合は以下を bashrc や zshrc に追記すると楽です:
 
copy() {
 
size=$(stat -c%s $1)
 
dd if=$1 &> /dev/null | pv -petrb -s $size | dd of=$2
 
}
 
 
そして次のコマンドを使用して下さい:
 
# copy ''/source/file'' ''/destination/file''
 
 
=== 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}} などの最適化されたユーティリティが存在します。
 
 
=== 出力のカラー化 ===
 
 
''grep'' のカラー出力は画面が美しくなるだけでなく [[Wikipedia:ja:正規表現|regexp]] や ''grep'' の機能を学ぶのにとても便利です。
 
 
''grep'' のデフォルトカラーを使うには、以下のエントリをシェルの設定ファイルに書いて下さい。例えば [[Bash]] を使っている場合:
 
{{hc|~/.bashrc|2=alias grep='grep --color=auto'}}
 
また、{{ic|GREP_OPTIONS}} [[環境変数]]を設定することも可能ですが、これを使うと ''grep'' を使うスクリプトを壊してしまう可能性があるので注意してください [http://brainstorm.ubuntu.com/idea/24141/]:
 
export GREP_OPTIONS='--color=auto'
 
ファイルの行番号を出力に含めたいときは、{{ic|-n}} を追加してください:
 
alias grep='grep -n --color=auto'
 
 
環境変数 {{ic|GREP_COLORS}} を使ってデフォルトとは異なる色を指定することもできます。
 
 
=== 標準エラー出力 ===
 
 
コマンドによっては標準エラー出力の方に出力が送信されることもありますが、grep は標準エラー出力を解釈しません。このような場合、標準エラー出力を標準出力にリダイレクトする必要があります:
 
 
$ ''command'' 2>&1 | grep ''args''
 
 
もしくは Bash 4 の略式表記を使って:
 
 
$ ''command'' |& grep ''args''
 
 
[http://www.tldp.org/LDP/abs/html/io-redirection.html I/O Redirection] を参照してください。
 
 
== iconv ==
 
 
{{ic|iconv}} は文字列のエンコーディングをあるコードセットから他のコードセットへ変換します。
 
 
次のコマンドはファイル {{ic|foo}} を ISO-8859-15 から UTF-8 へ変換して {{ic|foo.utf}} として保存します:
 
 
$ iconv -f ISO-8859-15 -t UTF-8 foo >foo.utf
 
 
詳しくは {{ic|man 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
 
   
  +
{{ic|rm}} や {{ic|mv}}、{{ic|cp}}、シェルのリダイレクトは問答無用でファイルを削除/上書きします。{{ic|rm}} と {{ic|mv}}、{{ic|cp}} はすべて {{ic|-i}} フラグをサポートしており、このフラグを使うとファイルを削除/上書きする前にユーザに尋ねるようになります。[[エイリアス]]を使って {{ic|-i}} フラグをデフォルトで有効化したいユーザもいるでしょう。しかし、これらのシェルオプションに頼りっきりなるのは危険です。これらのオプションに慣れてしまうと、これらを使用していない他のシステムやユーザを使うときにデータ損失を招く可能性があります。データ損失を防ぐ最良の方法は[[バックアップ]]を取ることです。
詳しくは {{ic|man sponge}} を参照。
 
   
  +
== その他のコマンド ==
== ip ==
 
[[wikipedia:Iproute2|ip]] を使うことで Linux の [[Wikipedia:ja:Internet Protocol|IP]] ソフトウェアスタックにおけるネットワークデバイス・IP アドレス・ルーティングテーブルなどの情報を表示することができます。様々なコマンドを加えることで、オブジェクトの操作や設定をすることも可能です。
 
   
  +
以下の表にはしばしば便利なコアユーティリティをリストしています。
{{Note|''ip'' ユーティリティは {{Pkg|iproute2}} パッケージに含まれており、このパッケージは {{Grp|base}} グループに入っています。}}
 
   
{| class="wikitable"
+
{| class=wikitable
  +
! パッケージ !! ユーティリティ !! 説明 !! ドキュメント !! 代替品
! オブジェクト !! 用途 !! man ページ
 
 
|-
 
|-
  +
|rowspan=3| シェル組み込み
| ip addr || プロトコルアドレス管理 || ip-address
 
  +
| [[alias]] || エイリアスを定義/表示 || {{man|1p|alias}}
 
|-
 
|-
  +
| type || コマンドのタイプを表示 || {{man|1p|type}} || {{man|1p|command}}, {{man|1|whereis}}, {{man|1|which}}
| ip addrlabel || プロトコルアドレスラベル管理 || ip-addrlabel
 
 
|-
 
|-
  +
| time || コマンドの所要時間を計測 || {{man|1p|time}}
| ip l2tp || tunnel ethernet over IP (L2TPv3) || ip-l2tp
 
 
|-
 
|-
  +
|rowspan=16| GNU {{Pkg|coreutils}}
| ip link || ネットワークデバイス設定 || 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 || マルチキャストアドレス管理 || 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 メッセージの監視 || 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 || マルチキャストルーティングキャッシュ管理 || 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 テーブル管理 || ip-neighbour
 
 
|-
 
|-
  +
| tr || 文字を置換/削除 || {{man|1|tr}}, [https://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html info] || {{man|1|uconv}}
| ip netns || プロセスネットワーク名前空間管理 || 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 テーブル設定 || ip-ntable
 
 
|-
 
|-
  +
| sort || 行をソート || {{man|1|sort}}, [https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html info]
| ip route || ルーティングテーブル管理 || 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 || ルーティングポリシーデータベース管理 || 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 の管理 || ip-tcp_metrics
 
 
|-
 
|-
  +
| head || ファイルの最初の部分を出力 || {{man|1|head}}, [https://www.gnu.org/software/coreutils/manual/html_node/head-invocation.html info]
| ip tunnel || トンネル設定 || 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 ポリシーの管理 || 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}}}}
== less ==
 
  +
* {{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 の代替 ===
[[Wikipedia:ja:less|less]] はテキストファイルの中身を一画面単位で表示するのに使われるターミナルページャプログラムです。[[Wikipedia:ja:more (UNIX)|more]] や [[Wikipedia:pg (Unix)|pg]] といった他のページャと同じですが、''less'' はより高度なインターフェイスと完全な [http://www.greenwoodsoftware.com/less/faq.html feature-set] を提供します。
 
   
  +
* {{App|bat|シンタックスハイライトと Git 統合機能を備えた cat クローン|https://github.com/sharkdp/bat|{{Pkg|bat}}}}
less の代替プログラムについては[[アプリケーション一覧#ターミナルページャ]]を見て下さい。
 
   
=== 環境変数を使った出力カラー化 ===
+
=== cd 代替 ===
   
  +
* {{App|zoxide|ユーザーの癖を学習するスマートな cd コマンド。たった数個のキーストロークでどこへでも移動できます。|https://github.com/ajeetdsouza/zoxide|{{Pkg|zoxide}}}}
以下の行をシェルの設定ファイルに加えて下さい:
 
  +
* {{App|autojump|コマンドラインからファイルシステムを移動する高速な方法。|https://github.com/wting/autojump|{{AUR|autojump}}}}
   
  +
[[Bash#パスを入力したら自動で "cd"]] と [[Zsh#最近のディレクトリを記憶させる]] も見てください。
{{hc|~/.bashrc|2=
 
export LESS=-R
 
export LESS_TERMCAP_me=$(printf '\e[0m')
 
export LESS_TERMCAP_se=$(printf '\e[0m')
 
export LESS_TERMCAP_ue=$(printf '\e[0m')
 
export LESS_TERMCAP_mb=$(printf '\e[1;32m')
 
export LESS_TERMCAP_md=$(printf '\e[1;34m')
 
export LESS_TERMCAP_us=$(printf '\e[1;32m')
 
export LESS_TERMCAP_so=$(printf '\e[1;44;1m')
 
}}
 
   
  +
=== cp の代替 ===
値は好きなように変更してください。参照: [[Wikipedia:ANSI_escape_code#Colors|ANSI escape code]]。
 
   
  +
[[rsync#cp/mv の代わりとして使う|rsync を cp/mv の代わりとして使う]]ことで、失敗したファイル転送の再開、転送状況の表示、すでに存在するファイルのスキップ、チェックサムによる転送先ファイルの整合性の確認が可能になります。
=== ラッパーを使った出力のカラー化 ===
 
   
  +
=== ls の代替 ===
''less'' でシンタックスハイライトを有効にすることができます。まず、{{Pkg|source-highlight}} をインストールし、次に以下の行をシェルの設定ファイルに追加してください:
 
{{hc|~/.bashrc|<nowiki>
 
export LESSOPEN="| /usr/bin/source-highlight-esc.sh %s"
 
export LESS='-R '
 
</nowiki>}}
 
   
  +
* {{App|broot|ディレクトリツリーを表示・移動する新しい方法|https://github.com/Canop/broot|{{Pkg|broot}}}}
コマンドラインインターフェイスを頻繁に使う場合 {{Pkg|lesspipe}} をインストールすると良いかもしれません。
 
  +
* {{App|clifm|ls(1) のようにファイルを一覧表示し、さらにアイコン表示と RGB カラーサポートを備えたファイルマネージャ|https://github.com/leo-arch/clifm/wiki/Advanced#files-lister-ls-mode|{{AUR|clifm}}}}
  +
* {{App|eza|カラー表示、ツリー表示、git 統合などの機能を備えたもう一つの ls 代替。もはやサポートされていない exa をベースとしています。|https://github.com/eza-community/eza|{{Pkg|eza}}}}
  +
* {{App|lsd|多くの美しい色と素晴らしいアイコンを備えたモダンな ls|https://github.com/Peltoche/lsd|{{Pkg|lsd}}}}
   
  +
=== find の代替 ===
ページャを使ってアーカイブの中の圧縮されたファイルを表示することができるようになります:
 
   
  +
* {{App|fd|シンプルで速く、ユーザーフレンドリーな find の代替。隠しファイルや {{ic|.gitignore}} にあるファイルをデフォルトで無視します。|https://github.com/sharkdp/fd|{{Pkg|fd}}}}
{{hc|$ less ''compressed_file''.tar.gz|2=
 
  +
* {{App|fuzzy-find|ファイル検索のためのあいまい補完。|https://github.com/silentbicycle/ff|{{AUR|ff-git}}}}
==> use tar_file:contained_file to view a file in the archive
 
  +
* {{App|[[mlocate]]|locate/updatedb の実装をマージ。|https://pagure.io/mlocate|{{Pkg|mlocate}}}}
-rw------- ''username''/''group'' 695 2008-01-04 19:24 ''compressed_file''/''content1''
 
  +
* {{App|plocate|よりさらに速い locate|https://plocate.sesse.net/|{{Pkg|plocate}}}}
-rw------- ''username''/''group'' 43 2007-11-07 11:17 ''compressed_file''/''content2''
 
  +
* {{App|rawhide|C 言語のきれいな式を使ってファイルを検索します。|https://raf.org/rawhide/|{{AUR|rawhide}}}}
''compressed_file''.tar.gz (END)
 
}}
 
   
  +
グラフィカルなファイル検索ソフトウェアは [[アプリケーション一覧/ユーティリティ#ファイル検索]] をご覧ください。
''lesspipe'' はファイルタイプに関連付けられたコマンドの代替として (例えば {{Pkg|python-html2text}} で HTML を閲覧する)、アーカイブ以外のファイルも ''less'' のインターフェイスに接続します。
 
   
  +
=== diff の代替 ===
''lesspipe'' を有効にするにはログインしなおすか、{{ic|/etc/profile.d/lesspipe.sh}} を実行してください。
 
   
  +
{{Pkg|diffutils}} では単語単位の差分表示ができませんが、それが可能なプログラムがいくつか存在します:
=== もうひとつのページャとしての Vim ===
 
   
  +
* [[git]] の diff は {{ic|--color-words}} フラグを使用すると単語単位の差分表示が可能です。{{ic|--no-index}} フラグを使用すれば Git のワークツリー外でも使用可能です。
[[Vim]] (''visual editor improved'') にはテキストファイル・圧縮ファイル・バイナリ・ディレクトリの中身を表示するスクリプトが含まれています。次の行をシェルの設定ファイルに追加することでページャとして使うことが可能です:
 
  +
* {{App|cwdiff|出力をカラー表示化する GNU wdiff ラッパー|https://github.com/junghans/cwdiff|{{AUR|cwdiff}}}}
{{hc|~/.bashrc|2=alias less='/usr/share/vim/vim74/macros/less.sh'}}
 
  +
* {{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]] もご覧ください。
また、''less.sh'' マクロの代替も存在し、{{ic|PAGER}} 環境変数として使えます。{{Pkg|vimpager}} をインストールしてシェルの設定ファイルに以下を加えて下さい:
 
{{hc|~/.bashrc|2=
 
export PAGER='vimpager'
 
alias less=$PAGER
 
}}
 
   
  +
=== grep の代替 ===
これで {{ic|PAGER}} 環境変数を使うプログラム、[[git]] などはページャとして ''vim'' を使うようになります。
 
   
  +
* {{App|mgrep|複数行 grep|https://sourceforge.net/projects/multiline-grep/|{{AUR|mgrep}}}}
=== 標準入力から読み取るときに出力をカラー化 ===
 
  +
* {{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}}}}
   
  +
==== コード検索ソフトウェア ====
{{Note|以下は {{ic|1=export LESS=R}} に基づいているので、{{ic|~/.bashrc}} や {{ic|~/.zshrc}} に [[#環境変数を使った出力のカラー化]] を追加することを推奨します。}}
 
   
  +
以下のツールはコード検索の場面で grep を置き換えることを目的としています。これらはデフォルトで再帰検索をし、バイナリファイルや {{ic|.gitignore}} 内にあるファイルをスキップします。
コマンドを実行してページ表示するために[[Wikipedia:Standard output|標準出力]] (''stdout'') を ''less'' にパイプする場合 (例: {{ic|<nowiki>pacman -Qe | less</nowiki>}})、出力がカラー化されないことに気づくかもしれません。''stdout'' がインタラクティブターミナルであるかどうかを判別して、その場合はカラーのテキストを出力して、そうでない場合はカラーでないテキストを出力するようになっているのが原因です。''stdout'' をファイルにリダイレクトしたいようなときはこれで構わないでしょうが (例: {{ic|<nowiki>pacman -Qe > pkglst-backup.txt</nowiki>}})、{{ic|less}} で出力を表示したいような時はあまり望ましくありません。
 
   
  +
* {{App|ack|Perl ベースの grep 置き換え。多種多様なソースコードの大きなツリーを扱うプログラマに向けです。|https://beyondgrep.com/|{{Pkg|ack}}}}
インタラクティブ tty の検出を無効化するオプションがプログラムに存在することがあります:
 
  +
* {{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}} も参照。
# dmesg --color=always | less
 
   
  +
==== インタラクティブフィルター ====
プログラムに無効化オプションが存在しない場合、以下のユーティリティを使うことで ''stdout'' がインタラクティブターミナルであるかのように信じこませることができます:
 
   
* {{App|stdoutisatty|{{ic|isatty}} 関数のコルをキャッチる小さなプログラム。|https://github.com/lilydjwg/stdoutisatty.|{{AUR|stdoutisatty-git}}}}
+
* {{App|[[fzf]]|汎用のコマンドラインあいまい検索ソフトウェア。デフォトで find 使用します。|https://github.com/junegunn/fzf|{{Pkg|fzf}}}}
  +
* {{App|fzy|高度なスコアリングアルゴリズムを搭載した速くてシンプルなあいまいテキストセレクタ。|https://github.com/jhawthorn/fzy|{{Pkg|fzy}}}}
:例: {{ic|stdoutisatty ''program'' <nowiki>| less</nowiki>}}
 
  +
* {{App|peco|シンプルなインタラクティブフィルタリングツール。|https://github.com/peco/peco|{{Pkg|peco}}}}
* {{App|unbuffer|''sh'' と [http://tcl.tk/ Tcl] ベースのスクリプト。|http://expect.sourceforge.net/example/unbuffer.man.html|{{Pkg|expect}}}}
 
  +
* {{App|percol|UNIX シェルの伝統的なパイプにインタラクティブフィルタリングを追加。|https://github.com/mooz/percol|{{Pkg|percol}}}}
:例: {{ic|unbuffer ''program'' <nowiki>| less</nowiki>}}
 
  +
* {{App|skim|Rust で書かれたあいまい検索ソフトウェア。fzf に似ています。|https://github.com/lotabout/skim|{{Pkg|skim}}}}
   
  +
=== dd の代替 ===
もしくは、[[zsh]] の [http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fzpty-Module zpty] モジュールを使って下さい [http://lilydjwg.is-programmer.com/2011/6/29/using-zpty-module-of-zsh.27677.html]:
 
   
  +
[[dd]] や [[ddrescue]] も参照してください。
{{hc|~/.zshrc|
 
<nowiki>zmodload zsh/zpty
 
   
  +
==== 代替 dd の実装 ====
pty() {
 
zpty pty-${UID} ${1+$@}
 
if [[ ! -t 1 ]];then
 
setopt local_traps
 
trap '' INT
 
fi
 
zpty -r pty-${UID}
 
zpty -d pty-${UID}
 
}
 
   
  +
このサブセクションでは、{{man|1p|dd}} の POSIX 仕様に (ほぼ) 準拠しているインターフェイスとデフォルトの挙動を持つ ''dd'' の実装をリストアップしています。
ptyless() {
 
pty $@ | less
 
}</nowiki>}}
 
   
  +
* {{app|ddpt|Linux カーネルの SCSI サブシステムのメンテナによる、{{man|8|sg_dd}} のポータブルな代替。オプションですが、非常に特殊化されたハードウェア I/O (SCSI コマンドセット) をサポートし、さらに他の多くの機能を有しています。|http://sg.danny.cz/sg/ddpt.html|{{aur|ddpt}}}}
使用方法:
 
  +
* {{app|sdd|Joerg Schilling による、UNIX 環境間で移植性の高い dd の実装。コピーされたデータのチェックサムや、不良ブロックを再読込させることができます。|https://schilytools.sourceforge.net/|{{aur|schily-tools-sdd}}}}
   
  +
===== GNU dd のスピンオフ =====
$ ptyless ''program''
 
   
  +
{{pkg|coreutils}} にある ''dd'' の GNU 実装も POSIX に準拠しています。このサブセクションでは GNU dd のフォークをリストアップしています。
他のページャにパイプするには (例: less):
 
   
  +
* {{App|[[Wikipedia:Dd_(Unix)#dcfldd|dcfldd]]|科学捜査やセキュリティの場面のための、機能が強化された GNU dd フォーク。次のような機能を有しています: 臨機応変なハッシュ検証機能、柔軟なディスク消去、書き込み検証、同時に複数のターゲットに出力、出力の分割やパイプ。|https://dcfldd.sourceforge.net|{{AUR|dcfldd}}}}
$ pty ''program'' | less
 
  +
* {{App|[[Wikipedia:Dd_(Unix)#dc3dd|dc3dd]]|アメリカ国防総省サイバー犯罪センター (DC3) による、GNU dd のパッチ済みバージョン。dcfldd とよく似た目的と機能を有しています。|https://sourceforge.net/projects/dc3dd/|{{AUR|dc3dd}}}}
   
  +
==== モダンな dd の類似品 ====
== ls ==
 
   
  +
このサブセクションでは、(JCL に似たコマンドライン構文と[https://unix.stackexchange.com/a/192114 デフォルトの挙動]という点で) POSIX に準拠していない dd の代替をリストアップしています。
[[Wikipedia:ja:ls|ls]] (''list'') は Unix や Unix ライクなオペレーティングシステムで使われる、ファイルを一覧するコマンドです。
 
   
  +
* {{app|dd_rescue|多くの機能が積み込まれたモダンな dd の類似品。日々のスクリプティングやディスク複製、データリカバリに適しています。|http://www.garloff.de/kurt/linux/ddrescue/|{{pkg|dd_rescue}}}}
* ''ls'' は[[ファイルのパーミッションと属性#パーミッションの表示|ファイルのパーミッション]]を表示できます。
 
  +
* {{app|rw|従来のコマンドラインフラグ付きの必要最低限でポータブルな ''dd'' 類似品。|https://sortix.org/rw/|{{aur|rw}}}}
* カラー出力はシンプルなエイリアスで有効にできます。{{ic|~/.bashrc}} ファイルには {{ic|/etc/skel/.bashrc}} からコピーされた次のエントリが既に含まれているはずです:
 
:{{bc|1=alias ls='ls --color=auto'}}
 
:次のステップはカラーになった ''ls'' 出力をさらに向上させることです; 例えば、壊れた (孤立した) シンボリックリンクを赤色で表示するようにします。以下をシェルの設定ファイルに追加してください:
 
:{{bc|1=eval $(dircolors -b)}}
 
   
  +
==== buffer のスピンオフ ====
== mkdir ==
 
   
  +
このサブセクションでは、{{aur|buffer}} のフォークをリストアップしています。buffer は、''dd'' に似た汎用 I/O バッファリングユーティリティですが、動的サイズバッファを持っています。ブロック単位の I/O をサポートしており、LTO テープを書き込み/読み込みする際に摩耗を防ぐために使用できます。
[[Wikipedia:ja:mkdir|mkdir]] (''make directory'') はディレクトリを作成するコマンドです。
 
   
  +
* {{app|mbuffer|''buffer'' ユーティリティにマルチスレッディングや他の機能を組み合わせたもの。|https://www.maier-komor.de/mbuffer.html|{{Pkg|mbuffer}}}}
* ディレクトリと階層全体を作るには、{{ic|-p}} スイッチを使って下さい。そうしないとエラーが表示されます。{{ic|-p}} スイッチをデフォルトで使うようにすることもできます:
 
: {{bc|1=alias mkdir='mkdir -p -v'}}
 
: {{ic|-v}} スイッチはメッセージを有効にします。
 
   
  +
=== df の代替 ===
* 作成したディレクトリのモードを変更するのに ''chmod'' を使う必要はありません。{{ic|-m}} オプションでアクセス権限を定義できます。
 
   
  +
* {{App|duf|ディスクの使用量と空き容量を調べるユーティリティ|https://github.com/muesli/duf|{{Pkg|duf}}}}
{{Tip|一時ディレクトリが欲しいときは代わりに [[Wikipedia:Temporary file|mktemp]] (''make termporary'') を使って下さい: {{ic|mktemp -p}}。}}
 
   
== mv ==
+
=== du の代替 ===
   
  +
* {{App|cdu|カラー出力で、美しいヒストグラムを出力する du ラッパ。|http://arsunik.free.fr/prog/cdu.html|{{aur|cdu}}}}
[[Wikipedia:ja:mv_(UNIX)|mv]] (''move'') はファイルやディレクトリを移動したり名前の変更をするコマンドです。
 
  +
* {{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}}}}
   
  +
[[アプリケーション一覧/ユーティリティ#ディスク使用量表示プログラム]] も見てください。
*危険なコマンドになる可能性があるので範囲に制限をかけたほうが賢明です:
 
: {{bc|1=alias mv=' timeout 8 mv -iv'}}
 
:このエイリアスは8秒後に ''mv'' を中止し、3つ以上のファイルの削除を確認し、進行中の操作を表示し、(スペースから始まるコマンドを無視するようシェルが設定されている場合) シェルの history ファイルに操作を保存しません。
 
   
== rm ==
+
== 参照 ==
   
  +
* [https://www.gnu.org/software/coreutils/manual/coreutils.html GNU Coreutils ドキュメント]
[[Wikipedia:ja:rm_(UNIX)|rm]] (''remove'') はファイルやディレクトリを削除するコマンドです。
 
  +
* [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://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html POSIX utilities]
: {{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]] や [[Wikipedia:ja:Perl|Perl]] 言語があります。}}
 
 
== seq ==
 
 
'''seq''' (''sequence'') は連続する数字を生成するユーティリティです。シェルに内蔵されている代替があるので、[[Wikipedia:seq|Wikipedia]] で説明されているように使うと良いでしょう。
 
 
== which ==
 
 
[[wikipedia:Which_(Unix)|which]] コマンドは実行可能ファイルのパスを確認したいときに便利です。例:
 
 
# journalctl $(which sshd)
 
 
== motd ==
 
 
[[Wikipedia:motd (Unix)|motd]] (Message of the day)。ログインが成功するとログインシェルが起動する前に {{Ic|login(1)}} によって {{ic|/etc/motd}} の中身が表示されます。
 
 
ユーザーにローカルポリシーなど何か伝えたい時があるときに利用規約を表示すると良いでしょう。
 
 
== 参照 ==
 
   
  +
{{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] - Overview of commands in coreutils
 
* [http://www.gnu.org/software/coreutils/manual/coreutils.html GNU Coreutils Manpage]
 
* [http://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 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。