24Aug

Како користити историју баша на Линук или МацОС терминалу

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

пречице са тастатуре

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

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

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

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

Прегледајте историју баша

Можете да одштампате читаву историју басх-а на екрану тако што ћете покренути једну команду: историја

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

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

​​историја |греп иоур_сеарцх

Такође можете да га пребаците у команду реп да бисте видели само мали број недавних команди које сте покренули.На пример, следећа наредба би приказала последњих 5 уноса у вашој историји.Историја

|реп -5

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

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

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

! #

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

! 12

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

! !

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

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

судо! !

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

! !|греп текст

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

! Текст

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

! Пи

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

! 12: п!: П! Тект: п

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

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

команда! $

На пример, рецимо да сте покренули команду тоуцх /home/chris/ соме_лонг_филе_наме_иоу_донт_вант_то_типе_агаин.Сада желите да покренете команду нано /home/chris/ соме_лонг_филе_наме_иоу_донт_вант_то_типе_агаин.Уместо да куцате цијелу ствар из нуле, могли бисте да покренете:

нано! $

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

Ово само испуњава последњи аргумент.Дакле, ако покренете пинг гоогле.цом -ц 4, а затим покрените пинг! $, Ово би се само проширило на "пинг 4".

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

наредбу! ^

Дакле, ако сте покренули пинг гоогле.цом -ц 4, а затим покренули пинг! ^,басх би ово проширио на "пинг гоогле.цом".

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

команду! *

Дакле, ако сте трчали пинг!* уместо тога, басх би аутоматски попуњавао све аргументе које сте користили у претходној наредби

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

цомманд! абц:#

На пример, раније смо покренули команду судо хостнаме убунту раније. Ако покренемо следећу наредбу, басх ће претраживати уназад кроз историју како би пронашао задњу команду која почиње словима које уносимо и попуњавамо аргумент који ми одредимо.трчимо ецхо! су: 2, бассх ће потражити назад да пронађе последњу команду која почиње са "су" и попуни свој други аргумент, што је "убунту".

Остали трикови раде како бисте могли очекивати.На пример, заменом броја са звјездицом, познатом као џокер, узрокује басх да попуни све аргументе из наредбе:

наредба! Абц: *

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

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

^ абц ^ киз

На пример, ако сте случајно покренули пинг гогле.цом, онда бисте могли покренути ^ гог ^ гоог и басх би покренуо наредбу пинг гоогле.цом уместо тога.

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

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

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

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

Басх се подразумевано подсећа на ограничени број команди, спречавајући да датотека историје постане превелик.Број ставки историје басх памти контролише ХИСТСИЗЕвариабле.Подразумевано је обично 500 или 1000 ставки.Можете да покренете следећу наредбу да видите величину басх историје на вашем систему.

ецхо $ ХИСТСИЗЕ

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

ХИСТСИЗЕ = 0

За тренутну сесију, басх неће чувати никакве уносе историје, осим ако вам не покренете команду као што је ХИСТСИЗЕ = 1000 да бисте је вратили на одређени број уноса.

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

Басх вам омогућава да игноришете уносе историје које почињу са простором ако поставите ХИСТЦОНТРОЛвариабле у игнореспаце.

ХИСТЦОНТРОЛ = игнореспаце

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

Басх такође дозвољава да игноришете дуплиране команде које могу утјецати на вашу историју.Да бисте то урадили, поставите ХИСТЦОНТРОЛ на игнорисање.

ХИСТЦОНТРОЛ = игноредупс

Да бисте користили функцију игнореспаце и игноредупс, поставите променљиву ХИСТЦОНТРОЛ на игноребот.

ХИСТЦОНТРОЛ = игноребот

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

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