Как исключить некоторые команды из того, чтобы быть сохраненным в истории TCSH?

Давно я записал патч ядра (к 2.2.ancient), где попытка удалить файл под названием САМОЛИКВИДИРУЕТСЯ, уничтожил обработку вызовов. Это приняло меры против случайной "комнаты-rf *".

3
22.05.2011, 18:36
3 ответа

Если Вы имеете в виду что-то как переменные в ударе, HISTCONTROL и HISTIGNORE, где

HISTCONTROL=ignorespace не загружает в Вашу историю команды, которой предшествует пространство и

HISTIGNORE=ls:cd:exit предотвращает все перечисленные команды, добавляемые к Вашей истории, затем нет - что функциональность не находится исходно в tcsh.

2
27.01.2020, 21:11
  • 1
    Действительно?? Ничего себе - это - довольно большой недостаток к tcsh, по моему скромному мнению... Какие-либо идеи как, как можно было бы работать вокруг этого? расширения –  TCSGrad 22.05.2011, 14:41
  • 2
    @shan23: tcsh является старой оболочкой, которая не видела много разработки в некоторое время. Tcsh был усовершенствованной оболочкой в 1980-х, но он был с тех пор превзойден ударом и zsh. –  Gilles 'SO- stop being evil' 22.05.2011, 18:39
  • 3
    За исключением, поскольку Gilles сообщает, перемещаясь в современную оболочку, нет. –  jasonwryan 23.05.2011, 07:01
  • 4
    @Giles - Вы подразумеваете эту функцию, которую я ищу, поддерживается в zsh? Если так, можно ли дать связывание/сообщение мне, как это может быть включено в zsh? –  TCSGrad 23.05.2011, 07:14
  • 5
    @shan unix.stackexchange.com/questions/6094 / … –  jasonwryan 23.05.2011, 07:37

Существует необычный ответ на это, которое могло включить программно фильтрацию истории прямо прежде, чем выйти из каждого терминала. Но вместо того, чтобы делать это, увеличьте размер истории. В Вашем сценарии запуска оболочки запишите, что 'набор history=XXX' и 'установил savehist=YYY', где YYY <= XXX. 'историй' являются количеством команд, сохраненных в рамках сессии, savehist через все сессии (сохраненный при закрытии терминала). См. http://unixhelp.ed.ac.uk/shell/tcsh_hist1.html и http://unixhelp.ed.ac.uk/shell/tcsh_hist2.html.

Если Вы хотите отредактировать значения по умолчанию для всей машины, можно попытаться искать tsch.defaults, например,/usr/share/init/tcsh/tcsh.defaults. Это будет выглядеть примерно так:

# History
set history = XXX
set savehist = YYY
set histfile = ~/.tcsh_history # History file
1
27.01.2020, 21:11
  • 1
    , у меня уже есть это (мой размер истории является 10K строками), даже затем, я хотел отфильтровать все бесполезные команды "выхода" и "CD", это забивает историю. –  TCSGrad 22.05.2011, 08:27

Это не точно, что Вы хотите, но это может помочь:

  histdup (+)
    Controls handling of duplicate entries in the history list.  If set to `all' only unique his-
    tory  events are entered in the history list.  If set to `prev' and the last history event is
    the same as the current command, then the current command is not entered in the history.   If
    set  to  `erase'  and the same event is found in the history list, that old event gets erased
    and the current one gets inserted.  Note that the `prev' and `all' options  renumber  history
    events so there are no gaps.

Таким образом, Вы помещаете 'набор histdup = все' в Вашем .tcshrc, и в то время как Вы все еще получите тривиальные команды в своей истории, Вы только получите один экземпляр каждого, который, по крайней мере, уменьшает помеху.

5
27.01.2020, 21:11

Теги

Похожие вопросы