This may be a rather simple question but here goes.I am thinking of learning to use a CLI as I have been told it is more efficient for a technician to use than a GUI. Could someone please outline why it would be benificial to use a CLI?
Command line interface Vs GUI
command line
It's all about metaphors for communication. GUIs are picture books - they let you move things to other things, or right click on things and select options. But you still type a post when you want to ask a question.Command lines are much the same thing - they're about telling a computer what to do. If what you're trying to do is simple, then pictures and words are about the same. If what you're trying to do is complex, then words allow you to explain better. One of my favourite examples is find. find . -mtime -60 -name '*.txt' -exec sed -i.bak 's/fish/carrot/g' {} \;This will:Search the current directory structurefor all files modified within the last 60 days,called '*.txt' replace the word 'fish' with 'carrot' in all of them. leaving a backup copy suffixed .bak. How would you illustrate that pictorially using a GUI? (And to extend it - the next phase of the command line is to learn scripting, which lets you explain in more detail what you want the computer to do). This principle goes double for long running and time consuming tasks. You write your command to do it, press 'enter' and save the output. - go home and leave it going. Where complex GUI commands you have to run one at a time. The core advantage of GUIs in my mind is that they do let you have a range of things to do without needing to know specifically. Control Panel in Windows is the place you look when you want to 'fiddle with some settings' - and you can flick through them looking for something appropriate. I would suggest for infrequent tasks, that's beneficial. It's probably still (in my opinion) easier to do that with Windows than it would be on Linux. But that's really the same point - for infrequent tasks performed occasionally, GUIs are good. For complex and regular repeatable commands, CLI every time. 