EDIT: This apparently needs to be configured - setting HISTCONTROL=ignorespace
I hope and presume they had much better monitoring than scanning bash history, but I'm not bet-my-career confident of that.
bash has an "audit" function which is normally compiled out.
https://git.savannah.gnu.org/cgit/bash.git/tree/configure#n1...
When enabled it logs to syslog.
Instead, the Kernel has built in functionality called Auditd[0], which is capable of logging any and all executions, file or socket accesses, and much more. Along with included tooling for quickly finding and alerting on events[3].
Further, if terminal logging or playback is really required (usually not), it's generally done through pam with tlog[1]. Red Hat 8 and above come with built-in tlog support[2].
[0] https://access.redhat.com/documentation/en-us/red_hat_enterp...
[1] https://github.com/Scribery/tlog/blob/main/README.md
[2] https://access.redhat.com/documentation/en-us/red_hat_enterp...
I will type fc, save to a file (script) and then delete all lines before exiting the default EDITOR, e.g., %d in vi. This prevents the commands from being re-executed when I exit vi.
Also I sometimes use # combined with a semicolon to disable portions of command lines, e.g., early commands ;# late commands. I might cut and paste from one entry in the history into another one. Or I might fc -l 1 > file and edit the file down the the entries that form the starting point for a new script. By far, the shell is the most useful REPL for me.
There is no shortage of comments online praising the utility of the REPL concept but the only comment I have ever seen about fc was from a shell implementor/maintainer; it was negative. I use fc all the time. It has become essential for me to use the shell effectively as a REPL.
That behavior can be modified with the HISTSIZE environment variable.
> The maximum number of commands to remember on the history list. If the value is 0, commands are not saved in the history list. Numeric values less than zero result in every command being saved on the history list (there is no limit). The shell sets the default value to 500 after reading any startup files.
https://www.gnu.org/software/bash/manual/html_node/Bash-Vari...
echo "export PROMPT_COMMAND='history -a;history -r;export HISTFILE=-1;export HISTFILESIZE=-1;shopt -s histappend'" > .bashrc
cp .bashrc /etc/profileIt will prefix your current commandline with a '#' and "run" it.
I tried a naive way by trapping sigint but couldn't get it to work.
If you’ve written a command but realize you don’t want to run it right now but want to save it in your history you can just put a `#` in front of it (ctrl-a #) making it a comment and allowing you to save it in your history without running it.
When you’re ready to run it you find it and remove the preceding `#`