Adicionando timestamps aos prompts do terminal?

42

Eu queria saber se era possível adicionar carimbos de hora a prompts de terminal e, em caso afirmativo, como conseguir isso?

    
por Jan Gorzny 27.09.2012 / 03:21

7 respostas

50

Adicione esta linha ao arquivo ~/.bashrc :

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

Assim, a saída será algo como:

[07:00:31] [email protected]:~$
    
por devav2 27.09.2012 / 03:32
19

Minha solução foi usar link para gerar essa linha PS1 para colocar em .bashrc:

export PS1="\t [\[email protected]\h \W]\$ \[$(tput sgr0)\]"

Qual será a aparência

13:05:54 [[email protected]:~/Downloads]$ ls -al

Usar o PROMPT_COMMAND atrapalha o histórico para mim. Quando uma linha mais longa aparece ao percorrer o histórico, ela corta o final do prompt com o mesmo número de caracteres que o timestamp que foi adicionado à frente. por exemplo.

13:14:38 [[email protected]:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\] "

E essa linha não pode ser editada porque não exibe os caracteres no lugar certo, pois você não está digitando onde parece que está digitando.

Suponho que isso poderia ser feito com PROMPT_COMMAND, talvez usando essa parte [$ (tput sgr0)], mas o PS1 funciona.

    
por dogtato 11.05.2016 / 21:12
12

Em vez de adicionar a data ao próprio prompt, você pode adicionar a data pouco antes ao seu prompt, colocando a seguinte linha no topo do seu .bashrc . Para o trabalho, você também precisará instalar o cowsay . É uma maneira divertida de exibir a data, mantendo um prompt curto :

cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"

Na sua forma atual, ele funcionará no sistema de qualquer pessoa sem alterações, pois ele lê as variáveis $USER e date do ambiente atual.

    
por user76204 27.09.2012 / 21:44
5

Desde que eu não tenho pontos de reputação suficientes para adicionar um comentário à resposta para melhorá-lo. Parece que a única maneira de adicionar informações é criar uma segunda resposta. Então, vou repetir o que foi dito como a resposta e construir sobre isso.

Edite o arquivo .bashrc para o usuário para o qual deseja que o carimbo de data seja modificado.

Se você vir "usuário @ host: ~ $", você está no diretório pessoal do usuário atual. O arquivo .bashrc é um arquivo oculto, já que é prefixado com o ponto ".". Para vê-lo em uma lista, você precisará usar uma longa lista.

Você pode usar "ls -a" e então deverá ver o arquivo ".bashrc".

Edite o arquivo com um editor de texto. Por exemplo, "nano .bashrc", "vim .bashrc", "vi .bashrc", "pico .bashrc" ou qualquer outro editor que você deseje usar.

Se você quiser fazer um script disso e planeja adicioná-lo a muitos shells para muitos usuários, pode ser benéfico usar o comando "echo" em conjunto com o append "> >" operador. Por exemplo,

echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\"" >> .bashrc

Se você usar esse método, certifique-se de estar no diretório de trabalho atual do usuário para o qual deseja modificá-lo. Para verificar isso, você pode usar o comando "pwd" ou imprimir o diretório de trabalho.

Se você não gostar do espaço extra entre o colchete "]" e o nome de usuário, use apenas este regex ligeiramente modificado:

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\"

Use isso se você estiver editando diretamente o arquivo.

    
por Avlaxis 08.01.2015 / 20:57
2
export PROMPT_COMMAND=date

imprime a data antes de emitir cada solicitação.

    
por wojox 27.09.2012 / 03:31
1

Abra seu .bashrc via

vim ~/.bashrc

e adicione o seguinte a .bashrc :

#PS1="[\A \[email protected]\h \W\a]$" 

onde \A é para o tempo ( \W para somente o final do caminho, remova se desejar o caminho do diretório de trabalho inteiro). Então digite

source ~/.bashrc

Você verá algo assim:

[16:04 [email protected] ~/MCEq_dev]$
    
por trwood 24.08.2016 / 23:07
0

Apenas para adicionar a resposta do @ devav2:

Um comando echo mais fácil de ler para iniciantes seria:

export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'

Em vez de

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

Como o comando echo não deve ser avaliado no momento da exportação, faz mais sentido usar aspas simples para aspas literais em vez de aspas duplas. Usando aspas simples para citar o comando inteiro, você pode usar aspas duplas para citar o argumento para o comando echo, eliminando a necessidade de escapar de caracteres especiais como , [ e $

    
por qwertyzw 22.08.2017 / 18:00

Tags