Kotisivu » miten » Kuinka käytät Bash-historiaa Linux- tai macOS-terminaalissa

    Kuinka käytät Bash-historiaa Linux- tai macOS-terminaalissa

    Bash-kuori on vakio päätelaiteympäristö, joka sisältyy useimpiin MacOS: n mukana toimitettuihin Linux-jakeluihin, ja joka on käytettävissä asennettavaksi Windows 10 -käyttöjärjestelmään. Se muistaa kirjoittamasi komennot ja tallentaa ne historiatiedostoon. Luultavasti tiedät muutamia bash-historian perusteita, mutta se on paljon tehokkaampi kuin saatat ymmärtää.

    Pikanäppäimet

    Voit selata bash-historiaasi käyttämällä muutamia bashin monia hyödyllisiä pikanäppäimiä. Paina näitä pikakuvakkeita ja aiemmin käytetyt komennot näkyvät kehotteessa.

    • Nuoli ylöspäin tai Ctrl + P: Siirry historian aiempaan komentoon. Paina näppäintä useita kertoja kulkeaksesi taaksepäin käyttämiesi komentojen läpi.
    • Nuoli alas tai Ctrl + N: Siirry historian seuraavaan komentoon. Paina näppäintä useita kertoja kävelläksesi eteenpäin käytettyjen komentojen läpi.
    • Alt + R: Palauta muutokset historiaan vetämässäsi komennossa, jos olet muokannut sitä nykyisellä rivillä.

    Bashillä on myös erityinen "muistutus" -tila, jonka avulla voit etsiä aiemmin käyttämiäsi komentoja sen sijaan, että vieritit niitä yksitellen.

    • Ctrl + R: Palauta viimeinen komento, joka vastaa antamiasi merkkejä. Paina tätä pikakuvaketta ja aloita kirjoittamalla komentoasi bash-historiaan.
    • Ctrl + O: Suorita komento, jonka löysit Ctrl + R: llä.
    • Ctrl + G: Jätä historiahaku-tila ilman komentoa.

    Näytä Bash-historia

    Voit tulostaa koko bash-historian näyttöön suorittamalla yhden komennon:

    historia

    Näet luettelon kaikista bash-historian komennoista sekä numeron vasemmalla puolella. Komento, jonka vieressä on "1", on vanhin komento bash-historiassa, kun taas suurin numero on komento.

    Voit tehdä minkä tahansa haluamasi tuotoksen kanssa. Voit esimerkiksi siirtää sen grepkomento etsiä komentohistoriaasi.

    historia | grep your_search

    Voit myös siirtää sen pyrstö komennolla voit tarkastella vain pieniä määriä viimeisiä komentoja, joita olet suorittanut. Esimerkiksi seuraava komento näyttää historian viimeiset 5 merkintää.

    historia | häntä -5

    Suorita komennot historiastasi

    Bash voi nopeasti laajentaa aiempia komentoja tai laajentaa niitä ja muuttaa niitä. Tätä ominaisuutta kutsutaan nimellä ”historian laajennus” ja siinä käytetään huutomerkkiä, joka tunnetaan nimellä ”bang”. Kirjoita ne vain kehotteeseen ja paina Enter-näppäintä, jos haluat käyttää niitä, kuten muutkin komennot.

    Jos haluat suorittaa tietyn komennon historiastasi numeron perusteella, käytä seuraavaa komentoa:

    !#

    Oletetaan esimerkiksi, että halusit suorittaa 12. komennon bash-historiastasi. Tämä on komento, jonka vasemmalla puolella on "12" historia komento. Kirjoita seuraava komento.

    !12

    Voit suorittaa viimeisimmän komennon uudelleen kirjoittamalla seuraavan. Tällä on sama vaikutus kuin painamalla Ylös-nuolta kerran nähdäksesi edellisen komennon ja painamalla Enter-näppäintä.

    !!

    Voit myös viitata komentoon tietyn määrän rivejä takaisin. Esimerkiksi, !-2 suoritettaisiin toinen, viimeinen komento, jota käytit. !! tarkoittaa samaa kuin !-1 .

    Tämä laajennus toimii missä tahansa linjalla. Voit lisätä mitä haluat ennen tai jälkeen !! tai jokin muu tämän jakson ilmaisu. Voit esimerkiksi kirjoittaa seuraavan komennon, kun haluat suorittaa viimeisimmän komennon uudelleen sudo, antaa sille pääkäyttäjän oikeudet. Tämä on erityisen hyödyllistä, jos unohdat lisätä  sudo ennen komennon suorittamista.

    sudo !!

    Vaihtoehtoisesti voit esimerkiksi käynnistää edellisen komennon uudelleen ja siirtää sen lähdön grepiin, kun haluat etsiä tekstiä.

    !! | grep-teksti

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

    !teksti

    Joten, jos olet hiljattain suorittanut komennon, joka alkoi ping, voit suorittaa seuraavan komennon. Tämä etsii historiaasi taaksepäin, etsi uusin komento, joka alkaa sanallapii", Ja suorita se välittömästi:

    !pii

    Voit lisätä a : p johonkin yllä olevista laajennuksista ja bash tulostaa komennon päätelaitteelle ilman sitä. Tämä on hyödyllistä, jos haluat vahvistaa, että valitset oikean komennon ennen sen suorittamista.

    !12: p
    !!: p
    !teksti: p

    Käytä uudelleen argumentteja historiastasi

    Bash mahdollistaa myös uuden komennon suorittamisen, mutta käytä aikaisempien komentojen argumentteja historianne aikana. Tämä voi auttaa sinua käyttämään nopeasti tai monimutkaisia ​​argumentteja nopeasti uudelleen kirjoittamatta niitä uudelleen.

    komento! $

    Oletetaan esimerkiksi, että suoritit komennon kosketa / koti / chris / some_long_file_name_you_dont_want_to_type_again . Haluat nyt suorittaa komennon nano / koti / chris / some_long_file_name_you_dont_want_to_type_again. Sen sijaan, että kirjoitit koko asia tyhjästä, voit suorittaa:

    nano! $

    !$ bash täyttäisi automaattisesti viimeisen argumentin edellisestä komennostasi.

    Tämä täyttää vain viimeisen väitteen. Joten jos suoritat ping google.com -c 4 ja suorita sitten ping! $ , tämä laajenisi vain "ping 4”.

    Voit korjata tämän tilanteen käyttämällä seuraavaa temppua laajentaaksesi ensimmäisen argumentin rivillä sen sijaan, että viimeinen:

    komento! ^

    Jos siis juoksi ping google.com -c 4 ja sitten juoksi ping! ^ , bash laajenisi tämän "ping google.com ".

    Voit täyttää kaikki edellisessä komennossa käytetyt argumentit vain yhden argumentin sijasta seuraavasti:

    komento! *

    Jos siis juoksi ping! * sen sijaan bash täyttäisi automaattisesti kaikki edellisessä komennossa käytetyt argumentit.

    Voit käyttää samoja temppuja, joita käytät käskien suorittamiseen historiastasi saadaksesi niistä argumentteja. Käytä vain seuraavaa lomaketta.

    komento! abc: #

    Esimerkiksi käytiin komento sudo hostname ubuntu aikaisemmin. Jos suoritamme seuraavan komennon, bash etsii taaksepäin läpi historian löytääksesi viimeisen komennon, joka alkaa kirjaimillamme kirjaimilla ja täytä määrittämäsi argumentti. Joten jos ajaa echo! su: 2 , bash etsii takaisin löytääksesi viimeisen komennon, joka alkaa sanallasu”Ja täytä toinen väite, joka on”ubuntu”.

    Muut temput toimivat kuten odotat. Esimerkiksi korvaamalla numero tähdellä, joka tunnetaan nimellä wildcard, bash täyttää kaikki komentot komennosta:

    komento! abc: *

    Käynnistä aiempi komento uudelleen ja muokkaa sitä

    Bash-toiminnon avulla voit myös käynnistää edellisen komennon uudelleen ja määrittää jotain, jota pitäisi muuttaa. Tämä voi olla hyödyllinen komennossa olevan virheen korjaamiseksi. Esimerkiksi seuraava komento käynnistää edellisen komennon, joka korvaa tekstin ”ABC”Siinä tekstillä”xyz”.

    ^ Abc ^ xyz

    Esimerkiksi, jos käytit vahingossa ping gogle.com, voit sitten ajaa ^ GOG ^ goog ja bash suorittaisi komennon ping google.com sen sijaan.

    Jos historiasi on tallennettu ja miten se poistetaan

    Bash-kuori tallentaa käyttäjän tilin historiatiedostossa olleiden komentojen historian oletusarvoisesti osoitteessa ~ / .bash_history. Jos esimerkiksi käyttäjätunnuksesi on bob, löydät tämän tiedoston osoitteesta /home/bob/.bash_history.

    Koska historiasi on tallennettu tiedostoon, se jatkuu istuntojen välillä. Voit suorittaa joitakin komentoja, kirjautua ulos, palata seuraavana päivänä ja nämä komennot ovat edelleen historiatiedostossasi valmiina katselemiseen ja käyttöön. Jokaisella käyttäjätilillä on oma historiatiedosto, jossa on erillinen komentohistoria.

    Voit poistaa bash-historiasi suorittamalla seuraavan komennon. Tämä poistaa käyttäjän tilin .bash_history-tiedoston sisällön:

    historia -c

    Bash muistaa vain rajoitetun määrän komentoja oletusarvoisesti estäen historiatiedoston kasvavan liian suureksi. Historiallisten merkintöjen määrä bash muistelee, että HISTSIZEmuuttuja. Oletusarvo on yleensä 500 tai 1000 merkintää. Voit suorittaa seuraavan komennon nähdäksesi järjestelmän bash-historian koon.

    echo $ HISTSIZE

    Jos haluat asettaa historian nollaan, suorita seuraava komento.

    HISTSIZE = 0

    Nykyisessä istunnossa bash ei tallenna mitään historiatietoja, ellei komento suoriteta HISTSIZE = 1000 asettaa sen tiettyyn määrään merkintöjä.

    Kuinka ohittaa tilat ja kaksoiskappaleet

    Bash-toiminnolla voit jättää huomiotta historiatiedot, jotka alkavat välilyönnillä, jos asetat HISTCONTROLmuuttuja ignorespace.

    HISTCONTROL = ignorespace

    Kirjoita tila ennen komentoa, ennen kuin käynnistät sen bash-kuoressa, ja komento toimii normaalisti, mutta ei näy historiassa, jos sinulla on tämä muuttuja käytössä. Näin voit pitää historiasi hieman puhtaampana, valitsemalla komentoja ilman, että ne näkyvät historiassa.

    Bashin avulla voit myös ohittaa päällekkäiset komennot, jotka voivat häiritä historiaasi. Voit tehdä niin HISTCONTROL että ignoredups.

    HISTCONTROL = ignoredups

    Voit käyttää molempia ignorespace ja ignoredups ominaisuus, aseta HISTCONTROL muuttuja ignoreboth.

    HISTCONTROL = ignoreboth

    Huomaa, että asettamasi bash-muuttujat pysyvät voimassa vain nykyisessä istunnossa. Sinun on lisättävä nämä käyttäjätiliisi .bashrc-tiedostoon, jotta nämä arvot asetetaan automaattisesti jokaiselle käynnistyneelle bash-istunnolle, jos haluat, että.

    Bash-kuori on monimutkainen työkalu, jossa on monia muita vaihtoehtoja. Katso Bash History Builtins- ja History Expansion -osiosta yksityiskohtaisempia tietoja ja muita kehittyneitä temppuja, joita voit käyttää.