dirk postma

mijn aantekeningen . . .

101 - Bash history

Sep 20, 2016 - Comments - Linux

Inleiding

Linux kan alle uitgevoerde commando’s op de shell prompt bijhouden in een lijst. Dat is bijvoorbeeld handig voor je als commando’s nog een keer wilt uitvoeren, je hoeft ze dan niet weer in te typen maar kunt door een lijst bladeren of de lijst met uitgevoerde commando’s doorzoeken. Meestal staat deze functionaliteit aan.

History

Met het commando history kun je alle uitgevoerde commando’s bekijken. History

Datum en tijd

De lijst bevat geen inzicht in wanneer de commando’s zijn uitgevoerd. Die optie is er wel maar moet je zelf aanzetten. Edit .bashrc en voeg het volgende toe: export HISTTIMEFORMAT='%F %T '. Wanneer opnieuw wordt ingelogd dan zal de datum en tijd van de uitgevoerde commando’s worden bijgehouden.

History datum en tijd

Niet alles naar de historie

Het is vaak niet nodig alle uitgevoerde commando’s in de historie op te slaan. Voeg bijvoorbeeld dit export HISTIGNORE='ll:history:pwd:date:' toe aan .bashrc. De genoemde commando’s zullen nu niet meer aan de historie worden toegevoegd.

Historie beperken

Voeg HISTCONTROL=ignoreboth dit toe aan .bashrcom de opbouw van de historie verder te beperken. Effect hiervan is dat achter elkaar uitgevoerde dezelfde commando’s niet worden opgeslagen. Eveneens worden opdracht regels die beginnen met een spatie niet opgeslagen, bijvoorbeeld du wordt niet opgeslagen, maar du wel.

Met HISTCONTROL=ignoreboth:erasedups wordt de historie lijst uniek. Eerder uitgevoerde dezelfde commando’s worden verwijderd en maar één keer opgenomen in de lijst, namelijk de laatste keer. Om dit te laten werken moet HISTTIMEFORMAT uit staan.

Historie bestand

De historie wordt bewaard in een bestand in de home directory van de gebruiker, met als naam: .bash_history. Het bestand wordt bijgewerkt als een terminal sessie wordt afgesloten.

HISTSIZE en HISTFILESZIE

Met HISTSIZE wordt het aantal commando regels dat in het geheugen moet worden bewaard beïnvloed. export HISTSIZE=100 zorgt ervoor dat history maximaal 100 regels weergeeft. HISTFILESIZE regelt het aantal regels dat in het .bash_history wordt bewaard. export HISTFILESIZE=200 stelt het aantal regels op maximaal 200.

Historie in het geheugen opschonen

Met history -c wordt de historie in het geheugen opgeschoond. Aan het historie bestand veranderd niets, na uit- en inloggen is de historie uit het bestand weer geladen. Dus het opschonen is maar tijdelijk.

Zoeken in de historie

Doe <ctrl-r> en begin te typen. Vervolgens wordt het laatste uitgevoerde commando getoond dat overeenkomt met de ingetypte tekst.

.bashrc

Afhankelijk van je doel, kun je de opbouw van de historie configureren. Ik heb het nu op de volgende manier gedaan, hiermee wordt een lijst van unieke uitgevoerde commando’s bijgehouden, en niet zo zeer een lijst van uitgevoerde commando’s in de tijd.

# history configuratie
shopt -s histappend
HISTCONTROL=ignoreboth:erasedups
HISTSIZE=1000
HISTFILESIZE=1000

Bronnen

Linux


Tags: Linux history bash .bashrc

comments powered by Disqus