Artur Pyszczuk's blog...

"Musimy przyspieszyć ten algorytm" - powiedział programista PHP"
roflcopter.pl
/home/linux/terminal/

Używanie terminala

Wielu z was jak się domyślam z terminalem miało mało wspólnego, lub nie mieli styczności w ogóle. Dlatego też chciałbym w tym miejscu napisać pare słów na temat używania terminala.
W terminalu tudzież konsoli (jak kto woli) wpisywane są polecenia systemowe, system realizuje polecenie, odpowiada i dostajemy wynik naszego działania w formie komunikatu (albo się powiodło, albo nie, o tym za chwilę). Na temat poleceń systemowych zrobiłem osobny dział, w którym opisane są polecenia bardziej szczegółowo, w tym miejscu skupiam się na powiedzeniu wam jak używa się terminala, jak terminal komunikuje o błędach, jak pokazuje, że wszystko jest ok, itp.
Na Rys 1. pokazany został wygląd terminala, oraz polecenia cp (kopiowanie, więcej o poleceniach systemowych w osobnych dziale).

Terminal
Rys 1. Terminal

Gdzie:

Więcej o kopiowaniu plików i katalogów znajduje się w przeznaczonym do tego temacie. Praca z terminalem polega na wpisywaniu poleceń, które system operacyjny realizuje. Punktu (1) i (2) nie trzeba tłumaczyć. W punkcie (3) jest podana ścieżka do katalogu, w którym aktualnie się znajdujemy. Ścieżka do katalogu znajduje się pomiędzy znakiem dwukropka (:) oraz znakiem zachęty ($). Znak tylda (~) oznacza katalog domowy, w moim przypadku to /home/gruby. Czyli za znak tyldy można wstawić /home/gruby (np podczas zmieniania katalogu) i ścieżka do miejsca, w którym się znajdujemy była by opisana tak: /home/gruby/Desktop/test/ co jest równoważne z zapisem jaki jest pokazany na Rys 1.

Polecenie w terminalu wpisuje się z reguły schematycznie. Najpierw jest nazwa polecenia, później ewentualnie opcje (bo nie zawsze są potrzebne), a później w zależności od operacji jakieś dane wejściowe (jeśli mogę je tak nazwać), czyli do kopiowania/usuwania potrzebne są pliki/katalogi. Jeśli system zrealizował nasze polecenie, to terminal przejdzie do nowej linii, bez żadnego dodatkowego komunikatu i będzie czekał na następne polecenie. Czyli tak jak w przypadku pokazanym na Rys 1. zawartość katalog1 została skopiowana do katalog2, operacja była dozwolona, więc nie było żadnego błędu. Terminal przeszedł do nowej linii i czeka na kolejne polecenie.

Komunikowanie o błędach jest różne, tzn schemat jest prawie zawsze ten sam, tylko błędy z jakimi będziesz się spotykać podczas wpisywania poleceń są różne.

Permission denied
Rys 2. Permission denied

Na Rys 2. widzimy, że nie możemy wejść do katalog1, ponieważ nie mamy do tego uprawnień. Terminal wyświetla błąd. Po wyświetleniu błędu dostajemy możliwość wpisywania kolejnych poleceń.

Czasami jednak, żeby wykonać jakąś operację (instalacja pakietów, operacja na plikach systemowych, itp) musimy posiadać odpowiednie uprawnienia. Można zalogować się jako administrator przez konsole:

$ su

Zostaniemy poproszeni o podanie hasła, więc podajemy hasło Administratora, które ustawiliśmy tutaj i od tej pory zalogowani jesteśmy jako root (administrator). Jako root będziemy mogli wykonać każdą operację, co oczywiście wiąże się z pewnym ryzykiem, że możemy coś uszkodzić, dlatego też lepszym rozwiązaniem jest drugi sposób, dodanie sudo przed poleceniem, które wymaga uprawnień administratora (wykonujemy tylko tę operację z uprawnieniami administratora). Na przykład do zainstalowania z repozytorium dowolnego dostępnego pakietu trzeba wpisać:

$ sudo apt-get install nazwa_pakietu

Gdzie nazwa_pakietu to nazwa instalowanego pakietu. Tutaj też będziemy musieli wpisać hasło, lecz hasło do naszego konta.

Uwaga: sudo w standardzie działa w Ubuntu, lecz w innych dystrybucjach Twój użytkownik może nie mieć możliwości korzystania z tego programu, dlatego też w razie gdyby tak było, wystarczy, że zalogujesz się na konto administratora i wykonasz polecenie, które takich uprawnień wymagało.

Bardzo przydatnym klawiszem podczas używania konsoli jest Tab. Tab uzupełnia brakujący tekst polecenia/nazwy pliku/nazwy katalogu. Jeśli mamy skopiować jakiś plik, nie bądąc pewni czy faktycznie znajduje się on w katalogu, w którym aktualnie jesteśmy możemy doprowadzić do sytuacji jak pokazano na rys. 3 i upewnić się czy ten katalog/plik istnieje. Ogólny schemat użycia jest następujący:

$ nazwa_polecenia <TAB><TAB>

Gdzie:

Użycie klawisza tab
Rys 3. Użycie klawisza tab - cp


Innym ważnym zastosowaniem tego klawisza jest dopełnienie nazwy polecenia, którego nie pamiętamy. Na rys. 4 pokazane zostało polecenie apt-get i mozliwe opcję.

Użycie klawisza tab
Rys 4. Użycie klawisza tab - apt-get


Kolejne ułatwienie jest wtedy, gdy znamy początek nazwy pliku/pakietu itp, lecz nie znamy całości, z pomocą oczywiście przychodzi Tab.

Użycie klawisza tab
Rys 5. Użycie klawisza tab - apt-get install


Strzałką do góry wyświetlamy ostatnio używane polecenie, kilkukrotne wciśnięcie przechodzi przez historię używanych poleceń od najmłodszych do najstarszych. Strzałką w dół od najstarszych do najmłodszych.

Używanie konsoli znacznie przyspiesza pracę. Wiadomo, że usunięcie wszystkich plików z danego katalogu przez okienko jest proste. Klikamy CTRL+A (zaznacz wszystko), klikamy DEL (ewentualnie Shift+DEL) i po sprawie. Co jednak, gdy chcemu usunąć wszystkie pliki zaczynające się od liter "Adm"? W sumie też łatwo w okienku znaleść miejsce od którego się zaczynają i miejsce gdzie się kończą (zaznaczyć, usunąć i po sprawie). A co jeśli chcemy usunąć wszystkie pliki, które kończą się frazą "mek"? Z pewnością będzie trudno usuwając to spod okienek, jeśli plików będą tysiące (czysto hipotetycznie założone). W konsoli jest to banał. Wchodzimy do konsoli, przechodzimy do katalogu (więcej o przechodzeniu do katalogów znajduje się w opisie polecenia cd), gdzie mieszczą się dane pliki i wpisujemy:

$ rm *mek

Rys. 6 przedstawia tę sytuację. Znak "*" jest znakiem wieloznaczności (ang. Wildcard), oznacza to tyle, że usuwane są wszystkie pliki, które zaczynają się od dowolnych znaków, lecz kończą się na frazie "mek". Analogicznie działa to w drugą stronę, czyli chcąć usunąć pliki zaczynające się od znaków "adm" musimy wpisać w konsoli:

$ rm adm*

Do usunięcia wszystkiego z katalogu wystarczy wpisać rm *, aczkolwiek działa to tylko wtedy, gdy w katalogu są same pliki. Więcej o usuwaniu znajduje się w opisie polecenia rm.

Użycie znaku wieloznaczności
Rys 6. Użycie znaku wieloznaczności "*" (ang. Wildcard) - Usuwanie plików kończących się na podanej frazie.


Chcąc usunąć wszystkie pliki, których rozszerzeniem jest przykładowo .txt, w konsoli wpisujemy (Rys. 7):

$ rm *.txt

Użycie znaku wieloznaczności
Rys 7. Użycie znaku wieloznaczności "*" (ang. Wildcard) - Usuwanie plików z rozszerzeniem .txt


Na początku, jak zacząłem używać Linuksa też było mi ciężko przestawić się na konsole, w ogóle wpisywanie poleceń w konsoli było dla mnie czarną magią. Teraz, nie wyobrażam sobie innej pracy. Oczywiście używam też standardowych metod znanych z Windowsa, czyli kopiowanie plików przez okienka, ale znacznie częściej używam do tego konsoli, bo jest to dużo, dużo szybsze.



Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |