BASH-programmering

Använda och anpassa Bash Command History

Använda och anpassa Bash Command History
Bash-skalet är standardkommandoradsmiljön tillgänglig i de flesta Linux-distributioner. På samma sätt som i alla skalmiljöer registrerar den kommandon som tidigare har utförts av användaren. Denna post sparas och underhålls även om vi startar om vårt system.

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:

$ historia

Den 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 n

Till exempel, för att lista de senaste 7 exekverade kommandona, skulle kommandot vara:

$ historia 7

Fö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 -n

Ett 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 -n

För att visa det äldsta antalet kommandon som innehåller ett specifikt nyckelord, använd följande syntax:

$ historia | grep nyckelord | head -n

Ett 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 -cw

Anpassa 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 ~ /.bashrc

Nä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 ~ /.bashrc

1. 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 $ HISTSIZE

På 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 histappend

Eller lägg till följande rad om du vill inaktivera tilläggsalternativet och vill skriva över filen vid avslutningen:

$ shopt -u histappend

4. 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.

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: ignoredups

6. 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.

Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...
Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...
Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...