이후 명령 실행 시간 찾기

이후 명령 실행 시간 찾기

방금 bash 프롬프트에서 장기 실행 프로세스를 실행했습니다. 돌이켜보면 계속 진행했거나 time시작할 때 언급했더라면 좋았을 텐데요.

이 정보를 소급해서 얻을 수 있는 방법이 있습니까? .bash_history타임 스탬프가 포함되지 않은 것 같습니다 .

내 특별한 경우에는 Mac OS X이지만 일반적인 Unix/Linux 솔루션에 관심이 있습니다.

명확히 하자면, 이제 프로세스가 완료되었으며 꼭 필요한 경우가 아니면 다시 실행하고 싶지 않습니다.

답변1

bash쉘을 닫을 때까지의 시간은 실제로 기억됩니다.

그러니 달리기를 해보세요

HISTTIMEFORMAT='%x %X ' history

당신도 넣어두면

HISTTIMEFORMAT=<some format>

귀하의 경우 종료 시에도 기록 ~/.bashrc되므로 ~/.bash_history이전 쉘 세션에서도 발생한 내용을 확인할 수 있습니다.

답변2

Mikel의 대답은 훌륭하지만, 프로그램을 실행하고 잠시 방치하면 프로세스가 언제 완료되는지 실제로 알 수 없습니다. 그래서 프로그램을 시작할 때 시간이 있어도 얼마나 시간이 걸렸는지 전혀 알 수 없습니다.

준비 없이 알아내야 할 때를 위한 해결책은 없습니다. 하지만 이 작업을 다시 수행할 계획이라면 제가 한 대로 할 수 있습니다. 즉, 쉘 프롬프트와 함께 현재 시간을 인쇄합니다. 이렇게 하면 터미널이 아직 열려 있으면 프로그램이 시작된 시기와 다음 프롬프트가 인쇄된 시기를 확인할 수 있습니다. 약간의 수학을 통해 실행 시간을 파악하는 데 도움이 될 수 있습니다.

이렇게 하려면 bash다음을 다음 항목에 입력하세요 .bashrc.

export PS1="\A \u@\h \W \$ "

에서 zsh다음을 입력하세요 .zshrc.

export PS1="%D{%H:%M} %n@%m %1~ %# "

위의 명령은 쉘 프롬프트에 대해 다음 형식을 제공합니다 <time> <username>@<hostname> <current dir> <$ or % or #>.미친 ~ 고 싶어요메시지가 표시되면 쉘의 매뉴얼 페이지를 읽으십시오.

참고: 높은 정밀도가 필요하거나 프로그램이 너무 많은 출력을 생성하여 이전 프롬프트를 볼 수 없는 경우에는 도움이 되지 않을 수 있습니다.

답변3

프로세스가 아직 실행 중인 경우 이를 사용하여 ps프로세스가 시작된 시간과 사용한 CPU 시간을 확인할 수 있습니다.

예를 들어 모든 프로세스에 대해 다음과 같습니다.

ps -eo cputime,start,pid,command,args

특정 PID(12345)의 경우:

ps -p 12345 -o cputime,start,pid,command,args

답변4

마지막 통신(BSD 프로세스 계정이 활성화된 경우) 실행 기간을 제공합니다(제한된 의미에서는 충분할 수도 있고 충분하지 않을 수도 있음).

관련 정보