Bash-historian käyttö Linuxissa tai MacOS-terminaalissa

Sisällysluettelo:

Bash-historian käyttö Linuxissa tai MacOS-terminaalissa
Bash-historian käyttö Linuxissa tai MacOS-terminaalissa
Anonim
Yhteyskuori on tavallisin päätelaite, joka sisältyy useimpiin Linux-jakeluihin, sisältyy MacOS-ohjelmaan ja on saatavana asennettavaksi Windows 10: lle. Se muistaa kirjoittamasi komennot ja tallentaa ne historiatiedostoon. Luultavasti tiedät muutaman bas-historian perusasiat, mutta se on paljon tehokkaampi kuin huomaatte.
Yhteyskuori on tavallisin päätelaite, joka sisältyy useimpiin Linux-jakeluihin, sisältyy MacOS-ohjelmaan ja on saatavana asennettavaksi Windows 10: lle. Se muistaa kirjoittamasi komennot ja tallentaa ne historiatiedostoon. Luultavasti tiedät muutaman bas-historian perusasiat, mutta se on paljon tehokkaampi kuin huomaatte.

Näppäinoikotiet

Voit selata bash-historiaasi käyttämällä joitakin bashin monia hyödyllisiä pikanäppäimiä. Paina näitä pikavalintoja ja aiemmin käyttämiäsi komentoja ilmestyy kehotteeseen.

  • Nuoli ylöspäin tai Ctrl + P: Siirry historian edelliseen komentoon. Paina näppäintä useita kertoja kävelemään taaksepäin käyttämäsi komennoilla.
  • Alaspäin tai Ctrl + N: Siirry seuraavaan komentoon historiassasi. Paina näppäintä useita kertoja kävelemään eteenpäin käyttämiesi komentojen kautta.
  • Alt + R: Palauta kaikki muutokset, jotka olet poistanut historiastasi, jos olet muokannut sitä nykyisellä rivillä.

Bashilla on myös erityinen "muistutustila", jolla voit etsiä aikaisemmin suorittamiasi komentoja, eikä vieritä niitä yksitellen.

  • Ctrl + R: Nollaa viimeinen komento, joka vastaa antamasi merkkejä. Paina tätä pikakuvaketta ja aloita kirjoittamalla etsiä bash-historia komennolle.
  • Ctrl + O: Suorita löytämäsi komento Ctrl + R: llä.
  • Ctrl + G: Jätä historian hakutila käyttämättä komentoa.
Image
Image

Tarkastele Bash-historiaa

Voit tulostaa koko koiran historian näytölle suorittamalla yhden komennon:

history

Näet listan kaikista kommenteista sinun bash-historiassasi sekä numeron vasemmalla puolella. Sen vieressä oleva "1" -komento on vanhin komento bash-historiassasi, kun taas suurin määrä komento on viimeisin.

Voit tehdä mitä tahansa haluamallasi tuotolla. Voit esimerkiksi syöttää sen
Voit tehdä mitä tahansa haluamallasi tuotolla. Voit esimerkiksi syöttää sen

grep

komento hakea komentohistoriasi.

history | grep your_search

Image
Image

Voit myös putkea sen

tail

komento näyttää vain pienen määrän viimeisimpiä komentojasi, joita olet suorittanut. Esimerkiksi seuraava komento näyttäisi historiasi viimeiset 5 merkintää.

history | tail -5

Image
Image

Suorita komentojasi historiastasi

Bash voi nopeasti laajentaa aiempia komentoja tai laajentaa niitä ja muokata niitä. Tätä ominaisuutta kutsutaan nimellä "historian laajennus" ja käytetään huutomerkkiä, joka tunnetaan nimellä "bang". Kirjoita ne vain kehotteeseen ja paina Enter-näppäintä, jotta heidät voidaan suorittaa, kuten mitä tahansa muuta komentoa.

Jotta voit suorittaa tietyn komennon historiastasi numeron perusteella, käytä seuraavaa komentoa:

!#

Oletetaan esimerkiksi, että halusit suorittaa 12. komennon bash-historiastasi. Se on komento, jonka vasemmalla puolella on "12", kun suoritat

history

komento. Kirjoita seuraava komento.

!12

Kirjoita viimeinen komento, jota käytit. Tällä on sama vaikutus kuin painamalla ylös-nuolta kerran nähdäksesi edellisen komennon ja painamalla sitten Enter-näppäintä.
Kirjoita viimeinen komento, jota käytit. Tällä on sama vaikutus kuin painamalla ylös-nuolta kerran nähdäksesi edellisen komennon ja painamalla sitten Enter-näppäintä.

