Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
GUI Linux IT

Take This GUI and Shove It 617

snydeq writes "Deep End's Paul Venezia speaks out against the overemphasis on GUIs in today's admin tools, saying that GUIs are fine and necessary in many cases, but only after a complete CLI is in place, and that they cannot interfere with the use of the CLI, only complement it. Otherwise, the GUI simply makes easy things easy and hard things much harder. He writes, 'If you have to make significant, identical changes to a bunch of Linux servers, is it easier to log into them one-by-one and run through a GUI or text-menu tool, or write a quick shell script that hits each box and either makes the changes or simply pulls down a few new config files and restarts some services? And it's not just about conservation of effort — it's also about accuracy. If you write a script, you're certain that the changes made will be identical on each box. If you're doing them all by hand, you aren't.'"
This discussion has been archived. No new comments can be posted.

Take This GUI and Shove It

Comments Filter:
  • by petes_PoV ( 912422 ) on Monday October 04, 2010 @07:14PM (#33789374)
    All good admins document their work (don't they? DON'T THEY?).

    With a CLI or a script that's easy: it comes down to "log in as user X, change to directory Y, run script Z with arguments A B and C - the output should look like D". Try that when all you have is a GLUI (like a GUI, but you get stuck): open this window, select that option, drag a slider, check these boxes, click Yes, three times. The output might look a little like this blurry screen shot and the only record of a successful execution is a window that disappears as soon as the application ends.

    I suppose the Linux community should be grateful that windows made the fundemental systems design error of making everything graphic. Without that basic failure, Linux might never have even got the toe-hold it has now.

  • by MichaelSmith ( 789609 ) on Monday October 04, 2010 @07:15PM (#33789398) Homepage Journal

    Without a GUI it will be hard to sell, but automation is next to impossible with GUIs, so they are expensive to use in the long run because you have to pay for more Users.

  • by ThorGod ( 456163 ) on Monday October 04, 2010 @07:18PM (#33789418) Journal

    In most of my professional life, if there's an OSS alternative the OSS alternative is usually better. LateX is more professional than Office, in my opinion. I prefer the look and repeatability of gnuplot over Excel. Python is much more extensible than VBA. SQLite and python really helped me clean data for my professional paper, as well.

    Granted, I'm using Microsoft Office in addition to the aforementioned (except LateX).

  • /etc/resolv.conf (Score:3, Interesting)

    by kharchenko ( 303729 ) on Monday October 04, 2010 @07:19PM (#33789426)

    Agreed. For instance, I've been trying to figure out how to add a simple "search" entry into resolv.conf in Fedora .. it keeps overwriting it on boot no matter what level scripts I modify (e.g. going up to DHCP config, etc.) - because some genius came up with a new admin tool and thought that something as basic as resolv.conf doesn't need to be followed.

  • Re:Better test! (Score:4, Interesting)

    by skids ( 119237 ) on Monday October 04, 2010 @07:23PM (#33789468) Homepage

    Well, one little mistake pushing a windows domain policy via GUI, and the same.

    This is one of the weakest points in the article, IMO, though. It's quite possible (even if MS MMC is a kludgy example) to GUIfy multi-system administration.

    There will always be a place for both GUI and CLI -- status screens, for example, generally demand a GUI (and yes, ANSI menu systems are a GUI.)

  • by Darkness404 ( 1287218 ) on Monday October 04, 2010 @07:23PM (#33789476)
    More and more people are switching to things like Ubuntu for small business things like file-servers and the like.

    Its cheap, its easy and its stable. I'm sure if you look through all of the businesses running servers, very few of them are ran by real "admins" but rather by the employee who "knows about computers"
  • by icebraining ( 1313345 ) on Monday October 04, 2010 @07:24PM (#33789494) Homepage

    I have a cheap router with only a web gui. I wrote a two line bash script that simply POSTs the right requests to URL.

    Simply put, HTTP interfaces, especially if they implement the right response codes, are actually very nice to script.

  • by ak_hepcat ( 468765 ) <{leif} {at} {denali.net}> on Monday October 04, 2010 @07:38PM (#33789626) Homepage Journal

    Probably because it's also about the ease of troubleshooting issues.

    How do you troubleshoot something with a GUI after you've misconfigured?
    How do you troubleshoot a programming error (bug) in the GUI -> device communication?
    How do you scale to tens, hundreds, or thousands of devices with a GUI?

    CLI makes all this easier and more manageable.

  • by fandingo ( 1541045 ) on Monday October 04, 2010 @07:54PM (#33789778)

    I don't think you really understand systems administration. 'Users,' or in this case admins, don't typically do stuff once. Furthermore, they need to know what he did and how to do it again (i.e. new server or whatever) or just remember what he did.
    One-off stuff isn't common and is a sign of poor administration (i.e. tracking changes and following processes).

    What I'm trying to get at is that admins shouldn't do anything without reading the manual. As a Windows/Linux admin, I tend to find Linux easier to properly administer because I either already know how to perform an operation or I have to read the manual (manpage) and learn a decent amount about the operation (i.e. more than click here/use this flag).

    Don't get me wrong, GUIs can make unknown operations significantly easier, but they often lead to poor process management. To document processes, screenshots are typically needed. They can be done well, but I find that GUI documentation (created by admins, not vendor docs) tend to be of very low quality. They are also vulnerable to 'upgrades' where vendors change the interface design. CLI programs typically have more stable interfaces, but maybe that's just because they have been around longer...

  • by SudoGhost ( 1779150 ) on Monday October 04, 2010 @08:00PM (#33789826)
    But by the same token, I can click and drag a file from a folder to the desktop, easily. Much 'easier' than typing it out on the CLI, and much quicker for most people.

    Not saying it's easier for all people, but for most people, I can see where they're coming from. Sadly, I know alot of companies who don't want their admins to be the best, they want their admins to be the most efficient. They equate 'clicking' with quick, and typing out 'lines and lines of code' as long and arduous, and expensive.
  • Re:Config files. (Score:3, Interesting)

    by mirix ( 1649853 ) on Monday October 04, 2010 @08:19PM (#33789940)

    Yeah, instead of flat text conf files, why don't we put a whole bunch of config in some obscure place in the registry somewhere...

    i entirely fail to see the point as to why you would want a gui to do something that is integral to the cli.

  • by Anonymous Coward on Monday October 04, 2010 @08:46PM (#33790170)

    That's just because you haven't written a decent GUI for those options yet, it doesn't mean it couldn't be done if one wanted to.
    Really, find isn't always faster or better, especially since most scripts or tutorials you find online use -exec instead of |xargs.
    Hell, even the man page uses -exec in its examples instead of the superior xargs.

  • by __aarhwn4941 ( 1753632 ) on Monday October 04, 2010 @09:05PM (#33790344)
    I'm a "technical support guy" whose job is basically to support engineering users at our company. Recently, when working with a "system administrator" who was charged with cleaning up a mess that was made by his team's failure to oversee a contractor, I had to listen to this: "we don't really have any scripters on our team". Yup, all they have are administrative functionaries or people who know how to enter single commands. Not a one of them has taken the initiative to cultivate skills beyond the minimum that is in "the contract". Guess what? "Engineering" (myself and my engineering customers) cleaned up the mess.
  • Re:Better test! (Score:3, Interesting)

    by panda ( 10044 ) on Monday October 04, 2010 @09:07PM (#33790364) Homepage Journal

    If you write a script, you're certain that the changes made will be identical on each box.

    One little mistake in the script and you fuck up the whole organization.

    It is also easier to fix scripted errors because the error is identical in all places. I often find myself using sed to make complicated changes to config files and keeping backups or putting the changed config into a temporary file to get diffs of the results. In the odd case that something gets messed up in production, then it is usually another sed command or two to fix it.

    With a GUI it is harder to verify that you are making the desired changes beforehand, and if you do mess it up royally, then you are usually touching all of the configs individually with the GUI to fix your mistake.

    With the cli in the hands of someone who know what they are doing, the fixes can be implemented in seconds (or less).

  • by Peach Rings ( 1782482 ) on Monday October 04, 2010 @09:15PM (#33790418) Homepage

    Why would you even want Server 2008 to run without a GUI? The windows command line tools are dodgy and it only takes up like 64MB of your 16GB server memory.

  • by sp0tter ( 1456139 ) on Monday October 04, 2010 @09:16PM (#33790420)
    http://www.insecure.org/stf/scoville_unix_as_literature.txt [insecure.org] Sums up my feelings very nicely. Sure the GUI is good for some things, but after hours it leaves me lacking in understanding, since I have been essentially reacting to my computer instead of telling it when I want it to do.
  • by Shadow99_1 ( 86250 ) <.theshadow99. .at. .gmail.com.> on Monday October 04, 2010 @09:16PM (#33790424)

    All I have to say is: Amen! (in a nonreligious sort of way)

    I'm a not very good programmer who is a good system admin. I've been fighting the general apathy to anyone who can't read the source for the linux kernel in the linux world for going on a decade now! I'm always being told 'write it yourself' when I bump into a wall in administering linux systems that would be a simple button press in Windows... I don't want to reinvent the wheel! I'd frankly suck at it! That A) doesn't mean I'm a bad admin and B) Isn't something I even have time for in my day.

    I can just see my last employer waiting as I read through 10k lines of source code to figure out why X isn't working with Y. Those above me want things to 'just work' and when they don't and it takes time to fix it's the end of the world. I'll take tracking down the idiot on the campus who plugged the network cable into the same switch twice over writing my own app any day.

  • by Anonymous Coward on Monday October 04, 2010 @10:25PM (#33790862)

    What would be even nicer is if they started using OpenBSD on the routers so we could use pf instead of iptables.

  • by jabberw0k ( 62554 ) on Monday October 04, 2010 @10:52PM (#33791026) Homepage Journal
    The last Microsoft product I bought was Windows 98, so I have mercifully missed the whole disaster since then. All my clients are just now starting to switch from XP to Windows 7, because I advised against Vista. And in all these years of supporting dozens of computers I have never heard of PowerShell until this article. It's nice to hear that Microsoft is starting to do what I did on Unix in 1980. Too bad they did not build on Xenix, and save everyone much grief. Imagine where Apple could have been in the 90s, had they switched to Unix a decade earlier.
  • by Rantastic ( 583764 ) on Monday October 04, 2010 @10:56PM (#33791058) Journal

    I find it rather disturbing the UNIX ideal that sysadmins should be programmers. The opinion seems to be that it is perfectly ok for someone to need to do a fair bit of programming work to solve a system problem.

    Not only have I spent over 10 years as a professional *nix system administrator, I currently work training professional system administrators. I don't know *anyone* who thinks that a system administrator should be a programmer. That being said, shell scripting is a tool of the skilled system administrator. Writing simple scripts is nothing like programming. While shell scripts can be quite complex, most that a system administrator would write are very simple. Really just a series of commands.

    I know more than a few programmers that are abysmal at system administration...

    And how! The vast majority of developers I know are terrible system administrators. There is a reason we keep them as far from the production systems as possible. The problem is that they think they do know system administration, but they have a completely different mindset.

    ...this attitude smacks of the "People should just get down and code what they need," thing. No, not really. Not everyone should have to learn that skill, and you could well be excluding people you want by requiring it.

    Again, I don't know anyone who thinks this. People should learn the tools they are being paid to work with. That includes shell scripting. Now, some shops like to write a lot of in house tools in perl or python and will look for people skilled in system administration as well as those languages. Most big shops have a small number of sys admins who can write such tools. Don't confuse the tools team with the rest of the sys admins. This is a specialized role.

    Also there's the simple matter that GUIs work better for unfamiliar situations. While it might be easy to just say "Well a good admin should know about this," that is rather stupid. Nobody knows everything, you never get someone with limitless experience. Part of systems administration is being able to solve novel problems.

    I could not disagree more. While a GUI might help someone plod through without really understanding what they are doing, this is not a good thing. I agree that no one knows everything. However, a skilled sys admin can research and learn new things when needed. Most GUIs just get in the way of learning and deeply understanding. Then when something doesn't work as expected, you are SOL. Or you miss a subtle issue that bites you in the ass later.

    I'd like to point out that I use GUI tools all the time. However, I make a point of learning the technology I am paid to understand. When I use a GUI it is because it is the best or most convenient way to get something done. I can also tell you all the places on the system that GUI changed and what to do if something went wrong.

    That can make it much faster to deal with something you are not familiar with. This is important and useful in real IT work.

    I have worked in IT for long enough to know this isn't true. The simple reality is that most people working in IT suck. Seriously. I have interviewed and worked with more than enough of them. They use GUIs as crutches. They are over worked and have no time to learn anything even if they were so inclined. They have a very shallow understanding of the technology they are paid to understand. They choose "easy" tools instead of tools that require learning. It is the sad state of things that truly skilled system administrators are a rare find.

    Should everything be CLI? Of course not. Should everything be GUI, of course not. However, to say that GUI tools are better because you don't have to be familiar with them is a very scary attitude if you ask me.

  • by Penguinisto ( 415985 ) on Monday October 04, 2010 @10:58PM (#33791082) Journal

    I couldn't agree more which is why it's really cool that the Exchange GUI tools will show you the exact PowerShell commands they are running if you want to learn how to use the CLI (and in fact that are still things that can only be done in the CLI, though the list is greatly reduced in EX 2010 vs 2007).

    Crap. I was hoping they would've encouraged more CLI and less GUI... (using Exch2k7 here - haven't had time to dink with 2010 yet). I'm guessing the typical MCSE types (comprising the majority, not the whole) have decided that command-line stuff must be too hard to learn.

  • by Tharsman ( 1364603 ) on Monday October 04, 2010 @11:01PM (#33791090)

    Only that you went back to mention Scripting under CLI. True, every OS I seen that implements it allows for it to be scripted, but this is not necessarily true.

    An application can be written with dual interfaces, GUI + CLI (at least in windows) and [arguably] bad design can lead the CLI to require a user to confirm actions without allowing the confirmation to be scripted.

    On a similar line, I have seen GUI programs that have designed CLI equivalents for every menu and button with confirmation bypass parameters.

    As you said at first, in the end, it's just a third tool, one meant for programmers or at least power users with at least minimal programming experience.

    This will sound odd, but there are users that can work a CLI but can never ever program a single line of code. I worked in a company that has a completely CLI collection software. Not only is it impossible to script, but everyone uses it yet these are people that can't get the difference between shutdown and hibernate.

  • by Anonymous Coward on Monday October 04, 2010 @11:23PM (#33791216)

    They use GUIs as crutches. They are over worked and have no time to learn anything even if they were so inclined. They have a very shallow understanding of the technology they are paid to understand. They choose "easy" tools instead of tools that require learning. It is the sad state of things that truly skilled system administrators are a rare find.

    So a good sysadmin that knows GUI is cheaper on the payroll than say, a sysadmin that can master a CLI. Good to know that when standing in the unemployment line. Learn your freaking GUI for a job!

  • by McNally ( 105243 ) <mmcnally.gmail@com> on Monday October 04, 2010 @11:40PM (#33791314) Homepage

    AIX's SMIT did this, or rather it wrote the commands that it executed to achieve what you asked it to do. This meant that you could learn: look at what it did and find out about which CLI commands to run.

    It's been years since I administered an AIX machine but my recollection is that the CLI command strings it came up with were generally amusingly-specific unique-to-AIX commands with very long names like resizepartitionandinstallbootblock or something like that. They were generally specialty scripts built to parallel SMIT menu choices and you'd never wind up guessing the command without SMIT telling you what to use, but having the command-line version was nice because you could do something by menus in SMIT on one machine and then use the command-line equivalents to automate the same operations on dozens of other hosts.

  • by MaskedSlacker ( 911878 ) on Tuesday October 05, 2010 @01:27AM (#33791702)

    1) Your argument against CLI is a moronic volume mounting system designed explicitly to only be used with a GUI. Really, the whole C:, D:, E: thing was fucking moronic. The Unix scheme of mounting seamlessly as a folder under /, in a way which renders the underlying volumes invisible is far saner (which is, of course, an entirely separate debate from the merits of CLI vs. GUI, but a personal pet peeve with Windows).

    2) Tab completion. I don't think I've ever typed more than 5 letters of a filename, of any length.

  • YaST works in CLI (Score:3, Interesting)

    by houghi ( 78078 ) on Tuesday October 05, 2010 @01:46AM (#33791776)

    Funny the article singles out YaST as an example of GUI work. YaST works great in CLI. here an example [howtoforge.com]. I have used it both as GUI and CLI (over e.g. ssh) and alongside 'normal' CLI commands for e.g. the firewall and editing things by hand and what not.

    This means that if you want standard options, you can easily use YaST (in GUI or CLI after ssh) or use anything else if you want. So it is very strange that he uses YaST as an example for GUI only ways of doing things.

  • by ubersoldat2k7 ( 1557119 ) on Tuesday October 05, 2010 @03:50AM (#33792190)

    GUIs are unquestionably faster for simple things. Copy this file here. Select this word that's miles away from the input cursor.

    Even for simple tasks I find the CLI faster. A few days ago I was playing with this idea, so I ran a little timer ($time read x) to find out how much time did it take to do simple tasks like the ones you mention. In every tasks, I was faster in the CLI, except for renaming one file.

  • Re:/etc/resolv.conf (Score:3, Interesting)

    by AlexiaDeath ( 1616055 ) on Tuesday October 05, 2010 @04:32AM (#33792334)
    You missed last two steps. I have a kid sister with ubuntu laptop. She is OK with computers as a user, but even then nothing beats being able to paste a few lines through MSN to fix whatever. The talk-throughs Ive had to do for windows users have been HORRIBLE experiences. Ive managed to talk her through things I wouldn't even dream of doing on windows including building a wireless driver from source, installing 3rd party kernel and modifying grub config.
  • by Enleth ( 947766 ) <enleth@enleth.com> on Tuesday October 05, 2010 @05:37AM (#33792538) Homepage

    Could be configuraion syntax. Simple, readable, concise, possible to understand even in very complicated scripts without looking at the manual. I'm using iptables routinely, but I liked pf for its simplicity.

  • Re:Better test! (Score:3, Interesting)

    by Shadow99_1 ( 86250 ) <.theshadow99. .at. .gmail.com.> on Tuesday October 05, 2010 @08:02AM (#33792958)

    Actually they had no clue what a 'good server' was, so when they left it up to me they were functional and up to date systems. Though most of our windows servers were from HP's server line.

    Others not so much, like when they decided web hosting should move in house and gave me a zero dollar budget. So I cannibalized a bunch of antique desktops and made a new 'linux apache web server'.

    Funny enough I'd gotten a 5k raise every year (much needed though as the pay started fairly low for an network admin). Though with a change in leadership the board took power and they decided I was to expensive and outsourced me about a year ago. Hence it was 'my last employer'.

    OOS did ok, though it's still not the year of the linux desktop. Remember I said I had to keep a bunch of antiques running and made them linux? Well normal people would use them, or more not use them. They were considered non-functional by everyone that used them and this is ubuntu, so the interface wasn't exactly CLI and not terribly unlike windows. On the server end I could have probably pieced together another antique web server, but I didn't really need much of a test system for a limited use web server...

    Btw I argued against getting the web server in house. We existed on a 2Mb fiber connection (they chose to only pay for 2Mbps anyways), having the web server take away from our already pathetic bandwidth was a bad idea...

  • Re:/etc/resolv.conf (Score:1, Interesting)

    by Anonymous Coward on Tuesday October 05, 2010 @11:03AM (#33794442)

    Make the edit you want to the file... then start and stop suspect services until you figure out what is overwriting the file (or use auditing to see what is making changes to a file).

    situations like that makes me wish dtrace was also available on linux.

"What the scientists have in their briefcases is terrifying." -- Nikita Khrushchev