답변:
로부터 bash
매뉴얼 페이지
히스 트롤
히스토리 목록에서 명령이 저장되는 방법을 제어하는 콜론으로 구분 된 값 목록. 값 목록에가 포함되어 있으면
ignorespace
공백 문자로 시작하는 행이 기록 목록에 저장되지 않습니다. 값을 지정ignoredups
하면 이전 기록 항목과 일치하는 행이 저장되지 않습니다. 의 값은 및의ignoreboth
약어입니다 . 가치ignorespace
ignoredups
erasedups
행을 저장하기 전에 현재 행과 일치하는 모든 이전 행이 기록 목록에서 제거됩니다. 위 목록에없는 값은 무시됩니다. HISTCONTROL이 설정되어 있지 않거나 유효한 값을 포함하지 않으면 셸 파서가 읽은 모든 행이 HISTIGNORE 값에 따라 히스토리 목록에 저장됩니다. 여러 줄 복합 명령의 두 번째 및 그 이후 줄은 테스트되지 않으며 HISTCONTROL의 값에 관계없이 기록에 추가됩니다.
따라서 다음 줄을 넣으십시오 ~/.bashrc
.
export HISTCONTROL=ignoreboth:erasedups
~/.bash_login
때 .bashrc가 수정 된 경우 대부분 작동하지만 항상 그렇지는 않습니다 .
source ~/.bashrc && source ~/.bash_profile
이것을 당신의 스틱 ~/.bashrc
:
export HISTCONTROL=ignoredups
대신 사용할 수 있습니다 ignoreboth
. 이것은 ignorespaces
(공백으로 시작하는 명령)과 ignoredups
(중복) 둘 다에 대한 약어입니다 .
내가 좋아 ignoredups
내가 웹 사이트를 명령을 복사 할 때 나는 매우 성가신 앞에 공백 명령을 무시의 기본 동작을 발견하면 그 자체에 내가 실수로 너무 공간에 복사하기 때문에이 저장되지 않습니다 .... 그러나에 각각 자신의.
ignoredups
하면 이전 기록 항목과 일치하는 행이 저장되지 않습니다 . 연속 된 동일한 줄만 제거합니다.
이것을 넣으면 ~/.bashrc
wlell과 같은 다른 세션에서 @alvin의 솔루션이 적용됩니다.
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND"
export HISTCONTROL
과 당신의 사용 하지 않습니까? 차이점이 뭐야? 수출없이 저를 위해 일하고 있습니다. 궁금합니다.
export
하위 프로세스에서 변수를 사용할 수 있습니다. stackoverflow.com/q/1158091/552621 의 경우 HISTCONTROL
, PROMPT_COMMAND
등,이 변수는 어쩌면 (아이들 처리) 필요하지 않습니다를 수출 쉘 자체에 의해 사용됩니다.