Bash 기록에서 긴 명령을 제거하는 방법

Bash 기록에서 긴 명령을 제거하는 방법

bash 기록에서 너무 긴 명령을 삭제하는 쉬운 방법(예: bash 명령)이 있습니까? 일부 긴 명령은 기본적으로 렌더링되므로 CTRL사용할 R수 없습니다. (이상적으로는 앞으로도 너무 긴 명령을 기록에 저장하지 않는 것이 좋습니다.)

답변1

다음과 같이 bash 함수를 작성할 수 있습니다.

myhistory(){
   history -w
   gawk -i inplace '{if(length($0)<60)print}' "$HISTFILE"
   history -c
   history -r
}

메모리 내 기록을 파일에 저장하고 싶을 때 실행한 history -w다음 gnu를 사용하여 awk해당 파일을 편집하고 제한(여기서는 60)보다 짧은 줄만 다시 씁니다. 메모리의 기록을 지우고 -c파일에서 다시 메모리로 읽어옵니다 -r.

입력된 모든 명령에 대해 이 작업을 수행하려면 모든 프롬프트 전에 호출되도록 설정할 수 있습니다 PROMPT_COMMAND='myhistory'.

답변2

다음 명령을 통해 Bash 기록을 표시할 수 있습니다.

history

여기에서 기록에서 원치 않는 명령 번호를 제거할 수 있습니다.N명령을 통해

history -d <n>

한 번에 여러 명령 번호를 지정(따라서 삭제)할 수 있습니다.


또한 명령 실행이 기록에 저장되지 않도록 하려면 명령을 실행하기 전에 명령 앞에 공백을 추가하십시오.

[root@mylinuxbox ~]# cat /etc/hostname

기록에 저장됩니다.

[root@mylinuxbox ~]#  cat /etc/hostname

아니다.

@phuclv가 주석에서 지적했듯이 HISTCONTROL변수(예: yours )를 설정하여 ~/.bashrc이 동작을 활성화합니다 .

export HISTCONTROL=ignorespace

답변3

~/.bash_history편집기를 사용하여 이러한 줄을 편집하고 삭제할 수 있습니다 .

관련 정보