Оператори ланца команди су специјални знакови који се користе за писање минијатурних схелл скрипти у командној линији. Обично се користе за извршавање команди у одређеном низу, дефинисаном постављањем оператора између команди. Ово је невероватно корисно у аутоматизацији задатака.
Хајде да научимо о неколико уобичајених оператора ланчања на Линук-у који вам могу помоћи да брже обављате задатке и са мањим корисничким интервалима.
1. Оператор Амперсанд (&)
Често када отворите програм или извршите команду из љуске, морате или да сачекате док се команда не заврши или да ручно изађете из програма пре него што наставите да користите љуску. Ево где амперсанд оператор (&) долази у игру.
Додавањем оператора амперсанда било којој команди, диктирате љуску извршите ту Линук команду у позадини тако да можете да наставите да користите љуску невезани.
гедит &
Обично, ако покренете гедит са терминала, нећете моћи да користите терминал осим ако не затворите уређивач текста. Али, додавањем оператора амперсанда, можете га покренути у позадини и одмах наставити да користите љуску.
2. Оператор тачке и зарез (;)
Оператор тачка-зарез је невероватно користан Линук оператор уланчавања који можете да користите за извршавање команди у дефинисаном, секвенцијалном редоследу. Наручите своје команде и раздвојите их тачком и зарезом.
пвд; мкдир тест; цдтест; тоуцх филе
Горња синтакса диктира љуску да извршава сваку команду једну за другом. Имајте на уму да љуска не проверава да ли се свака команда успешно завршава. Чим љуска прими повратни код, прелази на извршавање следеће команде.
3. Оператор ОР (||)
Оператор ОР ће извршити наредбу која следи само ако претходна команда не успе, тј. врати излазни код од 0. Функционише као логичка капија ИЛИ, која враћа вредност 1 када је улаз 0.
лоша_команда || лс
У овом примеру синтаксе, бад_цомманд је лажна команда која неће успети да се изврши и пошто не успе, команда је наследна оператора ОР, што је команду лс, ће се успешно извршити.
4. Оператер цеви (|)
Оператор цеви усмерава излаз претходне команде као улаз за следећу команду. Најчешће се користи за филтрирање података командом греп.
тест за мачке | греп -и "искористи"
Ова команда шаље излаз команда мачке као улаз за команду греп, која затим филтрира излаз према наведеном низу.
5. Оператор АНД (&&)
Овај оператор функционише на сличан начин као оператор тачке и зарез осим, за разлику од оператора тачке и зарез, АНД ће извршити команде само ако је претходна команда успешно извршена.
пвд && мкдир тест && цд тест && бад_цомманд && лс
У овом примеру синтаксе, љуска ће успешно извршити све команде до бад_цомманд. Међутим, пошто бад_цомманд не успе да се покрене, љуска ће вратити грешку и прескочити команду лс.
6. Оператер НЕ (!)
Оператор НОТ ради на сличан начин као наредба осим у програмирању. На пример, ако желите да извршите операцију на великом броју датотека у директоријуму, али желите да искључите неколико на основу неког параметра, онда можете користити НОТ оператор тако што ћете проследити параметар после НОТ карактера (!).
рм-р !(*.ткт)
Ова пример команде ће рекурзивно уклонити све датотеке у директоријуму осим датотека које имају ".ткт„ продужетак.
7. Оператор приоритета ((..))
Команде које следе после АНД и ОР оператора зависе од излазног кода претходне команде. Ови оператори су бинарни и процењују само две команде које долазе пре и после њих.
Дакле, када радите са више оператора, важно је поставити групе и приоритет како бисте осигурали да секвенца извршавања испуњава ваша очекивања.
(лс *.ткт > ткт-филес.лист && цп *.тк ~) && (лс *.деб > деб-пацкагес.лист && цп *.деб ~) || одјек "Тест предности!"
У овом узорку синтаксе, обе групе команди морају да врате излазни код 0 да би се обезбедило успешно извршење последње команде. Овај пример захтева да обе команде у првом скупу () изађу са 0 да би се други сет () покренуо.
8. Оператор комбинације ({..})
Као што име наговештава, комбиновани оператор се користи за груписање команди. Које год команде желите да групишете, можете их ставити унутар витичастих заграда и оне ће бити извршене у зависности од излазног кода прве команде.
тест -ф /етц/пассвд && {пвд; датум} && ецхо $0; одјек "Здраво"
Узорак синтаксе ће тестирати да ли датотеку /етц/пассвд је присутан, одштампајте тренутни радни директоријум, датум, име љуске и ехо "Здраво".
9. Конкатенација или Есцапе оператор (\)
Оператор спајања или излаза има две функције. Можете га користити или за спајање две команде или као излазни знак када радите са стринговима у љусци.
мкдир тест0 тест1 \ тест2
ецхо „Здраво! из тхе
Друга страна"
Прва команда ће направити четири директоријума под називом тест0 до тест2, а друга команда ће одштампати стринг одвојен новим редом.
10. Оператори преусмеравања (>, >>,
Оператори преусмеравања преусмеравају излаз или улаз у датотеку било поновним писањем датотеке или додавањем њој. Ако желите да поново напишете датотеку, онда морате да користите синтаксу једноструке угаоне заграде (>). Ако желите да додате датотеку, мораћете да користите синтаксу двоструке угаоне заграде (>>).
одјек "дсд"> тест; одјек "бсссс">> тест
У синтакси узорка, прва команда ће заменити "тест" датотеку са датим стрингом, али у другој команди, наведени стринг ће бити додат тест датотеци.
Убрзајте радни ток вашег Линук терминала
Док ће коришћење специјалних оператора значајно поједноставити извршавање задатака за вас, постоји много других начина да убрзате ток посла.
Један лак и вредан начин да урадите више за мање времена је да се упознате са неколико практичних пречица за љуску. Навикавање на ове пречице ће ићи далеко, а ви ћете се ослањати на њих све док користите Линук.