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: 現在のユーザーのユーザー名を表示します。

その他

編集
  • date: 現在の日付と時刻を表示または設定します。
  • echo: 指定した文字列を表示します。
  • sleep: 指定した時間だけ処理を停止します。
  • true/false: 常に成功/失敗するコマンド(シェルスクリプトで使用)。

まとめ

編集

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ハッシュ値を計算(旧バージョン)

下位階層のページ

編集