![zsh의 History 명령을 사용하여 이전 또는 최신 기록 항목 표시](https://linux55.com/image/41501/zsh%EC%9D%98%20History%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9D%B4%EC%A0%84%20%EB%98%90%EB%8A%94%20%EC%B5%9C%EC%8B%A0%20%EA%B8%B0%EB%A1%9D%20%ED%95%AD%EB%AA%A9%20%ED%91%9C%EC%8B%9C.png)
명령 기록을 입력했는데 내가 실행한 마지막 10개의 명령이 표시되었습니다. 이제 내가 실행한 마지막 20개의 명령을 보고 싶습니다(문서를 읽은 후).
n 매개변수는 마지막 n 줄만 나열합니다.
를 입력했습니다 history 20
. 그러면 명령 번호 20부터 시작하여 현재 명령(약 2000)까지의 모든 명령이 표시됩니다. 그래서 시도해 보았는데
history -20
효과가 있었습니다. 마지막 20개의 명령을 보여줍니다. 그러나 그것은 문서에 나와 있는 내용이 아닙니다.
history -d [offset]
해당 오프셋의 명령 도 제거해야 합니다. 심지어 이것은 내 zsh에서도 작동하지 않습니다.
이것은 내 zsh 쉘에서 직접 가져온 것입니다.
답변1
zsh에서 history
is는 별칭 fc -l 1
이므로 이 작업을 수행하면 작동하지 않는 것으로 history -20
대체되므로 다음을 사용하십시오.fc -l 1 -20
fc
➜ ~ 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
이 예에서는 first
20으로 설정되어 있지만 last
생략되었습니다. 따라서 가 사용되기 때문에 last
설정됩니다 .-1
fc -l