У меня была постоянная проблема, которая, кажется, специфична для OS X и Terminal.app: периодически я получаю мусор в моей истории tcsh, который выглядит так:
^[[1m^[[4mcomputername:~/Code/emacs-source ( 1827 ) $^[[0m^[[24m logout
Каким-то образом моя подсказка (включая управляющие символы разметки) сохраняется как часть истории команд. В моем файле .history поврежденные команды повторяются с тем же номером команды:
#+1391563259
[1m[4mcomputername:~/Code/emacs-source ( 1827 ) $[0m[24m
#+1391563259
Use "logout" to logout.
#+1391563259
[1m[4mcomputername:~/Code/emacs-source ( 1827 ) $[0m[24m logout
Похоже, это результат закрытия окон и вкладок Terminal.app, но я не уверен, почему. Чтобы это исправить - поскольку у меня включено объединение истории - мне пришлось прибегнуть к закрытию всех сеансов tcsh и удалению поврежденных команд из .history. Есть ли способ предотвратить это в первую очередь?
macos
terminal
command-line
unix
Ашер Л.
источник
источник
Ответы:
Вы вырезаете / вставляете команды и случайно получаете некоторые из ваших подсказок?
Это не совсем тот ответ, который вы ищете, но добавьте sed -i.bak -e "s / \ x1b [[0-9;] {1,5} m // g" .history в свой .logout или cron it и вам не нужно снова чистить его вручную.
источник
Я забыл об этой проблеме, но вот обновление. Функция слияния в tcsh не является атомарной, поэтому одновременное закрытие нескольких сеансов может привести к повреждению файла истории:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=632892
Я не знаю, было ли это исправлено или будет исправлено; Я наконец сыт по горло этим и другими проблемами tcsh и переключился на bash.
источник