コマンド モードの概要
Catalyst 4500 シリーズ スイッチの Cisco IOS ユーザ インターフェイスにはさまざまなモードがあります。使用できるコマンドの種類は、現在のモードによって異なります。システム プロンプトで疑問符( ? )を入力すると、コマンド モードごとに利用できるコマンドのリストを表示できます。
Catalyst 4500 シリーズ スイッチでセッションを開始するときは、まずユーザ モード(EXEC モードとも呼ばれます)を開始します。EXEC モードでは、一部のコマンドしか使用できません。すべてのコマンドを使用できるようにするには、特権 EXEC モードを開始する必要があります。特権 EXEC モードを開始するには、通常、パスワードが必要です。特権 EXEC モードでは、すべての EXEC コマンドが使用でき、またグローバル コンフィギュレーション モードを開始することもできます。大部分の EXEC コマンドは一時的なものです。例として、特定のアイテムの現在の状態を表示する show コマンドや、カウンタやインターフェイスを消去する clear コマンドがあげられます。Catalyst 4500 シリーズ スイッチの再起動時に EXEC コマンドは保存されません。
コンフィギュレーション モードを使用すると、実行コンフィギュレーションに変更を加えることができます。コンフィギュレーションに対する変更を保存すると、Catalyst 4500 シリーズ スイッチを再起動してもその変更内容が保持されます。グローバル コンフィギュレーション モードでは、インターフェイス コンフィギュレーション モード、サブインターフェイス コンフィギュレーション モード、およびその他のプロトコル固有のモードを開始できます。
ROM モニタ モードとは、Catalyst 4500 シリーズ スイッチを正常に起動できない場合に使用する個別のモードです。Catalyst 4500 シリーズ スイッチやアクセス サーバが起動時に有効なシステム イメージを検出できない場合、または起動時にコンフィギュレーション ファイルが破損していた場合、システムは ROM モニタ モードを開始する場合があります。
表 1-3 に、主なコマンド モードの概要を示します。
表 1-3 主なコマンド モードの概要
|
|
|
|
ユーザ EXEC モード |
ログインします。 |
Switch> |
logout コマンドを使用します。 |
特権 EXEC モード |
ユーザ EXEC モードから、 enable EXEC コマンドを入力します。 |
Switch# |
ユーザ EXEC モードに戻る場合は、 disable コマンドを入力します。 グローバル コンフィギュレーション モードから、 configure terminal 特権 EXEC コマンドを入力します。 |
グローバル コンフィギュレーション モード |
特権 EXEC モードから、 configure terminal 特権 EXEC コマンドを入力します。 |
Switch(config)# |
特権 EXEC モードに戻る場合は、 exit または end コマンドを入力するか、Ctrl+Z を押します。 インターフェイス コンフィギュレーション モードを開始するには、 interface コンフィギュレーション コマンドを入力します。 |
インターフェイス コンフィギュレーション モード |
グローバル コンフィギュレーション モードで、 interface コマンドでインターフェイスを指定して開始します。 |
Switch(config-if)# |
グローバル コンフィギュレーション モードに戻る場合は、 exit コマンドを入力します。 特権 EXEC モードに戻る場合は、 exit コマンドを入力するか、Ctrl+Z を押します。 サブインターフェイス コンフィギュレーション モードを開始するには、 interface コマンドを使用してサブインターフェイスを指定します。 |
サブインターフェイス コンフィギュレーション |
インターフェイス コンフィギュレーション モードで、 interface コマンドを使用してサブインターフェイスを指定します。 |
Switch(config-subif)# |
グローバル コンフィギュレーション モードに戻る場合は、 exit コマンドを入力します。 特権 EXEC モードを開始するには、 end コマンドを使用するか、Ctrl+Z を押します。 |
ROM モニタ |
特権 EXEC モードから 、 reload EXEC コマンドを入力します。システムの起動時、最初の 60 秒以内に Break キーを押します。 |
Rommon> |
ROM モニタ モードを終了する場合は、 boot コマンドを入力してイメージをリロードする必要があります。ファイル名または他の起動命令を指定せずに boot コマンドを使用すると、システムはデフォルトのフラッシュ イメージ(オンボード フラッシュ メモリ上の最初のイメージ)から起動します。また、特定のフラッシュ イメージから起動するように指定することもできます( boot system flash filename コマンドを使用)。 |
コマンド モードの詳細については、『 Configuration Fundamentals Configuration Guide 』の「Using the Command Line Interface」の章を参照してください。
CLI 文字列検索の使用
コマンド出力内のパターンを文字列と呼びます。CLI 文字列検索機能を使用すると、 show または more コマンドの出力を検索またはフィルタリングを行うことができ、また --More-- プロンプトで検索やフィルタリングを行うことができます。この機能は、大量の出力をソートする場合や、出力から不要な情報を除外する場合に役立ちます。
検索機能を使用すると、指定した正規表現を含む最初の行からフィルタリングされていない出力を開始できます。コマンド 1 つあたり最大で 1 つのフィルタを指定するか、--More-- プロンプトで新しい検索を開始できます。
正規表現とは、ソフトウェアが show または more コマンドの出力とのマッチングを行うために使用するパターン(語句、数値、またはより複雑なパターン)のことです。正規表現では大文字と小文字が区別され、また複雑な一致要件を設定することができます。単純な正規表現の例としては、「Serial」、「misses」、「138」などがあります。複雑な正規表現の例としては、「00210...」、「( is )」、「[Oo]utput」などがあります。
実行できるフィルタリングは 3 種類あります。
• begin キーワードを使用すると、出力は指定した正規表現を含む行から始まります。
• include キーワードを使用すると、出力には指定した正規表現を含む行が抽出されます。
• exclude キーワードを使用すると、出力では指定した正規表現を含む行が除外されます。
その後、このフィルタリングした出力を --More-- プロンプトで検索できます。
(注) CLI 文字列検索機能では、前の出力にさかのぼって検索やフィルタリングを行うことはできません。また、CLI に HTTP アクセスしている場合は、フィルタリングを指定できません。
正規表現
正規表現は、コマンド出力内の 1 文字と一致する 1 文字にすることも、コマンド出力内の複数文字と一致する複数文字にすることもできます。ここでは、単一文字パターンおよび複数文字パターンを作成する方法、および繰り返し指定、選択、位置指定、およびカッコを用いたより複雑な正規表現を作成する方法について説明します。
単一文字パターン
最も単純な正規表現は、コマンドの出力内の同じ 1 つの文字と一致する 1 文字のパターンです。任意の文字(A ~ Z、a ~ z)または数字(0 ~ 9)を 1 文字のパターンとして使用できます。また、その他のキーボード文字(「!」や「~」など)も 1 文字のパターンとして使用できますが、一部のキーボード文字は正規表現では特別な意味を持ちます。 表 1-4 に、特別な意味を持つキーボード文字の一覧を示します。
表 1-4 特別な意味を持つ文字
|
|
. |
任意の 1 文字(スペースを含む)と一致します。 |
* |
0 個以上のパターンのシーケンスと一致します。 |
+ |
1 個以上のパターンのシーケンスと一致します。 |
? |
0 または 1 個のパターンと一致します。 |
^ |
文字列の最初と一致します。 |
$ |
文字列の最後と一致します。 |
_(アンダースコア) |
カンマ(,)、左波カッコ({)、右波カッコ(})、左カッコ(()、右カッコ())、文字列の先頭、文字列の末尾、またはスペースと一致します。 |
これらの特殊文字を 1 文字のパターンとして入力するには、各文字の前にバックスラッシュ(\)を付けて特別な意味を持たないようにします。次の例は、ドル記号、アンダースコア、+ 記号と一致する 1 文字のパターンです。
\$ \_ \+
単一文字パターンの範囲を指定して、コマンド出力とのマッチングを行うことができます。たとえば、文字 a、e、i、o、u のいずれかを含む文字列に一致する正規表現を作成できます。パターン マッチングが成功するには、これらの文字のうち 1 文字が文字列に必要です。1 文字のパターンの範囲を指定するには、1 文字のパターンを角カッコ([ ])で囲みます。 次に例を示します。
[aeiou]
5 つの母音を示す小文字のアルファベットのいずれかと一致します。
[abcdABCD]
アルファベットの最初の 4 文字の小文字または大文字と一致します。
範囲の両端をダッシュ(-)でつなぐと、範囲指定を簡単にできます。上の範囲は次のように単純化されます。
[a-dA-D]
ダッシュを範囲内の単一文字パターンとして追加するには、ダッシュをもう 1 つ追加し、その前にバックスラッシュを入力します。
[a-dA-D\-]
また、右角カッコ(])も 1 文字のパターンとして範囲に入れることができます。そのためには、次のように入力します。
[a-dA-D\-\]]
上の例は、大文字または小文字のアルファベットの最初の 4 文字、ダッシュ、右角カッコのいずれかに一致します。
範囲の先頭にキャレット(^)を追加することで、範囲の一致を反転させることができます。次の例では、範囲指定された文字以外のすべての文字と一致します。
[^a-dqsv]
次の例では、右角カッコ(])と d を除くすべての文字と一致します。
[^\]d]
複数文字のパターン
正規表現を作成するとき、複数の文字を含むパターンを指定することもできます。複数文字の正規表現は、文字、数字、特別な意味のないキーボード文字を組み合わせて作成します。たとえば、a4% は複数文字の正規表現です。特殊な意味があるキーボード文字の前にバックスラッシュを入力すると、特殊な意味がなくなります。
複数文字のパターンでは、順序が大切です。a4% という正規表現は、a という文字のあとに 4 が続き、そのあとに % 記号が続く文字と一致します。文字列の中に a4% という文字がその順序で含まれていないと、パターン マッチングは失敗します。次のような複数文字の正規表現があるとします。
a.
ピリオド文字の特別な意味を使用しており、a という文字の後に任意の文字が 1 つ来る文字列と一致します。この例では、ab、a!、または a2 という文字列がすべてこの正規表現と一致します。
ピリオドの前にバックスラッシュを入力すると、ピリオドの特殊な意味はなくなります。次のような正規表現があるとします。
a\.
「a.」という文字列だけが、この正規表現に一致します。
すべての文字、すべての数字、すべてのキーボード文字、文字と数字とその他のキーボード文字の組み合わせを含む複数文字の正規表現を作成できます。次の例はいずれも有効な正規表現です。
telebit 3107 v32bis
繰り返し指定
特殊な文字を 1 文字のパターンや複数文字のパターンと組み合わせることにより、指定された正規表現の繰り返しと一致する複雑な正規表現を作成できます。 表 1-5 に、正規表現の「複数回の出現」を示す特殊文字の一覧を示します。
表 1-5 量指定子として使用される特殊文字
|
|
* |
1 文字または複数文字のパターンが 0 回以上続くことを表す。 |
+ |
1 文字または複数文字のパターンが 1 回以上続くことを表す。 |
? |
1 文字または複数文字のパターンが 0 回または 1 回発生することを表す。 |
次の例では、a が任意の回数 (0 回を含む) 続いている文字列と一致します。
a*
次のパターンは、a が 1 回以上続いている文字列と一致します。
a+
次のパターンは、文字列 bb または bab と一致します。
ba?b
次のパターンは、アスタリスク(*)が任意の回数続いている文字列と一致します。
\**
複数文字のパターンとともに量指定子を使用するには、パターンをカッコで囲みます。次の例で、パターンは複数文字列 ab の任意の回数の出現と一致します。
(ab)*
次の例はもっと複雑で、任意のアルファベットと数字の組み合わせが 1 回以上連続している文字列と一致します(0 回、つまり空白は対象とはなりません)。
([A-Za-z][0-9])+
量指定子(*、+、または ?)を使用した一致の順序は、最長構造優先です。ネストした構造は、外側から内側に一致します。連結された構造は、構造の左側から一致します。そのため、この正規表現は A9b3 に一致しますが、9Ab3 には一致しません。これは、英字が数字の前に指定されているためです。
選択
選択記号を使用して、文字列に対して一致する選択肢を指定できます。選択肢は垂直線(|)で区切ります。選択肢の 1 つだけを文字列と一致させることができます。例として、次の正規表現を見てみましょう。
codex | telebit
この場合、「codex」と「telebit」のうち一方の文字列とは一致しますが、「codex」と「telebit」の両方とは一致しません。
位置指定
正規表現パターンを文字列の先頭または末尾と一致させることができます。つまり、先頭または末尾に特定のパターンがある文字列を指定できます。 表 1-6 に示す特殊文字を使用して、文字列の一部に対して、これらの正規表現の「位置指定」を行います。
表 1-6 位置指定に使用する特殊文字
|
|
^ |
文字列の最初と一致します。 |
$ |
文字列の最後と一致します。 |
次の正規表現は、文字列が「abcd」で始まる場合のみ一致します。
^abcd
一方、次の正規表現の範囲指定は、a、b、c、d を除く任意の 1 文字と一致します。
[^abcd]
次の例の正規表現は、「.12」で終わる文字列と一致します。
\.12$
これらの位置指定文字は、特殊文字アンダースコア(_)とともに使用します。アンダースコアは文字列の先頭(^)、文字列の末尾($)、カッコ(( ))、スペース( )、中カッコ({ })、コンマ(,)、アンダースコア(_)と一致します。アンダースコア文字を使用すると、パターンが文字列中の任意の場所に存在することを指定できます。
次に例を示します。
_1300_
これは文字列内の任意の位置にある「1300」と一致します。文字列の 1300 の前後にスペース、波カッコ、カンマ、またはアンダースコアを置くことができます。次に例を示します。
{1300_
この文字列はこの正規表現と一致しますが、21300 や 13000 は一致しません。
アンダースコアを使用すると、次のような多数の正規表現の組を置き換えることができます。
^1300$ ^1300( ) ( )1300 {1300, ,1300, {1300} ,1300, (1300
これは次のようにまとめられます。
_1300_
再帰呼び出しのカッコ
「繰り返し指定」で説明したように、複数文字の正規表現とともにカッコを使用して、パターンを繰り返すことができます。この他に、カッコと 1 文字または複数文字のパターンを組み合わせることにより、パターンを正規表現内の別の場所で再使用することができます。
前のパターンを再使用する正規表現を作成するには、再使用する特定のパターンをカッコで示し、バックスラッシュ(\)の後に整数を入力してそのパターンを再使用します。この整数は、正規表現パターン内でのカッコの順序を示しています。正規表現内で複数のパターンを再使用する場合、\1 は再使用する最初のパターン、\2 は 2 番目のパターンとなります。これ以降の整数についても同様です。
次の正規表現では、再帰呼び出しのカッコを使用しています。
a(.)bc(.)\1\2
この正規表現は、先頭から順に a、任意の文字(文字 1 と呼ぶ)、bc、任意の文字(文字 2 と呼ぶ)と続いたあとに、再度、文字 1、文字 2 と続く文字列と一致します。そのため、この正規表現を aZbcTZT と一致させることができます。ソフトウェアによって、文字 1 が Z で文字 2 が T であることが記憶され、そのあとの正規表現の中で再び Z および T が使用されます。