10 poleceń Unix, które powinien znać każdy użytkownik Maca i Linuksa

GUI są świetne - nie chcielibyśmy bez nich żyć. Ale jeśli jesteś użytkownikiem Maca lub Linuksa i chcesz w pełni wykorzystać swój system operacyjny (i naciśnięcia klawiszy), jesteś winien sobie zapoznać się z wierszem poleceń systemu Unix. Wskaż i kliknij jest cudowne, gdy chcesz coś zrobić raz lub dwa razy. Ale jeśli musisz wielokrotnie powtarzać to zadanie, linia poleceń jest twoim wybawcą.

Linia poleceń to okno na pełną, niesamowitą moc twojego komputera. Jeśli pragniesz uwolnić się od ograniczeń graficznego interfejsu użytkownika lub myślisz, że programowanie lub administrowanie zdalnymi maszynami jest twoją przyszłością, to nauka wiersza poleceń Uniksa jest zdecydowanie dla Ciebie.

Nie martw się, jeśli polecenia systemu Unix wydają się magicznymi zaklęciami lub tajemnicze elementy wewnętrzne systemu wydają się być poza twoim zasięgiem. Nie są one trudne do nauczenia, a ten artykuł zawiera 10 podstawowych poleceń, których potrzebujesz, aby rozpocząć. Wkrótce te tajemnicze struny staną się drugą naturą.

Podstawy powłoki

Powłoka wiersza poleceń systemu Unix jest w przybliżeniu odpowiednikiem okna poleceń w systemie Microsoft Windows (cmd lub PowerShell). Polecenia, które omówimy poniżej, będą działać na każdym systemie podobnym do Uniksa, w tym Linux, Darwin (podstawa MacOS), FreeBSD, a nawet Windows z czymś takim jak Git Bash lub nowa powłoka Bash w Windows 10. Opcje i dane wyjściowe są różne nieco, ale nie powinieneś mieć problemu z ich zrozumieniem.

Najpierw musisz otworzyć powłokę, czasami nazywaną oknem terminala. Często dystrybucje Unixa umieszczają to w menu Administracja lub System. W systemie MacOS terminal znajdziesz w menu Aplikacje> Narzędzia> Terminal. Po uruchomieniu zobaczysz coś takiego:

Ten ekran z MacOS 10.11 jest typowy dla większości powłok w GUI. W górnej części okna widzimy typ powłoki, w tym przypadku Bash (Bourne Again Shell, która jest domyślną powłoką w systemie MacOS i większości dystrybucji Linuksa) oraz rozmiar okna. W oknie znajduje się podpowiedź, w tym przypadku skonfigurowana do wyświetlania nazwy maszyny ( Mercury), nazwa bieżącego katalogu roboczego (tutaj tylda ~, która jest skrótem od katalogu domowego użytkownika), nazwa użytkownika, i na końcu symbol zachęty ($). Zwróć uwagę, że monit zmieni się, gdy będziesz poruszać się po systemie plików lub gdy staniesz się innym użytkownikiem na komputerze (takim jak root lub superużytkownik w celu uruchamiania poleceń administracyjnych). Monit wyświetla te informacje, dzięki czemu można łatwo określić, gdzie i kim jesteś na dowolnym komputerze.

Warto wiedzieć, że istnieją dwa główne smaki powłoki Unix: powłoka Bourne i powłoka C. Bourne i firma wywodzą się z oryginalnego AT&T Unix, natomiast powłoka C pochodzi z University of California w Berkeley i BSD Unix. Generalnie pochodne powłoki Bourne'a i C są dobre do interaktywnej pracy na terminalu. Standardowa powłoka POSIX, powłoka Korn, jest tą, której chciałbyś używać do pisania własnych programów w powłoce, nazywanych skryptami. W przykładach w tym samouczku używamy powłoki Bash.

Środowisko powłoki

Jednym z pierwszych faktów, które należy zrozumieć podczas pracy z wierszem poleceń systemu Unix, jest to, że powłoka działa we własnym środowisku. Zrozumienie, jak kontrolować środowisko powłoki, jest ważnym elementem zwiększania wydajności w wierszu poleceń. Przyjrzyjmy się środowisku za pomocą envpolecenia:

