.bash_history 외부 명령을 검사하고 위쪽 화살표를 사용하여 해당 명령으로 돌아갈 수 있는 방법은 무엇입니까?

.bash_history 외부 명령을 검사하고 위쪽 화살표를 사용하여 해당 명령으로 돌아갈 수 있는 방법은 무엇입니까?

명령 앞에 공백 문자를 추가하면 기록에서 사라집니다. 그러나 이는 또한 명령을 편집하고 다시 실행하기 어렵게 만듭니다.

메모리가 아닌 영구 기록에서만 사라지도록 공간 감사 명령의 약한 버전을 만들려면 어떻게 해야 합니까?

                                  `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바꾸다. 이 패턴과 일치하는 명령은 메모리 기록에 저장되지만 기록 파일에는 기록되지 않습니다. 명령별로 결정할 수는 없지만 #dontstorein command 및 set 과 같은 태그를 포함할 수 있습니다 HISTORY_IGNORE='\#dontstore'.

관련 정보