Bash function to generate a secure random alphanumeric string

Date posted: 2020-02-21
Last updated: 2026-08-29

Generate random strings in Bash to use as strong passwords using this BASH function in your `.bashrc` file for easy usage.

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

Take the following function and place it in your .bashrc file:

# 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, for example (&_a-zA-Z0-9^*@ and '.

This will 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):

These Bash random strings make ideal passwords. Rather use PowerShell? Check out "Create strong passwords in Windows".

Leave a Comment