初めてUNIX系のOSに触ったのは大学に入学してLinuxを使った時なので10数年立ちます。
小さなプログラムをパイプで組み合わせて複雑なことを行う事に感動した事を覚えています。
そんなUNIXの思想
- スモール・イズ・ビューティフル
- 一つのプログラムには一つのことをうまくやらせる
- できるだけ早く試作する
- 効率よりも移植性を優先する
- 数値データはASCIIフラットファイルに保存する
- ソフトウェアを梃子として使う
- シェルスクリプトによって梃子の効果と移植性を高める
- 過度の対話的インタフェースを避ける
- すべてのプログラムをフィルタとして設計する
一つのことを上手くやる小さなプログラムはとても使い勝手が良いです。
そんなプログラムをターミナルで組み合わせてサクッとやりたい事ができると気持ちが良いです。
WindowsにはできないUnix系OSの良さがそこにあると思います。
(最近はWindowsでもLinixのシェルが動くので境界は曖昧になりつつありますが)
僕がたまに手遊びするのはターミナルでパスワードの文字列を作ることです。
ランダムな文字列を生成するのはプログラムを書いてもできますが、ターミナルがあれば以下のように作成できます。
```
$ cat /dev/urandom | strings | grep -Eo "[0-9a-zA-Z]" | grep -Ev "[IlOo]"| head -n 8 | paste -s -d'\0' -
```
cat, strings, grep, head, pasteコマンドをパイプで繋げて実現しています。
トリッキーなのはシェル芸と言われますが、興味のある方は
「シェルプログラミング 実用テクニック」などを読むと面白いと思います。
個人的にはシェルスクリプトの文法がもう少しわかりやすいといいと思います。
(たまに作成すると文法が少し特殊でとっつきにくい)
この本では自分の道具箱を持っていて代々色々なマシンに移植してきたと記載されていましたが、確かに自分も自分のbinフォルダや.bashrcなど持っていて、代々のmacやLinuxに移植して使っています。
プログラムを作る上で大切な事もあるので、
UNIXについて知っている人も、興味ある人も一度読んでおくと良いと思います。
| 項目 | 評価(5段階) |
| ---------------------- | :-------------: |
| 内容 | 4 |
| 読みやすさ | 3 |
| オススメ度 | 3 |
0 件のコメント :
コメントを投稿