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.
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.
Bashilla on myös erityinen "muistutustila", jolla voit etsiä aikaisemmin suorittamiasi komentoja, eikä vieritä niitä yksitellen.
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 grep
komento 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
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
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: *
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.
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 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ä.
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 HISTCONTROL
että 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ää.