이 history
명령은 현재 세션의 모든 기록을 나열합니다. 처럼:
1 ls
2 cd /root
3 mkdir something
4 cd something
5 touch afile
6 ls
7 cd ..
8 rm something/afile
9 cd ..
10 ls
11 history
위해서하는 것은 관심의 항목을 검색하려면 나는 파이프를 할 수있는 history
때와 grep
같은
history | grep ls
1 ls
6 ls
10 ls
또한 다음과 같은 마지막 3 개의 명령을 볼 수 있습니다.
history 3
11 history
12 history | grep ls
13 history 3
그러나 특정 범위의 역사를 어떻게 얻습니까? 예를 들면 다음과 같습니다.
history range 4 7
4 cd something
5 touch afile
6 ls
7 cd ..
답변
대신을 history
사용 fc
하여 범위를 선택할 수 있습니다.
fc -l 4 7
답변
history 명령 을 사용해야 하는 경우 sed 또는 awk를 통해 파이프하십시오.
history | sed -n '10,20p'
history | awk 'NR >= 10 && NR <= 20'
그렇지 않으면 cuonglm의 대답이 더 좋습니다.
답변
와 함께 역사 사용하기 내가 찾고있는 명령 주위 의 줄 번호에 grep 가장 효과적입니다.
예를 들어 나는 내가 한 일을 찾고 있습니다. ping mybox
20 줄 에서 있습니다.
$ history | grep "ping mybox"
20325 ping mybox
그것은 선 20325
이므로 [20320..20339]
범위 의 숫자로 시작하는 선을 grep해야 합니다.
$ history | grep ^203[2-3][0-9]