1. Przegląd

Wiersz poleceń systemu Linux to tekstowy interfejs poleceń. Często nazywany powłoką, terminalem, konsolą lub różnymi innymi nazwami, może sprawiać wrażenie złożonego i mylącego w użyciu. Jednak możliwość kopiowania i wklejania poleceń ze strony internetowej, w połączeniu z siłą i elastycznością, jaką oferuje linia poleceń, oznacza, że ​​korzystanie z niej może być niezbędne podczas próby wykonania instrukcji online – w tym wielu na tej stronie.Ten samouczek zapozna Cię z historią wiersza poleceń, a następnie przeprowadzi Cię przez praktyczne ćwiczenia, aby zapoznać się z kilkoma podstawowymi poleceniami i pojęciami. Nie zakładamy wcześniejszej wiedzy użytkownika, ale do końca mamy nadzieję, że poczujesz się bardziej komfortowo, gdy następnym razem zobaczysz instrukcje, które rozpoczynają się od „Otwórz terminal…”

Czego się nauczysz

  • Trochę historii wiersza poleceń
  • Jak uzyskać dostęp do wiersza poleceń z własnego komputera
  • Jak wykonać podstawowe operacje na plikach
  • Kilka innych przydatnych poleceń
  • Jak łączyć ze sobą polecenia, aby tworzyć mocniejsze narzędzia
  • Najlepszy sposób na użycie uprawnień administratora

Co będziesz potrzebował

  • Komputer z systemem Ubuntu lub inną wersją systemu Linux

Każdy system Linux zawiera taki czy inny wiersz poleceń. W tym samouczku zawarto kilka szczegółowych kroków dotyczących systemu Ubuntu 20.04, ale większość treści powinna działać bez względu na dystrybucję Linuksa.

2. Krótka lekcja historii

W początkowych latach przemysłu komputerowego jeden z pierwszych systemów operacyjnych nosił nazwę Unix. Został zaprojektowany do działania jako system dla wielu użytkowników na komputerach mainframe, z użytkownikami łączącymi się z nim zdalnie za pośrednictwem poszczególnych terminali . Te terminale były dość proste jak na współczesne standardy: tylko klawiatura i ekran, bez możliwości uruchamiania programów lokalnie. Zamiast tego po prostu polecenia były wysyłane na serwer poprzez naciśnięcia klawiszy i wyświetlanie danych na ekranie terminala. Nie było myszy, żadnych wymyślnych grafik, nawet wyboru koloru. Wszystko było wysłane jako tekst i odebrane jako tekst. Oczywiście zatem wszelkie programy działające na komputerze mainframe musiały tworzyć tekst jako dane wyjściowe i akceptować tekst jako dane wejściowe.W porównaniu z grafiką tekst jest bardzo lekki i nie wymaga dużych zasobów. Nawet na maszynach z lat 70. XX wieku, obsługujących setki terminali przez wolne połączenia sieciowe (według dzisiejszych standardów), użytkownicy nadal byli w stanie szybko i wydajnie wchodzić w interakcje z programami. Polecenia były również bardzo zwięzłe, aby zmniejszyć liczbę wymaganych naciśnięć klawiszy, co jeszcze bardziej przyspieszyło korzystanie z terminali. Ta szybkość i wydajność jest jednym z powodów, dla których ten interfejs tekstowy jest nadal powszechnie używany.Po zalogowaniu się do komputera mainframe w systemie Unix za pośrednictwem terminala użytkownicy nadal musieli zarządzać zadaniami i plikami, które można teraz wykonywać za pomocą myszy i kilku okien. Niezależnie od tego, czy tworzysz pliki, zmieniasz ich nazwy, umieszczasz je w podkatalogach lub przenosisz je na dysku, użytkownicy w latach 70. mogli zrobić wszystko całkowicie za pomocą interfejsu tekstowego.Każde z tych zadań wymagało własnego programu lub polecenia: jednego do zmiany katalogów ( cd), drugiego do wyświetlenia ich zawartości ( ls), trzeciego do zmiany nazwy lub przeniesienia plików (mv), i tak dalej. Aby koordynować wykonywanie każdego z tych programów, użytkownik łączy się z jednym programem głównym, który może następnie zostać użyty do uruchomienia dowolnego z pozostałych programów. Dzięki łączeniu poleceń użytkownika ten program „shellowy”, jak wiadomo, może zapewnić wspólne funkcje każdemu z nich – takie jak możliwość przekazywania danych z jednego polecenia bezpośrednio do drugiego lub użycie specjalnych znaków wieloznacznych do pracy z wieloma plikami o podobnych nazwach jednocześnie. Użytkownicy mogą nawet pisać prosty kod (zwany „skryptami powłoki”), którego można użyć do automatyzacji długiej serii poleceń powłoki w celu ułatwienia złożonych zadań. Pierwotny program powłoki Unix tosh, ale został rozszerzony i zastępowany przez lata, więc na nowoczesnym systemie Linux najprawdopodobniej będziesz używać powłoki o nazwiebash. Nie martw się zbytnio o to, jaką powłokę masz – cała zawartość tego samouczka będzie działać na prawie wszystkich.Linux jest swego rodzaju potomkiem Uniksa. Podstawowa część Linuksa została zaprojektowana tak, aby zachowywać się podobnie do systemu uniksowego, tak że większość starych powłok i innych programów tekstowych działa na nim całkiem dobrze. Teoretycznie można nawet podłączyć jeden z tych starych terminali z lat 70. do nowoczesnego Linux-a i uzyskać przez to dostęp do powłoki. Ale obecnie znacznie częściej używa się terminala programowego: ten sam stary interfejs tekstowy w stylu uniksowym, ale działający w oknie obok programów graficznych.

3. Otwarcie terminala

W systemie Ubuntu 20.04 można znaleźć program uruchamiający terminal, klikając element Działania w lewym górnym rogu ekranu, a następnie wpisując kilka pierwszych liter „terminal”.Program uruchamiający terminal w Ubuntu 18.04W innych wersjach systemu Linux lub innych wersjach systemu Ubuntu zwykle program uruchamiający terminal znajduje się w tym samym miejscu, co inne programy uruchamiające aplikacje. Może być ukryty w podmenu lub być może będziesz musiał go wyszukać w menu, ale prawdopodobnie gdzieś tam jest. Jeśli nie możesz znaleźć programu uruchamiającego lub chcesz po prostu szybszego sposobu uruchomienia terminalu, większość systemów Linux używa tego samego domyślnego skrótu klawiaturowego, aby go uruchomić: Ctrl-Alt-T .Jakkolwiek uruchomisz swój terminal, powinieneś mieć raczej nudne okno z dziwnym fragmentem tekstu u góry, podobnie jak na poniższym obrazku. W zależności od systemu Linux kolory mogą nie być takie same, a tekst prawdopodobnie powie coś innego, ale ogólny układ okna z dużym (głównie pustym) obszarem tekstowym powinien być podobny.Nowe okno terminala w Ubuntu 18.04Uruchomimy nasze pierwsze polecenie. Kliknij myszką w okno, a następnie wpisz następujące polecenie, wszystkie małymi literami , przed naciśnięciem klawisza Enter.

pwd

Powinieneś zobaczyć wydrukowaną ścieżkę katalogu (prawdopodobnie coś takiego /home/YOUR_USERNAME), a następnie kolejną kopię tego dziwnego kawałka tekstu.

Wynik uruchomienia polecenia pwd

Jest kilka podstaw, zanim przejdziemy do szczegółów tego, co faktycznie zrobiło to polecenie. Po pierwsze, gdy wpiszesz polecenie, pojawi się ono w tym samym wierszu co nieparzysty tekst. Ten tekst informuje, że komputer jest gotowy na przyjęcie polecenia – to sposób, w jaki komputer go podpowiada. W rzeczywistości jest to zwykle określane jako monit i czasami możesz zobaczyć instrukcje z napisem „wywołać monit”, „otwórz wiersz polecenia”, „w wierszu polecenia bash” lub podobny. Są to po prostu różne sposoby proszenia cię o otwarcie terminala, aby dostać się do powłoki.

Na temat synonimów innym sposobem patrzenia na monit jest stwierdzenie, że w terminalu jest linia, w której wpisujesz polecenia. Wiersz poleceń, jeśli chcesz. Ponownie, jeśli pojawi się wzmianka o „wierszu poleceń” – w tym w tytule tego samouczka – jest to po prostu inny sposób mówienia o powłoce działającej w terminalu.

Drugą rzeczą, którą należy zrozumieć, jest to, że po uruchomieniu polecenia generowane przez niego dane wyjściowe będą zwykle drukowane bezpośrednio w terminalu, a po zakończeniu pojawi się kolejny monit. Niektóre polecenia mogą wyświetlać dużo tekstu, inne będą działać w trybie cichym i nie będą generować niczego. Nie przejmuj się, jeśli uruchomisz polecenie i natychmiast pojawi się kolejny monit, ponieważ zwykle oznacza to, że polecenie się powiodło. Jeśli przypomnisz sobie powolne połączenia sieciowe naszych terminali z lat 70., ci pierwsi programiści zdecydowali, że jeśli wszystko pójdzie dobrze, mogą równie dobrze zaoszczędzić kilka cennych bajtów transferu danych, jeśli terminal nie odpowie nic.

Znaczenie wielkości liter
Zachowaj szczególną ostrożność w przypadku wielkości liter podczas pisania w wierszu polecenia. Wpisanie PWDzamiast pwdspowoduje błąd, ale czasami niewłaściwy przypadek może spowodować, że polecenie będzie wyglądało na uruchomione, ale nie będzie działać zgodnie z oczekiwaniami. Przyjrzymy się sprawie nieco więcej później, ale na razie pamiętaj, aby wpisać wszystkie następujące polecenia tak jak są podane.

Poczucie lokalizacji

Teraz do samego polecenia. Co to jest katalog roboczy ?

Jedną ważną koncepcją, którą należy zrozumieć, jest to, że powłoka ma pojęcie o domyślnej lokalizacji, w której będą wykonywane wszelkie operacje na plikach. To jest jego katalog roboczy. Jeśli spróbujesz utworzyć nowe pliki lub katalogi, przejrzeć istniejące pliki, a nawet je usunąć, powłoka przyjmie, że ich szukasz w bieżącym katalogu roboczym, chyba że podejmiesz kroki, aby go zmienić. Dlatego bardzo ważne jest, aby mieć pojęcie o tym, w którym katalogu znajduje się powłoka w danym momencie – w końcu usunięcie plików z niewłaściwego katalogu może być katastrofalne. W razie jakichkolwiek wątpliwości pwddokładnie powie Ci, jaki jest bieżący katalog roboczy.

Można zmienić katalog roboczy za pomocą cd. Spróbuj wpisać następujące polecenie:

cd /
pwd

Zauważ, że separator katalogów to ukośnik („/”), a nie odwrotny ukośnik, do którego możesz być przyzwyczajony w systemach Windows lub DOS

Teraz twoim katalogiem roboczym jest „/”. Jeśli pracowałeś na Windows, prawdopodobnie jesteś przyzwyczajony do tego, że każdy dysk ma własną literę, przy czym głównym dyskiem twardym jest zwykle „C:”. Systemy uniksowe nie dzielą tak dysków. Zamiast tego mają jeden zunifikowany system plików, a poszczególne dyski można podłączyć („zamontować”) do dowolnej lokalizacji w systemie plików, która ma największy sens. Katalog „/” – często nazywany katalogiem głównym – jest podstawą tego zunifikowanego systemu plików. Stamtąd wszystko inne rozgałęzia się, tworząc drzewo katalogów i podkatalogów.

root
Uwaga: chociaż katalog „/” jest czasami określany jako katalog główny , słowo „root” ma inne znaczenie. root jest także nazwą używaną dla superusera od pierwszych dni istnienia Uniksa. Superuser, jak sama nazwa wskazuje, ma więcej mocy niż zwykły użytkownik, więc może łatwo siać spustoszenie za pomocą źle wpisanego polecenia. Przyjrzymy się bliżej kontu superusera w sekcji 7. Na razie musisz tylko wiedzieć, że słowo „root” ma wiele znaczeń w świecie Linuksa, więc kontekst jest ważny.

Z katalogu głównego następujące polecenie przeniesie Cię do katalogu „home” (który jest bezpośrednim podkatalogiem „/”):

cd home
pwd

Aby przejść do katalogu nadrzędnego – w tym przypadku z powrotem do „/” – użyj specjalnej składni dwóch kropek ( ..) podczas zmiany katalogu (zwróć uwagę na odstęp między cd..– inaczej niż w DOSie, nie możesz tak po prostu wpisz cd..jednym ciągiem):

cd ..
pwd

Samodzielne pisanie cdto szybki skrót, aby wrócić do katalogu domowego:

cd
pwd

Możesz także użyć ..więcej niż raz, jeśli musisz przejść w górę o wiele poziomów katalogów nadrzędnych:

cd ../..
pwd

Zauważ, że w poprzednim przykładzie opisaliśmy trasę do przejścia przez katalogi. Używana przez nas ścieżka oznacza „zaczynając od katalogu roboczego, przejdź do rodzica / z tej nowej lokalizacji ponownie przenieś do rodzica”. Więc jeśli chcielibyśmy przejść bezpośrednio z naszego katalogu domowego do katalogu „etc” (który znajduje się bezpośrednio w katalogu głównym systemu plików), moglibyśmy zastosować to podejście:

cd
pwd

cd ../../etc
pwd

Ścieżki względne i bezwzględne

Większość przykładów, którym się przyjrzeliśmy, wykorzystuje ścieżki względne . To znaczy, miejsce, w którym skończysz, zależy od bieżącego katalogu roboczego. Rozważ próbę cdprzejścia do folderu „etc”. Jeśli jesteś już w katalogu głównym, który będzie działał dobrze:

cd /
pwd
cd etc
pwd

Ale co jeśli jesteś w swoim katalogu domowym?

cd
pwd
cd etc
pwd

Zobaczysz błąd z informacją „Brak takiego pliku lub katalogu”, zanim jeszcze wpiszesz ostatni pwd. Zmiana katalogu przez podanie nazwy katalogu lub użycie ..będzie miało różne efekty w zależności od miejsca, od którego zaczniesz. Ścieżka ma sens tylko w stosunku do katalogu roboczego.

Ale widzieliśmy dwa polecenia, które są absolutne . Bez względu na aktualny katalog roboczy będą miały ten sam efekt. Każda ścieżka rozpoczynająca się od ukośnika jest ścieżką bezwzględną . Można to uznać za powiedzenie „przejdź do katalogu głównego, a następnie stamtąd idź drogą”. To daje nam znacznie łatwiejszy sposób na przejście do etc, bez względu na to, gdzie aktualnie jesteśmy w systemie plików:

cd
pwd
cd /etc
pwd

Daje nam to także inny sposób na powrót do katalogu domowego – a nawet do znajdujących się w nim folderów. Załóżmy, że chcesz przejść bezpośrednio do folderu „Desktop” z dowolnego miejsca na dysku (zwróć uwagę na duże litery „D”). W poniższym poleceniu musisz zastąpić USERNAME własną nazwą użytkownika – whoamiprzypomni Ci o Twojej nazwie użytkownika, na wypadek, gdybyś nie był pewien:

whoami
cd /home/USERNAME/Desktop
pwd

Jest jeszcze jeden przydatny skrót, który działa jako ścieżka bezwzględna. Jak widzieliście, użycie „/” na początku ścieżki oznacza „rozpoczęcie od katalogu głównego”. Użycie znaku tyldy („~”) na początku ścieżki podobnie oznacza „start z mojego katalogu domowego”.

cd ~
pwd

cd ~/Desktop
pwd

Teraz ten nieparzysty tekst w monicie może mieć trochę sensu. Czy zauważyłeś, że zmienia się podczas poruszania się po systemie plików? W systemie Ubuntu pokazuje twoją nazwę użytkownika, nazwę sieciową twojego komputera i bieżący katalog roboczy. Ale jeśli jesteś gdzieś w swoim katalogu domowym, użyje „~” jako skrótu. Rozejrzyjmy się trochę po systemie plików i miej oko na monit:

cd
cd /
cd ~/Desktop
cd /etc
cd /var/log
cd ..
cd

4. Tworzenie folderów i plików

W tej sekcji stworzymy pliki do pracy. Aby uniknąć przypadkowego usunięcia któregokolwiek z twoich prawdziwych plików, zaczniemy od utworzenia nowego katalogu, z dala od twojego folderu domowego, który będzie służyć jako bezpieczniejsze środowisko do eksperymentowania:

mkdir /tmp/tutorial
cd /tmp/tutorial

Zwróć uwagę na użycie ścieżki bezwzględnej, aby upewnić się, że tworzymy katalog samouczka w / tmp . Bez ukośnika na początku mkdirspróbuje znaleźć katalog tmp w bieżącym katalogu roboczym, a następnie spróbuje utworzyć katalog samouczka w tym katalogu. Jeśli nie może znaleźć katalogu tmp, polecenie nie powiedzie się.

Teraz, gdy jesteśmy bezpieczni w naszym obszarze testowym (sprawdź dwukrotnie, pwdjeśli nie jesteś pewien), utworzymy kilka podkatalogów:

mkdir dir1 dir2 dir3

W tym poleceniu jest coś innego. Do tej pory widzieliśmy tylko polecenia, które działają same ( cdpwd) lub które mają później pojedynczy element ( cd /cd ~/Desktop). Ale tym razem dodaliśmy trzy rzeczy po mkdir. Te rzeczy nazywane są parametrami lub argumentami , a różne polecenia mogą przyjmować różną liczbę argumentów.mkdiroczekuje polecenia z przynajmniej jednym argumentem, natomiast cdmoże pracować bez lub 1, ale nie więcej. Zobacz, co się stanie, gdy spróbujesz przekazać nieprawidłową liczbę parametrów do polecenia:

mkdir
cd /etc ~/Desktop

Powrót do naszych nowych katalogów. Powyższe polecenie utworzy trzy nowe podkatalogi w naszym folderze. Spójrzmy na nie za pomocą polecenia lsl i s t):

ls

Jeśli wykonałeś kilka ostatnich poleceń, twój terminal powinien wyglądać mniej więcej tak:

Terminal, po uruchomieniu mkdir i ls

Zauważ, że mkdirwszystkie foldery utworzył w jednym katalogu. To polecenie nie tworzy dir3 wewnątrz dir2 wewnątrz dir1. Ale mkdirma na to sposób:

mkdir -p dir4/dir5/dir6
ls

Tym razem zobaczysz, że tylko dir4 został dodany do listy, ponieważ dir5 jest w dir4, a dir6 jest w dir5. Później zainstalujemy przydatne narzędzie do wizualizacji struktury, ale masz już wystarczającą wiedzę, aby to potwierdzić:

cd dir4
ls
cd dir5
ls
cd ../..

Użyte przez nas „-p” nazywa się opcją lub przełącznikiem. Opcje służą do modyfikowania sposobu działania polecenia, umożliwiając uruchomienie jednego polecenia na wiele różnych sposobów. Niestety, z powodu dziwactw historycznych i ludzkiej natury, opcje mogą przybierać różne formy w różnych poleceniach. Często zobaczysz je jako pojedyncze znaki poprzedzone łącznikiem (jak w tym przypadku) lub jako dłuższe słowa poprzedzone dwoma łącznikami. Forma jednoznakowa pozwala łączyć wiele opcji, chociaż nie wszystkie polecenia to akceptują. Aby jeszcze bardziej pomieszać sprawy, niektóre polecenia w ogóle nie określają jasno swoich opcji – to, czy coś jest opcją, podyktowane jest tylko porządkiem argumentów. Nie musisz martwić się o wszystkie możliwości, po prostu wiedz, że istnieją opcje i mogą one przybierać różne formy.

# Don't type these in, they're just here for demonstrative purposes
mkdir --parents --verbose dir4/dir5
mkdir -p --verbose dir4/dir5
mkdir -p -v dir4/dir5
mkdir -pv dir4/dir5

Teraz wiemy, jak utworzyć wiele katalogów, przekazując je jako oddzielne argumenty do mkdir. Ale przypuśćmy, że chcemy utworzyć katalog ze spacją w nazwie? Spróbujmy:

mkdir another folder
ls

Prawdopodobnie nie musiałeś nawet wpisywać tego jednego, aby odgadnąć, co się stanie: dwa nowe foldery, jeden nazwany another, a drugi nazwany folder . Jeśli chcesz pracować ze spacjami w nazwach katalogów lub plików, musisz użyć “…” .  Wprowadź następujące polecenia, aby wypróbować różne sposoby tworzenia folderów ze spacjami w nazwie:

mkdir "folder 1"
mkdir 'folder 2'
mkdir folder\ 3
mkdir "folder 4" "folder 5"
mkdir -p "folder 6"/"folder 7"
ls

Tworzenie plików przy użyciu przekierowania

Nasz folder demonstracyjny ma katalogi, ale brakuje plików. Naprawmy to, przekierowując dane wyjściowe polecenia, aby zamiast wyświetlać je na ekranie, zapisywał się w nowym pliku. Najpierw przypomnij sobie, co lsaktualnie wyświetla:

ls

Załóżmy, że chcieliśmy przechwycić dane wyjściowe tego polecenia jako plik tekstowy, który możemy przeglądać lub dalej nim manipulować. Wszystko, co musimy zrobić, to dodać znak większy niż („>”) na końcu naszego wiersza poleceń, a następnie nazwę pliku do zapisu:

ls > output.txt

Tym razem nic nie jest wyświetlane na ekranie, ponieważ wyjście jest przekierowywane do naszego pliku. Jeśli uruchomisz ls, powinieneś zobaczyć, że plik output.txt został utworzony. Możemy użyć cat, aby zobaczyć jego zawartość:

cat output.txt

Ok, więc nie jest to dokładnie to , co wcześniej było wyświetlane na ekranie, ale zawiera te same dane i jest w bardziej przydatnym formacie do dalszego przetwarzania. Spójrzmy na inne polecenie echo:

echo "This is a test"

Tak, echopo prostu wypisuje ponownie swoje argumenty (stąd nazwa). Ale połącz to z przekierowaniem, a masz sposób na łatwe tworzenie małych plików testowych:

echo "This is a test" > test_1.txt
echo "This is a second test" > test_2.txt
echo "This is a third test" > test_3.txt
ls

Wielkość liter

W systemach uniksowych rozróżniana jest wielkość liter – to znaczy, że „A.txt” i „a.txt” to dwa różne pliki. Jeśli miałbyś uruchomić następujące linie, skończyłbyś z trzema plikami:

echo "Lower case" > a.txt
echo "Upper case" > A.TXT
echo "Mixed case" > A.txt

Zasadniczo należy unikać tworzenia plików i folderów, których nazwa różni się tylko w zależności od wielkości liter. Pomoże to nie tylko uniknąć zamieszania, ale także zapobiegnie problemom podczas pracy z różnymi systemami operacyjnymi. Na przykład Windows nie rozróżnia wielkości liter , więc traktowałby wszystkie trzy powyższe nazwy plików jako pojedynczy plik, potencjalnie powodując utratę danych lub inne problemy.

Możesz mieć ochotę po prostu nacisnąć klawisz Caps Lock i używać wielkich liter dla wszystkich nazw plików. Jednak zdecydowana większość poleceń powłoki jest pisana małymi literami, więc często musiałbyś ją włączać i wyłączać podczas pisania. Większość doświadczonych użytkowników wiersza poleceń ma tendencję do trzymania się przede wszystkim małych liter w swoich plikach i katalogach, tak że rzadko muszą się martwić o kolizje nazw plików lub o to, które litery należy zastosować dla każdej litery w nazwie.

Dobra praktyka nazywania plików
Dobrą zasadą jest, aby w nazwach plików były tylko małe litery, cyfry, podkreślenia i myślniki. W przypadku plików zwykle na końcu znajduje się również kropka i kilka znaków wskazujących typ pliku („rozszerzenie pliku”). Wytyczne te mogą wydawać się restrykcyjne, ale jeśli w końcu zaczniesz używać wiersza poleceń na codzień, będziesz zadowolony, że trzymasz się tego schematu.

