Om du spenderar mycket tid på Linux, är det meningsfullt att lära dig hur du optimerar användningen av kommandoradsalternativen - speciellt den tid du spenderar i att skriva i kommandon. De flesta Linux-användare är bekant med den grundläggande Linux-kommandoradshistoriken. Det enklaste sättet att undvika att skriva ett kommando är att slå upp pilknappen tills du hittar ditt kommando, eller att använda det enkla !! för det senast utförda kommandot. Idag visar vi dig några relativt okända och ändå effektiva sätt att använda Linuxhistorik för att påskynda hur du jobbar.

Utöka den ödmjuka !! att jobba för dig

Säg att du körde ett kommando som krävde root privilegium, men du glömde att göra en sudo . Snarare än att skriva ut det igen, eller navigera upp och sedan lämna, så här är vad du kan göra

 $ touch build_04052014.tgz touch: kan inte röra 'build_04052014.tgz': Tillstånd nekad $ sudo !! sudo röra new_binary [sudo] lösenord för richa: 

Om du vill spara det föregående kommandot i ett nytt skript, så kan du göra det utan att behöva skriva ut det

 $ touch build_04052014.tgz $ echo !! > script1.sh $ cat script1.sh peka build_04052014.tgz 

Sök och kör kommando från historia

Att ha tillgång till det sista körkommandot har begränsad användning. Ibland vill du söka igenom historien för att hitta ett obskyrligt eller riktigt stort kommando du hade skrivit ut. En enkel ![keyword] sökning låter dig komma åt den. Till exempel hade du ett stort kommando som du skulle köra på morgonen, och du kommer inte helt ihåg de alternativ du gav, men du vill fortfarande köra den igen. Om det här är vad en skärmdump av din historia från den tiden var:

Så hur kör du det här kommandot igen? Bara gör:

 $! gör gör brutus.mk && tar brutus / * brutus.tgz && cp brutus.tgz ../output Building .... 

Så här överför du ett argument från föregående kommando

Ibland kanske du inte vill utföra ett tidigare kommando, men bara överföra argumentet. Du kan använda operatören " !$ " Som visas nedan.

Om det var flera argument till ditt tidigare kommando, och du bara vill få tillgång till det första, kan du använda " !^ "

 $ 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 

För att komma åt argumentnummer x, använd bara " ![prev_command]:[argument_number] ". Exemplet nedan visar det tydligare.

 $ 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 

Vad händer om du har något kommando du vill inte dyka upp i historien alls - om du bara vill ta bort dubbletter och ha en renare historia. Du kan ställa in miljövariabeln HISTCONTROL för att hantera detta. Så här gör du det.

 $ export HISTCONTROL = raderade 

Förhindra att ett kommando uppträder i historien

Ibland kan du förhindra att enkla kommandon formulär som visas i historiken, som " ls " eller " pwd ". I sådana fall kan du förhindra att de visas i historiken genom att använda kommandot HISTCONTROL igen, som vi gjorde i ovanstående exempel. Det är dock vanligtvis inte en bra idé att dölja ett kommando från att visas i historiken.

För att dölja ett kommando måste du först ställa in HISTCONTROL för att ignorera mellanslag, dvs ignorera alla kommandon som börjar med rymden. Sedan när du skriver kommandot, se till att du lägger till ett extra utrymme innan du skriver. Detta förhindrar att historiken kommer ihåg kommandot.

 $ export HISTCONTROL = ignorespace 

Bara om det är någon konstig anledning kan du helt och hållet stänga av din Linux-historia. För att göra det kan du använda följande kommando:

 $ export HISTSIZE = 0 

Om du söker efter din historia nu blir den tom. Observera att kommandot HISTSIZE också kan användas för att ändra storleken på din historik. Om du vill spara flera kommandon i historiken öppnar du .bash_profile- filen i din hemkatalog och ändrar HISTSIZE (gör den större eller mindre).

Bildkredit: bash command-line linux shell terminal, Introduktion till Command Line-omslaget