Master Linux Command History: 10 Powerful Tricks to Boost Efficiency
This guide explains how the Linux shell stores command history, how to view, search, repeat, and manage entries, and shows practical techniques—including timestamps, size limits, custom file names, and disabling history—to improve productivity and auditability.
1. Basic Principle
The Bash shell records each command in a buffer and writes it to .bash_history in the user’s home directory when the shell exits (e.g., on Ctrl+D). The buffer is what history manipulates, not the file directly.
2. Detailed Usage
(1) Basic Usage
Show all recent commands: history Show the last N entries: history 10 Force‑save the buffer to the file: history -w Clear the buffer without affecting the file: history -c (2) Repeating Commands
Execute a specific entry by number: !1024 Repeat the previous command: !! Repeat the Nth last entry using a negative index: !-6 (3) Searching History
Run the most recent command that starts with a string: !curl Preview the command without executing (safe mode): !curl:p Search for any command containing a substring: !?sina (4) Interactive Search
Press Ctrl+R and type a keyword; repeat Ctrl+R to cycle through matches, then press Enter to run the selected command.
(5) Repeating the Last Command (Various Shortcuts)
!! !-1 Ctrl+p Uparrow Ctrl+R (interactive)
(6) Adding Timestamps
Set HISTTIMEFORMAT to include date and time, then run history to see timestamps. Example:
export HISTTIMEFORMAT='%F %T '
history 3
46 2021-04-18 15:21:33 curl baidu.com
47 2021-04-18 15:21:35 pwd
48 2021-04-18 15:21:39 history 3More detailed formats can embed host and user information.
(7) Controlling History Size
Current buffer size: echo $HISTSIZE Increase buffer entries (e.g., to 10000): export HISTSIZE=10000 Limit the file size with HISTFILESIZE.
Persist changes by appending to ~/.bash_profile and sourcing it.
(8) Changing the History File Name
Set HISTFILE to a custom path, e.g.:
echo "export HISTFILE=/data/backup/chopin.bash_history" >> ~/.bash_profile
source ~/.bash_profile(9) Disabling History
Set both size variables to zero:
echo "export HISTSIZE=0" >> ~/.bash_profile
echo "export HISTFILESIZE=0" >> ~/.bash_profile
source ~/.bash_profile(10) Hacker Trick
Prefix a command with a space; if HISTCONTROL includes ignorespace, the command will not be recorded.
3. Summary
The history command and its related environment variables ( HISTSIZE, HISTFILESIZE, HISTTIMEFORMAT, HISTCONTROL, etc.) provide powerful ways to view, repeat, search, and audit Linux command usage. Proper configuration makes the shell more efficient, secure, and audit‑friendly.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Liangxu Linux
Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
