24Aug

Kaip naudotis "Bash" istorija "Linux" arba "macOS" terminale

"bash shell" yra standartinė terminalo aplinka, kuri yra daugelyje "Linux" paskirstymų, įtrauktų į "macOS", ir galima įdiegti "Windows 10". Ji prisimena komandas, kurias įvedate ir saugo istorijos byloje. Jūs turbūt žinoite keletą bash istorijos pagrindų, bet tai yra daug galingesnė, nei galėtumėte suvokti.

klaviatūros spartieji klavišai

Norėdami peržiūrėti savo bash istoriją, galite naudoti keletą naudingų sparčiųjų klavišų "bash".Paspauskite šiuos sparčiuosius klavišus, o anksčiau naudotos komandos bus rodomos eilutėje.

  • aukštyn Arrow arba Ctrl + P : eikite į ankstesnę savo istorijos komandą.Paspauskite klavišą keletą kartų, jei norite vaikščioti atgal per naudojamas komandas.
  • rodyklė žemyn arba Ctrl + N : eikite į kitą savo istorijos komandą.Paspauskite klavišą keletą kartų, jei norite vaikščioti į priekį naudodami komandas.
  • Alt + R : grąžinkite bet kokius komandų pakeitimus, kuriuos jūs ištraukėte iš savo istorijos, jei redagavote ją dabartinėje eilutėje.

Bash taip pat turi specialų "atšaukimo" režimą, kurį galite naudoti ieškodamas anksčiau paleistas komandas, o ne slinkti per juos vieną po kito.

  • Ctrl + R : Prisiminkite paskutinę komandą, atitinkančią jūsų pateiktus simbolius. Paspauskite šią nuorodą ir pradėkite spausdinti, kad galėtumėte ieškoti savo bash istorijoje.
  • Ctrl + O : paleiskite komandą, kurią radote naudodami Ctrl + R.
  • Ctrl + G : Palikite istorijos paieškos režimą, nenaudodami komandos.

Peržiūrėkite savo istoriją "Bash"

Jūs galite išspausdinti visą savo istoriją bash į ekraną, paleisdami vieną komandą:

istorija

Pamatysite visų komandų sąrašą savo istorijoje bash kartu su skaičiumi kairėje kiekvieno. Komanda su "1" šalia yra seniausia komanda jūsų bash istorijoje, o komanda su didžiausiu skaičiumi yra naujausia.

Jūs galite padaryti viską, kas jums patinka, su produkcija. Pavyzdžiui, galite jį perduoti į grepcommand, kad galėtumėte ieškoti komandų istorijoje.

istorija |grep your_search

Jūs taip pat galėtumėte vamzdį į uodegos komandą, kad galėtumėte peržiūrėti tik nedaugeliu nesenų paleistų komandų.Pavyzdžiui, ši komanda parodys paskutinius 5 įrašus jūsų istorijoje.

istorija |uodega-5

Vykdyti komandas iš savo istorijos

Bash gali greitai "išplėsti" ankstesnes komandas, juos išplėsti ir modifikuoti.Ši funkcija vadinama "istorijos išplėtimu" ir naudoja šauktuką, vadinamą "sprogimo" funkcija. Tiesiog įveskite juos eilutėje ir paspauskite "Enter", kad paleistumėte jas, kaip paleisti kokią nors kitą komandą.

Norėdami paleisti tam tikrą komandą iš savo istorijos pagal savo numerį, naudokite šią komandą:

! #

Pavyzdžiui, tarkime, kad norite paleisti 12 komandą iš savo bash istorijos. Tai komanda su "12" į kairę, kai paleidžiate istorijos komandą.Įveskite šią komandą.

! 12

Norėdami vėl paleisti paskutinę komandą, kurią paleidžiate, įveskite šią.Tai turi tą patį efektą, kaip vieną kartą paspaudus rodyklę aukštyn, norėdami peržiūrėti ankstesnę komandą ir paspausti Enter.

! !