Nie martw się teraz o zrozumienie wszystkich zmiennych środowiskowych, ale wiedz, że one tam są. Powinieneś już rozpoznać kilka zmiennych. Na przykład SHELL=/bin/bashmówi nam, że używamy powłoki Bash. HOME=/Users/nunezokreśla lokalizację katalogu domowego użytkownika. Możesz zmieniać lub tworzyć zmienne środowiskowe i często to robisz. Oto przykład ustawiania zmiennej środowiskowej o nazwie FOOi wyświetlania jej wartości:

Jak widać, zwyczajowo umieszczamy zmienne wielkimi literami. Zwróć szczególną uwagę na to, jak odwołujemy się do zmiennych środowiskowych, gdy używamy ich w poleceniach, z poprzednim $. $Mówi interpreter poleceń do korzystania z wartości zmiennej. Bez $The echokomenda powyżej po prostu wydrukować nazwę zmiennej FOO.

Polecenia systemu Unix

Niezależnie od używanej powłoki, za każdym razem, gdy wpiszesz polecenie w powłoce, spowodujesz wykonanie programu uniksowego. Filozofia projektowania Uniksa polega na tworzeniu programów, które dobrze wykonują jedną rzecz, i łączeniu ich w łańcuch (lub „potoku”) w celu wykonania pożytecznej pracy. Spójrzmy na prosty przykład, aby policzyć liczbę plików w katalogu / etc (później zobaczymy, jak przejść do katalogu / etc):

Ta sekwencja poleceń ilustruje dwie ważne koncepcje: orurowanie i opcje. lsPolecenia (odpowiednik dirpolecenia w systemie Windows) wyświetla zawartość katalogu, a  wc(liczba słów) liczbę słów. Zwróć uwagę na pionowy pasek między nimi? To charakter fajki. Potok pobiera dane wyjściowe pierwszego polecenia i kieruje je jako dane wejściowe do drugiego polecenia. Możesz łączyć ze sobą dowolną liczbę poleceń w systemie Unix, łącząc je ze sobą potokami.

Drugą rzeczą, na którą należy zwrócić uwagę, są opcje podane dla każdego polecenia. W Unix, opcje są tradycyjnie poprzedzona pojedynczym znakiem rozdzielczej, -. Te opcje wiersza polecenia zmieniają zachowanie polecenia. W tym przykładzie -l opcja to lsoznacza wyprowadzanie zawartości katalogu w „długim” formacie, podczas gdy –lopcja to wcoznacza zliczanie „wierszy” zamiast słów. W języku angielskim to polecenie można przeczytać:

Wypisz liczbę wierszy w bieżącym katalogu, a następnie wyślij je do programu liczącego słowa, aby policzyć liczbę wierszy.

Często te opcje wiersza polecenia zastępują wartości domyślne ustawione w środowisku. Jeśli chcesz zmienić sposób, w jaki polecenie zachowuje się na stałe, możesz ustawić zmienną środowiskową automatycznie po zalogowaniu. Wiele poleceń umożliwia łączenie opcji w jednym ciągu - na przykład - ls -laale inne nie. Możesz dowiedzieć się o wszystkich opcjach polecenia, sprawdzając jego podręcznik lub „strony podręcznika” (które omówimy poniżej).

Uczenie się i używanie opcji wiersza poleceń to duża część efektywnego korzystania z wiersza poleceń systemu Unix. Niektóre polecenia mają tak wiele opcji, że dokumentacja obejmuje dziesiątki stron. Nie martw się tym teraz. Często potrzebujesz tylko kilku opcji, aby wykonać dane zadanie, a wiele opcji jest używanych tylko podczas pisania programów w języku powłoki.

Instrukcja

Kiedy zrozumiesz podstawy wiersza poleceń i środowiska, możemy zacząć zagłębiać się w system. Najpierw należy zapoznać się z instrukcją.