!!

Voit myös viitata komentoon tietyn määrän viivoja takaisin. Esimerkiksi,

!-2

suorittaisi toisen viimeisen komennon suorittamisen.

!!

tarkoittaa samaa kuin

!-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

!!

tai jollekin muulle tämän jakson muulle lausekkeelle. Voit esimerkiksi kirjoittaa seuraavan komennon uudestaan viimeisen suorittamasi komennon

sudo

antamalla sille root-oikeudet. Tämä on erityisen hyödyllinen, jos unohdat lisätä

sudo

ennen kuin suoritat komennon.

sudo !!

Tai voit esimerkiksi toistaa edellisen komennon ja pudottaa sen lähdön grepiksi etsimään jotain tekstiä.

!! | grep text

Jos haluat etsiä komennon historiassasi ja suorittaa sen, kirjoita seuraava. Tämä ajaa viimeisen komennon, joka vastaa määritettyäsi tekstiä:
Jos haluat etsiä komennon historiassasi ja suorittaa sen, kirjoita seuraava. Tämä ajaa viimeisen komennon, joka vastaa määritettyäsi tekstiä:

!text

Joten, jos olet äskettäin suorittanut komennon, joka alkoi

ping

voit suorittaa seuraavan komennon etsimällä sitä. Tämä etsii taaksepäin historianne läpi, etsi viimeisin komento, joka alkaa"

pi

, Ja suorita se heti:

!pi

Voit liittää a
Voit liittää a

:p

mihin tahansa edellä mainituista laajennuksista ja bash tulostaa komennon päätelaitteelle suorittamatta sitä. Tämä on hyödyllistä, jos haluat vahvistaa, että valitset oikean komennon ennen sen suorittamista.

!12:p

!!:p

!text:p

Image
Image

Käytä uudelleen argumentteja historiastasi

Bashin avulla voit myös suorittaa uuden komennon, mutta käytä aiempien komentojen argumentteja historiassasi. Tämä voi auttaa sinua käyttämään pitkään tai monimutkaisia argumentteja nopeasti ilman, että ne on kirjoitettava uudelleen.

command !$

Oletetaan esimerkiksi, että suoritit komennon

touch /home/chris/some_long_file_name_you_dont_want_to_type_again

. Nyt haluat suorittaa komennon

nano /home/chris/some_long_file_name_you_dont_want_to_type_again

. Sen sijaan, että kirjoittaisit kaiken tyhjästä, voit suorittaa:

nano !$

!$

tekee bash automaattisesti täyttää edellisen komennon viimeisen argumentin.

Tämä täyttää vain viimeisen argumentin. Joten, jos suoritat
Tämä täyttää vain viimeisen argumentin. Joten, jos suoritat

ping google.com -c 4

ja sitten ajaa

ping !$

tämä vain laajennettaisiin"

ping 4

“.

Tämän tilanteen korjaamiseksi voit käyttää seuraavaa temppua laajentamaan rivin ensimmäistä argumenttia viimeisen sijaan:

command !^

Joten, jos suoritit

ping google.com -c 4

ja sitten juoksi

ping !^

bash laajentaa tämän"

ping google.com'

Jos haluat täyttää kaikki edellisessä komennossa käytetyt argumentit vain yhden argumentin sijaan, käytä seuraavaa:
Jos haluat täyttää kaikki edellisessä komennossa käytetyt argumentit vain yhden argumentin sijaan, käytä seuraavaa:

command !*

Joten, jos suoritit

ping !*

sen sijaan bash täyttää automaattisesti kaikki argumentit, joita käytit edellisessä komennossa.

Voit käyttää samaa temppua, jota käytät komentojesi suorittamiseen historiastasi, jotta voit saada heiltä argumentteja. Käytä vain seuraavaa lomaketta.
Voit käyttää samaa temppua, jota käytät komentojesi suorittamiseen historiastasi, jotta voit saada heiltä argumentteja. Käytä vain seuraavaa lomaketta.

command !abc:#

Esimerkiksi suoritimme komennon

sudo hostname ubuntu

aikaisemmin. Jos suoritamme seuraavan komennon, bash etsii taaksepäin historian kautta löytääksesi viimeisen komennon, joka alkaa kirjaimistamme ja täyttää määrittelemämme argumentin. Joten, jos me juoksemme

echo !su:2

bash etsii takaisin etsimään viimeisen komennon, joka alkaa"

su

"Ja täytä toinen argumentti, joka on"

ubuntu

“.

Muut temput toimivat kuten odotit. Esimerkiksi korvaaminen numerolla tähdellä, joka tunnetaan nimellä jokerimerkki, saa bashin täyttämään kaikki argumentit komennosta:

command !abc:*

Image
Image

Toista edellinen komento ja muokkaa sitä

Bashin avulla voit myös toistaa edellisen komennon ja määritellä jotain, jota pitäisi muuttaa. Tämä voi olla hyödyllinen korjaamaan typo komennossa. Esimerkiksi seuraava komento toistaa edellisen komennon, korvaa tekstin"

abc

"Siinä tekstissä"

xyz

“.

^abc^xyz

Esimerkiksi, jos vahingossa suoritat

ping gogle.com

voit sitten ajaa

^gog^goog

ja bash suoritti komennon

ping google.com

sen sijaan.

Image
Image

Jossa historia tallennetaan ja miten se poistetaan

Yhteyskuori tallentaa oletusarvoisesti käyttäjätunnuksesi historiatiedostoon suorittamat komennot, jotka ovat ~ /.bash_history. Jos esimerkiksi käyttäjänimesi on bob, löydät tämän tiedoston osoitteessa /home/bob/.bash_history.

Koska historia tallennetaan tiedostoon, se säilyy istuntojen välillä. Voit suorittaa joitain komentoja, kirjautua ulos, palata seuraavana päivänä ja nämä komennot ovat edelleen historiatiedostossa, jotka ovat valmiita katselemaan ja käyttämään. Jokaisella käyttäjätilillä on oma historiatiedosto erillisellä komentohistorialla.

Voit tyhjentää bash-historian, mutta voit suorittaa seuraavan komennon. Tämä poistaa käyttäjätunnuksen.bash_history-tiedoston sisällön:

history -c

Bash muistaa vain rajoitetun määrän komentoja oletuksena, mikä estää historiatiedoston kasvavan liian suureksi. Historia-syötteiden muistin muistin määrää hallitsee
Bash muistaa vain rajoitetun määrän komentoja oletuksena, mikä estää historiatiedoston kasvavan liian suureksi. Historia-syötteiden muistin muistin määrää hallitsee

HISTSIZE

muuttuja. Oletuksena on yleensä 500 tai 1000 merkintää. Voit suorittaa seuraavan komennon nähdäksesi koiran historian koon järjestelmässäsi.

echo $HISTSIZE

Jos haluat asettaa historian nollaksi, suorita seuraava komento.

HISTSIZE=0

Nykyisessä istunnossa bash ei tallenna mitään historiatietoja, ellet suorita komentoa

HISTSIZE=1000

asettaa sen takaisin tietylle määrälle merkintöjä.

Image
Image

Kuinka sivuuttaa tilat ja kaksoiskappaleet

Bashin avulla voit ohittaa historiatiedot, jotka alkavat avaruudella, jos asetat

HISTCONTROL

muuttuvaa

ignorespace.

HISTCONTROL=ignorespace

Kirjoita tilaa ennen komentoa ennen sen suorittamista bash-kuvalle ja komento toimii normaalisti, mutta se ei näy historiassasi, jos tämä muuttuja on käytössä. Näin voit pitää historianne hieman puhtaampana valitsemalla komentojen näyttämisen ilman, että ne näkyvät historiassasi.

Bashin avulla voit myös ohittaa päällekkäiset komennot, jotka voivat hämmentää historiaa. Voit tehdä tämän asetuksella
Bashin avulla voit myös ohittaa päällekkäiset komennot, jotka voivat hämmentää historiaa. Voit tehdä tämän asetuksella

HISTCONTROL

että

ignoredups.

HISTCONTROL=ignoredups

Voit käyttää molempia
Voit käyttää molempia

ignorespace

ja

ignoredups

ominaisuus, aseta

HISTCONTROL

muuttuvaa

ignoreboth.

HISTCONTROL=ignoreboth

Huomaa, että asetetut bash-muuttujat pysyvät vain nykyisessä istunnossa. Sinun on lisättävä nämä käyttäjätiliin.bashrc-tiedostoon, jotta nämä arvot asetetaan automaattisesti jokaiseen käynnissä olevaan bash-istuntoon, jos haluat.

Suositeltava: