Previous Topへ Next

その他の便利なUNIXコマンド/And more useful UNIX commands

コンソールを使う


ここでいうコンソールというのは、MacOSXにバンドルされているConsoleというアプリのことではありません。


CUIコマンドラインを使う環境をMacOSXではterminalと呼びますが、このterminalもアプリであることに気がつきましたか?

これをterminalと呼ぶのは、これは一種のエミュレータだからです。


エミュレータというのはあるOS環境の上で別の環境を再現して、その操作環境を実現する技術のことで有名なところではMacOSの上でWindows環境を再現するVirtualPCなんかがあります。

このterminalというアプリもMacOSXの上でUNIXのCUI環境を再現するエミュレータだということができます。
(VirtualPCに比べたら、ベースはUNIXですからずっとネイティブな環境ではありますが)


かつてのUNIX機は中央に大型の演算機があり、それをいくつかのターミナルというディスプレイとキーボードがついた端末でコントロールしていたので、そのターミナルの名残でしょう。
ターミナルはそれ単体では何の機能も果たさないけれども、キーボードとディスプレイがついていたという意味では今日のパソコンと似たような外観ではありました。

その端末に処理リソースを提供していたのはUNIXを内蔵した本体だったのですが、今ではMacの小さな本体の中にそのUNIXのシステムも全部入ってしまい、ターミナルは独立した端末からヴァーチャルな環境に変わってしまいました。

これに対して、GUIに依存しないで直接カーネルをコントロールするコンソールという環境も用意されています。

GUI環境でログアウトしてログイン画面を呼び出して下さい。
そこでアカウントを選んでログインする設定にしている人は、「その他」というアカウントに入って下さい。
そこでアカウント名に
>console
と入力して下さい。
ログインのパスワードを入力すると真っ黒な画面にお馴染みの
Welcome to DARWIN
というコマンド画面が現れてきます。


前項でシングルユーザモードでコマンドを使う方法を解説しましたが、このコンソールはシングルユーザモードではなく最初に誰のアカウントでログインするか聞いてきます。terminalと同じマルチユーザ画面です。
例えばマルチユーザを設定している人は別のユーザとしてもログインすることもできます。

シングルユーザモードはファイルシステムチェックなどできることが限られています。
セキュリティを高めるためで、シングルユーザモードでユーザのファイル操作とかはできません。
このコンソール画面ならterminalでできることは全てできます。

terminalは上記のようにGUIに依存するエミュレータなので、GUI環境そのものが不調な時に、例えばterminalを起動することが困難だとかいう場面も考えられます。
そんな時に一度GUIからログアウトして抜け出して、メンテナンス動作をしたいというような状況で役立ちます。



めったに使うことは無いかもしれませんが、こういうことができるということを知っていても損は無いと思います。









UNIXのコマンドは覚える必要が無いということを前にも書きました。
そうはいってもうろ覚えのコマンドの内容が何だったか知りたい時があります。

その時にマニュアルがあれば良いのにと思いますが、部厚いUNIX本をなかなかそういう時に開いてみようという気にはなりません。

実はマニュアルはCUI環境の中に内蔵されています。
ここではマニュアルを呼び出すmanコマンドについて説明します。

例えば前出のlsというコマンドはどういう意味だったか、lsコマンドにはどういうオプションがあるのか調べたいとします。
こういう時には、
man ls
と入力して下さい。
英語で用意されたUNIXマニュアルが表示されます。




これでcdやunameなどの前出のコマンドを調べてみて下さい。

ただし、このマニュアルは英語のネイティブスピーカーが読んでも理解しにくい「UNIX語」で書かれています。
ましてや英語のネイティブでない私にも理解できない表現がかなり含まれています。
こういうマニュアルをせめて日本語で表示してくれるとありがたいのにと考える人も多いかと思います。

そこで日本語のマニュアルも用意されています。
jmanというパッケージをインストールして下さい。
ここからダウンロードできます。



このjman-pagesとjmanという二つのパッケージをインストールして下さい。
jman.pkgは日本語マニュアルを表示するコマンドと関連のファイルがパックされています。
jman-pages.pkgはjmanコマンドで表示される頁の中身が格納されています。
必ずこの二つをセットでインストールして下さい。

(このCUI環境で開発者を目指そうという人にはセクション3の技術情報も含んだ頁もパッケージの中に用意されています。興味のある方はあわせてインストールして見るのも良いかも知れません。それはともかくjmanを使うには最低限この二つは必要です)

手順はインストーラの指示に従ってひたすらOKボタンを押し続けるだけですので簡単です。

これで今度は
jman ls
と入力して下さい。
こういう日本語のマニュアルが表示されましたか?




このマニュアル画面から抜け出したい時にはQキーを叩いて下さい。
これでまたプロンプトが表示されるはずです。

この日本語のマニュアルも難解なUNIX語で書かれています。
それでも英語でない分だけいくらか読みやすいはずです。
またこのキャプチャーを見ていただいたら解るように、コマンドに付随するオプションの解説もかなり詳細に書かれています。
こういう解説を読み下すことで少しでもUNIXへの理解になれば良いと思います。

そういう意味でこういう日本語のマニュアルが用意されているというのは心強いものがあります。
活用してみてはいかがでしょうか?








ここではCPUを占拠しているアプリの管理をterminalからする動作について解説します。

続けて色々アプリを使っているとメモリそのものにフラグメンテーションができて、充分な物理メモリ量があるはずなのに、Swapfileを作り始めたり動作が遅くなってくるという問題が起きます。

そのメモリの占有量を監視したり、またCPUもメモリリークが起きていないかなど監視することが必要になってきます。

そこで各アプリのメモリ占拠量、CPU占拠量をリアルタイムで監視するコマンドがあります。
GUIでもProcess viewerというアプリでこれができますが、terminalを使うとさらに詳細な情報を得られます。

コマンドは
top
です。
これで実行してみて下さい。
こういう画面が出てきたでしょうか?




これは下のアプリ名が並んでいるところにCPUの占拠率などが出ています。
また上には物理メモリ、仮想メモリの大きさも表示されています。

なおterminalからアプリを終了させたい時に、アプリのIDナンバーが必要ですが、それはこの画面のアプリの名前の前に書かれた番号です。
これを使ってアプリを終了させることができます。
コマンドは
kill
です。

例えばこの例でいえばiCalを終了したい時は
kill 1312
だけで終了できます。
(ただしこのIDは起動する度に割り当てられますので、毎回違います。ですのでこれだけは履歴コマンドで過去の入力を呼び出して実行するということができません。)

これはネットワークに接続して終了できなくなったアプリとかを強制終了させる方法として覚えておいても良いんじゃないでしょうか。












Previous Topへ Next





site statistics