zsh의 History 명령을 사용하여 이전 또는 최신 기록 항목 표시

zsh의 History 명령을 사용하여 이전 또는 최신 기록 항목 표시

명령 기록을 입력했는데 내가 실행한 마지막 10개의 명령이 표시되었습니다. 이제 내가 실행한 마지막 20개의 명령을 보고 싶습니다(문서를 읽은 후).

n 매개변수는 마지막 n 줄만 나열합니다.

를 입력했습니다 history 20. 그러면 명령 번호 20부터 시작하여 현재 명령(약 2000)까지의 모든 명령이 표시됩니다. 그래서 시도해 보았는데 history -20 효과가 있었습니다. 마지막 20개의 명령을 보여줍니다. 그러나 그것은 문서에 나와 있는 내용이 아닙니다.

history -d [offset]해당 오프셋의 명령 도 제거해야 합니다. 심지어 이것은 내 zsh에서도 작동하지 않습니다.

이것은 내 zsh 쉘에서 직접 가져온 것입니다. 여기에 이미지 설명을 입력하세요.

답변1

zsh에서 historyis는 별칭 fc -l 1이므로 이 작업을 수행하면 작동하지 않는 것으로 history -20대체되므로 다음을 사용하십시오.fc -l 1 -20fc

➜  ~  fc -l -20
10095  grep -R PAPER /usr/lib/locale/
10096  man locale
10097  man 7 locale
10098  mc
10099  history
10100  history --help
10101  run-help history
10102  history 20
10103  history 1 20
10104  history -l 20
10105  fc
10106  history -l 20
10107  type history
10108  fc -l ..20
10109  fc -l -20
10110  history -l -20
10111  history -20
10112  fc -l -20
10113  type history
10114  fc -l 1 -20

괜찮아 질거야.

답변2

먼저 "in zsh" history의 의미를 알아야 합니다 fc -l.

그럼 읽어봐만즈 빌틴, 명령에 관한 부분 fc:

다음에서 명령 범위를 선택하세요.처음부터 마지막까지기록 목록에서. 매개변수 first와 last는 숫자나 문자열로 지정할 수 있습니다. 음수는 현재 기록 이벤트 번호의 오프셋으로 사용됩니다.. 문자열은 주어진 문자열로 시작하는 최신 이벤트를 지정합니다. 그런 다음 명령에서 모든 대체 old=new(있는 경우)를 수행합니다.

...

first가 지정되지 않으면 -1(가장 최근 이벤트)로 설정되고, -l 플래그가 제공되면 -16으로 설정됩니다.last가 지정되지 않으면 first로 설정되고, -l 플래그가 제공되면 -1로 설정됩니다..

문서에 따르면 음수를 사용하면 현재 기록 오프셋입니다. 따라서 history -20현재 명령부터 이전 20개의 명령까지 나열됩니다.

숫자를 제공하면 history 20테이블 로 zsh간주됩니다 . first to last이 예에서는 first20으로 설정되어 있지만 last생략되었습니다. 따라서 가 사용되기 때문에 last설정됩니다 .-1fc -l

관련 정보