이전에 사용한 명령을 타임스탬프와 함께 인쇄하도록 터미널(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 -E
history man
history -E man
man
기본적으로 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