이 문서에서는 Cisco IOS® Shell(IOS.sh) CLI 모듈에 대해 설명합니다.
Cisco에서는 Cisco IOS Release 15.1(4)M, 15.1(2)S 및 이후 릴리스에 대한 지식을 보유하고 있는 것이 좋습니다.라우터에서 Cisco IOS.sh 기능 및 기능을 사용하려면 Cisco IOS.sh를 구성하고 활성화해야 합니다.
이 문서의 정보는 다음 하드웨어 및 소프트웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
Cisco IOS.sh는 Cisco IOS CLI에서 셸 스크립팅을 사용할 수 있는 모듈입니다.이 모듈은 일상적인 작업을 자동화하고 장치 관리를 간소화합니다.Cisco IOS Embedded Event Manager(EEM)와 같은 다른 관리 툴과 함께 사용할 수 있습니다.
디바이스에서 셸 CLI를 활성화하려면 다음을 입력합니다.
Switch#terminal shell
셸 CLI를 비활성화하려면 다음을 입력합니다.
Switch#terminal no shell
이 기능은 셸이 함수/애플릿을 검색할 수 있는 디렉토리 목록을 포함하는 PATH 변수를 지원합니다.또한 셸 CLI는 다음 기능을 지원합니다.
Switch#show version | grep 15.1
Cisco IOS Software, s2t54 Software (s2t54-ADVENTERPRISEK9-M),
Version 15.1(1)SY, RELEASE SOFTWARE (fc2)
Switch#show version | grep 15 > bootdisk:version.txt
Switch#dir bootdisk:
Directory of bootdisk:/
14 -rw- 280 Nov 15 2012 23:25:32 +00:00 version.txt
1024557056 bytes total (577273856 bytes free)
Switch#cat bootdisk:version.txt
Cisco IOS Software, s2t54 Software (s2t54-ADVENTERPRISEK9-M),
Version 15.1(1)SY, RELEASE SOFTWARE (fc2)
Cisco IOS.sh에는 사용자 기능을 위한 애플리케이션 및 필터를 생성하는 데 도움이 되는 여러 가지 내장 애플릿이 포함되어 있습니다.
[[ evaluate a logical test expression
cat output data from a pipe or file to the terminal
cut edit piped output
echo echo arguments to the terminal
false return false in while or if expressions, and set the result
fetch return values from the configuration database
grep search for regular expressions in piped output or files
head print the first lines in the input
interface print interfaces that match the argument
let evaluate a numeric expression, and set the result
man print information for built-ins
more page piped output to the terminal
nl number the lines in the input
null ignore the input
printf output formatted data to the terminal
read read input into variables
set_oper set operational values
sleep pause execution of the terminal
sort sort the input
tail print the tail of the input
true return true in while or if expressions, and set the result
uname print system information
wc count lines, words, and characters
if..에 대한 명령은 다음과 같습니다..그런 다음...else 연산자
Switch#x=5
Switch#if [[ $x != 5 ]];
then.else.fi>then
then.else.fi>echo false;
then.else.fi>else
else..fi>echo true;
else..fi>fi;
true
Switch#
이러한 비교 연산자는 정수 값을 사용하는 데 사용됩니다.
연산자 | 설명 |
-eq | Arg1-eq Arg2. Arg1이 Arg2와 같으면 True입니다. |
-네 | Arg1-ne Arg2. Arg1이 Arg2와 같지 않으면 True입니다. |
-lt | Arg1-lt Arg2. Arg1이 Arg2보다 작으면 True입니다. |
-gt | Arg1-gt Arg2. Arg1이 Arg2보다 큰 경우 True |
-ge | Arg1-ge Arg2. Arg1이 Arg2보다 크거나 같으면 true입니다. |
-le | Arg1-le Arg2. Arg1이 Arg2보다 작거나 같으면 True입니다. |
다음 조건을 사용하여 파일을 사용할 수 있습니다.
연산자 | 설명 |
-a 또는 -e | 파일이 있는 경우 True |
-d | 파일이 있고 디렉터리인 경우 True |
-f | 파일이 있고 일반 파일인 경우 True |
-r | 파일이 있고 읽을 수 있는 경우 True |
-s | 파일이 있고 크기가 0보다 큰 경우 True입니다. |
-w | 파일이 있고 실행 파일인 경우 True |
-nt | file1이 file2보다 최신인지 테스트합니다. 파일의 수정 날짜는 이 비교에 사용됩니다. |
-발신 | file1이 file2보다 오래되었는지 테스트 |
비교 연산자 내에서 여러 조건을 사용하려면 다음 논리 연산자를 사용할 수 있습니다.
&& Logical AND
|| Logical OR
루프는 Linux 셸과 동일합니다.두 개의 연산자를 사용할 수 있습니다.
for 연산자에 대한 명령은 다음과 같습니다.
Switch#for x in 11
do..done>do
do..done>ping 192.0.2.$x
do..done>done
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.0.2.10,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Switch#
while 연산자에 대한 명령은 다음과 같습니다.
Switch#for i in 1 2 3
do..done>do
do..done>while [ $i -lt 3 ]
do..done>do
do..done>echo $i
do..done>done
do..done>i=i+1
do..done>done
Switch#
문자열 비교의 경우 if....그런 다음...else 연산자는 다음 수정 사항과 함께 사용할 수 있습니다.
연산자 | 설명 |
== | 문자열 1 == string2, 문자열이 같으면 True입니다. |
!= | 문자열 1 != string2, 문자열이 같지 않으면 True |
< | string1 < string2, string1이 string2보다 사전적이면 True |
> | string1 > string2, string1이 string2보다 사전순으로 큰 경우 True |
Switch#function add_desc() {
{..} >show running-config interface Gi$1
{..} >configuration terminal
{..} >interface Gi$1
{..} >description $2
{..} >end
{..} >show running-config interface Gi$1
{..} >}
Switch#add_desc 5/1 SHELL_TEST
Building configuration...
Current configuration : 74 bytes
!
interface GigabitEthernet5/1
ip address 192.0.2.10 255.255.255.0
end
Enter configuration commands, one per line. End with CNTL/Z.
Building configuration...
Current configuration : 98 bytes
!
interface GigabitEthernet5/1
description SHELL_TEST
ip address 192.0.2.10 255.255.255.0
end
Switch#
이 섹션을 사용하여 컨피그레이션이 제대로 작동하는지 확인합니다.
현재 터미널 컨피그레이션을 표시하려면 show terminal 명령을 입력합니다.
Switch#show terminal
Line 2, Location: "", Type: "XTERM-COLOR"
Length: 44 lines, Width: 155 columns
Baud rate (TX/RX) is 9600/9600
Status: PSI Enabled, Ready, Active, No Exit Banner, Ctrl-c Enabled
........
Preferred transport is lat.
Shell: enabled
Shell trace: off
사용자 정의 함수를 포함하는 모듈에서 사용 가능한 모든 기능을 표시하려면 show shell functions 명령을 입력합니다.
Switch#show shell functions
#User defined functions:
Function namespace: DEFAULT
function add_desc()
{
show running-config interface Gi$1
configure terminal
interface Gi$1
description $2
end
show running-config interface Gi$1
}
현재 이 컨피그레이션에 사용할 수 있는 특정 문제 해결 정보가 없습니다.