24Aug

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

Yhteishuone on vakiona vakioympäristö, joka sisältyy useimpiin Linux-jakeluihin, mukana MacOS-järjestelmässä ja joka 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äimistön pikanäppäimet

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.

  • Ylänuoli 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 käskysi, jonka olet poistanut historiastasi, jos olet muokannut sitä nykyisellä rivillä.

Bashilla on myös erityinen "muistutus" -tilaan, jolla voit etsiä aikaisemmin suorittamiasi komentoja, eikä vieritä niitä yksi kerrallaan.

  • Ctrl + R : Palauta 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.

Näytä oman bash-historian

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

-historia

Näet luettelon kaikista komentosarjasi komentojen luettelosta sekä kunkin vasemmalla olevan numeron. Sen vieressä oleva "1" -komento on vanhin komento bash-historiassasi, kun taas suurin määrä komento on viimeisin.

Voit tehdä mitä tahansa haluamallasi tavalla. Voit esimerkiksi syöttää sen grepkomentoon etsimään komentohistoriasi.

historiagrep your_search

Voit myös ohjata sen hännän komentoon nähdäksesi vain pienen määrän viimeisimpiä komentojasi, joita olet suorittanut. Esimerkiksi seuraava komento näyttäisi historiasi viimeiset 5 merkintää.

historiatail -5

Suorita komentoja historioistasi

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 sen numeron avulla, käytä seuraavaa komentoa:

! #

Esimerkiksi sanokaamme, että halusit suorittaa 12. komennon bash-historiastasi. Se on komento, jonka vasemmalla puolella on "12", kun suoritat historia-komennon. Kirjoita seuraava komento.

! 12

Jotta voit suorittaa viimeisen suorittamasi komennon, kirjoita seuraava. 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 voisi käyttää toista viimeistä komentoa, jota suoritit.!!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 kirjoittaa esimerkiksi seuraavan komennon uudestaan ​​viimeisen komennon, jonka suoritit sudo-ohjelman läpi, antamalla sen root-oikeudet. Tämä on erityisen hyödyllinen, jos unohdat lisätä sudo ennen komennon suorittamista.

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

! Text

Joten, jos olet äskettäin suorittanut pingillä alkavan komennon, voit suorittaa seuraavan komennon etsimällä sitä.Tämä etsii historiaasi taaksepäin, etsi viimeisimmän "pi" -komennon käskyn ja suorita sen välittömästi:

! Pi

Voit lisätä: 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! Teksti: p

Uudelleenhistoria

: n argumentit Historia

Bash mahdollistaa myös uuden komennon suorittamisen, 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! $

Esimerkiksi sanotaan, että suoritit komennon kosketa /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! $

! $ Tekisi bashin automaattisesti täyttää edellisen komennuksen viimeisen argumentin.

Tämä täyttää vain viimeisen argumentin. Joten, jos suoritat ping google.com -c 4: n ja suoritat sitten ping! $, Tämä vain laajennettaisiin "ping 4".

Tämän ongelman ratkaisemiseksi voit käyttää seuraavaa temppua laajentamaan viivan ensimmäistä argumenttia viimeisen sijasta:

-komentoa! ^

Joten jos suoritit ping google.com -c 4: n ja suoritit sitten ping! ^,

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

-komentoa! *

Joten jos suoritit pingin!* sen sijaan bash täyttää automaattisesti kaikki argumentit, joita käytit edellisessä komennossa

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

komento! abc:#

Esimerkiksi suoritimme komennon sudo hostname ubuntu aikaisemmin. Jos suoritamme seuraavan komennon, bash etsii historiaan taaksepäin löytääksesi viimeisen komennon, joka alkaa kirjaimistamme ja täyttää määrittelemämme argumentin.suoritetaan kaiku! su: 2, bash etsii takaisin löytääkseen viimeisen komennon "su" ja täyttää toisen argumentin, joka on "ubuntu".

Muut temput tekevät työtä, kuten ehkä odotat. Esimerkiksi korvaamalla numero tähdellä, joka tunnetaan nimellä jokerimerkki, bash kirjoittaa kaikkien argumenttien komennon:

komento! Abc: *

Toista edellinen komento ja muokkaa sitä

Bash avulla voit myös toistaa edellisen komennonja määritä jotain, mitä pitäisi muuttaa. Tämä voi olla hyödyllinen korjaamaan typo komennossa. Esimerkiksi seuraava komento toistaa edellisen komennon, korvaa tekstin "abc" tekstillä "xyz".

^ abc ^ xyz

Jos esimerkiksi suoritat vahingossa ping gogle.comin, voit suorittaa ^ gog ^ goog ja bash suorittaa komentotuloksen ping google.com sijaan.

Jos historia tallennetaan ja miten se poistetaan

Yhteyskuori tallentaa oletusarvoisesti käyttäjätunnuksesi historiatiedostoon käynnissä olevat komentojen historiat osoitteessa ~ /. bash_history. Jos esimerkiksi käyttäjänimesi on bob, tämä tiedosto löytyy /home/bob/. bash_history-tiedostosta.

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.

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

-historia -c

Bash muistaa vain rajoitetun määrän komentoja oletusarvoisesti estäen historiatiedoston kasvavan liian suureksi. Historia-syötteiden määrä muistuttaa muistin määrää HISTSIZEvariable. 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

Nykyisen istunnon aikana bash ei tallenna mitään historiatietoja, ellet aio suorittaa komentoa, kuten HISTSIZE = 1000, asettaa sen takaisin tiettyyn määrään merkintöjä.

Välilyöntien ja kaksoiskappaleiden ohittaminen

Bashin avulla voit ohittaa historiatiedot, jotka alkavat avaruudella, jos asetat HISTCONTROLvarkauden ohitettuun tilaan.

HISTCONTROL = sivuutettu tila

Kirjoita tilaa ennen komentoa ennen sen suorittamista bash-kuviossa 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 asettamalla HISTCONTROL sivuuttamattomiin.

HISTCONTROL = ohittamattomat

Käyttääksesi sekä ohittamattomia että ohittamattomia ominaisuuksia, aseta HISTCONTROL-muuttuja huomiotta.

HISTCONTROL = ignoreboth

Huomaa, että asetetut bash-muuttujat pysyvät vain nykyiselle istunnolle. 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.

Yhteishuone on monimutkainen työkalu, jolla 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ää.