24Aug

Kuidas kasutada oma Bashi ajalugu Linuxis või macOS-terminalis

Bash-kaust on standardse terminali keskkond, mis kuulub enamusse Linuxi distributsioonidesse, mis on lisatud macOS-ile ja on installimiseks saadaval Windows 10. Ta mäletab käske, mida sisestate ja salvestate need ajaloo faili. Tõenäoliselt teate bash ajaloo mõningaid põhitõdesid, kuid see on palju võimsam kui võite aru saada.

klaviatuuri otseteed

Bashi ajaloo sirvimiseks võite kasutada mõnda bashist palju kasulikke klaviatuuri otseteid. Vajutage neid otseteid ja käske, mida olete varem kasutanud.

  • üles nooleklahv või Ctrl + P : mine oma eelmise käsku. Vajutage klahvi mitu korda, et liikuda kasutatavate käskude abil tagurpidi.
  • allapoole või Ctrl + N : mine oma käsiraamatu järgmisele käsule. Vajutage klahvi mitu korda, et edasi liikuda läbi käske, mida olete kasutanud.
  • Alt + R : tagastab kõik muudatused käskluses, mille olete oma ajaloost välja tõmbanud, kui olete selle praeguses reas muutnud.

Bashil on ka spetsiaalne "tagasikutsumise" režiim, mida saate kasutada käskude otsimiseks, mida olete varem käitanud, selle asemel, et neid ükshaaval kerida.

  • Ctrl + R : tuletatakse meelde viimane käsk, mis vastab teie poolt antud sümbolitele. Vajutage seda otseteed ja hakake tippima, et otsida oma bash ajaloost käsku.
  • Ctrl + O : Käivita käsk, mille leidsite Ctrl + R-ga.
  • Ctrl + G : jätke ajaloo otsimise režiim käsku käivitamata.

Vaadake oma bassi ajalugu

Saate printida oma kogu bassi ajaloo ekraanile, käivitades ühe käsu:

ajalugu

Näete nimekirja kõigist käskudest teie bashi ajaloos koos numbriga vasakule igast. Käsu kõrval olev "1" on teie bashi ajaloos vanim käsk, kõige suurema arvu kõige rohkem käsu käsk.

Saate väljundiga teha midagi, mis sulle meeldib. Näiteks võite joonistada selle kiirspikri käsku, et otsida oma käsku ajalugu.

ajalugu |grep your_search

Võite ka toru saba käsku vaadata, et vaadata vaid väikest arvu viimati kasutatud käske. Näiteks, järgmine käsk näitab teie viimase 5 kirja oma ajaloos.

ajalugu |saba-5

käivitage käsklusi oma ajaloosest

Bash saab kiiresti laiendada varasemaid käske või laiendada neid ja muuta neid. See funktsioon on tuntud kui "ajaloo laiendamine" ja kasutab hüüumärki, mida nimetatakse "pahaks".Lihtsalt kirjuta need viipa ja vajuta Enter, et neid käitada, nagu oleksite käsku käivitada.

Selleks, et käivitada konkreetse käsku oma ajaloost oma numbri järgi, kasutage järgmist käsku:

! #

Näiteks ütleme, et soovite käivitada 12. käsu oma bash-ajaloost. See käsk vastab käsku "12" ajaloo käskluse käivitamisel. Sisesta järgmine käsk.

! 12

. Viimase käskluse uuesti käivitamiseks sisestage järgmine. Sellel on sama efekt, nagu eelmise käsu vaatamiseks ühe nupuvajutusega ühel korral ja seejärel vajutusega Enter.

!

Võite viidata ka käsule teatud arvu ridade tagasi. Näiteks:! -2 käitaks viimast käsu, mida sa jooksed.!tähendab sama asja nagu! -1.

See laiendus töötab igal joonel. Saate lisada midagi, mis sulle meeldib enne või pärast!või mõni muu selles jaotises esitatud väljend. Näiteks võite sisestada järgmise käsu, et uuesti käivitada viimane käsk sudo kaudu, andes selle administraatoriõigused. See on eriti kasulik, kui sa unustad sudo enne käsu käivitamist.

sudo! !

Või näiteks võite eelmise käskluse uuesti käivitada ja oma kiirklahvi toru otsida mõnda teksti.

!|grep text

Selleks, et otsida käsku oma ajaloos ja käivitada see, sisestage järgmine. Sellega käivitatakse viimane käsu, mis sobib teie määratud tekstiga:

! Text

Nii et kui sa hiljuti käivitasid pinguga käivitatud käsu, võid selle käskluse jaoks käivitada järgmise käsuga. See otsib teie ajaloost tagasi, leidke viimane käsk, mis algab "pi" -ga, ja kohe käivitage see:

! Pi

Võid lisada: p mõnele eelnimetatud laiendist ja bash trükkab käsu terminalile ilma selle käivitamata. See on kasulik, kui soovite, et valite õige käskluse enne selle käivitamist.

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

Ajalugu ajutise kasutamise argumendid

Bash võimaldab teil käivitada ka uue käsu, kuid kasutada oma ajaloo varasemate käskude argumente. See võib aidata teil pikki või keerukaid argumente kiiresti uuesti kasutada, ilma et peaksite neid uuesti looma.

käsk! $

Näiteks ütleme, et käsk käivitasid käsuga /home/chris/ some_long_file_name_you_dont_want_to_type_again. Nüüd soovid käivitada käsk nano /home/chris/ some_long_file_name_you_dont_want_to_type_again. Selle asemel, et kirjutada kogu asi nullist, võite käivitada:

