Pomoc i przykłady powłoki Linuksa i terminali

Powłoka wiersza polecenia to tekstowy interfejs użytkownika dla systemu operacyjnego. W przeciwieństwie do powłoki GUI, która wykorzystuje graficzną reprezentację usług i zasobów systemu, powłoka wiersza poleceń używa tylko tekstu. Jest to podstawowy interfejs między tobą a systemem operacyjnym, aw wielu przypadkach oferuje bardziej bezpośrednią kontrolę nad procesami systemowymi.

Do czego służy Shell?

Jeśli chodzi o komunikację z systemem operacyjnym, wszystko, co możesz zrobić za pomocą GUI, można wykonać w wierszu poleceń. Na przykład, weźmy coś, co trzeba robić cały czas: przesuwaj pliki w systemie plików. Używając GUI, możesz wybrać ikony reprezentujące twoje pliki, przeciągnąć je do innego folderu i upuścić je, aby je przenieść.

Jednak za pomocą wiersza poleceń tę operację można wykonać za pomocą jednego polecenia:

Linia poleceń, gdy już się do tego przyzwyczaisz, pozwala kontrolować system z większą wydajnością i precyzją niż w przypadku GUI.

Dlaczego nazywa się to „powłoką”?

Interfejs użytkownika nazywany jest „powłoką”, ponieważ jest to zewnętrzna warstwa oddzielająca cię od najbardziej wewnętrznych części systemu operacyjnego, nazywana jądrem. Technicznie, GUI twojego systemu operacyjnego jest także „powłoką”, ale linia poleceń jest często określana jako „powłoka”.

Jak dostać się do powłoki wiersza poleceń?

Najczęstszym sposobem uzyskania dostępu do powłoki wiersza poleceń jest użycie emulatora terminala.

Jeśli używasz dystrybucji Linuksa, może uruchomić się w X Window System (lub „X”), co pozwala na uruchamianie programów we własnych oknach i interakcję z nimi za pomocą myszy. W X istnieją różne sposoby uruchamiania emulatora terminala, ale tutaj są najczęściej używane:

  • Wiele dystrybucji Linuksa używa środowiska graficznego podobnego do Microsoft Windows, które ma „Menu Start”. Z tego menu aplikacja terminala znajduje się zwykle w sekcji „Akcesoria”. Na przykład Lubuntu jest dostarczany z już zainstalowanym emulatorem terminala LXTerminal, a skrót znajduje się w menu Akcesoria.

    Wybranie pozycji menu terminala powoduje uruchomienie emulatora terminala i umieszczenie Cię w linii poleceń.

  • Różne wersje Linuksa używają różnych rodzajów menedżerów okien, z których każdy ma nieco inny interfejs. W wielu menedżerach okien kliknięcie prawym przyciskiem myszy na pulpicie powoduje wyświetlenie menu zawierającego opcję terminala. Na przykład, menu prawym przyciskiem myszy w Crunchbang Linux ma opcję „Terminal”. Poniżej znajduje się wygląd tego menu po kliknięciu prawym przyciskiem myszy w dowolnym miejscu na pulpicie.

    W tym miejscu menu Akcesoria miałoby również opcję uruchamiania terminala.

  • W wielu wersjach systemu Linux naciśnięcie klawisza Super i jednocześnie klawiszaT ” jest domyślnym skrótem klawiaturowym do uruchamiania terminala. (Klawisz Super jest zwykle pierwszym kluczem po lewej stronie spacji, zwanym również klawiszem Windows).

Jeśli nie możesz dowiedzieć się, jak uruchomić emulator terminala, zapoznaj się z dokumentacją konkretnego systemu operacyjnego i wyszukaj „terminal”.

Wiersz polecenia

Po uruchomieniu emulatora terminalu wyświetlany jest wiersz polecenia.

Uwaga: wszystkie te przykłady są wykonywane przy użyciu powłoki Bourne-Again Shell ( bash ), która jest domyślną powłoką wiersza poleceń w systemie Linux.

Przyjrzyjmy się dokładnie temu poleceniu. Monit może być skonfigurowany tak, aby był dowolny, ale domyślnie wygląda jak to, co widzimy tutaj, dostarczając nam przydatnych informacji, zanim wpiszesz polecenie.

W szczególności mówi nam kim jesteśmy (nazwa użytkownika) i gdzie jesteśmy (jaki system używamy i nasz katalog roboczy). Oto, co oznaczają poszczególne części zachęty:

