Android

Historikkommando i Linux (bashistorik)

Администрирование Linux. Лекция 1

Администрирование Linux. Лекция 1

Innehållsförteckning:

Anonim

, kommer vi att prata om history , som låter dig se en lista med tidigare utförda kommandon, söka igenom listan och manipulera historikfilen.

Använda history kommando- och historiautvidgningar

history är ett skal inbyggt, och dess beteende kan variera något från skal till skal. Vi kommer att täcka den inbyggda Bash-versionen av history .

I den enklaste formen, när den åberopas utan något alternativ eller argument, visar historikkommandot hela historielistan med radnummer.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Att skriva !n kör det n-th-kommandot från historielistan och !-n kommandot raderar tillbaka. I följande exempel kör vi kommandot på rad 467 :

!467

Ett annat sätt att köra ett kommando är att använda !word expansion. word hänvisar till det senaste kommandot som börjar med 'word'.

Vanligtvis visar history många utmatningsrader som inte passar på skärmen. För att se utgången en sida i taget, rör den till ett personsökarprogram som more eller less kommando:

history | less

För att visa de sista n raderna, skicka numret som ett argument till kommandot. Om du till exempel bara vill visa de fem senaste raderna från historielistan skriver du:

history -5

Använd up och nedpiltangenterna för att navigera i posterna i listan. När kommandot du letat efter visas tryck på Enter att köra det.

Skriv !! för att köra det föregående kommandot:

!!

Detta är särskilt användbart när du glömmer att perpendera ett kommando med sudo , och istället för att skriva om kommandot kan du skriva:

sudo !!

!-1 är samma som !! och kör det sista kommandot från historielistan, ! !-2 sekund till sista, och så vidare.

^word1^word2^ expansion gör att du kan köra det sista kommandot igen och ersätta "word1" med "word2". Om du av misstag skrev sduo command istället för sudo command du upprepa kommandot med rätt ord med:

^sduo^sudo^

Använd grep kommandot för att filtrera utdata. Om du till exempel vill visa alla kommandon inklusive "nano" skulle du köra:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Om du nu vill köra kommandot nano setup.py bara:

!356

Ett annat sätt att söka igenom kommandohistoriken är genom att trycka på Ctrl-R . Frågan kommer att ändras till följande, och du kan börja söka efter ett tidigare utfört kommando.

(reverse-i-search)`':

Skalet visar en matchande rad. För att gå till nästa matchade förslag trycker du på Ctrl-R igen.

Se Bash-manualen för mer information om History Expansion, modifierare och designatorer.

Spara historielistan

Som standard läser Bash historielistan från .bash_history filen när du startar en ny session. Listan med kommandon som körs under den aktuella sessionen lagras i minnet och sparas i filen när sessionen är stängd.

Alternativet -a låter dig spara den aktuella .bash_history filen .bash_history :

history -a

Alternativet -w skriver hela historielistan till historikfilen.

history -w

Rensar historik

Med history kan du rensa hela historielistan eller ta bort vissa delar.

För att rensa historielistan använder du alternativet -c :

history -c

Om du vill radera en specifik rad eller rader mellan en start- och slutposition från historielistan använder du alternativet -d .

Om du till exempel vill ta bort raderna mellan 365 och 375 (inklusive de raderna) skriver du:

history -d 365 375

När ett negativt heltal används räknas raderna tillbaka från slutet av historielistan.

Kommandona ovan rensar historielistan, som finns i minnet, men tar inte bort poster från .bash_history filen på disken. För att rensa filen måste du skriva historielistan till filen:

history -c history -w

Ändra historia beteende

Bash-historiens beteende kan definieras med hjälp av flera olika miljövariabler. När du ändrar historikbeteendet ställer du in variablerna i ~/.bashrc eller någon annan konfigurationsfil som laddas när användaren loggar in.

Som standard håller Bash 500 rader i listan med kommandohistorik. HISTSIZE variabeln låter dig ändra detta värde. För att ställa in den till 10000 lägger du till följande rad i din .bashrc fil:

HISTSIZE=10000

HISTCONTROL accepterar en kolonnseparerad lista med värden som definierar hur kommandona sparas i historielistan:

  • ignorespace - kommandon som börjar med utrymme sparas inte i historielistan. ignoredups - duplicerade kommandon sparas inte. ignoreboth - är en kortfattning, inklusive både ignorespace och ignoredups .

HISTCONTROL=ignoreboth

När variabeln HISTTIMEFORMAT är inställd beror Bash på en tidsstämpel för körning för kommandot på varje rad.

Om du till exempel ställer in:

HISTTIMEFORMAT="%F %T: "

Historiken kommer att visas i följande format:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Slutsats

history visar en lista med tidigare utförda kommandon. Till exempel kan du använda historiken för att visa ett långt kommando som du använde tidigare som du inte kommer ihåg.

historia terminal