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 grep
komento 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ä HISTSIZE
muuttuja. 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 HISTCONTROL
muuttuja 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ää.