はじめに
よくあるオプション
ファイルの中身の出力
ファイルの書式
ファイルの一部を出力
ファイルの要約系
ファイルの中身を並べる
テーブルの欄操作
キャラクター操作
ファイルリスト表示
基本的操作
スペシャルファイルタイプ
ファイルの属性を変更
ディスク使用状況
文字を表示
条件
リダイレクション
ファイル名の操作
現在の環境
ユーザの情報
システムコンテキスト
SELinux
変更コマンド
プロセスコントロール
遅延
数値操作
答え合わせ
おわりに
「情報というのは面白いもので、こちらから探しにいかないとないのと同じで、ゲームなどでも攻略に行き詰まったりして、ネットでWikiを調べてみたり、攻略本を探してようやく出てくるという性質でして、人間、必要に駆られないと、なかなか新しい情報を得ようとしないものです1。」2
この本は、GNU Coreutils3 の執筆時点の最新のマニュアル4 をひと通り眺めてみて、解説をしてみようというコンセプトの本に書かれた本です 。 Coreutils 8.31 (2019-03-10 release) の内容まで盛り込んでいます。
Linuxを使ってサーバを扱う仕事をしていると、シェルスクリプトやコマンドは避けては通れません。 そのため、よく使うコマンドを調べていたところ、Coreutilsにたどり着きました。 Coreutilsのマニュアルを改めて読んでみると、知らなかったコマンドや、使ったことがないオプションを見つけました。
普段Linuxを使っているけど、このコマンドは知らなかった、こんな使い方ができるのか、という発見が一つでもあれば幸いです。 筆者がよく使うコマンドや Tips 、実行例も載せています。それでは、Coreutilsの世界へようこそ。
基本的に、ソースを読んで実装部分などの話はありません。コマンド・オプションの使い方を説明しています。
バージョンにより、使えないコマンドやオプションがあります。本書はバージョン8.31のマニュアルを元にコマンドの解説を行っています。
また、筆者が検証した環境は、DigitalOcean(CentOS 6.6)5 と amazon EC26 のマイクロインスタンスです。パッケージはほぼデフォルトのため、CentOS 6.6ではCoreutils 8.4、amazon EC2では8.21となっています。
本文中のコマンドのサンプルは、ほとんどこの環境で実行していますが、使うときは誰にも迷惑をかけないところで実験・検証してください。
この本では、Coreutilsのマニュアルの冗長な部分はできるだけ端折って、面白そうなところや、実践的な部分を取り上げました。時間があれば、ぜひCoreutilsのマニュアルを上から下まで読んでみてください7 。新たな発見があると思います。 また、本書の都合上、Coreutilsに含まれないコマンドも載っています。
本文中の「原文」はCoreutilsのマニュアルのことを指します。
「コアユーティルズ」と読みます。 ls や cat など、Linuxでは欠かせないコマンドをまとめたパッケージです。 Fileutils, Shellutils, Textutilsというutilsを統合したものです。
MacにもCoreutilsと同じく、ls や cat などのコマンドがあります。こちらはBSD由来なので、GNU Coreutilsの実装と異なっています。 MacにGNU Coreutilsをインストールしたいときは、homebrewでインストールできます。
brew install coreutils
なお、既存のコマンドと名前がかぶるので、プレフィクスにgがついています。 ls だったら gls となっています。 od だった場合は……?
最初にCoreutilsパッケージのコマンドに共通のオプションを解説し、Coreutilsのマニュアルの通りにコマンドをならべて解説しています。一部、冗長なところがあるのでまとめたりしています。問題ないでしょう。
・upstream:http://git.savannah.gnu.org/gitweb/?p=coreutils.git
・ミラー(Github):https://github.com/coreutils/coreutils/
・http://ftp.gnu.org/gnu/coreutils/ または
https://github.com/coreutils/coreutils/releases
・FAQ
http://www.gnu.org/software/coreutils/faq/coreutils-faq.html
http://www.gnu.org/software/coreutils/manual/
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。
本書籍は、技術系同人誌即売会「技術書典6」で頒布された『解説CoreUtils 第7版』を底本としています。