Jak korzystać /dev/(u)randomz systemu Ubuntu lub dowolnego systemu * nix?
Próbowałem tego, ale napisano, że odmówiono zgody.
Uwaga: Próbowałem również jako root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Jak korzystać /dev/(u)randomz systemu Ubuntu lub dowolnego systemu * nix?
Próbowałem tego, ale napisano, że odmówiono zgody.
Uwaga: Próbowałem również jako root.
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Odpowiedzi:
Jest to urządzenie podobne do pliku, więc możesz robić takie rzeczy jak cat lub kopiować z niego. Na przykład:
dd if=/dev/urandom of=~/urandom_test count=4 bs=1024
Tworzy plik zawierający 4K losowych bajtów.
cat /dev/urandom > ~/urandom_test2
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 ...
head -30 /dev/urandom > ~/urandom_test3
Napiszę 30 wierszy losowych bajtów
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.
/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
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.
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.
RANDOMdo tworzenia losowych liczb całkowitych dodatnich:echo $RANDOMoraz programshufdo generowania losowych permutacji, na przykład odtwarzanie w losowej kolejności z listy odtwarzania.