2011-09-02 5 views
2

리눅스 콘솔에서 모든 명령의 시작 날짜/시간을 기록하는 귀여운 방법이 있습니다. 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'를 실행할 수 있음을 알고 있지만 매번 수동으로 시간을 쓰고 싶지는 않습니다. 어쩌면 모든 명령 실행 시간을 자동 저장하는 방법이 있을까요?

+0

당신이 쉘을 사용합니까 here? 세게 때리다? zsh? 그리고 정확하게 당신이 당신의 로그 파일에서 원하는 것은 무엇입니까?'xxx 0,00s user 0,00s system 0 % cpu 0,001 total' 또는 무언가와 같은'time' 출력 형식이 무수히 있습니다 : 'real 0m0.007s user 0m0.000s sys 0m0.004s' 정확한 타이밍 (원하는 타이밍)과 형식은 무엇입니까? – GreyCat

+0

나는 bash를 사용하고있다. 이상적인 시간은 초 단위입니다. – bessarabov

+0

일반적으로 "사용자 시간", "시스템 시간"및 "벽 (총) 시간"과 같은 최소한 3 가지 타이밍이 가능합니다. 어느 것을 원하니? – GreyCat

답변

0

너무 산만하지 않다면 현재 날짜와 시간을 표시하도록 프롬프트를 변경할 수 있습니다. 같을 것이다

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

:

당신이 떠들썩한 파티를 사용하는 경우, 같은 것을 고려

[2011-09-03 03:39:21][[email protected] ~]$ echo $PS1 
[\D{%Y-%m-%d} \T][\[email protected]\h \W]$ 
[2011-09-03 03:39:30][[email protected] ~]$ vi 
[2011-09-03 03:39:39][[email protected] ~]$ 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][[email protected] ~]$ 

당신이 할 수 귀하의 개인 환경 설정 물론, 맞춤형 프롬프트.

메시지를 영구적으로 변경하려면 export PS1=...~/.bashrc 파일에 추가 할 수 있습니다. 양자 택일로, 당신은 당신의 ~/.bashrc 파일에 앞뒤로, 예를 들어 ... 프롬프트 문자열 동봉 된 따옴표의 선택해야한다는

alias prompt_ts_on='export $PS1=...' 
alias prompt_ts_off='export $PS1="[\[email protected]\h \W]\$ "' 

주를 전환 별칭을 작성할 수 있습니다. PS1 이스케이프 시퀀스에

일부 참조 : here

+0

프롬프트에서이 시간이 명령 실행 시간 대신 promt가 작성된 시간을 표시하는이 solutin의 문제점. – bessarabov