6

Когда я вставляю команду в командную строку OS X или Ubuntu с помощью Cmd V, команда не записывается в историю, даже если она выполняется. Команда в истории только если я ее наберу.

Как сделать так, чтобы вставленные команды попали в историю bash?

3 ответа3

5

Существует директива ignorespace, которая не сохраняет команды с пробелами в начале строки, что возможно при вырезании и вставке. Существует директива ignoredups, которая сохраняет только самый ранний экземпляр команды, что может иметь место в случае, если у вас есть файл с длинной историей и вы уже использовали команду раньше. Но оба они не установлены на моем компьютере с OSX10.6, поэтому, если вы не включите его, это, вероятно, не объяснит вашу ситуацию.

Другой сценарий состоит в том, что вы подали на другого пользователя, что вполне может иметь место, если вы вырезаете и вставляете команды откуда-то еще, чтобы что-то исправить, например, когда вы выбываете из этого пользователя (обычно пользователя root) В этом контексте история bash недоступна, потому что она есть в истории привилегированного пользователя, а не в вашей.

4

Вы можете установить HISTCONTROL на что-то еще, кроме ignorespace или ignoreboth .

set HISTCONTROL=ignoredups будет работать.

1

У меня была эта проблема в KDE Konsole.

редактировать мой .bashrc, чтобы изменить

HISTCONTROL=ignoreboth

в

HISTCONTROL=ignoredups

починил это. Я предполагаю, что я, должно быть, хотел иметь удобное «не добавляйте его в мою историю, если я поставил пробел впереди» в прошлом, но сейчас я много копирую и вставляю между терминалами, и это становилось действительно раздражающим.

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