Ativar histórico para shell [closed]

0

Quando eu começo o bash ou qualquer outro shell, ele não tem histórico. Você tem alguma ideia do que eu posso fazer sobre isso? Eu estou tentando usar a seta para cima e não tem efeito se eu iniciar um novo shell com o OpenBSD ou Ubuntu xenial.

Eu tentei todas as configurações mencionadas, defini $HISTFILE no meu .profile , fiz logout e logon novamente e usei dois sistemas operacionais diferentes.

Esta é exatamente a minha configuração e como eu faço login e não tenho histórico por surdoc:

developer@1604:~$ ssh 127.0.1.2 -l root -p 2223
[email protected]'s password: 
Last login: Sat Aug 19 01:34:14 2017
OpenBSD 6.1 (GENERIC) #19: Sat Apr  1 13:42:46 MDT 2017

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code.  With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

# history                                                               
ksh: fc: no history (yet)
# more .profile                                                                
# $OpenBSD: dot.profile,v 1.9 2010/12/13 12:54:31 millert Exp $
#
# sh/ksh initialization

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin
export PATH
: ${HOME='/root'}
export HOME
umask 022

case "$-" in
*i*)    # interactive shell
        if [ -x /usr/bin/tset ]; then
                if [ X"$XTERM_VERSION" = X"" ]; then
                        eval '/usr/bin/tset -sQ '-munknown:?vt220' $TERM'
                else
                        eval '/usr/bin/tset -IsQ '-munknown:?vt220' $TERM'
                fi
        fi
        ;;
esac
# 
    
por Niklas Rosencrantz 25.08.2017 / 22:40

2 respostas

3

Seu ~./profile não não permite salvar o histórico no momento (não há configuração de HISTFILE em nenhum lugar).

Para o shell ksh do OpenBSD no sistema base:

Edite seu arquivo ~/.profile e adicione a seguinte linha:

export ENV="$HOME/.kshrc"

Em seguida, edite ~/.kshrc e adicione as seguintes linhas:

set -o emacs
HISTFILE="$HOME/.ksh_history"

Isso deve ser o suficiente. O set -o emacs é fazer com que as setas funcionem como você espera que elas aconteçam (você teve problemas com isso, creio).

Também é suficiente apenas definir HISTFILE="$HOME/.ksh_history" diretamente em .profile se você desejar evitar usar um arquivo separado para shells interativos.

Você também pode especificar o número de entradas do histórico com as quais deseja salvar, por exemplo,

HISTSIZE=5000

O valor padrão de HISTSIZE é 500.

Isso é mais ou menos o que eu escrevi na minha resposta anterior também.

Existe atualmente (final de agosto de 2017) uma enxurrada de CVS comprometidos com a implementação do ksh do OpenBSD, para implementar vários recursos relacionados ao histórico, como HISTCONTROL , ignoredups e ignorespace (como disponível, por exemplo, bash ).

    
por 25.08.2017 / 22:51
2

Anexe estas linhas ao seu ~/.bashrc

set -o history
HISTFILE=$HOME/.bash_history
HISTFILESIZE=500
HISTSIZE=500
shopt -s histappend

Em seguida, insira o comando source .bashrc e insira alguns comandos aleatórios. Veja se agora você tem um histórico (insira history na linha de comando ou use a seta para cima).

    
por 26.08.2017 / 07:32