
터미널에서 이미 사용한 명령줄을 검색할 때 bash 기록이 도움이 되는 경우가 많습니다. 하지만 bash 기록의 동작에 영향을 미칠 수 있는 방법이 있습니까(즉, 어떤 명령이 저장되는지, 얼마나 오래 저장되는지, 얼마나 많이 저장되는지 등)?
답변1
여러 변수가 기록의 동작을 제어합니다.
HISTCONTROL
: 기록에 값이 저장되는 방식을 제어합니다. 값ignorespace
,ignoredups
및erasedups
는 여기에 입력할 수 있습니다(콜론으로 구분).HISTFILE
: 히스토리 파일의 위치를 설정합니다.HISTFILESIZE
: 기록 파일의 최대 줄 수를 설정합니다.HISTIGNORE
: bash가 무시하는 패턴 목록이 있습니다(참조다른 대답구문의 경우).HISTSIZE
: 실제 쉘에서 기억되는 여러 줄을 포함합니다.HISTTIMEFORMAT
: 항목의 형식이 지정되는 방식에 대한 표현식이 포함되어 있습니다(참조다른 답변)
답변2
기록의 타임스탬프 설정:
기본적으로 기록에는 타임스탬프가 추가되지 않지만 타임스탬프를 표시하도록 구성하는 것은 쉽습니다. 하나의 환경 변수만 설정하면 됩니다.HISTTIME형식.
export HISTTIMEFORMAT="%h/%d - %H:%M:%S "
- 결과를 보려면 기록을 다시 실행하십시오.
명령을 기록에 저장하고 싶지 않다면
export HISTSIZE=0
변수:
- HISTFILE - 기록 파일이 저장되는 위치를 제어합니다.
- HISTFILESIZE - HISTFILE에 보관할 기록 명령 수를 제어합니다.
- HISTSIZE - 현재 세션의 기록 목록에 유지할 기록 명령 수를 제어합니다.
- HISTIGNORE - 무시하고 기록 목록에 저장하지 않을 명령을 제어합니다.
메모:
- 터미널을 닫으면 설정이 손실됩니다. 따라서 영구적으로 설정하려면 위 명령을
~/.bashrc
또는 에 추가해야 합니다~/.bash_aliases
.
답변3
다음과 같은 줄을 추가할 수 있습니다.
export HISTFILESIZE=5000
~/.bashrc
기록의 크기를 늘리 려면 기본적으로 공백으로 시작하는 명령은 저장되지 않습니다. 이는 export HISTCONTROL=ignoreboth
우분투에서 기본적으로 전역적으로 활성화되어 있기 때문입니다 .
l
또는 다음을 which
사용하여 시작하는 명령을 무시할 수도 있습니다.
export HISTIGNORE="l*:which*"
답변4
명령을 기억하지 않도록 기록에 지시하는 방법이 있습니다. 공백으로 시작하면 됩니다. 특정 명령을 검색하는 매우 쉬운 방법도 있습니다. CTRL+R을 입력하고 검색하려는 명령에서 단어를 입력하세요.
기본적으로 500줄인 기본 기록을 늘리는 방법이 확실히 있습니다. 하지만 방법을 모르겠습니다. 죄송합니다!