Jednym z fajnych aspektów Uniksa jest wysoka jakość dokumentacji. Istnieje dokumentacja dla użytkowników, administratorów systemu i programistów. Dostęp do dokumentacji uzyskuje się za pomocą manpolecenia. Zacznijmy od przeczytania instrukcji obsługi (wprowadź man manw wierszu poleceń):

Podręczniki są podzielone na osiem sekcji, które różnią się nieznacznie w zależności od tego, czy korzystasz z Uniksa typu BSD / Linux / Mac czy System V. Warto zacząć od przeczytania wprowadzenia do każdej sekcji i możesz to zrobić za pomocą zaklęcia man -s 1 intro, co oznacza, że ​​zajrzyj do sekcji 1, aby znaleźć stronę podręcznika zwaną „intro”:

Jeśli nie masz pewności, jakiego polecenia szukasz, możesz wypróbować opcje -fi -k. poda funkcję polecenia, jeśli znasz jego nazwę, a wyświetli nazwy odpowiednich poleceń w oparciu o jedno lub więcej słów kluczowych. Obie opcje przeszukają wbudowaną bazę danych (jeśli została skonfigurowana; zwykle ma) i zwrócą wszystkie dopasowania. Na przykład, wyświetli strony podręcznika, które zaczynają się od ciągu :man –f command man –k hint man –k bzerbz

System plików

Istnieje wiele poleceń związanych z systemem plików Unix, ponieważ jest on rdzeniem systemu operacyjnego. Widzieliśmy jeden z nich wcześniej ls:, który wyświetla pliki w katalogu:

lsPolecenia może być najczęściej używane polecenia wszystkim, i to ma wiele opcji, aby dostosować swoją produkcję. Jedną z opcji, o której będziesz chciał wiedzieć od razu, jest ls -a(wymień wszystkie). Spowoduje to wyświetlenie plików „kropkowych” (plików lub katalogów, których nazwy zaczynają się od kropki lub kropki), które są domyślnie ukryte. Te pliki lub katalogi zazwyczaj zawierają informacje konfiguracyjne lub pliki dzienników systemu Unix. Na przykład plik .bash_history rejestruje wszystkie polecenia wprowadzone w wierszu poleceń.

Drugim poleceniem, którego będziesz potrzebować od razu, jest cdpolecenie, którego używasz do zmiany katalogów. Jest to podobne do tego samego polecenia w systemie Windows, ale z ważną różnicą. W systemie Unix wszystkie dyski (urządzenia) pojawiają się jako jeden dysk. Podczas gdy w Windows możesz mieć swoje zdjęcia na zewnętrznym dysku twardym, który pojawia się jako E :, w Uniksie tym dyskiem może być / home / user / pictures. Dostęp do wszystkich plików w systemie Unix uzyskuje się poprzez ścieżkę rozpoczynającą się od znaku / (katalog główny), a różne dyski twarde można montować w różnych punktach systemu plików, w zależności od potrzeb.

Zanim zaczniesz wędrować po systemie plików, pozwól, że przedstawię kolejną komendę, której będziesz potrzebować: pwd(wypisz katalog roboczy). Ponieważ w rosnącym systemie plików jest potencjalnie wiele miejsc, w których można się zgubić, to polecenie pozwala szybko określić, gdzie się znajdujesz. Przełączmy katalogi do lokalizacji, w której przechowywane są pliki konfiguracyjne systemu i zweryfikujmy naszą lokalizację:

Zauważ, że możesz użyć cdpolecenia bez argumentów, aby szybko powrócić do katalogu domowego. Kolejna wskazówka: ~może być używany jako skrót do odwoływania się do katalogu domowego zarówno w powłoce Bash, jak i C. 

W tym momencie wiesz, jak poruszać się po systemie plików i wyświetlać zawartość katalogów. Teraz potrzebujemy sposobu, aby odczytać zapisane w nich pliki. Obecnie większość systemów ma takie lesspolecenie. lesswyświetli plik strona po stronie i umożliwi nawigację za pomocą poleceń Vi (naciśnij, jaby przejść w dół, kaby przejść w górę, haby uzyskać pomoc i qopuścić plik).

Zobaczmy, co jest w naszym pliku / etc / passwd wpisując less /etc/passwd:

