GNU Core Utilities
GNU Core Utilitiesの位置づけ
編集GNU Core Utilities(通称「coreutils」)は、GNUプロジェクトが提供する基本的なコマンドラインツールの集合です。これらのツールは、UNIXを模倣したオペレーティングシステム(主にLinuxのディストリビューション)において、ファイル操作、テキスト処理、システム管理など、日常的なタスクを実行するために不可欠なものです。
coreutilsは、シェルスクリプトやシステム管理ツールの基盤として広く利用されており、その汎用性と移植性の高さから、多くのシステムで標準的に採用されています。また、GNUプロジェクトの一部として、自由ソフトウェアの理念に基づいて開発・配布されています。
沿革
編集GNU Core Utilitiesの歴史は、GNUプロジェクトの開始とともに始まります。1980年代、リチャード・ストールマンがGNUプロジェクトを立ち上げ、Unix系システムの代替となる完全なフリーソフトウェア環境を構築することを目指しました。その一環として、Unixの標準コマンドを再実装する作業が進められました。
当初、これらのコマンドは個別に開発されていましたが、後に「fileutils」「textutils」「shellutils」などのパッケージにまとめられました。2002年、これらのパッケージは統合され、現在の「GNU Core Utilities」としてリリースされました。
coreutilsは、GNUプロジェクトの重要な成果の一つであり、Linuxディストリビューションをはじめとする多くのシステムで採用されています。
POSIXとの違い
編集POSIX(Portable Operating System Interface)は、UNIXの互換性を保証するための標準規格です。GNU Core Utilitiesは、POSIX標準に準拠することを目指していますが、GNU独自の拡張機能も提供しています。
主な違い
編集- 拡張機能: GNU Core Utilitiesは、POSIX標準で規定されている機能に加えて、多くの拡張機能を提供しています。例えば、
ls
コマンドの--color
オプションや、sort
コマンドの--human-numeric-sort
オプションなどが挙げられます。 - 動作の違い: 一部のコマンドでは、POSIX標準とは異なる動作をする場合があります。例えば、
echo
コマンドは、POSIX標準ではエスケープシーケンスを解釈しませんが、GNUのecho
は-e
オプションを指定することでエスケープシーケンスを解釈します。 - コマンドの追加: GNU Core Utilitiesには、POSIX標準には含まれていない独自のコマンドがいくつか含まれています。例えば、
shred
(ファイルを安全に削除する)やshuf
(ランダムな順序で行を並べ替える)などが挙げられます。
これらの違いは、GNU Core Utilitiesの柔軟性と機能性を高める一方で、POSIX標準との互換性を保つための注意も必要です。
コマンド一覧と解説
編集以下に、GNU Core Utilitiesに含まれる主要なコマンドを一覧し、簡単な解説を加えます。
ファイル操作
編集cp
: ファイルやディレクトリをコピーします。mv
: ファイルやディレクトリを移動または名前変更します。rm
: ファイルやディレクトリを削除します。mkdir
: ディレクトリを作成します。rmdir
: 空のディレクトリを削除します。ln
: ハードリンクまたはシンボリックリンクを作成します。
テキスト処理
編集cat
: ファイルの内容を表示します。tac
: ファイルの内容を行単位で逆順に表示します。head
: ファイルの先頭部分を表示します。tail
: ファイルの末尾部分を表示します。sort
: ファイルの行を並べ替えます。uniq
: 重複する行を削除またはカウントします。cut
: ファイルの各行から指定した部分を切り出します。paste
: 複数のファイルを行単位で結合します。
システム情報
編集df
: ファイルシステムのディスク使用量を表示します。du
: ファイルやディレクトリのディスク使用量を表示します。uname
: システム情報を表示します。who
: システムにログインしているユーザーを表示します。whoami
: 現在のユーザーのユーザー名を表示します。
その他
編集まとめ
編集GNU Core Utilitiesは、Unix系システムにおいて基本的な操作を実行するためのツールセットです。POSIX標準に準拠しつつも、GNU独自の拡張機能を提供することで、より柔軟で強力な操作を可能にしています。システム管理者や開発者にとって、これらのツールは日常的な作業を効率的に行うための重要なリソースです。
GNU Core Utilitiesは、自由ソフトウェアとして公開されており、誰でも自由に使用、改変、配布することができます。これにより、世界中の多くのユーザーや開発者がその恩恵を受けています。
このハンドブックが、GNU Core Utilitiesの理解と活用に役立つことを願っています。
附録
編集コマンド一覧
編集GNU Core Utilitiesに含まれるコマンドを以下の表にまとめました。カテゴリー分けは機能的な観点から行っています。
GNU Core Utilities コマンド一覧 コマンド カテゴリー 説明 arch システム情報 システムのアーキテクチャ(CPU)を表示 b2sum ハッシュ・チェックサム BLAKE2bハッシュ値を計算 base32 エンコーディング Base32エンコーディング/デコーディング base64 エンコーディング Base64エンコーディング/デコーディング basename パス操作 ファイルパスからベース名を抽出 basenc エンコーディング 様々なエンコーディング方式の変換 cat ファイル操作 ファイル内容の表示・連結 chcon セキュリティ SELinuxコンテキストの変更 chgrp ファイル権限 ファイルのグループ所有者変更 chmod ファイル権限 ファイルのアクセス権限変更 chown ファイル権限 ファイルの所有者変更 cksum ハッシュ・チェックサム チェックサムとバイト数を計算 comm テキスト処理 2つのソート済みファイルを比較 cp ファイル操作 ファイル・ディレクトリのコピー csplit ファイル操作 パターンに基づいてファイルを分割 cut テキスト処理 ファイルの列を抽出 date 日時操作 日付と時刻の表示・設定 dd ファイル操作 データをブロック単位でコピー・変換 df システム情報 ディスクの空き容量を表示 dir ファイル操作 ディレクトリ内容の簡易リスト表示 dircolors 出力制御 lsコマンドの色設定 dirname パス操作 ファイルパスからディレクトリ名を抽出 du システム情報 ディレクトリのディスク使用量を表示 echo 出力 テキストを表示 env 環境設定 環境変数の表示・設定 expand テキスト処理 タブをスペースに変換 expr 計算 式の評価 factor 計算 数値を素因数分解 false その他 常に失敗を返す fmt テキスト処理 テキストの整形 fold テキスト処理 テキストの折り返し groups ユーザー情報 ユーザーのグループ一覧を表示 head テキスト処理 ファイルの先頭部分を表示 hostid システム情報 ホストの一意の識別子を表示 id ユーザー情報 ユーザーとグループのID表示 install ファイル操作 ファイルのコピーとパーミッション設定 join テキスト処理 共通フィールドに基づいてファイルを結合 link ファイル操作 ハードリンクを作成 ln ファイル操作 リンクを作成 logname ユーザー情報 ログインユーザー名を表示 ls ファイル操作 ディレクトリ内容を詳細表示 md5sum ハッシュ・チェックサム MD5ハッシュ値を計算 mkdir ファイル操作 ディレクトリの作成 mkfifo ファイル操作 名前付きパイプの作成 mknod ファイル操作 特殊ファイルの作成 mktemp ファイル操作 一時ファイル・ディレクトリの作成 mv ファイル操作 ファイル・ディレクトリの移動・名前変更 nice プロセス管理 プロセスの優先度設定 nl テキスト処理 行番号を付けて表示 nohup プロセス管理 ログアウト後もプロセスを継続 nproc システム情報 利用可能なプロセッサ数を表示 numfmt 数値処理 数値のフォーマット変換 od ファイル操作 ファイルの16進ダンプ paste テキスト処理 ファイルを横に結合 pathchk パス操作 パス名の妥当性をチェック pinky ユーザー情報 ユーザー情報の詳細な表示 pr テキスト処理 テキストを印刷用にフォーマット printenv 環境設定 環境変数を表示 printf 出力 書式付き出力 ptx テキスト処理 相互参照インデックスの生成 pwd パス操作 カレントディレクトリのパスを表示 readlink ファイル操作 シンボリックリンクの参照先を表示 realpath パス操作 ファイルの絶対パスを正規化 rm ファイル操作 ファイル・ディレクトリの削除 rmdir ファイル操作 空のディレクトリを削除 runcon セキュリティ 特定のSELinuxコンテキストでコマンド実行 seq 数値処理 数列の生成 sha1sum ハッシュ・チェックサム SHA-1ハッシュ値を計算 sha224sum ハッシュ・チェックサム SHA-224ハッシュ値を計算 sha256sum ハッシュ・チェックサム SHA-256ハッシュ値を計算 sha384sum ハッシュ・チェックサム SHA-384ハッシュ値を計算 sha512sum ハッシュ・チェックサム SHA-512ハッシュ値を計算 shred ファイル操作 ファイルを安全に削除 shuf テキスト処理 ランダムに並べ替え sleep その他 指定時間処理を停止 sort テキスト処理 テキストを並べ替え split ファイル操作 ファイルを分割 stat システム情報 ファイルの詳細情報を表示 stdbuf その他 標準入出力のバッファリングを制御 stty 端末操作 端末の設定変更 sum ハッシュ・チェックサム チェックサムとブロック数を計算 sync システム操作 ディスクキャッシュを同期 tac テキスト処理 ファイルを逆順に表示 tail テキスト処理 ファイルの末尾部分を表示 tee 出力 出力を同時にファイルとコンソールに送信 test その他 ファイルテストと条件判定 timeout プロセス管理 コマンドの実行時間を制限 touch ファイル操作 ファイルのタイムスタンプ更新 tr テキスト処理 文字の置換・削除 true その他 常に成功を返す truncate ファイル操作 ファイルサイズの変更 tsort テキスト処理 トポロジカルソート tty 端末操作 端末のパスを表示 uname システム情報 システム情報を表示 unexpand テキスト処理 スペースをタブに変換 uniq テキスト処理 重複行の削除 unlink ファイル操作 ファイルを削除 users ユーザー情報 ログインユーザーを表示 vdir ファイル操作 lsの詳細表示版 wc テキスト処理 行・単語・文字数をカウント who ユーザー情報 ログインユーザーの詳細情報 whoami ユーザー情報 カレントユーザー名を表示 yes その他 繰り返し文字列を出力 md5sum.textutils ハッシュ・チェックサム MD5ハッシュ値を計算(旧バージョン)
下位階層のページ
編集- arch
- b2sum
- base32
- base64
- basename
- basenc
- cat
- chcon
- chgrp
- chmod
- chown
- cksum
- comm
- cp
- csplit
- cut
- date
- dd
- df
- dir
- dircolors
- dirname
- du
- echo
- env
- expand
- expr
- factor
- false
- fmt
- fold
- groups
- head
- hostid
- id
- install
- join
- link
- ln
- logname
- ls
- md5sum
- mkdir
- mkfifo
- mknod
- mktemp
- mv
- nice
- nl
- nohup
- nproc
- numfmt
- od
- paste
- pathchk
- pinky
- pr
- ptx
- pwd
- readlink
- realpath
- rm
- rmdir
- runcon
- sha1sum
- sha224sum
- sha256sum
- sha384sum
- sha512sum
- shred
- shuf
- sleep
- sort
- split
- stat
- stdbuf
- sum
- sync
- tac
- tail
- tee
- test
- timeout
- touch
- tr
- true
- truncate
- tsort
- tty
- uname
- unexpand
- uniq
- unlink
- vdir
- wc
- who
- whoami
- yes