Jak sprawnie poruszać się po IOS

Jakub Krawczyk
Jakub Krawczyk Skomentuj

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 outputCode 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 allCode 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:

  1. 1. Rodziny systemu Cisco IOS
  2. 2. Wersjonowanie IOS oraz IOS XE
  3. 3. Podstawy korzystania z IOS
  4. 4. ROMMON – wszystko co musisz wiedzieć
  5. 5. Jak sprawnie poruszać się po IOS
  6. 6. Podstawowa konfiguracja RADIUS w IOS PREMIUM
  7. 7. Konfiguracja banerów w IOS

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.

Skróty klawiaturowe IOS.

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.

Zostaw komentarz
Otrzymuj powiadomienia z tej dyskusji
Powiadom mnie o
guest

0 - Ilość komentarzy
Inline Feedbacks
View all comments