Ubuntu: 흔적 없이 루트 .bash_history 일부 삭제

Ubuntu: 흔적 없이 루트 .bash_history 일부 삭제

루트의 .bash_history 파일은 다음과 같습니다.

line 1
line 2
line 3
line 4

이제 3행과 4행을 삭제합니다.

su
vim ~/.bash_history

#delete line 3 und 4 with dd
line 1
line 2

:wq

ENTER
CTRL + D

하지만 지금 .bash_history를 살펴보면 다음과 같습니다.

su
cat ~/.bash_history

#.bash_history
line 1
line 2
vim ~/.bash_history

그렇다면 파일을 편집했음을 보여주는 마지막 줄 없이 기록의 일부만 삭제할 수 있는 방법은 무엇입니까?

감사해요

답변1

사용:

su
 vim ~/.bash_history

기록에 다음이 있는 경우 명령이 저장되지 않습니다.공간그 앞에.


이는 변수에 따라 다릅니다 HISTCONTROL. 기본적으로 (루트의 경우) 입니다 ignoredups:ignorespace.

답변2

이미 언급했듯이 명령 앞에 공백을 사용할 수 있지만 이는 HISTCONTROL변수에 따라 다릅니다. 다음은 몇 가지 대안입니다.

실제로 터미널에 기록 기록을 중지하고 시작하도록 지시할 수 있습니다. 다음 명령을 사용하여 수행할 수 있습니다.

set +o history      #stop recording history
set -o history      #start recording history

이미 일부 명령을 실행했지만 기록 중지 또는 공간 사용을 잊어버린 경우 .bash_history에도 세션이 열려 있는 동안에는 기록을 중지할 수 있습니다. 터미널 세션을 닫을 때 파일에 기록됩니다. 따라서 세션을 닫기 직전( su귀하의 경우 종료하기 전)에 현재 세션 기록을 삭제할 수 있습니다. 다음 명령을 사용하여 수행할 수 있습니다.

history -c

극단적인 옵션은 모든 명령 실행이 끝나면 터미널 프로세스를 종료하는 것입니다. 기본적으로 프로세스가 파일에 기록을 쓰기 전에 프로세스를 종료합니다.

kill -9 $$

$$현재 터미널 프로세스 ID를 제공하고 kill -9해당 프로세스를 종료합니다.

관련 정보