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.