/ / Како користити историју Басх-а у Линук или мацОС терминалу

Како се користи ваша Басх историја у Линук или мацОС терминалу

Басх шкољка је стандардни терминалокружење укључено у већину Линук дистрибуција, укључујући мацОС и доступно за инсталирање на Виндовс 10. Памти команде које уписујете и чува их у датотеку историје. Вероватно знате неколико основа историје басх-а, али то је много моћније него што можда схватате.

Пречице на тастатури

ПОВЕЗАН: Најбоље пречице на тастатури за Басх (ака Линук и мацОС Терминал)

Да бисте се кретали кроз историју басха, можете да користите неколико басхових корисних пречица на тастатури. Притисните ове пречице и наредбе које сте претходно користили појавит ће се у одзиву.

  • Горе стрелица или Цтрл + П: Идите на претходну команду у вашој историји. Притисните тастер више пута да бисте се кретали уназад кроз наредбе које сте користили.
  • Стрелица надоле или Цтрл + Н: Пређите на следећу команду у вашој историји. Притисните тастер више пута да бисте се кретали напред кроз наредбе које сте користили.
  • Алт + Р: Повратите све промене команде коју сте повукли из своје историје ако сте је уредили у тренутној линији.

Басх такође има посебан режим „опозива“ који можете да користите за тражење команди које сте претходно покренули, уместо да их прегледате једну по једну.

  • Цтрл + Р: Подсетите се последње команде која одговара знаковима које сте унели. Притисните ову пречицу и почните да куцате да бисте претражили своју историју басх-а за команду.
  • Цтрл + О: Покрените команду коју сте пронашли помоћу Цтрл + Р.
  • Цтрл + Г: Напустите режим претраживања историје без покретања наредбе.

Погледајте историју Басх-а

На екрану можете да одштампате целокупну историју басха покретањем једне наредбе:

history

Видећете листу свих команди у вашембасх историја, заједно са бројем лево од сваког. Команда са „1“ поред ње је најстарија наредба у вашој историји басха, док је наредба са највећим бројем најновија.

ПОВЕЗАН: Постаните корисник Линук терминала са овим 8 трикова

Можете радити све што желите са резултатом. На пример, можете да га пошаљете на grepнаредба за претраживање ваше историје команди.

history | grep your_search

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

history | tail -5

Покрените команде из своје историје

Басх може брзо да "прошири" претходне команде, илипроширите их и модификујте. Ова значајка је позната као "експанзија историје" и користи ускличник, познат као "прасак". Једноставно их откуцајте и притисните Ентер да бисте их покренули као и било коју другу команду.

Да бисте покренули одређену наредбу из своје историје по њеном броју, користите следећу наредбу:

!#

На пример, рецимо да сте желели да покренете 12. команду из своје историје басха. То је наредба са „12“ лево од ње када покренете history команда. Укуцали бисте следећу команду.

!12

Да бисте поново покренули задњу команду коју сте покренули, откуцајте следећу. То има исти ефекат као једном притиском стрелице горе да бисте погледали претходну команду, а затим притиском на Ентер.

!!

Наредбом можете да упутите и одређени број редака уназад. На пример, !-2 извео би другу до последњу команду коју си водио. !! значи исто што и !-1 .

Ово ширење ради било где на линији. Можете додати било шта што желите пре или после !! или било који други израз у овом одељку. На пример, можете да унесете следећу наредбу да бисте поново покренули последњу наредбу кроз коју сте прошли sudo, дајући му коренске привилегије. Ово је посебно корисно ако заборавите да додате sudo пре покретања команде.

sudo !!

Или, на пример, можете да поново покренете претходну команду и пребаците њен излаз на греп да бисте потражили неки текст.

!! | grep text

Да бисте наредбу тражили у својој историји и покренули је, откуцајте следеће. Ово ће покренути задњу наредбу која одговара тексту који сте одредили:

!text

Дакле, ако сте недавно покренули команду која је започела са ping, можете да покренете следећу наредбу да је потражите. Ово ће претражити уназад кроз вашу историју, пронаћи ће најновију команду која почиње са „pi“, И одмах покрените:

!pi

Можете додати :p на било које од горе наведених експанзија и басх ће штампати наредбу на терминалу без да је покрене. Ово је корисно ако желите да потврдите да сте изабрали исправну команду пре него што је покренете.

!12:p
!!:p
!text:p

Поновно користите аргументе из своје историје

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

