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 명령어를 실행해 보자
정상적으로 설정이 적용된 것을 확인할 수 있다.
[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 |