Poradnik Debianowca część 5 – nano, vim oraz konfiguracja sieci

Po 4 częściach jesteśmy już wstanie swobodnie poruszać się po naszym systemie. Niestety wiele nie zrobimy, jeżeli nie będziemy mieli dostępu do Internetu oraz nie znali narzędzi, które służą do edytowania plików pod Debianem. W tej części poznamy dwie podstawowe aplikacje do edycji plików tekstowych. Na samym końcu skonfigurujemy dostęp do Internetu. Będzie on niezbędny do dalszych części poradników.

Na sam początek zapoznamy się z edytorami. Domyślnie w każdym systemie operacyjnym Linux instalowane są dwa. Jeden o mniejszych możliwościach, ale za to łatwiejszy w obsłudze – nano, drugi, bardziej rozbudowany – Vim. Pierwszy pod ogień pójdzie nano.

nano

Aplikacja nano powstała w 1999 roku. Jej zaletami są bardzo małego wymagania, otwarty kod źródłowy oraz możemy z tej aplikacji korzystać bez zainstalowanego środowiska graficznego. Posiada kolorowanie składni, które jest bardzo przydatne dla programistów. Oczywiście nie ma takich opcji jak pogrubienie, kursywa, wielkość czcionek. Jest to normalna aplikacja do edytowania plików jak np. Notatnik w systemie Windows.

Skróty klawiszowe

Otwieranie pliku – nano

Jeżeli chcemy otworzyć plik, wpisujemy polecenie nano a następnie podajemy nazwę pliku lub jego ścieżkę.

Zapisywanie pliku – Ctrl + O

Powyższy skrót służy do zapisywania pliku. Zawsze przed ostatecznym zapisaniem aplikacja poprosi nas o podanie nazwy edytowanego pliku. Jeżeli chcemy, aby pozostała niezmieniona wciskamy klawisz Enter.

poradnik_debianowca5_1

Jeżeli przez przypadek naciśniemy skrót, który zapisuje zmiany, to możemy się z tego kroku wycofać wciskając skrót klawiszowy Ctrl + C.

Ctrl + X – zamykanie programu

Jeżeli przed zamknięciem programu wprowadziliśmy zmiany do pliku i ich nie zapisaliśmy, to program zapyta nas, czy je wprowadzić.

Ctrl + K – wycinanie linii

Skrót klawiszowy służy do wycinania całej linii tekstu. Jak to zrobić? Ustawiamy kursor wprowadzania tekstu (ten kwadracik) na poczatku zdania i naciskamy skrót klawiszowy Ctrl + K.

poradnik_debianowca5_2

Ctrl + U – wklejanie tekstu do dokumentu

Istnieje również możliwość wklejania tekstu do naszego dokumentu.

poradnik_debianowca5_3

Ctrl + 6 – zaznaczanie danego obszaru tekstu

Możemy zaznaczyć dowolny obszar tekstu. Wciskamy skrót klawiszowy Ctrl + 6 (uwaga, nie wciskamy klawisza z numerem 6 na klawiaturze numerycznej, tylko ten, który znajduje się nad literami!) i przy pomocy strzałek zaznaczamy dowolny obszar tekstu. Aby wyłączyć zaznaczanie tekstu, wciskamy jeszcze raz skrót Ctrl + 6.

poradnik_debianowca5_4

Tak zaznaczony tekst możemy np. wyciąć.

Ctrl + W – wyszukiwanie fragmentu tekstu.

Aplikacja pozwala wyszukiwać podane przez nas frazy w treści dokumentu. Po wciśnięciu tego skrótu pojawi się nam pasek, w którym podajemy frazę do znalezienia.

poradnik_debianowca5_5

Wpisujemy np. wyraz, który chcemy odszukać w tekście i wciskamy klawisz Enter. Jeżeli taki tekst zawiera się w treści dokumentu, to kursor wprowadzania tekstu go zaznaczy.

poradnik_debianowca5_6

Gdy chcemy sprawdzić, czy dana fraza występuje w treści po raz kolejny, to znów wciskamy skrót Ctrl + W i następnie Enter. Nie musimy ponownie wpisywać tego samego wyrazu, ponieważ aplikacja przechowuje go w pamięci do momentu wpisania nowej szukanej.

W przypadku znalezienia kolejnego wystąpienia, zostanie ono zaznaczone jak na powyższym screenie.

