grep을 사용할 때 암호 또는 기타 민감한 정보가 bash 기록에 저장되는 것을 방지하는 방법은 무엇입니까? 사용할 때 비밀번호 또는

최근에 파일에 저장된 암호를 grep해야했습니다. 나는 그 줄이 bash 기록에 나타나기를 원하지 않았습니다.

grep을 사용할 때 비밀번호 또는 기타 민감한 정보가 bash 기록에 저장되지 않도록하려면 어떻게해야합니까? 예를 들어, grein이 stdin 또는 console에서 패턴을 읽도록하려면 어떻게해야합니까?



답변

당신이 두는 경우에 HISTCONTROL=ignorespace당신의 .bashrc에, 당신은 명령 이름 앞에 공백을 넣어, 그것은 당신의 이력에 추가되지 않습니다.

$ export HISTCONTROL=ignorespace
$ grep "passwd" secret_password_file.txt   # added to history
$  grep "passwd" secret_password_file.txt  # not added to history

답변

완전성을 위해, 나는 신체의 질문에 대답합니다 : grep이 stdin에서 패턴을 읽는 방법 :

-f옵션을 사용할 수 있습니다 :

grep -f- /path/to/file

그것은 stdin한 줄에 하나씩, 많은 패턴을 읽습니다 . ( -의미 stdin; 패턴 당 파일을 한 줄에 하나씩 지정할 수도 있습니다.) grep/path/to/file지정된 패턴과 일치하는 행 과 일치합니다.


답변

이것은 내가 생각해 낼 수있는 최선입니다.

grep $(read -p "Pattern: "; echo $REPLY) .*

이것으로 충분합니까? 터미널을 스크롤하는 것 이외의 패턴을 복구 할 수 있습니까? 더 좋은 방법이 있습니까?