Do you prefer to administer servers through a GUI or CLI? [closed]

Solution 1:

GUIs can be beginner-friendly, but after that - they're more hostile than helpful.

They place a layer between you and the problem that you're trying to fix - and that "proxy" rarely addresses all the functionality that you are after. The developer who wrote it at the time thought of "what would be required", and after then sealed off your freedom with choices he made at that time. It's not even reasonable to expect a developer to think of every possible problem that may or may not happen.

Having said that - I'll also add that a GUI can be useful too, and when written well, can save time and effort, even provides some enjoyment in use - no arguments there. But when you do eventually need to do something other than "use" the product under "normal circumstances", you should not be forced to go through the GUI - that would be a handicap.

(My view is not based on any particular OS).

Solution 2:

I prefer CLI because of piping and stdin/stdout. I prefer this on a all systems.

I also prefer when there is a configuration file rather than registry settings.

Solution 3:

CLI all the way, for the simple reason that audit is much easier. When I'm making a change, I simply log my terminal session and then I have a record of exactly what I did, should I ever have to go back and validate it.

Text based configuration also lends itself to automation; it's trivial to throw together some scripts that automatically save configuration off network devices and check them into a version control system, giving you a history of what's changed in your network over time.

Solution 4:

Besides that many good answers people have given to the advantages of CLI, another plus for CLI that I didn't see is that in my experience CLI is much less likely to fail. This can be a huge time saver if you administer servers remotely. Also, if the machine starts to experience heavy load, CLI is usually more response.