Two ways to generate random passwords on the command line:
#!/bin/bash
if [ $# -eq 0 ]
then
echo "I'll not generate anything for you if you won't give me at least one argument."
echo "1st argument: password length"
echo "2nd argument: number of passwords (optional)"
exit
fi
i=0
if [ $# -gt 1 ]
then
num=$2
else
num=1
fi
while [ $i -lt $num ]; do
let i=i+1
</dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c$1
echo ""
done
Pass the length of the password as the first argument and the number of passwords as the second argument, if you want more than one.
Or you can use just this line to generate a single 16 character long password with the same rules.
</dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c16; echo ""
Or just use pwgen (man page) to have more options. It's probably in your distro's repos.