Bash 프롬프트에서 난수를 쉽게 생성할 수 있으며, 이를 사용하여 해당 숫자를 변수로 설정할 수 있습니다. 이는 특정 유형의 스크립트 작성부터 테이블탑 롤플레잉 모험 실행에 이르기까지 모든 작업에 유용합니다. D&D 캠페인을 작성하든 강력한 bash 언어로 유틸리티를 작성하든 일반적으로 코드 한 줄로 작업을 완료할 수 있습니다. 이는 특정 보안 검사를 수행할 때에도 매우 유용한 도구이지만 훌륭한 크래커는 이러한 간단한 숫자 생성기를 우회할 수 있다는 점을 기억하고 싶을 것입니다. 특정 유형의 비밀번호와 코드를 생성하는 데 여전히 유용하며, 이는 어쨌든 보안을 유지하는 데 도움이 될 수 있습니다.
이를 수행하는 방법에는 여러 가지가 있으며 모든 기술이 모든 상황에 적합한 것은 아닙니다. 따라서 우리는 각 방법을 살펴보고 제대로 작동하는지 테스트하기 위해 최선을 다했습니다. 이를 위해서는 터미널에서 작업해야 하므로 Ctrl+Alt+T 또는 Super(Windows)+T를 사용하여 그래픽 터미널을 열고, 대시에 터미널을 입력하여 시작하고, 응용 프로그램 또는 수염 및 시스템 도구 메뉴에서 선택하거나 Ctrl, Alt 및 F1과 F6 사이의 키를 사용하여 본격적으로 가상 터미널로 이동하세요.
방법 1:전체 무작위 바이트 선택
Bash 프롬프트에서 직접 다음 명령을 실행하여 1에서 256 사이의 난수를 생성할 수 있습니다:
od -An -N1 -tu1 /dev/urandom
때때로 이 명령이 /dev/urandom 대신 /dev/random을 참조하는 것을 볼 수 있지만 아마도 이런 방식으로 실행하고 싶지 않을 것입니다. 이로 인해 무작위 시드 생성기를 사용하는 동안 다른 프로그램이 무작위 시드 생성기를 사용하지 못하게 될 수 있습니다. 프로그램을 실행하고 번호를 얻은 후에는 다음과 같이 작동할 것임을 확신할 수 있습니다:
ranNum=$(($(od -An -N1 -tu1 /dev/urandom)))
그러면 ranNum 변수가 실행 시 선택된 1에서 256 사이의 숫자로 설정됩니다. 명령줄이나 스크립트 내부에서 실행할 수 있으며 어느 쪽이든 작동해야 합니다. ranNum을 유효한 변수 이름으로 바꿀 수 있다는 점을 명심하세요.
방법 2:1과 무엇이든 사이의 임의의 숫자로 변수 설정
명령줄에서 echo $[RANDOM%40+1]을 실행하여 1에서 40 사이의 임의의 숫자를 표준 출력으로 직접 보낼 수 있지만 명령의 40을 거의 모든 숫자로 바꿀 수도 있습니다. 결국 호스트 시스템의 아키텍처에 숫자가 부족해지거나 bash가 그렇게 될 수도 있지만 어쨌든 그렇게 높은 숫자가 필요한지는 의심스럽습니다.
변수 구성에 대해 1에서 10 사이의 난수를 생성한다고 가정해 보겠습니다. 다음을 실행할 수 있습니다:
ranNum=$[RANDOM%10+1]
10을 원하는 상위 값으로 바꿀 수 있다는 점을 명심하세요. 이 값은 포괄적입니다. 즉, 10이 유효한 반환 숫자임을 의미합니다. 이를 1만큼 줄이려면 C 또는 C++ 스타일 -1 수학을 사용하는 대신 값을 9로 만드십시오. 이 방법을 사용하여 변수를 설정할 때 이러한 작업은 필요하지 않으며 실제로 숫자를 더하거나 빼면 예상치 못한 결과가 발생합니다.
방법 3:단일 무작위 비트 선택
변수를 0 또는 1의 임의 비트로 설정해야 하는 경우 다음과 같이 이전 코드를 수정하는 것이 좋습니다.
ranNum=$(($(od -An -N1 -i /dev/urandom) % 2))
이 코드는 /dev/urandom에서 샘플링한 숫자에 따라 ranNum을 1 또는 0으로 설정합니다. 파일이 짝수이거나 홀수입니다. 이는 간단한 예 또는 아니요 방정식을 하나 또는 다른 상태로 설정해야 하는 경우 유용할 수 있습니다.
작업 중인 작업에 대해 이것이 충분히 임의적이지 않은 경우 다음을 사용하여 /proc/sys/kernel/random 디렉토리를 호출하여 약간 더 임의의 숫자를 얻을 수 있습니다.
ranNum=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2))
다시 한 번 말하지만, 이는 변수를 1 또는 0으로만 설정합니다. 이는 이진 논리에 적합하지만 더 긴 숫자가 필요한 경우에는 유용하지 않습니다. 그러나 필요한 경우 bash 스크립트에서 이러한 줄을 사용할 수 있습니다. 이 두 번째 옵션은 실제로 첫 번째 옵션도 실패하는 상황에 더 나을 수 있습니다
방법 4:난수를 반환하도록 bash 스크립트 작성
언제든지 난수를 생성할 수 있는 편리한 도구를 갖고 싶다면 이를 위한 명령줄 스크립트를 생성할 수 있습니다. 이는 대부분의 최신 Linux 프롬프트에 있는 표준 bash 언어만을 사용하므로 거의 모든 최신 Linux 배포판과 상당수의 BSD 기반 운영 체제가 이를 잘 처리합니다. 더 진행하기 전에 cd ~/.local/bin을 사용하여 어디에서나 실행할 수 있는 위치에 스크립트가 있는지 확인하는 것이 좋습니다.
시작하려면 nano Random 또는 vi Random을 입력하세요. 하지만 원하는 경우 스크립트에 다른 이름을 사용할 수도 있습니다. 원하는 경우 다른 텍스트 편집기를 사용할 수도 있습니다. 명령줄에 입력하면 1이나 0을 반환하는 것을 만들고 싶다고 가정해 보겠습니다. nano를 사용하는 경우 다음을 입력한 후 Ctrl+O를 눌러 저장하세요.
#!/bin/bash ranNum=$(($RANDOM % 2)) echo $ranNum
텍스트 편집기를 종료하려면 Ctrl+X를 입력하고 명령줄로 돌아가면 chmod +x 무작위를 사용하여 스크립트를 사용할 수 있게 만듭니다. 물론 ranNum=$[RANDOM%10+1], ranNum=$(($(od -An -N1 -tu1 /dev/urandom))) 또는 ranNum=$(($RANDOM % 2)) 대신 다른 행을 사용할 수 있으므로 돌려받고 싶은 숫자의 종류를 정확히 제어할 수 있습니다. 정기적으로 1에서 50 사이의 숫자를 선택한다고 가정해 보겠습니다. Bash 스크립트의 텍스트를 다음으로 변경하세요:
#!/bin/bash ranNum=$[RANDOM%50+1] echo $ranNum
이제 난수를 생성하고 싶을 때마다 ran을 입력하여 명령줄에서 쉽게 실행할 수 있습니다.
저자 소개
케빈 애로우
Kevin Arrows는 10년 이상의 업계 경험을 보유한 경험이 풍부하고 지식이 풍부한 기술 전문가입니다. 그는 MCTS(Microsoft Certified Technology Specialist) 인증을 보유하고 있으며 최신 기술 개발에 대한 최신 정보를 얻으려는 깊은 열정을 가지고 있습니다. Kevin은 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅과 같은 분야에서 자신의 전문 지식과 지식을 보여주면서 광범위한 기술 관련 주제에 대해 광범위하게 글을 썼습니다. 기술 분야에 대한 그의 공헌은 동료들로부터 널리 인정받고 존경받고 있으며, 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 높은 평가를 받고 있습니다.