Por que os comandos que começam com um espaço não aparecem no histórico bash? [duplicado]

-1

No bash, quando eu uso Ctrl-R para recuperar um comando anterior, por que ele não funciona quando o comando começa com um espaço em branco? Posso fazer com que corresponda a um comando anterior?

$  date
Fri Nov 23 ... 2018
(failed reverse-i-search)' date': cd database/
    
por Ben 23.11.2018 / 16:06

2 respostas

4

Verifique o valor da sua variável de ambiente HISTCONTROL . Se o valor contiver ignorespace ou ignoreboth , qualquer comando que comece com um espaço não será adicionado ao histórico de comandos.

De man bash :

HISTCONTROL: A colon-separated list of values controlling how commands are saved on the history list. If the list of values includes ignorespace, lines which begin with a space character are not saved in the history list. A value of ignoredups causes lines matching the previous history entry to not be saved. A value of ignoreboth is shorthand for ignorespace and ignoredups. A value of erasedups causes all previous lines matching the current line to be removed from the history list before that line is saved. Any value not in the above list is ignored. If HISTCONTROL is unset, or does not include a valid value, all lines read by the shell parser are saved on the history list, subject to the value of HISTIGNORE. The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of HISTCONTROL.

    
por 23.11.2018 / 16:16
1

Isso é pretendido. O espaço em branco não altera a interpretação do comando. O histórico ignora o comando que começa com um espaço, para que você possa inserir comandos que não deseja que estejam registrados. Agora muito seguro, como alguém na mesma máquina, pode espionar quando você faz isso.

Acho que pode ser reconfigurado. Veja o bash-manual, no histórico.

    
por 23.11.2018 / 16:11

Tags