Записать время выполнения команды - PullRequest
2 голосов
/ 02 сентября 2011

Есть симпатичный способ входа в дату и время начала всех команд в консоли Linux. Вы должны установить переменную HISTTIMEFORMAT на «% F% T». Затем, запустив команду 'history', вы увидите что-то вроде:

  512  2011-09-02 22:57:41 export HISTTIMEFORMAT="%F %T "
  513  2011-09-02 22:57:42 ls
  514  2011-09-02 22:57:43 hist
  515  2011-09-02 22:57:45 history 

Это очень круто и полезно. Но я мечтаю добавить в этот журнал еще и время выполнения команды. Я знаю, что могу запустить 'time ./some_long_lasting_script', но я не хочу каждый раз писать время вручную. Может быть, есть какой-нибудь способ автоматического сохранения времени выполнения каждой команды?

1 Ответ

0 голосов
/ 03 сентября 2011

Если это не слишком отвлекает, вы можете изменить свое приглашение на отображение текущей даты и времени.

Если вы используете bash, рассмотрите что-то вроде:

export PS1="[\D{%Y-%m-%d} \T][\u@\h \W]\$ "

который будет выглядеть так:

[2011-09-03 03:39:21][james@fractal ~]$ echo $PS1
[\D{%Y-%m-%d} \T][\u@\h \W]$
[2011-09-03 03:39:30][james@fractal ~]$ vi
[2011-09-03 03:39:39][james@fractal ~]$ ping google.com
PING google.com (74.125.93.147) 56(84) bytes of data.
64 bytes from qw-in-f147.1e100.net (74.125.93.147): icmp_req=1 ttl=47 time=51.3 ms
^C
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 51.343/51.343/51.343/0.000 ms
[2011-09-03 03:39:44][james@fractal ~]$ 

Конечно, вы можете адаптировать ваше приглашение к своим личным предпочтениям.

Чтобы навсегда изменить приглашение, вы можете добавить export PS1=... в файл ~/.bashrc. Кроме того, вы можете написать псевдонимы для переключения туда и обратно, например, в вашем файле ~/.bashrc,

alias prompt_ts_on='export $PS1=...'
alias prompt_ts_off='export $PS1="[\u@\h \W]\$ "'

Обратите внимание, что ... должен быть выбранной строкой приглашения в двойных кавычках.

Некоторые ссылки на escape-последовательности PS1: здесь и здесь

...