Twoje imięTwoja nazwa użytkownika.
@Symbol at oddziela nazwę użytkownika i nazwę hosta.
wasz gospodarzNazwa hosta systemu.
:Dwukropek to znak oddzielający nazwę hosta od katalogu roboczego.
~Nasz bieżący („roboczy”) katalog. Tylda („ ~ ”) jest znakiem specjalnym, który reprezentuje nasz katalog domowy. Kiedy rozpoczynasz sesję powłoki, jest to katalog, w którym zazwyczaj zaczynasz pracować domyślnie.
$Specjalny znak, który wskazuje, że nie mamy uprawnień superużytkownika. Jeśli jesteś zalogowany jako root (superużytkownik), ta postać zmienia się na # .

Wprowadzanie poleceń

Wpiszmy nasze pierwsze polecenie. Powinniśmy zacząć od listy plików znajdujących się w naszym katalogu domowym. Najbardziej podstawowym sposobem na zobaczenie wszystkich tych plików jest użycie polecenia ls ; wpisz ls w wierszu polecenia i naciśnij enter.

Jak pokazano powyżej, polecenie ls wyświetla zawartość katalogu i umieszcza nas w innym wierszu polecenia.

Uwaga: Wszystkie polecenia i nazwy plików w systemach Unix i Linux uwzględniają wielkość liter. Na przykład komenda ls musi być wpisana małymi literami, tak jak powyżej.

Aby uzyskać bardziej szczegółową listę zawartości katalogu, możemy określić opcje wiersza polecenia, znane również jako przełączniki . Są to dodatkowe argumenty polecenia, które modyfikują sposób jego działania. Tutaj użyjemy opcji -l (użyj długiej listy), aby uzyskać więcej informacji z naszej listy.

Jak pokazano powyżej, polecenie ls -l dostarcza nam znacznie więcej informacji o zawartości naszego katalogu domowego. W tej chwili najważniejszą informacją, którą powinniśmy zauważyć, jest to, że pierwsza litera list jest d, co oznacza, że ​​każda z tych zawartości katalogu jest sama katalogiem.

Zanim zrobimy cokolwiek innego, oczyśćmy ekran, aby usunąć bałagan generowany przez wyjście z naszych poprzednich poleceń. Użyj polecenia clear, wpisując polecenie clear w nowym wierszu polecenia i naciśnij klawisz Enter .

Po naciśnięciu klawisza Enter ekran jest czyszczony i umieszczany w nowym wierszu polecenia u góry ekranu terminala.

Zmiana katalogu

Przejdźmy do naszego folderu dokumentów za pomocą polecenia cd („zmień katalog”). Aby zmienić bieżący katalog, wpisz „ cd ”, a następnie spację, a następnie nazwę katalogu, w którym chcesz zmienić, a następnie naciśnij enter.

Komenda cd zakłada, że ​​nazwa dowolnego podanego katalogu jest względna do bieżącego katalogu. Dlatego, aby przejść do katalogu dokumentów, który istnieje w naszym bieżącym katalogu, wpisz „ dokumenty cd ”.

Wiersz polecenia odzwierciedla teraz nowy katalog roboczy: ~ / documents, który jest równoważny pełnej ścieżce dostępu: / home / yourname / documents . Bez względu na to, jakiego użytkownika jesteś zalogowany, „ ~ ” zawsze reprezentuje Twój katalog domowy. W tym przykładzie nowy katalog roboczy jest również widoczny na pasku tytułu naszego okna terminala.

Uwaga: W przeciwieństwie do MS-DOS i Microsoft Windows hierarchiczne nazwy katalogów w Linuksie są oddzielone ukośnikiem („ / ”), a nie odwrotnym ukośnikiem („”). Ta zmiana symboli jest podstawową różnicą między tymi różnymi systemami operacyjnymi.

W dowolnym momencie możesz zweryfikować swój bieżący katalog za pomocą polecenia pwd („drukuj katalog roboczy”).

Polecenie wypisuje nazwę bieżącego katalogu do terminala, w tym przypadku „ / home / yourname / documents ”. Ponownie, z „ ~ / documents ” „ ~ ” oznacza nasz katalog domowy, czyli / home / twoja nazwa. Więc jeśli jesteśmy w naszym katalogu domowym, wpisanie „ dokumentów cd ”, „ cd / home / yourname / documents ” lub „ cd ~ / documents ” spowoduje umieszczenie nas w tym samym katalogu.

Przejdźmy teraz do jednego katalogu, z powrotem do naszego katalogu domowego. Specjalna nazwa katalogu „ .. ” (podwójna kropka) oznacza „jeden katalog w górę”.

