명령 히스토리

history 명령

이전에 수행했던 명령 행의 목록을 불러오는 명령어

1
2
3
4
5
6
7
8
9
10
# 이전에 수행했던 명령 행의 목록 출력
history
>>    4  ll
>>    5  nano ./peer3.conf
>> ...
>>  999  cat ~/.bashrc
>> 1000  su
>> 1001  man 5 rm
>> 1002  man rm
>> 1003  history

최근 n개 명령어만 출력할 경우 history <n> 과 같이 인수를 사용하면 된다.

1
2
3
4
5
6
7
# 최근 n개만 출력
history 5
>> 1001  man 5 rm
>> 1002  man rm
>> 1003  history
>> 1004  history 10
>> 1005  history 5

history 기능을 이용한 명령 실행

입력 방법 설명
!! + enter 직전 명령 실행
!n + enter 히스토리 목록에서 번호 n번에 해당하는 명령 실행
!-n + enter 히스토리 목록에서 n번에 앞에서 수행한 명령 실행
!-1 + enter : 직전 명령
!string + enter 지정 문자열로 시작하는 가장 최근 명령
!?string + enter 지정 문자열을 포함하는 가장 최근 명령
⬆️ or ⬇️ 누를 때마다 직전 또는 직후 명령을 불러오는 것.
프롬프트에 불러오는 것이므로 수정작성 가능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# history 5
history 5
>> 1005  history 5
>> 1006  whereis docker
>> 1007  ll
>> 1008  ls
>> 1009  history 5

# !! : 직전 명령 실행
!!  
>> 1005  history 5
>> 1006  whereis docker
>> 1007  ll
>> 1008  ls
>> 1009  history 5

# !n : n번 명령 실행
!1008
>> docker   docker-compose  docker_mounts   installation ..

# !-n
!-4
>> docker: /usr/bin/docker /etc/docker /usr/libexec/docker /usr/share/man/man1/docker.1.gz

# !string
!where
>> whereis docker
>> docker: /usr/bin/docker /etc/docker /usr/libexec/docker /usr/share/man/man1/docker.1.gz

# !?string
!?docker
>> whereis docker
>> docker: /usr/bin/docker /etc/docker /usr/libexec/docker /usr/share/man/man1/docker.1.gz

# ⬆️ or ⬇️
⬆️ + enter
>> 1005  history 5
>> 1006  whereis docker
>> 1007  ll
>> 1008  ls
>> 1009  history 5

명령 히스토리 저장 원리

명령 히스토리 저장 위치

-저장 위치 : 명령 히스토리는 홈 디렉터리의 .bash_history 파일에 기록됨.
-저장 시점 : 셸을 끝내는 시점에, 수행된 명령어 목록이 위 파일에 기록됨.
-기본 개수 : 기본 1,000개의 명령 행이 기록됨.
-셸 재시작시 : 홈 디렉터리의 .bash_history 파일로부터 히스토리 목록을 가져와 초기화

히스토리와 관련된 환경 변수

환경 변수 설명
HISTSIZE -하나의 셸에서 저장되는 명령 히스토리의 최대 개수
-기본 1,000개
HISTFILE -히스토리 파일 경로
-기본 ~/.bash_history
HISTFILESIZE -히스토리 파일의 최대 라인 수
여러 셸의 히스토리 통합 저장시 기본 1,000개
1
2
3
4
5
6
7
8
echo $HISTSIZE
>> 1000

echo $HISTFILE
>> /home/<user>/.bash_history

echo $HISTFILESIZE
>> 1000

Reference

UNIX시스템 - 김희천,김진욱 저