Computer >> 컴퓨터 >  >> 스마트폰 >> Linux

리눅스 history 명령어 설정을 최적화하는 방법

리눅스 history 명령어란?

리눅스나 유닉스 명령줄 인터페이스(CLI)를 어느 정도 사용해 본 분이라면 history 명령어를 이미 접해봤을 가능성이 높습니다. history 명령어는 지금까지 터미널에서 실행한 명령어 목록을 조회하고 검색할 수 있게 해주는 아주 유용한 도구입니다.

기본적인 사용 예시는 다음과 같습니다:

# history | grep "kill"

이 명령은 지금까지 실행한 명령어 기록에서 kill이라는 단어가 포함된 항목을 찾아 보여줍니다. 하지만 이것은 history 명령어의 가장 기본적인 활용법일 뿐입니다. 사실 이 명령어에는 몇 가지 불편한 제약이 있는데, 설정을 조금만 손보면 훨씬 더 효율적으로 사용할 수 있습니다.

문제 1: 여러 터미널 세션에서 기록이 사라지는 현상

가장 흔하게 겪는 불편함 중 하나는 터미널 세션을 두 개 이상 동시에 열어 작업할 때입니다. 먼저 닫은 세션에서 실행했던 명령어들이 history에서 사라져 버리는 경우가 발생합니다. 세션이 종료될 때 기록 파일을 통째로 덮어쓰기 때문인데, 이는 그다지 스마트하지 못한 동작 방식입니다. 다행히 간단한 설정으로 해결할 수 있습니다.

.bashrc 파일 수정하기

먼저 계정에 로그인한 후 셸 터미널을 엽니다. 사용자 홈 디렉터리에는 .bashrc라는 숨김 파일이 있습니다. 만약 파일이 없다면 새로 생성하면 됩니다. 아래 명령어로 파일을 열되, user 부분은 본인의 사용자명으로 바꿔 입력하세요:

# vim /home/user/.bashrc

파일에 다음 두 줄을 그대로 추가합니다:

shopt -s histappend
PROMPT_COMMAND='history -a'

설정은 이게 전부입니다. histappend 옵션은 셸이 종료될 때 기록 파일을 덮어쓰지 않고 기존 내용 뒤에 추가(append)하도록 만들고, PROMPT_COMMAND='history -a'는 프롬프트가 표시될 때마다 현재 세션의 명령어를 즉시 기록 파일에 저장합니다. 이제 여러 세션을 동시에 사용해도 모든 명령어가 누락 없이 기록에 저장됩니다.

문제 2: 중복 명령어 제거하기

history 설정에서 또 하나 추천할 만한 변경 사항은 중복 명령어를 제거하는 것입니다. 같은 명령이 반복해서 쌓이면 원하는 기록을 찾기가 오히려 어려워지는데, 중복을 걸러내면 더 많은 정보를 더 빠르게 확인할 수 있습니다. .bashrc 파일을 다시 열고 새 줄에 다음 내용을 추가하세요:

export HISTCONTROL="ignoredups"
export HISTIGNORE="&:ls:[bf]g:exit"

파일을 저장하고 편집기를 종료합니다. 이제 history는 새로운 명령어를 기록하기 전에 이미 로그 파일에 존재하는지 먼저 확인합니다. 참고로 HISTIGNORE에 지정된 값은 기록에 남기지 않을 명령어 패턴으로, 연속 중복(&), ls, bg, fg, exit처럼 굳이 남길 필요가 없는 명령들을 제외시킵니다.

문제 3: 명령어 철자 오류 자동 교정

마지막으로 추천하는 설정은 철자 검사 기능입니다. .bashrc 파일에 아래 한 줄을 추가하면 잘못 입력한 명령이나 경로의 사소한 철자 오류를 자동으로 감지해 올바른 명령을 찾는 데 도움을 받을 수 있습니다:

shopt -s cdspell

저장 후 종료하면 끝입니다. 이제 grepgerp로 잘못 입력하는 실수를 줄일 수 있습니다. 참고로 cdspell은 주로 cd 명령어 사용 시 디렉터리 이름의 오타를 교정해 주는 옵션이므로, 명령어 자체의 추천 기능이 필요하다면 이와 함께 활용하면 좋습니다.

마무리

이처럼 .bashrc 파일에 몇 줄만 추가하면 history 명령어를 훨씬 강력하게 만들 수 있습니다. 여러 세션 간 기록 보존, 중복 제거, 철자 오류 교정까지 — 오늘 소개한 설정을 적용해 더 쾌적한 리눅스 터미널 환경을 만들어 보세요. 다른 리눅스 팁과 가이드도 함께 확인해 보시길 바랍니다!