В настоящее время у вас запущена оболочка (TENEX )C shell, в которой нет команды export
. Вы не можете source
использовать сценарий Bourne Again или POSIX в оболочках C. Синтаксис оболочки C отличается от синтаксиса оболочки Bourne/POSIX.
Для добавления этих переменных среды в вашу интерактивную оболочку используется команда оболочки C setenv
. Автоматическое выполнение этого для оболочек входа включает скрипт ~/.login
оболочки C.
Инструкции по ручной установке на самом деле просто говорят: «Добавьте эти переменные в вашу среду выполнения». Оболочка Bourne Again — это просто «например». Очевидно, что если вы не используете оболочку Bourne Again, а это явно не так, то вы делаете то, что соответствует вашему фактическому выбору оболочки.
Единственная опция, необходимая для обрезки всех дубликатов, это histignorealldups
, и она уже установлена, так что да, дубликаты удаляются
but from memory
И вы просматриваете историю, хранящуюся в файле(cat $HISTFILE
).
Запустите новый экземпляр zsh, сотрите все записи истории и выполните некоторые команды
% zsh -i
% a=( $(setopt) )
% unsetopt $a
% HISTSIZE=0
% HISTSIZE=99
% history
95 HISTSIZE=99
% setopt INC_APPEND_HISTORY
% ls >/dev/null
% clear
% ls >/dev/null
% history
113 HISTSIZE=99
114 history
115 setopt INC_APPEND_HISTORY
116 ls >/dev/null
117 clear
118 ls >/dev/null
Теперь можно установить опцию histignorealldups
и все дубликаты исчезнут (из памяти):
% setopt histignorealldups
% history
113 HISTSIZE=99
115 setopt INC_APPEND_HISTORY
117 clear
118 ls >/dev/null
122 setopt histignorealldups
Но это не значит, что строки были стерты из файла истории:
% cat ~/.histfile | tail -n 10
setopt INC_APPEND_HISTORY
ls >/dev/null
clear
ls >/dev/null
history
setopt histignorealldups
history
setopt histignorealldups
history
cat ~/.histfile | tail -n 10
Чтобы удалить дубликаты из файла, вам придется отредактировать файл.
Я рекомендую вам этого не делать, так как история может совместно использоваться несколькими экземплярами zsh, работающими параллельно. Это не тривиальная проблема.
Добавьте следующие строки в ваш файл ~/.zshrc
, чтобы избежать повторов в истории
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_FIND_NO_DUPS
setopt HIST_SAVE_NO_DUPS