Bash 기록에 모든 명령을 유지하시겠습니까?

Bash 기록에 모든 명령을 유지하시겠습니까?

나는 반대의 문제가 있습니다이것. bash 기록에 모든 명령을 유지하는 방법은 무엇입니까?

우분투에서 꽤 오랫동안 bash의 기본값은 실패한 종료 코드가 있는 명령을 잊어버리는 것이었습니다.

유닉스 사용자@금화꽃어쩌면 내가 혼란스러울 수도 있다는 점을 지적해 주세요두 가지 지시를 무시하십시오.

파이 세트

답변1

FWIW, HISTFILE=~/.bash_history_$(date '+%Y%m%d_%H_%M_%S_%N').txt각 세션에 대한 타임스탬프 기록 파일을 생성하기 위해 .bashrc 파일을 사용하고 있습니다. 이렇게 하면 명령을 누를 $HISTSIZE때 명령이 손실되지 않습니다 . history현재 터미널 세션의 명령 기록만 표시되지만 이전 bash 기록은 쉽게 검색할 수 있습니다.grep 'what to find' .bash_history*

답변2

HISTCONTROL=ignoreboth내 생각엔 당신이 혼란스러워 하는 것 같아요 . 왜냐하면 . 이봐:http://www.linuxjournal.com/content/using-bash-history-more-efficiently-histcontrol

답변3

나는 당신이 하고 있다고 생각하는 일을 하고 있지 않다고 생각합니다. frobiz를 실행하고 기록에 있는지 확인하세요. Frobiz는 대개 실패합니다. 그러한 명령은 없습니다. 그러나 그것은 당신의 역사에 기록될 것입니다. 나의심하다ls *![0-9] 와 같은 것을 시도하고 있는데 실패합니다.

ls !(*.[0-9])
base ![0-9]": event not found

문제는 이렇게 실패하면 bash는 명령을 실행하려고 시도하지 않으므로 기록에 기록되지 않는다는 것입니다. IGNOREBOTH는 이것과 아무 관련이 없습니다. 광고된 대로 작동합니다. 탈출을 시도해보세요! (아이러니하게도 쉘은 기록의 명령을 참조합니다.) - 예:

ls \! ...

예상대로 작동할 수 있습니다.

관련 정보