Du kanske känner till den grundläggande användningen av historik-kommandot, men det kan göra mycket mer än så. Bash-historik lagras vanligtvis i filen ~ /.bash_history. Det gör det möjligt för dig att återkalla och återanvända den lagrade posten på ett effektivt sätt för att få ut det mesta av bash history sparingsfunktionen. Inte bara detta, men du kan också anpassa och kontrollera bash-kommandoutgången på det sätt du vill.
I den här artikeln kommer vi att förklara hur man effektivt använder och anpassar bash-kommandohistoriken för att få ut det mesta av dess funktioner.
Vi har använt Debian 10 för att köra kommandon och proceduren som nämns i den här artikeln.
Använda bash-kommandohistorik
1. Visar bash-historien
För att se hela historiken för skalkommandon kan du köra följande kommando i Terminal:
$ historiaDen listar hela historiken för en specifik användare från historikfilen som lagras specifikt för den användaren. Du kommer att se alla kommandon som börjar med ett nummer som tilldelats var och en av dem. Den kommer att lista de äldre kommandona högst upp med nummer 1 och de nyare kommandona längst ner.
2. Söka i historikutgången
Du kan också söka efter ett specifikt nyckelord från historikutgången. Para ihop kommandot historik med grep och ett specifikt nyckelord för att söka efter kommandon som matchar ditt angivna nyckelord enligt följande:
$ historia | grep [nyckelord]Om du till exempel vill lista alla kommandon som innehåller nyckelordet "hitta" skulle kommandot vara:
$ historia | grep hitta
3. Visar senaste n-kommandon
Historik-kommandot listar som standard det senaste 1000 antalet kommandon som körs av en användare. Om du bara vill lista ett specifikt nummer, låt oss säga n antalet senast utförda kommandon, kör följande kommando i Terminal:
$ historia nTill exempel, för att lista de senaste 7 exekverade kommandona, skulle kommandot vara:
$ historia 7För att se antalet sista kommandon för n körning som innehåller ett specifikt nyckelord kan du använda följande syntax:
$ historia | grep nyckelord | svans -nEtt exempel på detta skulle vara att visa de fyra senaste kommandona med nyckelordet "java".
$ historia | grep java | svans -n
4. Visar äldsta kommandon
För att se det äldsta antalet kommandon kan du använda följande syntax i Terminal:
$ historia | huvud -nFör att visa det äldsta antalet kommandon som innehåller ett specifikt nyckelord, använd följande syntax:
$ historia | grep nyckelord | head -nEtt exempel på detta skulle vara att visa de äldsta 4 utförda kommandona med nyckelordet "java".
$ historia | grep java | huvud -4
5. Rensa Bash-historien helt
För att ta bort hela bash-historiken, kör följande kommando i Terminal:
$ historia -cwAnpassa bash-kommandohistorik
För att anpassa bash-kommandohistoriken måste vi göra ändringar i ~ /.bashrc-fil. För att redigera ~ /.bashrc-fil, använd följande kommando:
$ nano ~ /.bashrcNär du är klar med att ändra filen använder du Ctrl + O och Ctrl + X för att spara och stänga nano-redigeraren.
Kör sedan följande kommando för att tillämpa ändringarna:
$ källa ~ /.bashrc1. Lägg till datum och tidsstämpel i Bash History
Om du vill visa datum och tidsstämpel tillsammans med kommandohistoriken kan du göra det genom att lägga till följande rad i ~ /.bashrc:
$ export HISTTIMEFORMAT = '% F,% T'Kör nu historia kommandot och det visar kommandohistoriken med motsvarande data och tidsstämpel.
2. Ökande storlek på Bash History
Bash håller som standard 500 kommandon i historiklistan. Vi kan dock ändra detta värde med hjälp av HISTSIZE-värdet.
För att se den aktuella storleken på bash-historiken, kör följande kommando i Terminal:
$ echo $ HISTSIZEPå samma sätt är standardstorleken för bash-historikfilen 500. Det är det maximala antalet poster som finns i historikfilen.
För att öka storleken på bash-historien, säg 10000, lägg till följande rader i ~ /.bashrc-fil:
$ HISTSIZE = 10000$ HISTFILESIZE = 10000
För att verifiera om bashistorikens storlek har ändrats framgångsrikt, kör följande kommandon i Terminal:
$ echo $ HISTSIZE$ echo $ HISTFILESIZE
3. Lägg till baskommandon i historikfilen
När en bash-session stängs kan du välja att skriva över eller lägga till kommandona i historikfilen med histappend-variabeln. För att se de aktuella inställningarna, kör följande kommando i Terminal:
$ shopt histappend"På" i utgången visar att alternativet histappend är aktiverat och kommandona läggs till i historikfilen istället för att skriva över. Medan ”av” visas är alternativet histappend inaktiverat och filen skrivs över.
Öppna ~ /.bashrc-fil och:
Lägg till följande rad om du vill lägga till kommandona i historikfilen istället för att skriva över:
$ shopt -s histappendEller lägg till följande rad om du vill inaktivera tilläggsalternativet och vill skriva över filen vid avslutningen:
$ shopt -u histappend4. Förvara Bash History omedelbart
Bash som standard sparar bara sessionen i bash-historikfilen när sessionen avslutas. För att ändra detta standardbeteende och göra det för att omedelbart spara varje kommando du har utfört kan du använda PROMPT_COMMAND.
Redigera ~ /.bashrc-fil och lägg till följande rad:
$ PROMPT_COMMAND = 'historia -a'Nu när du kör något kommando läggs det omedelbart till historikfilen.
5. Kontrollera Bash History
Vi kan styra hur bash sparar vår kommandohistorik genom variabeln HISTCONTROL. Vi kan specificera det för att ignorera dubbla poster och / eller för att ignorera poster med ledande vita utrymmen.
- ignorerar utrymme - eliminerar kommandon som börjar med en rymdhistoriklista.
- ignoredups - eliminera dubbla kommandon.
- ignoreboth - Aktivera både ignoredups och ignorespace
- erasedups- ta bort dubbletter från hela listan
För att tillämpa dessa funktioner, öppna ~ /.bashrc och lägg till följande rad med värden åtskilda av kolon på följande sätt:
$ export HISTCONTROL = ignorespace: ignoredups6. Ignorera specifika kommandon
Vi kan också styra vilka kommandon som ska ignoreras i historiken med hjälp av en variabel HISTIGNORE. Det är en kolonavgränsad lista över mönster där vi kan specificera alla kommandon som vi vill ignorera från historien.
Om vi till exempel inte vill lista de grundläggande kommandona som historik, ls, pwd-kommandon i historiklistan, lägger vi till följande rad i ~ /.bashrc-fil:
$ export HISTIGNORE = "historia: ls: pwd:"Med Linux bash-kommandohistorik kan du göra mycket mer än bara att upprepa de gamla kommandona. I den här artikeln har vi lärt oss hur man använder bash-historiken för att se kommandon som har utförts tidigare och också lärt oss att kontrollera hur bash sparar kommandot historik.