7 Tips – Tuning Command Line History in Bash

7 Tips – Tuning Command Line History in Bash

 

7 Tips that can help you to improve you Bash history file.

You will learn how to add date and time to bash history file, increase history size, ignore specific commands and much more …

Every command that you enter, is stored in the file ~/.bash_history. Run history to see your last commands.

You can improve your Bash history, appending different environment variables to your ~/.bashrc file.

After modifying ~/.bashrc file, execute the following command to apply changes:

source ~/.bashrc

1. Add Date and Time to Bash History

Sometimes it would be very nice to know when some command got executed.

Set HISTTIMEFORMAT to print the time stamps associated with each history entry.

Append the following line to ~/.bashrc file:

export HISTTIMEFORMAT="%h %d %H:%M:%S "

Now, when you type history, it will show something like:

113  Jun 08 16:31:06 sudo ifconfig
114  Jun 08 16:31:10 top
115  Jun 08 16:31:19 ping 8.8.8.8
116  Jun 08 16:31:22 history

2. Increase Bash History Size

Increase HISTSIZE – the number of commands to remember in the command history (the default value is 500).

export HISTSIZE=10000

Increase HISTFILESIZE – the maximum number of lines contained in the history file (the default value is 500).

export HISTFILESIZE=10000

3. Append Bash Commands to History File

Bash overwrites .bash_history file?

To append commands to the history file, rather than overwrite it, add the following line to ~/.bashrc:

shopt -s histappend

4. Store Bash History Immediately

By default, Bash only records a session to the .bash_history file when the session terminates.

This means that if you crash or your session terminates improperly, you lose the history up to that point.

Use $PROMPT_COMMAND variable to save each command right after it has been executed.

Append the following line to ~/.bashrc file, if the variable $PROMPT_COMMAND hasn’t been set yet:

PROMPT_COMMAND='history -a'

Append the following line, if the variable $PROMPT_COMMAND has already been set:

PROMPT_COMMAND='$PROMPT_COMMAND; history -a'

5. Control Bash History

HISTCONTROL is a colon-separated list of values controlling how commands are saved in the history file.

ValueDescription
ignorespace don’t save lines which begin with a <space> character
ignoredups don’t save lines matching the previous history entry
ignoreboth use both ‘ignorespace’ and ‘ignoredups’
erasedups eliminate duplicates across the whole history

Example:

export HISTCONTROL=ignorespace:erasedups

6. Ignore Specific Commands

HISTIGNORE is a colon-separated list of patterns used to decide which command lines should be saved in the history file.

Don’t save ls, ps and history commands:

export HISTIGNORE="ls:ps:history"

Don’t save commands with s in the beginig:

export HISTIGNORE="s*"

7. Use one command per line

Store multi-line commands in one history entry:

shopt -s cmdhist

Change the History File Name

Use HISTFILE to change the name of the file in which Bash history is saved. The default value is ~/.bash_history.

export HISTFILE=~/.custom_file
 
0 (0)
Article Rating (No Votes)
Rate this article
Attachments
There are no attachments for this article.
Comments
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
List of 10 Must Know Oracle Database Parameters for Database Administrator
Viewed 14908 times since Thu, Jun 21, 2018
AIX Increase paging space logical volume size
Viewed 1015 times since Tue, Jul 17, 2018
AIX - How to get Memory infomation
Viewed 1343 times since Fri, Jun 8, 2018
18 Quick ‘lsof’ command examples for Linux Geeks
Viewed 3073 times since Sun, Jun 30, 2019
Linux - How to monitor CPU usage
Viewed 763 times since Fri, Jun 8, 2018
Use inotify-tools on CentOS 7 or RHEL 7 to watch files and directories for events
Viewed 1701 times since Fri, Jul 27, 2018
A tcpdump Tutorial and Primer with Examples
Viewed 2174 times since Sun, Jun 17, 2018
UUIDs and Linux: Everything you ever need to know [Update]
Viewed 836 times since Tue, Jul 17, 2018
This document discusses a new feature implemented for JFS2 filesystems to prevent simultaneous mounting.
Viewed 1534 times since Sat, Jun 1, 2019
How to Register and Enable Red Hat Subscription, Repositories and Updates for RHEL 7.0 Server
Viewed 1653 times since Mon, Oct 29, 2018