최근에 파일에 저장된 암호를 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) .*
이것으로 충분합니까? 터미널을 스크롤하는 것 이외의 패턴을 복구 할 수 있습니까? 더 좋은 방법이 있습니까?