Rheinwerk Computing Linux - 7 черупката
7.11 Ефективна работа с Bash
Този подраздел има за цел да ви покаже как можете да улесните ежедневната си работа с bash (Bourne-Again-Shell).

7.11.1 История на командите
Определено трябва да знаете най-простата функция на bash, която върши някаква работа вместо вас: историята на командите. Запазва най-скоро въведените команди. Можете да получите достъп до тях и не е нужно да ги въвеждате отново, за да ги отворите отново. В допълнение, bash предлага възможност за редактиране на тези команди.
Обикновено извикване на история ви предоставя преглед на командите, съдържащи се в историята. Като въведете число, ще видите последните n записа.
Листинг 7.59 Историята
Можете да изтриете нежелани записи в историята от списъка с история, като използвате history -d.
Превъртане на историята
Да предположим например, че е изпълнена командата find/usr/local/bin -name "filename". Сега искате да изпълните същата команда с различно име на файл. За да не се налага да въвеждате всичко отново, можете да заредите последната команда, въведена в командния ред, с курсора нагоре.
С повторно натискане на клавиша със стрелка нагоре, bash презарежда командата, която е била извикана преди последната, в командния ред и така нататък - това е толкова просто. С клавиша със стрелка надолу можете да Потърсете историята отново напред.
Редактиране в командния ред
За да се адаптира старото повикване за търсене, новото име на файла трябва да се вмъкне в стария команден вход. Можете да се движите с курсора наляво и надясно в командния ред и да изтривате и вмъквате символи във всички позиции.
Удивителният знак има много специална функция в bash. Използва се за извикване на команди от историята.
Можете да повторите последната въведена команда с два удивителни знака:
Листинг 7.60 Изпълнение на последната команда отново
Можете също да повторите една от командите, съхранени в историята на командите, като посочите номера на командата. Можете да получите номера на историята на команда, като извикате командата за история. След това командата се изпълнява отново с! N (където n е номерът на командата).
Листинг 7.61 !н
Търсене на команди
Много полезна характеристика на bash е, че той може да търси команди, като посочва първите няколко знака на команда. Вероятно се чудите какво можете да си представите с това? Както често се случва, тази функционалност може да бъде обяснена най-добре с пример.
[напр.] Потребител първо въвежда командата uname и след това ъптайм на командата. Сега той би искал да стартира отново време на работа, по-късно без име, без да въвежда отново тези команди. Първото разглеждане в историята на командите често е тромаво. Следователно потребителят използва командно търсене.
Най-простият вариант сега е следният: Потребителят въвежда удивителен знак и след това веднага следва първата буква от командата, т.е. „u“. След това обвивката извиква последната команда, започнала с "u", т.е. ъптайм. Ако потребителят иска да се обади uname, не е достатъчно да постави „u“ след удивителен знак. За целта трябва да се посочи втората буква на командата, т.е. „n“, след което последната команда, започнала с „un“, се изпълнява отново:
Листинг 7.62 Търсенето на команди
Можете да намерите последната команда, която съдържа конкретен низ, като се обадите !? тичай отново.
От торбата с трикове
Това е много по-удобно да се направи с комбинацията от клавиши Ctrl + R. С тази процедура bash автоматично ви показва коя команда ще бъде изпълнена, докато редактирате командния ред:
Листинг 7.63 Ctrl + R
Заменете части от стари команди
Спомняте ли си многократното обаждане за намиране, което трябваше да бъде редактирано, за да се търси ново име на файл? Това може да бъде опростено отново в bash, ако командата за търсене е последната въведена. Чрез посочване на символния низ, който ще бъде заменен в последната команда, може да се изпълни модифицирана стара команда.
Споменатото повикване за търсене изглеждаше така: find/usr/local/bin -name "filename". За да търсите името на файла zsh и да използвате същата команда, старата команда трябва да бъде манипулирана според модела \ Alter-String \ NewString \, т.е.:
Листинг 7.64 Командата за търсене с ново име на файл
7.11.2 Автоматично попълване на имена на файлове
Подобна практическа функция като историята на командите е автоматичното попълване на имената на файловете.Тя се контролира в bash от клавиша tab. Тъй като програмите също представляват файлове под Unix, тази функция естествено работи и с тях.
Когато използвате клавиша Tab, трябва да се прави разлика между два случая:
- Има само един съвпадащ файл.
- Има няколко съвпадащи файла.
Само един кандидат
За първия случай ще създадем примерна директория, в която ще поставим файл с име abc.txt.
Листинг 7.65 Създайте примерна директория с един файл
Ако сега използваме програма като/bin/ls, на която предаваме този файл като параметър, трябва само да натиснем клавиша Tab, тъй като в директорията има само един файл и bash автоматично присвоява името на файла на Желана позиция във входа.
[Например] Опитайте сами: Преминете към новата директория, въведете ls и интервал и натиснете клавиша Tab. Bash сега трябва автоматично да напише името на файла abc.txt в командния ред.
Сега създаваме файл с името xyz.txt в директорията. Ако повторите последния пример при новите условия, той няма да работи лесно. Баш сам не знае кой от двата файла да се предаде като параметър. Трикът сега работи по такъв начин, че да се въведат толкова символи от името на файла, докато има само едно име на файл, за което се прилагат първите символи - в този случай първата буква на файла (или „а“ или „В“ xВ «), тъй като никое име на файл не съдържа същите символи. Ако клавишът Tab бъде натиснат отново, bash автоматично ще завърши името на файла отново.
Но bash може да свърши малко работа за вас. Нека приемем, че в една директория има два файла abc и abd. Ако така или иначе няма избор между символите, натискането на клавиша Tab винаги носи тези знаци на монитора. Така че, ако натиснете клавиша Tab в такава директория, bash ще напише първите два знака (тъй като те така или иначе са еднакви и трябва да ги въведете) на екрана. След това трябва само да въведете "c" или "d".
В случай, че файлът xyz все още присъства в директорията, първата буква трябва да бъде въведена отново, тъй като два случая могат да възникнат отново.
Ако има няколко файла, можете също да натиснете клавиша Tab два пъти, за да получите общ преглед на файловете в директорията, докато въвеждате команди. Чрез натискане на това два пъти, bash винаги ви предоставя избор на файлове, които все още са възможни според предишния ви вход.
Това означава в примера: Ако отново имате трите файла xyz, abc и abd в директорията, bash първо ще изброи и трите. Ако след това въведете „a“ и натиснете клавиша Tab, bash ви дава „b“ (единствената полезна опция) на екрана. Ако след това щракнете двукратно върху клавиша Tab отново, bash ще изведе двете възможни имена на файлове abc и abd.
Освен това клавишът за раздели В е „интелигентен“: В началото на запис на черупка има смисъл само изпълнима команда - съответно се изпълняват само изпълними файлове или вградени обвивки.