Pagrindinis » kaip » Kaip naudoti „Bash“ istoriją „Linux“ arba „MacOS“ terminaluose

    Kaip naudoti „Bash“ istoriją „Linux“ arba „MacOS“ terminaluose

    Bazinis korpusas yra standartinė terminalo aplinka, įtraukta į daugumą „Linux“ paskirstymų, įtraukta į „MacOS“ ir prieinama „Windows 10“. Ji prisimena įvestas komandas ir saugo jas istorijos faile. Jūs tikriausiai žinote keletą bash istorijos pagrindų, bet tai yra daug galingesnė, nei galėtumėte suprasti.

    Klaviatūros nuorodos

    Jei norite pereiti per savo „bash“ istoriją, galite naudoti keletą „bash“ naudingų klaviatūros sparčiųjų klavišų. Paspauskite šiuos sparčiuosius klavišus ir komandos, kurias anksčiau naudojote, bus rodomos eilutėje.

    • Rodyklė aukštyn arba Ctrl + P: Eikite į ankstesnę savo istorijos komandą. Paspauskite klavišą kelis kartus, kad galėtumėte nueiti atgal per naudotas komandas.
    • Rodyklė žemyn arba Ctrl + N: Eikite į kitą savo istorijos komandą. Paspauskite klavišą kelis kartus, kad pereitumėte per naudotas komandas.
    • Alt + R: Jei norite redaguoti dabartinėje eilutėje, pakeiskite bet kokius komandos pakeitimus, kuriuos ištraukėte iš istorijos.

    „Bash“ taip pat turi specialų „atšaukimo“ režimą, kurį galite naudoti norėdami ieškoti anksčiau paleistų komandų, o ne slinkti per vieną.

    • Ctrl + R: Prisiminkite paskutinę komandą, atitinkančią jūsų pateiktus simbolius. Paspauskite šį spartųjį klavišą ir pradėkite rašyti, jei norite ieškoti komandos „bash“ istorijos.
    • Ctrl + O: Vykdykite komandą, kurią radote naudodami „Ctrl + R“.
    • Ctrl + G: Palikite istorijos paieškos režimą nenaudodami komandos.

    Peržiūrėkite savo „Bash“ istoriją

    Visą „bash“ istoriją galite spausdinti ekrane, vykdydami vieną komandą:

    istorija

    Pamatysite sąrašą visų komandų, esančių jūsų „bash“ istorijoje, ir skaičių, esančią kairėje pusėje. Komanda, kurioje yra „1“, yra seniausia jūsų bazinės istorijos komanda, o didžiausias skaičius yra naujausia komanda.

    Su produkcija galite padaryti viską, kas jums patinka. Pavyzdžiui, galite jį perkelti į grepkomandą ieškoti komandų istorijos.

    istorija | grep your_search

    Jūs taip pat galėtumėte jį perkelti į uodega komandą, jei norite peržiūrėti tik nedidelį skaičių neseniai paleistų komandų. Pavyzdžiui, ši komanda parodys paskutinius 5 įrašus jūsų istorijoje.

    istorija | uodega -5

    Paleiskite komandas iš savo istorijos

    „Bash“ gali greitai „išplėsti“ ankstesnes komandas arba jas išplėsti ir modifikuoti. Ši funkcija yra žinoma kaip „istorijos plėtra“ ir jame naudojamas šauktukas, vadinamas „sprogimu“. Tiesiog įveskite juos eilutėje ir paspauskite „Enter“, kad juos paleistumėte kaip ir kitas komandas.

    Jei norite paleisti konkrečią komandą iš savo istorijos, naudokite šią komandą:

    !#

    Pavyzdžiui, tarkime, kad norėjote paleisti 12-ą komandą iš savo „bash“ istorijos. Tai komanda, kurios kairėje pusėje yra „12“, kai paleidžiate istorija komandą. Įveskite šią komandą.

    !12

    Jei norite iš naujo paleisti paskutinę komandą, įveskite toliau pateiktą komandą. Tai turi tokį patį poveikį kaip ir paspaudus rodyklę „aukštyn“ vieną kartą, norėdami peržiūrėti ankstesnę komandą, tada paspauskite „Enter“.

    !!

    Taip pat galite nurodyti komandą tam tikru skaičių linijų atgal. Pavyzdžiui, !-2 būtų paleista antroji į paskutinę komandą, kurią vykdėte. !! reiškia tą patį, kaip !-1 .

    Ši plėtra veikia bet kurioje linijos vietoje. Galite pridėti viską, kas jums patinka prieš arba po !! arba bet kuri kita šiame skyriuje pateikta išraiška. Pvz., Galite įvesti šią komandą, jei norite iš naujo paleisti paskutinę komandą, kurią vykdėte sudo, suteikti jai pagrindines teises. Tai ypač naudinga, jei pamiršote pridėti  sudo prieš paleisdami komandą.

    sudo !!

    Arba, pavyzdžiui, galite iš naujo paleisti ankstesnę komandą ir ištraukti išvestį į grep, kad ieškotumėte teksto.

    !! | „grep“ tekstas

    Jei norite ieškoti komandos istorijoje ir paleisti ją, įveskite toliau pateiktą. Tai atliks paskutinę komandą, atitinkančią jūsų nurodytą tekstą:

    !tekstą

    Taigi, jei neseniai vykdėte komandą, kuri prasidėjo ping, jei norite ieškoti, galite paleisti šią komandą. Tai atliks paiešką per jūsų istoriją, suraskite naujausią komandą, kuri prasideda „pi„Ir nedelsdami paleiskite ją:

    !pi

    Galite pridėti a : p į bet kurį iš aukščiau pateiktų išplėtimų ir bash spausdins komandą į terminalą be jo paleidimo. Tai naudinga, jei norite patvirtinti, kad pasirinkote teisingą komandą prieš paleisdami ją.

    !12: p
    !!: p
    !tekstas: p

    Pakartotinai naudokite argumentus iš savo istorijos

    Bash taip pat leidžia jums paleisti naują komandą, tačiau naudokite ankstesnių komandų argumentus savo istorijoje. Tai gali padėti greitai pakartotinai naudoti ilgus ar sudėtingus argumentus, jų nereikia pakartotinai įvesti.

    komandą! $

    Pvz., Tarkime, kad paleidote komandą palieskite / namo / chris / some_long_file_name_you_dont_want_to_type_again . Dabar norite paleisti komandą nano / namų / chris / some_long_file_name_you_dont_want_to_type_again. Užuot įvedę visą dalyką nuo nulio, galite paleisti:

    nano! $

    The !$ automatiškai užpildytų paskutinį argumentą iš ankstesnės komandos.

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

    Norėdami išspręsti šią situaciją, galite naudoti šį triuką, jei norite išplėsti pirmąjį linijos argumentą, o ne paskutinį:

    komanda! ^

    Taigi, jei bėgo ping google.com -c 4 ir tada bėgo ping! ^ , „bash“ išplėstų tai į „ping google.com ".

    Jei norite užpildyti visus ankstesnėje komandoje naudojamus argumentus, o ne tik vieną argumentą, naudokite šiuos veiksmus:

    komanda! *

    Taigi, jei bėgo ping! * vietoj to, bash automatiškai užpildys visus argumentus, kuriuos naudojote ankstesnėje komandoje.

    Jūs galite naudoti tą patį triuką, kurį naudojate komandoms iš savo istorijos paleisti argumentus iš jų. Tiesiog naudokite šią formą.

    komanda! abc: #

    Pavyzdžiui, vykdėme komandą sudo hostname ubuntu anksčiau. Jei vykdysime šią komandą, bash ieškos atgal per istoriją, kad surastų paskutinę komandą, pradedant nuo įvestų raidžių ir užpildydami nurodytą argumentą. Taigi, jei paleisime echo! su: 2 , bash ieškos, kad surastų paskutinę komandą, pradedant nuo „su“Ir užpildykite antrąjį argumentą, kuris yra„ubuntu„.

    Kiti triukai veikia taip, kaip tikitės. Pvz., Pakeitus žvaigždutę, vadinamą pakaitos simboliu, „bash“ užpildo visus argumentus iš komandos:

    komanda! abc: *

    Iš naujo paleiskite ankstesnę komandą ir pakeiskite ją

    Bash taip pat leidžia jums iš naujo paleisti ankstesnę komandą ir nurodyti, ką reikia keisti. Tai gali būti naudinga taisant komandoje esantį klaidą. Pvz., Ši komanda iš naujo pradės ankstesnę komandą, pakeisdama tekstą „abc„Jame su tekstu“xyz„.

    ^ abc ^ xyz

    Pavyzdžiui, jei atsitiktinai bėgo ping gogle.com, tada galite paleisti ^ gog ^ goog ir bash vykdytų komandą ping google.com vietoj to.

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

    Bazinis korpusas saugo komandų, kurias naudojote savo paskyros paskyros faile, istoriją ~ / .bash_history pagal numatytuosius nustatymus. Pvz., Jei naudotojo vardas yra Bobas, šį failą rasite adresu /home/bob/.bash_history.

    Kadangi jūsų istorija yra išsaugota faile, ji išlieka tarp sesijų. Galite paleisti kai kurias komandas, atsijungti, grįžti kitą dieną, ir šios komandos vis dar bus jūsų istorijos faile, kurią galite peržiūrėti ir naudoti. Kiekviena vartotojo paskyra turi savo istorijos failą su atskira komandų istorija.

    Jei norite išvalyti „bash“ istoriją, galite paleisti šią komandą. Tai ištrina naudotojo paskyros .bash_history failo turinį:

    istorija -c

    Bash tik prisimena ribotą skaičių komandų pagal nutylėjimą, neleidžiant istorijos failui pernelyg didėti. Istorijos įrašų, kurie yra prisiminti, skaičius yra kontroliuojamas UŽTIKRINTIkintamasis. Numatytasis yra paprastai 500 arba 1000 įrašų. Jūs galite paleisti šią komandą, kad pamatytumėte savo sistemos bazinės istorijos dydį.

    echo $ HISTSIZE

    Jei norite nustatyti istoriją nuliui, vykdykite šią komandą.

    HISTSIZE = 0

    Dabartinei sesijai „bash“ neišsaugos jokių istorijos įrašų, nebent atliksite komandą HISTSIZE = 1000 nustatyti jį atgal į tam tikrą įrašų skaičių.

    Kaip ignoruoti erdves ir dublikatus

    „Bash“ leidžia ignoruoti istorijos įrašus, kurie prasideda tarpu, jei nustatote HISTCONTROLkintamasis ignoravimo erdvė.

    HISTCONTROL = ignoravimo erdvė

    Prieš komandą paleiskite laukelį prieš paleisdami jį į „bash“ apvalkalą ir komanda veiks įprastai, bet nebus rodoma jūsų istorijoje, jei įgalinsite šį kintamąjį. Tai leidžia jums išlaikyti savo istoriją šiek tiek švaresnę, pasirenkant paleisti komandas be jų atsiradimo jūsų istorijoje.

    „Bash“ taip pat leidžia ignoruoti pasikartojančias komandas, kurios gali užteršti jūsų istoriją. Norėdami tai padaryti, nustatykite HISTCONTROL į ignoruojami.

    HISTCONTROL = ignoruojami

    Norėdami naudoti abu ignoravimo erdvė ir ignoruojami funkcija, nustatykite HISTCONTROL kintamasis nežino.

    HISTCONTROL = ignoreboth

    Atkreipkite dėmesį, kad nustatytieji „bash“ kintamieji išliks tik dabartinei sesijai. Jei norite, kad šios vertės būtų automatiškai nustatomos kiekvienoje jūsų pradėtoje „bash“ sesijoje, turėsite jas įtraukti į savo vartotojo paskyros .bashrc failą, jei norite, kad.

    „Bash“ korpusas yra sudėtingas įrankis, turintis daug daugiau galimybių nei šie. Išsamesnės informacijos ir kitų patobulintų gudrybių, kuriuos galite naudoti, ieškokite oficialaus „bash“ vadovo skyriuje „Bash History Builtins“ ir „History Expansion“..