Fish에 입력하면 history | less
다음이 표시됩니다.
history | less
export HISTTIMEFORMAT="%h/%d - %H:%M:%S "
bash
Bash에서는 다음을 볼 수 있습니다.
491 18/04/16 14:31:02 cd
492 18/04/16 14:31:02 ls -l
493 18/04/16 14:31:02 less .bashrc
따라서 !491을 사용하여 명령을 다시 실행할 수 있고 내 서버에서도 감사할 수 있지만 Fish에서는 이를 표시할 방법이 없습니다. 또한 시간과 날짜를 추가해 보았지만 export HISTTIMEFORMAT="%h/%d - %H:%M:%S "
아무것도 추가하지 않았습니다. bash처럼 추가하는 방법에 대한 아이디어가 있습니까?
답변1
매개변수를 사용하여 Fish를 실행하면 이제 내장된 기록 명령에서 타임스탬프를 지원합니다 --show-time
.
(2016년 10월에 출시된 Fish 버전 2.4 이상을 사용해야 합니다.)
원래 예제를 기반으로 다음과 같은 형식을 지정할 수 있습니다.
$> history --show-time='%h/%d - %H:%M:%S '
또는 함수에 저장합니다(1. 재귀적 및 2. 긴 때문에 여기에 별칭이 사용되지 않음).
# ~/.config/fish/functions/history.fish
function history
builtin history --show-time='%h/%d - %H:%M:%S ' | tail -r
end
bash 처럼 위에서 아래로 읽을 수 있도록 tail-reverse에 추가 파이프를 추가했습니다 history
.
이것을 물고기 기능에 추가하면 충분할 것입니다.
___
"히스토리 인덱스"(주어진 명령에 해당하는 "줄 번호")를 인쇄할 방법이 없는 것 같습니다. 비교를 위해 내가 선호하는 bash 기록 형식은 다음과 같습니다.
228 01/05/17 14:47:53 $> history
229 01/05/17 14:48:11 $> vim .bash_profile
230 01/05/17 14:48:42 $> source .bash_profile
231 01/05/17 14:48:45 $> history
232 01/05/17 15:15:29 $> ls
233 01/05/17 15:15:30 $> clear
234 01/05/17 15:15:32 $> history
그리고 내가 이 글을 쓰는 동안 해당 물고기의 역사는 다음과 같습니다:
01/05/17 15:05:53 $> vim history.fish
01/05/17 15:10:01 $> man history
01/05/17 15:14:50 $> history | tail -r | less
01/05/17 15:15:01 $> history | tail -r
01/05/17 15:15:11 $> ls
01/05/17 15:15:14 $> vim history.fish
01/05/17 15:15:41 $> history
솔직히 충분히 가깝습니다.
___
업데이트: 잠시 생각한 후에 결과를 파이프하여 해당 행 번호를 얻을 수 있습니다. 완벽하지는 않지만(여러 줄 명령은 입력된 각 줄에 대해 새로운 "줄"로 처리됩니다) bash의 Fish 기록과 유사하게 원하는 거의 모든 것을 제공합니다. 이것이 내 최종 history.fish
파일입니다.
function history
builtin history --show-time='%m/%d/% %T $> ' | tail -r | less -N +G
end
less -N
줄 번호를 지정하고 less +G
맨 아래부터 파일을 시작합니다(따라서 가장 최근 항목을 자동으로 볼 수 있습니다).
tail -r
FreeBSD 기반 시스템(Mac OS X 포함)에서만 호환되지만 tac(또는 GNU coreutils를 사용하는 경우 gtac)과 같은 유사한 대안을 사용할 수 있습니다.