command !$

На пример, рецимо да сте извршили команду touch /home/chris/some_long_file_name_you_dont_want_to_type_again . Сада желите да покренете команду nano /home/chris/some_long_file_name_you_dont_want_to_type_again. Уместо да куцате целу ствар испочетка, могли бисте да покренете:

nano !$

Тхе !$ натерао би басх да аутоматски попуни последњи аргумент из ваше претходне команде.

Ово испуњава само последњи аргумент. Дакле, ако трчите ping google.com -c 4 и онда трчи ping !$ , ово би се само проширило на „ping 4“.

Да бисте исправили ову ситуацију, помоћу следећег трика можете проширити први аргумент на линији, а не последњи:

command !^

Па, ако сте трчали ping google.com -c 4 и онда отрчао ping !^ , басх би то проширио на „ping google.com".

Да бисте испунили све аргументе коришћене у претходној наредби уместо само једног аргумента, користићете следеће:

command !*

Па, ако сте трчали ping !* уместо тога, басх ће аутоматски попунити све аргументе које сте користили у претходној наредби.

Можете користити исти трик који користите за покретање команди из своје историје како бисте из њих добили аргументе. Једноставно користите следећи образац.

command !abc:#

На пример, извршили смо команду sudo hostname ubuntu раније. Ако покренемо следећу команду, басх ће претраживати уназад кроз историју да би пронашао последњу команду која почиње словима које упишемо и попуњавамо аргумент који смо одредили. Па, ако трчимо echo !su:2 , басх ће претражити назад како би пронашао последњу наредбу која почиње са „su“И попуните свој други аргумент, а то је„ubuntu“.

Други трикови функционишу као што можда очекујете. На примјер, замјена броја звјездицом, позната као замјенски знак, узрокује да басх попуњава све аргументе из наредбе:

command !abc:*

Поновно извршите претходну команду и измените је

Басх вам такође омогућава да поново покренете претходнинаредите и одредите нешто што би требало променити. Ово може бити корисно за исправљање погрешка у куцању. На пример, следећа наредба ће поновити претходну команду, замењујући текст „abc"У њему са текстом"xyz“.

^abc^xyz

На пример, ако сте случајно потрчали ping gogle.com, могли бисте трчати ^gog^goog и басх би извео команду ping google.com уместо тога.

Где се чува ваша историја и како је очистити

Басх шкољка чува историју командипокренули сте у датотеци историје вашег корисничког налога на ~ / .басх_хистори према заданим поставкама. На пример, ако је ваше корисничко име боб, ову датотеку ћете пронаћи на /хоме/боб/.басх_хистори.

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

Да бисте избрисали историју басха, можете покренути следећу команду. Овим се брише садржај .басх_хистори датотеке вашег корисничког налога:

history -c

Басх памти само ограничени број команди, спречавајући да датотека са историјама постане превелика. Број уноса у историју које Басх памти контролише HISTSIZEпроменљива. Подразумевано је 500 или 1000 уноса. Следећу команду можете да покренете да бисте видели величину историје басха на вашем систему.

echo $HISTSIZE

Да бисте поставили историју на нулу, покрените следећу наредбу.

HISTSIZE=0

За тренутну сесију басх неће чувати уносе из историје осим ако покренете наредбу као што је HISTSIZE=1000 да бисте га вратили на одређени број уноса.

Како занемарити просторе и дупликате

Басх вам омогућава да игноришете ставке из историје које започињу размаком ако подесите HISTCONTROLпроменљив на ignorespace.

HISTCONTROL=ignorespace

Унесите размак пре наредбе пре него што је покренетеу басх схелл-у и наредба ће се нормално покренути, али се неће појавити у вашој историји ако вам је омогућена ова променљива. Ово вам омогућава да мало сачувате своју историју, одабиром покретања команди, а да се оне не појаве у вашој историји.

Басх вам такође омогућава да игноришете дупликатне команде које могу угурати вашу историју. Да бисте то урадили, подесите HISTCONTROL до ignoredups.

HISTCONTROL=ignoredups

Да бисте користили оба ignorespace и ignoredups функцију, подесите HISTCONTROL променљив на ignoreboth.

HISTCONTROL=ignoreboth

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

Шкољка басх је сложен алат са много вишеопције од ових. Потражите у одељцима Басх Хистори Буилтинс и Хистори Ектенсион у званичном басх приручнику за детаљније информације и остале напредне трикове које можете да користите.