리눅스에서 실행된 명령어 기록 확인하기
이 가이드에서는 리눅스에서 history 명령어를 사용해 지금까지 실행한 모든 명령어를 확인하는 방법을 소개합니다.
리눅스 서버를 사용하거나 관리하는 경우, 해당 머신에서 실행된 명령어 이력을 살펴볼 수 있으면 매우 유용합니다. 특히 문제를 디버깅할 때 "어떤 명령을 실행했더라?" 하고 되짚어봐야 하는 상황이 자주 생기는데, 이럴 때 history 명령어가 큰 도움이 됩니다.
기본 사용법
터미널에서 아래와 같이 입력하면 현재 로그인한 사용자가 실행한 명령어 목록이 순서대로 출력됩니다.
# history
...
946 rpm -R mutt-1.4.1-11.rhel4.i386.rpm
947 rpm -qR mutt-1.4.1-11.rhel4.i386.rpm
948 sudp rpm -qa | mail
949 sudo rpm -qa | mail
950 sudo rpm -qa | grep mail
951 rpm -qR sendmail-8.13.1-3.2.el4
952 cd scripts/log_parse/
...명령어 실행 시간까지 표시하기
기본 출력만으로는 각 명령어가 언제 실행되었는지 알 수 없습니다. 실행 시점까지 함께 확인하고 싶다면 HISTTIMEFORMAT 환경 변수를 설정하면 됩니다.
# export HISTTIMEFORMAT="%F %T "여기서 %F는 날짜(YYYY-MM-DD), %T는 시간(HH:MM:SS)을 의미합니다. 설정 후 다시 history를 실행하면 아래와 같이 각 명령어의 실행 날짜와 시간이 함께 표시됩니다.
# history
...
946 2009-07-20 08:12:33 rpm -R mutt-1.4.1-11.rhel4.i386.rpm
947 2009-07-20 08:09:33 rpm -qR mutt-1.4.1-11.rhel4.i386.rpm
948 2009-07-20 09:49:44 sudp rpm -qa | mail
949 2009-07-20 10:37:33 sudo rpm -qa | mail
950 2009-07-20 10:17:13 sudo rpm -qa | grep mail
951 2009-07-20 10:12:23 rpm -qR sendmail-8.13.1-3.2.el4
952 2009-07-20 10:22:43 cd scripts/log_parse/
...설정을 영구적으로 적용하기
export로 설정한 값은 세션이 종료되면 사라집니다. 변경 사항을 계속 유지하려면 사용자 홈 디렉터리의 .bashrc 파일에 아래 내용을 추가하세요.
echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
source ~/.bashrc참고로 히스토리 타임스탬프 기능은 bash 3.0 이상에서 지원됩니다. 또한 이전에 저장된 기록에는 시간 정보가 포함되어 있지 않기 때문에, 설정 직후에는 오래된 항목들이 정확한 실행 시간 대신 세션 시작 시간으로 표시될 수 있습니다.