태그 보관물: linux

linux

기록에 유지하지 않고 명령 실행 [닫기]

일부 명령을 실행하고 싶지만 명령 기록에 저장하고 싶지 않습니다. 따라서 아무도 .bash_history파일 에서 검색 할 수 없습니다.

이 방법으로 bash 명령을 실행하는 방법이 있습니까?



답변

공백으로 명령을 시작하면 기록에 포함되지 않습니다.

환경 변수 $HISTCONTROL를 설정 해야합니다 .

  • 다음 명령이 반환되는지 확인 ignorespace하거나
    ignoreboth

    #> echo $HISTCONTROL
  • 누락 된 환경 변수를 추가하기 위해 다음 행을 bash 프로파일에 추가 할 수 있습니다. 예 :%HOME/.bashrc

    export HISTCONTROL=ignorespace

프로파일을 다시 소싱 한 후에는 공간 접두사가 붙은 명령이 작성되지 않습니다. $HISTFILE


답변

주어진 Bash 세션에서 다음을 입력하여 히스토리 파일을 / dev / null로 설정하십시오.

export HISTFILE=/dev/null

주석에서 지적했듯이 이것은 세션의 명령을 기록에 쓰지 않습니다!

시스템 관리자의 노력을 망쳐 놓지 마십시오.;)

Doodad의 솔루션 은 더욱 우아합니다. 변수를 설정 해제하기 만하면됩니다 : unset HISTFILE(감사합니다!)


답변

echo "discreet";history -d $(history 1)


답변

@John Doe & @ user3270492의 답변 확장. 그러나 이것은 나를 위해 작동하는 것 같습니다.

<your_secret_command>; history -d $((HISTCMD-1))

히스토리에 명령 항목이 표시되지 않아야합니다.

여기에 설명이 있습니다 ..

‘history -d’는 기록에서 언급 된 항목을 삭제합니다.

HISTCMD는 다음에 실행될 명령의 command_number를 저장합니다. 따라서 (HISTCMD-1)은 마지막으로 실행 된 명령을 나타냅니다.

Bash 기록 파일에서 특정 줄을 제거하십시오.


답변

아마도 역사처럼 쉘을 사용하는 것을 고려할 수 있습니다.

/bin/sh << END
   your commands without history
END

(아마도 /bin/dash또는 /bin/sash보다 더 적합 할 수 있음 /bin/sh)

또는 배치 유틸리티를 더 잘 사용하십시오.

batch << EOB
   your commands
EOB

역사는 포함됩니다 sh또는 batch이는 매우 의미가 없습니다


답변

당신은 세션을 시작할 수 있습니다

export HISTFILE=/dev/null ;history -d $(history 1)

그런 다음 은밀한 행동을 계속하십시오. histfile을 설정하면 /dev/null히스토리 파일에 기록되지만이 항목은 즉시 삭제되며 최소한 히스토리 파일에 추적이 표시되지 않습니다.

또한 이것은 영구적이지 않습니다.


답변

코멘트 에서 Doodad가 언급했듯이 , unset HISTFILE이 작업은 훌륭하게 수행하지만 일부 기록을 삭제하려는 경우 echo $HISTFILE기록 파일 위치 (일반적으로 ~/.bash_history) 를 가져 unset HISTFILE오고 편집하십시오 ~/.bash_history( HISTFILE물론 지금 무엇이든 unset할 수 있습니다. 읽지 마십시오).

$ echo $HISTFILE       # E.g. ~/.bash_history
$ unset HISTFILE
$ vi ~/.bash_history   # Or your preferred editor

그런 다음 기록을 편집하고 편집 한 사실을 편집했습니다!