터미널 인쇄 명령 기록 및 모든 명령의 타임스탬프를 만드는 방법

터미널 인쇄 명령 기록 및 모든 명령의 타임스탬프를 만드는 방법

이전에 사용한 명령을 타임스탬프와 함께 인쇄하도록 터미널(macOS)을 얻으려고 합니다.

를 사용하면 history man과거 1000개 정도의 목록이 제공되고, 을 사용하면 history -E약 20개 정도에 불과하지만 타임스탬프가 포함된 명령이 제공된다는 것을 알고 있습니다.

모든 타임스탬프를 얻을 수 있도록 연결하는 방법이 있나요?

답변1

zsh쉘 에서모두dd.mm.yyyy hh:mm현재 셸 세션의 기록 및 타임스탬프("유럽 형식 ")를 사용하여

history -E 1

끝에 있는 것은 1첫 번째(마지막) 항목부터 기록을 보고 싶다는 의미입니다.

셸이 기록 파일( )에 타임스탬프를 저장하려면 셸 옵션을 $HISTFILE활성화해야 합니다.EXTENDED_HISTORY

setopt EXTENDED_HISTORY

... ~/.zshrc파일에 있습니다(이 옵션은 다음 새 셸 세션에서 적용됩니다). 이 옵션을 설정하지 않고 저장된 기록 항목은아니요타임스탬프와 함께 저장됩니다.


질문에 사용하는 명령은 항목 수에 관계없이 history man문자열이 포함된 최신 줄 이후의 모든 기록 항목을 표시합니다 . 와 를 결합하여 최신 항목이 포함된 이후 타임스탬프된 기록 항목을 얻을 수 man있습니다 .history -Ehistory manhistory -E manman

기본적으로 history마지막 16개의 명령줄 기록 항목이 출력됩니다.

답변2

zsh가 아닌 Bash 터미널을 사용하여 실행하기 위한 것입니다.

HISTTIMEFORMAT을 설정할 수 있습니다.

If the HISTTIMEFORMAT variable is set and not null, its value is used
as a format string for strftime(3) to print the time stamp associated
with each displayed history entry.  No time stamps are printed otherwise.

예를 들어

export HISTTIMEFORMAT="%F %T "
history

내 예에서는 터미널에서 이 작업을 수행했고 결과는 다음과 같습니다.

 2118  02/21/2023 01:00:54 PM history 
 2119  02/21/2023 01:01:47 PM export HISTTIMEFORMAT="%F %T "
 2120  02/21/2023 01:01:48 PM history

관련 정보