Рајнверк компјутерски Linux - 7 Школка
7.11 Ефикасно работење со Баш
Овој потсек има за цел да ви покаже како можете да ја олесните вашата секојдневна работа со bash (Bourne-Again-Shell).

7.11.1 Историја на командите
Дефинитивно треба да ја знаете наједноставната карактеристика на баш што работи за вас: историја на команди. Ги зачувува неодамна внесените команди. Можете да пристапите до нив и не мора повторно да ги внесувате за да ги вратите. Покрај тоа, bash нуди можност за уредување на овие команди.
Едноставен повик кон историјата ви дава преглед на командите содржани во историјата. Внесувајќи број, ќе ги видите последните n записи.
Набројување 7.59 Историја на команди
Можете да избришете несакани записи во историјата од списокот со историја користејќи историја -d.
Лизгање низ историјата
На пример, да претпоставиме дека е извршена командата find/usr/local/bin -name "име на датотека". Сега сакате да ја извршите истата команда со друго име на датотека. За да не треба да напишете сè повторно, можете да ја вчитате последната команда внесена во командната линија со копчето на курсорот нагоре.
Со повторно притискање на копчето со стрелката нагоре, bash повторно ја вчитува командата што беше повикана пред последната во командната линија и така натаму - толку е едноставно. Со копчето со стрелката надолу може повторно разгледајте ја историјата напред.
Уредување во командната линија
Со цел да се прилагоди стариот повик за пронаоѓање, новото име на датотека мора да се вметне во стариот влез за команда. Можете да ги користите копчињата на курсорот за да се движите лево и десно во командната линија и да бришете и вметнувате знаци на сите позиции.
Воскликот има многу посебна функција во баш. Се користи за повикување команди од историјата.
Последната наредба внесена може да ја повторите со две извичник:
Набројување 7.60 Повторно извршување на последната команда
Можете исто така да повторите една од командите зачувани во историјата на команди со назначување на бројот на командите. Можете да добиете историски број на команда со повикување на командата историја. Командата потоа се извршува повторно со! N (каде n е команден број).
Набројување 7,61 !н
Пребарувајте команди
Многу корисна карактеристика на bash е тоа што може да бара команди со специфицирање на првите неколку карактери на командата. Сега веројатно се прашувате што можете да замислите со тоа? Како што често се случува, оваа функционалност најдобро може да се објасни со пример.
[пр.] Корисник прво ја внесува командата uname, а потоа командата uptime. Сега тој би сакал повторно да повика време на работа, подоцна без име, без повторно да ги внесува овие команди. Првото гледање во историјата на командите е често незгодно. Оттука, корисникот користи командно пребарување.
Наједноставната варијанта сега е следнава: Корисникот внесува извичник и потоа веднаш ја следи првата буква од командата, односно В »u«. Тогаш, школката ја повикува последната команда што започна со „uВ“, т.е. време на работа. Но, ако корисникот сака да повика uname, не е доволно да се стави »u» по извичникот. За да го направите ова, мора да се наведе втората буква од командата, односно «n», при што повторно се извршува последната команда што започна со «un»:
Набројување 7,62 Пребарување команди
Последната команда што содржеше одредена низа можете да ја најдете со повикување !? трчај пак.
Од вреќа со трикови
Ова е многу попогодно да се направи со комбинацијата на копчиња Ctrl + R. Со оваа постапка, bash автоматски ви покажува која команда ќе се изврши додека ја уредувате командната линија:
Набројување 7,63 Ctrl + R
Заменете делови од старите команди
Дали се сеќавате на повторениот повик за да откриете дека мора да се уреди за да се побара ново име на датотека? Ова може повторно да се поедностави во bash ако командата за пронаоѓање беше последната внесена. Со назначување на низата карактери што треба да се заменат во последната команда, старата команда може да се изврши изменета.
Наведениот повик за пронаоѓање изгледаше вака: пронајдете/usr/local/bin -name "име на датотека". За да го побарате името на датотеката zsh и да ја користите истата команда, старата команда мора да биде изманипулирана според моделот \ Alter-String \ NewString \, т.е .:
Набројување 7.64 Командата за пронаоѓање со ново име на датотека
7.11.2 Автоматско завршување на имињата на датотеките
Слична практична карактеристика како историјата на командите е автоматско завршување на имињата на датотеките. Таа се активира во баш со копчето јазиче. Бидејќи програмите прикажуваат и датотеки под Unix, оваа одлика природно работи и со нив.
Кога го користите копчето Tab, мора да се направи разлика помеѓу два случаи:
- Има само една датотека што одговара.
- Постојат неколку соодветни датотеки.
Само еден кандидат
За првиот случај ќе создадеме пример директориум во кој ќе поставиме датотека со име abc.txt.
Набројување 7,65 Создадете примерок директориум со датотека
Ако сега користиме програма како/bin/ls, на која и ја предаваме оваа датотека како параметар, само треба да го притиснеме копчето Tab, бидејќи има само една датотека во директориумот, а bash автоматски го додава името на датотеката во Посакувана позиција во влезот.
[На пр.] Обидете се сами: Променете во новиот директориум, внесете ls и празно место и притиснете го копчето Tab. Баш сега треба автоматски да го напише името на датотеката abc.txt во командната линија.
Сега создаваме датотека со името xyz.txt во директориумот. Ако го повторите последниот пример под новите услови, тој нема да работи лесно. Баш не знае сам по себе која од двете датотеки да се пренесе како параметар. Трикот сега работи на таков начин што ќе се внесат што повеќе карактери од името на датотеката сè додека не постои само едно име на датотека на кое се применуваат првите знаци - во овој случај доволна е првата буква од датотеката (или »а» или «В» xВ «), бидејќи ниедно име на датотека не ги содржи истите карактери. Ако копчето Tab потоа се притисне повторно, bash автоматски ќе го заврши името на датотеката повторно.
Но, баш може да заврши малку работа за вас. Да претпоставиме дека има две датотеки abc и abd во еден директориум. Во секој случај, нема избор помеѓу знаците, со притискање на тастерот Tab секогаш се носат овие знаци на мониторот. Значи, ако го притиснете копчето Tab во таков директориум, bash ќе ги напише првите два знака (бидејќи и онака овие се исти и треба да ги внесете) на екранот. Тогаш треба само да внесете »в» или «д».
Во случај датотеката xyz да е сè уште присутна во директориумот, првата буква мора повторно да се внесе, бидејќи може да се појават два случаи повторно.
Ако има повеќе од една датотека, можете двапати да го притиснете копчето Tab за да добиете преглед на датотеките во директориумот додека внесувате команди. Со двапати притискање на ова, bash секогаш ви обезбедува селекции на датотеки што се уште се можни според претходниот влез.
Ова значи во примерот: Ако повторно ги имате трите датотеки xyz, abc и abd во директориумот, bash прво би ги навел сите три. Ако потоа внесете В „аВ“ и притиснете го копчето Таб, bash ќе го прикаже В „bВ“ (единствената корисна опција) на екранот. Ако повторно притиснете двапати на тастерот Tab, bash сега ќе ги објави двете можни имиња на датотеки abc и abd.
Понатаму, табулаторот В е »интелигентен«: На почетокот на записот на школка има смисла само извршна команда - соодветно на тоа се завршени само извршни датотеки или вградени школки.