Wróciliśmy do naszego katalogu domowego.

Uwaga: Jeśli jesteś bardziej zaznajomiony z MS-DOS, pamiętaj, że między cd a dwoma kropkami musi być spacja.

Przenoszenie plików

Teraz poznajmy, jak przenosić pliki.

Powiedzmy, że właśnie pobraliśmy dwa obrazy za pomocą przeglądarki internetowej i zapisaliśmy je w naszym folderze pobierania . Chodźmy tam i spójrzmy. Najpierw zmieniamy katalog w katalog pobierania .

Następnie wypisz pliki w katalogu za pomocą polecenia ls .

Tutaj widzimy dwa pliki JPEG. Wyjmijmy je z folderu pobierania i umieść je w odpowiednim miejscu, na przykład w folderze obrazów. Aby przenieść te pliki, użyjemy polecenia mv („move”).

Komenda mv ma następującą postać ogólną.

 mv [ OPCJE ...] PRZEZNACZENIE ŹRÓDŁA 

OPCJE są ujęte w nawiasy, ponieważ nie musisz określać żadnych opcji, aby ukończyć polecenie. Wymagane są argumenty ŹRÓDŁO i CEL .

SOURCE to nazwa pliku lub plików, które chcesz przenieść. CEL jest miejscem, do którego chcesz je przenieść. Jeśli CEL jest nazwą katalogu, plik lub pliki są przenoszone do tego katalogu.

Obecnie znajdujemy się w katalogu / home / yourname / downloads i chcemy przenieść pliki do / home / yourname / images . Możemy określić CEL DOCELOWY przy użyciu pełnej ścieżki („ / home / yourname / images ”) lub jako ścieżki do naszego bieżącego katalogu („ ../images ”) lub używając tyldy jako skrótu do naszego katalogu domowego ( „ ~ / obrazy ”). Wszystkie są równoważne i dają taki sam wynik. Użyjmy względnej ścieżki do naszego CELU : ../images .

Jak więc określimy nasze ŹRÓDŁO ?

Chcemy przenieść oba pliki i są to jedyne pliki w katalogu. Zatem najprostszym sposobem określenia ich byłoby powiedzenie mv „przeniesienie wszystkich plików w tym katalogu do ../images ”. Możemy to zrobić za pomocą symbolu wieloznacznego.

Symbol wieloznaczny to specjalny znak, który może reprezentować więcej niż jedną nazwę pliku (lub więcej niż jedną część nazwy pliku). Tutaj użyjemy znaku wieloznacznego gwiazdki („ * ”). Jeśli użyjemy * jako naszej całej nazwy pliku, powłoka zastosuje nasze polecenie do każdego pliku w naszym katalogu roboczym.

Nasze polecenie będzie więc brzmiało następująco: „ mv * ../images ”. Wprowadźmy to teraz.

Wygląda na to, że nic się nie stało, ale jest to sposób, w jaki muszla nam powiedzieć, że nie wystąpiły żadne błędy. Gdyby wystąpił problem, wyświetliłby komunikat o błędzie lub ostrzeżenie.

Sprawdźmy, czy pliki zostały przeniesione. Możemy wyświetlić zawartość innego katalogu, uruchamiając ls i podając nazwę ścieżki. W tym przypadku nasza nazwa ścieżki to „ ../obrazy ”.

Są tam zarówno obrazy, jak i inny katalog, który już istniał („ tapety ”). Powinniśmy stworzyć nowy własny katalog, aby lepiej zorganizować nasze obrazy i zachować porządek w głównym katalogu obrazów . Zróbmy to teraz.

Tworzenie katalogów

Przejdźmy do katalogu obrazów, w którym znajdują się nasze dwa obrazy pingwinów.

Zróbmy teraz nowy katalog dla naszych obrazów pingwinów. Tworzenie nowych katalogów odbywa się za pomocą komendy mkdir .

Najprostszą formą polecenia mkdir jest podanie jednego argumentu: nazwy nowego katalogu. Chcielibyśmy stworzyć nowy katalog w naszym bieżącym katalogu, więc nie musimy podawać mkdir pełnej ścieżki, tylko nazwę samego katalogu. Nazwijmy nasz nowy katalog pingwinami-pikselami .

Zatem polecenie, które zamierzamy wprowadzić, to „ mkdir penguin-pix ”, aby utworzyć nowy katalog.

Sprawdźmy, czy tam jest, wymieniając zawartość katalogu.

Uwaga: Możesz zobaczyć, że kiedy wymieniamy zawartość katalogu, nazwy plików i nazwy katalogów są różnymi kolorami, aby pomóc zidentyfikować różne pliki i katalogi. Chociaż podświetlanie kolorów jest powszechne w większości powłok, nie wszystkie powłoki robią to domyślnie.

Gdybyśmy nie potrafili określić koloru nazw, zawsze moglibyśmy sprawdzić, które z tych plików są katalogami, wywołując ls z opcją -l (długa lista).

Dodatkowe informacje obejmują następujące elementy.

  • Uprawnienia - kto ma dostęp do pliku i jakiego rodzaju dostęp.
  • Własność - kto jest właścicielem pliku.
  • Autorstwo - kto utworzył plik.
  • Rozmiar pliku - rozmiar pliku w bajtach.
  • mtime - data i godzina ostatniej modyfikacji pliku.

Pierwsza litera na liniach pingwinów i tapet to „ d ”, co oznacza, że ​​są to katalogi. Więcej informacji na temat list plików można znaleźć w dokumentacji polecenia chmod .

Możemy teraz przenieść nasze obrazy do nowego katalogu. Aby poinformować mv, jakie pliki należy przenieść, możemy ponownie użyć symbolu wieloznacznego, ale tym razem upewnijmy się, że wie, że może przenosić tylko pliki obrazów, a nie katalogi. Ponieważ oba pliki obrazów kończą się rozszerzeniem JPEG .jpg, możemy określić nazwę pliku „ * .jpg ”: to mówi powłoce „pliki, które chcę przenieść, to pliki w bieżącym katalogu, które kończą się na .jpg ”. Tak więc nasze polecenie będzie wyglądało następująco: „ mv * .jpg penguin-pix .”

Nie podano żadnego komunikatu o błędzie, co oznacza, że ​​polecenie zostało wykonane pomyślnie. Sprawdźmy, czy pliki zostały przeniesione, wymieniając zawartość pikseli pingwina .

Usuwanie plików

Mamy dwa zdjęcia pingwinów, ale być może zdecydowaliśmy, że potrzebujemy tylko prawdziwego pingwina.jpg i nie potrzebujemy już tux-the-penguin.jpg . Możemy usunąć ten plik za pomocą polecenia rm („remove”).

Musimy podać rm nazwę pliku do usunięcia. Obecnie znajdujemy się w katalogu images, ale nasz obraz jest teraz w podkatalogu pingwin-piksel . Możemy zmienić nasz katalog roboczy na penguin-pix, a następnie uruchomić polecenie, ale to tylko dodatkowa praca, możemy pominąć ten krok, używając katalogu jako części ścieżki.

Nasze polecenie będzie wyglądać następująco: „ rm penguin-pix / tux-the-penguin.jpg ”.

Powtórzmy, powłoka wykonuje nasze polecenie bez podawania żadnych informacji zwrotnych. Polecenie zostało wykonane pomyślnie, więc powłoka zwraca nas do wiersza polecenia, informując nas, że jest gotowa na kolejne polecenie.

Ostrzeżenie: W przeciwieństwie do przeciągania pliku do kosza lub kosza Microsoft Windows, nie ma możliwości cofnięcia usunięcia pliku za pomocą rm . Ostrożnie usuń swoje pliki! Po odejściu jest (praktycznie) niemożliwe, aby je odzyskać.

Sprawdźmy, czy plik naprawdę zniknął.

Usuwanie katalogów

To jest dobre dla plików, ale co z katalogami? Domyślnie rm usuwa tylko pliki, a nie katalogi.

Komenda rmdir („remove directory”) usuwa katalog, zakładając, że jest pusty. Przetestujmy go, tworząc nowy, pusty katalog, używając komendy „ mkdir test-directory ”.

Sprawdźmy, czy jest tam komenda „ ls -l ”.

Możemy teraz usunąć nasz nowy katalog za pomocą polecenia „ rmdir test-directory ” i sprawdzić, czy go nie ma, uruchamiając ponownie komendę „ ls -l ”.

Tak, już go nie ma.

Co jednak by się stało, gdybyśmy spróbowali „ rmdir penguin-pix ”?

Nie możemy rmdir tego katalogu, ponieważ nie jest pusty.

Jeśli jesteś pewien, że chcesz usunąć penguin-pix i wszystko wewnątrz (łącznie ze wszystkimi plikami i wszelkimi katalogami, które może zawierać), możesz użyć polecenia rm z opcją -r .

