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

Turinys:

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

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

Video: Kaip naudotis
Video: The Apple Watch ECG found something unexpected about my heart - YouTube 2024, Lapkritis
Anonim
"Bash" apvalkalas 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.
"Bash" apvalkalas 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 nuorodos

Norėdami pereiti į 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.

  • Rodyklė aukštyn arba Ctrl + P: Eikite į ankstesnę 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 pakeitimus komandoje, kurią ištraukėte iš savo istorijos, jei ją redagavote 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.
Image
Image

Peržiūrėkite savo istoriją

Galite spausdinti visą savo istoriją bash į ekraną, paleisdami vieną komandą:

history

Pamatysite sąrašą visų komandų savo "bash" istorijoje 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.

Galite daryti viską, kas jums patinka, su produkcija. Pavyzdžiui, galite jį perpumpuoti į
Galite daryti viską, kas jums patinka, su produkcija. Pavyzdžiui, galite jį perpumpuoti į

grep

komanda ieškoti komandų istorijoje.

history | grep your_search

Galėtum tai pat pakabinti
Galėtum tai pat pakabinti

tail

komandą peržiūrėti tik nedidelį skaičių nesenų komandų, kurias paleidote. Pavyzdžiui, ši komanda parodys paskutinius 5 įrašus jūsų istorijoje.

history | tail -5

Image
Image

Vykdyti komandas iš savo istorijos

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 ir paleiskite 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

history

komanda Įveskite šią komandą.

!12

Norėdami vėl paleisti paskutinę komandą, kurią paleidote, įveskite toliau nurodytą informaciją. Tai turi tą patį efektą, kaip vieną kartą paspaudus rodyklę aukštyn, norėdami peržiūrėti ankstesnę komandą ir paspausti Enter.
Norėdami vėl paleisti paskutinę komandą, kurią paleidote, įveskite toliau nurodytą informaciją. 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 nurodyti komandą tam tikrą skaičių eilučių atgal. Pavyzdžiui,

!-2

atliksite antrąją komandą, kurią vykdysite.

!!

tai tas pats dalykas kaip

!-1

This expansion works anywhere on the line. You can add anything you like before or after
This expansion works anywhere on the line. You can add anything you like before or after

!!

ar bet kurią kitą šio skyriaus frazę. Pavyzdžiui, galite įvesti šią komandą, kad galėtumėte pakartotinai paleisti paskutinę komandą

sudo

suteikiant jam root privilegijas. Tai ypač naudinga, jei pamirštumėte pridėti

sudo

prieš paleisdami komandą.

sudo !!

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

!! | grep text

Norėdami surasti komandą savo istorijoje ir paleiskite ją, įveskite šią. Tai atliks paskutinę komandą, atitinkančią jūsų nurodytą tekstą:
Norėdami surasti komandą savo istorijoje ir paleiskite ją, įveskite šią. Tai atliks paskutinę komandą, atitinkančią jūsų nurodytą tekstą:

!text

Taigi, jei neseniai paleidote komandą, kuri prasidėjo

ping

galite paleisti šią komandą, kad galėtumėte ją ieškoti. Tai bus ieškoti atgal per savo istoriją, suraskite naujausią komandą, kuri prasideda"

pi

Ir nedelsiant paleiskite jį:

!pi

Galite pridėti a
Galite pridėti a

:p

bet kuriai iš anksčiau nurodytų išplėtimų ir bash spausdins komandą į terminalą, nenaudodami jo. Tai naudinga, jei norite patvirtinti, kad pasirenkate tinkamą komandą, kol ją paleidžiate.

!12:p

!!:p

!text:p

Image
Image

Pakartotinai naudoti argumentus iš savo istorijos

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

command !$

Pavyzdžiui, tarkime, kad paleidote komandą

touch /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 rašydami visą dalyką nuo nulio, galite paleisti:

nano !$

The

!$

kad bash automatiškai užpildytų paskutinį argumentą iš ankstesnės komandos.

