Recentemente descobri este método para gerar uma senha de 9 caracteres no prompt do Linux no bash:
< /dev/urandom tr -dc A-Za-z0-9_ | head -c9
O que está <
fazendo?
Responder1
Caso você esteja se perguntando, isso é apenas umuso menos comumdo redirecionador de entrada. O shell pega o arquivo especificado como entrada e seu comportamento padrão é repeti-lo para stdout.
O detalhamento do comando que você tem:
< /dev/urandom tr -dc A-Za-z0-9_ | head -c9
<
: Redirecionador de entrada. Shell ecoa o conteúdo do arquivo (/dev/urandom)
tr
: de tr --help
:
Traduza, comprima e/ou exclua caracteres da entrada padrão, gravando na saída padrão.
As opções -dc são equivalentes a --delete --complement, o que significa excluir o complemento do seguinte conjunto de caracteres, ou seja, todos os caracteres que NÃO estão no conjunto. Isso exclui caracteres não alfanuméricos e sublinhados em seu exemplo.
head
: imprime as primeiras linhas de algo (padrão 10). a opção -c9 informa quantos bytes imprimir em vez de linhas.
Junte tudo e você obterá "imprima os primeiros 9 bytes alfanuméricos ou sublinhados de/dev/urandom". :)
Responder2
Tente < /usr/include/stdio.h head
- deveria ser arquivo, cara.
Caso você precise que a saída do programa seja fornecida como arquivo, isso pode ser feito desta forma:vim <(echo test)