Como excluir alguns comandos de serem armazenados no histórico do TCSH?

3

Eu armazeno meu histórico de linha de comando no TCSH, mas eu quero evitar que alguns comandos freqüentes e simples como "exit", "cd" sejam incluídos no histórico (o histórico contém apenas um número fixo de comandos, então eu quero retenha apenas os comandos úteis).

Existe uma maneira de especificar uma "lista de exclusão" - uma lista que conterá comandos que não seriam adicionados ao arquivo de histórico atual? Dessa forma, posso manter apenas os comandos mais relevantes da história e filtrar os que não quero obstruir o histórico.

    
por TCSGrad 22.05.2011 / 06:41

3 respostas

4

Não é exatamente o que você quer, mas isso pode ajudar:

  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.

Então você coloca um 'set histdup = all' no seu .tcshrc, e enquanto você ainda recebe comandos triviais no seu histórico, você irá obter apenas uma instância de cada um, o que pelo menos reduz a desordem.

    
por 29.10.2012 / 17:09
2

Se você quer dizer algo como as variáveis no bash, HISTCONTROL e HISTIGNORE , onde

HISTCONTROL=ignorespace não carrega em seu histórico nenhum comando precedido por um espaço e

HISTIGNORE=ls:cd:exit impede que todos os comandos listados sejam adicionados ao seu histórico, então não - essa funcionalidade não é nativa no tcsh.

    
por 22.05.2011 / 10:19
1

Existe uma resposta sofisticada para isso, que pode envolver a filtragem programada do histórico antes de sair de cada terminal. Mas, em vez de fazer isso, aumente o tamanho do histórico. Em seu script de inicialização do shell, escreva "set history = XXX" e "set savehist = YYY" onde YYY < = XXX. 'history' é o número de comandos salvos dentro de uma sessão, salvo em todas as sessões (salvo quando você fecha o terminal). Veja link e link .

Se você quiser editar os padrões de toda a máquina, tente procurar tsch.defaults, por exemplo, /usr/share/init/tcsh/tcsh.defaults. Será algo parecido com isto:

# History
set history = XXX
set savehist = YYY
set histfile = ~/.tcsh_history # History file
    
por 22.05.2011 / 06:59