macOS/Raspbian使ってて見つけた小ネタ的コマンド達

# このページについて
このページは、僕がmacOSをいじっていてたまたま見つけたコマンド達のリスト、それらについてわかったことを書いているものです。manページの抜粋、又はggった結果を載せてあります。全てデフォルトでmacに入っている（んだと思う）ものになります。
**実用性は保証しません。**
ただただ楽しいだけです。うん。

#環境
 macOS high Sierra 10.13.2
これよりも昔のバージョンには存在しないとか、そういうわけではございません。ものによるけど。

# List
* 今日は何の日？的なものを表示する(calendar)
* Macでファイルをスマートに探す(mdfind)
* CLI上にダイアログを生成する(whiptail)
* ファイルサイズを取得する(wc)


# 今日は何の日？的なものを表示する(calendar)
`$ calendar [-aABFftW]  ` 
カレンダーというよりは、リマインダーに近いです。
manページには、"reminder service"と書かれています。もう自分で言っちゃってます。
カレンダーと聞くとcalを思い浮かべる人はいるかもしれませんが、calとは根本的に（？）色々違います。

## 概要
　calendarは、カレントディレクトリに*calendar*というファイルがあるか確認し、あればそのファイル、なければ*~/.calendar/calendar*内の、今日の日付か明日の日付で始まる行を出力します。
デフォルトで複数のカレンダーが用意されています。が、日本向けのものはありません（USとかUKとかなんか色々あるのに。）
**デフォルトのカレンダーファイルは、*/usr/share/calendar/*内に置かれています。**
日本用カレンダーは、ggってもなかったので気が向いたら作ります。

|           |                             |
|:-:        |:-:                          |
| OS        | macOS X /Raspbian           |
| 最終更新日  | 2002/6/13(manページ作成日時)  |

## 実行した感じ
```sh:calendar実行結果サンプル
$ Cjmac:~ cj$ calendar
Dec 17  William Safire (Safir) born, 1929
Dec 18  Konrad Zuse died in Hnfeld, 1995
```
現在FreeBSD/computerカレンダーを読み込む対象にしているのでFreeBSDやcomputer関係の日付が出ています。（カレンダーについては後述）

## 雑談
 デフォルトのカレンダーには、アメリカ/イギリス/オーストラリアなどの祝日や、コンピューター関連の歴史的な日、freeBSD記念日などまでがありました。
が、特に面白かったのがcarendar.lotr、そう、**Load-Of-The-Ringのカレンダー**があったんです！！(僕見たことないけど。)  
シリーズのファンには馴染み深いものがあるのではないでしょうかね。


# Macでファイルをスマートに探す(mdfind)
`$ mdfind [-live] [-count] [-onlyin directory] [-name fileName] query `
queryに対応する情報を持つファイルを探してきてくれるコマンドです。
the central metadata store（とかいうところ)からqueryの情報を含むファイルを見つけ、パスを返してくれます。

## 概要
ファイル名を指定すると、そのファイルのパスを教えてくれます。僕はこの用途でいつも使っています。
そのほかにも、指定した文字列をファイル内に含むファイルすら探してきてくれます。便利。
`$ mdfind file-name`が一番よく使う。

|           |                             |
|:-:        |:-:                          |
| OS        | Mac OS X                    |
| 最終更新日  | 2004/6/10(manページ作成日時)  |

## 実行した感じ
```sh:mdfindの実行結果サンプル

$ Cjmac:~ cj$ mdfind texteditor
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/Carbon/MacTextEditor.pyo
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/Carbon/MacTextEditor.pyc
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/Carbon/MacTextEditor.py
```


# CLI上にダイアログを生成する(whiptail)
CLI上で、ダイアログを出すコマンド。選択肢式にしたり、文字入力ができたり、メッセージを表示するだけだったりとオプションも豊富

## 概要
シェルスクリプトからダイアログを表示します。サポートされるダイアログの種類は

* yes/no ボックス
* menu ボックス
* input ボックス
* message ボックス
* text ボックス
* info ボックス
* checklist ボックス
* radiolist ボックス
* gauge ボックス
* password ボックス

と豊富。

|     |                                    |
|:-:  |  :-:                               |
| OS  | raspbian                           |
| 最終更新日  | 2007/01/31(manページ作成日時)  |


## 実行した感じ

```sh:whiptailの実行結果サンプル
$ whiptail --yesno "this's yes/no boxes 10 20
```
(実行環境と、記事を書ける環境が異なるため、今はサンプルがおけません...が、面白いですよ)


# ファイルサイズを取得する(wc)
指定されたファイルの行数、単語数、バイト数を表示する

## 概要
指定されたファイルの行数、単語数、バイト数を一列にして表示する

```shell-session
$ wc something
  <行数> <単語数> <バイト数> <file path>
$ wc -c something #バイト数だけ表示する
  <バイト数> <file path>
$wc -w something #単語数だけ表示する
  <単語数> <file path>
$wc -l something #行数だけ表示する
  <行数> <file path>

#file pathが邪魔だよと思ったら、対象のファイルを標準入力から入れてやる。つまり
$ wc -c < something
  <単語数>
#となる。他についても同様
```

|  |  |
|:-:|:-:|
| OS  | raspbian,mac  |
|  最終更新日 | 2015/3(mac:2005/02/23)  |