역사에서 마지막 N 명령을 얻는 방법?


37

내 마지막 N 명령이 무엇인지 확인하고 싶습니다 history. 나는 history | tail -n 5그것을 만들 것이라고 생각 했지만 여러 줄 명령이 줄 수만큼 계산된다는 것을 알았습니다.

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

그래서 내 질문은 : 이것을 달성하기 위해 명령의 출력을 구문 분석해야합니까?


1
//, 이것이 stackexchange를 좋아하는 이유
Nathan Basanese

답변:


46

찾았어요!

역사 [n]

n의 인수는 마지막 n 행만 나열합니다.

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

4
즉이 될 것 같다 tcsh, yash하고 bash. 다른 껍질이 좋아하는 당신은 해당 정보를 제공 할 수 있습니다 zsh, fish, ksh,과 POSIX의 방법을.
Stéphane Chazelas

1
내 컴퓨터에 설치되어 있지 않지만 원하는 것이 있습니다. 정보를 얻을 수있는 특정 출처를 추천하십니까? opengroup에서 나는 pubs.opengroup.org/onlinepubs/9699919799에 대한 참조를 보았습니다
fedorqui

6
fc -l -2작동하지만 fc -l -2출력 에 전류 를 추가하지는 않음
Evgeny Vereshchagin 2018.


fc그런데으로 마지막 n 명령을 보여줍니다 -n. 표시 from n commands until last만 가능합니다 n(총 수를 알아야하기 때문에 별 의미가 없습니다). 독일어로 우리는 말할 것입니다 ein kleiner aber feiner unterschied: 작지만 기쁨의 차이. -l@EvgenyVereshchagin이 이미 지적한대로 사용하는 것을 잊지 마십시오. 그렇지 않으면 원하는 것이 아닌 편집기로 끝나기 때문입니다.
Timo

0

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

history [b]

숫자로 시작하는 모든 히스토리를 표시합니다. [b]

history [b] [e]

[b]에서 [e]까지 히스토리 간격을 표시합니다


0

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

history -1

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

history -1 -11 

bash 5.0.11에서는 작동하지 않습니다.
joelostblom

0

기록을 적용하면 마지막 기록 명령도 표시됩니다. 공간 낭비를 방지하기 위해 이러한 별명이 유용 할 수 있습니다.

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

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

또 다른 유용한 히스토리 별명 :

  alias hsg=' history | grep ' 

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

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

fc -l #은 또한 16 개의 마지막 명령을 나열합니다.


2
사실이지만,이 중 어느 것도 당면한 문제를 다루지 않습니다.
Jeff Schaller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.