Klaviatuuri otseteed
Bashi ajaloo sirvimiseks võite kasutada mõnda bashi palju kasulikke klaviatuuri otseteid. Vajutage neid otseteid ja käske, mida olete varem kasutanud.
- Noole üles 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 järgmisele käsule oma ajaloos. Vajutage klahvi mitu korda, et edasi liikuda läbi käske, mida olete kasutanud.
- Alt + R: Tagastab muudatused käsklusse, mille olete oma ajaloost välja tõmbanud, kui olete selle praeguses reas muutnud.
Bashil on ka spetsiaalne "tagasikutsumise" režiim, mille abil saate otsida käske, mida olete varem käitanud, selle asemel, et kerida neid ükshaaval.
- Ctrl + R: Tuletage meelde viimane käsk, mis vastab teie määratud tähemärkidele. 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 oma kogu bassi ajaloo printida ekraanile, käivitades ühe käsuga:
history
Näete nimekirja kõigist teie bash ajaloo käskudest koos numbriga, mis vasakule neist on. Käsu kõrval olev "1" on teie bashi ajaloos vanim käsk, kõige suurema arvu kõige rohkem käsu käsk.
grep
käsk käsku otsida oma käsku ajalugu.
history | grep your_search
tail
käsk, et näha ainult väikest arvu viimati kasutatud käske. Näiteks, järgmine käsk näitab teie viimase 5 kirja oma ajaloos.
history | tail -5
Käivitage käsklusi oma ajaloost
Bash saab kiiresti laiendada varasemaid käske või laiendada neid ja neid muuta. 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 selle 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", kui käivitate
history
käsk Sisesta järgmine käsk.
!12
!!
Võite viidata käsule teatud arvu ridade tagasi. Näiteks,
!-2
käiks teine viimane käsu sa jooksed.
!!
tähendab sama asja nagu
!-1
!!
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äsklus
sudo
andes sellele administraatoriõigused. See on eriti kasulik, kui te unustate lisada sudo
enne käsku käivitamist.
sudo !!
Või näiteks võite eelmise käskluse uuesti käivitada ja suunata oma väljundi, et otsida mõnda teksti hiireklahviga.
!! | grep text
!text
Nii et kui sa hiljuti käivitasid käskluse, mis algas
ping
saate selle otsimiseks käivitada järgmise käsu. See otsib teie ajaloost tagasi, leidke kõige uuem käsk, mis algab"
pi
Ja kohe käivitage see:
!pi
:p
mis tahes ülaltoodud laiendusi 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
Kasutage uuesti oma argumentide argumente
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.
command !$
Näiteks ütleme, et sa jooksed käsku
touch /home/chris/some_long_file_name_you_dont_want_to_type_again
. Nüüd soovite käsku käivitada
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 !$
The
!$
paneb bash automaatselt viimase eelmise käsu eelmise käsu.
ping google.com -c 4
ja siis jookse
ping !$
peaks see lihtsalt laienema"
ping 4
“.
Selle olukorra parandamiseks võite kasutada järgmise trikkina rida esimese argumendi laiendamiseks, mitte viimase:
command !^
Nii et kui sa jooksed
ping google.com -c 4
ja siis jooksis
ping !^
bash laiendaks seda"
ping google.com'
command !*
Nii et kui sa jooksed
ping !*
Selle asemel täidab bash automaatselt kõik eelmises käskluses kasutatud argumendid.
command !abc:#
Näiteks käisime käsku
sudo hostname ubuntu
varem Kui käivitame järgmise käskluse, otsib bash läbi ajaloo tagantjärele, et leida viimane käsk, mis algab kirjadega, mida me sisestame, ja täidame meie poolt määratud argumendi. Nii et kui me käime
echo !su:2
bash otsib uuesti, et leida viimane käsk, mis algab tähega"
su
"Ja täitke teine argument, mis on"
ubuntu
“.
Teised trikid toimivad nagu võite eeldada. Näiteks asendades numbriga tärniga, mida tuntakse metamärina, põhjustab bash, et täita kõik argumendid käsust:
command !abc:*
Korda eelmist käsku ja muutke seda
Bash võimaldab teil uuesti käivitada eelmise käskluse ja määrata 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 teksti"
abc
"Selles tekstis"
xyz
“.
^abc^xyz
Näiteks kui sa kogemata jooksid
ping gogle.com
siis võiksite käia
^gog^goog
ja bash käivitas käsu
ping google.com
selle asemel.
Kus teie ajalugu hoitakse ja kuidas seda kustutada
Bashi shell salvestab käskude ajaloo, mille olete oma kasutajakonto ajaloo failis käivitanud vaikimisi ~ /.bash_history. 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:
history -c
HISTSIZE
muutuv. 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 nullimiseks käivitage järgmine käsk.
HISTSIZE=0
Praeguse seansi puhul bash ei salvesta ühtegi ajaloo kirjeid, välja arvatud juhul, kui käivitage käsk nagu
HISTSIZE=1000
et seada see tagasi teatud arvu sissekannete juurde.
Kuidas ignoreerida tühikuid ja duplikaate
Bash võimaldab teil ignoreerida ajaloo sissekandeid, mis algavad tühikuga, kui määrate
HISTCONTROL
muutuv kuni
ignorespace.
HISTCONTROL=ignorespace
Sisestage ruum enne käsu enne selle käivitamist bash-shellis ja käsk toimib normaalselt, kuid seda 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.
HISTCONTROL
et
ignoredups.
HISTCONTROL=ignoredups
ignorespace
ja
ignoredups
funktsioon, seadistage
HISTCONTROL
muutuv kuni
ignoreboth.
HISTCONTROL=ignoreboth
Pange tähele, et bashi muutujad, mille olete määranud, püsivad 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.