Homepage » hogyan kell » Hogyan használja a Bash történetét a Linux vagy a MacOS terminálon

    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 grepparancs 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 HISTSIZEvá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 HISTCONTROLvá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..