You are here: » GNU Linux » Bash function to generate a random alphanumeric string

Bash function to generate a random alphanumeric string

You can use this Bash function in your .bashrc file to generate a random alphanumeric string. This comes in handy when you need to generate a long, secure password for example. Adjust to your needs.

# Generate a random 32 character alphanumeric string (upper # and lowercase) and numbers in Bash random-string() { cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1 }

An example usage and output is

$ random-string 2fORqF7pau7bLafFuJbQNzK2D8yOLMnO

If needed you can add special characters to the tr command:

tr -dc '(\&\_a-zA-Z0-9\^\*\@'

This’ll generate a more secure random string, like:

$ random-string w4LD528^K52@rrYx@vfEg1wKwRSMQXoP $ random-string BnhUn_ScM&sIs(Yn0d40PxJKUQN0QkHg $ random-string cFg3FRPHB6SXcQ(f8wGr7y1RKSR1i^&i

An example that works on all POSIX systems even Oracle Solaris and IBM AIX. It provides 32 random characters (ie a DWORD byte, or 32 bits), read 8 times):

tr -dc '[:alnum:]' < /dev/urandom | dd bs=4 count=8 2>/dev/null

This is kindly taken from ghost’s comment in earthgecko’s gist And denzuko writes:

Hi! Join the discussion, leave a reply!