Ostatnio musiałem grepować za hasłem, które mogło zostać zapisane w pliku. Nie chciałem, aby ten wiersz pojawiał się w historii bash.
Jak mogę zapobiec przechowywaniu hasła lub innych poufnych informacji w historii bash podczas korzystania z grep? Na przykład, jak mogę uzyskać grep, aby odczytał wzór ze standardowego wejścia lub konsoli?
Dla kompletności odpowiadam na pytanie w ciele: jak zmusić grepa do odczytania wzorców ze standardowego wejścia:
Możesz użyć
-f
opcji:Odczyta dowolną liczbę wzorów
stdin
, po jednym w wierszu. (-
oznaczastdin
; możesz także określić plik ze wzorami, po jednym w wierszu.)grep
dopasuje linie, w/path/to/file
których pasuje dowolny z określonych wzorców.źródło
To najlepsze, co mogłem wymyślić:
Czy to jest wystarczająco bezpieczne? Czy istnieje sposób na odzyskanie wzorca innego niż przewijanie terminala? Czy jest lepszy sposób?
źródło
read -s
aby zapobiec echu (zobacz także to pytanie ). Sekret będzie widoczny naps
wyjściu. Można użyć zamiastgrep -f /dev/stdin *
(lubgrep -f - *
), aby grep odczyta wzór (ów) z pliku zamiast wejście końcowemu^D
, czyli(read -es; echo $REPLY) | grep -f - *