Właśnie zainstalowałem Ubuntu kilka dni temu. O ile mogę stwierdzić, terminal jest ogromną częścią każdej dystrybucji Linuksa. Moje pytanie w tym momencie brzmi: dlaczego? Kiedy szukam czegoś na ten temat, wszystkie polecenia umieszczone w terminalu można łatwo wykonać za pomocą GUI. Jakie są więc zalety korzystania z terminala?
Edycja: Dziękujemy za odpowiedzi wszystkim. Po krótkiej pogawędce i przy pomocy twoich odpowiedzi mogę teraz zrozumieć jej użycie. Z dumą mogę powiedzieć, że przez ostatnie 3 dni korzystałem z niego do wszystkiego i mam nadzieję, że wkrótce lepiej opanuję skrypty.
command-line
LurkDog
źródło
źródło
Odpowiedzi:
Terminal w Uniksie to wspaniałe, potężne narzędzie. Przechodząc ze świata Windows, trudno to docenić, ponieważ brakuje powłoki Windowsa (cmd.exe). Najbardziej * nix domyślne muszle (
bash
,zsh
itp) mają kilka zalet:Jest znormalizowany przez POSIX i specyfikację Single Unix, więc skrypt napisany dla jednego komputera prawdopodobnie będzie działał na wszystkich komputerach zgodnych z POSIX (zakładając, że ograniczysz się do standardowych poleceń, których jest wiele ). Microsoft ma zwyczaj włączania narzędzi w niektórych wersjach, a nie w innych, co powoduje, że programowanie wsadowe jest bardzo trafione lub brakujące
Ponieważ Unix został zbudowany od terminala, większość wszystkiego można konfigurować z poziomu wiersza poleceń. Windows był do pewnego stopnia taki, ale zdecydowali się porzucić 16-bitowy podsystem i DOS. Teraz GUI jest jedynym sposobem zmiany niektórych rzeczy w systemie Windows.
Ponieważ jest tak elastyczny. Polecenia można potokować razem (
ls | grep filename
), można je przechwycić (gcc program.c > ./standard_out 2> ./standard_error
) i można je zastąpić (ls /home/`whoami`
lubls /home/$(whoami)
)Ponieważ narzędzia UNIX są zaprojektowane tak, aby robić jedną rzecz i robić to dobrze. Wystarczy spojrzeć na
awk
,grep
,sed
,wget
lub wielu innych. Sami osiągają jedno zadanie, ale biorąc pod uwagę # 3 i # 2, można je wbudować w potężne wyrażenia.Ze względu na możliwość automatyzacji zadań.
cron
a skrypty bash pozwalają na uproszczenie lub zautomatyzowanie długich, skomplikowanych i / lub powtarzalnych zadań.Ponieważ ludzie są podatni na błędy. Stosunkowo krótkie skrypty powłoki mogą być używane do spójnej zmiany ustawień. Skrypty bezpieczeństwa mogą być wbudowane w skrypty, zamiast polegać na tym, że użytkownicy wiedzą, które polecenia można bezpiecznie uruchamiać w różnych okolicznościach.
źródło
ls /home/$(whoami)
teraz używać :-)cron
, spotka się z tobą przy drzwiach, kiedy wrócisz z pracy ...Korzystanie z terminala ma wiele zalet. Argumenty wahają się od wygody, wydajności do nostalgii. Oto niektóre:
Są pewne rzeczy, których ty (raczej ja) po prostu nie możesz osiągnąć za pomocą GUI. Nie dlatego, że nie jest to wykonalne, po prostu dlatego, że nikt nie zadał sobie trudu napisania GUI dla tych poleceń. Na przykład, jeśli chcę użyć jakiegoś polecenia, powiedzmy,
mdf2iso
aby przekonwertować całą wiązkę plików w folderze. Mogę potokować wyjście za pomocą|
operatora i zrobić to za jednym pociągnięciem.Dla wielu z nas tak właśnie powinno być. Pamiętaj, że ma to niewiele wspólnego z wiedzą specjalistyczną. Nie jestem ekspertem od Linuksa, jestem zwykłym użytkownikiem, ale wolę używać wiersza poleceń tam, gdzie to możliwe. To nie tyle argument na temat tego, dlaczego należy go używać, ile dlaczego.
Skrypty są potężną rzeczą. Możesz używać warunków
if
i pętlifor
itp. I robić różne rzeczy łącząc moc powyżej. Nie ma ograniczeń co do mocy skryptów. Możesz zautomatyzować złożone zadania, które są dostosowane do twoich wymagań. W takich przypadkach często trudno jest znaleźć aplikację GUI, która spełnia Twoje wymagania.Możesz wykonywać zadania za pomocą zdalnego logowania, nawet przy bardzo niskich ustawieniach przepustowości.
Pomaganie, pisanie samouczków itp. Jest znacznie łatwiejsze, jeśli możesz podać polecenia drugiej osobie. W ten sposób nie musisz robić zrzutów ekranu. Jest to kolejna zaleta dla osoby, której również udzielono pomocy, która prowadzi nas do następnego punktu.
Korzystanie z wiersza poleceń zwykle pozwala lepiej zrozumieć, co robisz i co się dzieje.
I na koniec jest po prostu szybszy. O wiele szybciej jest wpisać kilka liter i nacisnąć TABniż klikać niekończące się opcje menu. Możesz użyć
!mo
do wywołania ostatniego polecenia, które uruchomiłeśmo
(np. Mount) i tak dalej.Jestem pewien, że istnieje tysiące innych powodów, dla których nie wspomniałem.
źródło
Ostatecznie? Ponieważ zaczynasz pisać skrypty, a wspaniałą rzeczą w skryptowaniu jest to:
Zamiast zmieniać sposób robienia rzeczy, możesz zmienić skrypt, który je wykonuje.
Możesz pisać skrypty dla terminala, a zwykle nie dla programów graficznych, dlatego ludzie używają terminala.
Ale wyczuwam podpowiedź: „Dlaczego powinienem korzystać z terminala?” w twoim pytaniu. Nie mogę odpowiedzieć na to za ciebie, ponieważ jesteś sobą, a ja nie jestem tobą, ale to powiązane pytanie może dać ci pewien wgląd:
Jak / dlaczego ludzie korzystają z wiersza poleceń?
Myślę, że można wyróżnić trzy etapy: (1) niechętne stosowanie; (2) znając minimum potrzebne dla wygody; (3) znalezienie kogoś lubi pisanie skryptów. Można korzystać z terminala na wszystkich trzech poziomach; przekonaj się, gdzie kończy się Twoja ciekawość. Ponadto można bardzo szybko przejść przez te etapy, jeśli ktoś po prostu zdecyduje, że chce nauczyć się skryptowania powłoki.
„Potrzebuję tego programu, więc chyba użyję wiersza polecenia.”
Zaczyna się zwykle, ponieważ ludzie uważają, że potrzebują czegoś specjalistycznego lub podstępnego, a program polecany przez Google / forum / znajomego okazuje się programem wiersza polecenia. Otwierają więc terminal i wpisują instrukcje, które każą im pisać, i właśnie w ten sposób korzystają z terminala. Przykłady takich programów, które zmuszają do korzystania z wiersza polecenia:
rename
to piękny mały program, który pozwala zmieniać nazwy ton plików zgodnie ze wzorcem. Prosty przykład:rename s/myfile([0-9]+).txt/$1-myfile.txt/
zamienia wszystkie pliki o nazwie jak „bond007.txt” w „007-bond.txt”, bez względu na numer. Widzisz, być może chcesz zmienić nazwę niektórych plików albumów muzycznych.Zauważ, że dla wielu z tych systemów istnieją graficzne interfejsy, ale to nie ma znaczenia: wywoływanie z wiersza poleceń jest powszechne i tradycyjne, wiele HOWTO zakłada to i tak się zaczyna. Dlatego:
„Okej, teraz czuję się trochę bardziej komfortowo”.
W wierszu poleceń ludzie zaczynają myśleć: czy nie byłoby łatwo, gdybym tylko…
cd mydir
dla „zmień katalog”)ls *.txt
dla „listy”)mv myfile newname
,cp myfile mycopy
orazrm myfile
, w przypadku opcji „przenieś”, „skopiuj” i „usuń”)gedit myfile
, lubleafpad
, lubnano
, lubvim
, lub cokolwiek innego).Kiedy ludzie nauczą się tych pięciu poleceń, są zasadniczo wygodni w linii poleceń: mogą się poruszać, patrzeć i wchodzić w interakcje. Jest nawet trochę potężny: możesz operować na całych grupach plików za pomocą poleceń takich jak
mv iceland-*.jpg My_Iceland_Pics/
i czy to nie jest fajne?Teraz wiele osób chętnie się tu zatrzymuje. Wiedzą, jak korzystać z terminala, będą go używać, gdy będą go potrzebować, i to wszystko. Jest to poziom „terminal jest przydatny”. Jednak ludzie, którzy wolą terminal, zazwyczaj tak robią, ponieważ potrzebują / chcą / czują, że nie mogą obejść się bez spektakularnej mocy, jaką oferuje skryptowanie. I zwykle zaczyna się tak:
„Hej, skrypt to tylko niektóre polecenia w pliku!”
Ta realizacja może prowadzić do kilku dalszych zmian, w zależności od osoby. Oczywiście wielu po prostu idzie na „meh”; nie ma sensu uczyć się tego, czego nie potrzebujesz. W każdym razie takie rzeczy mogą się zdarzyć:
if something_is_true; then step1a; step2; else step1b; fi
, ifor file in list_of_files; do process1 $file; process2 $file; step3; done
Możesz nie doświadczyć wszystkich, a nawet jakichkolwiek tych rzeczy. Tym bardziej odnosi się do pacjenta, jednak lepiej terminal będzie dla Ciebie . Przekonasz się, ile ostatecznie z niego korzystasz. Baw się dobrze!
Post Scriptum. W programowaniu
script -> run -> result
iinput -> process -> output
przepływy pracy są niezwykle powszechne, a terminal jest spektakularnie odpowiedni dla tych przepływów pracy. Dodaj do tego fakt, że powłoka jest naprawdę innym językiem programowania, a zobaczysz, dlaczego tak duże nakładanie się między użytkownikami wiersza poleceń a programistami.źródło
Kolejny punkt do dodania: fajnie jest korzystać z wiersza poleceń! ;)
( http://vladdolezal.com/blog/2008/the-real-reason-we-use-linux/ )
źródło
Kiedyś odpowiadałem na podobne pytanie. Okazało się, że ta osoba nigdy nie używała skrótów klawiaturowych do robienia czegokolwiek, więc była to długa dyskusja. Mam nadzieję, że znasz się na nich ... Dzięki temu moje uwagi będą bardziej zrozumiałe.
Rozważ użycie edytora tekstu. Jeśli zapiszesz plik, możesz użyć skrótu klawiaturowego, takiego jak ctrl-s. Ktoś może powiedzieć: „Wolę korzystać z menu. Korzystanie ze skrótu nie oszczędza mi dużo czasu. A jeśli musisz zapisać nowy plik, musisz przejść przez system plików do katalogu, a następnie wpisać tak czy inaczej. ” Zatem ten obiekcja jest prawidłowa, że każdy skrót klawiaturowy sam w sobie nie oszczędza znacznej ilości czasu. Prawdziwe oszczędności polegają na łączeniu skrótów razem, np. Zaznacz wszystko, wytnij, wklej. Nawet twórcy edytorów tekstu zdali sobie z tego sprawę i sprawili, że wygodniej jest uzyskać dostęp do struktury plików za pomocą klawiatury, np. Mieć dostęp do ostatnich folderów / lokalizacji za pomocą klawiszy tabulatorów i strzałek.
Oczywiście wybieranie fragmentów tekstu często wymaga myszy ... dlatego programiści i ludzie, którzy dużo edytują, wolą używać edytora tekstu, który obsługuje pełne użycie klawiatury, więc nigdy nie musisz używać myszy. Mysz jest nie tylko wolna , ale również podatna na błędy - szczególnie łatwo jest wybrać lub usunąć niewłaściwy tekst.
Co to ma wspólnego z wierszem poleceń? Zaletą wiersza poleceń jest to, że unika on używania powolnej myszy podatnej na błędy. Zamiast tego piszesz i robisz to z jednej lokalizacji; nie musisz rozglądać się za innym menu lub klikać tam, a potem tutaj. Z tego samego powodu ludzie lubią używać skrótów klawiaturowych przeglądarki internetowej (aby otwierać nowe karty / okna, korzystać z Gmaila itp.); w każdym razie będą musieli wpisać adres URL (e-mail lub cokolwiek) ... po co odsuwać rękę od klawiszy?
Ale co najważniejsze, podobnie jak skróty klawiaturowe są najsilniejsze, gdy zaczniesz używać ich wszystkich razem (zamiast tylko jednego lub dwóch), możesz łączyć polecenia razem, aby robić mocniejsze rzeczy, które albo przejdą na zawsze przez GUI, albo nie będziesz mógł nawet sobie wyobrazić. Na przykład z wiersza poleceń możesz powiedzieć przeglądarce, że chcę odświeżać tę stronę co 30 sekund, poszukać określonego tekstu, a kiedy to nastąpi, wyślij mi i grupę kontaktów wiadomość e-mail z informacją, że tekst się pojawił na stronie internetowej. Jako kolejny przykład możesz powiedzieć swojemu komputerowi, że chcę przejrzeć WSZYSTKIE e-maile, które kiedykolwiek napisałem, poszukać odniesienia do tej konkretnej książki, sporządzić listę dat, o których wspomniałem, i kogo, uporządkować listę zgodnie z częstotliwość i umieść go w tym e-mailu, który teraz piszę.
źródło
screen
z konsoli, rzadko kiedy używam myszy, chyba że chodzi o nawigację po stronie internetowej. (Nikt nie powinien wspominać o rysiach ...)Interfejs CLI jest szybki w użyciu, gdy dokładnie wiesz, co chcesz zrobić i jak to zrobić. Może być znacznie bardziej wydajny niż używanie GUI. Ponadto, jeśli chcesz połączyć się zdalnie ze swoim komputerem, interfejs CLI jest znacznie łatwiejszy na wolnym łączu. Jeśli nie masz problemów z CLI, możesz również skorzystać ze skryptów.
Jeśli korzystasz z Google Cli vs GUI, otrzymasz mnóstwo hitów, np .:
http://www.computerhope.com/issues/ch000619.htm
Twoje pytanie nie jest tak naprawdę specyficzne dla Ubuntu, Linux, a nawet komputerów PC - debatę na ten temat można uzyskać z dowolnego systemu obsługującego GUI i CLI, np. Konfigurowanie routerów Cisco.
źródło
W odpowiedziach jest wiele dobrych punktów, ale wciąż mam jeszcze jedną uwagę. Czasami po instalacji lub aktualizacji aplikacja GUI nie uruchamia się i nie wyświetla żadnych komunikatów o błędach. W takich przypadkach bardzo pomocne może być otwarcie okna terminala i uruchomienie ap z linii poleceń. Na terminalu prawie zawsze jest więcej informacji niż w przypadku GUI.
źródło
Moim ulubionym jest mniej pisania . Jak to możliwe, słyszę, że pytasz. Cóż, loguję się, szukam do tyłu lub strzałka w górę) dla polecenia, które wpisałem w zeszłym tygodniu i wróciłem do powrotu karetki. Alternatywą jest znacznie więcej kliknięć myszką (i próba zapamiętania).
Moim drugim ulubionym jest łatwiejsze odpowiadanie na pytania dotyczące przepełnienia stosu; Nie potrzeba zrzutów ekranu, tylko tekst.
źródło
A kiedy trzeba zrobić coś jako „root”? Logowanie przez GUI jako root to zły pomysł (i nawet nie sądzę, że Ubuntu domyślnie na to pozwoli).
Weź również pod uwagę, że Linux GUI (X11) jest po prostu działającym programem, tak jak wszystko inne. Jeśli X11 ulegnie awarii, będziesz zadowolony, że znasz swój wiersz poleceń.
źródło
Chcę tylko przekazać przykład, który uważam za bardzo przydatny, z instrukcji dodawania PPA dla VirtualBox. Po dodaniu PPA należy również zarejestrować klucz publiczny, więc metoda GUI:
Wyjaśnienie tego w instrukcji obsługi może być kosztowne! Zamiast tego można to zrobić za pomocą pojedynczego i prostego wiersza poleceń:
źródło
Wiersz poleceń działa całkiem dobrze, podobnie jak w systemie Windows - pamiętasz, że pole tekstowe msdos z czarnym tłem?
Daje to użytkownikowi możliwość wydawania poleceń bezpośrednio na komputerze bez obciążania zasobów komputera, które przynosi GUI. Jest to także sposób wydawania potężnych poleceń w celu robienia rzeczy, których nie można wykonać za pomocą GUI.
Nie podważam użyteczności sposobu pracy z GUI, ale w rękach wykwalifikowanego operatora sposób wiersza poleceń może być niezwykle szybki i wydajny. W rękach prawdziwego czarodzieja linia poleceń czyni cuda. Ledwo zarysowałem powierzchnię możliwości, każdego dnia uczę się czegoś nowego. Nigdy nie będę czarodziejem - zbyt starym - ale chciałbym być przeciętny pewnego dnia ...
Witamy w Ubuntu i Ask Ubuntu. To jest świetne miejsce !!
źródło
Dla początkującego terminal jest obowiązkowy, ale jeśli zaczniesz się go uczyć, stanie się łatwiejszy. Kiedy poczujesz się z tym dobrze, daje to poczucie pewności, że możesz sobie poradzić, gdy coś pójdzie nie tak.
Na przykład, gdy program GUI odmawia uruchomienia i nie masz pojęcia, co jest nie tak, możesz uruchomić polecenie w terminalu i często zobaczyć przyczynę problemu na wyjściu terminalu. Następnie możesz skopiować niektóre z nich do wyszukiwania i w razie potrzeby znaleźć odpowiedź.
Możesz wpisać polecenie za pomocą „--help” i uzyskać listę opcji wiersza poleceń, które mogą być przydatne w niektórych szczególnych przypadkach.
Jeśli coś pójdzie nie tak, a GUI w ogóle się nie uruchomi, często możesz otworzyć wirtualny terminal lub być może po prostu wiersz poleceń z bootowania i rozwiązać problem, edytując plik konfiguracyjny lub uruchamiając program wiersza poleceń.
źródło
Mówiąc najprościej, masz ponad sto klawiszy, które mogą sterować / rozmawiać / zamówić komputer zamiast jednej myszy z dwoma lub trzema przyciskami. Im więcej masz kontroli, tym szybciej możesz być.
Dla każdego, kto nie zna pisania, klawiatura ekranowa może wyglądać świetnie. Bez względu na to, jak szybko można używać myszy, nie można pisać szybciej niż za pomocą klawiatury.
Jeśli używasz myszy / systemu Windows, to tak, jakby kontrolował cię komputer i dyktował, co możesz zrobić. Kiedy przyzwyczaisz się do świata linii poleceń, możesz poczuć cały system pod kontrolą, czekając na twoje zamówienie. Musisz to przeżyć, aby zrozumieć różnicę.
źródło
Nawet nie widzę sensu sprawdzania odpowiedzi lol. W każdym razie. Terminal jest jak twój CMD w systemie Windows. Dawno temu, zanim pojawił się GUI, ludzie programują i pracują w trybie DOS, prawie zwykłym Terminalu. Interfejs GUI został stworzony, aby uprościć i uprościć zadanie, ale czasami korzystanie z GUI w rzeczywistości wymaga więcej pracy.
Na przykład, jako programista, jeśli chcę tylko skompilować program w C ++, nie muszę używać zaawansowanego IDE. IDE to interfejs GUI, który ma wiele zaawansowanych funkcji, których nie oferuje prosty edytor tekstu. Zamiast pobierać naprawdę duże IDE do prostego zadania, mogę napisać następujące polecenie i wykona on mój program C ++, którego plik wykonywalny jest nazywany
main
.Jeśli używasz języka interpretera, takiego jak Python, możesz wprowadzić interaktywną powłokę Pythona. Tak. Istnieją interaktywne powłoki, które są otoczone ładnym graficznym interfejsem użytkownika, ale są wolniejsze i mają dużo błędów (pomyśl o IDLE ...)
Czasami, gdy GUI jest zepsuty, możesz spróbować użyć Terminalu, aby go otworzyć. Czasami niektóre programy w systemie Linux nie oferują dobrego GUI lub bardzo trudno jest znaleźć, gdzie znajduje się program uruchamiający GUI, wystarczy przejść do Terminala i wpisać na przykład:
Spowoduje to otwarcie dla Ciebie pliku homework.pdf.
W innych sytuacjach GUI nie oferuje wystarczającej mocy i magii do wykonania zadania. Niektóre funkcje wyszukiwania są bardzo podstawowe i nie można stosować wyszukiwania głębokości ani skomplikowanego wzorca wyszukiwania. Ale przez terminal można wydać polecenie o naprawdę bardzo skomplikowanym i długim wzorcu.
GUI jest fajny, ale czasami za pomocą poleceń możesz również uprościć sprawę. Czasami po prostu nie masz wyboru: musisz używać poleceń przez terminale.
źródło
Dodałbym punkt boczny, który wydaje się nie wspomniany, nawet jeśli nie jest to prawdziwa zaleta.
Pomyśl o tym, że GUI jest jak „panel”, który daje dostęp do funkcji, które ma prawdziwy program . Wiele programów, zwłaszcza jeśli we wczesnej wersji, nie ma GUI i można je uruchamiać tylko z terminala. I, jak zauważyli inni, nawet aplikacje, które mają GUI, czasami nie mają interfejsów dla wszystkich funkcji; do tych funkcji musisz użyć terminala.
źródło
Wszyscy dobrze opisali zalety, chciałbym tylko dodać, że oprócz przejrzystości, gdzie widać wszystkie wymienione zależności, jego szybkość. Po upadku synaptic z Ubuntu, centrum oprogramowania jest zbyt opóźnione, szczególnie na wolniejszych komputerach, tutaj instalacja z terminala jest znacznie szybsza.
źródło