OS X에서 .bash_history에 저장하지 않고 터미널 명령을 실행 하시겠습니까?


19

이 사이트 는 리눅스 space에서 터미널 명령을 없애기 위해 터미널 명령 앞에 추가 할 수 있다고 말합니다 .bash_history.

Mac OS X에서는 작동하지 않는 것 같습니다. 터미널에 하나의 명령을 기록에 저장하지 않고 실행할 수있는 방법을 아는 사람이 있습니까?

나는 역사를 지우고 싶지 않다.

여기에 이미지 설명을 입력하십시오


터미널 명령 앞에``(공백)를 추가 하면 역사에서 벗어날 수 없습니다.
warren

2
@warren 아니오, 그렇습니다. bash에서 기능을 활성화해야합니다.
goweon

@firebat-맞다 : 그러나 그것은 당신 가능하게 해야하는 것이기 때문에 어느 곳에서나 작동하지 않을 수도있다. :)
warren

답변:


24

~ / .bashrc에 다음 줄을 추가하십시오

export HISTCONTROL=ignorespace

그런 다음 source ~/.bashrc설정을 새로 고치려면

이것은 bash에서 해당 기능을 활성화해야합니다. 작동하지 않으면 OS X이 리눅스와 약간 다르게로드하기 때문에 ~ / .bashrc 대신 ~ / .bash_profile에 추가해야 할 수도 있습니다.


두 가지 옵션을 어떻게 사용할 수 있습니까? 사용하고 export HISTCONTROL=erasedups,ignorespace싶지만 구문이 작동하지 않는다고 생각합니다.
cwd

2
export HISTCONTROL=erasedups:ignorespace
goweon

2
그러나 나는 그것이 실제로라고 생각합니다export HISTCONTROL=ignoredups:ignorespace
goweon

3
"ignoredups"설정은 반복되는 줄을 무시합니다. "ls"를 20 번 연속해서 입력하면 역사상 그 중 하나만 끝납니다. 그러나 "ls"를 입력 한 다음 "ps"를 입력 한 다음 "ls"를 다시 입력하면 매번 "ls"와 "ps"가 저장됩니다. bash 3이없고 "erasedups"를 설정하지 않는 한. 이것이 설정되면 bash 기록에 중복 항목이 전혀 입력되지 않습니다. - cyberciti.biz/faq/bash-for-loop-array
CWD

1
이것은 나를 위해 작동하지 않습니다. 난 둘 다 시도 export HISTCONTROL=erasedups:ignorespace 하고 export HISTCONTROL=ignoredups:ignorespace심지어 export HISTCONTROL=ignoredups:ignoreboth. 그러나 내가 얻는 것은 세션 전체가 아닌 각 세션에 대한 단일 항목입니다 . 즉, 명령이 이미 .bash_history세션 시작에 있고 다시 입력되면 기록에 추가됩니다 (해당 세션에 대해 한 번만) . 터미널을 시작할 때 이미`.bash_history에있는 명령이 다시 입력되면 추가되지 않도록하려면 어떻게해야합니까?
orome

1

세션을 활성 상태로 유지하는 데 관심이 없다면 다음과 같이 작동 할 수 있습니다.

kill -9 $$

로그 아웃하는 대신 현재 세션을 종료합니다. 이는 이론적으로 기록이 저장되지 않음을 의미합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.