Większość użytkowników Linuksa często nie zdaje sobie sprawy z wewnętrznego działania systemu operacyjnego. Być może przez długi czas uruchamiałeś polecenia Linuksa w powłoce, ale czy kiedykolwiek zastanawiałeś się, co dzieje się za kulisami, gdy uderzasz Wejść?

Pod koniec zrozumiesz, jak powłoka przetwarza wpisane polecenie w Linuksie.

Przetwarzanie polecenia

Po wprowadzeniu polecenia pierwszą rzeczą, jaką robi powłoka, jest rozbicie całego polecenia na „tokeny”. Powłoka będzie wtedy szukała nazwy programu należącej do pierwszego tokena w wierszu poleceń.

Jeśli nie znajdzie go w żadnym z katalogów w ścieżce wyszukiwania zdefiniowanej w zmienna środowiskowa $PATH lub w lokalnym katalogu z .\ operatora, czy to nie jest alias powłoki lub funkcja powłoki, powłoka zgłosi błąd. Jeśli znajdzie poprawne polecenie, powłoka przejdzie przez każdy z pozostałych tokenów i zdecyduje, czy jest to zmienna, parametr powłoki, czy argument polecenia.

Jeśli powłoka stwierdzi, że jest to zmienna lub parametr, taki jak

view instagram anonymous
~ operatora dla katalogu domowego, powłoka rozwinie je lub zastąpi ich oryginalnymi wartościami w poleceniu.

Gdy powłoka rozwinie jakiekolwiek parametry lub zmienne, przekaże ciąg poleceń do polecenia, uruchamiając program z jego argumentami. Powłoka nie określa, czy jakiekolwiek argumenty są poprawne. To zadanie dowództwa.

Uruchamianie polecenia

Kiedy powłoka uruchamia inne polecenie, w jaki sposób powraca do tego samego monitu, którego używałeś wcześniej? Powłoka tworzy swoją kopię w procesie zwanym rozwidleniem. Ta kopia powłoki zastępuje się poleceniem ze wszystkimi argumentami, które zostały przetworzone wcześniej. Jest to znane jako „exec”, a połączony proces jest znany jako „fork-and-exec”.

Na przykład, gdy biegniesz polecenie ls, proces powłoki rozwidla się za pomocą widelec() metody i utworzyć kolejną instancję powłoki. Spośród dwóch procesów powłoki działających w systemie dodatkowa powłoka wykona ls za pomocą exec() funkcji, przekształcając się w instancję polecenia ls.

Tymczasem oryginalna powłoka czeka na zakończenie polecenia. Dlatego można używać kontroli zadań do zawieszania zadań i uruchamiania zadań w tle w powłoce.

Związane z: Co to jest proces w systemie Linux?

Zgłaszanie stanu wyjścia

Polecenia Linuksa informują o tym, czy pomyślnie przeszły przez ich stan wyjścia. Jak sama nazwa wskazuje, programy zgłaszają swój stan wyjścia po zakończeniu działania. Robią to poprzez $? zmienna środowiskowa, która zawiera kod zakończenia ostatniego uruchomienia polecenia.

Zgodnie z konwencją, kod zakończenia równy 0 wskazuje na pomyślne wykonanie, podczas gdy wszystko inne niż 0 zwykle oznacza błąd. Twoja powłoka może również wskazywać niezerowy status wyjścia w wierszu poleceń, w zależności od tego, jak skonfigurowany jest znak zachęty.

Powyższy zrzut ekranu jest przykładem pokazującym dostosowany monit Zsh, który pokazuje stan wyjścia błędu 127 z powodu nieistniejącego polecenia.

Teraz wiesz, jak działają polecenia systemu Linux

Teraz, gdy wiesz już, jak powłoka Linuksa przetwarza polecenia, fork i exec oraz w jaki sposób programy zgłaszają swój stan wyjścia, możesz efektywniej korzystać z wiersza poleceń.

Kilka powłok Linuksa jest dostępnych dla użytkowników za darmo. Chociaż każdy z nich wykonuje mniej więcej tę samą pracę, różnią się pod wieloma względami. Możesz spróbować zainstalować niektóre powłoki w swoim systemie i sam zdecydować, która z nich najbardziej Ci odpowiada.

UdziałĆwierkaćE-mail
Która powłoka Linuksa jest najlepsza? Porównanie 5 popularnych pocisków

Szukasz alternatywy powłoki bash dla systemu Linux? Oto przegląd tego, która powłoka Linuksa jest najlepsza: tsch, fish, KornShell i Z Shell.

Czytaj dalej

Powiązane tematy
  • Linux
  • Polecenia Linuksa
  • Powłoka Bash dla Linuksa
O autorze
David Delony (57 opublikowanych artykułów)

David jest niezależnym pisarzem mieszkającym w północno-zachodnim Pacyfiku, ale pierwotnie pochodzi z Bay Area. Od dzieciństwa jest entuzjastą technologii. Zainteresowania Davida obejmują czytanie, oglądanie wysokiej jakości programów telewizyjnych i filmów, gry retro i zbieranie płyt.

Więcej od Davida Delony

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować