A Bash történetének használata a Linux vagy a MacOS terminálon

Tartalomjegyzék:

A Bash történetének használata a Linux vagy a MacOS terminálon
A Bash történetének használata a Linux vagy a MacOS terminálon

Videó: A Bash történetének használata a Linux vagy a MacOS terminálon

Videó: A Bash történetének használata a Linux vagy a MacOS terminálon
Videó: BP DOCTOR PRO Smart Watch Blood Pressure Monitor: Is It as Accurate as a Traditional BP Monitor? - YouTube 2024, Lehet
Anonim
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 rendszerre történő telepítéshez. Megjegyzi a beírt parancsokat, és tárolja azokat egy előzményfájlban. 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.
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 rendszerre történő telepítéshez. Megjegyzi a beírt parancsokat, és tárolja azokat egy előzményfájlban. 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.

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.
Image
Image

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.

Bármit is szeretne a kimenettel. Például be tudná pipálni a
Bármit is szeretne a kimenettel. Például be tudná pipálni a

grep

paranccsal kereshet a parancs előzményei között.

history | grep your_search

Azt is lecsatolhatja a
Azt is lecsatolhatja a

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

Image
Image

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

Az utolsó futott parancs újbóli 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.
Az utolsó futott parancs újbóli 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 sorra is hivatkozhat. Például,

!-2

futtatná a futás második végét.

!!

ugyanazt jelenti, mint

!-1

This expansion works anywhere on the line. You can add anything you like before or after
This expansion works anywhere on the line. You can add anything you like before or after

!!

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

Ha parancsot keres a történelemben, és futtatja, írja be a következőket. Ez az utolsó parancsot fogja végrehajtani, amely megfelel a megadott szövegnek:
Ha parancsot keres a történelemben, és futtatja, írja be a következőket. Ez az utolsó parancsot fogja végrehajtani, amely megfelel a megadott szövegnek:

!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

Csatolhatsz egy
Csatolhatsz egy

: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

Image
Image

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.

Ez csak az utolsó argumentumot tartalmazza. Szóval, ha futsz
Ez csak az utolsó argumentumot tartalmazza. Szóval, ha futsz

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'

Az előző parancs helyett használt összes argumentum kitöltése csak egy argumentum helyett:
Az előző parancs helyett használt összes argumentum kitöltése csak egy argumentum helyett:

command !*

Szóval, ha futott

ping !*

ehelyett a bash automatikusan kitölti az előző parancsban használt argumentumokat.

Használhatja ugyanazt a trükköt, amellyel parancsokat futtat az előzményeitől, hogy érveket kapjon róluk. Csak használja a következő űrlapot.
Használhatja ugyanazt a trükköt, amellyel parancsokat futtat az előzményeitől, hogy érveket kapjon róluk. Csak használja a következő űrlapot.

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:*

Image
Image

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.

Image
Image

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

A Bash alapértelmezés szerint csak korlátozott számú parancsot jegyez meg, és megakadályozza, hogy a történeti fájl túl nagy legyen. A történelmi bejegyzések száma a bash emlékszik, a
A Bash alapértelmezés szerint csak korlátozott számú parancsot jegyez meg, és megakadályozza, 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

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.

Image
Image

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.

A Bash lehetővé teszi, hogy figyelmen kívül hagyja a párhuzamos parancsokat, amelyek zavarják a történelmet. Ehhez állítsa be
A Bash lehetővé teszi, hogy figyelmen kívül hagyja a párhuzamos parancsokat, amelyek zavarják a történelmet. Ehhez állítsa be

HISTCONTROL

nak nek

ignoredups.

HISTCONTROL=ignoredups

Mind a
Mind a

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.

Ajánlott: