Terminal and CLI
It's like alcohol, bitter in the beginning, obsessive later.
A terminal in reality is a hardware component that is used to enter and transcribe data to the computer but the terminal we are talking about is an emulator of the hardware; a terminal emulator.
We linux users without the use of terminal suffer to do basic stuff. Searching for a command from a huge list of buttons is a hassle, if you know what the command is you can immediately execute the particular command in a split second. Since, the GUI is built around the terminal interface rather than making a GUI application and then implimenting the termnal functionality, it is much easier as well as faster to execute simple commmands in the terminal to get the work done.
Advantages of using a CLI
- CLI applications takes less space than a full fledged GUI application.
- Being lighter it is snappy to work on.
- It is clean and minimal.
- Great applications like awk, grep, wget etc. are available which are designed to do one thing and do it well.
- Because it is so flexible. Commands can be piped together (ls | grep filename), they can be captured (gcc program.c > ./standard_out 2> ./standard_error), and can be substituted (ls /home/`whoami` or ls /home/$(whoami))
- Detailed information about what a program is doing can be seen in TUI interface which is generally disabled in GUI for the sake of making the it look beautiful.
- Because of the ability to automate tasks. cron and bash scripts allow long, complicated, and/or repetitive tasks to either be simplified or automated completely.
- It is universal and is same across all kinds of *nix operating system despite of the use of different DEs , Themes or Layouts.
- You get to know and handle the tools better.
Disadvantages of using a CLI
- Remembering all the differrent commands is hectic.
- Multimedia applications are useless.
- A lot of inappropriate command some would say.
- Bad for certain tasks that involves graphical UI.
- Things that require a lot of typing, such as long file names, can be annoying without minimal cut/paste support.
People when they feel the need of using a CLI get scared of the *nix operating systems (Windows do have a command line interface but not as powerful as the *nix terminal.), this is a reason why people are afraid to try linux and is it's greatest dis-advantage.