GNU Core Utilities

GNU Core Utilities (Coreutils) について



GNU Core Utilities、通称Coreutilsは、Unix系オペレーティングシステムの中核をなす、基本的なコマンド群を提供するプロジェクトです。`cat`、`ls`、`rm`といった、日々の作業で頻繁に利用されるユーティリティプログラムが含まれており、これらのプログラムは、ファイル操作、テキスト処理、シェル操作など、システム運用の基盤を支えています。

以前は、`fileutils`、`textutils`、`shellutils`という三つのプロジェクトに分かれていましたが、現在ではこれらが統合され、Coreutilsとして一括管理されています。

Coreutilsの特徴



Coreutilsのコマンドは、シェルから直接実行できます。例えば、`rm`コマンドは、引数に指定されたファイルを削除する機能を持っています。これらのコマンドは単独で動作するだけでなく、パイプ `|` を利用して複数のコマンドを組み合わせることで、より複雑な処理を実現することが可能です。

共通オプション



Coreutilsに含まれる多くのコマンドには、共通のオプションが用意されています。

`--help`: コマンドのヘルプ情報を表示します。
`--version`: コマンドのバージョン情報を表示します。
`--`: このオプション以降の引数は、すべてオペランド(処理対象)として扱われます。

Coreutilsのコマンドは、環境変数`POSIXLY_CORRECT`が設定されていない限り、引数の順序に関わらず、オプションを先に解釈し、その後にオペランドを解釈します。これにより、`ls /usr -l` と `ls -l /usr` は同じ結果を返すことが保証されます。この挙動は、Unix系の他のツールと比較して、一貫性のある動作を提供する点で特徴的です。

Coreutilsに含まれる主なコマンド



Coreutilsには、以下のような多種多様なコマンドが含まれています。

ファイル操作ユーティリティ


`chgrp`: ファイルの所有グループを変更します。
`chown`: ファイルの所有者を変更します。
`chmod`: ファイルやディレクトリのアクセス権を変更します。
`cp`: ファイルやディレクトリをコピーします。
`dd`: ファイルのコピーと変換を行います。
`df`: ディスクの空き容量を表示します。
`dir`: `ls`コマンドと同等の機能を提供します。
`dircolors`: `ls`コマンドの表示色を設定します。
`install`: ファイルをコピーし、属性を設定します。
`ln`: リンクを作成します。
`ls`: ディレクトリ内のファイル一覧を表示します。
`mkdir`: ディレクトリを作成します。
`mkfifo`: 名前付きパイプ(FIFO)を作成します。
`mknod`: 特殊ファイル(デバイスファイルなど)を作成します。
`mv`: ファイルを移動します。
`rm`: ファイルを削除します。
`rmdir`: 空のディレクトリを削除します。
`shred`: ファイルの内容を破壊し、復元を困難にします。
`sync`: ファイルのキャッシュを物理的に書き込みます。
`touch`: ファイルのタイムスタンプを変更します。
`vdir`: 詳細なディレクトリ内容を表示します (`ls -l` と同等)。

テキスト操作ユーティリティ


`cat`: ファイルの内容を表示したり、ファイルを連結して表示します。
`cksum`: ファイルのチェックサムとファイルサイズを計算します。
`comm`: 2つのファイルを比較し、共通の行や異なる行を表示します。
`csplit`: ファイルを文脈に基づいて分割します。
`cut`: 各行から指定された部分を抽出して表示します。
`expand`: タブをスペースに変換します。
`fmt`: テキストを整形して段落を作成します。
`fold`: 入力行を指定された幅で折り返します。
`head`: ファイルの先頭部分を表示します。
`join`: 2つのファイルを指定されたフィールドに基づいて結合します。
`md5sum`: MD5ハッシュ値を計算・検証します。
`nl`: 行番号を付けてファイルの内容を表示します。
`od`: ファイルを8進数や他の形式で表示します。
`paste`: ファイルの内容を行単位でマージします。
`pr`: ファイルを印刷用に整形します。
`ptx`: 整列済み索引を作成します。
`sha1sum`: SHA-1ハッシュ値を計算・検証します。
`sort`: テキストファイルをソートします。
`split`: ファイルを指定したサイズで分割します。
`sum`: チェックサムとブロック数を表示します。
`tac`: ファイルを逆順に表示します。
`tail`: ファイルの末尾部分を表示します。
`tr`: 文字の置換、削除、圧縮を行います。
`tsort`: 有向グラフのトポロジカルソートを行います。
`unexpand`: スペースをタブに変換します。
`uniq`: ソート済みのファイルから重複行を削除します。
`wc`: ファイルのバイト数、単語数、行数を表示します。

シェルユーティリティ


`basename`: ファイル名からディレクトリと拡張子を取り除きます。
`chroot`: ルートディレクトリを変更します。
`date`: 現在の日付と時刻を表示または設定します。
`dirname`: パス名からディレクトリ部分を取り出します。
`du`: ファイルのディスク使用量を表示します。
`echo`: テキストを標準出力に表示します。
`env`: 環境変数を一時的に設定または表示します。
`expr`: 式を評価します。
`factor`: 数値を素因数分解します。
`false`: 常に失敗を返すコマンドです。
`groups`: ユーザーが所属するグループを表示します。
`hostid`: ホストの識別子を表示します。
`id`: ユーザーおよびグループのIDを表示します。
`link`: ファイルに新しい名前をつけます。
`logname`: ユーザーのログイン名を表示します。
`nice`: プロセスの優先度を変更します。
`nohup`: ログアウト後もコマンドを実行し続けます。
`pathchk`: ファイル名の可搬性をチェックします。
`pinky`: `finger`コマンドの軽量版です。
`printenv`: 環境変数を表示します。
`printf`: フォーマットされた出力を表示します。
`pwd`: 現在のディレクトリを表示します。
`readlink`: シンボリックリンクの値を表示します。
`seq`: 連番を表示します。
`sleep`: 指定された時間だけ処理を中断します。
`stat`: ファイルの状態を表示します。
`stty`: 端末の設定を変更または表示します。
`tee`: 標準入力を標準出力とファイルにコピーします。
`test`: ファイルの種類や値を比較します。
`true`: 常に成功を返すコマンドです。
`tty`: 端末名を表示します。
`uname`: システム情報を表示します。
`unlink`: ファイル名を削除します。
`users`: 現在ログインしているユーザーを表示します。
`who`: 現在ログインしているユーザーの詳細を表示します。
`whoami`: ユーザーのログイン名を表示します。
`yes`: 特定の文字列を繰り返し出力します。
`[`: `test`コマンドの別名として使用され、`if [ expression ]` のように用いられます。

関連項目



BusyBox: 複数のユーティリティを一つの実行ファイルにまとめたツールボックスです。
GNU Binutils: バイナリ関連のユーティリティ群です。

外部リンク



GNU Core Utilities公式ページ

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。