Dlaczego ludzie wciąż się nimi przejmują?

Linia poleceń ma prawie 50 lat, ale nie jest przestarzała. Terminale tekstowe są nadal najlepszym sposobem wykonywania wielu zadań, nawet w dobie graficznych pulpitów i gadżetów z ekranem dotykowym.

W rzeczywistości wiersz poleceń staje się bardziej szanowany niż kiedykolwiek, ponieważ firma Microsoft tworzy nową, potężną aplikację Windows Terminal. Środowisko PowerShell systemu Windows 10 jest zaskakująco potężne, ale Microsoft nadal robił wszystko, co w jego mocy, aby dodać obsługę zasadniczo pełnego środowiska wiersza poleceń systemu Linux do systemu Windows 10.

Linia poleceń była kiedyś jedyną opcją

Kiedyś, jeśli chciałeś wejść w interakcję z komputerem, wpisałeś. To było to. Nie było nic więcej. Może to zabrzmieć restrykcyjnie i archaicznie, ale jako krok wyprzedzający konieczność używania kart perforowanych lub perforowanych taśm papierowych, pisanie było radykalne i transformujące. I migracja z teletypisariuszy z rolkami papieru do terminali z kineskop (CRT) to kolejna zmiana w interakcji między człowiekiem a komputerem.

Ten krok utorował drogę do tego, by powłoka interaktywna naprawdę zadziałała. Teraz możesz wysyłać instrukcje do komputera i bardzo szybko wyświetlać odpowiedzi na ekranie. Koniec z klakaniem, klakaniem, klakaniem, gdy czekałeś, aż papierowy wydruk wydostanie się z twojego teletapisera.

W porządku, ale to było wtedy, to jest teraz. Informatyka to zupełnie inna gra w piłkę. Oprócz oczywistych zablokowanych przypadków, takich jak korzystanie z komputera, który nie ma zainstalowanego graficznego środowiska graficznego lub korzystanie z komputera zdalnego za pośrednictwem SSH przez połączenie o niskiej przepustowości lub kontrolowanie bezgłowy lub osadzony system, po co używać wiersza poleceń zamiast graficznego pulpitu?

Objaśnienie żargonu

Pojęcia takie jak wiersz poleceń, okno terminala i powłoka są używane przez niektórych prawie zamiennie. To niepoprawny żargon. Wszystkie są zupełnie inne. Są spokrewnieni, ale to nie to samo.

Okno terminala to okno w pliku graficzne środowisko graficzne który uruchamia emulację terminala dalekopisowego.

Powłoka to program uruchamiany w oknie terminala. Pobiera dane wejściowe i, w zależności od tego, co wpisałeś, próbuje zinterpretować i wykonać instrukcje samodzielnie, przekazać je innym narzędziom tworzącym system operacyjny lub znaleźć skrypt lub program, który pasuje do tego, co wpisałeś.

W wierszu poleceń wpisujesz. Jest to zachęta wyświetlana przez powłokę, gdy oczekuje na wprowadzenie instrukcji. Termin „wiersz poleceń” jest również używany w odniesieniu do faktycznej treści wpisywanego tekstu. Na przykład, jeśli porozmawiasz z innym użytkownikiem komputera o problemie, który napotkałeś podczas próby uruchomienia programu, może on zapytać: „Jakiego wiersza poleceń użyłeś?” Nie pytają, jakiej powłoki używasz; chcą wiedzieć, jakie polecenie wpisałeś.

W sumie te łączą się, tworząc plik interfejs linii komend (CLI).

Dlaczego warto korzystać z wiersza poleceń w 2019 roku?

CLI może wydawać się wsteczny i dezorientujący dla tych, którzy go nie znają. Z pewnością w nowoczesnym systemie operacyjnym nie ma miejsca na tak przestarzały i naukowy sposób korzystania z komputera? Czy nie oddaliśmy tego wszystkiego dziesiątki lat temu, kiedy pojawiły się okna, ikony i myszy oraz graficzne środowiska graficzne z graficzne interfejsy użytkownika (GUI) stały się dostępne?

Tak, GUI istnieje od dziesięcioleci. Pierwsza wersja systemu Microsoft Windows to wydany w 1985 roku i stał się normą komputerów stacjonarnych wraz z wydaniem systemu Windows 3.0 w 1990 roku.

X Window System, używany w systemach Unix i Linux, był wprowadzony w 1984 roku. Spowodowało to przeniesienie graficznych środowisk graficznych do systemu Unix i jego wielu pochodnych, klonów i plików dodatkowych.

Ale wydanie Uniksa poprzedza te wydarzenia o ponad dekadę. A ponieważ nie było innej opcji, wszystko musiało być możliwe z linii poleceń. Cała ludzka interakcja, cała konfiguracja, każde użycie komputera musiało być możliwe do wykonania za pomocą skromnej klawiatury.

Tak więc, ipso facto, CLI może zrobić wszystko. GUI nadal nie może zrobić wszystkiego, co może zrobić CLI. Nawet w przypadku części, które może wykonać, interfejs wiersza polecenia jest zwykle szybszy, bardziej elastyczny, można go obsługiwać skryptami i jest skalowalny.

I jest standard.

Są znormalizowane dzięki POSIX

POSIX to plik standard dla systemów operacyjnych typu Unix– w zasadzie wszystko, co nie jest systemem Windows. Nawet system Windows ma podsystem Windows dla systemu Linux (WSL). Otwórz okno terminala w dowolnym systemie operacyjnym zgodnym z POSIX (lub blisko zgodnym), a znajdziesz się w powłoce. Nawet jeśli powłoka lub dystrybucja zapewniają własne rozszerzenia i ulepszenia, o ile zapewniają one podstawową funkcjonalność POSIX, będziesz mógł z niej korzystać od razu. Twoje skrypty będą działać.

Linia poleceń jest najniższym wspólnym mianownikiem. Dowiedz się, jak go używać, a niezależnie od dystrybucji Linuksa i graficznego środowiska graficznego będziesz w stanie wykonać wszystkie potrzebne zadania. Różne komputery stacjonarne mają swój własny sposób działania. Różne dystrybucje Linuksa zawierają różne narzędzia i programy.

Ale otwórz okno terminala, a poczujesz się jak w domu.

Polecenia są zaprojektowane do współpracy

Każde z poleceń Linuksa jest zaprojektowane do zrobienia czegoś konkretnego i zrobienia tego dobrze. Podstawowa filozofia projektowania polega na dodaniu większej funkcjonalności poprzez dodanie innego narzędzia, które można podłączyć rurociągiem lub łańcuchem razem z istniejącymi, aby osiągnąć pożądany efekt.

Jest to tak przydatne, że firma Microsoft zrobiła wszystko, co w jej mocy, aby dodać obsługę pełnego wiersza poleceń systemu Linux do systemu Windows 10!

Na przykład polecenie sortowania jest używane przez inne polecenia do sortowania tekstu w porządku alfabetycznym. Nie ma potrzeby budowania możliwości sortowania w każdym z pozostałych poleceń Linuksa. Generalnie aplikacje GUI nie pozwalają na tego typu współpracę.

Spójrz na poniższy przykład. Używa polecenia ls do wyświetlenia plików w bieżącym katalogu. Wyniki są przesyłane potokiem do polecenia sortowania i posortowane według piątej kolumny danych (czyli rozmiar pliku). Posortowana lista jest następnie przesyłana potokiem do polecenia głównego, które domyślnie wyświetla listę pierwsze dziesięć wierszy swojego wkładu.

ls -l | sort -nk5,5 | head

ls -l |  sort -nk5,5 |  głowa w oknie terminala

Otrzymujemy zgrabną listę najmniejszych plików w bieżącym katalogu.

lista dziesięciu najmniejszych plików w bieżącym katalogu

Zmieniając jedno polecenie – używając tail zamiast head – możemy uzyskać listę dziesięciu największych plików w bieżącym katalogu.

