Як я можу використовувати /dev/(u)random
Ubuntu або будь-які * nix системи?
Я спробував це, але в ньому сказано, що в дозволі відмовлено.
Примітка. Я також спробував як root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Як я можу використовувати /dev/(u)random
Ubuntu або будь-які * nix системи?
Я спробував це, але в ньому сказано, що в дозволі відмовлено.
Примітка. Я також спробував як root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Відповіді:
Це файл, схожий на пристрій, тому ви можете робити такі речі, як кішка, або копіювати з нього. Наприклад:
dd if=/dev/urandom of=~/urandom_test count=4 bs=1024
Створює файл, що містить 4K випадкових байтів.
cat /dev/urandom > ~/urandom_test2
Буде продовжувати записувати випадкові байти у цей файл, поки ви не натиснете Ctrl-C. Не робіть цього в низькопродуктивній системі ...
head -30 /dev/urandom > ~/urandom_test3
Напишемо 30 рядків випадкових байтів
bytes terminated by a \n
. Що твоє? head -30 /dev/urandom
дасть вам 30 рядків випадкових байтів. Довжина цих рядків, безумовно, буде випадковою. Спробуйте запустити wc -l
свій вихідний файл, якщо ви не впевнені.
/dev/urandom
обмежується до 32 Мбайт за read()
і dd
не буде намагатися прочитати ще раз /dev/urandom
прибутковості тих 32 MiB, так що ви повинні зателефонувати dd
з iflag=fullblock
. See dd створює 32 Мб випадковий файл замість 1 Гб
Якщо вам потрібна певна кількість випадкових байт, прочитайте цю кількість байтів /dev/urandom
.
Це "спеціальний файл", який створений таким, щоб схожий на файл для читання випадкових чисел.
Використовувати cat
для читання з /dev/urandom
- це погана ідея, оскільки вона буде намагатися читати /dev/urandom
до кінця - але це не закінчується.
Можна використовувати head
. Але слідкуйте за читанням у байтах, а не за рядками - адже рядки будуть випадковим чином розділені випадковими байтами нового рядка.
Отже, щоб прочитати 30 випадкових байтів у файл random.bytes
, використовуйте:
head -c 30 /dev/urandom > random.bytes
Ви можете читати з нього як звичайний користувач.
Зазвичай ви хочете використовувати /dev/urandom
, ні /dev/random
.
Проблема полягає в тому, що /dev/random
важко використовувати правильний спосіб - а простий у використанні неправильно. Неправильне використання спочатку спрацьовує, але пізніше створює дивні - навіть випадкові проблеми з роботою. Іноді.
Коли ви користуєтесь /dev/urandom
, він використовує /dev/random
внутрішньо, піклуючись про складні деталі.
RANDOM
для створення випадкових натуральних чисел:echo $RANDOM
та програмаshuf
для генерації випадкових перестановок, наприклад, відтворення у випадковому порядку зі списку відтворення.