/bin/sh

これからUNIXやLINUXの管理者、技術者を目指すなら、もうひとつ抑えておきたいことがある。シェルスクリプトである。シェルスクリプトも各種あるが、もし仕事や環境上の大きな制約がない限りは、管理者は、shを使う習慣をつけたほうがいいだろう。なぜなら、起動時、ランレベルの変更の時に走行するシェルスクリプトは、基本shだからだ。昔のSUN OSだと、デフォルトだろrootのログインシェルがcshだったりして、ツールのシェルをどっちで(sh or csh)作るか悩んだことがある。普通はshで作るのだが、もしかしたら、この環境ではcshにするべきなんだろうか?と。結局、オペレーションはcshのままだったが、スクリプトはshで書いた。
サーバー管理の仕事は、自分でツールを作成しないとルーチンワークで、死ぬ。味方になってくれる一番の相棒は、シェルスクリプトである。そりゃ、perlでもphpでもrubyでも、好きな言語処理系を入れればいいじゃんと思うかもしれないが、「余計なものを入れない」は、セキュリティの基本である。シェルだけは、shだけは、どんなUNIX LINUXでも必ずある。bashはshと互換性があるので、特殊な拡張機能をスクリプト内部で使わないなら、それで問題ない。

関連キーワード

関連ページ

UNIXとLINUXの違い
HP-UX AIX SolarisなどのUNIXとLINUXを、大きな違いがあると思っているサーバーエンジニア、ネットワークエンジニアは少なくないようだ。「同じだろ」と言わんものなら、「このスクリプトの位置が違う、パラメーターが違う」とムキになってその差を説く人もいる。まあ、HPやIBMやSUNの技術者や営業が、「いや我社のOSは安定性、信頼性が他社とは格段の差が」というのはアリだと思うけどもw
UIとシステムコール
UNIXもLINUXも、外面のGUIや、追加された独自コマンド、パラメータ、ディレクトリ構成の差があっても、それはマニュアルをみればわかる話だ。OSの機能を実装する思想、発想は、共通していることのほうが多いのだ。単純に言えば、manの man(2)システムコール、man(3)のライブラリは共通部分が多いのだ。この共通点を考慮せず、コマンドやGUIツールの差から、UNIXとLINUXは違うものだ・・
UNIX LINUXとC
UNIXだろうがLINUXだろうが、管理者としてセキュリティを守り、運用をする立場にいる人は、c言語を触り、UNIXシステムコールを使ったプログラミングは必ずやっておくべきだと思う。man(2)のエントリ項目については、名前だけで、だいたい何をやるものだったか思い浮かぶようになるはずだ。これがしっかりわからないと、man(4)のデバイス、man(5)のファイルフォーマット、man(7)環境変数など
/bin/sh
これからUNIXやLINUXの管理者、技術者を目指すなら、もうひとつ抑えておきたいことがある。シェルスクリプトである。シェルスクリプトも各種あるが、もし仕事や環境上の大きな制約がない限りは、管理者は、shを使う習慣をつけたほうがいいだろう。なぜなら、起動時、ランレベルの変更の時に走行するシェルスクリプトは、基本shだからだ。昔のSUN OSだと、デフォルトだろrootのログインシェルがcshだった