Сохранение сгенерированных паролей в файл.txt
random-string()
{
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-8} | head -n 1
}
С помощью этого скрипта создайте список из нескольких тысяч случайных 8-значных буквенно-цифровых паролей.
Можно ли как-нибудь добавить этот скрипт для сохранения сгенерированных паролей в текстовый файл?
Я немного новичок в Linux и нашел много ресурсов в сети, но я в тупик на этом.
2 ответа
Вы определили функцию random-string()
генерировать случайные пароли, содержащие A-Za-z0-9
и выводит только самый верхний (head -1
), из вашего вопроса не ясно, хотите ли вы сохранить пароли, сгенерированные после одного запуска каждый раз, в файл, или вы хотите сделать это рекурсивно.
Позвольте мне сначала упростить вашу команду:
tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1
tr
принимает класс персонажа[:alnum]
который обозначает символыA-Za-z0-9
Там нет необходимости
cat
передать имя файла через STDINtr
Расширение параметра
fold -w ${1:-8}
не нужно, просто используйтеfold -w 8
Теперь, чтобы сохранить вывод после одного запуска функции (только один пароль), это будет перезаписывать файл каждый раз, используйте оболочку >
оператор перенаправления:
$ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1 ;} >foobar
$ random_string
$ cat foobar
MqJdehaO
Мы сохраняем STDOUT функции random_string
в файл foobar
в текущем каталоге.
При следующем запуске файл будет перезаписан новым содержимым:
$ random_string
$ cat foobar
NP85OmWw
Перезаписать файл, например spamegg
использование >>
перенаправление, которое означает, что STDOUT функции будет добавляться к файлу при каждом его запуске:
$ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1 ;} >>spamegg
$ random_string
$ cat spamegg
vjwOe6TB
$ random_string
$ cat spamegg
vjwOe6TB
TBkv6qPh
Чтобы сделать его более гибким, мы можем определить, сколько паролей мы хотим сохранить за один прогон, указав число через число в качестве первого аргумента функции:
$ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n "$1" ;} >foobar
$ random_string 5
$ cat foobar
AV79dZeC
byitWYfX
eDBAldiI
6OxNU78H
gRs7SwEO
Как видите, 5 паролей были сгенерированы и сохранены в файле. foobar
, менять 5
с любым количеством паролей, которые вы хотите.
Использование перенаправления ввода / вывода
your_script 1>> pwd_list
перенаправить и добавить стандартный вывод в файл pwd_list
,
НАПРИМЕР
#!/bin/bash
random-string()
{
tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "${1:-8}" | head -n 1
}
if [ -f out_pwd ]; then
rm out_pwd
fi
COUNTER=0
while [ "$COUNTER" -le 10 ]; do
random-string "$@" 1>> pwd_list
done
exit 0
и просто запустите скрипт, вывод в файл pwd_list
является частью сценария
или используйте этот скрипт, чтобы перенаправить вывод в файл pwd_list
когда вы запускаете скрипт
#!/bin/bash
random-string()
{
tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "${1:-8}" | head -n 1
}
COUNTER=0
while [ "$COUNTER" -le 10 ]; do
random-string "$@"
done
exit 0
и запустить скрипт с
script_name 1>> pwd_list