W przypadku braku wyników zostaniemy poinformowani odpowiednim komunikatem.

poradnik_debianowca5_7

Opisać nano mógłbym o wiele szerzej, ale te poznane skróty i opcje pozwolą nam na płynne edycje, nawet dłuższych dokumentów.

Vim

Vim jest edytorem bardziej rozbudowanym, niż nano. Jego potęga tkwi w rozbudowanych możliwościach edycyjnych. Vim nie posiada stricte takich skrótów klawiszowych jak nano. Vim’a obsługuje się przy pomocy poleceń.

Vim dzieli się na dwa tryby. Pierwszy tryb to wprowadzanie tekstu, gdzie aplikacja umożliwia nam wprowadzanie tekstu do dokumentu. Drugi tryb umożliwia wprowadzanie odpowiednich poleceń, które wykonują określoną operację.

Skróty klawiszowe i polecenia: (skróty pobrane ze strony. Link w opisie.)

poruszanie się po dokumencie:
+ – przejście do następnej linii
- – przejście do poprzedniej linii
0 – przejście do początku linii
^ – przejście do pierwszego znaku nie będącego znakiem białym w linii
$ – przejście na koniec linii
n| – przejście do kolumny n linii
} – przejście do następnego paragrafu
{ – przejście do poprzedniego paragrafu
% – przejście do otwarcia / zamknięcia nawiasu (),[],<>,{}
G – przejście na koniec dokumentu
nG – przejście do linii

zapisywanie:
:x lub :wq – zapisywanie pliku i wyjście
:q! – wyjście bez zapisania zmian
:w plik – zapisanie w nowym pliku „plik”

wyszukiwanie:
/ STRING – szukanie do przodu
? STRING – szukanie do tyłu
n – przejście do następnego znalezionego elementu
SHIFT+n przejście do poprzedniego znalezionego elementu

kasowanie tekstu:
x – kasowanie bieżącego znaku
nx – kasowanie znaków
dw – kasowanie bieżącego wyrazu
dd – kasowanie bieżącej linii
ndd – kasowanie linii
D – kasowanie znaków od kursora do końca bieżącej lini
dG – kasowanie wszystkiego od kursora do końca dokumentu

edycja tekstu:
o – wstawienie nowej linii poniżej bieżącej
O – wstawienie nowej linii powyżej bieżącej
i – rozpoczęcie edycji przed kursorem
I – rozpoczęcie edycji na początku bieżącej linii
a – rozpoczęcie edycji po kursorze
A – rozpoczęcie edycji na końcu bieżącej linii
cw – zastąpienie wyrazu (bieżący wyraz się kasuje, kursor ustawia się na jego początku)
cc – zastąpienie linii (bieżąca linia się kasuje, kursor ustawia się na jej początku)

kopiowanie i wstawianie:
yw – kopiuj do schowka bieżący wyraz
yb – kopiuj do schowka poprzedni wyraz
Y – kopiuj do schowka bieżącą linię
nY – kopiuj następne linii
p – wklej skopiowany tekst za kursorem
P – wklej skopiowany tekst przed kursorem

inne:
u – cofnięcie ostatniej zmiany
U – cofnięcie wszystkich zmian w bieżącej linii
. – powtórzenie ostatniej komendy
SHIFT+# – wyszukiwanie wyrażeń pasujących do zaznaczonego
SHIFT+% – przejście do kolejnego nawiasu () lub {}
~ – zmiana litery z małej na dużą i na odwrót

Jak wygląda praktyka?

Długo zastanawiałem się, czy opisać vim’a, czy nagrać wideporadnik i decyzja padła na to drugie. Doszedłem do wniosku, że lepiej będzie, jak pokaże na “taśmie” podstawowe operacje, takie jak kopiowanie, wpisywanie tekstu, usuwanie, wyszukiwanie. W ramach odpoczynku od czytania zapraszam to obejrzenia wideoporadnika. Jest krótki, trwa tylko 11 minut.

Czy vim’a ktoś używam?

Patrząc na wideo oraz ilość poleceń i skrótów klawiszowych nasuwa się jeden wniosek – vim jest przykombinowany. Czy ktoś go używa?

Tak, bardzo cenią go osoby, które pracują jako programiści. Ich serca zaskarbił sobie tym, że wszystkie operacje na tekście można wykonać z poziomu klawiatury. Skakanie do odpowiednich linii, wklejanie, kopiowanie, zastępowanie słów i wiele, wiele innych operacji wykonuje się właśnie przy pomocy skrótów i poleceń.

Poznaliśmy dwa główne edytory, z którymi na pewno nie raz się spotkacie. Teraz przechodzimy do sedna artykułu, a mianowicie konfiguracji połączenia z Internetem.

Konfiguracja karty sieciowej

Ustawienia odnośnie konfiguracji karty sieciowej znajdują się w:

/etc/network/interfaces

W owym pliku “mówimy” karcie sieciowej jak ma pobierać adres IP, jeżeli statycznie, to jaka brama, jaka maska itd. Dzisiaj skupię się na konfiguracji połączenia LAN, czyli po kablu. Dlaczego nie Wi-Fi? Ponieważ niekiedy konfiguracja sieci bezprzewodowej może być bardzo karkołomna, także pozwoliłem sobie odstawić to na dalszy plan. W tej części zajmę się tylko konfiguracją połączenia kablowego.

Składnia

Każdy plik konfiguracyjny posiada specyficzną dla siebie składnię. Nie inaczej jest w przypadku interfaces. Oto przykładowy plik:

# Interfejs petli
auto lo
iface lo inet loopback

#eth0
auto eth0
iface eth0 inet static
address 10.0.0.199
netmask 255.255.255.0
gateway 10.0.0.200

Omawiamy linijka po linijce:

auto lo – słowo auto informuje jak system ma uruchomić interfejs sieciowy;

iface lo inet loopback – ogólnie loopback jest interfejsem, który pozwala jakby komunikować się systemowi z “samym z sobą” i te dwie pierwsze linijki zawsze muszę znajdować się w pliku interfaces.

auto eth0 – informuje w jaki sposób system ma uruchomić interfejs sieciowy eth0.

Interfejsy sieciowe w systemach Linux oznaczane są eth0, eth1, eth2 itd. Do każdej karty sieciowej przypisany jest odpowiedni, kolejno wolny interfejs. Słowo eth można porównać do Połączenie lokalne w systemie Windows.

iface eth0 inet static – linijka informuje w jaki sposób będzie przypisywany adres IP dla danego interfejsu. Bardzo ważne jest tutaj słowo static. Mówi nam ono, że adres IP będzie przypisany ręcznie według niżej podanych parametrów. Jeżeli linijka wyglądałaby w taki sposób:

iface eth0 inet dhcp – adres IP będzie przypisany dynamicznie przez serwer DHCP.

address 10.0.0.199 – słówko address przypisuje statycznie adres IP do karty sieciowej. Po spacji podajemy adres IP, jaki ma być przypisany karcie sieciowej.

netmask 255.255.255.0 – netmask oznacza bramę. Po spacji podajemy odpowiedni numer bramy.

gateway 10.0.0.200 – przypisuje karcie sieciowej odpowiedni adres bramy. To pole nie jest wymagane. Obowiązkowo musimy podać adres IP oraz maskę, aby interfejs ze statycznym przydzielaniem adresów IP mógł się w ogóle uruchomić.

Konfigurujemy karty sieciowe

Mniej więcej już coś wiemy, więc najwyższy czas rozpocząć konfigurację. Logujemy się jako root i wpisujemy:

nano /etc/network/interfaces

lub jak kto woli edytor Vim:

vi /etc/network/interfaces

Jeżeli instalowaliśmy system Debian z podłączonym Internetem, to jest wysoce prawdopodobne, że oprócz interfejsu lo znajduje się również eth0, który jest poprawnie skonfigurowany do łączenia się z siecią. Zostawmy go w spokoju. Ja Wam pokaże jak skonfigurować taki scenariusz:

eth2 – adres IP ma być przydzielany dynamicznie;

eth3 – adres IP ma być przydzielany statycznie według takich wytycznych:

IP: 192.168.0.165
Maska: 255.255.255.0
Brama: 192.168.0.1

UWAGA!!!

WSZYSTKIE TE WPISY MAJĄ ZNAJDOWAĆ SIĘ POD KONFIGURACJĄ INTERFEJSU LO.

UWAGA!!!

Do dzieła. Na początku konfigurujemy interfejs eth2:

auto eth2
iface eth2 inet dhcp

i tyle. Te dwie linijki załatwiają wszystko. Teraz pora na eth3:

auto eth3
iface eth3 inet static
address 192.168.0.165
netmask 255.255.255.0
gateway 192.168.0.1

poradnik_debianowca5_8

Mamy już skonfigurowane obydwa interfejsy. Zapisujemy zmiany wprowadzone do pliku. Aby jednak nasze nowe ustawienia weszły w życie, musimy przeładować usługę odpowiedzialną za połączenie z internetem. Wpisujemy zatem polecenie, oczywiście nadal będąc jako root:

/etc/init.d/networking restart

Przez kilka sekund będą pojawiać nam się różne informacje na ekranie i jeżeli nie popełniliśmy żadnej literówki, to błędu nie powinniśmy ujrzeć.

poradnik_debianowca5_9

W przypadku popełnienia błędu najczęściej widzimy taki obraz:

poradnik_debianowca5_11

W naszym przypadku jest wszystko dobrze.

Zapewne zastanawiacie się jak sprawdzić stan kart sieciowych, adres IP, maskę itd. W systemie Windows służy do tego polecenie ipconfig, zaś w Linuksie ifconfig. Musimy je oczywiście wykonać jako root. Wpisujemy więc:

ifconfig

i pojawią nam się informacje na temat interfejsów sieciowych:

poradnik_debianowca5_12

Może się tak zdarzyć, że wszystkie informacje nie zmieszczą się nam na ekranie. Gdy się tak zdarzy, wpisujemy jeszcze raz ifconfig, ale w takiej postaci:

ifconfig | more

Dobrze wiemy z filmu co robi more ;).

