Kako koristiti vašu povijest bashova u Linux ili MacOS terminalu

Sadržaj:

Kako koristiti vašu povijest bashova u Linux ili MacOS terminalu
Kako koristiti vašu povijest bashova u Linux ili MacOS terminalu

Video: Kako koristiti vašu povijest bashova u Linux ili MacOS terminalu

Video: Kako koristiti vašu povijest bashova u Linux ili MacOS terminalu
Video: LW11 AGPTEK Smart Watch IP68: Things To Know // Real Life Review - YouTube 2024, Travanj
Anonim
Baca bash je standardno terminalno okruženje uključeno u većinu Linux distribucija, uključeno u macOS i dostupno za instalaciju na Windows 10. Ona pamti naredbe koje upisujete i pohranjujete u povijesnoj datoteci. Vjerojatno znate nekoliko osnova povijesti bash, ali puno je moćnije od onoga što biste mogli shvatiti.
Baca bash je standardno terminalno okruženje uključeno u većinu Linux distribucija, uključeno u macOS i dostupno za instalaciju na Windows 10. Ona pamti naredbe koje upisujete i pohranjujete u povijesnoj datoteci. Vjerojatno znate nekoliko osnova povijesti bash, ali puno je moćnije od onoga što biste mogli shvatiti.

Prečaci na tipkovnici

Da biste se pomicali kroz povijest bashova, možete koristiti nekoliko korisnih tipkovnih prečaca. Pritisnite ove prečace i naredbe koje ste ranije koristili pojavit će se u trenutku.

  • Strelica prema gore ili Ctrl + P: Prijeđite na prethodnu naredbu u svojoj povijesti. Pritisnite tipku više puta za hodanje unatrag pomoću naredbi koje ste koristili.
  • Strelica dolje ili Ctrl + N: Idite na sljedeću naredbu u svojoj povijesti. Pritisnite tipku više puta da biste prošli kroz naredbe koje ste koristili.
  • Alt + R: Vratite sve izmjene naredbe koje ste izdvojili iz svoje povijesti ako ste ga uredili na trenutačnoj liniji.

Bash također posjeduje poseban "opoziv" način kojim možete pretražiti naredbe koje ste prethodno pokrenuli, a ne pomicati ih jedan po jedan.

  • Ctrl + R: Nazovite zadnju naredbu koja odgovara znakovima koje ste unijeli. Pritisnite ovaj prečac i počnite tipkati da biste pretražili svoju povijest basha za naredbu.
  • Ctrl + O: Pokrenite naredbu koju ste pronašli pomoću Ctrl + R.
  • Ctrl + G: Ostavite način pretraživanja povijesti bez pokretanja naredbe.
Image
Image

Pogledajte svoju povijest sastavljanja

Cijelu povijest bash možete ispisati na zaslonu tako da pokrenete jednu naredbu:

history

Vidjet ćete popis svih naredbi u vašoj bash povijesti, zajedno s brojem s lijeve strane svake. Naredba sa "1" pored nje je najstarija naredba u vašoj povijesti basha, a naredba s najvećim brojem je najnovija.

S izlazom možete učiniti sve što vam se sviđa. Na primjer, možete ga cijeviti na
S izlazom možete učiniti sve što vam se sviđa. Na primjer, možete ga cijeviti na

grep

naredba za pretraživanje vaše povijesti naredbi.

history | grep your_search

Također možete cijev na
Također možete cijev na

tail

naredba da biste vidjeli samo mali broj nedavnih naredbi koje ste pokrenuli. Na primjer, sljedeća naredba prikazuje posljednje 5 unosa u vašoj povijesti.

history | tail -5

Image
Image

Pokreni naredbe iz svoje povijesti

Bash može brzo "proširiti" prethodne naredbe ili ih proširiti i mijenjati. Ova je značajka poznata kao "proširenje povijesti" i upotrebljava uskličnik, poznat kao "bang". Samo ih upišite u brz i pritisnite Enter da biste ih pokrenuli kao da pokrenete bilo koju drugu naredbu.

Da biste pokrenuli određenu naredbu iz svoje povijesti prema broju, upotrijebite sljedeću naredbu:

!#

Na primjer, recimo da ste htjeli pokrenuti 12. naredbu iz vaše povijesti basha. To je zapovijed s "12" lijevo od njega kad pokrenete

history

naredba. Upisali biste sljedeću naredbu.

!12

Da biste ponovo pokrenuli zadnju naredbu koju ste pokrenuli, upišite sljedeće. To ima isti učinak kao pritiskom strelice gore za pregled prethodne naredbe, a zatim pritiskom na Enter.
Da biste ponovo pokrenuli zadnju naredbu koju ste pokrenuli, upišite sljedeće. To ima isti učinak kao pritiskom strelice gore za pregled prethodne naredbe, a zatim pritiskom na Enter.

!!

Možete također uputiti na naredbu za povratak određenog broja redaka. Na primjer,

!-2

će pokrenuti drugi do zadnje naredbe koju ste pokrenuli.

!!

znači isto što i

!-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

!!

ili bilo koji drugi izraz u ovom odjeljku. Na primjer, možete upisati sljedeću naredbu da ponovo pokrenete posljednju naredbu koju ste proveli

sudo

dajući mu privilegije korijena. To je osobito korisno ako ste zaboravili dodati

sudo

prije pokretanja naredbe.

sudo !!

Ili, na primjer, možete ponavljati prethodnu naredbu i cijepiti njegov izlaz za grep kako biste tražili neki tekst.

!! | grep text

Da biste tražili naredbu u svojoj povijesti i pokrenuli je, upišite sljedeće. Ovo će pokrenuti zadnju naredbu koja odgovara navedenom tekstu:
Da biste tražili naredbu u svojoj povijesti i pokrenuli je, upišite sljedeće. Ovo će pokrenuti zadnju naredbu koja odgovara navedenom tekstu:

!text

Dakle, ako ste nedavno pokrenuli naredbu koja je započela sa

ping

možete pokrenuti sljedeću naredbu za pretraživanje. Ovo će pretražiti unatrag kroz vašu povijest, pronađite najnoviju naredbu koja počinje s"

pi

I odmah ga pokrenite:

!pi

Možete dodati a
Možete dodati a

:p

na bilo koji od gore navedenih proširenja i bash će ispisati naredbu na terminal bez pokretanja. To je korisno ako želite potvrditi da odabirete ispravnu naredbu prije nego što pokrenete.

!12:p

!!:p

!text:p

Image
Image

Ponovno upotrijebite argumente iz svoje povijesti

Bash također omogućuje pokretanje nove naredbe, ali upotrijebite argumente iz prethodnih naredbi u svojoj povijesti. To vam može pomoći da brzo ponovno upotrijebite dugo ili komplicirane argumente bez ponovnog upisivanja.

command !$

Na primjer, recimo da ste pokrenuli naredbu

touch /home/chris/some_long_file_name_you_dont_want_to_type_again

Sada želite pokrenuti naredbu

nano /home/chris/some_long_file_name_you_dont_want_to_type_again

Umjesto da upišete cijelu stvar od nule, možete pokrenuti:

nano !$

!$

bi bash automatski popunio zadnji argument iz prethodne naredbe.

To samo ispunjava zadnji argument. Dakle, ako pokrenete
To samo ispunjava zadnji argument. Dakle, ako pokrenete

ping google.com -c 4

i zatim pokrenite

ping !$

to bi se samo proširilo na"

ping 4

“.

Da biste riješili tu situaciju, možete upotrijebiti sljedeći trik da biste proširili prvi argument na retku, a ne posljednji:

command !^

Dakle, ako si trčao

ping google.com -c 4

i potrčao

ping !^

bash će proširiti ovo na"

ping google.com'

Da biste ispunili sve argumente upotrijebljene u prethodnoj naredbi umjesto samo jednog argumenta, upotrijebite sljedeće:
Da biste ispunili sve argumente upotrijebljene u prethodnoj naredbi umjesto samo jednog argumenta, upotrijebite sljedeće:

command !*

Dakle, ako si trčao

ping !*

Umjesto toga, bash će automatski ispuniti sve argumente koje ste koristili u prethodnoj naredbi.

Možete upotrijebiti isti trik koji upotrebljavate za pokretanje naredbi iz svoje povijesti kako biste dobili njihovi argumenti. Samo upotrijebite sljedeći obrazac.
Možete upotrijebiti isti trik koji upotrebljavate za pokretanje naredbi iz svoje povijesti kako biste dobili njihovi argumenti. Samo upotrijebite sljedeći obrazac.

command !abc:#

Na primjer, pokrenuli smo naredbu

sudo hostname ubuntu

ranije. Ako pokrenemo sljedeću naredbu, bash će pretražiti unatrag kroz povijest kako bi pronašli posljednju naredbu koja počinje slovima koje upisujemo i ispunimo argument koji navodimo. Dakle, ako trčimo

echo !su:2

bash će pretražiti natrag kako bi pronašao posljednju naredbu koja počinje s"

su

"I popuniti svoj drugi argument, koji je"

ubuntu

“.

Ostali trikovi rade kako biste očekivali. Na primjer, zamjena broja s zvjezdicom, poznatom kao zamjenska kartica, uzrokuje bash da popuni sve argumente iz naredbe:

command !abc:*

Image
Image

Ponovno pokrenite prethodnu naredbu i promijenite ga

Bash vam također omogućuje da ponovo pokrenete prethodnu naredbu i odredite nešto što bi trebalo mijenjati. To može biti korisno za ispravljanje greške u naredbi. Na primjer, sljedeća naredba ponovo će pokrenuti prethodnu naredbu, zamjenjujući tekst"

abc

"U njemu s tekstom"

xyz

“.

^abc^xyz

Na primjer, ako slučajno krenete

ping gogle.com

tada biste mogli pokrenuti

^gog^goog

i bash će pokrenuti naredbu

ping google.com

umjesto toga.

Image
Image

Gdje se vaša povijest pohranjuje i kako ga očistiti

Skupina bash pohranjuje povijest naredbi koje ste pokrenuli u datoteci povijesti vašeg korisničkog računa u ~ /.bash_history prema zadanim postavkama. Na primjer, ako je vaše korisničko ime bob, ta će datoteka pronaći na adresi /home/bob/.bash_history.

Budući da je vaša povijest pohranjena u datoteci, ona se nastavlja između sesija. Možete pokrenuti neke naredbe, odjaviti se, vratiti se sljedeći dan, a te će se naredbe i dalje nalaziti u vašoj povijesnoj datoteci spremnoj za pregled i upotrebu. Svaki korisnički račun ima vlastitu datoteku povijesti s zasebnom zapovjednom komandom.

Da biste izbrisali povijest veze, možete pokrenuti sljedeću naredbu. Time se briše sadržaj datoteke.bash_history vašeg korisničkog računa:

history -c

Bash pamti ograničeni broj naredbi prema zadanim postavkama, sprečavajući tako da se povijest datoteke prevelika. Broj povijesnih zapisa koji se sjećaju se pod kontrolom
Bash pamti ograničeni broj naredbi prema zadanim postavkama, sprečavajući tako da se povijest datoteke prevelika. Broj povijesnih zapisa koji se sjećaju se pod kontrolom

HISTSIZE

promjenjiva. Zadana je obično 500 ili 1000 unosa. Možete pokrenuti sljedeću naredbu da biste vidjeli veličinu povijesti bash na vašem sustavu.

echo $HISTSIZE

Da biste postavili svoju povijest na nulu, pokrenite sljedeću naredbu.

HISTSIZE=0

Za trenutačnu sesiju, bash neće pohraniti nikakve unose povijesti osim ako pokrenete naredbu poput

HISTSIZE=1000

da biste ga vratili na određeni broj unosa.

Image
Image

Kako zanemariti prostore i duplikate

Bash omogućuje zanemarivanje unosa povijesti koji počinju s razmakom ako postavite

HISTCONTROL

varijablu do

ignorespace.

HISTCONTROL=ignorespace

Unesite razmak prije naredbe prije nego što je pokrenete u bash shell i naredba će se normalno prikazivati, ali se neće pojaviti u vašoj povijesti ako imate ovu varijablu omogućenu. To vam omogućuje da svoju povijest održite malo čišćom, odabirom pokretanja naredbi bez da se prikazuju u vašoj povijesti.

Bash vam omogućuje i da zanemarite duplicirane naredbe koje mogu ometati vašu povijest. Da biste to učinili, postavite
Bash vam omogućuje i da zanemarite duplicirane naredbe koje mogu ometati vašu povijest. Da biste to učinili, postavite

HISTCONTROL

do

ignoredups.

HISTCONTROL=ignoredups

Da biste koristili oba
Da biste koristili oba

ignorespace

i

ignoredups

postavite

HISTCONTROL

varijablu do

ignoreboth.

HISTCONTROL=ignoreboth

Imajte na umu da varijable bash koje ste postavili zadržat će samo za trenutačnu sesiju. Morat ćete ih dodati na.bashrc datoteku svog korisničkog računa kako biste ove vrijednosti automatski postavili na svakoj početnoj sesiji koju ste započeli, ako to želite.

Preporučeni: