ホーム ざれごと ワシントン州 ツール NT豆知識 Win32プログラミングノート 私的用語 ジョーク いろいろ ゲーム雑記 Favorites 掲示板 Mail
DOS/Windows を使いこなしていても、最近身近になった UNIX のちょこっとした Tips をご存じない方もいる模様。
多分、市販の解説本にもいろいろと書いてあるんだろうけど、古い知識でよろしければちょっと基本的なこと(?)など書いておいてみようかな〜というところです。
Windows NT/XP のコンソールに似た機能があってよく知られていると思われるものは特に書いたりしません。
思いの向くまま、つれづれに。
記憶に頼って書くところもあるので、それなりの目で眺めてくださるよう。
Alt + Fn (ファンクションキー) あたりで仮想コンソールが切り替わります。 インストールの最中など特に便利。
SCO UNIX や Linux でサポートされていました。 PC 用 BSD でもサポートされているらしい。
私は sh、ksh 使いでしたので…、そのおつもりで。
シングルユーザモードでブートしたりすると、ファイルシステムがまうんとされておらず普段使いのコマンドが使えなかったりします。 ls なんて復旧作業には欠かせませんが、使えないこともあるわけです。
さふいふときは、
echo *
のように、シェルにファイル名を展開してもらうことができます。
プロセスを起動するとき、末尾に "&" をつけるとバックグラウンドで動作するのはご存知として。
Ctrl+Z は DOS/Windows では EOF (End Of File) の意味になりますが、たいていの UNIX では、TTY から SIGSTOP を送るようにアサインされていると思います。 Ctrl+Z ではフォアグラウンドプロセスを一旦停止でき、シェルのプロンプトに戻ってきます。 ksh には jobs というコマンドがあって、サスペンド中・バックグラウンド実行中のプロセス一覧を表示します。 fg、bg というコマンドがあって、fg %1 のようにプロセスの番号を指定してフォラグラウンドに持ってくることができます。 バックグラウンドで実行を続けさせるには、bg の方を使います。
とまぁこんな風に、UNIX のシェルは CUI プロセスの管理が多彩です。
ログイン直後の状態で、EOF は Ctrl+D に割り当てられているのが普通だと思うのですが、(ログオンシェル以外の)シェルのプロンプトで Ctrl+D をたたくと、いきなりシェルが終了してしまいます。 これを防ぐには、ログオンシェルとおなじ扱いをさせればよかったような気もしますが、ksh / bash あたりでは環境変数で制御できた気がします。 うぅ、思い出せない。
あ、ここらへんのコントロール文字列は stty コマンドで確認したり変更したりできます。
ksh の環境変数には、シェルローカルのものと外部にもエクスポートされるものの二種類があります。 明示的に export しないとシェルローカルだったと思いますが、シェルのコマンドラインオプションで変更できたかもしれない。
あ、プロンプトを設定するのは環境変数 PS です。
プロセスのプライオリティを下げてプロセスを起動する nice というコマンドがあります。 マシンが暇なときにだけ CPU を使って計算してほしい、なんていうバックグラウンドな処理に使うといいかも。
蛇足ですが、nice はデフォルトではプライオリティを下げますが、オプションで上げることもできます。
これはちょっと問題になることもあるのですが、nohup からプロセスを起動すると、SIGHUP を無視して実行するようになります。 つまり、ログアウトした後でもプロセスの実行を続けさせることができます。
何かの折に(バイナリファイルを cat してしまったとか)、tty/pty の表示がおかしくなることがあります。 そのときは、stty sane を試してください。 直ることがあります。
シェルスクリプトを見ていると、" やら ' やら ` やら記号が良く出て来ます。
なんだか違いが分からない?
実は結構違うのです。
さて、環境変数 foo に bar という値がセットされているとしましょう。
$foo is bar -> bar is bar "$foo is bar " -> bar is bar (ひとかたまり、あるいは複数の引数に分割されずに扱われます) '$foo is foo' -> $foo is foo
というように、シングルクオートとダブルクオートの違いは、特殊文字が展開されるかどうかなんですね。
バッククオートは少し違っていて、コマンドの実行結果を返します。 たとえば、
cat abc*.c cat `echo abc*.c`
は同じような動きをします。
ホーム ざれごと ワシントン州 ツール NT豆知識 Win32プログラミングノート 私的用語 ジョーク いろいろ ゲーム雑記 Favorites 掲示板 Mail