Gyorsbillentyűket
A bash-előzmények közötti váltáshoz használhat néhány hasznos bash billentyűparancsot. Nyomja meg ezeket a parancsikonokat, és a korábban használt parancsok megjelennek a promptban.
- Felfelé nyíl vagy Ctrl + P: Ugorjon az előző parancsra a történelemben. Nyomja meg többször a gombot, ha visszafelé halad az általad használt parancsok segítségével.
- Lefele nyíl vagy Ctrl + N: Menjen a következő parancsra az Ön történetében. Nyomja meg többször a gombot, hogy előre járjon az általad használt parancsok segítségével.
- Alt + R: Visszaállíthatja a korábban húzni kívánt parancs bármely módosítását, ha szerkesztette az aktuális sort.
A Bash egy speciális "visszahívási" móddal is kereshet a korábban futott parancsok kereséséhez, nem pedig egyenként.
- Ctrl + R: Emlékezz az utolsó parancsra, amely megfelel a megadott karaktereknek. Nyomja meg ezt a parancsikont, és indítsa el a gépelést, ha keres egy bash parancsot.
- Ctrl + O: Indítsa el a talált parancsot a Ctrl + R billentyűkombinációval.
- Ctrl + G: Hagyja el a történelemkeresési módot parancs futtatása nélkül.
A kötegelő története megtekintése
A teljes bash történetét egyetlen parancs futtatásával kinyomtathatja a képernyőre:
history
A bash előzmények összes parancsának listája, mindegyik bal oldalán található szám mellett. A hozzá tartozó "1" parancs a legrégebbi parancs a bash történetében, míg a legmagasabb számmal rendelkező parancs a legfrissebb.
grep
paranccsal kereshet a parancs előzményei között.
history | grep your_search
tail
paranccsal csak néhány futó parancsot tekinthet meg. Például a következő parancs a legutóbbi öt bejegyzést jeleníti meg a történelemben.
history | tail -5
Parancsok futtatása az Ön történetéből
A Bash gyorsan "bővítheti" az előző parancsokat, vagy bővítheti őket, és módosíthatja őket. Ezt a funkciót "történelembővítésnek" nevezik, és egy felkiáltójelet használ, amelyet "bumm" -nak neveznek. Csak írja be őket a parancssorba, és nyomja meg az Enter billentyűt, hogy futtassa őket, mint bármely más parancsot.
Ahhoz, hogy egy adott parancsot futtasson az előzményből a számával, használja a következő parancsot:
!#
Tegyük fel például, hogy szeretné futtatni a 12. parancsot a bash történelemből. Ez a parancs egy "12" -gyel balra, amikor futtatod
history
parancs. Írja be a következő parancsot.
!12
!!
A parancs egy bizonyos sorra is hivatkozhat. Például,
!-2
futtatná a futás második végét.
!!
ugyanazt jelenti, mint
!-1
!!
vagy az ebben a szakaszban található bármelyik kifejezést. Például beírhatja a következő parancsot az utolsó végrehajtott parancs újratervezéséhez
sudo
így gyökér jogosultságokat ad. Ez különösen hasznos, ha elfelejtette hozzáadni
sudo
parancs futtatása előtt.
sudo !!
Vagy például megpróbálhatja újra az előző parancsot, és a kimenetét görgetni tudja, hogy keressen valamilyen szöveget.
!! | grep text
!text
Tehát, ha nemrég olyan parancsot futtatott, amely elkezdődött
ping
akkor a következő parancsot futtathatja a kereséshez. Ez visszalép a történelemben, keresse meg a legutóbbi parancsot, amely"
pi
, És azonnal futtassa:
!pi
:p
a fenti bővítmények bármelyikéhez és a bash a parancsot a parancsfájlra nyomtatás nélkül nyomtatja ki. Ez akkor hasznos, ha meg szeretné erősíteni, hogy a futtatás előtt kiválasztotta a megfelelő parancsot.
!12:p
!!:p
!text:p
Ismételje az érvek az Ön történetéből
A Bash lehetővé teszi, hogy futtasson egy új parancsot, de a korábbi parancsok argumentumait használja a történelemben. Ez segíthet a hosszú vagy bonyolult érvek gyors újrafelhasználásában anélkül, hogy újra be kellene írnia őket.
command !$
Tegyük fel például, hogy futtatta a parancsot
touch /home/chris/some_long_file_name_you_dont_want_to_type_again
. Most szeretné futtatni a parancsot
nano /home/chris/some_long_file_name_you_dont_want_to_type_again
. Ahelyett, hogy beírná az egészet a semmiből, akkor futtathat:
nano !$
A
!$
a bash automatikusan betölti az előző parancs utolsó argumentumát.
ping google.com -c 4
majd fut
ping !$
ez csak bővíteni a"
ping 4
“.
Ennek a helyzetnek a megszüntetéséhez használhatja a következő trükket az első argumentum bővítésére a soron, az utolsó helyett:
command !^
Szóval, ha futott
ping google.com -c 4
majd futott
ping !^
bash kiterjesztené ezt a"
ping google.com'
command !*
Szóval, ha futott
ping !*
ehelyett a bash automatikusan kitölti az előző parancsban használt argumentumokat.
command !abc:#
Például végrehajtottuk a parancsot
sudo hostname ubuntu
korábban. Ha a következő parancsot futtatjuk, a bash visszalépteti az előzményeket, hogy megtalálja az utolsó parancsot, amelyet a begépelt betűkkel kezdünk, és kitöltjük a megadott argumentumot. Szóval, ha futunk
echo !su:2
a bash vissza fog keresni, hogy megtalálja az utolsó parancsot a"
su
"És töltse ki a második érvét, amely"
ubuntu
“.
Egyéb trükkök működnek, ahogyan elvárható. Például, ha a csillagot helyettesíti a helyettesítő karakterrel, a bash parancs minden argumentumot kitölt a parancsból:
command !abc:*
Ismételje meg az előző parancsot és módosítsa azt
A Bash lehetővé teszi az előző parancs újbóli megnyitását, és megadhat valamit, amelyet meg kell változtatni. Ez hasznos lehet egy parancsértelmező javításához. Például az alábbi parancs újrakezdi az előző parancsot, és felváltja a"
abc
"Benne a szöveg"
xyz
“.
^abc^xyz
Például ha véletlenül futott
ping gogle.com
akkor futhatsz
^gog^goog
és a bash parancs futtatja
ping google.com
helyette.
Hol tárolja a történelmet, és hogyan törli azt
A bash-shell alapértelmezés szerint tárolja a felhasználói fiók történelmi fájljában futó parancsok történetét a ~ /.bash_history-ben. Például, ha a felhasználónevét bob, akkor megtalálja ezt a fájlt a /home/bob/.bash_history címre.
Mivel az Ön előzményei egy fájlban tárolódnak, a munkamenetek között továbbra is fennáll. Futtathat néhány parancsot, jelentkezhet ki, jöhet vissza másnap, és ezek a parancsok még mindig a történeti fájlban lesznek készen állnak a megtekintésre és a felhasználásra. Minden felhasználói fióknak saját történetfájlja van külön parancstörténettel.
A bash előzményeinek törléséhez futtassa a következő parancsot. Ez törli a felhasználói fiókjának.bash_history fájljának tartalmát:
history -c
HISTSIZE
változó. Az alapértelmezés általában 500 vagy 1000 bejegyzés. A következő parancs segítségével futtathatja a rendszer bash-előzményeinek méretét.
echo $HISTSIZE
Ha az előzményeket nullára állítja, futtassa a következő parancsot.
HISTSIZE=0
Az aktuális munkamenethez a bash nem tárol történelmi bejegyzéseket, kivéve ha futtatja a parancsot
HISTSIZE=1000
hogy visszaállítson egy bizonyos számú bejegyzést.
Hogyan lehet figyelmen kívül hagyni a helyeket és a másolatokat?
A Bash lehetővé teszi, hogy figyelmen kívül hagyja a térinformációkat tartalmazó bejegyzéseket, ha beállítja a
HISTCONTROL
változó
ignorespace.
HISTCONTROL=ignorespace
Írjon be egy szóközt a parancs előtt, mielőtt fut a bash-héjba, és a parancs normál módon fog futni, de nem jelenik meg a történetében, ha engedélyezte ezt a változót. Ez lehetővé teszi, hogy a történelem egy kicsit tisztább legyen, és úgy dönt, hogy futtat a parancsokat anélkül, hogy megjelenjenek az Ön történetében.
HISTCONTROL
nak nek
ignoredups.
HISTCONTROL=ignoredups
ignorespace
és
ignoredups
funkció, állítsa be a
HISTCONTROL
változó
ignoreboth.
HISTCONTROL=ignoreboth
Ne feledje, hogy a beállított bash változók csak az aktuális munkamenet számára maradnak fenn. Ezeket hozzá kell adnia a felhasználói fiókjának.bashrc fájljához, hogy ezek az értékek automatikusan be legyenek állítva minden beindult bash munkamenetben, ha kedvelik.