Plik passwd zawiera listę kont użytkowników w systemie Unix, wraz z ich numerami ID użytkowników i grup, ich katalogiem domowym i ścieżką do odpowiedniego polecenia lub powłoki. Jednak na MacOS znajdziesz tylko konta usług systemowych w passwd. Dzieje się tak, ponieważ użytkownicy są skonfigurowani w obszarze Użytkownicy i grupy w Preferencjach systemowych MacOS.

Miejsca na dysku

Brak miejsca na dysku to stopniowy proces, który może zająć lata, ale nadal może Cię zaskoczyć. Istnieją dwa polecenia, których możesz użyć do sprawdzenia wolnego miejsca i określenia, które pliki zajmują dysk: du(użycie dysku) i df(dysk wolny). Oboje wybierają -hopcję (czytelne dla człowieka). Aby sprawdzić, jak pełny jest twój dysk, użyj dfpolecenia:

Na razie skup się na kolumnach %iusedi mounted on. To pokazuje, że mój katalog domowy jest zapełniony w 92 procentach, więc prawdopodobnie powinienem go wyczyścić. Ale skąd mam wiedzieć, gdzie jest używana cała przestrzeń? Do tego dusłuży:

W tym przykładzie użyłem inkantacji, która ogranicza wyjście do pierwszych 10 wierszy. W przeciwnym razie duwyświetli listę wszystkich katalogów na komputerze, których łatwo byłoby pojąć. Na tej liście możesz zobaczyć, ile miejsca zajmuje każdy katalog. Możesz również zobaczyć, jak łącząc kilka poleceń razem, możemy łatwo stworzyć skrypt, który wyświetli listę 10 najpopularniejszych katalogów według wykorzystania miejsca. Polecenie, którego potrzebujemy, aby posortować dane wyjściowe, to oczywiście sortpolecenie.

Ponieważ wersja MacOS sortnie może obsługiwać dudanych wyjściowych czytelnych dla człowieka, użyłem -mopcji duwyświetlania użycia dysku w megabajtach (użyj opcji -glub -k, aby wyświetlić w gigabajtach lub kilobajtach). -nI -ropcje do sortsortowania wyjścia numerycznie oraz w odwrotnej kolejności, więc największe katalogi pojawią się na górze listy.

Superużytkownicy, su i sudo

Szereg poleceń dotyczy administrowania systemem. Spróbuj wpisać man -s 8 introwprowadzenie do nich. Mam zamiar dać ci podstawową komendę jeden do administrowania systemem tutaj: su. To oznacza „superużytkownik” i odnosi się do użytkownika administracyjnego lub konta root. Wszystkie pliki należące do systemu są własnością tego użytkownika i musisz zostać tym użytkownikiem, aby wykonywać czynności administracyjne.

Powiązane polecenie sudopozwala zostać superużytkownikiem dla jednego polecenia. Dlaczego warto używać sudozamiast su? Ponieważ najlepsza praktyka mówi, że nie należy biegać jako użytkownik root, z możliwością wyrządzenia nieodwracalnej szkody przez przypadek. Zawsze będziesz chciał robić wszystko, co możesz jako zwykły użytkownik i zostać superużytkownikiem tylko wtedy, gdy zajdzie taka potrzeba. Dokładny sposób uzyskania uprawnień superużytkownika będzie zależał od Twojej dystrybucji Uniksa. Zobaczmy, jak sudziała na MacOS:

Co? Jestem pewien, że wpisałem hasło poprawnie. Stało się to, że mój obecny użytkownik nunez,, nie ma uprawnień do su. W niektórych Uniksach oznacza to, że użytkownik musi być w wheelgrupie, a na innych systemach (w tym MacOS) musi znajdować się w sudoerspliku.

Na koniec dodajmy nunezdo sudoers, co da ci posmak edycji plików w wierszu poleceń. Zaawansowani użytkownicy wychwalają edytory Emacs i Vi i zachęcam do ich wypróbowania, ale tutaj użyjemy Nano. Nano jest łatwy do nauczenia i używania, a MacOS i wiele dystrybucji Linuksa jest już zainstalowanych.