Also known as globbing. A wildcard is a character that can be used as a substitute for any of a class of characters in a search:
* - zero or more characters, everything, unlimited number of characters
? - single character
[] - range of characters, [a-c] or [z-s] (it is the same as [s-z]) or [lm]- range, valid in an opposite order as well, or specific characters
{} - sequence of characters
\ - escape
^ - beginning of the line
$ - end of line
You can combine them. Examples:
cd /usr/bin
ls a* - files that starts with a
ls *a - files that ends with a
ls a?s* - ensures that there is at least one character behind the a and s following after that, Ex: alsamixer alsatplg ansible
ls a[nm]* - shows the files that have n or m on the 2nd position. Ex.: amidi animate amixer
ls a[a-c]* - second character is between the range a and c. Ex.: aa-enabled aa-exec aconnect
for i in {0..9}; do echo $i; done - will type numbers from 0 to 9 in separate line