If-Koubou

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

Bash-historian käyttö Linuxissa tai MacOS-terminaalissa (Miten)

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.

Tarkastele Bash-historiaa

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

historia

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 grepkomento hakea komentohistoriasi.

historia | grep your_search

Voit myös putkea sen pyrstö komento näyttää vain pienen määrän viimeisimpiä komentojasi, joita olet suorittanut. Esimerkiksi seuraava komento näyttäisi historiasi viimeiset 5 merkintää.

historia | häntä -5

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 historia 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ä.

!!

Voit myös viitata komentoon tietyn määrän viivoja takaisin. Esimerkiksi, !-2 suorittaisi toisen viimeisen komennon suorittamisen. !! tarkoittaa samaa kuin !-1 .

Tämä laajennus toimii kaikkialla linjalla. Voit lisätä mitä haluat ennen tai jälkeen!! 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-teksti

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

!teksti

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 "pii", Ja suorita se heti:

! pi

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: s
!!: p
! Teksti: p

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.

komento! $

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

komento! ^

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:

komento! *

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.

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

komento! abc: *

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.

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:

historia -c

Bash muistaa vain rajoitetun määrän komentoja oletuksena, mikä estää historiatiedoston kasvavan liian suureksi. Historia-syötteiden muistin muistin määrää hallitsee HISTSIZEmuuttuja. 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ä.

Kuinka sivuuttaa tilat ja kaksoiskappaleet

Bashin avulla voit ohittaa historiatiedot, jotka alkavat avaruudella, jos asetat HISTCONTROLmuuttuvaa 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 HISTCONTROLettä ignoredups.

HISTCONTROL = ignoredups

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.

Bash-kuori on monimutkainen työkalu, jossa on paljon enemmän vaihtoehtoja kuin näillä. Tutustu Bash History -rakennusten ja historian laajennuksen osiin virallisessa bash-käsikirjassa yksityiskohtaisempia tietoja ja muita kehittyneitä temppuja, joita voit käyttää.