24Aug

Kako uporabljati zgodovino boš v Linuxu ali MacOS terminalu

Bash lupina je standardno okolje terminala, vključeno z večino distribucij Linuxa, vključeno v macOS, in je na voljo za namestitev v operacijskem sistemu Windows 10. Opomnik zapise, ki jih vnesete in jih shranite v datoteko z zgodovino. Verjetno poznate nekaj osnov zgodovine baš, vendar je veliko močnejši, kot si morda veste.

Bližnjice na tipkovnici

Če se želite pomikati po zgodovini datoteke bash, lahko uporabite nekaj uporabnih bližnjičnih tipk. Pritisnite te bližnjice in ukazi, ki ste jih že uporabljali, se bodo pojavili na pozivu.

  • Gornja puščica ali Ctrl + P : pojdite na prejšnji ukaz v svoji zgodovini. Večkrat pritisnite tipko, da se pomaknete nazaj po ukazih, ki ste jih uporabili.
  • Puščica navzdol ali Ctrl + N : pojdite na naslednji ukaz v svoji zgodovini. Večkrat pritisnite tipko, če želite hoditi skozi ukaze, ki ste jih uporabili.
  • Alt + R : spremenite spremembe v ukazu, ki ste ga povlekli iz svoje zgodovine, če ste jo uredili v trenutni vrstici.

Bash ima tudi poseben način »odpoklica«, ki ga lahko uporabite za iskanje ukazov, ki ste jih že izvajali, namesto da bi jih po eni strani prelistali.

  • Ctrl + R : prikličite zadnji ukaz, ki ustreza znaki, ki jih navedete. Pritisnite to bližnjico in začnite tipkati, če želite poiskati zgodovino bash za ukaz.
  • Ctrl + O : zaženite ukaz, ki ste ga našli s Ctrl + R.
  • Ctrl + G : pustite način iskanja v zgodovini brez zagona ukaza.

Oglejte si zgodovino zgodb

Celotno zgodovino bazh-a lahko natisnete na zaslon, tako da zaženete en sam ukaz: zgodovina

V seznamu vseh ukazov v svoji zgodovini bazov bo prikazan seznam skupaj s številko na levi strani. Ukaz z oznako »1« je najstarejši ukaz v vaši zgodovini bazov, medtem ko je ukaz z največjim številom najnovejši.

Na izhodu lahko storite vse, kar vam je všeč.Na primer, lahko ga odprete v grepcommand za iskanje zgodovine ukazov. Zgodovina

|grep your_search

Lahko ga tudi odprete v ukazu tail, če si želite ogledati le majhno število nedavnih ukazov, ki ste jih zagnali. Na primer, naslednji ukaz prikazuje zadnjih 5 vnosov v svoji zgodovini. Zgodovina

|rep -5

ukazi za izvajanje iz vaše zgodovine

Bash lahko hitro "razširi" prejšnje ukaze ali jih razširi in spremeni. Ta funkcija je znana kot "razširitev zgodovine" in uporablja vzklik, znano kot "bang".Preprosto jih vnesite na poziv in pritisnite Enter, da jih zaženete, kot da bi zagnali katerikoli drugi ukaz.

Za izvedbo določenega ukaza iz vaše zgodovine po svoji številki, uporabite naslednji ukaz:

! #

Na primer, recimo, da želite zagnati 12. ukaz iz vaše zgodovine bazh. To je ukaz z "12" na levi strani, ko zaženete ukaz zgodovine. Vnesli boste naslednji ukaz.

! 12

Če želite znova zagnati zadnji ukaz, ki ste ga zagnali, vnesite naslednje. To ima enak učinek kot enkrat pritisnjeno puščico gor, da si ogledate prejšnji ukaz in nato pritisnete Enter.

! !

Prav tako se lahko sklicujete na ukaz določeno število vrstic nazaj. Na primer,! -2 bi zaženel drugi do zadnji ukaz, ki ste ga zagnali.!!pomeni isto stvar! -1.

Ta razširitev deluje kjerkoli v vrstici. Lahko dodate karkoli hočeš pred ali po!ali kateri koli drugi izraz v tem razdelku. Na primer, v naslednjem ukazu lahko vnesete naslednji ukaz, da ponovite zadnji ukaz, ki ste ga potekali prek suda, in mu dodelite root privilegije. To je še posebej uporabno, če pozabite dodati sudo pred zagonom ukaza.

sudo!

Lahko pa na primer ponovite prejšnji ukaz in cev svoj izvod v grep, če želite poiskati nekaj besedila.

! !|grep text

Če želite poiskati ukaz v svoji zgodovini in ga zagnati, vnesite naslednje. S tem boste zagnali zadnji ukaz, ki se ujema z besedilom, ki ga navedete:

! Text

Če ste nedavno zagnali ukaz, ki se je začel s pingom, lahko zaženete naslednji ukaz, da ga poiščete. To bo iskalo nazaj skozi svojo zgodovino, poiskati najnovejši ukaz, ki se začne s "pi" in takoj zaženite:

! Pi

Lahko dodate: p katerikoli od zgornjih razširitev in bash bo tiskal ukaz na terminal, ne da bi ga zagnali. To je uporabno, če želite potrditi, da izberete pravilen ukaz, preden ga zaženete.

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

Ponovite argumente iz svoje zgodovine

Bash vam omogoča tudi zagon novega ukaza, vendar uporabite argumente iz prejšnjih ukazov v svoji zgodovini. To vam lahko pomaga hitro ponovno uporabiti dolge ali zapletene argumente, ne da bi jih morali znova vnovičiti.

ukaz! $

Na primer, recimo, da ste zagnali ukaz dotaknite /home/chris/ some_long_file_name_you_dont_want_to_type_again. Zdaj želite zagnati ukaz nano /home/chris/ some_long_file_name_you_dont_want_to_type_again. Namesto tipkanja celotne stvari iz nič, bi lahko zagnali:

nano! $

!! $ Bi bash samodejno zapolnil zadnji argument iz prejšnjega ukaza.

To samo izpolni zadnji argument. Torej, če zaženete ping google.com -c 4 in nato zaženite ping! $, Bi se to samo razširilo na "ping 4".

Če želite odpraviti to stanje, lahko uporabite naslednji trik, da razširite prvi argument na vrstici in ne zadnji: ukaz

! ^

Če ste zagnali ping google.com -c 4 in nato zagnali ping! ^,bash bi to razširil na "ping google.com".

Če želite zapolniti vse argumente, uporabljene v prejšnjem ukazu namesto samo en argument, uporabite naslednje: ukaz

! *

Če ste zagnali ping!* namesto tega bash samodejno izpolni vse argumente, ki ste jih uporabili v prejšnjem ukazu

Uporabite isti trik, ki ga uporabljate za zaganjanje ukazov iz vaše zgodovine, da bi dobili argumente od njih. Uporabite naslednji obrazec:

command! abc:#

Na primer, prej smo izvedli ukaz sudo hostname ubuntu prej. Če zaženemo naslednji ukaz, bo bash v zgodovini iskal nazaj, da bi našli zadnji ukaz, ki se začne s črkami, ki jih vnesemo, in izpolnite argument, ki ga navedemo.vodimo echo! su: 2, bassh bo iskal nazaj, da bi našli zadnji ukaz, ki se začne z "su" in izpolni svoj drugi argument, ki je "ubuntu".

Drugi triki delujejo, kot bi lahko pričakovali. Na primer, če zamenjate številko z zvezdico, znano kot nadomestna ikona, povzroči, da bash izpolni vse argumente iz ukaza: ukaz

! Abc: *

Ponovite prejšnje ukazno kodo in spremenite ga

Bash omogoča tudi ponovitev prejšnjega ukazain navedite nekaj, kar bi bilo treba spremeniti. To je lahko uporabno za popravljanje napake v ukazu. Na primer, naslednji ukaz bo ponovno prestavil prejšnji ukaz, pri čemer bo besedilo "abc" nadomestil z besedilom "xyz".

^ abc ^ xyz

Na primer, če ste nenamerno zagnali ping gogle.com, lahko nato zaženete ^ gog ^ goog in bash bi zaženel ukaz namesto ping google.com.

Če je vaša zgodovina shranjena in kako jo očistite

Lučka bash shrani zgodovino ukazov, ki ste jih zagnali v datoteki z zgodovino vašega uporabniškega računa v privzeti datoteki ~ /. bash_history.Če je na primer vaše uporabniško ime bob, jo boste našli na /home/bob/. bash_history.

Ker je vaša zgodovina shranjena v datoteki, se med sejami vztraja. Lahko zaženete nekaj ukazov, odjavite se, vrnite se naslednji dan in ti ukazi bodo še vedno v datoteki z zgodovino, ki je pripravljena za ogled in uporabo. Vsak uporabniški račun ima svojo zgodovinsko datoteko z ločeno zgodovino ukazov.

Če želite počistiti svojo zgodovino, lahko zaženete naslednji ukaz. S tem se izbriše vsebina datoteke. bash_history vašega uporabniškega računa: zgodovina

-c

Bash samo privzeto zapomni omejeno število ukazov, s čimer se prepreči, da bi se zgodovinska datoteka povečala.Število vnosov z zgodovino, zapišemo bash, nadzira HISTSIZEvariable. Privzeta vrednost je običajno 500 ali 1000 vnosov. Zaženite lahko naslednji ukaz, če si želite ogledati velikost zgodovine bash v vašem sistemu.

echo $ HISTSIZE

Če želite zgodovino nastaviti na nič, zaženite naslednji ukaz.

HISTSIZE = 0

Za trenutno sejo bash ne hrani nobenih vnosov v zgodovino, razen če zaženete ukaz, kot je HISTSIZE = 1000, da ga ponovno nastavite na določeno število vnosov.

Kako prezreti prostore in dvojnike

Bash vam omogoča, da prezrete zgodovinske vnose, ki se začnejo s presledkom, če nastavite HISTCONTROLvariable na ignorespace.

HISTCONTROL = ignorespace

Vnesite presledek pred ukazom, preden ga zaženete v lupini bash, in ukaz bo normalno, vendar se v zgodovini ne prikaže, če imate omogočeno to spremenljivko. To vam omogoča, da ohranite zgodovino nekoliko čistejšo in se odločite za zagon ukazov, ne da bi se prikazovali v vaši zgodovini.

Bash tudi vam omogoča, da prezrete podvojene ukaze, ki lahko zbledijo vašo zgodovino. To storite tako, da HISTCONTROL nastavite na prezrtost.

HISTCONTROL = ignoredups

Če želite uporabiti funkcijo ignorespace in ignoredups, nastavite spremenljivko HISTCONTROL na ignorebot.

HISTCONTROL = ignorebot

Upoštevajte, da nastavite bash spremenljivke, ki jih nastavite, bodo trajale samo za trenutno sejo. Te datoteke boste morali dodati v datoteko. bashrc vašega uporabniškega računa, če želite, da se te vrednosti samodejno nastavijo na vsaki začetni seji, če to želite.

Bashova lupina je kompleksno orodje, ki ima veliko več možnosti od teh. Podrobnejše informacije in druge napredne trike, ki jih lahko uporabite, si lahko ogledate v razdelkih »Vgrajena zgodovina in razdelek zgodovine« v uradnem priročniku.