Nie da się ukryć, że praca w Cisco IOS wiąże się ze żmudnym wpisywaniem komend w wierszu poleceń CLI. System IOS posiada jednak wiele usprawnień, dzięki którym konfiguracja może być nie tylko prostsza, ale i dużo szybsza. Dzisiaj przedstawię Ci kilka funkcji i skrótów klawiaturowych, dzięki którym będziesz mógł poruszać się po command line jak prawdziwy ninja.
Pomocne funkcje w IOS
W artykule na temat podstaw działania IOS omówiliśmy poszczególne tryby konfiguracyjne dostępne w IOS oraz podstawy nawigacji między nimi. Dziś zajmiemy się sposobami na przyspieszenie pracy w systemie Cisco.
Tab
Pierwszym przydatnym trickiem jest używanie klawisza Tabulatora (Tab) do uzupełniania poleceń. Dzięki niemu nie musisz wpisywać całych słów a tylko ich część. Naciskając Taba system sam uzupełni do końca treść danej frazy. Na przykład jeśli chcesz wpisać słowo interface to wystarczą tylko litery in, a wciśnięcie Tabulatora uzupełni komendę i ukaże się ona w całości w nowej linii.
Switch(config)#in
Switch(config)#interface
Code language: plaintext (plaintext)
Jeśli Tabulator nie będzie uzupełniać komendy to znaczy, że system nie może jej odnaleźć lub istnieje więcej poleceń zaczynających się od tych samych liter. Wtedy warto skorzystać z pomocy kontekstowej.
Help ?
Jeśli Tabulator nie chce uzupełnić wyrazu spróbuj użyć znaku zapytania „?” po wpisanej frazie. System automatycznie wskaże wszystkie dostępne polecenia zaczynające się od już wpisanych liter. Sprawdźmy jakby to wyglądało gdybyśmy w poprzednim przykładzie wpisali jedynie literę i.
Switch(config)#i?
interface ip
Code language: plaintext (plaintext)
System podpowiedział nam, że są dostępne dwie opcje: interface oraz ip.
Znaku zapytania możesz również użyć do wyszukiwania dostępnych poleceń w trybie, w którym aktualnie się znajdujesz. Zamiast komendy wpisujesz po prostu znak zapytania i otrzymujesz wszystkie dostępne w danym momencie polecenia.
Switch(config)#interface fastEthernet 0/1
Switch(config-if)#?
authentication Auth Manager Interface Configuration Commands
cdp Global CDP configuration subcommands
channel-group Etherchannel/port bundling configuration
channel-protocol Select the channel protocol (LACP, PAgP)
description Interface specific description
dot1x Interface Config Commands for IEEE 802.1X
duplex Configure duplex operation.
exit Exit from interface configuration mode
ip Interface Internet Protocol config commands
lldp LLDP interface subcommands
mdix Set Media Dependent Interface with Crossover
mls mls interface commands
no Negate a command or set its defaults
shutdown Shutdown the selected interface
spanning-tree Spanning Tree Subsystem
speed Configure speed operation.
storm-control storm configuration
switchport Set switching mode characteristics
tx-ring-limit Configure PA level transmit ring limit
Code language: plaintext (plaintext)
Pisanie skrótami
Ciekawym rozwiązaniem IOS jest to, że system nie wymaga pełnych nazw komend. Przykładowo przechodząc do trybu privileged EXEC zamiast wpisywać całą komendę enable możesz wpisać jedynie słowo en. Dla systemu będzie to już wystarczająca informacja, by zrozumieć Twoje polecenie. Warunek jest taki sam jak przy użyciu Tabulatora – nie może istnieć kilka poleceń zaczynających się od tych samych liter.
Switch>en
Switch#
Code language: plaintext (plaintext)
Jeśli komenda składa się kilku słów to możesz skrócić każde z nich. Sprawdźmy jak można to wykonać na przykładzie polecenia configure terminal.
Switch#c?
clear clock configure connect copy
Switch#conf
Switch#configure ?
terminal Configure from the terminal
<cr>
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#
Code language: plaintext (plaintext)
Słowo configure możemy skrócić do conf ponieważ od liter con zaczyna się jeszcze komenda connect. Słowo terminal jest jedynym dostępnym wyrazem zaczynającym się od litery t, dlatego możemy użyć tu tylko jednej litery.
Nawigacja strzałkami
Pomocne mogą być również strzałki kierunkowe na klawiaturze. Strzałki w prawo i lewo mają standardowe i raczej oczywiste zastosowanie. Pozwalają one na zmianę miejsca kursora w danej linii, dzięki czemu możemy poruszać się między wpisanymi znakami. Znacznie bardziej przydatną funkcję mają strzałki w górę i w dół. Pozwalają one poruszać się po historii komend jakie zostały wcześniej wpisane. Każde wciśnięcie strzałki w górę wyświetla kolejną komendę zapisaną w historii.
Switch(config)#interface range fastEthernet 0/1-10
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#interface range fastEthernet 0/1-10
Code language: plaintext (plaintext)
W przykładzie skonfigurowaliśmy zakres interfejsów i przypisaliśmy go do VLANu. Jeśli naciśniemy trzykrotnie strzałkę w górę, będziemy mieć już wpisane w wierszu polecenie interface range fastEthernet 0/1-10, które bardzo szybko możemy wyedytować.
Informacje o błędach
Wpisując w pośpiechu komendy nie jest problemem popełnić błąd i wcisnąć zły klawisz na klawiaturze. W takim przypadku najczęściej polecenie będzie dla systemu po prostu niezrozumiałe. W tym momencie pojawi się komunikat o błędzie. IOS nie tylko poinformuje Cię, że nie jest w stanie rozpoznać polecenia, ale dodatkowo za pomocą symbolu karety (zwanego potocznie daszkiem) wskaże, w którym miejscu jest błąd.
Switch#show wlan
^
% Invalid input detected at '^' marker.
Switch#
Code language: plaintext (plaintext)
Może się również zdarzyć, że wpisane polecenie będzie niekompletne. To znaczy, że nie podałeś wszystkich parametrów niezbędnych do jego prawidłowego wykonania. W takim przypadku również zostanie wyświetlony odpowiedni komunikat systemowy.
Switch#show
% Incomplete command.
Code language: plaintext (plaintext)
Używanie komendy do
Wyobraź sobie, że skonfigurowałeś właśnie VLAN i chcesz przejść do konfiguracji kolejnego, tylko nie pamiętasz jego numeru. Wpisujesz polecenie show vlan brief…i wyskakuje błąd, mimo, że składnia jest prawidłowa.
Switch(config)#show vlan brief
^
% Invalid input detected at '^' marker.
Code language: plaintext (plaintext)
Błąd wynika z tego, że będąc w trybie konfiguracji nie możesz skorzystać z poleceń, które dostępne są wyłącznie w trybie user EXEC lub privleged EXEC. Nieustanne przełączanie się między trybami to oczywiście zbędna komplikacja i strata czasu. Całe szczęście Cisco również o tym pomyślało. Jedną z funkcji IOS jest możliwość dodania do komend przedrostka do (ang. wykonaj), dzięki czemu można ich użyć również w trybach konfiguracyjnych.
Switch(config)#do sh vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/11, Fa0/12, Fa0/13, Fa0/14
Fa0/15, Fa0/16, Fa0/17, Fa0/18
Fa0/19, Fa0/20, Fa0/21, Fa0/22
Fa0/23, Gig0/1, Gig0/2
10 MGMT active Fa0/24
20 Data active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Code language: plaintext (plaintext)
Używanie filtrów
Wyniki niektórych komend potrafią być naprawdę długie. Szczególnie dla poleceń typu show ich output może zająć czasami setki wierszy, przez co znalezienie interesujących nas informacji zajmuje dużo czasu. W takiej sytuacji możesz skorzystać z filtrowania. Dzięki temu w poleceniu będą wyszukiwane tylko interesujące nas słowa.
Filtr włączamy poprzez użycie na końcu komendy symbolu pionowej kreski „|” (w języku angielskim nazywa się on pipe). Następnie musimy określić zakres filtru w postaci słowa kluczowego. Dostępne słowa kluczowe możesz sprawdzić oczywiście przy pomocy znaku zapytania.
Switch# show interface | ?
begin Begins unfiltered output of the show command with the first line
that contains the regular expression.
exclude Displays output lines that do not contain the regular expression.
include Displays output lines that contain the regular expression.
section Filter a section of output
Code language: plaintext (plaintext)
Ostatnim krokiem jest wpisanie parametru, który nas interesuje. Zobaczmy jak w szybki sposób możemy wyświetlić na naszym switchu wyłącznie konfigurację interfejsów typu line.
Switch# sh run | section line
line con 0
exec-timeout 0 0
stopbits 1
line vty 0 4
exec-timeout 30 0
transport input ssh
transport output all
Code language: plaintext (plaintext)
Filtry oprócz zwykłych słów umożliwiają stosowanie wyrażeń regularnych (ang. regular expression, w skrócie regex). Są to wzorce, które pomagają wyszukiwać fragment tekstu z dużo większą precyzją. Warto wiedzieć jak korzystać z regexa, ale jest to temat na tyle obszerny, że wymaga oddzielnego omówienia.
Cykl artykułów o podstawach korzystania z IOS
Artykuły publikowane w ramach cyklu o IOS można czytać niezależnie, ale najlepsze efekty osiągniesz, jeśli zapoznasz się z nimi po kolei. Cały cykl składa się z następujących artykułów:
Skróty klawiaturowe w IOS
Klawisze backspace i delete służą do usuwania pojedynczych znaków odpowiednio przed kursorem i za kursorem. Co jednak, gdy chcemy usunąć słowo lub całą komendę? Zamiast stukać w klawiaturę jak dzięcioł możesz użyć skrótów. Większość z nich działa poprzez jednoczesne naciśnięcie klawisza Control (Ctrl) oraz odpowiedniej litery alfabetu.
Szczególnym rodzajem skrótu jest kombinacja Ctrl-Z oraz Ctrl-C. Umożliwia ona szybki powrót z trybów konfiguracyjnych do trybu uprzywilejowanego.
Innym istotnym skrótem jest Ctrl-Shift-6. Służy on do przerywania niektórych poleceń, jak ping, traceroute czy wyszukiwań DNS. Przykład przerwanego wyszukiwania DNS widzisz poniżej.
Switch#nastykusieci.pl
Translating "nastykusieci.pl"...domain server (255.255.255.255) % Name lookup aborted
Switch#
Code language: plaintext (plaintext)
Przydatne komendy
IOS zawiera również kilka dodatkowych komend, które mogą pozytywnie wpłynąć na prace w wierszu poleceń. Przeczytasz o tym w naszym darmowym NSSletterze – mailingu dla sieciowców głodnych wiedzy.
Dołączając uzyskasz dostęp również do archiwum – tematykę tego artykułu rozszerzyliśmy w NSSletterze 032. Rozwiń swoją wiedzę już teraz i zapisz się używając formularza poniżej.
Ekstra!
Gdzie można znaleźć NSSlettery?
Zapisując się przez dowolny z formularzy zapisowych pod artykułami. Jeśli się nie wyświetlają to może jakaś wtyczka je Panu blokuje? Alternatywnie można zapisać się przez https://nssletter.pl