De commandoregelgeschiedenis onder de knie krijgen in Linux
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