С помощью клавиш со стрелками можно заполнить командную строку последними вызванными командами. Однако Bash вызывает все предыдущие команды, а не только уникальные команды.

$./a.out       //oldest command called
$ gcc main.c
$ gcc main.c
$ gcc main.c   //latest command called
$              //4 strokes required to call ./a.out, altough 2 would be sufficient

Есть ли способ игнорировать прошлые команды в списке истории, если они идентичны, и автоматически вызывать / заполнять следующую уникальную команду в истории?

Спасибо!

1 ответ1

2

Да, есть. Вы можете контролировать, как команды сохраняются в истории, с помощью переменной оболочки HISTCONTROL, все, что вам нужно сделать, это поставить строку

HISTCONTROL=erasedups

в вашем .bashrc. (Я предпочитаю erasedups, а не ignoredups, поскольку последняя команда, которую я набирал, всегда помещается поверх истории. Таким образом, мне не нужно смотреть, когда я хочу повторить последнюю набранную мной команду.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .