【初学者向け】Ciscoルータをセットアップする前に、まず覚えておくべきコマンド一覧

Cisco ルータをセットアップするとき、最初にどのようなコマンドを知っておくべきなのでしょうか。

本記事はそのような疑問に答えるために、初学者向けにまとめたドキュメントになります。

## 免責事項
本記事の閲覧および利用によって発生したあらゆる損害に関して、著者done_sanは一切の責任を負いかねます。

また、本記事から他のサイトへ移動された場合、移動先サイトで提供される情報やサービス等についても一切の責任を負いかねます。


## 動作環境
本記事の検証は以下の環境で行われています。
- ルータ: [Cisco892J/K9](https://www.cisco.com/c/ja_jp/support/routers/892-integrated-services-router-isr/model.html)
- IOS: Version 15.1(4)M3

使用する機器やOSバージョンの違いにより、使用できるコマンド等に差異が生じる場合がありますのでご注意ください。

## 対象読者
Cisco ルータをセットアップしたことがない人

## 対象でない読者
すでにCisco ルータをセットアップしたことがあり、運用できる人

## 目次
1. enable
2. disable
3. show running-config
4. show startup-config
5. show interfaces
6. show ip route
7. configure terminal
8. no ip domain-lookup
9. terminal length 0
10. exec-timeout 0 0
11. password
12. enable password
13. enable secret
14. service password-encryption
15. write memory
16. interface
17. router
18. line console 0
19. line vty 0 15
20. logging synchronous
21. exit
22. end

<a id="a1"></a>
## 1. enable
### 解説
` enable ` は ` ユーザEXECモード ` から ` 特権EXECモード ` に移行する際に利用するコマンドです。

そもそもCiscoが採用するIOSでは、CLIについてモードという概念があります。

CLIのモードによって利用できるコマンドが異なります。
そして、LinuxのようなOSのファイルシステムとは、また考え方が異なるものです。

そのため、初学者にとってはこのモードの移行が一番最初の壁になります。

まず始めは、以下の6種類を覚えておけばどうにかなります。

|  | CLIモード | プロンプト |
| :--- | :--- | :--- |
| 1 | ユーザEXECモード | > |
| 2 | 特権EXECモード | # |
| 3 | グローバルコンフィグレーションモード | (config) |
| 4 | インターフェースコンフィグレーションモード | (config-if) |
| 5 | ルータコンフィグレーションモード | (config-router) |
| 6 | ラインコンフィグレーションモード | (config-line) |

モードについては、はじめはイメージが湧かなかったとしても、プロンプトが異なるという点に注目することで、その見分けがつきます。

これから先のコマンドは、どのモードで実行されているか意識するといいでしょう。

ちなみに、脱線しますが ` コンフィグレーション ` とは ` 設定 ` の意味です。

たとえば、Linuxでは ` .conf ` や ` .cf ` などの拡張子を持つファイルを意味することもありますし、現場では ` ネットワーク機器を設定すること ` を ` コンフィグを投入する ` とか言ったりします。

とても重要な言葉の一つなので、ぜひ覚えておくといいでしょう。

話を戻しますが、モードはこのほかにもたくさんあります。
なので、一旦この辺でよしなにして、使用例とコマンドの省略形を見ていきましょう。

### 使用例
``` 
Router> enable
Router# 
```

Cisco IOSでは、Tabキーでの補完があるほかに、コマンドの一部を省略して入力することも許されています。

ただし、省略しすぎると ` % Ambiguous command: "e" ` というような表記が出て、「"e"は曖昧なコマンドですよ」と、怒られるので注意してください。

これは、予測されうるコマンドが複数ある場合に、どちらのコマンドを利用すればいいかIOS側で判断できないためです。

たとえば、次の ` en ` は ` e ` とすると怒られます。  
なぜなら、ここでは ` e ` は ` enable ` と ` exit ` の2通りのコマンドが考えられるからです。

### 省略形
``` 
Router> e
% Ambiguous command:  "e"
Router> e?
enable  exit

Router> en
Router# 
```

### 参考URL
- [Cisco IOSのモード早見表](https://www.edifist.co.jp/lecture/network/images/pdf/Cisco_IOS.pdf)
- [enable    ユーザモードから特権モードへ移行](https://ping-t.com/modules/cisco/?Cisco%A5%B3%A5%DE%A5%F3%A5%C9%BD%B8%2FE%2Fenable)


<a id="a2"></a>
## 2. disable
### 解説
` disable ` は ` 特権EXECモード ` から、` ユーザEXECモード `へ移行する際に利用するコマンドです。

後述する ` enableパスワード ` の設定を確認するときに利用するでしょう。

ちなみに、この ` Router ` というのはホスト名となります。
` hostname ` というコマンドで変えることができます。

### 使用例
```
Router# disable
Router>
```

### 省略形
```
Router# disa
Router>
```

### 参考URL
- [disable    特権モードからユーザモードへ移行](https://ping-t.com/modules/cisco/?Cisco%A5%B3%A5%DE%A5%F3%A5%C9%BD%B8%2FD%2Fdisable)

<a id="a3"></a>
## 3. show running-config
### 解説
Cisco IOSのコンフィグレーション(設定)には
- ` running-config `
- ` startup-config `
という2種類のファイルがあります。

` show running-config ` は、` running-config ` を表示するコマンドです。

` running-config ` とは、今現行で動いているコンフィグレーションです。

この ` running-config ` は じつは ` startup-config ` をもとに生成されるということを頭に入れておくといいでしょう。

また、 ` show running-config all ` は、デフォルトのコンフィグレーションも表示するようにします。

### 使用例
```
Router# show running-config
(以下略)
Router# show running-config all
(以下略)
Router# 
```

### 省略形
```
Router# sh ru
(以下略)
Router# sh ru al
(以下略)
Router#
```

### 参考URL
- [show running-config    現在の設定（running-config)確認](https://ping-t.com/modules/cisco/?Cisco%A5%B3%A5%DE%A5%F3%A5%C9%BD%B8%2FS%2Fshow%20running-config)
- [IOSネタ 「show running-config」のオプション機能](https://www.itbook.info/web/2011/04/ios%E3%83%8D%E3%82%BF-%E3%80%8Cshow-running-config%E3%80%8D%E3%81%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E6%A9%9F%E8%83%BD.html)

<a id="a4"></a>
## 4. show startup-config
### 解説
` show startup-config ` は、` startup-config ` を表示します。

` startup-config ` とは、起動時に読み込まれるコンフィグレーションです。

ちなみに、この ` startup-config ` は ` running-config ` とは違い、「不揮発性メモリ(NVRAM)」に書き込まれます。

この ` 不揮発性 ` という性質は重要で、起動している間は ` running-config ` に書き込み、保存したコンフィグレーションを書き込むには、後述する ` write memory ` というコマンドを利用します。

### 使用例
```
Router# show startup-config
(以下略)
Router#
```

### 省略形
```
Router# sh star
(以下略)
Router#
```

### 参考URL
- [running-configとstartup-configの役割を確実に覚える方法](http://www.runsurunet.com/2017/09/24/cisco-ios%E6%93%8D%E4%BD%9C%E3%81%AE%E5%9F%BA%E7%A4%8E_5/)
- [show startup-config](https://beginners-network.com/cisco-catalyst-command/show-startup-config.html)

<a id="a5"></a>
## 5. show interfaces
### 解説
` show interfaces ` は、インターフェースについての情報を表示するコマンドです。

ルータには、物理か論理かにせよ、必ずインターフェースが存在します。

インターフェースとは、 ` 境界 ` という意味で、プログラミングでもネットワークでもとても重要な用語になります。 

このコマンドでは、たとえば「アップしているかダウンしているか」や「設定されているIPアドレス」などを確認することができます。

### 使用例
```
Router# show interfaces
(以下略)
Router#
```

### 省略形
```
Router# sh int
(以下略)
Router#
```

### 参考URL
- [Ciscoルータ - show interfaces](https://www.infraexpert.com/study/ciscorouter4.html)

<a id="a6"></a>
## 6. show ip route
### 解説
` show ip route ` は ` ルーティングテーブル ` を表示します。

` ルーティングテーブル ` とは、ルータがパケットを経路選択をするために利用するデータベースです。

` show ip route ` は ` ルーティング ` というルータのパケットの経路選択において、重要な確認コマンドなので、かならず覚えておきましょう。

### 使用例
```
Router# show ip route
(以下略)
Router#
```

```
Router# sh ip ro
(以下略)
Router#
```

### 参考URL
- [show ip route    ルーティングテーブルを表示](https://ping-t.com/modules/cisco/?Cisco%A5%B3%A5%DE%A5%F3%A5%C9%BD%B8%2FS%2Fshow%20ip%20route)

<a id="a7"></a>
## 7. configure terminal
### 解説
` configure terminal ` は ` 特権EXECモード ` から ` グローバルコンフィグレーションモード ` へ移行するために利用するコマンドです。

` 特権EXECモード ` では、確認コマンドを利用できますが、 設定コマンドを利用できないので、設定する場合はかならず ` グローバルコンフィグレーションモード ` へ移行することになります。

` グローバルコンフィグレーションモード ` では、ルータに関する全般の設定を利用できます。また、` ラインコンフィグレーションモード ` や ` インターフェースコンフィグレーションモード ` に移行する際には、一度必ず経由することになります。

そのため、` グローバルコンフィグレーションモード ` は、特に重要なモードと考えていいでしょう。

### 使用例
```
Router# configure terminal
Router(config)# 
```

### 省略形
```
Router# conf t
Router(config)#
```

### 参考URL
- [configure terminal](https://beginners-network.com/cisco-catalyst-command/configure-terminal.html)

<a id="a8"></a>
## 8. no ip domain-lookup
### 解説
` ip domain-lookup ` は、 ルータのDNS機能を有効にするコマンドです。

しかし、DNSを利用しないという場合、誤ったコマンドを打ってしまうと、以下のようなエラーを出力して、時間を無駄に食うことになります。
```
Router# xxxx
Translating "xxxx"...domain server (255.255.255.255)

Translating "xxxx"...domain server (255.255.255.255)
 (255.255.255.255)% Unknown command or computer name, or unable to find computer address
Router#
```

なので、 ` no ` を先頭につけて、` ip domain-lookup ` の設定を無効化することで、時間の浪費を避けていきましょう。

### 使用例
```
Router(config)# no ip domain-lookup
Router(config)#
```

### 省略形
```
Router(config)# no ip domain-lo
Router(config)#
```

### 参考URL
- [ip domain-lookup](https://beginners-network.com/cisco-catalyst-command/ip-domain-lookup.html)

<a id="a9"></a>
## 9. terminal length 0
### 解説
` terminal length 0 ` はコマンドの出力結果の行数を無制限にするコマンドです。

` show running-config ` や ` show startup-config ` を実際に叩いたときに、表示が途中で終了して、` --More-- ` と表示されていることに気づいたかもしれません。

このとき、スペースキーを押すと、` terminal length ` 分だけ表示し、Enterキーを押すと次の行が表示され、それ以外のキーを押すとプロンプトに戻ります。

この ` terminal length ` は表示結果を出力する行数を意味しています。` 0 ~ 512 ` の範囲で指定することができます。デフォルトでは、` 24 ` が指定されています。

` 0 ` を指定することで、出力される行数に関わらず無制限に表示させることができ、わざわざEnterキーを押す必要がなくなるメリットがあります。

### 使用例
```
Router# terminal length 0
Router#
```

### 省略形
```
Router# ter len 0
Router#
```

### 参考URL
- [terminal lengthコマンド ～コマンド出力の表示行数の設定～](https://www.n-study.com/cisco-basic/terminal-length/)

<a id="a10"></a>
## 10. exec-timeout 0 0
### 解説
` exec-timeout 0 0 ` は自動ログアウトをする時間を無制限に設定できるコマンドです。

` exec time-out (min) (sec) ` という形で、` min ` と ` sec ` をそれぞれ ` 0 ` と指定してあげることで、無制限にプロンプトを待機させてあげることができます。

その他にも、10分で自動ログアウトを設定したい場合は ` exec-timeout 10 0 ` とします。

` ラインコンフィグレーションモード ` で設定してください。

### 使用例
```
Router# configure terminal
Router(config)# line vty 0 15
Router(config-line)# exec-timeout 0 0
```

### 省略形
```
Router# conf t
Router# line v 0 15
Router# exec-t 0 0
```

### 参考URL
- [タイムアウトによるログアウトを停止する](http://jukenki.com/contents/cisco/ccna-lab-scenario/lab1-exec-timeout.html)

<a id="a11"></a>
## 11. password
### 解説
` password `は、ログインパスワードを設定するコマンドです。

たとえば、` password cisco ` で` cisco ` を設定できます。
設定後はパスワードを有効化するために ` login ` コマンドも続けて打ちましょう。

ともに ` ラインコンフィグレーションモード ` で設定することになります。

ただし、このパスワードは平文で設定されるので、のちに説明する ` service password-encryption ` コマンドで、かならず暗号化してください。

### 使用例
```
Router(config)# line console 0
Router(config-line)# password cisco
Router(config-line)# login
Router(config-line)#
```

### 省略形
```
Router(config)# line con 0
Router(config-line)# pass cisco
Router(config-line)# logi
Router(config-line)#
```

### 参考URL
- [password](https://beginners-network.com/cisco-catalyst-command/password.html)

<a id="a12"></a>
## 12. enable password
### 解説
` enable password ` は、enableパスワードを設定するコマンドです。

enableパスワードは、ログインパスワードとは別に` ユーザEXECモード ` から ` 特権EXECモード ` に移行する際に、入力するパスワードです。

たとえば、 ` enable password cisco ` で ` cisco ` を設定できます。

` グローバルコンフィグレーションモード ` で設定します。

### 使用例
```
Router# configure terminal
Router(config)# enable password cisco
Router(config)#
```

### 省略形
```
Router# conf t
Router(config)# ena p cisco
Router(config)#
```

<a id="a13"></a>
## 13. enable secret
### 解説
` enable secret ` は、enableパスワードを設定するコマンドです。

` enable password ` もenableパスワードを設定できますが、` enable secret ` はMD5というハッシュアルゴリズムに基づいており、復号できないようになっています。

そのため、 ` enable password ` と ` enable secret ` が、両方設定されている場合、セキュリティに ` enable secret ` が優先されます。

また、 ` enable password ` と ` enable secret ` で同一のパスワードを設定することはできません。

` enable secret ` は ` グローバルコンフィグレーションモード ` で設定します。

### 使用例
```
Router# configure terminal
Router(config)# enable secret cisco
Router(config)#
```

### 省略形
```
Router# conf t
Router(config)# ena s cisco
Router(config)#
```

### 参考URL
- [enable secret](https://beginners-network.com/cisco-catalyst-command/enable-secret.html)
- [ciscoSWの enable password と enable secret の違い](https://qiita.com/miyuki_samitani/items/16fce934747706655604)

<a id="a14"></a>
## 14. service password-encryption
### 解説
これまで紹介してきた ` password ` や ` enable password ` などのコマンドで設定した平文のパスワードを暗号化します。

もし ` password ` や ` enable password ` でパスワードを設定した場合、かならず設定しておきましょう。

` service password-encryption ` は ` グローバルコンフィグレーションモード ` で設定します。

### 使用例
```
Router# configure terminal
Router(config)# service password-encryption
Router(config)#
```

### 省略形
```
Router# conf t
Router(config)# service pas
Router(config)#
```

### 参考URL
- ["service password-encryption" によるパスワードの暗号化](https://community.cisco.com/t5/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%83%81%E3%83%A3-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/quot-service-password-encryption-quot-%E3%81%AB%E3%82%88%E3%82%8B%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96/ta-p/3129299)

<a id="a15"></a>
## 15. write memory
### 解説
` write memory ` は ` running-config ` の内容を ` startup-config ` に書き込みます。

` running-config ` は ` 揮発性メモリ(RAM) ` に、記録されているので電源を落とした場合、その内容を保持されずに消去されます。

なので、電源を落とした後も内容を保存するためには ` 不揮発性メモリ(NVRAM) ` の ` startup-config ` に記録する必要があります。

そこで ` write memory ` を利用することになります。

このコマンドは、 ` copy running-config startup-config ` でも代用できます。

` write memory ` は ` 特権EXECモード ` で設定します。

### 使用例
```
Router# write memory
Router#
```

### 省略形
```
Router# wr
Router#
```

### 参考URL
- [write ファイルのコピーを行う](https://ping-t.com/modules/cisco/?Cisco%A5%B3%A5%DE%A5%F3%A5%C9%BD%B8%2FW%2Fwrite)

<a id="a16"></a>
## 16. interface
### 解説
` interface ` は ` インターフェースコンフィグレーションモード ` に移行するために利用するコマンドです。

` インターフェースコンフィグレーションモード ` は、インターフェースに関する設定を行うことができます。

` interface interface-id ` という形で、Gi0やvlan1などのインターフェース ` interface-id ` を指定することで移行できます。

### 使用例
```
Router# configure terminal
Router(config)# interface GigabitEthernet0
Router(config-if)# 
```

### 省略形
```
Router# conf t
Router(config)# int Gi0
Router(config-if)# 
```

### 参考URL
- [interface](https://beginners-network.com/cisco-catalyst-command/interface.html)

<a id="a17"></a>
## 17. router
### 解説
` router ` は ` ルータコンフィグレーションモード ` に移行するために利用するコマンドです。

` ルータコンフィグレーションモード ` は、ルーティングに関する設定を行うことができます。

` router protocol ` という形で、 ` protocol (ルーティングプロトコル) ` を指定することで移行できます。

` ルーティングプロトコル ` とは ` ルーティングテーブル ` を設定するために利用するプロトコルです。

たとえば、 ` RIP ` や ` OSPF ` 、 ` EIGRP `などがあります。

### 使用例
```
Router# configure terminal
Router(config)# router rip
Router(config-router)# 
```

### 省略形
```
特になし
```

### 参考URL
- [router rip](https://www.fenet.jp/infla/tips/cisco_command_router+rip)
- [router eigrp [1～65535]](https://www.fenet.jp/infla/tips/cisco_command_router+eigrp+%5B1%EF%BD%9E65535%5D)
- [router ospf [1～65535]](https://www.fenet.jp/infla/tips/cisco_command_router+ospf+%5B1%EF%BD%9E65535%5D)


<a id="a18"></a>
## 18. line console 0
### 解説
` line console 0 ` は ` ラインコンフィグレーションモード ` に移行するために利用するコマンドです。

この移行によって、コンソールポートの設定を行うことができます。
[コンソールポート](https://e-words.jp/w/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%83%9D%E3%83%BC%E3%83%88.html)は、[RS232C](https://e-words.jp/w/RS-232C.html) + [RJ45](https://e-words.jp/w/RJ45.html) などのコンソールケーブルで機器に直接接続するときに利用される物理ポートです。

### 使用例
```
Router# configure terminal
Router(config)# line console 0
Router(config-line)# 
```

### 省略形
```
Router# conf t
Router(config)# line con 0
Router(config-line)# 
```

### 参考URL
- [line](https://beginners-network.com/cisco-catalyst-command/line.html)

<a id="a19"></a>
## 19. line vty 0 15
### 解説
` line vty 0 15 ` は ` ラインコンフィグレーションモード ` に移行するために利用するコマンドです。

この移行によって、VTYポートの設定を行うことができます。
[VTYポート](https://e-words.jp/w/VTY.html)は [Telnet](https://e-words.jp/w/Telnet.html) や [SSH](https://e-words.jp/w/SSH.html) などのリモート接続で利用される仮想ポートです。

` 0 15 ` の部分は ` 0 4 ` などとすることで、 設定するVTYポートの範囲を指定することができます。 

つまり、 ` line vty 開始回線 終了回線 ` という形で設定します。

### 使用例
```
Router# configure terminal
Router(config)# line vty 0 15
Router(config-line)#
```

### 省略形
```
Router# conf t
Router(config)# line v 0 15
Router(config-line)# 
```

### 参考URL
- [line](https://beginners-network.com/cisco-catalyst-command/line.html)

<a id="a20"></a>
## 20. logging synchronous
### 解説
` logging synchronous ` は、ログ出力の自動改行を設定するコマンドです。

これを設定しておかないと、コマンド入力時にログ出力されてしまったときに、再度打ち直すのが面倒なので、まず最初に設定しておきます。

` ラインコンフィグレーションモード ` で、コンソールポートとVTYポート、AUXポートに対してそれぞれ設定します。

### 使用例
```
Router# configure terminal
Router(config)# line vty 0 15
Router(config-line)# logging synchronous
```

### 省略形
```
Router# conf t
Router(config)# line v 0 15
Router(config-line)# logg s
```

### 参考URL
- [logging synchronous](https://beginners-network.com/cisco-catalyst-command/logging-synchronous.html)

<a id="a21"></a>
## 21. exit
### 解説
` exit ` は、モードを移行する際に、一つ前のモードに戻るというコマンドです。

たとえば、 ` グローバルコンフィグレーションモード ` から ` 特権EXECモード ` に移行する際などに利用します。

### 使用例
```
Router(config)# exit
Router# 
```

#### 省略形
```
Router(config)# exi
Router# 
```

### 参考URL
- [exit](https://beginners-network.com/cisco-catalyst-command/exit.html)

<a id="a22"></a>
## 22. end
### 解説
` end ` は、モードを移行する際に、間のコンフィグレーションモードをすっ飛ばして、` 特権EXECモード ` に戻るコマンドです。

` exit ` がひとつ刻みなのに対して、 ` end ` は一気に戻ります。

### 使用例
```
Router(config-if)# end
Router#
```

### 省略形
```
Ctrl + z
----------------------------
Router(Config-if)#^Z
Router#
```

### 参考URL
- [end](https://beginners-network.com/cisco-catalyst-command/end.html)

## まとめ
ここで紹介したコマンドはかならず利用することになるので、一つひとつ理解しながら確実に使えるようになりましょう。

また業務で使用するコマンドは、ここで紹介したものよりもはるかに多いので、もっとたくさん覚えて使いこなせるようになりましょう。