Hogyan használja a Bash történetét a Linux vagy a MacOS terminálon
A bash shell a szabványos terminálkörnyezet, amely a legtöbb Linux disztribúcióhoz tartozik, a MacOS-hoz mellékelve, és a Windows 10 operációs rendszerre telepíthető. Valószínűleg ismeri a bash történet néhány alapját, de sokkal erősebb, mint amilyennek lehetne.
Gyorsbillentyűket
A bash történetének görgetéséhez használhatja a bash számos hasznos billentyűparancsát. Nyomja meg ezeket a parancsikonokat, és a korábban használt parancsok megjelennek a parancssorban.
- Felfelé nyíl vagy Ctrl + P: Ugrás az előző parancsra a történelemben. Nyomja meg többször a gombot, hogy visszamenjen a használt parancsokon.
- Lefele nyíl vagy Ctrl + N: Menj a történelem következő parancsára. Nyomja meg többször a gombot, hogy előre használhassa a használt parancsokat.
- Alt + R: Ha vissza kívánja állítani az előzményekből származó parancsokat, akkor az aktuális sorban szerkesztette.
A Bash-nek van egy speciális „visszahívási” módja is, amellyel a korábban futott parancsokat keresheti, ahelyett, hogy egymás után görgetné őket.
- Ctrl + R: Visszahívja az utolsó parancsot, amely megfelel a megadott karaktereknek. Nyomja meg ezt a parancsikont, és kezdje el gépelni a bash történetének kereséséhez egy parancsot.
- Ctrl + O: Futtassa a Ctrl + R segítségével talált parancsot.
- Ctrl + G: Hagyja a történet keresési módját parancs nélkül.
Tekintse meg Bash történetét
A teljes bash-előzményeket egyetlen parancs futtatásával kinyomtathatja:
történelem
Látni fogja a bash történetében található összes parancs listáját, valamint a bal oldali számokat. A mellette lévő „1” parancs a legrégebbi parancs a bash történetében, míg a legnagyobb számmal rendelkező parancs a legutóbbi.
A kimenettel bármit megtehetsz. Például, be tudnád csiszolni azt grep
parancs a parancstörténet kereséséhez.
történelem | grep your_search
Azt is csődelhetné farok
parancsot, hogy csak néhány számot láthasson a futtatott legutóbbi parancsok közül. Például az alábbi parancs a történelem utolsó 5 bejegyzését jeleníti meg.
történelem | farok -5
Futtassa a parancsokat az Ön történetéből
A Bash gyorsan bővítheti a korábbi parancsokat, vagy bővítheti és módosíthatja őket. Ezt a funkciót „történelem bővítésnek” nevezik, és felkiáltójelet használ, amelyet „bangnak” hívnak. Csak írja be őket a parancssorba, és nyomja meg az Entert, hogy futtassa őket, mintha bármilyen más parancsot futtatna.
Ha egy adott parancsot a történetéből futtatni szeretne, használja a következő parancsot:
!#
Tegyük fel például, hogy a 12. parancsot szeretné futtatni a bash történetéből. Ez a parancs a "12" -vel balra, amikor a történelem
parancs. Írja be a következő parancsot.
!12
Az utolsó futott parancs újbóli futtatásához írja be a következőt. Ez ugyanolyan hatású, mint a felfelé mutató nyíl egyszeri megnyomása az előző parancs megjelenítéséhez, majd az Enter megnyomásával.
!!
A parancs egy bizonyos számú sorszámot is megnézhet. Például, !-2
a második és az utolsó parancsot futtatta. !!
ugyanazt jelenti, mint !-1
.
Ez a bővítés bárhol a vonalon működik. Bármit, amit szeretsz, hozzáadhatsz előtte vagy utána !!
vagy bármely más kifejezés ebben a részben. Például az alábbi parancsot írhatja be az utolsó parancsra, amelyen átfutott sudo
, root jogosultságokat ad. Ez különösen akkor hasznos, ha elfelejtette hozzáadni sudo
parancs futtatása előtt.
sudo !!
Vagy például újrakezdheti az előző parancsot és a kimenetét grep-hez csatolhatja, ha keresni szeretne valamilyen szöveget.
!! | grep szöveg
Ha meg szeretne keresni egy parancsot a történetében és futtatni, írja be a következőt. Ezzel a legutóbbi parancsot a megadott szövegnek megfelelően futtatja:
!szöveg
Tehát, ha nemrég futott egy parancs, amely elkezdődött fütyülés
, a következő parancsot futtathatja a kereséshez. Ez visszafelé fog keresni a történelem során, keresse meg a legújabb parancsot, amely a következővel kezdődik:pi
„És azonnal futtassa:
!pi
Hozzáadhat egy : p
A fenti kiterjesztések bármelyikéhez a bash a parancsot a terminálra nyomtatja ki anélkül, hogy futtatná. Ez akkor hasznos, ha megerősíteni szeretné, hogy a megfelelő parancsot választotta, mielőtt futtatná.
!12: p
!!: p
!text: p
Argumentumok újrafelhasználása az Ön történetéről
A Bash lehetővé teszi egy új parancs futtatását is, de a korábbi történések argumentumait használja a történelemben. Ez segíthet a hosszú vagy bonyolult érvek gyors újrafelhasználásában anélkül, hogy azokat újra kellene írni.
parancs! $
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 az egészet beírná a semmiből, futtathatja:
nano! $
A !$
a bash automatikusan kitölti az előző parancs utolsó argumentumát.
Ez csak az utolsó argumentumot tölti ki. Tehát, ha futsz ping google.com -c 4
majd futtassa ping! $
, ez csak „ping 4
„.
A helyzet kijavításához a következő trükköt használhatja a sor első argumentumának kibontására, nem pedig az utolsóra:
parancs! ^
Szóval, ha futottál ping google.com -c 4
majd futott ping! ^
, bash kiterjesztené ezt a következőre:ping google.com "
.
Ahhoz, hogy az előző parancsban szereplő összes argumentumot csak egyetlen argumentum helyett töltse ki, az alábbiakat használja:
parancs! *
Szóval, ha futottál ping! *
ehelyett a bash automatikusan kitölti az összes előző argumentumot.
Használhatja ugyanazt a trükköt, amelyet a történelem parancsai futtatásához használhat, hogy érveket kapjon tőlük. Csak használja az alábbi űrlapot.
parancs! abc: #
Például a parancsot futtattuk sudo hostname ubuntu
korábban. Ha a következő parancsot futtatjuk, a bash a történelemben visszafelé fog keresni, hogy megtalálja az utolsó parancsot a betűkkel kezdődő betűkkel és töltse ki a megadott argumentumot. Tehát, ha futunk echo! su: 2
, bash fog keresni, hogy megtalálja az utolsó parancsot a következővel:su
És töltse ki a második érvét, ami „ubuntu
„.
Más trükkök úgy működnek, mintha elvárnád. Például a csillag helyett a helyettesítő névnek nevezett szám helyettesítése a bash-t a parancs összes argumentumának kitöltésére használja:
parancs! abc: *
Futtassa újra az előző parancsot és módosítsa azt
A Bash lehetővé teszi az előző parancs újbóli futtatását és azt is, hogy meg kell változtatnia. Ez hasznos lehet egy parancsfájl helyesbítésében. Például az alábbi parancs újraírja az előző parancsot, a szöveg helyettesítésével.ABC
"Benne a szöveggel"xyz
„.
^ Abc ^ XYZ
Például, ha véletlenül futott ping gogle.com
, akkor futtathatnánk ^ Gog ^ goog
és bash futtatta a parancsot ping google.com
helyette.
Ahol tárolódik a történelme, és hogyan törölhető
A bash shell tárolja a felhasználói fiók történetfájljában a ~ / .bash_history fájlban futtatott parancsok előzményeit. Például, ha a felhasználóneve bob, ezt a fájlt a /home/bob/.bash_history könyvtárban találja meg.
Mivel a történelem egy fájlban van tárolva, a munkamenetek között továbbra is fennáll. Futtathat néhány parancsot, jelentkezzen ki, jöjjön vissza a következő napon, és ezek a parancsok továbbra is megtekinthetők és használhatók lesznek a történelemfájlban. Minden egyes felhasználói fióknak saját történetfájlja van, amely külön parancstörténetet tartalmaz.
A bash történet 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:
történelem -c
Bash alapértelmezés szerint csak korlátozott számú parancsot emlékszik meg, ami megakadályozza, hogy a történelemfájl túl nagy legyen. A történetbejegyzések száma, amit a bash emlékez, a HISTSIZE
változó. Az alapértelmezett érték általában 500 vagy 1000 bejegyzés. Futtathatja a következő parancsot, hogy megtekinthesse a rendszer bash történetének méretét.
echo $ HISTSIZE
A történelem nulla beállításához futtassa a következő parancsot.
HISTSIZE = 0
Az aktuális munkamenethez a bash nem tárol semmilyen előzménybejegyzést, hacsak nem futtat egy parancsot HISTSIZE = 1000
visszaállítani egy bizonyos számú bejegyzésre.
Hogyan kell figyelmen kívül hagyni a helyeket és a másolatokat
A Bash lehetővé teszi, hogy figyelmen kívül hagyja azokat a történelmi bejegyzéseket, amelyek egy szóközzel kezdődnek, ha a beállítást választjuk HISTCONTROL
változó ignorespace.
HISTCONTROL = ignorespace
Írjon be egy parancsot a parancs előtt, mielőtt futtatná azt a bash shell-ben, és a parancs rendesen fog futni, de nem jelenik meg a történelemben, ha ezt a változót engedélyezte. Ez lehetővé teszi, hogy a történetét egy kicsit tisztábbá tegye, úgy, hogy parancsokat futtat, anélkül, hogy előfordulna a történelemben.
A Bash lehetővé teszi, hogy figyelmen kívül hagyja az ismétlődő parancsokat, amelyek zavarhatják a történelmet. Ehhez állítsa be HISTCONTROL
nak nek ignoredups.
HISTCONTROL = ignoredups
Mind a ignorespace
és ignoredups
funkciót, á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 munkamenetben maradnak fenn. Ezeket hozzá kell adnia a felhasználói fiók .bashrc fájljához, hogy ezek az értékek automatikusan elindulhassanak minden elindított bash munkamenetben, ha azt szeretné, hogy.
A bash shell egy összetett eszköz, amely több lehetőséget kínál. A hivatalos bash kézikönyv részletesebb tájékoztatásával és egyéb fejlett trükkökkel forduljon a Bash History Builtins és History Expansion részeihez..