このセクションでは、AFS コマンドのコンポーネントと、省略形を使ってより効果的にコマンドを入力する方法について説明します。以下のセクションがあります。
組に属している AFS コマンドの構造は、以下のとおりです。
command_suite operation_code -switch <value>[+] [-flag]
全体として、command_suite と operation_code で、 コマンド名 を構成します。
command_suite は、このコマンドが属する、関連したコマンドのグループを指定し、このコマンドを実行するコマンド・インタープリターまたはサーバー・プロセスを示します。AFS には、bos、fs、 kas、package、 pts、scout、 uss および vos を組み込む、いくつかのコマンドの組があります。これらの組の中には、発行者がこのコマンド名の command_suite の部分を省略する対話モードを持つものがあります。
operation_code は、実行するアクションを、コマンド・インタープリターおよびサーバー・プロセスに知らせます。ほとんどのコマンドの組には、複数の演算子が組み込まれます。AFS Administration Reference では、各演算子を詳細に説明し、 AFS 管理の手引き では、その演算子を実行管理用タスクのコンテキストで使用する方法を説明します。
いくつかの AFS コマンドは組に属さないため、その名前に command_suite の部分がありません。それ以外の点では、それらのコマンドの構造は、組に属するコマンドに類似しています。
option という用語は、以下に説明する引き数およびフラグの両方を表します。
コマンド名の後に 1 つ以上の引き数を指定することができます。引き数は、コマンドの実行中にそのコマンドが作用するエンティティーを指定します (たとえば、どのサーバー・マシン、サーバー・プロセス、あるいはファイルに作用するか)。潜在的なエラーを最小限にするために、コマンドの定義で規定される順序で、コマンドの引き数を提供しなければなりません。
各引き数には 2 つの部分があり、これらの部分は指定された順に出現します。
一部の引き数は複数の値を受け取ります。コマンド説明とオンライン・ヘルプでは、その引き数の後ろに正符号 ( + ) を付けて示されています。あるコマンドの引き数のうち複数の値を取る引き数の数、および他の引き数との関連におけるそれらの引き数の順序によって、スイッチの省略が受け入れられるかどうかが決まります。スイッチを省略するための条件を参照してください。
コマンドの中には、必須の引き数だけでなく、任意選択の引き数をもつものがあります。コマンドの説明およびオンライン・ヘルプでは、任意選択の引き数を大括弧 ([ ]) で示しています。
コマンドの中には 1 つ以上のフラグを持つものがあります。フラグはコマンド・インタープリターおよびサーバー・プロセスがそのコマンドを実行する仕方、または作成する出力の種類を指定します。フラグは、スイッチのようにハイフンの後に続きますが、インスタンスは取りません。コマンドの説明とオンライン・ヘルプでは、一般にコマンドの引き数の後にそのコマンドのフラグがリストされていますが、フラグに対してはあらかじめ決められた順序というものはありません。コマンドのフラグは、引き数を構成している部分と部分の間を除く、演算子の後のコマンド行の任意の位置に置くことができます。フラグは、いつも任意選択です。
次の例は、AFS コマンド組に属するコマンドのさまざまな部分を示しています。
% bos getdate -server fs1.abc.com -file ptserver kaserver
ここで、
各 AFS コマンドは 1 行で入力します (コマンドの終わりのみで <リターン> を押します)。本書のコマンドの中には、複数行にわたって切れて表示されるものがありますが、それは、印刷上の都合によるものです。
コマンド行の各要素を隣り合う要素から分離するには、スペースを使用します。スペース (コンマではありません) は、引き数の複数の値も分離します。
多くの場合、コマンドの発行者は、次の方法のどちらか1 つあるいは両方を使用すれば、必要な入力量を減らすことができます。
以下の機能グループでは、コマンド行のパーツの省略または短縮の条件について説明します。コマンドのスイッチをすべて指定し、省略形なしで、コマンドを完全に入力することは常に可能です。
引き数のスイッチ部分を入力することはいつも受け入れ可能ですが、多くの場合、その必要がありません。特に、以下の条件を満たす場合には、スイッチを省略することができます。
スイッチの省略が可能なのは、コマンドの各引き数には、あらかじめ規定された順序が存在するという理由だけからです。発行者がスイッチを組み込まない場合には、コマンド・インタープリターはスイッチの代わりに引き数の順序をあてにします。すなわち、コマンド・インタープリターは演算子の後の最初の要素がそのコマンドの最初の引き数で、その次の要素がコマンドの 2 番目の引き数である、というように想定します。重要な例外は、コマンドの最後の必須の引き数が複数の値を受け入れる場合です。このような場合には、コマンド・インタープリターは、発行者が、最後の引き数を介して、各引き数に 1 つの値を正しく提供したと想定します。その結果、最後にある任意の追加の値は、最後の引き数に属する値になります。
以下のリストは、逆の観点からスイッチの省略の規則を説明したものです。すなわち、以下の条件のどれかが適用される場合には、引き数のスイッチを提供しなければなりません。
コマンドの例 にある例のコマンドについて、もう一度考えてみます。
% bos getdate -server fs1.abc.com -file ptserver kaserver
このコマンドは、サーバー・マシンの名前 (-server スイッチで識別される) とバイナリー・ファイルの名前 (-file スイッチで識別される) という 2 つの必須の引き数を持ちます。2 番目の引き数は、複数の値を受け入れます。 3 つの条件すべてに適合していることにより、発行者は次のようにスイッチを省略することができます。
% bos getdate fs1.abc.com ptserver kaserver
スイッチがないので、bos コマンド・インタープリターは、引き数の順序をあてにします。このコマンド・インタープリターは、演算子に続く最初の要素 fs1.abc.com がサーバー・マシンの名前で、次の引き数 ptserver はバイナリー・ファイルの名前であると想定します。次に、このコマンドの 2 番目の (かつ最後の) 引き数は、複数の値を受け入れるので、このコマンド・インタープリターは、kaserver はその引き数の追加の値である、と正しく解釈します。
一方、次の例は受け入れられません。それは、スイッチを省略するための条件 の最初の 2 つの条件に違反しているからです。1 つの引き数に値が 1 つしか指定されていませんが、引き数が規定の順序で出現していません。さらに、1 つの引き数にスイッチが提供されていますがもう 1 つの引き数には提供されていません。
% bos getdate ptserver -server fs1.abc.com
このセクションでは、演算子、オプション名、サーバー・マシン名、区画名、およびセル名の省略方法について説明します。これら以外の値を省略することはできません。
同じ組のほかの演算子とまだ区別できる最短の形式に、演算子を省略することができます。
たとえば、bos install を bos i に短縮することは受け入れ可能です。それは、bos コマンド組には、文字 i で始まる演算子が他にないからです。それと対照的に、文字 s で始まる bos 演算子は、以下のように複数個あります。したがって、明白にするためには、もっと長くする必要があります。
bos sa は bos salvage を表す
bos seta は bos setauth を表す
bos setc は bos setcellname を表す
bos setr は bos setrestart を表す
bos sh は bos shutdown を表す
bos start は bos start を表す
bos startu は bos startup を表す
bos stat は bos status を表す
bos sto は bos stop を表す
省略形に加えて、いくつかの演算子には、演算子を最短の明白な形式に省略することによってできる短い形式の別名があります。たとえば、fs setacl コマンドの別名は、 fs sa です。それに対し、最短の明白な省略形は fs seta です。
演算子に別名があるのには、以下のような通例の理由が 2 つあります。
たとえ、演算子に別名があっても、最短の明白な形式を使用することができます。したがって、 fs setacl コマンドには、3 つの受け入れ可能な形式があります。fs setacl (完全形式)、fs seta (最短の省略形)、および fs sa (別名)です。
スイッチあるいはフラグを、それと同じ演算子の他のスイッチとフラグから区別する最短形式に短縮することができます。 スイッチを省略するための条件 でリストされている条件に従えば、スイッチを完全に省略してしまうことができる場合も多くあります。
AFS サーバー・マシンは、完全に修飾されたインターネット形式のホスト名を持たなければなりません (たとえば、fs1.abc.com)。ただし、コマンド行に常にフルネームを入力する必要があるわけではありません。 AFS コマンドは、明白に短縮した形式を受け入れますが、コマンドが発行されたとき、短縮名を完全に修飾された名前に解釈するのは、セルの名前サービス (ドメイン・ネーム・サービスなど) またはローカル・ホスト・テーブルによって異なります。
大部分のコマンドは、小数点付き 10 進数形式のマシンの IP アドレスも ID として受け入れます。
AFS ボリュームを収容する区分には、/vicepx または /vicepxx の形式の名前がなければなりません。ただし、変数の最後の部分はアルファベットの小文字です。通例、ファイル・サーバー・マシン上に作成された最初のサーバー区画は /vicepa、2 番目の区画は /vicepb、というように呼ばれます。 AFS インストールの手引き では、AFS ボリュームをそのマシン上に保管するための準備に、ファイル・サーバー・マシンの区分を構成し命名する方法について説明します。
AFS コマンドを発行するときには、以下の形式のいずれかを使用して、区分名を省略することができます。
/vicepa = vicepa = a = 0 /vicepb = vicepb = b = 1
/vicepz (インデックスは 25) の後に
/vicepaa = vicepaa = aa = 26 /vicepab = vicepab = ab = 27
同様に
/vicepiv = vicepiv = iv = 255
セルのフルネームは通常そのインターネット・ドメイン名 (たとえば、State University の場合は stateu.edu、あるいは ABC Corporation の場合であれば abc.com) に一致します。一部の AFS コマンドは、通常ローカルの /usr/vice/etc/CellServDB ファイルを基準としたあいまいでない短縮形式を受け入れますが、対応するドメイン名をどのように解決するかは、ローカル・ネーム・サービスの性能によって異なる場合があります。
組に属する AFS コマンドのオンライン・ヘルプを表示するには、help および apropos 演算子を使用します。 -help フラグも、ほとんどすべての AFS コマンドで使用することができます。
1 つのコマンドのオンライン・ヘルプ項目は、以下のように 2 行または 3 行で構成されます。
演算子が指定されていない場合は、help 演算子は、その組の演算子ごとに最初の行 (簡単な説明) を表示します。
% command_suite help
発行者が 1 つ以上の演算子を指定している場合は、help 演算子は、各コマンドの完全なオンライン項目 (簡単な説明、あるいは別名がある場合にはその別名、および構文) を表示します。
% command_suite help operation_code+
-help フラグは、コマンドの構文を表示しますが、簡単な説明あるいは別名は表示しません。
% command_name -help
apropos 演算子は、指定されたキーワードを含む演算子または簡単な説明を持つ、ある組に属する任意のコマンドに関する簡単な説明を表示します。
% command_suite apropos "<help string>"
以下の例で示したコマンドは、fs setacl コマンドの完全なオンライン・ヘルプ項目を表示します。
% fs help setacl fs setacl: set access control list aliases: sa Usage: fs setacl -dir <directory>+ -acl <access list entries>+ [-clear] [-negative] [-id] [-if] [-help]
構文ステートメントだけを表示するには、-help フラグを使用します。
% fs setacl -help Usage: fs setacl -dir <directory>+ -acl <access list entries>+ [-clear] [-negative] [-id] [-if] [-help]
以下の例では、あるユーザーが自分のホーム・ボリュームの割り当て量を表示したいと思っています。ユーザーは、関係のあるコマンドが fs 組に属することは知っていますが、その演算子を思い出すことができません。そこでこのユーザーはキーワードとして quota を使用します。
% fs apropos quota listquota: list volume quota quota: show volume quota usage setquota: set volume quota
以下の例は、コマンド名または簡潔な説明の中にキーワードが組み込まれていない場合に表示されるエラー・メッセージを示しています。
% fs apropos "list quota" Sorry, no commands found