Сохранение сгенерированных паролей в файл.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передать имя файла через STDIN tr

  • Расширение параметра 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
Другие вопросы по тегам