Your bash session keeps thousands of commands available with the up arrow, but after logging out and back in only the last few hundred survive. Which variable governs how many lines are kept in ~/.bash_history when the shell exits?
LPIC-1 Exam 101-500, objective 103. GNU and Unix commands hard
Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.
Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.
How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.
The options
Correct HISTFILESIZE
Correct. When the shell exits it truncates the history FILE to at most HISTFILESIZE lines. That is the limit that decides what survives a logout.
Not correct HISTSIZE
Wrong for this symptom. HISTSIZE caps the in-memory history list of the running shell, which is what the up arrow and the history command walk through. It does not truncate the file.
Not correct HISTFILE
Wrong. HISTFILE names the file the history is saved to and read from — normally ~/.bash_history. It sets the location, not a size.
Not correct HISTCONTROL
Wrong. HISTCONTROL decides which commands are recorded at all: ignorespace drops lines starting with a space, ignoredups drops repeats, ignoreboth does both.
Why
Bash keeps two separate limits. HISTSIZE bounds the list held in memory for the current session; HISTFILESIZE bounds the file after the shell writes it out and truncates it on exit. Setting one large and the other small produces exactly the reported behaviour: a long history while the session lives, a short one after it ends. Both belong in ~/.bashrc if the change is to be permanent.
Where this comes from
- Cited
- manual page bash(1)
Practise this
Reading one question is not practice. The trainer will draw a short set from objective 103 and space the ones you get wrong.
More questions on this objective
- A user starts a new terminal window in a running graphical desktop session, which launches bash as an interactive shell that is NOT a login shell. Which file in the user's home directory does bash read in that case? machine-checked
- In bash, which history expansion re-runs the entire previous command line? machine-checked
- Which bash command prints the literal five characters $USER instead of the current user name? machine-checked
- You want /opt/bin searched for executables, after all the directories already in PATH, in the current bash session and in every command started from it. Which command does that? machine-checked
- There is a passwd manual page in section 1 (the command) and another in section 5 (the /etc/passwd file format). Which command opens the section 5 page? machine-checked
- Select the TWO true statements about shell variables and the environment in bash. machine-checked