Pamiętaj, że tych poleceń należy używać tylko wtedy, gdy naprawdę potrzebujesz wysokiej jakości danych losowych, zwykle w celu stworzenia dobrych haseł. W przeciwnym razie istnieje więcej lekkich alternatyw, na przykład „zmienna” środowiska powłoki RANDOMdo tworzenia losowych liczb całkowitych dodatnich: echo $RANDOMoraz program shufdo generowania losowych permutacji, na przykład odtwarzanie w losowej kolejności z listy odtwarzania.
sudodus
Odpowiedzi:
54
Jest to urządzenie podobne do pliku, więc możesz robić takie rzeczy jak cat lub kopiować z niego. Na przykład:
Uwaga: nie rób cat / dev / urandom> ~ / urandom_test2 na systemach o niskiej wydajności -> które zamrażają system
Caner Korkmaz
1
Cóż ... to naprawdę zależy od twojej definicji linii. Moja definicja to bytes terminated by a \n. Co twoje? head -30 /dev/urandomda ci 30 linii losowych bajtów. Długość tych linii z pewnością będzie losowa. Spróbuj uruchomić wc -lplik wyjściowy, jeśli nie jesteś przekonany.
aychedee
3
Zauważ, że /dev/urandomjest ograniczony do 32 MiB na read()i ddnie będzie próbował czytać więcej, gdy zwróci /dev/urandomte 32 MiB, więc musisz zadzwonić ddz iflag=fullblock. Zobacz, jak dd tworzy losowy plik o wielkości 32 MB zamiast 1 GB
Sergiy Kolodyazhnyy 28.12.2018
14
Uzyskaj losowe bajty
Jeśli potrzebujesz określonej liczby bajtów losowych, przeczytaj tę liczbę bajtów /dev/urandom.
Jest to „plik specjalny”, który jest podobny do pliku do odczytu liczb losowych.
Używanie catdo czytania z /dev/urandomto zły pomysł, ponieważ będzie próbował czytać /dev/urandomdo końca - ale się nie kończy.
Możesz użyć head. Ale uważaj na bajty, a nie na linie - ponieważ linie byłyby losowo oddzielone losowymi bajtami nowej linii.
Tak więc, aby odczytać 30 losowych bajtów do pliku random.bytes, użyj:
head -c 30/dev/urandom > random.bytes
Możesz z niego czytać jako zwykły użytkownik.
Zostaw w spokoju / dev / random
Normalnie, którego chcesz użyć /dev/urandom, nie /dev/random.
Problem polega na tym, że /dev/randomjest trudny do użycia we właściwy sposób - i łatwy do użycia w niewłaściwy sposób. Nieprawidłowe użycie działa na początku, ale później powoduje dziwne - a nawet losowe - problemy z wydajnością. Czasami.
Kiedy używasz /dev/urandom, korzysta /dev/randomwewnętrznie, dbając o trudne części.
RANDOM
do tworzenia losowych liczb całkowitych dodatnich:echo $RANDOM
oraz programshuf
do generowania losowych permutacji, na przykład odtwarzanie w losowej kolejności z listy odtwarzania.Odpowiedzi:
Jest to urządzenie podobne do pliku, więc możesz robić takie rzeczy jak cat lub kopiować z niego. Na przykład:
Tworzy plik zawierający 4K losowych bajtów.
Będzie kontynuował zapisywanie losowych bajtów do tego pliku, dopóki nie naciśniesz Ctrl-C. Nie rób tego w systemie o niskiej wydajności ...
Napiszę 30 wierszy losowych bajtów
źródło
bytes terminated by a \n
. Co twoje?head -30 /dev/urandom
da ci 30 linii losowych bajtów. Długość tych linii z pewnością będzie losowa. Spróbuj uruchomićwc -l
plik wyjściowy, jeśli nie jesteś przekonany./dev/urandom
jest ograniczony do 32 MiB naread()
idd
nie będzie próbował czytać więcej, gdy zwróci/dev/urandom
te 32 MiB, więc musisz zadzwonićdd
ziflag=fullblock
. Zobacz, jak dd tworzy losowy plik o wielkości 32 MB zamiast 1 GBUzyskaj losowe bajty
Jeśli potrzebujesz określonej liczby bajtów losowych, przeczytaj tę liczbę bajtów
/dev/urandom
.Jest to „plik specjalny”, który jest podobny do pliku do odczytu liczb losowych.
Używanie
cat
do czytania z/dev/urandom
to zły pomysł, ponieważ będzie próbował czytać/dev/urandom
do końca - ale się nie kończy.Możesz użyć
head
. Ale uważaj na bajty, a nie na linie - ponieważ linie byłyby losowo oddzielone losowymi bajtami nowej linii.Tak więc, aby odczytać 30 losowych bajtów do pliku
random.bytes
, użyj:Możesz z niego czytać jako zwykły użytkownik.
Zostaw w spokoju / dev / random
Normalnie, którego chcesz użyć
/dev/urandom
, nie/dev/random
.Problem polega na tym, że
/dev/random
jest trudny do użycia we właściwy sposób - i łatwy do użycia w niewłaściwy sposób. Nieprawidłowe użycie działa na początku, ale później powoduje dziwne - a nawet losowe - problemy z wydajnością. Czasami.Kiedy używasz
/dev/urandom
, korzysta/dev/random
wewnętrznie, dbając o trudne części.źródło
Jeśli chcesz po prostu przeczytać to z rozpoznanymi numerami, możesz to zrobić
źródło
Osobiście używam tego do generowania tokenów:
źródło