Zwykle rm nie działa w katalogu. Jeśli jednak wywołany z opcją -r, rm usuwa katalog rekurencyjnie, co oznacza, że ​​przechodzi do katalogu i dowolnego podkatalogu, usuwając wszystko, łącznie z katalogiem. Jeśli więc uruchomimy polecenie „ rm -r penguin-pix ”, usunie on katalog i plik, który był wewnątrz. Gdyby w środku znajdowały się jakieś katalogi, zostałyby również usunięte.

Ostrzeżenie! Po raz kolejny nie można cofnąć tego polecenia. Kiedy rm -r katalog, ten katalog i wszystko w nim jest usuwane na zawsze! Podobnie jak większość poleceń Linuksa, rm jest bardzo potężny i powinien być używany ostrożnie.

Aby skopiować plik, użyj polecenia cp .

 cp PRZEZNACZENIE ŹRÓDŁA 

SOURCE to nazwa pliku, który chcesz skopiować, a DESTINATION to nazwa ścieżki określająca miejsce docelowe nowego pliku. Miejscem docelowym może być nowa nazwa pliku lub nazwa katalogu, w którym chcesz umieścić kopię.

Powiedzmy, że mamy plik tekstowy w naszym folderze dokumentów o nazwie orig.txt i chcemy zrobić jego kopię o nazwie copy.txt . Poleceniem, którego należy użyć, jest „ cp orig.txt copy.txt ”.

Jeśli natomiast określimy katalog jako miejsce docelowe polecenia cp, tworzy on kopię o tej samej nazwie co oryginał w katalogu docelowym. W następnym przykładzie robimy sześć rzeczy.

  1. Wyświetl zawartość katalogu roboczego.
  2. Utwórz nowy katalog, zwany kopiami .
  3. Wyświetl zawartość katalogu roboczego, który zawiera teraz katalog kopii .
  4. Wyświetl zawartość katalogu kopii (nie ma żadnych. Jest pusty).
  5. Skopiuj copy.txt do katalogu kopii .
  6. Wyświetl zawartość katalogu kopii, który zawiera teraz kopię copy.txt .

Zmiana nazwy pliku

Komendy mv można również użyć do zmiany nazwy pliku. Na przykład polecenie „ mv orig.txt original.txt ” zmieni nazwę pliku orig.txt na original.txt .

Zmiana nazwy katalogu

Zmiana nazw katalogów działa dokładnie tak, jak zmiana nazw plików, za pomocą komendy mv . Tutaj tworzymy katalog o nazwie „ copy ”, ale zmieniamy jego nazwę na „ copy ” za pomocą polecenia „ mv copy copy ”.

Jeśli katalog copy zawierałby jakiekolwiek pliki lub katalogi, nie uległyby zmianie. Jedyną zmianą jest nazwa katalogu, który je zawierał.

Automatyczne uzupełnianie

Większość powłok wiersza poleceń systemu Linux automatycznie uzupełnia słowo, które zaczęło się wpisywać po naciśnięciu klawisza Tab. Automatyczne uzupełnianie może pomóc zaoszczędzić czas, szczególnie przy długich nazwach plików. Na przykład załóżmy, że masz trzy pliki w folderze dokumentów: penguin-diving.jpg, penguin.jpg i penguins.jpg .

Jeśli wpiszesz polecenie, a następnie wpiszesz „ p ” i naciśniesz klawisz Tab, powłoka uzupełni dla ciebie słowo „pingwin”.

Zatrzymuje się tam, ponieważ wszystkie pliki zaczynają się od słowa pingwin, ale potem nie ma pewności, który plik chcesz określić.

Jeśli znajdujesz się w sytuacji, w której więcej niż jedno dopasowanie autouzupełniania odpowiada temu, co już wpisałeś, dwukrotne naciśnięcie klawisza Tab wyświetli monit o wyświetlenie wszystkich możliwych dopasowań. Tak więc w powyższej sytuacji wpisałeś p i Tab, a pingwin samouzupełnia powłokę. Naciśnij klawisz Tab jeszcze dwa razy, aby uzyskać wszystkie możliwe opcje i umieścić cię z powrotem w wierszu polecenia, z poleceniem wypełnionym w miejscu, w którym zostało przerwane.

Autouzupełnianie działa również przy uzupełnianiu nazw ścieżek i nazw poleceń.

Wyjście z muszli

Wpisanie polecenia exit powoduje wyjście z powłoki poleceń i zamknięcie okna terminala lub przygotowanie okna terminala do ręcznego zamknięcia.