コマンドを全部暗記しなきゃいけない?

Cisco機器のコマンドは数多く存在します。たとえば、ホスト名を付けるための hostname コマンド、インタフェースにIP アドレスを設定する ip address コマンド、パスワードを設定するenable secret コマンドなどなど。このようなたくさんのコマンドを全部覚えるというのは大変です。だいたいの構文を覚えていても、細かいところまで完全に覚えることは難しいです。そこで、コマンド入力の便利機能である「ヘルプ」と「補完」があります。

コマンドのヘルプ

ヘルプはコマンドラインから[?]を入力します。ヘルプによって、ある文字で始まるコマンドや、次にどういうコマンドを入力することができるのかがわかります。たとえば、ユーザEXECモードにおいて”e”ではじまるコマンドを知りたいというとき、次のように”e”のあとに”?”を入力します。

Router>e?
enable  exit

Router>e

すると、ユーザEXECモードで”e”ではじまるコマンドとし、”enable”と”exit”があることがわかります。

IOSのバージョンや種類によって、”e”ではじまるコマンドは他にもあります。

また、コマンドには続けてパラメータを指定する場合がよくあります。指定するべきパラメータがどんなものであるかもヘルプでわかります。例として、enableのあとにどんなパラメータを入力することができるのかは、次のようにenableのあとにスペースを開けて[?]を入力します。

Router>enable ?
  <0-15>  Enable level
  view    Set into the existing view
  

Router>enable

enableのあとには、0~15の数字、view、<cr>を入力するかという3つのケースがあることがわかります。<cr>は[Enter]キーのことで、この時点でコマンドとして認識され実行可能であることを意味しています。

コマンドの補完

次にコマンドの補完についてです。補完は[TAB]キーを利用します。コマンドによっては非常に長いものもあります。長いコマンドを全部覚えるのも大変ですし、入力ミスも発生するかもしれません。そこで、コマンドの一部を入力して[TAB]キーを押すとコマンドの残りの部分を補完してくれます。ただし、コマンドを一意に識別できる部分まで入力しないといけません。

たとえば、先ほどのヘルプの例で”e”で始まるコマンドは2つありますが、ただ単に”e”のあとに[TAB]キーを押しても補完機能は働きません。コマンドを一意に識別できる”en”まで入力してから[TAB]キーを押すと”enable”として自動的に補完されます。

Router>en[TAB]
Router>enable

なお、コマンドの補完を行わなくてもコマンドを一意に識別できるところまで入力して[Enter]キーを押すことでコマンドを認識してくれます。つまり、enable+[Enter]キーとen+[Enter]キーは同じことです。コマンドはフルスペルを入力する必要はなく、省略形でも大丈夫です。

例として、次のようなCLIモードの移行について考えます。

  • ユーザEXECモードから特権EXECモード
  • 特権EXECモードからグローバルコンフィグレーションモード
  • グローバルコンフィグレーションモードからFastEthernet0/0のインタフェースコンフィグレーションモード

こうしたCLIモードの移行で、コマンドをフルスペルで入力する場合と省略形の場合は、以下のようになります。

Router>enable
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface FastEthernet 0/0
Router(config-if)#
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#int fa0/0
Router(config-if)#

省略形で入力したほうが入力ミスの可能性が少なくなります。なるべく省略形や[TAB]キーの補完機能を利用することが入力ミスを少なくするコツです。

コマンドヒストリと拡張編集コマンド

IOSのCLIでは、入力したコマンドをコマンドヒストリに記憶して、以前に入力したコマンドを簡単に呼び出せるようになっています。

直前に入力したコマンドを呼び出すには、キーボードの[↑]キーか[Ctrl]+[p]キーを押します。1回押すごとに一番新しいコマンドから古いコマンドへと順に表示されるようになります。また、[↓]キーか[Ctrl]+[n]キーで古いコマンドから新しいコマンドへ戻ってくることができます。コマンドヒストリに記憶しているコマンドを表示するには、特権EXECモードでshow historyコマンドを入力します。

Router#show history
  en
  ping 1.1.1.1
  telnet 1.1.1.1
  terminal history size 15
  traceroute 1.1.1.1
  show history

また、コマンドヒストリに記憶するコマンドの数はデフォルトでは10個です。記憶するコマンド数を変更したいときは、次のコマンドを入力します。

#terminal history size <number>

<number> : コマンドヒストリの数 0~256

コマンドヒストリの数をデフォルトの10に戻すには、terminal no history sizeと入力します。

[↑]もしくは[Ctrl]+[p]、[↓]もしくは[Ctrl]+[n]以外にもCLIでのコマンド入力を支援する拡張編集コマンドが存在します。主な拡張編集コマンドを次の表にまとめます。

拡張編集コマンド動作
[Ctrl]+[A] カーソルをコマンドラインの先頭に移動
[Ctrl]+[E] カーソルをコマンドラインの末尾に移動
[Ctrl]+[F]または[→] カーソルを1文字右に移動
[Ctrl]+[B]または[←] カーソルを1文字左に移動
[ESC]+[F] カーソルを1語右に移動
[ESC]+[B] カーソルを1語左に移動
[Ctrl]+[D] カーソルの右1文字削除
[Backspace]または[Ctrl]+[H] カーソルの左1文字削除
表 拡張編集コマンド
  • 矢印キーは古いターミナルソフトウェアによっては使えないので注意してください。
  • 他にも拡張編集コマンドは存在します。

Ciscoのキホン