
한동안 뭔가가 나를 괴롭혔고 매뉴얼 페이지나 'Don't be evil' 검색 엔진을 사용하여 관련 답변을 찾을 수 없는 것 같습니다.
내 .bashrc에는 다음이 있습니다.
shopt -s histappend
HISTSIZE=100
HISTFILESIZE=0 # 200 previous value
HISTFILESIZE를 0으로 설정하면 새 학기마다 깨끗한 기록으로 시작할 수 있습니다.
or 를 \#
사용하여 호출하기 전에 이전 명령을 시각화할 때 다음을 수행할 수 있기 때문에 가 포함된 프롬프트를 사용하는 것이 실용적이라고 생각합니다 .!n
!-p
$ history | more
관련 "n" 값을 보려면
내 경우에는 일반적으로 다음과 같은 결과가 발생합니다.
$ \history | tail -1 | awk '{print $1}' # (I know this is an overkill, don't flame me)
PS1의 # 확장 값에서 1을 뺀 것과 같습니다. 이것이 제가 항상 좋아하는 방식입니다. 하지만 때로는 그렇지 않을 때도 있습니다. 때때로 # 일종의 "도망가다"의 확장된 값이 나타납니다. >보다 커지는 방식으로 증가합니다.
$(( $(\history | tail -1 | awk '{print $1}')+1 ))
조언해줄 사람 있나요?
답변1
HISTCONTROL
가장 가능성 있는 이유는 를 포함하는 값을 설정했기 때문일 수 있습니다 ignoredupes
. 실행하여 테스트
echo $HISTCONTROL
와 같은 결과가 반환되면 ignoredups
이는 중복 명령이 기록에 저장되지 않음을 의미합니다. 그들~이다그러나 PS1의 \#
. 이는 \#
동일한 명령을 두 번 실행할 때마다 행복하게 증가하지만 history
증가하지 않으며 이로 인해 관찰되는 불일치가 발생함을 의미합니다.
따라서 를 제거하거나 ignoredupes
( HISTCONTROL
보통 에서 설정되지만 ~/.profile
에서도 설정할 수 있음 ~/.bashrc
) 다음을 사용하십시오.\!
대신 \#
에 PS1
.