상세 컨텐츠

본문 제목

[Linux] History 명령어

System/OS

by 귤똥 2018. 6. 25. 02:04

본문

 

 

History 명령어에 대해서 알아보자

 

먼저 History 명령어가 무엇이라고 하면 간단하게 다음과 같이 설명할 수 있다.

 

접속한 사용자가 Shell에 입력한 내용을 기록하는 것 

 

설명한 내용대로 기록이 되는지 확인을 해보자

 

확인을 해보기 위해서 아무런 명령어 및 문자를 입력한다.

 

 

정상적으로 내가 입력한 명령어가 기록에 남아 있는 걸 확인할 수 있다.

 

기록이 나오는 걸 확인하였으니 다음은 기록 정보가 어디에 저장이 되는지 확인을 해보자

 

History의 기록 파일은 다음과 같은 곳에 존재한다

 

~/.bash_history

 

해당 경로로 이동을 하면 기존에 내가 입력한 정보가 파일로 저장되어 있는 것을 확인할 수 있다.

 

기록 정보가 올바르게 저장되어 있는지 확인해보자

 

확인해보기 위해서 다음과 같이 명령어를 입력한다

 

more ~/.bash_history

 

 

정상적인 경우라면 파일에 기록된 정보를 확인할 수 있어야 하는데

 

"No such file or directory"

 

메시지를 확인할 수 있다.

 

History 명령어가 정상적으로 동작하지 않는 것인가 할 수 있지만 정상적으로 동작하는 것이다

 

그럼 왜 파일을 확인할 수 없는가라고 생각을 하면

 

History에 저장되는 구조를 알면 쉽게 이해할 수 있다.

 

 

 

History는 사용자가 Shell에 입력한 내용을 바로 파일에 저장하지 않고 메모리상에 저장을 해 놓는다

 

그리고 사용자가 로그아웃하게 되면 메모리 상에 있는 History의 정보를 파일로 저장한다.

 

그러면 먼저 History의 정보가 메모리상에 생성되는지 확인해 보자

 

 

 

메모리 사용량을 확인하기 위해서 Shell에 여러 명령어 및 문자를 입력을 먼저 한다.

 

테스트를 하기 위해서 210개의 명령어 및 문자를 입력하였다.

 

이제 메모리 사용량을 확인하기 위해서 다음과 같은 명령어를 입력한다.

 

free -k

 

명령어를 입력하면 현재 메모리 사용량을 확인할 수 있다.

 

 

현재 메모리 사용량이 175,512KB 인걸 확인할 수 있다.

 

그리고 SSH 연결을 끊어 로그아웃을 진행 후 다시 로그인 후 메모리 사용량을 확인해 보자

 

 

로그아웃 후 메모리 사용량을 확인해 보면 175,636KB으로 사용량이 줄어든 것을 확인할 수 있다.

 

그리고 History 기록 정보를 저장하는 파일이 생성되었는지 다시 확인해 보기 위해 명령어를 입력한다.

 

tail -f ~/.bash_history

 

 

more로 출력하면 너무 많이 출력되기 때문에 tail 명령어를 통해 가장 최근 10개 행을 출력한다.

 

정상적으로 파일이 생성되어 기록 정보를 확인할 수 있다.

 

 

다음은 History 옵션에 대해서 알아보자

 

옵션이 워낙 많기 때문에 주로 사용하는 옵션에 대해서만 설명을 하겠다.

 

history n

 

History 기록 내용을 출력하는데 마지막 n개 까지만 출력한다.

 

 

history 5를 입력해보니 마지막 5개의 기록이 출력되는 걸 확인할 수 있다.

 

history -w 저장파일이름

 

History 명령어를 입력했을 때 출력되는 값을 파일로 저장한다.

 

 

History 기록 정보가 20180625.txt 파일로 저장되는 걸 확인할 수 있다.

 

파일을 저장할 때 현재 디렉터리 말고 다른 디렉터리에 저장하기 위해서는 filename에 경로까지 적어준다.

 

history -c

 

History의 기록정보를 초기화 시킨다.

 

단 메모리상에 기록정보만 초기화 시키고 파일에 저장되어 있는 기록 정보는 초기화 시키지 않는다.

 

 

History 기록 정보가 초기화된 걸 확인 할 수 있다.

 

참고로 history 기록 정보를 초기화 하게 되면 Shell에서 방향키로 초기화 이전 명령어를 확인할 수 없게 된다.

 

 

그 외 grep 명령어를 통해서 내가 확인하고 싶은 정보가 있는지 확인할 수 있다.

 

history | grep 문자열

 

 

history 기록정보에서 원하는 문자열 검색이 되는 걸 확인할 수 있다.

 

 

마지막으로 기본적인 History 설정에서는 입력값에 대한 정보만 출력이 되고

 

시간 정보는 보이지 않는 걸 확인할 수 있다.

 

해당 입력값이 언제 실행이 되었는지 확인하기 위해서는 다음과 같이 진행한다.

 

vi /etc/profile

 

해당 파일에 vi 편집기를 통해서 아래의 구문을 입력한다.

 

export HISTTIMEFORMAT="%F %T "

 

 

입력을 완료하였으면 ESC를 눌러 INSERT 모드에서 나와 :wq를 입력하여 파일 저장을 한다.

 

그리고 해당 설정 파일을 적용하기 위해서 다음과 같이 입력한다.

 

source /etc/profile

 

오타가 없다면 다음과 같이 정상적인 화면이 출력될 것이다.

 

 

적용이 똑바로 되었는지 History 명령어를 실행해 보자

 

 

정상적으로 설정이 적용된 것을 확인할 수 있다.

'System > OS' 카테고리의 다른 글

[Linux] IP 설정  (0) 2019.08.07
[Linux] Logrotate 설정  (1) 2019.08.06
[Linux] tar 명령어  (0) 2018.06.29
[Windows] FTP 없이 파일 전송 방법  (0) 2018.06.27
[Linux] yum 사용방법 및 resolve 에러 해결방법  (0) 2017.07.25

관련글 더보기