poradnik_debianowca5_13

Wygląda na to, że jest wszystko ok. Sprawdzimy jeszcze, czy pakiety dotrą do wybranej przez nas strony. Krótko mówiąc, spingujemy ją.

ping -c4 www.morfiblog.pl

Co oznacza -c4? Zostaną wysłane 4 pakiety. Gdybyśmy nie podali flagi c i nie wpisali konkretnej cyfry, bądź liczby, to strona byłaby non stop pingowana.

poradnik_debianowca5_14

Jak widzimy, odpowiedzi do nas docierają, czyli połączenie z siecią Internet mamy.

eth karty sieciowej

Interfejs eth jest przypisywany nie jako do adresu MAC karty sieciowej. Jak to dokładnie wygląda? Mamy kartę A, która posiada numer interfejsu eth0. Spaliła się nam, więc wymieniamy ją na kartę B. Ona jednak dostaje eth1, mimo, że karty A już nie ma i de facto eth0 jest interfejsem wolnym. Jeżeli zmienialiśmy dużo kart sieciowych w ostatnim czasie, to te interfejsy mogą nam się całkowicie pomylić.

Jak dociec, który interfejs posiada karta sieciowa? Wpisujemy polecenie:

nano /etc/udev/rules.d/70-persistent-net.rules

Przed oczami pojawi nam się coś tak:

poradnik_debianowca5_15

W tym pliku znajdują się adresy fizyczne kart sieciowych oraz przypisane do nich interfejsy. Jeżeli wpisów jest tak dużo, że nie orientujemy się totalnie o co chodzi lub po prostu nie rozumiemy ich, to kasujemy całą zawartość, zapisujemy zmiany do pliku i ponownie uruchamiamy komputer. System podczas uruchamiania automatycznie doda odpowiednie wpisy do owego pliku i przypisze odpowiednie interfejsy.

Dodam jeszcze jedną ciekawostkę na koniec. Jeżeli nie trafimy w interfejs, czyli np. w pliku interfaces wpiszemy eth5, a on nie jest nigdzie przypisany, to system wyświetli taki komunikat:

poradnik_debianowca5_16

Co w następnej części?

Po tej części będziemy posiadać dostęp do Internetu na naszej maszynie. Z posiadaniem sieci Internet wiąże się… instalowanie aplikacji!

W kolejnej, 6 części dowiemy się, co to są repozytoria i – będziemy instalować pierwsze aplikacje w naszym systemie :). Coraz bardziej zbliżamy się do momentu, w którym nasz, póki co jeszcze bardzo minimalistyczny system stanie się potężnym zestawem aplikacji skonfigurowanym od zera przez nas :).