Mastering av Command Line History i Linux
Hvis du bruker mye tid på Linux, er det fornuftig å lære å optimalisere bruken av kommandolinjevalgene - spesielt tiden du bruker til å skrive inn kommandoer. De fleste Linux-brukere er kjent med Linux-kommandolinjens historie. Den enkleste måten å unngå å skrive ut en kommando på er å slå pil opp til du finner din kommando, eller å bruke den enkle !!
for den sist kjørte kommandoen. I dag vil vi vise deg noen relativt ukjente, men likevel effektive måter du kan bruke Linux-historie til å øke hastigheten på måten du jobber på.
Utvide den ydmyke! å jobbe for deg
Si at du kjørte en kommando som krevde root-privilegium, men du glemte å gjøre en sudo
. Snarere enn å skrive det ut igjen, eller navigere opp og deretter igjen, her er hva du kan gjøre
$ touch build_04052014.tgz touch: kan ikke røre 'build_04052014.tgz': Tillatelse nektet $ sudo !! sudo berør new_binary [sudo] passord for richa:
Hvis du vil lagre forrige kommando i et nytt skript, kan du gjøre det uten å måtte skrive det ut
$ touch build_04052014.tgz $ echo !! > script1.sh $ cat script1.sh trykk build_04052014.tgz
Søk og kjør kommandoen fra historien
Å ha tilgang til den siste kjørekommandoen har begrenset bruk. Noen ganger vil du søke gjennom historien for å finne en uklar eller virkelig stor kommando du hadde skrevet ut. Et enkelt ![keyword]
-søk lar deg få tilgang til det. For eksempel hadde du en stor kommando som du skulle kjøre om morgenen, og du husker ikke de alternativene du ga, men du vil fortsatt kjøre den igjen. Hvis dette er hva et skjermbilde av historien din fra den tiden var:
Så hvordan løper du den kommandoen igjen? Bare gjør:
$! gjør lage brutus.mk && tar brutus / * brutus.tgz && cp brutus.tgz ../output Building ....
Slik overfører du et argument fra forrige kommando
Noen ganger kan det hende du ikke vil utføre en tidligere kommando, men bare overføre argumentet. Du kan bruke operatøren " !$
" Som vist nedenfor.
Hvis det var flere argumenter til den tidligere kommandoen din, og du vil bare få tilgang til førstegangen, kan du bruke " !^
"
$ ls * .png * .txt * .tgz build_04052014.tgz OOO2.png out2.png unix.txt OOO1.png out1.png out3.png windows.txt $ ls -a! ^ ls -a * .png OOO1.png OOO2.png out1.png out2.png out3.png
For å få tilgang til argumentnummer x, bruk bare " ![prev_command]:[argument_number]
". Eksemplet under viser det tydeligere.
$ ls * .png * .txt * .tgz build_04052014.tgz OOO2.png out2.png unix.txt OOO1.png out1.png out3.png windows.txt $ ls -a! ls: 3 ls -a * .tgz build_04052014 .tgz
Hva om du har en kommando du ikke vil oppleve i historien i det hele tatt - hvis du bare vil fjerne duplikater og ha en renere historie. Du kan angi HISTCONTROL miljøvariabelen for å håndtere dette. Slik gjør du det.
$ eksport HISTCONTROL = slette opp
Forhindre en kommando fra å vises i historien
Noen ganger kan det være lurt å forhindre at enkle kommandoer formes i historien, som " ls
" eller " pwd
". I slike tilfeller kan du forhindre at de vises i historien ved hjelp av kommandoen HISTCONTROL, som vi gjorde i eksempelet ovenfor. Det er imidlertid vanligvis ikke en god ide å skjule en kommando fra å vises i historien.
For å skjule en kommando må du først sette HISTCONTROL for å ignorere mellomrom, dvs. ignorere alle kommandoer som starter med plass. Når du skriver inn kommandoen, må du sørge for å legge til ekstra plass før du skriver inn. Dette forhindrer historien i å huske kommandoen.
$ eksport HISTCONTROL = ignorespace
Bare i tilfelle av noen merkelig grunn, kan det være lurt å deaktivere Linux-historien din helt. For å gjøre det, kan du bruke følgende kommando:
$ eksport HISTSIZE = 0
Hvis du søker etter din historie nå, blir den tom. Merk at kommandoen HISTSIZE også kan brukes til å endre størrelsen på historien din. Hvis du vil lagre flere kommandoer i historien, åpner du .bash_profile- filen i din hjemmekatalog og endrer HISTSIZE (gjør den større eller mindre).
Bilde kreditt: bash kommandolinje linux shell terminal, Introduksjon til Command Line dekselet