目次

はじめに

この本は何?
対象読者
ご注意
そもそもCoreutilsとは
本稿の構成
Coreutilsのリンク集
免責事項
表記関係について
底本について

よくあるオプション

その他、Coreutilsの共通したこと

ファイルの中身の出力

cat
tac
nl
od
base64
base32
basenc

ファイルの書式

fmt
pr
fold

ファイルの一部を出力

head
tail
split
csplit

ファイルの要約系

wc
sum
cksum
b2sum
md5sum
sha系

ファイルの中身を並べる

sort
shuf
uniq
comm
ptx
tsort

テーブルの欄操作

cut
paste
join

キャラクター操作

tr
expand
unexpand

ファイルリスト表示

ls
dir
vdir
dircolors

基本的操作

cp
dd
install
mv
rm
shred

スペシャルファイルタイプ

link
ln
mkdir
mkfifo
mknod
readlink
rmdir
unlink

ファイルの属性を変更

chown
chgrp
chmod
touch

ディスク使用状況

df
du
stat
sync
truncate

文字を表示

echo
printf
yes

条件

false
true
test
[
expr

リダイレクション

tee

ファイル名の操作

basename
dirname
pathchk
mktemp
realpath

現在の環境

pwd
stty
printenv
tty

ユーザの情報

id
logname
whoami
groups
users
who
pinky

システムコンテキスト

date
arch
nproc
uname
hostname
hostid
uptime

SELinux

chcon
runcon

変更コマンド

chroot
env
nice
nohup
stdbuf
timeout

プロセスコントロール

kill

遅延

sleep

数値操作

factor
numfmt
seq

答え合わせ

date
factor

おわりに

謝辞


はじめに

 「情報というのは面白いもので、こちらから探しにいかないとないのと同じで、ゲームなどでも攻略に行き詰まったりして、ネットで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のマニュアルのことを指します。

そもそもCoreutilsとは

 「コアユーティルズ」と読みます。 lscat など、Linuxでは欠かせないコマンドをまとめたパッケージです。 Fileutils, Shellutils, Textutilsというutilsを統合したものです。

 MacにもCoreutilsと同じく、lscat などのコマンドがあります。こちらはBSD由来なので、GNU Coreutilsの実装と異なっています。 MacにGNU Coreutilsをインストールしたいときは、homebrewでインストールできます。

brew install coreutils

 なお、既存のコマンドと名前がかぶるので、プレフィクスにgがついています。 ls だったら gls となっています。 od だった場合は……?

本稿の構成

 最初にCoreutilsパッケージのコマンドに共通のオプションを解説し、Coreutilsのマニュアルの通りにコマンドをならべて解説しています。一部、冗長なところがあるのでまとめたりしています。問題ないでしょう。

Coreutilsのリンク集

ソース

 ・upstream:http://git.savannah.gnu.org/gitweb/?p=coreutils.git

 ・ミラー(Github):https://github.com/coreutils/coreutils/

zipでダウンロード

 ・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/

メーリングリストは

 http://lists.gnu.org/archive/html/coreutils/

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

底本について

 本書籍は、技術系同人誌即売会「技術書典6」で頒布された『解説CoreUtils 第7版』を底本としています。


1. なかなか新しい情報を得ようとしない:新しい情報が得られる便利な仕組みはいくつもあるものの、そういうツールが増えれば増えるほど「自分にとって都合のよい新しい情報」しか目に入らなくなるのが人間の愛おしさである。

2. 蝉丸P (2012). 蝉丸Pのつれづれ仏教講座 株式会社エンターブレイン p.263

3. http://www.gnu.org/software/coreutils/

4. http://www.gnu.org/software/coreutils/manual/

5. CentOS 6.5のイメージがあり、yum updateすると 6.6になりました

6. /etc/issue 曰く、 Amazon Linux AMI release 2014.03

7. 正直なところ、かなり量もあってあんまり面白くないです

試し読みはここまでです。
この続きは、製品版でお楽しみください。