Tai tik užpildo paskutinį argumentą. Taigi, jei paleisti
Tai tik užpildo paskutinį argumentą. Taigi, jei paleisti

ping google.com -c 4

ir tada paleiskite

ping !$

tai tik plėsti į"

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į:

command !^

Taigi, jei bėgo

ping google.com -c 4

ir tada bėgo

ping !^

"bash" išplės šį"

ping google.com'

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

command !*

Taigi, jei bėgo

ping !*

Vietoj to, bash automatiškai užpildys visus ankstesnėje komandoje naudojamus argumentus.

Galite naudoti tą patį triuką, kurį naudojate komandoms paleisti iš savo istorijos, kad gautumėte jų argumentus. Tiesiog naudokite šią formą.
Galite naudoti tą patį triuką, kurį naudojate komandoms paleisti iš savo istorijos, kad gautumėte jų argumentus. Tiesiog naudokite šią formą.

command !abc:#

Pavyzdžiui, mes paleisti komandą

sudo hostname ubuntu

anksčiau. Jei paleisime šią komandą, bash ieškos atgal per istoriją, kad surastume paskutinę komandą, kuri prasideda raidėmis, kurias mes įvedame, ir užpildysime nurodytą argumentą. Taigi, jei mes einame

echo !su:2

bash ieškos atgal, kad surastumėte paskutinę komandą, prasidedančią"

su

"Ir užpildyk antrą argumentą, kuris yra"

ubuntu

“.

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

command !abc:*

Image
Image

Anuliuoti ankstesnę komandą ir keisti ją

Bash taip pat leidžia pakartoti ankstesnę komandą ir nurodyti 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

"Jame su tekstu"

xyz

“.

^abc^xyz

Pavyzdžiui, jei netyčia bėgo

ping gogle.com

tada tu gali paleisti

^gog^goog

ir bash paleis komandą

ping google.com

vietoj to.

Image
Image

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

"Bash" lange aplanke ~ /.bash_history paleista istorija komandų, kurias paleidote savo vartotojo abonemento istorijos byloje, pagal nutylėjimą. Pavyzdžiui, jei jūsų naudotojo vardas yra bobas, jūs galite rasti šį failą adresu /home/bob/.bash_history.

Kadangi jūsų istorija įrašoma į failą, 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

Pagal numatytuosius nustatymus "Bash" tik prisimena ribotą komandų skaičių, užkertant kelią per dideliam istorijos failui. Istorinių įrašų, pamirštančių bash, skaičius yra kontroliuojamas
Pagal numatytuosius nustatymus "Bash" tik prisimena ribotą komandų skaičių, užkertant kelią per dideliam istorijos failui. Istorinių įrašų, pamirštančių bash, skaičius yra kontroliuojamas

HISTSIZE

kintamasis. 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

Dabartinės sesijos metu bash nesaugos jokių istorijos įrašų, nebent paleisti komandą kaip

HISTSIZE=1000

nustatyti jį atgal į tam tikrą skaičių įrašų.

Image
Image

Kaip ignoruoti erdves ir dublikatus

Bash leidžia ignoruoti istorijos įrašus, kurie prasideda vietos, jei jūs nustatote

HISTCONTROL

kintamasis į

ignorespace.

HISTCONTROL=ignorespace

Įveskite tarpą prieš komandą prieš paleidžiant ją į bash apvalkalo ir komanda veiks normaliai, bet 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ą. Norėdami tai padaryti, nustatykite
Bash taip pat leidžia ignoruoti pasikartojančias komandas, kurios gali sutramdyti istoriją. Norėdami tai padaryti, nustatykite

HISTCONTROL

į

ignoredups.

HISTCONTROL=ignoredups

Naudoti abu
Naudoti abu

ignorespace

ir

ignoredups

funkcija, nustatykite

HISTCONTROL

kintamasis į

ignoreboth.

HISTCONTROL=ignoreboth

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

Rekomenduojamas: