___

___

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 -rFreeBSD 기반 시스템(Mac OS X 포함)에서만 호환되지만 tac(또는 GNU coreutils를 사용하는 경우 gtac)과 같은 유사한 대안을 사용할 수 있습니다.

답변2

Fish는 추적하지만 아직 기록 타임스탬프를 표시하지 않습니다. 바라보다이슈 #677- 기록 파일을 구문 분석하는 데 기여된 스크립트가 있습니다.

Fish는 구문이 기억하기 어렵고 종종 잘못 호출되기 때문에 느낌표 기록 확장을 지원하지 않습니다. 아래 토론을 따라갈 수 있습니다.288화. 일반적으로 해야 할 일은 명령을 입력하기 시작하고 자동 제안(오른쪽 화살표 또는 Ctrl-F)이 나타나면 이를 수락하는 것뿐입니다. 또 다른 옵션은 명령의 일부를 입력하고 위쪽 화살표를 사용하여 일치하는 기록 항목을 순환하는 것입니다.

관련 정보