ls -l | sort -nk5,5 | tail

ls -l |  sort -nk5,5 |  tail w oknie terminala

To daje nam naszą listę dziesięciu największych plików, zgodnie z oczekiwaniami.

lista dziesięciu największych plików w bieżącym katalogu

Dane wyjściowe poleceń można przekierować i przechwycić w plikach. Zwykłe dane wyjściowe (stdin) i komunikaty o błędach (stderr) można przechwytywać oddzielnie.

Polecenia mogą zawierać zmienne środowiskowe. Następujące polecenie wyświetli zawartość twojego katalogu domowego:

ls $HOME

ls $ HOME w oknie terminala

Działa to z dowolnego miejsca w drzewie katalogów.

wyświetlanie katalogu domowego w oknie terminala

Jeśli idea tego całego pisania nadal Cię zaskakuje, techniki takie jak uzupełnianie tabulatorów mogą zmniejszyć ilość pisania, którą musisz wykonać.

Skrypty umożliwiają automatyzację i powtarzalność

Ludzie są podatni na błędy.

Skrypty pozwalają na ujednolicenie zestawu instrukcji, o których wiadomo, że będą wykonywane w ten sam sposób za każdym razem, gdy skrypt zostanie uruchomiony. Zapewnia to spójność w utrzymaniu systemu. Kontrole bezpieczeństwa można wbudować w skrypty, które pozwalają skryptowi określić, czy powinien kontynuować. Eliminuje to potrzebę posiadania przez użytkownika wystarczającej wiedzy do samodzielnego podjęcia decyzji.

Ponieważ możesz zautomatyzować zadania za pomocą crona w Linuksie i innych systemach typu Unix, długie, skomplikowane i powtarzalne zadania można uprościć lub przynajmniej raz wymyślić, a następnie zautomatyzować na przyszłość.

Skrypty PowerShell oferują podobną moc w systemie Windows i można zaplanować ich uruchamianie z Harmonogramu zadań. Po co klikać 50 różnych opcji za każdym razem, gdy konfigurujesz komputer, skoro można uruchomić polecenie, które automatycznie zmienia wszystko?

Najlepsze z obu światów

Aby jak najlepiej wykorzystać Linuksa – lub jakikolwiek system operacyjny jako użytkownik zaawansowany – naprawdę musisz używać interfejsu CLI i GUI.

GUI nie ma sobie równych pod względem korzystania z aplikacji. Nawet zagorzali zwolennicy wiersza poleceń muszą od czasu do czasu wychodzić z okna terminala i używać pakietów biurowych, środowisk programistycznych i programów do manipulacji graficznych.

Uzależnieni od linii poleceń nie nienawidzą GUI. Po prostu preferują korzyści płynące z używania interfejsu CLI – do odpowiednich zadań. Jeśli chodzi o administrację, CLI wygrywa. Możesz użyć interfejsu wiersza polecenia, aby dokonać zmian w jednym pliku, jednym katalogu, wyborze plików i katalogów lub całkowicie globalnych zmian z równym nakładem pracy. Próba zrobienia tego za pomocą graficznego interfejsu użytkownika często wymaga długotrwałych i powtarzalnych czynności klawiatury i myszy w miarę wzrostu liczby obiektów, na które ma to wpływ.

Wiersz poleceń zapewnia najwyższą wierność. Dostępna jest każda opcja każdego polecenia. Wiele poleceń Linuksa ma wiele opcji. Aby wziąć tylko jeden przykład, rozważ polecenie lsof. Spójrz na to strona podręcznika a następnie zastanów się, jak zapakować to w GUI.

Jest zbyt wiele opcji do zaprezentowania użytkownikowi w efektywnym interfejsie GUI. Byłoby przytłaczające, nieatrakcyjne i niezgrabne w użyciu. I to jest całkowite przeciwieństwo tego, czym ma być GUI.

To konie na kursy. Nie unikaj konia CLI. Często jest to szybszy i zwinniejszy rumak. Zarabiaj na ostrogi, a nigdy tego nie pożałujesz.