Недавно я обнаружил этот метод генерации 9-символьного пароля из командной строки Linux в bash:
< /dev/urandom tr -dc A-Za-z0-9_ | head -c9
Что <
делает?
решение1
Если вам интересно, это всего лишьменее распространенное использованиеперенаправителя ввода. Оболочка принимает указанный в качестве ввода файл и по умолчанию выводит его на stdout.
Разбивка команды у вас есть:
< /dev/urandom tr -dc A-Za-z0-9_ | head -c9
<
: Перенаправление ввода. Shell отображает содержимое файла (/dev/urandom)
tr
: от tr --help
:
Перевод, сжатие и/или удаление символов из стандартного ввода, запись в стандартный вывод.
Опции -dc эквивалентны --delete --complement, что означает удаление дополнения следующего набора символов, т.е. всех символов, НЕ входящих в набор. Это исключает небуквенно-цифровые символы и символы подчеркивания в вашем примере.
head
: вывести первые несколько строк чего-либо (по умолчанию 10). Параметр -c9 указывает, сколько байтов следует вывести вместо строк.
Сложите все вместе, и вы получите: «выведите мне первые 9 буквенно-цифровых или подчеркивающих байтов из /dev/urandom». :)
решение2
Попробуй < /usr/include/stdio.h head
— должно быть круто, чувак.
Если вам необходимо, чтобы вывод программы был представлен в виде файла, это можно сделать следующим образом:vim <(echo test)