I've created a password generator that utilizes libsodium. It takes two arguments. The first is a letter representing a class of characters and the second is the length of the password to output. It can output any combination of lowercase letters, uppercase letters, numbers, and/or symbols. If only a number is given as an argument, then it outputs a password that is the length of the number given using all applicable characters. If only a character argument is given, it will output an 8 character password using the characters given in the argument. If no argument is given then it will output an 8 character password using all applicable characters.

Usage:

./makepw <options>

<options> can be:

l - lower case letters, decimal 97-122
u - upper case letters, decimal 65-90
n - numbers, decimal 48-57
s - symbols, decimal 33-57, 58-63, 91-96, 123-126

Default password length is 8. There is no upper limit to the length.

The source code can be found on Github.