명령 앞에 공백 문자를 추가하면 기록에서 사라집니다. 그러나 이는 또한 명령을 편집하고 다시 실행하기 어렵게 만듭니다.
메모리가 아닌 영구 기록에서만 사라지도록 공간 감사 명령의 약한 버전을 만들려면 어떻게 해야 합니까?
`command` ` command` I want
Saved to .bash_history: Yes No No
Can uparrow, edit and re-execute: Yes No Yes
답변1
제가 아는 한 bash에는 그런 기능이 없습니다.
한 가지 가능한 해결 방법은 명령을 별칭이나 함수에 넣고 명령 기록에서 별칭/함수 정의를 생략하는 것입니다. 별칭/함수를 계속 사용할 수 있으며 해당 사용법은 기록 파일에 기록되지만 함수 정의 자체는 메모리에만 유지됩니다. 예를 들어 아래 세션에서는 명령이 mysql -p$(mysql_password)
기록 파일에 기록되지만 명령 alias mysql_password=…
앞에 공백이 있기 때문에 암호 자체는 기록 파일에 기록되지 않습니다.
$ HISTCONTROL=ignorespace
$ alias mysql_password=$(echo swordfish)
$ mysql -p$(mysql_password)
함수 정의를 편집하려면 declare -f foo
( alias foo
별칭으로)를 사용하여 인쇄하고 출력을 사용하여 새 함수를 정의할 수 있습니다(외부 편집기가 도움이 될 수도 있음).shell-expand-line
라인 읽기 기능) 이어야 합니다 C-M-e
.
또는 zsh로 전환하고 설정하십시오.HISTORY_IGNORE
바꾸다. 이 패턴과 일치하는 명령은 메모리 기록에 저장되지만 기록 파일에는 기록되지 않습니다. 명령별로 결정할 수는 없지만 #dontstore
in command 및 set 과 같은 태그를 포함할 수 있습니다 HISTORY_IGNORE='\#dontstore'
.