bash 기록에서 타임 스탬프를 보는 방법은 무엇입니까?


259

bash 기록에서 명령이 실행 된 시간을 볼 수있는 방법이 있습니까? 우리는 순서를 볼 수 있지만 시간을 얻을 수있는 방법이 있습니까?

결론 : Bash 기록에서 실행 시간


7
맨 페이지의 Linux와 BSD 모두에서 이것이 제대로 문서화되지 않은 것에 놀랐습니다.
Sridhar Sarnobat


4
zsh를 사용하는 경우 :history -E
Vahid

4
아니 두 답변은 아래 방법 터미널을 여는 방법을 알려 할 필요성을 느낄 이유를 확인 ..
mwfearnley

2
@ dog0에 의해 참조 된 블로그에 따르면, 타임 스탬프 HISTTIMEFORMAT는 명령이 실행될 때 변수가 설정 되지 않으면 분명히 저장되지 않습니다 . 즉, 설정하지 않은 경우 지금 설정하면 이전에 실행 된 명령의 타임 스탬프를 검색하는 데 도움이되지 않습니다.
Tomislav Nakic-Alfirevic

답변:


316

를 눌러 Ctrl+ Alt+ T터미널을 열려면, 다음 아래의 명령을 실행합니다 :

HISTTIMEFORMAT="%d/%m/%y %T "

또는 현재 사용자에게 영구적으로 변경하려면 다음을 수행하십시오.

echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
source ~/.bashrc

그때

history

자세한 내용은 man bash 또는 Linux 용 Bash 명령 줄의 AZ 색인을 참조하십시오 .

이전 HISTTIMEFORMAT 에 실행 된 명령의 경우 현재 시간이 타임 스탬프로 저장됩니다. HISTTIMEFORMAT설정된 후에 실행 된 명령 에는 적절한 타임 스탬프가 저장됩니다.


7
로 선언해야하는 이유 export.bash_profile무엇입니까? 이 변수는 bash시작된 명령이 아니라에서만 읽을 수있는 변수 이므로 내 보내지 않아야합니다.
Alvaro Gutierrez Perez

71
세션에 대해 설정된 후에 는 기록 항목에 대한 타임 스탬프 만 기록 됩니다 HISTTIMEFORMAT. 즉, 소급하여 사용할 수 없습니다. 여기에 몇 가지 답변 인상을 역사의 명령을주고 즉시 타임 스탬프 항목을 보여줍니다
루이 매덕스에게

9
@Louis-사실 이것은 나를 위해 소급하여 효과가 있었습니까?!?!
stephenmm

19
@Jamil : ISO 표준을 따르는 사람들의 경우 날짜 부분의 "% y- % m- % d";)
Gauthier

13
@Gauthier-실제로 ISO 날짜에 % F를 사용하십시오 ;-) man7.org/linux/man-pages/man3/strftime.3.html
brianmearns

73

터미널 Ctrl+ Alt+를 열고 T실행

HISTTIMEFORMAT="%d/%m/%y %T "

그때,

history

변경 사항을 영구적으로 적용하려면 다음 단계를 따르십시오.

gedit ~/.bashrc

아래 줄을 .bashrc 파일에 추가하고 저장해야합니다.

export HISTTIMEFORMAT="%d/%m/%y %T "

아래 명령을 실행하여 .bashrc 파일을 소스하십시오.

source ~/.bashrc

그 후 history명령 을 실행하십시오 .

여기에 이미지 설명을 입력하십시오

출처 : http://www.cyberciti.biz/faq/unix-linux-bash-history-display-date-time/


답변 주셔서 감사합니다. \ 영구적 인 변경입니까?
rɑːdʒɑ

1
안녕하세요, OS X와 ​​Windows에서 (MINGW를 통해)이 작업을 수행하고 있으며 .bash_profile에 추가하고 있습니다. profile과 rc의 차이점은 무엇입니까?
LasagnaAndroid

18

예, 다음을 수행 할 수 있습니다.을 설정 $HISTTIMEFORMAT하면 .bash-history시간이 올바르게 표시됩니다. 기존 .bash-history콘텐츠 에는 도움이되지 않지만 앞으로는 도움이 될 것입니다.


1
좀 더 명확하게 확장 할 수 있습니까?
rɑːdʒɑ

5
이전 게시물 수정 : HISTTIMEFORMAT을 설정하면 타임 스탬프를 표시 할 수 있습니다. 내가 가장 좋아하는 것은 : HISTTIMEFORMAT = '% F % T'입니다. 어느 나라에서 왔든 상관 없습니다. :)

4
나는 $ HISTTIMEFORMAT을 설정 했고이 세트의 명령 이전에도 오늘 시간을 얻었습니다.
Yasin Okumuş

@ user491029 "... 기존에도" 이것은 사실이지만 오해의 소지가 있습니다. 우분투 14.04에서 적어도 HISTTIMEFORMAT을 설정하면 모든 기록 항목에 대한 타임 스탬프가 표시되기 시작했지만 현재 세션이 현재 세션의 로그인 타임 스탬프이기 전에 실행 된 명령의 타임 스탬프처럼 보입니다.
jbobbins

1

다음에 로그인하면 변경 사항이 표시됩니다.

echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc

0

모든 사용자에 대해 히스토리 타임 스탬프를 활성화하려면 /etc/profile.d에 스크립트를 작성하십시오.

echo 'HISTTIMEFORMAT="%Y%m%d %T "' >> /etc/profile.d/timestamp.sh

1
기본 터미널은 로그인 쉘을 실행하지 않으므로 GUI를 통해 로그인하는 사용자에게는 작동하지 않을 수 있습니다. /etc/bash.bashrc더 좋은 곳이 될 것입니다.
muru

0

나는 매우 늦게 대답하고 있지만 모든 사용자를 위해이 작업을 수행하려면 .sh파일을 만들고 /etc/profile.d다음 줄을 추가 할 수 있습니다 .

echo 'HISTTIMEFORMAT="%Y-%m-%d %T "' >> /etc/profile.d/existing-foo-file.sh

root또는 수퍼 유저 로 로그인하지 않은 경우 tee명령을 사용하여 다음 을 수행해야합니다.

echo 'HISTTIMEFORMAT="%Y-%m-%d %T "' | sudo tee /etc/profile.d/mytimestamp.sh

기존 파일에 추가하려면 -a플래그를 tee명령에 전달하십시오 .

echo 'HISTTIMEFORMAT="%Y-%m-%d %T "' | sudo tee -a /etc/profile.d/mytimestamp.sh

여기에 이미지 설명을 입력하십시오


안녕하세요 Shashank, 답변을 추가해 주셔서 감사하지만이 답변이 다른 답변과 어떻게 다른가요? 귀하의 답변이 완전히 다른 경우에는 기꺼이 답변 해 드리지만 그렇지 않은 경우 기존 답변을 개선 할 수 있습니다.
rɑːdʒɑ

안녕하세요, 댓글 주셔서 감사합니다. 이것은 다음과 같은면에서 다른 방식과 다릅니다. 1. 일부 사용자는 모든 사용자를위한 만들기에 대해서는 언급했지만에서의 파일 이름 만들기 / 설명에 대해서는 언급하지 않았습니다 /etc/profile.d. timestamp.sh기술에 매우 가깝게 보이므로 혼동을 existing-foo-file.sh일으켜서 이름을 사용했습니다 (foo-bar concept). 2. 루트가 아닌 사용자와 함께 사용하는 것에 대해서는 아무도 언급하지 않았습니다. 따라서을 사용하는 예제를 제공했습니다 sudo. 3. 세 번째 예는 기존 파일에 추가하는 두 번째 예를 개선합니다. 리눅스 / 유닉스 초보자들이이 문제에 부딪 칠 수 있기 때문에 정교하게 설명했다.
Shashank Agrawal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.