Jūs taip pat galite nurodyti komandą tam tikrą skaičių eilučių atgal. Pavyzdžiui,! -2 paleidžia antrą pagal paskutinę komandą, kurią paleidžiate.!!tai tas pats dalykas kaip! -1.

Ši plėtra veikia bet kurioje linijoje. Galite pridėti viską, ko jums patinka prieš ar po!ar bet kurią kitą šio skyriaus frazę.Pavyzdžiui, galite įvesti šią komandą, kad pakartotinai paleistumėte paskutinę komandą, kurią paleidote per sudo, suteikiant jam root privilegijas. Tai ypač naudinga, jei prieš paleidžiant komandą pamiršite pridėti sudo.

sudo! !

Arba, pavyzdžiui, galėtumėte pakartotinai paleisti ankstesnę komandą ir vamzdžius savo išvestį grep, kad galėtumėte ieškoti kokio nors teksto.

! !|grep tekstas

Norėdami ieškoti istorijos komandą ir paleisti ją, įveskite šią.Tai atliks paskutinę komandą, kuri atitiks jūsų nurodytą tekstą:

! Tekstas

Taigi, jei neseniai paleidžiate komandą, kuri prasidėjo naudojant ping, galite ieškoti šios komandos. Tai bus ieškoti atgal per savo istoriją, suraskite naujausią komandą, kuri prasideda "pi", ir nedelsdami ją paleiskite:

! Pi

Jūs galite pridėti a: p į bet kurį iš anksčiau pateiktų išplėtimų, o bash išspausdins komandą į terminalą, nenaudodami jo. Tai naudinga, jei norite patvirtinti, kad pasirenkate tinkamą komandą, kol ją paleidžiate.

! 12: p! !: p! Text: p

pakartotinai naudokite argumentus iš savo istorijos.

Bash taip pat leidžia paleisti naują komandą, tačiau naudoja argumentus iš ankstesnių komandų savo istorijoje. Tai gali padėti greitai pakartotinai naudoti ilgus ar sudėtingus argumentus, nereikalaujant jų dar kartą įvesti.

komanda! $

Pavyzdžiui, tarkime, kad paleidžiate komandą, palieskite /home/chris/ some_long_file_name_you_dont_want_to_type_again. Dabar norite paleisti komandą nano /home/chris/ some_long_file_name_you_dont_want_to_type_again. Užuot įvesdami visą dalyką nuo nulio, galite paleisti:

nano! $

! $! Bash automatiškai užpildys paskutinį argumentą iš ankstesnės komandos.

Tai tik užpildo paskutinį argumentą.Taigi, jei naudosite ping google.com-c 4 ir paleiskite ping! $, Tai tik išplės į "ping 4".

Norėdami išspręsti šią situaciją, galite naudoti šį triuką, norėdami išplėsti pirmąjį argumentą eilutėje, o ne paskutinį:

komandą! ^

Taigi, jei paleidėte ping google.com-c 4, tada paleidžiate ping! ^"bash" išplėtė jį į "ping google.com".

Norėdami užpildyti visus argumentus, naudojamus ankstesnėje komandoje, o ne tik vieną argumentą, naudokite šią komandą:

komandą! *

Taigi, jei paleidėte pingą!* vietoj to bash automatiškai užpildys visus argumentus, kuriuos naudojate ankstesnėje komandoje.

Jūs galite naudoti tą patį apgauti, kurį naudojate komandoms paleisti iš savo istorijos, kad gautumėte iš jų argumentų.Tiesiog naudokite šią formą:

command! abc:#

Pavyzdžiui, anksčiau komanda paleidome komandą sudo hostname ubuntu. Jei paleisime šią komandą, bash ieškos atgal per istoriją, kad surastume paskutinę komandą, kuri prasideda raidėmis, kurias mes įrašome, ir užpildome argumentą, kurį mes nurodome. Taigi, jeimes echo! su: 2, bash ieškosime paskutinę komandą, prasidedančią "su", ir užpildysime antrąjį argumentą, kuris yra "ubuntu".

Kiti gudrybės veikia taip, kaip tikėjotės. Pavyzdžiui, pakeičiant numerį žvaigždute, žinoma kaip pakaitos simbolis, sukelia bash, kad užpildyti visus argumentus iš komandos:

