コの業界、特にインフラ系では、Ciscoがデファクトスタンダードで、避けては通れない。
で、このIOSは主にCLIで操作するのだが、独自のコマンド体系で、UNIX/Linux系のシェルに慣れている技術者には、少々とっつきにくい。
例えば、パイプ(|)はサポートされているが、grepコマンドではなくincludeコマンドを使う、などなど。
これを少しだけ解決するのが、今回紹介するIOS.sh。
IOS上でUNIX系のコマンドの一部と、Bourne Shell系の制御構造が使える。
バッチファイルを使うこともできる(エディタは無いが…)。
IOS.shは、IOS 15.1(4)M、15.1(2)S以降のバージョンでサポートされている。
サポートしているIOS上で「cat ?」と入力すると、
Switch>cat ? The command you have entered is available in the IOS.sh. However, the shell is currently disabled. You can enable it on this terminal by typing 'term shell' You can also enable it for all terminals by configuring the 'shell processing full' command. There is additional information in the man command. For more information, enable shell, and then enter: 'man IOS.sh' Switch>catと表示されることが確認できる。
起動と停止
IOSにログインして、「terminal shell」あるは短縮形で「term shell」と入力して起動する。Switch>terminal shell Switch>停止は、「terminal no shell」もしくは「term no shell」(「no term shell」じゃないんだな、これが)。
Switch>terminal no shell Switch>または、ログアウトしても停止する。
現在状態の確認
「show terminal」コマンドで調べる。Switch>show terminal | include Shell Shell: enabled Shell trace: off Switch>
実行中断
他のコマンド(ping等)と同様、[Ctrl]+[Alt]+[6] (HEX 1E。MacのTerminalからだと[Ctrl]+[^]らしい)で実行を中断することができる。Switch>i=0; while true; do echo $i; ((i=i+1)); done 0 1 2 <<略>> [Shift]+[Ctrl]+[6] 105 106 107 ^ % Invalid input detected at '^' marker. Switch>ちょっとゴミが出てるが気にしない。
追記: [Shift]+[Ctrl]+[6]で実行停止できない場合について、補足した。
マニュアル
Linux/Unix同様、manコマンドが使える。まずは、「man IOS.sh」を見よ。
Switch>man IOS.sh NAME IOS.sh - process shell input DESCRIPTION The IOS.sh is a set of add-on features to the IOS CLI. These features enables users to write scripts, execute functions, evaluate numeric and logical expressions, and perform loops over data using a standard, easy to learn syntax. In addition, the IOS.sh offers variable substitution, enhanced quoting, and a series of builtin functions that are designed to simplify the job of interacting with an IOS router. In order to learn about the IOS.sh, a set of man pages such as this one have been prepared to describe the various new features. The following man pages may be used learn about the shell. man compatibility - gives a quick overview of compatibility between shell and traditional IOS CLI man variables - describes the usage of variables man scripting - gives a quick overview of the scripting capabilities of IOS.sh man expressions - describes the expression syntax built into the IOS.sh man loops - describes loop structures built into IOS.sh man functions - describes how to use and write functions man quoting - describes the new quoting facility Switch>ちなみに、上の「man .*」の内、手元の環境15.2(2)E5では、「man loops」のみエラーとなった。
なお、単に「man」だけ入力すると、manコマンドで調査可能な項目の一覧が表示される。
Switch>man (( evaluate a numeric test expression IOS.sh The IOS shell [[ evaluate a logical test expression cat output data from a pipe or file to the terminal compatibility compatibility information on IOS.sh control control constructs in IOS.sh <<略>> variables usage of variables in IOS.sh wc count lines, words, and chars while iterate while an expression is TRUE Switch>
0 件のコメント:
コメントを投稿