nano! $

! $! Muudab bash automaatselt viimase eelmise käsu eelmise argumendi.

See täidab ainult viimast argumenti. Kui käivitate ping google.com -c 4 ja käivitage ping! $, Laiendatakse see ainult "ping 4".

Selle olukorra parandamiseks võite kasutada järgmise trikkina rida esimese argumendi laiendamiseks, mitte viimast:

käsk! ^

Nii et kui sa jooksid ping google.com -c 4 ja seejärel käivitasite ping! ^bash laiendab seda "ping google.com".

Et täita kõiki argumente, mida eelmises käskluses kasutati vaid ühe argumendi asemel, kasutaksite järgmist:

käsk! *

Nii et kui sa jooksed ping!* Selle asemel täidab bash automaatselt kõik eelmises käskluses kasutatud argumendid.

Võite kasutada sama trikki, mida kasutate käskude käskude käitamiseks oma ajaloost, et saada nende argumentidest. Kasuta lihtsalt järgmist vormi:

käsk! abc:#

Näiteks käivitasime käsku sudo hostinimi ubuntu varem. Kui käivitame järgmise käsu, siis bash otsib ajalugu tagasi, et leida viimane käsk, mis algab tähed, mida me kirjutame, ja täidame meie poolt määratud argumendi. Seega, kuikäime echo! su: 2, bash otsib uuesti, et leida viimane käsk, mis algab tähega "su" ja täidetakse tema teine ​​argument, mis on "ubuntu".

Muud trikid toimivad nii nagu võite oodata. Näiteks asendades numbriga tärniga, mida tuntakse metamärina, põhjustab bash, et täita kõik argumendid käskluselt:

käsk! Abc: *

Käivita eelmine käsk ja muuda see

Bash võimaldab ka eelmise käsuga uuesti käivitadaja määrake midagi, mida tuleks muuta. See võib olla kasulik käsitsi kirjutamata paranduste tegemiseks. Näiteks käivitab järgmine käsk eelmise käskluse, asendades selle tekstiga "abc" tekstiga "xyz".

^ abc ^ xyz

Näiteks kui te kogemata jooksisite ping gogle.com, võite seejärel käivitada ^ gog ^ goog ja bash käivitas selle asemel käsu ping google.com.

kus teie ajalugu on salvestatud ja kuidas seda puhastada

bash-shell salvestab vaikimisi oma kasutajakonto ajaloo faili ~ /. bash_history käskude ajaloo. Näiteks kui teie kasutajanimi on bob, leiate selle faili aadressil /home/bob/. Bash_history.

Kuna teie ajalugu on failis salvestatud, püsib see seansside vahel. Saate käivitada mõningaid käske, välja logida, tulla järgmisel päeval tagasi ja need käsud on ikka veel teie ajaloo failis valmis vaatamiseks ja kasutamiseks. Igal kasutajakontol on omaenda ajaloo fail koos eraldi käskude ajalooga.

Bashi ajaloo kustutamiseks võite käivitada järgmise käsu. See kustutab teie kasutajakonto faili. bash_history faili:

ajalugu -c

Bash mäletab vaikimisi ainult piiratud arvu käske, takistades ajaloo faili liiga suurt kasvu. Ajaloo sissekannete arv, mis meelestab mälu, kontrollib HISTSIZEvariable. Vaikimisi on tavaliselt 500 või 1000 kirjet. Saate käivitada järgmise käsu, et näha oma süsteemi bassi ajalugu.

echo $ HISTSIZE

Ajaloo määramiseks nulliks käivitage järgmine käsk.

HISTSIZE = 0

Praeguse seansi jaoks bash ei salvesta ajaloo sissekandeid, välja arvatud juhul, kui käivitage käsk HISTSIZE = 1000, et see oleks määratud kindlale arvule kirjadele.

Kuidas ruumide ja duplikaatidega ignoreerida

Bash võimaldab ignoreerida ajaloo sissekandeid, mis algavad tühikuga, kui seadistate HISTCONTROLvariable eiruseks.

HISTCONTROL = ignoreeruum

Sisestage ruum enne käsu enne selle käivitamist bash-shellis ja käsk toimib normaalselt, kuid see ei kuvata teie ajaloos, kui see on lubatud. See võimaldab hoida ajalugu natuke puhtamana, valides käske käivitada, ilma et need oleksid teie ajaloos kuvatud.

Bash võimaldab ka ignoreerida korduvaid käske, mis võivad teie ajalugu segamini ajada. Selleks määrake HISTCONTROL-i ignoreeritavaks.

HISTCONTROL = ignoredups

Nii ignoreeruva ruumi kui ka ignoreerimisfunktsiooni kasutamiseks seadke HISTCONTROLi muutuja ignoreerituks.

HISTCONTROL = ignoreoBoth

Pange tähele, et bash muutujad, mille olete määranud, jäävad püsima ainult praeguse seansi jaoks. Peate need lisama oma kasutajakonto failile. bashrc, et need väärtused seatakse automaatselt iga algse bash-seansi puhul, kui see eelistate.

Bashi shell on keeruline tööriist, millel on palju rohkem võimalusi kui need. Konsulteerige Bashi ajaloo keskuste ja ajaloo laiendamise osadega ametlikus bash käsiraamatutes üksikasjalikumat teavet ja muid edasijõudnute trikke, mida saate kasutada.