Als u veel tijd besteedt aan het werken aan Linux, is het logisch om te leren hoe u uw gebruik van de opdrachtregelopties kunt optimaliseren - vooral de tijd die u besteedt aan het typen van opdrachten. De meeste Linux-gebruikers zijn bekend met de standaard Linux-opdrachtregelhistorie. De eenvoudigste manier om te voorkomen dat u een commando typt, is door op de pijl-omhoogtoets te drukken totdat u uw opdracht vindt, of om het eenvoudige te gebruiken !! voor de laatst uitgevoerde opdracht. Vandaag laten we u een paar relatief onbekende en toch effectieve manieren zien waarop u de geschiedenis van Linux kunt gebruiken om uw manier van werken te versnellen.

Verleng de nederige !! om voor u te werken

Stel dat u een opdracht uitvoerde waarvoor rootprivilege was vereist, maar u bent vergeten een sudo te doen. In plaats van het opnieuw uit te typen, of omhoog te navigeren en vervolgens naar links te gaan, hier is wat je kunt doen

 $ touch build_04052014.tgz touch: kan 'build_04052014.tgz' niet aanraken: Toestemming geweigerd $ sudo !! sudo touch new_binary [sudo] wachtwoord voor richa: 

Als u de vorige opdracht in een nieuw script wilt opslaan, kunt u dat als volgt doen, zonder dat u het hoeft te typen

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

Zoek en voer het commando uit de geschiedenis uit

Toegang hebben tot de laatste opdracht run heeft beperkt gebruik. Soms zou je de geschiedenis willen doorzoeken om een ​​obscuur of heel groot commando te vinden dat je hebt getypt. Een eenvoudige zoekopdracht ![keyword] u toegang. U had bijvoorbeeld een groot commando dat u 's ochtends zou uitvoeren en u herinnert zich niet precies welke opties u heeft gegeven, maar u wilt het nog steeds opnieuw uitvoeren. Als dit is wat een screenshot van uw geschiedenis uit die tijd was:

Dus hoe voer je dat commando opnieuw uit? Gewoon doen:

 $ make make brutus.mk && tar brutus / * brutus.tgz && cp brutus.tgz ../output Gebouw .... 

Hoe een argument over te dragen van het vorige commando

Soms wil je misschien een eerdere opdracht niet uitvoeren, maar draag je gewoon het argument over. U kunt de operator " !$ " Gebruiken, zoals hieronder wordt weergegeven.

Als er meerdere argumenten zijn voor uw eerdere opdracht en u alleen toegang wilt tot de eerste, kunt u " !^ " Gebruiken

 $ 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 

Om toegang te krijgen tot argumentnummer x, gebruikt u gewoon " ![prev_command]:[argument_number] ". Het onderstaande voorbeeld laat het duidelijker zien.

 $ 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 

Wat als u een of ander bevel heeft dat u helemaal niet in de geschiedenis wilt verschijnen - als u alleen duplicaten wilt verwijderen en een schonere geschiedenis wilt hebben. U kunt de omgevingsvariabele HISTCONTROL instellen om dit aan te pakken. Hier is hoe het te doen.

 $ export HISTCONTROL = gewiste ups 

Voorkom dat een opdracht in de geschiedenis verschijnt

Soms wilt u misschien voorkomen dat eenvoudige opdrachten in de geschiedenis verschijnen, zoals " ls " of " pwd ". In dergelijke gevallen kunt u voorkomen dat ze in de geschiedenis verschijnen door opnieuw de opdracht HISTCONTROL te gebruiken, zoals in het bovenstaande voorbeeld. Het is echter meestal geen goed idee om een ​​commando te verbergen voor weergave in de geschiedenis.

Om een ​​commando te verbergen, moet je eerst de HISTCONTROL instellen om spaties te negeren, dwz alle commando's negeren die beginnen met spatie. Wanneer u vervolgens de opdracht typt, moet u een extra spatie toevoegen voordat u typt. Dit voorkomt dat de geschiedenis de opdracht onthoudt.

 $ export HISTCONTROL = ignorespace 

Voor het geval dat om een ​​of andere vreemde reden, wil je misschien je Linux geschiedenis volledig uitschakelen. Om dit te doen, kunt u de volgende opdracht gebruiken:

 $ export HISTSIZE = 0 

Als u nu naar uw geschiedenis zoekt, is deze leeg. Merk op dat de opdracht HISTSIZE ook kan worden gebruikt om de grootte van uw geschiedenis te wijzigen. Als u meer opdrachten in de geschiedenis wilt opslaan, opent u het .bash_profile- bestand in uw basismap en wijzigt u de HISTSIZE (groter of kleiner maken).

Afbeelding credit: bash command-line linux shell terminal, Inleiding tot de opdrachtregel