While working on a command line, everyone has to do a common task such as typing, which includes commands, its options, input/output file path, and other arguments. Sometimes, we write a wrong command name because of a spelling error in the command name. Also, typing a long file path will be very difficult to remember. For example, if we want to look recursively into the contents of a directory present at the path
/dir1/dir2/dir3/dir4/dir5/dir6, we will have to run the following command:
$ ls -R /dir1/dir2/dir3/dir4/dir5/dir6
We can see that the path of this directory is very long and there is a high chance of making an error while typing the full path. Due to these issues, working on a command line will take a longer time than expected.
To solve all these problems, shell supports a very nice feature called command completion. Along with the other shell, bash also has a very good support of command completion.
Most of the Linux distributions, for example, Fedora, Ubuntu...