![Bash 기록에서 긴 명령을 제거하는 방법](https://linux55.com/image/218721/Bash%20%EA%B8%B0%EB%A1%9D%EC%97%90%EC%84%9C%20%EA%B8%B4%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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
편집기를 사용하여 이러한 줄을 편집하고 삭제할 수 있습니다 .