komanda! Abc: *

Vykdyti ankstesnę komandą ir keisti ją

Bash taip pat leidžia pakartoti ankstesnę komandąir nurodykite kažką, kas turėtų būti pakeista. Tai gali būti naudinga norint ištaisyti klaidą komandoje. Pavyzdžiui, ši komanda vėl pakartos ankstesnę komandą, pakeisdama tekstą "abc" į tekstą "xyz".

^ abc ^ xyz

Pavyzdžiui, jei netyčia paleidote ping gogle.com, tuomet galėtum paleisti ^ gog ^ goog ir bash paleisti komandą ping google.com.

Kur saugoma jūsų istorija ir kaip ją išvalyti

Bash apvalkalas pagal nutylėjimą saugo komandų istoriją, kurią paleidote savo vartotojo abonemento istorijos byloje ~ /. bash_history. Pavyzdžiui, jei jūsų naudotojo vardas yra bobas, šis failas yra /home/bob/. Bash_history.

Kadangi jūsų istorija saugoma faile, ji išlieka tarp sesijų.Galite paleisti kai kurias komandas, atsijungti, grįžti kitą dieną, o tos komandos vis tiek bus jūsų istorijos byloje pasiruošę peržiūrėti ir naudoti. Kiekviena vartotojo sąskaita turi savo istorijos failą su atskira komandų istorija.

Norėdami išvalyti savo istoriją, galite paleisti šią komandą.Tai ištrina jūsų vartotojo abonemento failo. bash_history turinį:

istorija-c

Bash pagal nutylėjimą atmina tik ribotą skaičių komandų, užkertančių kelią istorijos failo per dideliam skaičiui. Istorinių įrašų, kuriuos prisimena bash, skaičius kontroliuojamas "HISTSIZEvariable".Numatytasis paprastai yra 500 arba 1000 įrašų.Galite paleisti šią komandą, kad galėtumėte peržiūrėti savo sistemoje esančios bash istorijos dydį.

echo $ HISTSIZE

Norėdami nustatyti savo istoriją nuliui, paleiskite šią komandą.

HISTSIZE = 0

Dabartinei sesijai bash nesaugos jokių istorijos įrašų, nebent paleisti komandą, tokią kaip HISTSIZE = 1000, kad ją sugrąžintų į tam tikrą skaičių įrašų.

Kaip ignoruoti erdves ir dublikatus

Bash leidžia ignoruoti istorijos įrašus, kurie prasideda erdve, jei nustatote HISTCONTROLvariable į ignorespace.

HISTCONTROL = ignorespace

Prieš komandą prieš paleidžiant į bash apvalkale įveskite tarpą, o komanda paleidžiama įprastai, tačiau ji nebus rodoma jūsų istorijoje, jei šis kintamasis įgalintas. Tai leidžia jums išlaikyti šiek tiek švaresnę istoriją, pasirenkant paleisti komandas, kad jos nebūtų rodomos jūsų istorijoje.

Bash taip pat leidžia ignoruoti pasikartojančias komandas, kurios gali sutramdyti istoriją.Jei norite tai padaryti, nustatykite HISTCONTROL ignoruotumą.

HISTCONTROL = ignoredups

Jei norite naudoti ir ignoros, ir ignoravimo funkciją, nustatykite HISTCONTROL kintamąjį ignoruojant.

HISTCONTROL = ignoreboth

Atkreipkite dėmesį, kad nustatyti bash kintamieji bus išsaugoti tik dabartiniam seansui. Jums reikės pridėti juos prie savo vartotojo abonemento failo. bashrc, kad šios vertės būtų automatiškai nustatomos kiekviename paleidžiamame "bash" seanse, jei to norėsite.

"bash shell" yra sudėtingas įrankis su daugybe kitų galimybių, nei šie. Susipažinkite su "Bash History Builtins" ir istorijos išplėtimo skyriais oficialiame "bash" vadovo skyriuje. Išsamesnės informacijos ir kitų pažangių gudrybių galite naudoti.