방금 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 프로세스 계정이 활성화된 경우) 실행 기간을 제공합니다(제한된 의미에서는 충분할 수도 있고 충분하지 않을 수도 있음).