datetime stamp ao executar o comando history no shell zsh

22

Quando executo o comando history no meu servidor Ubuntu, recebo a seguinte saída:

   history
   ...
   25  cd ~
   26  ls -a
   27  vim /etc/gitconfig
   28  vim ~/.gitconfig

Eu quero ver o datetime de um usuário em particular. No entanto, quando eu assumi-los:

su otheruser
export HISTTIMEFORMAT='%F %T  '
history
...
25  cd ~
26  ls -a
27  vim /etc/gitconfig
28  vim ~/.gitconfig

Ainda não mostra datetime. Estou usando o shell zsh.

    
por JohnMerlino 02.12.2013 / 19:58

3 respostas

27

Eu acredito que o HISTTIMEFORMAT é para shells Bash. Se você estiver usando zsh , poderá usar essas opções para o comando history :

Exemplos

$ history -E
    1   2.12.2013 14:19  history -E

$ history -i
    1  2013-12-02 14:19  history -E

$ history -D
    1  0:00  history -E
    2  0:00  history -i

Se você fizer um man zshoptions ou man zshbuiltins , poderá obter mais informações sobre essas opções, além de outras informações relacionadas a history .

trecho da página de manual do zshbuiltins

Also when listing,
  -d     prints timestamps for each command
  -f     prints full time-date stamps in the US 'MM/DD/YY hh:mm' format
  -E     prints full time-date stamps in the European 'dd.mm.yyyy hh:mm' format
  -i     prints full time-date stamps in ISO8601 'yyyy-mm-dd hh:mm' format
  -t fmt prints time and date stamps in the given format; fmt is formatted 
         with the strftime function with the  zsh extensions described for 
         the %D{string} prompt format in the section EXPANSION OF PROMPT 
         SEQUENCES in zshmisc(1).  The resulting formatted string must be no 
         more than 256 characters or will not be printed.
  -D     prints elapsed times; may be combined with one of the options above.

Invocação de depuração

Você pode usar os 2 métodos a seguir para depurar zsh quando invocá-lo.

Método 1

$ zsh -xv

Método # 2

$ zsh
$ setopt XTRACE VERBOSE

Em ambos os casos, você deve ver algo assim quando for iniciado:

$ zsh -xv
#
# /etc/zshenv is sourced on all invocations of the
# shell, unless the -f option is set.  It should
# contain commands to set the command search path,
# plus other important environment variables.
# .zshenv should not contain commands that produce
# output or assume the shell is attached to a tty.
#

#
# /etc/zshrc is sourced in interactive shells.  It
# should contain commands to set up aliases, functions,
# options, key bindings, etc.
#

## shell functions
...
...
unset -f pathmunge _src_etc_profile_d
+/etc/zshrc:49> unset -f pathmunge _src_etc_profile_d

# Created by newuser for 4.3.10
    
por 02.12.2013 / 20:24
13

history -E ou history -i ou o que for NÃO funcione para mim.

zsh --version mostra que zsh 4.3.6 (x86_64-suse-linux-gnu) .

Então fc -li 100 funciona! Mostra os 100 comandos recentes com timestamp:)

    
por 29.12.2016 / 11:08
3

Se você estiver usando oh-my-zsh addon em zsh , history -E ou history -i não funcionará (porque é alias para fc -l 1 ).

Como @juanpastas apontou, tente

\history -E

ou

\history -i

ou

fc -li 100

    
por 07.04.2018 / 18:35