Већина корисника Линука често није свесна интерног рада оперативног система. Можда сте дуго извршавали Линук команде у љусци, али да ли сте се икада запитали шта се дешава иза сцене када погодите Ентер?

До краја ћете имати кратак увид у то како љуска обрађује откуцану команду у Линуку.

Обрада Команде

Када унесете команду, прва ствар коју љуска уради је разбијање целе команде на "токене". Љуска ће затим тражити име програма који припада првом токену у командној линији.

Ако га не пронађе ни у једном од директоријума на путањи претраживања дефинисаној у променљиву окружења $ ПАТХ или у локалном директоријуму са .\ оператер, или то није а алиас љуске или схелл функција, љуска ће дати грешку. Ако пронађе ваљану наредбу, љуска ће затим проћи кроз сваки други токен и одлучити да ли је то променљива, параметар љуске или аргумент команде.

Ако љуска утврди да је то променљива или параметар попут ~ оператор за кућни директориј, љуска ће их проширити или замијенити изворним вриједностима у наредби.

instagram viewer

Када љуска прошири било који параметар или променљиву, она ће проследити низ наредбе до наредбе, покрећући програм са својим аргументима. Љуска не утврђује да ли су неки аргументи важећи. То је посао команде.

Покретање команде

Када љуска покрене другу команду, како се враћа на исти одзив који сте раније користили? Љуска прави копију себе, процес који се назива рачвање. Ова копија љуске замењује се наредбом, са свим аргументима који су обрађени раније. Ово је познато као „екец“, а комбиновани процес је познат као „форк-анд-екец“.

На пример, када трчите наредба лс, процес љуске ће се сам рачвати помоћу виљушка () метод и креирајте другу инстанцу љуске. Од два процеса љуске који се изводе на систему, додатна љуска ће извршавати лс користећи екец () функцију, претварајући се у инстанцу наредбе лс.

У међувремену, оригинална љуска чека да се наредба доврши. Ово је разлог зашто можете користити контролу посла да бисте обуставили послове и покренули послове у позадини у љусци.

Повезан: Шта је процес у Линук -у?

Пријављивање статуса изласка

Наредбе Линука извештавају о томе да ли су успешно извршиле свој статус изласка или не. Као што име говори, програми пријављују свој статус изласка када заврше са радом. Они то раде кроз $? променљива окружења, која садржи статус излаза наредбе последњег покретања.

Према конвенцији, излазни статус 0 означава успешно извршење, док све осим 0 обично значи грешку. Ваша љуска такође може указивати на статус излаза који није нула у командној линији у зависности од тога како је ваш упит конфигурисан.

Горњи снимак екрана је пример који приказује прилагођени Зсх одзив који приказује статус изласка из грешке 127 због команде која не постоји.

Сада знате како функционишу команде Линука

Сада када сте свесни како Линук љуска обрађује команду, форкује се и извршава и како програми извештавају о статусу изласка, можете ефикасније да користите командну линију.

Неколико Линук љуски је доступно корисницима бесплатно. Иако сваки од њих обавља мање -више исти посао, они су различити у многим аспектима. Можете покушати инсталирати неке љуске на свој систем и сами одлучити која вам највише одговара.

ОбјавиТвеетЕмаил
Која је љуска Линука најбоља? 5 уобичајених љуски у поређењу

Тражите алтернативу Линук басх љусци? Ево кратког приказа која је Линук љуска најбоља: тсцх, фисх, КорнСхелл и З Схелл.

Прочитајте следеће

Повезане теме
  • Линук
  • Линук наредбе
  • Линук Басх Схелл
О аутору
Давид Делони (57 објављених чланака)

Давид је слободни писац са седиштем на северозападу Пацифика, али изворно потиче из области залива. Одушевљен је технологијом од детињства. Давидова интересовања укључују читање, гледање квалитетних ТВ емисија и филмова, ретро игре и прикупљање плоча.

Више од Давида Делонија

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили