(57)【要約】  【課題】    コマンド・シェルを有するＵＮＩＸオペレーティング・システムまたは他のオペレーティング・システムにおいて、ユーザ・コマンドの出力をカスタマイズするための方法および装置を提供すること。  【解決手段】  構成ファイルが、１つまたはそれ以上のユーザ・コマンドのそれぞれのための出力フォーマットを指定する。ユーザ・コマンドの受信に応答して、コマンド・シェルは出力を生成するためのコマンドを処理して、そして構成ファイルに従って出力をフォーマットする。構成ファイルは、全体的なコマンド用またはコマンドの指定されたフィールド用の色やフォントなどの属性を指定することができる。構成ファイルをデフォルトの構成ファイルとすることができ、あるいはコマンド・ラインで指定することもできる。コマンド・ラインは、使用されるべき構成ファイルがないこと、およびデフォルト属性が適用されるべきことを示すフラグを含むこともできる。【選択図】  図４
2004199676.tif 000002
【特許請求の範囲】
【請求項１】
コマンドに対する出力を得るために、該コマンドのコマンド・ラインをユーザが入力する情報処理システムにおいて、前記出力をカスタマイズする方法であって、
前記コマンドの前記出力用のフォーマットを指定する構成データを保管するステップと、
前記コマンドのコマンド・ラインのユーザによる入力に応答して、前記コマンドの出力を生成するために前記コマンド・ラインを処理して、前記構成データにより前記出力用に指定された前記フォーマットに従い、前記出力をフォーマットするステップと
を含む、方法。
【請求項２】
前記構成データが、ファイルとして保管される、請求項１に記載の方法。
【請求項３】
前記構成データが、複数のコマンドのそれぞれの出力用のフォーマットを指定する、請求項１に記載の方法。
【請求項４】
前記構成データが、前記コマンドの前記出力の複数のフィールドのそれぞれ用のフォーマットを指定する、請求項１に記載の方法。
。
【請求項５】
前記構成データが、前記コマンドの前記出力の複数の属性のそれぞれを指定する、請求項１に記載の方法。
【請求項６】
前記処理するステップが、
前記コマンドをデコードするために前記コマンド・ラインを解析するステップと、
前記出力を生成するために前記コマンドを処理するステップと
を含む、請求項１に記載の方法。
【請求項７】
前記処理するステップが、特定の構成データの仕様について前記コマンド・ラインを解析するステップを含み、
前記コマンド・ラインで指定されたとき、前記特定の構成データに従い前記出力がフォーマットされる、
請求項１に記載の方法。
【請求項８】
前記処理するステップが、前記構成データを無視するフラグについて前記コマンド・ラインを解析するステップを含み、
前記フラグが前記コマンド・ラインに含まれていたとき、前記構成データとは無関係に前記出力がフォーマットされる、
請求項１に記載の方法。
【請求項９】
コマンドに対する出力を得るために、該コマンドのコマンド・ラインをユーザが入力する情報処理システムにおいて、前記出力をカスタマイズする装置であって、
前記コマンドの前記出力用のフォーマットを指定する構成データを保管する構成データ記憶と、
前記コマンドのコマンド・ラインのユーザによる入力に応答して、前記コマンドの出力を生成するために前記コマンド・ラインを処理して、前記構成データにより前記出力用に指定された前記フォーマットに従い、前記出力をフォーマットするコマンド・ライン・プロセッサと
を含む、装置。
【請求項１０】
前記構成データが、ファイルとして保管される、請求項９に記載の装置。
【請求項１１】
前記構成データが、複数のコマンドのそれぞれの前記出力用のフォーマットを指定する、請求項９に記載の装置。
【請求項１２】
前記コマンド・ライン・プロセッサが、
前記コマンドをデコードするために前記コマンド・ラインを解析するコマンド・ライン・パーサと、
出力を生成するために前記コマンドを処理するコマンド・プロセッサと、
フォーマット済み出力を生成するために前記出力をフォーマットする出力フォーマッタと
を含む、請求項９に記載の装置。
【請求項１３】
前記コマンド・ライン・パーサが、特定の構成データの仕様について前記コマンド・ラインを解析し、
前記コマンド・ラインによリ指定されていたとき、前記出力フォーマッタは前記特定の構成データに従い前記出力をフォーマットする、
請求項９に記載の装置。
【請求項１４】
前記コマンド・ライン・パーサが、前記構成データを無視するフラグについて前記コマンド・ラインを解析し、
前記フラグが前記コマンド・ラインに含まれていたとき、前記出力フォーマッタは前記構成データとは無関係に前記出力をフォーマットする、
請求項９に記載の装置。
【請求項１５】
コマンドに対する出力を得るために該コマンドのコマンド・ラインをユーザが入力する情報処理システムにおいて、機械によって読み取り可能であり、前記コマンドの出力をカスタマイズするための方法ステップを実行する、前記機械によって実行可能な命令のプログラムを具体的に実装するプログラム記憶装置であって、前記方法ステップが、
前記コマンドの前記出力用にフォーマットを指定する構成データを保管するステップと、
前記コマンドのコマンド・ラインのユーザによる入力に応答して、前記コマンドの出力を生成するために前記コマンド・ラインを処理して、前記構成データにより前記出力用に指定された前記フォーマットに従い、前記出力をフォーマットするステップとを含む、
プログラム記憶装置。
【請求項１６】
前記構成データが、ファイルとして保管される、請求項１５に記載のプログラム記憶装置。
【請求項１７】
前記構成データが、複数のコマンドのそれぞれの前記出力用のフォーマットを指定する、請求項１５に記載のプログラム記憶装置。
【請求項１８】
前記処理するステップが、前記コマンドをデコードするために前記コマンド・ラインを解析して、前記出力を生成するために前記コマンドを処理するステップを含む、請求項１５に記載のプログラム記憶装置。
【請求項１９】
前記処理するステップが、特定の構成データの仕様について前記コマンド・ラインを解析するステップを含み、
前記コマンド・ラインにより指定されているとき、前記出力は前記特定の構成データに従いフォーマットされる、
請求項１５に記載のプログラム記憶装置。
【請求項２０】
前記処理するステップが、前記構成データを無視するフラグについて前記コマンド・ラインを解析するステップを含み、
前記フラグが前記コマンド・ラインに含まれていたとき、前記出力は前記構成データとは無関係にフォーマットされる、
請求項１５に記載のプログラム記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ・コマンドの出力をカスタマイズするための方法および装置に関する。より詳細には、ＵＮＩＸ（登録商標）シェル・コマンドの出力を、該コマンドの実行前にカスタマイズするための方法および装置に関する。
【背景技術】
【０００２】
当技術分野では周知のように、オペレーティング・システムは、ユーザ・アプリケーションのためのサービスを実行して、コンピュータ・システムのリソースを管理するソフトウェア・プログラムである。そのようなオペレーティング・システムの中でよく知られている部分がコマンド・インタープリタ、即ち、しばしば言われるコマンド・シェルである。ＵＮＩＸベースのオペレーティング・システムは csh および tcsh などのいくつかのよく知られているシェルを有し、一方、Microsoft（Ｒ）Windows（Ｒ）のオペレーティング・システムは MS-DOS プロンプトを有している。コマンド・シェルは、ファイルの管理、プログラムの開始および停止のような機能をユーザが実行することを可能にするために、直接のインターフェースを（コンピュータ上で実行しているユーザ・プログラムとは別のものとして）コンピュータとユーザとの間に提供する。ＵＮＩＸベースのオペレーティング・システムでは、コマンドは、ユーザがファイル、システム・セットアップ、ユーザおよびグループに関する情報を操作および表示することを可能にする。要するに、シェル・コマンドが呼ばれると、ユーザはオペレーティング・システム環境の中をナビゲートすることが可能になる。あるＵＮＩＸベースのオペレーティング・システム用のシェル・コマンド、ＩＢＭ  ｚ／ＯＳオペレーティング・システムのＵＮＩＸシステム・サービス・コンポーネントは、ＩＢＭ出版のｚ／ＯＳ  ＵＮＩＸシステム・サービス・コマンド・リファレンス、SA22-7802-03（２００２年６月）に記載されている。
【０００３】
特定の例として、一般に使用されるＵＮＩＸシェル・コマンドはファイルおよびディレクトリ情報を表示するための ls コマンドであり、前記出版物の３２８−３３４ページに記載されている。その様々なオプションと共に使用すると、ls コマンドからの出力はファイルの様々な属性を表示する。例えば、ls -lはファイルの許可、特定のファイルに属するリンク、ユーザＩＤ（ＵＩＤ）、グループＩＤ（ＧＩＤ）、ファイル・サイズ、ファイルが変更された前回の日付け、およびファイル名を表示する。ls -lコマンドからのサンプル出力は次のように見えるであろう。
-rw-------   1  USER  GROUP  46872  Apr 24  18:30  file
-rw-------   1  USER  GROUP     27  Jul 26   2000  file
-rw-rw-rw-   1  USER  GROUP   4486  Mar 13  11:23  file
-rw-------   1  USER  GROUP    391  Mar  2  16:01  file
-rwx------   1  USER  GROUP     42  Feb  2  17:20  file
-rw-------   1  USER  GROUP     30  Oct  2   2000  file
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このようなシェル・コマンドは、様々なフォーマッティング・オプションを提供する一方で、それらは、ユーザがコマンド出力を操作してカスタマイズするための容易な方法を提供しない。ユーザがそのようなシェル・コマンドの出力を操作することができるようになるためには、ユーザはシェル・スクリプトを書くことを経験しなければならないであろう。そのような複雑なシェル・スクリプトを書くために必要な経験は、初心者ユーザがコマンド出力を操作する能力を有することを妨げるであろう。
【課題を解決するための手段】
【０００５】
本発明は、コマンド・シェルを有するＵＮＩＸオペレーティング・システムまたは他のオペレーティング・システムにおいて、ユーザ・コマンドの出力をカスタマイズするための方法および装置を検討する。好ましくは、構成ファイルに含まれた構成データは、１つまたはそれ以上のユーザ・コマンドのそれぞれのための出力フォーマットを指定する。ユーザ・コマンドの受信に応答して、コマンド・シェルは出力を生成するためにコマンドを処理し、そして構成データに従い出力をフォーマットする。 
【０００６】
構成データは、全体的なコマンド用またはコマンドの指定されたフィールド用の色やフォントなどの属性を指定することができる。構成データをデフォルトの構成データとすることができ、あるいはコマンド・ラインで指定することもできる。コマンド・ラインは、使用されるべき構成データがないこと、およびデフォルト属性が適用されるべきことを示すフラグを含むこともできる。
【０００７】
本発明は、シェル・コマンドを実行する前に、ユーザがそれらのシェル・コマンドの出力に特性を割り当てることができるようにする。本発明はＵＮＩＸシェル・コマンドに限定されないが、そのようなシェル・コマンドに適用されると、本発明は現在のＰＯＳＩＸ標準に追加され、そしてそのような標準の拡張を構成するであろう。
【発明を実施するための最良の形態】
【０００８】
図１は、本発明を具体化するコンピュータ・システム１００を示す。コンピュータ・システム１００は、オペレーティング・システム１０４およびその上で実行する１つまたはそれ以上のアプリケーション（図示せず）を有するハードウェア・マシン１０２を含む。ハードウェア・マシン１０２は、インテル（Ｒ）アーキテクチャ（例えば、Pentium（Ｒ））マシン、ＲＩＳＣ（Ｒ）マシン、またはＩＢＭ eServer zSeries サーバ等の”メインフレーム”マシンなどの当技術分野で周知であるいかなる適切なタイプのマシンでもよい。さらに、ここで”マシン”として参照されるが、ハードウェア・マシン１０２は、基礎をなすホスト・マシン（図示せず）の論理区画またはバーチャル・マシンであってもよい。オペレーティング・システム１０４は、ＵＮＩＸコマンド・シェルを有するＵＮＩＸベースのオペレーティング・システム、またはＭＳ−ＤＯＳプロンプトを有するMicrosoft（Ｒ）Windows（Ｒ）オペレーティング・システムなどの、コマンド・シェルを有するいかなる適切なタイプのＯＳであってもよい。もし、ハードウェア・マシン１０２がＩＢＭ eServer zSeriesサーバであれば、そのときは、オペレーティング・システム１０４はＩＢＭ ｚ/OS オペレーティング・システムのＵＮＩＸシステム・サービス・コンポーネントとなり得る。
【０００９】
オペレーティング・システム１０４は、コマンド・インタープリタ（または、シェル）１０６を含む。コマンド・インタープリタ１０６は、ディスプレイ・モニタまたはプリンタなどの出力装置１１０上に出力を生成するために、キーボードまたはポインティング・デバイスなどの入力装置１０８により入力されるユーザ・コマンドに応答する。本発明に従い、またさらに下で記述するように、コマンド・インタープリタ１０６は、好ましくはファイル１１２として保管されているユーザが提供した構成データに従いその出力をフォーマットする。
【００１０】
図２は、コマンド・インタープリタ１０６の機能的要素を示す。ＵＮＩＸシステムで公知のように、入力装置１０８からの入力（ここでは、ユーザにより入力されるコマンド・ラインから成る）は、プログラミングによって読み込むことができる標準入力ファイル（stdin）に書き込まれる。stdin の内容は、コマンド・インタープリタ１０６の未解析（unparsed）入力として入力パーサ２０４に読み込まれる。入力パーサ２０４は、コマンド・インタープリタ１０６のコマンド・プロセッサ２０８に供給される解析済み入力２０６を生成するために未解析入力２０２を解析する。コマンド・プロセッサ２０８は、コマンド・インタープリタ１０６の出力フォーマッタ２１２に供給される未フォーマット出力２１０を生成するために解析済み入力を処理する。最後に、出力フォーマッタ２１２が、フォーマット済み出力２１４を生成するために出力２１０をフォーマットする。フォーマット済み出力２１４は、ＵＮＩＸシステムで公知のように、標準出力ファイル（stdout）に書き込まれ、そこから、出力装置１１０に書き込まれる。
【００１１】
図３および４は、全体的な処理フローを示す。図３はユーザにより実行されるステップを示し、図４はコマンド・インタープリタ１０６により実行されるステップを示す。
【００１２】
最初に、図３を参照すると、フォーマット済み出力を所望するコマンドを実行する前のある時点において、ユーザは構成ファイル１１２を定義する（ステップ３０２）。この構成ファイル１１２はフラット・ファイルとして実装することができ、手作業またはツールにより作ることができる。そのようなツールは、フォントまたはフォント・サイズを変更し、太字体のタイプを可能にし、そしてテキストに色を付加するなどの機能を含み得るワード・プロセッサに似ているフォーマッティング能力を有する。その場合、ユーザは、ワード・プロセッサを使用するときのように、フォーマッティングをテキストに適用するためにこのツールを使用するであろう。ユーザにフォーマットするためのコマンド出力を選択することを可能にすることにより、異なるフォーマットを異なるコマンドに適用するためにこのツールを使用することができる。フォーマットするためのコマンドを選択した後に、ツールは選択されたコマンドの代表的なサンプル出力を示すであろう。もし、ユーザが選択できなかったコマンドのフォーマットを望んでいた場合、ユーザは、コマンド名、フィールド名、フィールド属性、およびフォーマットするためのサンプル出力を含むユーザ・コマンド用の”プロファイル”を作ることができるであろう。ユーザが構成ファイル１１２を書く準備ができていることを示したとき、ツールはユーザによりサンプル出力に適用されるフォーマットを取り込み、構成ファイル１１２にこれらの属性を書くであろう。
【００１３】
構成ファイル１１２は、ビジュアル・ベーシック・プログラミング言語に類似するフォーマットで書くことができ、一連の３つの修飾子が特定のフィールドに適用されるフォーマッティングを示す。最高位の修飾子は、コマンドを区別する。第２の（すなわち、中位の）修飾子は、コマンドの出力におけるフィールドを区別する。最後の第３の修飾子は、セットされる属性を区別する。３番目の修飾子は修飾子の標準セットを有し、フォント、色、オフセット、およびサイズなどの、フィールドをフォーマットするために割り当てることができる属性を表す。高位の修飾子は、コマンドに関連する出力のすべてに属性を適用するために、中位の修飾子なしに、使用することができる。高位の修飾子または中位の修飾子は、”ＯＦＦ”に属性の値をセットすることにより、コマンドのためのフォーマッティングを止めるための効率的な方法として使用することもできる。この能力は、（ＯＦＦ設定を供給する以外に、）新しい構成ファイル１１２を作るか、既存の構成ファイルを修正することをユーザに要求することなしに、いくつかの構成設定を無視するための容易な方法を提供するであろう。定義されなかったいかなる構成も、コマンド出力で通常なされるように、デフォルト・フォーマッティングが適用されることになろう。
【００１４】
典型的な構成ファイル１１２は、例えば次のように見える。
ls -l.color = green
ls -l.field2.offset = 50
ls -l.field3.offset = 10
ls -l.field3.color = pink
ls -l.field4.size = 20
ls -l.field4.offset = 60
ls -l.field4 = OFF
ps.font = courier
ps.size = 10
【００１５】
このファイルにおいて、ライン１は、コマンド ls -l について、第１の（コマンド）修飾子だけを含み、さらに詳細に示されなければ、そのコマンドの全ての出力の色が緑であることを示す。ライン２−６のそれぞれは、同様に第２の（フィールド）および第３の（属性）修飾子を含み、指定されたフィールドにおける指定された属性のための指定された値を示す。他方、ライン７は、値（ＯＦＦ）だけを含み、第３の（属性）修飾子を含まず、構成ファイル１１２のライン１、５および６で定義された属性の代わりにデフォルト属性がフィールド４で使用されるべきことを示す。最後に、ライン８と９は、さらにもう１つのＵＮＩＸシェル・コマンドである、プロセスについてのステータス情報を表示するための ps コマンドの出力用の１対の属性（フォントとサイズ）を指定する。
【００１６】
ユーザは、次に、ls -alg などのシェルからコマンドを出す（ステップ３０４）。本発明に従い、コマンド・ラインは、入力パラメータの１つとして構成ファイル１１２を指定することができ、例えば、次のようなコマンド・ラインが可能である。
ls -l -cnfgfile ＜configfilename＞
-cnfgfile は構成ファイル１１２指定するためのフラグであり、＜configfilename＞は指定された特定の構成ファイル１１２の名前である。もし、コマンド・ラインで構成ファイル１１２が指定されてなければ、そのときは、デフォルト構成ファイル１１２が使用される。デフォルト構成ファイル１１２は、以下のような環境変数ステートメントにより指定することができる。
CNFGFILE=＜CONFIGFILENAME＞
CNFGFILE は環境変数の名前であり、＜CONFIGFILENAME＞ は指定されるデフォルト構成ファイルの名前である。
【００１７】
コマンド・ラインは、コマンド・ラインまたはデフォルトで指定される構成ファイル１１２が使用されるべきでないことをコマンド・インタープリタ１０６に示すフラグを含むこともできる。例えば、コマンド・ラインは以下のようになる。
ls -l -nofrmt
-nofrmt は、構成ファイル１１２が使用されるべきでないことを示すフラグである。そのような場合には、コマンドは通常に処理され、出力はコマンドの固有の”デフォルト”属性を使用してフォーマットされる、即ち、本発明がない場合に、”通常に”なされたであろうように出力がフォーマットされる。このフラグは、ユーザのフォーマッティングがフィールドを表示させなかった場合に、ユーザがコマンド出力をフォーマッティングなしに見ることを可能にするデバッギング・フィーチャとして使用することもできる。
【００１８】
次に、図４を参照すると、入力装置１０８からユーザ・コマンドが入力されると（ステップ４０２）、コマンド・インタープリタ１０６がコマンドの実行を開始する。コマンド・インタープリタ１０６のパーサ２０４は、初めに、コマンド・キーワード自身を入力パラメータ、オプション、フラグなどと一緒に識別するために、従来の方法でコマンド・ラインを解析する（ステップ４０４）。本発明に従い、解析するステップの間に、パーサ２０４は、また、構成ファイル１１２の明示的な指示、および構成ファイル１１２に含まれた構成設定を無視するためのフラグを調べる。もし、フラグが検出されると（ステップ４０６）、コマンド・インタープリタ１０６は、コマンド・プロセッサ２０８が出力２１０を作り出す通常のコマンド処理に進み（ステップ４０８）、そして出力フォーマッタ２１２は、コマンド用に定義された”デフォルト”属性を使用してフォーマット済み出力２１４を生成するためにその出力２１０をフォーマットする。即ち、コマンド・インタープリタ１０６は、”通常”どおりにその出力をフォーマットする。最後に、コマンド・インタープリタ１０６は、標準出力装置（stdout）にフォーマット済み出力２１４を書き込む（ステップ４１２）。
【００１９】
もし、ステップ４０６において、構成設定を無視するためのフラグが検出されなければ、また、もし、コマンド・ラインが構成ファイル１１２を明示的に指示するならば（ステップ４１４）、コマンド・インタープリタ１０６は明示的に指示された構成ファイル１１２を読み込み、そしてコマンドの出力が標準出力（stdout）に向けられるときに、それをフォーマットするために後で使用する構成データを保管する（ステップ４１６）。もし、そのような構成ファイル１１２が明示的に指示されないと、コマンド・インタープリタ１０６は、フォーマッティングの間に使用する構成データをデフォルト構成ファイル１１２から保管する（ステップ４１８）。いずれにしても、次に、コマンド・インタープリタ１０６は、ステップ４０８と同様のコマンド・プロセッサ２０８による通常のコマンド処理に進む（ステップ４２０）。コマンド処理は、出力が stdout に書き込まれる準備ができるまで進む。次に、ステップ４１０のように、デフォルト・フォーマッティング属性を使う代わりに、コマンド・インタープリタ１０６の出力フォーマッタ２１２は、出力に割り当てられた属性を適用するために、選択された構成ファイル１１２、すなわち明示的に指示された構成ファイル１１２またはデフォルト構成ファイル１１２から保管された構成データを使用する。出力は、選択された構成ファイル１１２の仕様に従ってフォーマットされる。もし、属性がフィールドまたはコマンドに割り当てられていないならば、デフォルト属性が（本発明のコマンド・フォーマッティングの前に利用可能であったように）適用される。最後に、コマンド・インタープリタ１０６は、stdoutにフォーマット済み出力を書き込む（ステップ４１２）。
【００２０】
特定の実施形態を示して説明してきたが、様々な修正が当業者には明白であるであろう。このように、本発明をＵＮＩＸコマンド・シェルという環境で説明してきたが、本発明は Microsoft（Ｒ）Windows（Ｒ）オペレーティング・システムの MS-DOS プロンプトのような他のシステムで使用することもできる。
【図面の簡単な説明】
【００２１】
【図１】本発明を具体化するコンピュータ・システムを示す。
【図２】図１に示すコマンド・インタープリタの機能的要素を示す。
【図３】ユーザにより実行されるステップを示す。
【図４】コマンド・インタープリタにより実行されるステップを示す。
【符号の説明】
【００２２】
１００  コンピュータ・システム
１０２  ハードウェア・マシン
１０４  オペレーティング・システム
１０６  コマンド・インタープリタ
１０８  入力装置
１１０  出力装置
１１２  構成ファイル
２０２  入力
２０４  入力パーサ
２０６  解析済み入力
２０８  コマンド・プロセッサ
２１０  出力
２１２  出力フォーマッタ
２１４  フォーマット済み出力
【図１】
2004199676.tif 000003
【図２】
2004199676.tif 000004
【図３】
2004199676.tif 000005
【図４】
2004199676.tif 000006