Повечето потребители на Linux често не знаят за вътрешната работа на операционната система. Може да изпълнявате команди на Linux в черупката дълго време, но чудили ли сте се какво се случва зад кулисите, когато ударите Въведете?
До края ще имате кратко разбиране за това как черупката обработва въведената команда в Linux.
Обработка на командата
Когато въведете команда, първото нещо, което черупката прави, е да разбие цялата команда на "жетони". След това черупката ще търси име на програма, принадлежаща на първия маркер в командния ред.
Ако не го намери в някоя от директориите в пътя за търсене, определен в променливата на средата $ PATH или в локалната директория с .\ оператор, или не е a псевдоним на черупката или черупка функция, черупката ще даде грешка. Ако все пак намери валидна команда, тогава обвивката ще премине през всеки от другите маркери и ще реши дали това е променлива, параметър на черупка или аргумент на командата.
Ако обвивката определи, че това е променлива или параметър като
~ оператор за домашната директория, черупката ще ги разшири или ще ги замени с първоначалните им стойности в командата.Когато черупката е разширила някакви параметри или променливи, тя ще предаде командния низ към командата, изпълнявайки програмата с нейните аргументи. Черупката не определя дали някои аргументи са валидни. Това е работата на командата.
Изпълнение на командата
Когато черупката стартира друга команда, как се връща към същия подкана, който сте използвали преди? Черупката прави копие от себе си, процес, наречен разклоняване. Това копие на черупката се заменя с командата, с всички аргументи, които бяха обработени по -рано. Това е известно като "exec", а комбинираният процес е известен като "fork-and-exec".
Например, когато бягате командата ls, процесът на черупката ще се раздвои с помощта на вилица () метод и създайте друг екземпляр на обвивката. От двата процеса на обвивка, работещи в системата, допълнителната обвивка ще изпълнява ls, използвайки exec () функция, превръщайки се в екземпляр на командата ls.
Междувременно оригиналната обвивка чака командата да завърши. Ето защо можете да използвате контрола на задания, за да спрете задачите и да изпълнявате задания във фонов режим в черупката.
Свързани: Какво е процес в Linux?
Отчитане на състоянието на излизане
Командите на Linux съобщават дали те са изпълнени успешно или не чрез състоянието си на излизане. Както подсказва името, програмите съобщават за състоянието си на излизане, когато приключат. Те правят това чрез $? променлива на средата, която съдържа състоянието на излизане на последната команда за изпълнение.
По конвенция изходното състояние 0 означава успешно изпълнение, докато всичко различно от 0 обикновено означава грешка. Вашата черупка може също да показва състояние на излизане, различно от нула, в командния ред в зависимост от начина, по който е конфигуриран вашият подкана.
Горната снимка на екрана е пример, показващ персонализирана подкана Zsh, която показва състояние на излизане от грешка 127 поради команда, която не съществува.
Сега знаете как работят командите на Linux
Сега, когато сте наясно как Linux обвивката обработва команда, форкира и изпълнява себе си и как програмите отчитат състоянието си на излизане, можете да използвате по -ефективно командния ред.
Няколко черупки на Linux са достъпни за потребителите безплатно. Въпреки че всеки от тях изпълнява горе -долу една и съща работа, те са различни в много аспекти. Можете да опитате да инсталирате някои от черупките на вашата система и сами да решите кой от тях ви подхожда най -добре.
Търсите алтернатива на Linux bash shell? Ето обобщение коя черупка на Linux е най -добра: tsch, fish, KornShell и Z Shell.
Прочетете Напред
- Linux
- Команди на Linux
- Linux Bash Shell
Дейвид е писател на свободна практика, базиран в северозападната част на Тихия океан, но първоначално родом от района на залива. Той е ентусиаст на технологиите от детството. Интересите на Дейвид включват четене, гледане на качествени телевизионни предавания и филми, ретро игри и събиране на записи.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!
Щракнете тук, за да се абонирате