Когда я вставляю команду в командную строку OS X или Ubuntu с помощью Cmd V, команда не записывается в историю, даже если она выполняется. Команда в истории только если я ее наберу.
Как сделать так, чтобы вставленные команды попали в историю bash?
Когда я вставляю команду в командную строку OS X или Ubuntu с помощью Cmd V, команда не записывается в историю, даже если она выполняется. Команда в истории только если я ее наберу.
Как сделать так, чтобы вставленные команды попали в историю bash?
Существует директива ignorespace, которая не сохраняет команды с пробелами в начале строки, что возможно при вырезании и вставке. Существует директива ignoredups, которая сохраняет только самый ранний экземпляр команды, что может иметь место в случае, если у вас есть файл с длинной историей и вы уже использовали команду раньше. Но оба они не установлены на моем компьютере с OSX10.6, поэтому, если вы не включите его, это, вероятно, не объяснит вашу ситуацию.
Другой сценарий состоит в том, что вы подали на другого пользователя, что вполне может иметь место, если вы вырезаете и вставляете команды откуда-то еще, чтобы что-то исправить, например, когда вы выбываете из этого пользователя (обычно пользователя root) В этом контексте история bash недоступна, потому что она есть в истории привилегированного пользователя, а не в вашей.
Вы можете установить HISTCONTROL
на что-то еще, кроме ignorespace
или ignoreboth
.
set HISTCONTROL=ignoredups
будет работать.
У меня была эта проблема в KDE Konsole.
редактировать мой .bashrc, чтобы изменить
HISTCONTROL=ignoreboth
в
HISTCONTROL=ignoredups
починил это. Я предполагаю, что я, должно быть, хотел иметь удобное «не добавляйте его в мою историю, если я поставил пробел впереди» в прошлом, но сейчас я много копирую и вставляю между терминалами, и это становилось действительно раздражающим.