36 Replies Latest reply on Aug 26, 2014 9:23 AM by ssd

    Does Anybody Actually Use the CLI?


      An observation I have made over the years is that during acquisition of a storage, network, or computing system in general, most storage and system administrators I know seem to care deeply about having a command-line interface, or CLI. Once the system is acquired, though, they never use it, preferring to use the graphical user interface exclusively.

      What gives? Is this just a way to torture vendors during the acquisition process, or is there something inherently wrong with a CLI? Do we only care about the CLI because of some idea in our heads that we’re going to do greater things with it (or perhaps via it), and we should be more realistic? Or do people actually use CLIs and I’m just looking at an unrepresentative sample of the world of IT?

        • Re: Does Anybody Actually Use the CLI?

          Just from my own experience, CLIs are important to have with regard to automation, scripting, bulk updates, and other things that can easily be pre-staged and pasted out of a notepad file, etc. In that respect, it's quite valuable to have CLI capabilities as a shop scales over time, introduces more complexity, or needs the general granularity that a CLI might provide.

          When those things aren't necessary every day, however, a well-crafted GUI is the perfect tool in the box for look-n-see/general health/general info acquisition, screengrabs for courtesy or formal reporting, or just the simplicity of the single-tool (i.e. browser) functionality.

            • Re: Does Anybody Actually Use the CLI?

              Nice to see that the first reply totally read my mind. =)


              CLIs are perfect for automation and scripting, however, unless you have some crazy fast twitch hand-muscles and also a eidetic memory for text (or work with the CLI interface for that system every day), the mind has a better capability to memorize visually where things are. For a system that I don't touch every day, but perhaps once a week or longer, I like a GUI front end for most tasks... unless automation and scripting is the goal. In that case, of course, you must have a CLI.


              And nothing skeeves me more than features that can't be done through the command line, but only a GUI.

            • Re: Does Anybody Actually Use the CLI?

              I would say that CLI is absolutely critical.  Most often because something has happened which made the GUI inaccessible, or I need to configure an option that cannot be configured via the GUI.  Obviously, with a well written GUI, the second point is invalid.  Far too often in my experience, a patch or system issue has made the GUI non-functional, and we've had to resort to CLI administration until the vendor could restore GUI access.

              • Re: Does Anybody Actually Use the CLI?
                Aaron Denning

                i use CLI everyday i work mainly with nothing but Linux/Unix and Solaris boxes.

                • Re: Does Anybody Actually Use the CLI?

                  I'll use a GUI all day long, but there are some things a GUI isn't and scriptable is one of those things that it isn't. I'll even admit that I've come across a device with a scripting system but no CLI. Even then, it was still missing something valueable... Output and the ability to parse the output as part of the script.


                  Actually, I think Rharland2012 said it better... "When those things aren't necessary, a well-crafted GUI is the perfect tool in the box"

                  • Re: Does Anybody Actually Use the CLI?

                    To me the CLI is only good for scripting and batch files.

                    • Re: Does Anybody Actually Use the CLI?

                      I mostly use a gui, but I always want the option to use the cli. In the past, though, I almost exclusively used the CLI.  There are just some things that you can't do easily through the gui.

                      • Re: Does Anybody Actually Use the CLI?

                        Two schools of thought.

                        1) Everyday use with regards to ease of use, portability, and delegation to our less experienced members of our staff the GUI is invaluable.

                        2) Automating and troubleshooting the CLI is invaluable but requires a higher level of understanding.


                        I look at Microsoft and the fact that they have never removed DOS and have chosen to include another CLI "PowerShell" to there product line. This is more proof of the fact that this type of interface is extremely desired and useful. I can see your point that a majority of normal end users will never move to a CLI proficiency that rivals there GUI experience but it would be extremely limiting to do away with it altogether.

                        • Re: Does Anybody Actually Use the CLI?

                          CLI is absolutely essential in our area.  We use CLI for Solaris systems, networking and firewall configuration, support and troubleshooting.  For loading base images and configurations a CLI is far superior.  Also when connected via a console port the CLI is the only option.

                            • Re: Does Anybody Actually Use the CLI?

                              When ever it is available, I use the CLI.  I have noticed that when you use some GUI's it makes odd automated choices and tends to make the text based configuration more difficult to read (i.e. asdm).  CLIs require much less bandwidth for administration - so you can say, put SSH to these addresses in CoS1 and not worry about taking much bandwidth from priority apps and you are able to connect easily even during congestion.


                              When doing a mass configuration, I would rather prepare the configuration in excel or notepad, then paste it in instead of clicking through it.  I recently had to deploy WAN accelerators that I had to create the tunnel through the GUI in order for it to automate the key exchange.  Steps were scroll to the bottom, click add, type in name, Tab, Tab, Tab, Type in IP, Tab, Down, Down, Tab, Space - Repeat that sequence 45 x 44 (44 tunnels on 45 devices)!  No fun... The company has an automation tool, but it is at a cost and I had to beg and plead, kick and scream to just get them to approve the purchase of the devices (my work pinches pennies, sometimes to a fault).  Although the rest of the configuration could be done in the CLI and took 30 seconds to set the rest of it up (find, replace, copy, paste, done!).


                              I must have all firewall changes documented, approved, and implementation validated.  To document a change using the GUI, one would need to use screen shots and/or video recordings, but a good change validation is usually done through text comparison which does not translate well to screen shots, so a CLI is a must here.

                                • Re: Does Anybody Actually Use the CLI?

                                  Totally agree Netlogix.  CLI is the best way to manage your devices and enter commands.  I use the GUI only for getting an overview of whats going on or as in the case of our ASA firewalls, I use ASDM to organize things better.


                                  Some systems such as Riverbed Steelheads I think have a better GUI then a CLI, but then I'm not very good with LINUX.  But the fact that I said this is embarrassing.  In order to see what is 'really' going on, you need the CLI.


                                  When the poop hits the fan you want the CLI, its the only thing I will truly trust.


                                  I also agree about change control....  CLI only.  If I don't know the CLI, then I shouldn't be messin with it....





                              • Re: Does Anybody Actually Use the CLI?

                                I`m still prefere to use CLI in some cases especially with cisco firewalls

                                • Re: Does Anybody Actually Use the CLI?

                                  Even in Windows the Comand Prompt is my 3rd most used program. Right below notepad and RDP.

                                    • Re: Does Anybody Actually Use the CLI?

                                      Same here flobb, except I stopped using Notepad a long time ago for most text editing, I currently use EditPad Pro. And while I’ve almost been forced (ok I’ve been forced) to add PowerShell to my list of scripting languages, I still get a lot of mileage out of cmd.exe and batch scripting.

                                    • Re: Does Anybody Actually Use the CLI?

                                      I prefer a GUI so long as the GUI provided is well designed and doesn't add more work to the process.  One of the main reasons I like GUI's is because they tend to be more forgiving and let you review what it is that you are about to do before you commit to it giving you the opportunity to see potential critical mistakes before they are made.  That being said, all too often the GUI's provided by vendors are half baked and not very well though out and in many cases don't provide all of the options needed leaving you to go to the CLI anyway.


                                      As many others have mentioned, even with a good GUI, the CLI is still essential for automation, integration, and scripting.

                                      • Re: Does Anybody Actually Use the CLI?

                                        For me personally it depends on the device on whether I use the GUI or CLI. For all Cisco switches and router, I use CLI only. But for certain other devices I will use GUI. In some cases the GUI works better/easier than the CLI and vice versa.


                                        I'm not opposed to either and will use whatever is easier/better for me at the time.

                                        • Re: Does Anybody Actually Use the CLI?

                                          CLI is preferred for Cisco networking hardware and is essential as a fail-safe for when the GUI may be unavailable. Vendors, such as Cisco, are gearing their new products to mainly rely on GUI it appears, for example the UCS platform.

                                          • Re: Does Anybody Actually Use the CLI?

                                            I use the CLI on switches/routers daily. CLI makes it easy to record actual planned changes in a Change control record exactly as they will be applied. I use GUI more on firewalls, load balancers, wireless controllers and access control servers.

                                            • Re: Does Anybody Actually Use the CLI?

                                              It depends...  You know what you are getting with a CLI, most applications are built with the CLI and then have a GUI added to make it easier for people who are not comfortable on the CLI.  It seems that some GUIs can be flaky/buggy or require certain versions of java (causing management headaches) or don't have all the features that are available from CLI.  GUIs can make things easier and can save time, but I think most people like the comfort of knowing that if they have an issue with the GUI the CLI is there waiting to bail them out.

                                              • Re: Does Anybody Actually Use the CLI?

                                                I try to use the CLI exclusively. However there are definitely times that the GUI is needed for speed and accuracy. I'm not a scripting pro and in a time-sensitive situation, the GUI is my friend. (but I'm working on that!)

                                                  • Re: Does Anybody Actually Use the CLI?

                                                    That’s a valid point Zack but you should keep in mind that just because a GUI can and should be faster doesn’t mean that they are. Ease of use is one thing, but sometimes the GUI can be so bloated and slow or take up too many resources on the device or in some rare (maybe not so rare?) cases break things very badly.


                                                    I remember a SmartNet rep chastising me for using an early version of ASDM to remove a VPN and after watching all of the problems it caused and everything that needed to be done to clean up the mess, I swore I’d never use it for more than spring-cleaning my ACLs and that’s really all I use it for now.

                                                  • Re: Does Anybody Actually Use the CLI?

                                                    CLI for some things (switches), GUI and CLI for others (firewalls), GUI mainly for Windows... but even Microsoft is acknowledging the power of CLI: behold the advent of PowerShell and its prominent placement in the toolbar in Server 2012, and the fact that you can install a version of server that doesn't even have the GUI.

                                                    • Re: Does Anybody Actually Use the CLI?

                                                      I definitely agree with most of the others on this one .. CLI is important.  The GUI isn't always reliable and, inevitably, there is something that the vendor has left out of the GUI (either overlooked it or did it on purpose) that requires access via the CLI.  Also, there are some cases where the CLI is just a faster way to accomplish what you need to do.  Don't get me wrong, I am thankful for GUI interfaces, but I don't think anything will ever beat the good, old fashioned, CLI.

                                                      • Re: Does Anybody Actually Use the CLI?
                                                        michael stump

                                                        A GUI is nice for day-to-day tasks, but when you need to stray off the beaten path a bit, the CLI is a must-have. It's also a measure of how serious the vendor is about their technology. GUIs have a fiendish way of covering up what's really going on. The CLI, meanwhile, lays bare the inner workings of the device. Well, usually.

                                                        • Re: Does Anybody Actually Use the CLI?

                                                          If the GUI is a subset or 1:1 feature match to the CLI, then I'm happy. If the GUI is superior to the CLI in what system features it can work with, then we've got some serious problems and I will pout in the corner until the vendor makes all features that are available through the GUI also be available in the same capacity within a CLI.


                                                          Ideally, a GUI should simply be a web front end to the existing CLI/API interface. Witness Microsoft Exchange and the Exchange Management Console being, in essence, a pretty face to the Exchange Management Shell.

                                                          • Re: Does Anybody Actually Use the CLI?

                                                            My skills go back to the age of teletypes, so perhaps I'm atypical. I use CLI's a lot in everything I do because they are often a lever that lifts things impossible with the GUI. But GUI's are also levers for moving things that are impossible to move easily with a CLI. Despite the fact that Cisco's IOS CLI is touted as a powerful interface, it's all too often inconsistent, and poorly realized. There is an art to writing a good CLI, and Cisco lacks artists of talent these days. GUI design is an art as well, and we all can cite examples of poor design.


                                                            However, I'd like to point out a related negative trend regarding GUIs. I've observed that systems designed around GUIs often reduce our ability to audit change. The mindset that comes with designing GUIs often forgets our need to compare what is now with what things were the day before. This trend leads to less logical and more instinctive, and often irrational troubleshooting.


                                                            Whether GUI or CLI, if configuration state is properly designed, and provisions for auditing are built in, the customer and vendor benefit from less noise, less religious strife in user forums, and more reliability. What we often get are hastily implemented features that indicate lack of design discipline and philosophy on the part of vendors.  The user view of a check box implies that an object lies beneath. In actuality, there's often many objects and conditional rules. So unchecking a box sometimes does not roll the change back as expected. In a CLI, a single command implies a similar model. Adding "no" or "disable" before the command implies a similar rollback that sometimes is not there. I've wasted literal years of my life troubleshooting installs and config changes that violate these basic assumptions.


                                                            So whether CLI or GUI, the things I want are:


                                                            1. Auditability of the configuration itself

                                                            2. History of changes

                                                            3. Control logic that makes a change can also undo the change properly.


                                                            This is QA and CM 101 level stuff. The auditability and history makes it easier to do this QA and CM (Quality Assurance and Configuration Management) much easier. Failure to do this is a software engineering management failure often caused by marketing pressure for time to market. Salesmen, listen to me - if you can advertise basic auditability and consistent interface design by meeting these 3 requirements (auditability, history, and control logic), your market share will go up. The old joke about "job security" should not be an accepted truth.


                                                            Look at what ASDM and SDM do to the readability of config files. Look at how bloated the Windows registry is. Install almost anything, uninstall it, and see how much is left behind. Look at how much resistance there is to upgrades because of changes to GUIs because they were poorly designed in the 1st place, poorly explained in documentation (within the GUI itself!0, and features were added as afterthoughts.


                                                            We shouldn't have to crawl into the sewer to fix a leaky faucet.


                                                            • Re: Does Anybody Actually Use the CLI?

                                                              GUI for most day to day and for the newbies and inexperienced as it tend to keep them out of trouble initially.  As someone above said, GUIs tend to be more forgiving and can even provide coahing along the way.


                                                              That being said, CLI is still the go to for mass changes, scripting and such.  CLI tends to be a bit harder for me since I'm not in it all the time and we manage everything so each one is it's own little world.


                                                              My biggest issue is GUIs that don't do it all or CLIs that are limited.  Our NAC has a horrble CLI which forces us to use th GUI all the time.

                                                              • Re: Does Anybody Actually Use the CLI?

                                                                Agree with a lot of comments here... GUI is nice for new apps, as you can get a visual on options.  Once you know what you're doing, CLI is nice.  I use CLI for EMS 2010 (Exchange).  It's more powerful than the GUI.  For example, I can set a users auto-reply message, or change calendar permissions, from PowerShell.

                                                                • Re: Does Anybody Actually Use the CLI?

                                                                  I use both all the time.  I wouldn't really say that one is better than the other.  Each has its uses.  If you want to be completely competent with a product, you need to learn BOTH.  You shouldn't be locked down to one or the other.  If you loose connection by one means, you should be able to use the other.  I also believe that each has is purpose and one may be better than the other in regards to tasks performed.  When it comes to scripting, the CLI is a MUST.  CLI can be used by almost an NMS to perform mass configuration changes or scripting tasks.  Those same NMSs would not be able to perform those same tasks via GUI as code would have to be developed specifically for each product's GUI.  This, of course, is NOT feasible.  Products such as SolarWinds NCM would not function how we want it to.  This capability loss would send us backwards.  CLI is usually longer, requires more memorization, and usually a lot of use of the help commands.  GUIs are both good and bad too.  The PROs are that usually commands can tbe executed quicker, they are usually easier to understand, and sometimes they can control multiple devices from one GUI.  CONs are that sometimes they can't control multiple devices from one GUI (Other products, not supported, or Cost for additional product), don't always support mass configuration changes, and usually causes a lack of understanding of how a system operates.  It is really "pick your poison".  Neither can or should "replace" the other./p>

                                                                  • Re: Does Anybody Actually Use the CLI?
                                                                    Scott Sadlocha

                                                                    Stepping in a bit late here to offer my two cents. Much of what has been said, I agree with. CLIs are absolutely necessary, but not always the best choice. When it comes to troubleshooting, scripting, automation, there is nothing better than the CLI. Stripping away all of the graphical overhead can sometimes be essential in a troubleshooting situation, be it to get away from a bloated GUI or to free oneself from the hooks that the GUI may have, or anything else that may be impeding progress as a result of GUI functionality.


                                                                    However, a CLI is more dangerous, especially for newer users, and requires a higher operating level in most cases. I do know some people that use CLIs nearly exclusively in certain environments, and it will sometimes astound me the commands that they commit to memory. In many cases though, they use the systems daily. Of course there are some of those in IT that are just gifted in their depth and breadth of knowledge and are an exception. Unfortunately, I am not one of them. If I don't use a CLI frequently, I definitely have to consult a reference source, but in some cases I prefer to actually consult a reference and use a CLI rather than a GUI.


                                                                    When I first started in IT, I was at a support desk and was responsible for user provisioning, including our production system which was called MFG/Pro by QAD. This was an ERP system that ran on HP-UX Unix and for a GUI is had a monochrome numerical menu system that ran on a terminal emulator. In setting up users, there was no GUI option. I did all set up (and subsequent troubleshooting), directly from the CLI. I ended up using this system and supporting it in some manner over two jobs spanning about 10 years. At my previous job, shortly before leaving, the company moved to a .NET version of the product. While the new flashy GUI offered a ton more options for the end user, I sat down with one of our support people to look over the new version (I had lost a connection to the software due to a position change a few years earlier), and immediately noted that the GUI made some troubleshooting and maintenance tasks more time consuming and painful. Yes, the GUI made it so that provisioning and support could be simplified, enabling a lower skill level for the support colleagues, but it also removed that opportunity for them to learn some of the fundamentals of the underlying nuts and bolts of the software.

                                                                    • Re: Does Anybody Actually Use the CLI?

                                                                      About 80-90 percent of what I do will be done via the GUI, the rest via the CLI.  Will admit that my "CLI" skills haven't been used as much in the last 5 years or so, but since the release of 2012, I've been using the CLI (powershell) more than before.

                                                                      • Re: Does Anybody Actually Use the CLI?

                                                                        Where I currently work, all changes done to switches / arrays are done via the CLI (which gets recorded to an log file) for the main reasons which Foonly has already mentioned.

                                                                        Day to day moitoring etc is done via GUI. Everything else is done via CLI.


                                                                        Unfortunately EMC only does their training courses via the GUI, so it's up to us to work out how its done via CLI (esp for newer gear).


                                                                        Luckily enough my predecessors had created templates for 95% of the standard work we do, so it's pretty straight forward for the most of it.



                                                                        • Re: Does Anybody Actually Use the CLI?

                                                                          I always prefer to use the cli to administer our NetApp boxes as I know for sure what settings I am applying without worrying about automated processes from a GUI interface placing default values or worse.  It's also often much quicker to use to perform multiple repetitive tasks.

                                                                          That said, I do like the gui interfaces for performance metrics and the like as scrolling around a command line looking at disk performance and the like is no fun!

                                                                          • Re: Does Anybody Actually Use the CLI?

                                                                            Sometimes it's needed sometimes it's not.  To prefer to only use the GUI or only use the CLI is a concept I don't understand.  I have no issue doing certain tasks in the GUI and some in the CLI.  Sometimes, I like setting an option in the GUI and then see how it appears in the config.  Could be a learning tool.  The old days a better engineer would script in JScript or VBScript.  Nowadays, if you aren't using Powershell or learning Powershell or like the sales guys ask what's Powershell then you are not cool.  And that's what it's really about at the end of the day, and that's also why I smoke.

                                                                            • Re: Does Anybody Actually Use the CLI?


                                                                              Most UNIX and Unix–like systems I've dealt with in my career were configured as servers, excluding Mac OS X (and IRIX I guess). As such, the CLI was ostensibly the only interface available on these systems, either out of necessity or austerity. I actually prefer the CLI, especially since the CLI is staunchly faster (and prettier) than whatever kludgy, kitsch, desktop environment the Linux zealots are evangelizing at the moment.



                                                                              Prefer to use the CLI when possible; feel it gives me a better understanding of the device's workings.



                                                                              GUI. Yeah, PowerShell has a lot of cool functionality, I just haven't gotten around to learning how to manage all aspects of a system with it.