기록에서 마지막 N 명령을 얻는 방법은 무엇입니까?

기록에서 마지막 N 명령을 얻는 방법은 무엇입니까?

내 것이 무엇인지 확인하고 싶었습니다 history. 성공할 것이라고 생각했지만 history | tail -n 5여러 줄 명령에 그 만큼 많은 줄이 있다는 것을 알았습니다.

$ echo "hello
how are you"
$ history | tail -2
how are you"
1051  history | tail -2

그래서 내 질문은: 이 작업을 수행하려면 명령의 출력을 구문 분석해야 합니까?

답변1

찾았어요!

역사[n]

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

$ echo "hello
how are you"
$ history 2
1060  echo "hello
how are you"
1061  history 2

답변2

예를 들어 다음과 같이 음수를 사용할 수도 있습니다.

history -1

또는 범위(마지막 10)를 사용하십시오.

history -1 -11 

답변3

히스토리를 적용하면 마지막 히스토리 명령도 표시됩니다. 공간 낭비를 방지하려면 다음과 같은 별칭이 편리할 수 있습니다.

alias hs=' history 16 | head -n 15'

(명령 자체 history 16 | head -n 15)

또 다른 유용한 역사적 별칭:

  alias hsg=' history | grep ' 

(ctr+R이 너무 작아서 선택할 수 없는 경우)

_history 앞의 공백은 기록에 기록되지 않은 명령을 실행합니다.

fc -l #은 마지막 16개 명령(및 그 이상)도 나열합니다.

답변4

OpenBSD 6.3(PD KSH v5.2.14 99/07/13.2)에서 테스트되었습니다.

history [b]

숫자 [b] 항목으로 시작하는 모든 기록 표시

history [b] [e]

[b]부터 [e]까지의 과거 간격을 표시합니다.

관련 정보