"bash shell" yra standartinė terminalo aplinka, kuri yra daugelyje "Linux" paskirstymų, įtrauktų į "macOS", ir galima įdiegti "Windows 10". Jis prisimena komandas, kurias įvedate ir saugo istorijos byloje. Jūs tikriausiai žinote keletą bash istorijos pagrindų, tačiau tai yra daug galingesnė, nei galėtumėte suvokti.
SUSIJĘS: Geriausi klaviatūros spartieji klavišai "Bash" (dar žinomas kaip "Linux" ir "macOS" terminalas)
Norėdami pereiti į savo bash istoriją, galite naudoti keletą naudingų klaviatūros nuorodų iš bash. Paspauskite šiuos sparčiuosius klavišus, o anksčiau naudotos komandos bus rodomos eilutėje.
"Bash" taip pat turi specialų "atšaukimo" režimą, kurį galite naudoti anksčiau paleistoms komandoms ieškoti, o ne naršyti juos po vieną.
Jūs galite išspausdinti visą savo istoriją Bash istorijoje, paleidę vieną komandą:
istorija
Pamatysite visų savo komandų sąrašą. bash istorija, kartu su skaičiumi į kairę nuo kiekvieno. Komanda su "1" šalia yra seniausia komanda jūsų bash istorijoje, o komanda su didžiausiu skaičiumi yra naujausia.
SUSIJĘS: Tapkite Linux terminalo galios naudotoju, naudodami šiuos 8 gudrybes
Galite daryti viską, kas jums patinka, su produkcija. Pavyzdžiui, galite jį perkelti į komandągrep
, kad galėtumėte ieškoti komandų istorijoje.
history | grep your_search
Galite taip pat pakabinti jį į komandątail
, kad peržiūrėtumėte tik nedaugeliu nesenų komandų, kurias paleidote. Pavyzdžiui, ši komanda parodys paskutinius 5 įrašus jūsų istorijoje.
istorija | tail -5
Bash gali greitai "išplėsti" ankstesnes komandas, juos išplėsti ir keisti. Ši funkcija vadinama "istorijos išplėtimu" ir naudoja šauktuką, vadinamą "sprogimo" funkcija. Tiesiog įveskite juos eilutėje ir paspauskite Enter, kad paleistumėte juos, kaip paleisti bet kurią kitą komandą.
Norėdami paleisti tam tikrą komandą iš savo istorijos pagal jo numerį, naudokite šią komandą:
! #
Pavyzdžiui, tarkime, kad norite paleisti 12 komandą iš savo bash istorijos. Tai komanda su "12" į kairę, kai paleidžiate komandąhistory
. Norėtumėte įvesti š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.
!!
Taip pat galite kreiptis į komandą į tam tikrą eilučių skaičių. Pavyzdžiui,! - 2
paleista antra pagal paskutinę komandą, kurią paleidžiate.!!
reiškia tą patį, kaip! - 1
.
dirba bet kurioje linijoje. Galite pridėti bet ką, ko jums patinka prieš arba po!!
ar bet kurios kitos šio skyriaus išraiškos. Pavyzdžiui, galite įvesti šią komandą, kad galėtumėte pakartotinai paleisti paskutinę komandą, kurią paleidotesudo
, suteikiant jam root privilegijas. Tai ypač naudinga, jei pamiršai pridėtisudo
prieš paleidžiant komandą.
sudo !!
Arba, pavyzdžiui, galėtumėte pakartotinai paleisti ankstesnę komandą ir perkelti savo išvestį į grep paiešką ka nors tekstas.
!! | grep tekstas
Norėdami ieškoti komandą savo istorijoje ir paleisti ją, įveskite šią. Tai atliks paskutinę komandą, atitinkančią jūsų nurodytą tekstą:
! text
Taigi, jei neseniai paleidžiate komandą, prasidėjusią naudojantping
, galite ieškoti šios komandos. Tai bus ieškoti atgal per savo istoriją, suraskite naujausią komandą, kuri prasideda simboliu "pi
" ir iš karto ją paleiskite:
! Pi
Galite pridėti: p
bet kuriai iš anksčiau nurodytų išplėtimų ir bash spausdins komandą į terminalą, be jo paleisdami. Tai yra naudinga, jei norite patvirtinti, kad pasirenkate teisingą komandą prieš paleidžiant ją.
! 12: p
!!: p
! Text: p
Bash taip pat leidžia paleisti naują komandą, bet naudoja argumentus iš ankstesnių komandų savo istorijoje.
command! $
Pavyzdžiui, tarkime, kad paleidote komandątouch / home / chris / some_long_file_name_you_dont_want_to_type_again
, kad galėtumėte greitai pakartotinai naudoti ilgus ar sudėtingus argumentus. Dabar norite paleisti komandąnano / home / chris / some_long_file_name_you_dont_want_to_type_again
.
nano! $
Užuot įvesdami visą dalyką nuo nulio, galite paleisti:nano! $
, kad bash automatiškai užpildytų paskutinį argumentą iš ankstesnės komandos.
Tai tik užpildo paskutinį argumentą. Taigi, jei naudojateping google.com-c 4
ir paleiskiteping! $
, 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į:
komanda! ^
Taigi, jei paleidžiateping google.com-c 4
ir tada paleidoteping! ^
, bash išplėtė jį į "ping google.com"
.
Norėdami užpildyti visus argumentus, naudojamus ankstesnėje komandoje, o ne tik Vienintelis argumentas, jūs naudojate šiuos:
command! *
Taigi, jei paleistiping! *
, bash automatiškai užpildys visus ankstesnėje komandoje naudojamus argumentus
komandą! Abc: #
Pavyzdžiui, mes paleidome komandą
.Jūs galite naudoti tą patį apgauti, kurį naudojate komandoms paleisti iš savo istorijos, kad gautumėte jų argumentus. > sudo hostname ubuntu
anksčiau. Jei paleisime šią komandą, bash ieškos atgal per istoriją, norėdami rasti paskutinę komandą beginni ng su raidėmis mes įveskite ir užpildykite argumentą, kurį mes nurodome. Taigi, jei paleiskimeecho! Su: 2
, bash ieškos paskutinės komandos, prasidedančios "su
" ir užpildys antrą 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 užpildyti visus argumentus iš komandų:
command! Abc: *
Bash taip pat leidžia pakartokite ankstesnę komandą ir nurodykite kažką, kuris turėtų būti pakeistas. 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 paleidoteping gogle.com
, tuomet galėtum paleisti^ gog ^ goog
ir bash paleisti komandąping google.com
.
"bash" aplankas pagal nutylėjimą saugo komandų istoriją, kurią paleidote savo vartotojo abonemento istorijos byloje ~ / .bash_history. Pavyzdžiui, jei jūsų naudotojo vardas yra bobas, jūs rasite šį failą adresu /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į:
history -c
"Bash" tik prisimena ribotą skaičių komandų pagal nutylėjimą, užkertant kelią istorijos failo didėjimui. Istorinių įrašų, kuriuos išsaugo bash, skaičius yra kontroliuojamasHISTSIZE
kintamasis. Numatytasis paprastai yra 500 arba 1000 įrašų.
echo $ HISTSIZE
Norėdami nustatyti savo istoriją nuliui, paleiskite šią komandą.
HISTSIZE = 0
Jei norite, kad jūsų istorija būtų lygi nuliui, paleiskite šią komandą. Dabartinė sesija, bash nesaugos jokių istorijos įrašų, nebent paleisti tokį komandą kaipHISTSIZE = 1000
, norėdami nustatyti jį atgal į tam tikrą skaičių įrašų.
Bash leidžia ignoruoti istorijos įrašus, kurie prasideda erdve, jei nustatoteHISTCONTROL
kintamąjįignorespace.
HISTCONTROL = ignorespace
Prieš paleidžiant komandą į komandą bash apvalkalas ir komanda veiks normaliai, bet nebus rodomas jūsų istorijoje, jei šis kintamasis įgalintas. Tai leidžia išlaikyti šiek tiek švaresnę istoriją, pasirenkant paleisti komandas be jų rodomų jūsų istorijoje.
Bash taip pat leidžia ignoruoti pasikartojančias komandas, kurios gali sutramdyti istoriją. Norėdami tai padaryti, nustatykiteHISTCONTROL
ikiignoredup.
HISTCONTROL = ignoredups
Norėdami naudoti funkcijąignorepsas
ir ignoruojamas, nustatykite
HISTCONTROLkintamasis iki
ignoreboth.HISTCONTROL = ignoreboth
Atkreipkite dėmesį, kad nustatyti bash kintamieji bus tęsiami tik dabartiniam seansui. Jums reikės pridėti juos prie savo vartotojo abonemento failo .bashrc, kad šios reikšmės būtų automatiškai nustatomos kiekviename paleidžiamame "bash" seanse, jei norite.
"bash" apvalkalas yra sudėtingas įrankis su daugybe kitų galimybių nei šie. Daugiau informacijos ir kitų pažangių gudrybių, kuriuos galite naudoti, rasite "Bash History Builtins" ir istorijos išplėtimo skyriuose oficialiame "bash" žinyne.
Kaip užšifruoti "Mac" laiko mašinos atsarginę kopiją
Jūs užšifruojate savo "Mac" sistemos diske, kaip ir jūs: jei jūsų kompiuteris yra pavogtas, jūsų duomenys saugūs nuo smalsių akių. Tačiau ant jūsų stalo, šalia jūsų "Mac", yra kietojo disko visko kopija: jūsų "Time Machine" atsarginė kopija. Ar kas nors, kas sugavęs tą diską, turėtų prieigą prie visos tos pačios informacijos?
Kaip priversti "YouTube" vaizdo įrašus atidaryti "YouTube" žaidimų sąsajoje
Ar matėte tamsią, į pokalbį orientuotą "YouTube" žaidimų vartotojo sąsają? "Google" atsakymas į žaidimų transliacijos svetainę "Twitch" turi keletą įdomių funkcijų ir yra gana sklandus, kad būtų įkeltas. Tačiau skirtumas tarp įprastų "YouTube" ir "YouTube" žaidimų yra ... geras, mažiau nei skirtingas.