5. Przenoszenie i manipulowanie plikami

Teraz, gdy mamy już kilka plików, przyjrzyjmy się codziennym zadaniom, które możesz wykonywać. W praktyce najprawdopodobniej nadal będziesz używać programu graficznego, gdy chcesz przenieść, zmienić nazwę lub usunąć jeden lub dwa pliki, ale wiedza, jak to zrobić za pomocą wiersza poleceń, może być przydatna w przypadku zmian zbiorczych lub gdy pliki są rozłożone między różne foldery. Ponadto po drodze dowiesz się kilku innych rzeczy na temat wiersza poleceń.Zacznijmy umieszczając nasz combined.txt w katalogu dir1, używając mv:

mv combined.txt dir1

Usuwanie plików i folderów

Ostrzeżenie
W następnej sekcji rozpoczniemy usuwanie plików i folderów. Aby mieć absolutną pewność, że przypadkowo nie usuniesz niczego z folderu domowego, przed kontynuowaniem użyj pwd, aby dokładnie sprawdzić, czy nadal znajdujesz się w katalogu / tmp / tutorial .

Teraz wiemy, jak przenosić, kopiować i zmieniać nazwy plików i katalogów. Posprzątajmy trochę, używając komendy rmr e m ove):

rm dir4/dir5/dir6/combined.txt combined_backup.txt

Być może powinniśmy również usunąć niektóre z tych nadmiarowych katalogów:

rm folder_*

Błąd podczas uruchamiania rm w katalogach

Co tu się stało? Okazuje się, że rmma zabezpieczenie. Jasne, możesz go użyć do usunięcia każdego pojedynczego pliku w katalogu za pomocą jednego polecenia usuwając tysiące plików w jednej chwili, bez możliwości ich odzyskania. Ale nie pozwoli ci usunąć katalogu. Na szczęście istnieje rmdir, które wykona to zadanie:

rmdir folder_*

Błąd podczas uruchamiania rmdir w niepustym katalogu

Całkowite usunięcie wszystkiego z katalogu daje nam argument – r

rm -r folder_6
ls

Pamiętaj: chociaż rm -rjest szybki i wygodny, jest również niebezpieczny. .

Ważne ostrzeżenie
W przeciwieństwie do interfejsów graficznych, rmnie przenosi plików do folderu o nazwie „kosz” . Zamiast tego usuwa je całkowicie, całkowicie i nieodwołalnie. Musisz bardzo uważać na parametry, których używasz aby upewnić się, że usuwasz tylko pliki, które zamierzasz. Należy zachować szczególną ostrożność podczas używania symboli wieloznacznych, ponieważ łatwo jest przypadkowo usunąć więcej plików, niż zamierzano. Błędny znak spacji w twoim poleceniu może go całkowicie zmienić: rm t*oznacza „usuń wszystkie pliki zaczynające się na t ”, natomiast rm t *oznacza „usuń plik t oraz każdy plik, którego nazwa składa się z zera lub więcej znaków – co byłoby wszystkim w katalogu!

6. Wiersz poleceń i administrator

Jednym z dobrych powodów, dla których warto poznać podstawy wiersza poleceń, jest to, że instrukcje online często faworyzują użycie poleceń powłoki zamiast interfejsu graficznego. Tam, gdzie instrukcje te wymagają zmian na komputerze, które wykraczają poza modyfikację kilku plików w katalogu domowym, nieuchronnie napotkasz polecenia, które należy uruchomić jako administrator komputera (lub superusera w języku uniksowym). Zanim zaczniesz uruchamiać dowolne polecenia, które znajdziesz w ciemnym kącie Internetu, warto zrozumieć konsekwencje działania jako administrator i dowiedzieć się, jak instrukcje działają, abyś mógł lepiej ocenić, czy można je bezpiecznie uruchomić, czy nie. Superuser jest, jak sama nazwa wskazuje, użytkownikiem posiadającym super uprawnienia. W starszych systemach był to prawdziwy użytkownik z prawdziwą nazwą użytkownika (prawie zawsze „root”), którą można się zalogować, jakbyś miał hasło. Jeśli chodzi o te supermoce: root może modyfikować lub usuwać dowolny plik w dowolnym katalogu w systemie, niezależnie od tego, kto jest ich właścicielem; root może przepisać reguły zapory lub uruchomić usługi sieciowe, które mogą potencjalnie otworzyć maszynę na atak; root może wyłączyć maszynę, nawet jeśli inne osoby nadal z niej korzystają. Krótko mówiąc, root może zrobić wszystko , łatwo omijając zabezpieczenia, które zwykle wprowadza się, aby powstrzymać użytkowników przed przekroczeniem swoich uprawnień.Oczywiście osoba zalogowana jako root jest w stanie popełniać błędy tak samo jak wszyscy inni. Kroniki historii komputerów są wypełnione opowieściami o błędnie wpisanym poleceniu usuwającym cały system plików lub zabijającym ważny serwer. Istnieje także możliwość złośliwego ataku: jeśli użytkownik zaloguje się jako root i opuści komputer, niezadowolony kolega może wskoczyć na maszynę i siać spustoszenie. Pomimo tego, że ludzka natura jest tym, czym jest, wielu administratorów przez lata używała root jako głównego lub jedynego konta.

Nie używaj konta root
Jeśli ktoś poprosi Cię o włączenie konta root lub o zalogowanie się jako root , bądź bardzo podejrzliwy wobec jego zamiarów.

Aby zmniejszyć te problemy, wiele dystrybucji Linuksa zaczęło zachęcać do korzystania z polecenia su. To polecenie pozwala na zmianę  użytkownika na komputerze bez konieczności jego logowania się. W przypadku użycia bez argumentów zakłada się, że chcesz zmienić użytkownika na root (stąd pierwsza interpretacja nazwy), ale możesz podać nazwę użytkownika, aby przełączyć się na określone konto użytkownika (druga interpretacja). Zachęcając do korzystania zsucelem było przekonanie administratorów, aby spędzili większość czasu przy użyciu zwykłego konta, przełączali się na konto administratora tylko wtedy, gdy było to konieczne, a następnie jak najszybciej użyli logout (lub skrótu Ctrl-D ), aby powrócić na swoje zwykłe konto.

Dzięki zminimalizowaniu ilości czasu spędzonego na logowaniu jako root , użycie opcji su zmniejsza  możliwość popełnienia katastrofalnego błędu. Pomimo tego, że ludzka natura jest tym, czym jest, wielu administratorów jest winnych pozostawienia otwartych terminali, w których korzystali z su konta root . Pod tym względem subył tylko małym krokiem naprzód w bezpieczeństwie systemów linuxowych.

Nie używaj su
Jeśli ktoś poprosi cię o użycie su, bądź ostrożny. Jeśli używasz Ubuntu, konto root jest domyślnie wyłączone, więc subez parametrów nie będzie działać. Ale nadal nie warto podejmować ryzyka, na wypadek gdyby konto zostało włączone bez Twojej wiedzy.

Podczas korzystania z sucała sesja terminalowa jest przełączana na innego użytkownika. Polecenia, które nie potrzebują dostępu do roota – coś tak przyziemnego jak pwdlub ls– byłyby uruchamiane pod auspicjami administratora, zwiększając ryzyko błędu w programie powodując poważne problemy. Co gorsza, jeśli stracisz kontrolę nad tym, jakiego użytkownika aktualnie używasz, możesz wydać polecenie, które jest dość łagodne, gdy jest uruchamiany jako użytkownik, ale które może zniszczyć cały system, jeśli działa jako root .

Lepiej całkowicie wyłączyć konto root, a następnie zamiast zezwalać na długotrwałe sesje terminalowe z niebezpiecznymi uprawnieniami, wymagaj od użytkownika specjalnego żądania uprawnień administratora. Kluczem do tego podejścia jest polecenie zwane sudo.

sudosłuży jako przedrostek polecenia, które należy uruchomić z uprawnieniami administratora. Plik konfiguracyjny służy do określania, którzy użytkownicy mogą korzystać sudoi jakie polecenia mogą uruchamiać. Podczas uruchamiania takiego polecenia użytkownik jest monitowany o podanie własnego hasła, które następnie jest buforowane przez pewien okres czasu (domyślnie 15 minut).

W systemie Ubuntu pierwszy użytkownik utworzony podczas instalacji systemu jest uważany za administratora. Podczas dodawania nowego użytkownika istnieje możliwość utworzenia go jako administrator, w którym to przypadku będą oni mogli również uruchamiać polecenia administratora sudo. Na tym zrzucie ekranu Ubuntu 18.04 widać opcję u góry okna dialogowego:

Ubuntu 18.04 dodaj okno dialogowe użytkownika

Zakładając, że korzystasz z systemu Linux, w którym używasz sudo, a twoje konto jest skonfigurowane jako administrator, spróbuj wykonać następujące czynności, aby zobaczyć, co się stanie, gdy spróbujesz uzyskać dostęp do pliku uznanego za wrażliwy (zawierający zaszyfrowane hasła):

cat /etc/shadow
sudo cat /etc/shadow

Korzystanie z sudo

Jeśli wpiszesz hasło po wyświetleniu monitu, powinieneś zobaczyć zawartość /etc/shadow wpliku. Teraz wyczyść terminal, wpisując reset i uruchom sudo cat /etc/shadowponownie. Tym razem plik zostanie wyświetlony bez pytania o hasło, ponieważ nadal znajduje się w pamięci podręcznej.

Uważaj na sudo
Jeśli zostaniesz poinstruowany, aby uruchomić polecenie sudo, upewnij się, że rozumiesz, co robi polecenie, zanim przejdziesz dalej. Uruchamianiesudo ztym poleceniem daje te same uprawnienia co superuser (root).

W przypadku instrukcji dotyczących Ubuntu często pojawia się sudo przy instalacja nowego oprogramowania w systemie za pomocą poleceń aptlub apt-get. Jeśli instrukcje wymagają najpierw dodania nowego repozytorium oprogramowania do systemu – za pomocą polecenia apt-add-repository, edycji plików /etc/aptlub korzystania z „PPA” (Personal Package Archive) – należy zachować ostrożność, ponieważ z tych źródeł lecą aktualizacje systemu i aplikacji. Ale często instrukcje wymagają tylko instalacji oprogramowania ze standardowych repozytoriów, co powinno być bezpieczne.

Instalowanie nowego oprogramowania
Istnieje wiele różnych sposobów instalowania oprogramowania w systemach Linux. Instalowanie bezpośrednio z oficjalnych repozytoriów oprogramowania Twojej dystrybucji jest najbezpieczniejszą opcją, ale czasami aplikacja lub wersja, której szukasz, po prostu nie jest dostępna w ten sposób. Instalując za pomocą dowolnego innego mechanizmu, upewnij się, że pobierasz pliki z oficjalnego źródła dla danego projektu.

Czasami pliki aplikacji pochodzą spoza repozytoriów dystrybucji i obejmują (ale nie wyłącznie) korzystanie z któregokolwiek z następujących poleceń: curlwgetpipnpmmake.

Coraz częściej Ubuntu korzysta z paczek snap – nowego formatu pakietu, który oferuje pewne ulepszenia bezpieczeństwa poprzez ściślejsze ograniczenie programów, aby uniemożliwić im dostęp do części systemu, których nie potrzebują. Ale niektóre opcje mogą obniżyć poziom bezpieczeństwa, więc jeśli zostaniesz poproszony o uruchomienie snap install warto dokładnie sprawdzić, co polecenie robi.

 

8. Ukryte pliki

Zanim zakończymy ten samouczek, warto wspomnieć o ukrytych plikach (i folderach). Są one powszechnie używane w systemach Linux do przechowywania ustawień i danych konfiguracyjnych i zwykle są ukryte, aby nie zaśmiecały widoku twoich plików. W ukrytym pliku lub folderze nie ma nic specjalnego poza jego nazwą: wystarczy dodać przed nazwę kropkę („.”), Aby zniknął.

cd /tmp/tutorial
ls
mv combined.txt .combined.txt
ls

Nadal możesz pracować z ukrytym plikiem, upewniając się, że dołączasz kropkę podczas określania jej nazwy pliku:

cat .combined.txt
mkdir .hidden
mv .combined.txt .hidden
less .hidden/.combined.txt

Po uruchomieniu lszobaczysz, że .hiddenjest, jak można się spodziewać, ukryty. Nadal możesz wyświetlać jego zawartość za pomocą ls .hidden, ale ponieważ zawiera on tylko jeden plik, który sam jest ukryty, nie uzyskasz dużej ilości danych wyjściowych. Ale można użyć -a(pokazują się ll) .

ls
ls -a
ls .hidden
ls -a .hidden

 

Jeśli chodzi o nasze niedawno zainstalowane tree, działa to w podobny sposób:

tree
tree -a

Wróć do katalogu domowego ( cd) i spróbuj uruchomić lsbez -a, a następnie z nim . Przejrzyj dane wyjściowe, wc -laby lepiej zrozumieć, ile ukrytych plików i folderów było przez cały czas pod twoim nosem. Pliki te zwykle przechowują Twoją osobistą konfigurację i w ten sposób systemy uniksowe zawsze oferowały możliwość posiadania ustawień na poziomie systemu (zwykle w /etc), które mogą być zastąpione przez poszczególnych użytkowników (dzięki uprzejmości ukrytych plików w ich katalogu domowym).

 

9. Sprzątanie

Dotarliśmy do końca tego samouczka i powinieneś teraz powrócić do katalogu domowego (użyj, pwdaby sprawdzić i cdprzejść tam, jeśli nie jesteś). Chcemy pozostawić komputer w takim samym stanie, w jakim go znaleźliśmy, dlatego w końcowym kroku usuńmy obszar eksperymentalny, z którego korzystaliśmy wcześniej, a następnie dokładnie sprawdź, czy rzeczywiście go nie ma:

rm -r /tmp/tutorial
ls /tmp

Na koniec zamknijmy terminal. Możesz po prostu zamknąć okno, ale lepiej jest wylogować się z powłoki. Możesz użyć logout lub skrótu klawiaturowego Ctrl-D . Jeśli planujesz dużo korzystać z terminala, zapamiętanie Ctrl-Alt-T, aby uruchomić terminal i Ctrl-D, aby go zamknąć, sprawi, że wkrótce poczujesz się jak w domu…