: 기존에 실행한 명령어 이력을 보여 주거나 실행할때 사용합니다.
아래의 메뉴얼 페이지 그림은 영어를 좋아하는 분 또는
영어로 봐야 의역으로 인한 이해가 잘못된 부분을 위한 첨부입니다.
목차
0> 도표
옵션
|
의미
|
기타
|
-c
|
기존 히스토리 리스트 지우기
|
1-1번 항목 참조
|
-d offset
|
offset 해당하는 히스토리 제거
|
1-2번 항목 참조
|
-a
|
히스토리 라인을 히스토리 파일에 추가
|
1-3번 항목 참조
|
-n
|
히스토리파일에서 읽지않은 라인 읽기
|
1-4번 항목 참조
|
-r
|
히스토리 파일을 읽어서 히스토리 리스트에 추가
|
1-5번 항목 참조
|
-w
|
현재 히스토리를 히스토리 파일에 저장
|
1-6번 항목 참조
|
-p
|
히스토리 확장수행하나 히스토리 리스트 미저장
|
1-7번 항목 참조
|
-s
|
히스토리 리스트로 ARGs 추가하나 실행안함.
|
1-8번 항목 참조
|
1> 옵션
: 옵션 정보 읽기 ( help history)
1-1> -c 옵션
: 기존 히스토리 리스트 지우기
( clear the history list by deleting all of the entries)
>> 현재 열린 터미널의 리스트만 지워지고 다시 터미널 열면 기존 history 남아 있습니다.
새로 창이 열릴 경우 HISTFILE 에서 다시 히스토리 읽어옴. (HISTFILE == ~/.bash_history)
$ history
1003 type -a times
~~~ 중략 ~~~
1999 nautilus .
2000 exit
2001 man history
2002 history
$ history -c
$ history
1004 history
1-2> -d 옵션 (offset)
: OFFSET 에 해당하는 히스토리 엔트리 제거
(delete the history entry at offset OFFSET.)
$ history
~~~ 중략 ~~~
1992 adb shell screencap -p /sdcard/screencap.png
1993 adb pull /sdcard/screencap.png
1994 nautilus .
~~~ 중략 ~~~
>> 1993 offset 제거
$ history -d 1993
$ history
~~~ 중략 ~~~
1992 adb shell screencap -p /sdcard/screencap.png
1993 nautilus .
1994 history
~~~ 중략 ~~~
1-3> -a 옵션
: 현 터미널의 히스토리 라인을 히스토리 파일에 추가합니다.
( append history lines from this session to the history file )
>> 이옵션 적용여부는 터미널을 새로 열어서 history 명령을 실행해야 확인됩니다.
기존 터미널 종료시 자동으로 히스토리 파일에 추가가 됩니다.
$ history
1005 history
1006 1
1007 2
~~~ 중략 ~~~
1020 15
1021 16
1022 history
~$ history -a
>> 터미널창을 새로 열기
$ history | tail -20
1985 5
1986 6
1987 7
~~~ 중략 ~~~
1995 15
1996 16
1997 history
1998 history -a
1999 history | tail 20
2000 history | tail -20
2001 history | tail -25
2002 history | tail -40
2003 history | tail -100
2004 history | tail -20
1-4> -n 옵션
: 히스토리 파일로 부터 아직 읽지 않은 히스토리 라인 읽기
( read all history lines not already read from the history file)
>> 기존 히스토리 내용 지워질수 있습니다.
>> 현재 터미널의 히스토리 리스트 내용을 히스토리 파일에 추가하기
$ cat echo_1.txt
$ history -a
>> 위 터미널과 다른 터미널에서 기존 히스토리 파일의 내용 다시 읽기
$ history -n
>> 히스토리 리스트 마지막 10개 읽기
$ history | tail
3015 history | grep 11*
3016 history | grep 11?
3017 history | grep 1?
3018 ls
3019 history
3020 cd Temp
3021 ls
3022 cat echo_1.txt <---- 다른 터미널에서 사용한 명령어가 들어 있네요.
3023 history -a
3024 history | tail
1-5> -r 옵션
: 히스토리 파일을 읽어서 히스토리 리스트 뒤에 내용을 추가합니다.
( read the history file and append the contents to the history list)
>> 히스토리 파일 읽기
~$ cat ~/.bash_history
a
b
~~~ 중략 ~~~
h
i
j
>> 터미널 열기
$ history
1 a
2 b
~~~ 중략 ~~~
9 i
10 j
11 history
>> 히스토리 이력 추가하기
$ A
$ B
$ C
$ D
$ E
$ F
F: command not found
>> 히스토리 읽기
$ history
1 a
2 b
~~~ 중략 ~~~
8 h
9 i
10 j
11 history
12 A
13 B
14 C
15 D
16 E
17 F
18 history
$ history -r
$ history
$ history
>> 히스토리 파일에서 추가된 내용
1 a
2 b
~~~ 중략 ~~~
9 i
10 j
>> 히스토리 리스트 추가된 내용
11 history
12 A
13 B
14 C
15 D
16 E
17 F
18 history
19 history -r
>> -r 옵션에 의해 추가된 히스토리 파일 내용
20 a
21 b
~~~ 중략 ~~~
28 i
29 j
30 history
1-6> -w 옵션
: 현재 히스토리 내용을 히스토리 파일에 쓰기
>> 현재 히스토리 리스트를 히스토리 파일에 쓰기
$ history -w
>> 히스토리 파일 체킹
$ cat ~/.bash_history
~~~ 중략 ~~~
>> 현재 히스토리 리스트를 hist1 파일에 쓰기
$ history -w hist1
>> hist1 파일 체킹
$ cat hist1
~~~ 중략 ~~~
1-7> -p 옵션
: 히스토리 확장 수행하고 결과를 출력하나 히스토리 리스트에는 저장하지 않습니다.
$ history
1 a
2 b
3 c
~~~ 중략 ~~~
32 echo $HISTSIZE
33 echo $HISTFILESIZE
~~~ 중략 ~~~
43 history
>> 32번 항목을 실행하지만 히스토리 리스트에 추가하지는 않습니다.
$ history -p !32
history -p echo $HISTSIZE
echo
1000
>> 기존 히스토리 리스트 마지막이 43번 이었고 다시 체킹시 동일하네요.
$ history
1 a
2 b
3 c
~~~ 중략 ~~~
32 echo $HISTSIZE
33 echo $HISTFILESIZE
~~~ 중략 ~~~
43 history
$
1-8> -s 옵션
: 히스토리 리스트에 ARGs 에 해당되는 내용이 추가됩니다.
$ history | tail -5
59 history -d {55,56,57}
60 history
61 history -d {55,56,57,58}
62 history
63 history | tail -5
>> 히스토리 리스트에 "ls -al" 추가하기 / 실행은 되지 않습니다.
$ history -s "ls -al"
>> 64번 항목 추가 체킹
$ history | tail -5
61 history -d {55,56,57,58}
62 history
63 history | tail -5
64 ls -al
65 history | tail -5
< 기타>
history 안에서 add 글자 찾기
>> grep 명령 과 파이프라인( | ) 만 뒤에 추가하면 됩니다.
$ history | grep add
519 번 항목 다시 실행하기 (!이력번호)
!519
>> 기존에 이미 만들어진 origin 을 다시 add 할려고 해서 fatal 에러가 나온거니 무시해도 됩니다.
기존에 실행된 날짜/시간정보 (timestamp) 표시하기
$ HISTTIMEFORMAT="%F %T "
$ history
HISTTIMEFORMAT 에 사용된 %F , %T 의 의미를 알려면 bash manual 를 봐야 합니다.
$ man bash
>> strftime(3) 이란 부분 보이시죠.
$ man 3 strftime
>> %F ,%T 에 대한 설명이 나오네요
%F : 날짜 형식 , %T : 시간 형식
$ HISTTIMEFORMAT="%d/%m/%y %T "
$ history
직전 사용한 10개 명령 표시
$ history 10
1996 ls
1997 look
1998 man look
1999 man last
2000 last
2001 ls
2002 cd Temp
2003 ls
2004 history
2005 history 10
마지막 실행 명령보다 3개전 명령 실행하기 ( $ !-3)
$ history | tail
2035 2
2036 3
2037 4
2038 5
2039 6
2040 7
2041 8 >> !-4
2042 9 >> !-3
2043 0 >> !-2
2044 history | tail >> !-1
$ !-3
9
9: command not found
$
!! (double exclamation) :바로 이전 명령 실행하기
>> Refer to the previous command (!-1)
$ 7
7: command not found
$ 8
8: command not found
$ 9
9: command not found
$ !!
9
9: command not found
$
!string
>> string 으로 시작하는 가장 최근 명령을 참조합니다.
$ history | grep find
1078 find -name embms.apk
1113 find -name sdl.conf
1125 find -name anroid.*
1126 find -name android.*
1127 find -name android.permission.*
1197 find -name Hello*
2065 history | grep find
$ !find
find -name Hello*
사용 변수 (HISTFILE, HISTFILESIZE ,HISTSIZE)
>> 히스토리 리스트 크기
$ echo $HISTSIZE
1000
>> 히스토리파일 크기
$ echo $HISTFILESIZE
2000
>> 히스토리 파일 이름
$ echo $HISTFILE
/home/[USER]/.bash_history
도움이 되셨다면 하트 선사 부탁드려요.
그럼 수고하세요.
'리눅스 (linux) > 명령어' 카테고리의 다른 글
리눅스 cat 명령어 사용법 ( -b, -n, -E, -s, -v, -T ) (0) | 2022.02.22 |
---|---|
리눅스 grep 명령어 사용법 ( -r, -v, -E, -i, -s, -n, -h, -w, -f, -x) (0) | 2022.02.21 |
리눅스 find 명령어 사용법 (-P,-L,-H,-D,-type, -print0,-ls...) (0) | 2022.02.17 |
리눅스 echo 명령어 사용법 ( -n, -e , -E , --help) (0) | 2022.02.17 |
리눅스 mkdir 명령어 사용법 ( -m, -p, -v, -Z) (0) | 2022.02.16 |