24Aug
A bash shell a legtöbb Linux disztribúcióhoz mellékelt szabványos terminálkörnyezet, amely a MacOS-ban található, és elérhető a Windows 10 rendszeren történő telepítéshez. Megjegyzi a beírt parancsokat, és azokat egy történeti fájlban tárolja. Valószínűleg ismered a bash történelem néhány alapját, de sokkal erősebb, mint amit fel lehetne látni.
Billentyűparancsok
Ahhoz, hogy átnézhesse a bash előzményeit, használhat néhány bash hasznos billentyűparancsot. Nyomja meg ezeket a parancsikonokat, és a korábban használt parancsok megjelennek a promptban.
- Fel nyíl vagy Ctrl + P : Ugrás 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.
- lefelé nyíl vagy Ctrl + N : Ugrás 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 rendelkezik, amellyel korábban már futott parancsokat kereshet, nem pedig egyenként.
- Ctrl + R : Visszahívja az utolsó parancsot, 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 bash története megtekintése
A teljes bash előzményeket a képernyőre nyomtathatja egyetlen parancs futtatásával:
történelemA bash előzmények összes parancsának listája, mindegyik bal oldalán lévő 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.
A kimenettel mindent megtesz, amit szeretne. Például a grepcommandba teheted a parancs előzményeit.
történelemgrep your_searchA farok parancsra is csévélheti, hogy csak néhány újabb parancsot jelenítsen meg. Például a következő parancs a legutóbbi öt bejegyzést jeleníti meg a történelemben.
történelem |farok -5Parancsok futtatása az Ön történetéből
A bash gyorsan "kibővítheti" az előző parancsokat, bővítheti őket, és módosíthatja azokat. 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:
! #Például, mondjuk azt szeretnénk, hogy futtassuk a 12. parancsot a bash történelemből. Ez a parancs egy "12" -nel balra, amikor a parancsot futtatja.Írja be a következő parancsot.
! 12Az utolsó parancs futtatásához írja be a következőt. Ez ugyanolyan hatással van, mint egyszer megnyomva a felfelé mutató nyilat az előző parancs megtekintéséhez, majd az Enter megnyomásával.
!A parancs egy bizonyos számú vonalra is hivatkozhat. Például, a -2-es verzióban futnánk a második utoljára végrehajtott parancsot.!!ugyanazt jelenti, mint! -1.
Ez a bővítés bárhol a vonalon működik. Hozzáadhat bármit, amit szeretne előtt vagy után!vagy az ebben a szakaszban található bármelyik kifejezést. Például beírhatja a következő parancsot, hogy újraindítsa az utolsó parancsot, amelyet a sudo-on futott át, megadva root jogosultságokat. Ez különösen akkor hasznos, ha elfelejtette hozzáadni a sudo parancs végrehajtása előtt.
sudo! !Vagy például megpróbálhatja újra az előző parancsot, és pipálhatja kimenetét a grep-be, hogy keressen valamilyen szöveget.
! !|grep textHa parancsot szeretne keresni a történelemben, és futtassa azt, akkor írja be a következőt. Ez az utolsó parancsot fogja futtatni, amely megfelel a megadott szövegnek:
! SzövegTehát, ha nemrég futott egy parancsot, amely pingrel kezdődött, akkor futtathatja a következő parancsot a kereséshez. Ez visszalép a történelemben, keresse meg a legutolsó "pi" parancsot, és azonnal futtassa azt:
! PiA következőkhöz csatolhat: p-t a fenti bővítések bármelyikéhez, és a bash parancs a paranccsal parancs nélkül a terminálra nyomtat. Ez akkor hasznos, ha meg szeretné erősíteni, hogy a futtatás előtt kiválasztotta a megfelelő parancsot.
! 12: p!: P! Szöveg: pAz érvek ismételt felhasználása az Ön történelméből
A Bash lehetővé teszi, hogy futtasson egy új parancsot, de az előző parancsok argumentumait használhatja a történelemben. Ez segíthet a hosszú vagy bonyolult érvek gyors újrafelhasználásában anélkül, hogy újra be kellene írni őket.
parancs! $Például mondjuk, hogy a parancsot futtatta, érintse meg az /home/chris/ some_long_file_name_you_dont_want_to_type_again parancsot. Most szeretné futtatni a nano parancsot /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-t automatikusan betölti az előző parancs utolsó argumentumát.
Ez csak az utolsó argumentumot tartalmazza. Tehát, ha futtatod a ping google.com -c 4-et, majd futtatod a ping! $ -t, ez csak a "ping 4" -re bővül.
Ha ezt a helyzetet kijavítod, akkor az utolsó argumentumot az utolsó argumentumra bővítheted:
parancs! ^Tehát ha ping google.com -c 4-et futtatod és pinget futtatsz! ^,bash kiterjesztené ezt a "ping google.com" -ra
Az előző parancs helyett minden argumentum kitöltése csak egyetlen argumentum helyett:
parancs! *Tehát ha pinget futtatsz!* helyett a bash automatikusan kitölt minden olyan argumentumot, amit az előző parancsban használt
Használhatod ugyanazt a trükköt, amellyel parancsokat futtathatsz a történelemből, hogy megkérdezheted őket. Be csak a következő űrlapot használd
parancs! abc:#Például a sudo hostname ubuntu parancsot futtattuk korábban Ha a következő parancsot futtatjuk, a bash visszafelé keresi 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.futtunk echo! su: 2, bassh vissza fogja keresni a "su" -al kezdődő utolsó parancsot, és töltse ki a második argumentumot, ami az "ubuntu".
Egyéb trükkök működnek, ahogyan elvárható.Például, ha a csillagot helyettesíti a helyettesítő karakterrel, akkor a bash parancs minden argumentumot kitölt a parancsból:
parancs! Abc: *Az előző parancs újbóli és módosítása
A Bash lehetővé teszi az előző parancs újbóliés adjon meg valamit, amit 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 az "abc" szöveget helyettesíti a "xyz" szöveggel.
^ abc ^ xyzPéldául ha véletlenül ping gogle.com-ot futtatsz, akkor futtathatod a ^ gog ^ goog-ot és a bash parancs a ping google.com parancsot futtatja.
Hol tárolja az előzményeit, és hogyan törölhető
A bash shell az alapértelmezés szerint a ~ /. bash_history felhasználói fiók történelmi fájljában futtatott parancsok történetét tárolja. Például, ha a felhasználóneved a bob, megtalálja ezt a fájlt az /home/bob/. bash_history-ban.
Mivel az Ön előzményei egy fájlban tárolódnak, az megszakad a munkamenetek között. 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ények 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énet -cA Bash alapértelmezés szerint csak korlátozott számú parancsot képes megjegyezni, megakadályozva, hogy a történeti fájl túl nagy legyen. A történelmi bejegyzések száma a bash emlékszik, a HISTSIZE függvény szabályozza. 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 $ HISTSIZEAz előzmények nullázásához állítsa be a következő parancsot.
HISTSIZE = 0Az aktuális munkamenethez a bash nem tárol történelmi bejegyzéseket, kivéve ha olyan parancsot futtat, mint a HISTSIZE = 1000, és visszaállít egy bizonyos számú bejegyzésre.
Hogyan lehet figyelmen kívül hagyni a szóközöket és a másolatokat
A Bash lehetővé teszi, hogy figyelmen kívül hagyja a térben elkezdett történelem bejegyzéseket, ha a HISTCONTROLvagyonat hagyja figyelmen kívül hagyni.
HISTCONTROL = ignorespaceÍrjon be egy parancsot, mielőtt parancsot futna a bash-héjban, és a parancs normálisan fut, 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. Az
Bash lehetővé teszi, hogy figyelmen kívül hagyja a párhuzamos parancsokat, amelyek zavarják a történelmet. Ehhez állítsa a HISTCONTROL beállítást a figyelmen kívül hagyásra.
HISTCONTROL = figyelmen kívül hagyottA "ignorespace" és "ignoreups" funkció használatához állítsa a HISTCONTROL változót figyelmen kívül hagyva.
HISTCONTROL = ignorebothA beállított bash változók csak az aktuális munkamenethez maradnak. 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 ezt jobban szeretné.
A bash shell egy összetett eszköz, sokkal több lehetőséggel, mint ezek. A hivatalos bash kézikönyvben részletesebben tájékozódhat a Bash History Buildings és History Bővítés szakaszokról, és további fejlett trükkökről.