Shell being shelled?

berry120

Fully Optimized
Messages
3,434
Location
UK
I posted this on my blog just now, but I thought it'd make an interesting discussion so I've duplicated it here. It'd be interesting to hear other people's views - especially if you're a student or working in IT at present.

http://mikkle.co.uk/content/shell-being-shelled

In this day and age it strikes me that, for the most part, computer science students are pretty good at pointing and clicking. Creating websites in Dreamweaver? Knocking together bad GUIs using GUI designers without ever understanding a bit of the underlying code? Even starting / stopping servers or services with a few point and click operations? No problem at all.

Some try to make themselves stand out by installing various flavours of Linux, then pointing and clicking around KDE with varying degrees of success. This of course will allow them to honestly slap "avid Linux user" on their CV in the hope that a future interviewer will be impressed by their knowledge that there's more to the world of OS's than Microsoft's latest offering.

However, what happens if you take away all that nicety? What happens if you leave just the bare essentials - the shell underneath? Then how many stereotypical "geeky" computer science students would be able to navigate their way around?

I suspect not many.

This, in my mind, is a bad situation to be in. Sure, learning how to use KDE is useful. But at the end of the day it isn't hard, and if you're even moderately comfortable with Windows you'll be able to work out how to click your way around in next to know time at all.

Thing is though, for better or for worse in the real world Linux is, relatively speaking, pretty rare on the desktop front. There's companies out there that'll provide the option of using it which I think is fantastic. It'd certainly be my choice. But where Linux / Unix has really found its home is in the server end of the market. The security, stability and reliability offered here is quite frankly amazing (especially with the likes of Unix and ZFS) and companies have caught onto this, often using such machines to drive enterprise scale applications. The bonus of course and what's at least partly driven this success is that the end user neither knows nor cares what OS the servers are running. As long as they get their content in the form they're after, they're happy.

However - servers don't need X, they don't need KDE and they definitely don't need the likes of Beryl style effects everywhere. Running these things is often a waste of resources that could be allocated much more usefully elsewhere. So for very good reasons, a lot of these servers don't run X at all. And if you haven't got a graphical environment, what are you left with?

The same thing that seems to be fast becoming alien to computer science graduates - the shell.

Note here that I'm not saying every man and his dog should have to learn to use one. If you're a casual PC user that has no interest in the IT field of work then there's no reason to bother. But students looking for a career in IT? Knowing the basics of a shell should surely be taught as a fundamental skill, not just an interesting piece of history. The shell is still very much alive today - it'd be a serious mistake to assume otherwise.
 
Nail on the head, i'm a student, I work in IT, i'm also putting the finishing touches on my software engineering BS (this fall is my last semester, then off to grad school for my masters!). In this day and age it seems like a bit of a lost art, still a very functional powerful tool. Just starting out it can have a bit of a curve, but like anything once you catch on its fairly easy, that could be what is stopping a lot of people from picking it up. In addition to the curve it may also be due to laziness in general. Why do something via command line, when there is a program somewhere with a button that will do the same thing for me. Its actually really funny, in our IT department, I maybe have one boss that knows his stuff (Not just command line, but computers and tech in general) outside of him, besides the technicians out on the ground most of the people that work in the "IT" department are pretty computer illiterate.
 
In addition to the curve it may also be due to laziness in general. Why do something via command line, when there is a program somewhere with a button that will do the same thing for me.
I think this is it - if people can just install X and click their way around there then generally they just will, rather than learning to use a tool that's there already and may be far better suited to the job in hand.

When people usually realise the error of their ways is when they get a job, they're presented with a server, told to do x, y and z and no - we don't have X on here. Unfortunately that's also generally when they've finished education and can't go back to spending a year learning how to use the shell most effectively! Heck, if you're talking about navigating around a directory structure, unzipping files, starting up servers and so on then I'm much quicker with a shell as oppose to a graphical environment, as is everyone else who knows how to use one properly :)
 
I would imagine that with the amount of power shell integration that w2k8r2 has that the shell is about to undergo something of a revival.

Whilst I completely agree that it's a shame that people don't seem to be able to use command line interfaces any more, for the most part I wonder if they are actually needed, and how much of command line interaction is actually geeky wankery trying to look like you're doing something technical when in fact all you're doing is starting or stopping a processes or service by typing it's name...
 
for the most part I wonder if they are actually needed, and how much of command line interaction is actually geeky wankery trying to look like you're doing something technical when in fact all you're doing is starting or stopping a processes or service by typing it's name...
Well, what's easier?

Going to start, settings, control panel. Double clicking administrative tools, double clicking on services. Waiting for that window to load, then scrolling through to find the required service, then right clicking it, then hitting stop...

...or typing "net stop servicename"?

;)

I can see where you're coming from though, I know people that like to fire up window's command prompt and then spend all day typing dir, cd and tree because it makes them feel geeky, cool and superior.

It's also worth pointing out that I'm not nearly as likely to fire a command prompt up in windows than I am a shell up in *nix. There's a couple of major reasons for this:

- Windows gives you no choice about installing a graphical environment for its servers, so it's always there to use whether you like it or not. It's sometimes more of an effort to fire up the command prompt than to do something graphically (since even that requires a certain amount of pointing and clicking!)

- The command prompt under windows is, quite frankly, crap. Whereas shells in Linux have been constantly updated and developed to this day, Microsoft seemed to fall in the trap of dismissing them as the "old" way of working and now seems to desperately be playing catch up with powershell and the like. I haven't looked at it in a while but when I looked last I couldn't find any equivalent of nohup, vim, grep, command history and others that I'm used to constantly using on Linux - it's getting there but I don't think it'll ever be as solid and useful as bash.
 
- The command prompt under windows is, quite frankly, crap. Whereas shells in Linux have been constantly updated and developed to this day, Microsoft seemed to fall in the trap of dismissing them as the "old" way of working and now seems to desperately be playing catch up with powershell and the like. I haven't looked at it in a while but when I looked last I couldn't find any equivalent of nohup, vim, grep, command history and others that I'm used to constantly using on Linux - it's getting there but I don't think it'll ever be as solid and useful as bash.

The "powershell" in windows that you can use in place of the standard command prompt is nice although I don't know how much stronger/better it is over the regular command prompt.

At work, we do a lot of compiling in in command prompt. TO get around the basic limitations of the windows command prompt, we've installed a program called TCC and it's nice. You can make alias commands to make life easier.
 
Well, what's easier?
I understand that point exactly, and that's why I often use the command prompt for restarting *some* services, other times I hold down the windows key, hit R and type services.msc then just select the service and what I want to do with it...

usually, my course of action will depend on how many times I need to do the task, and how long the service name is...

sometimes it's genuinely easier to use the command prompt, sometimes you're going to need to find the service name first then type it out or copy it...

- The command prompt under windows is, quite frankly, crap. Whereas shells in Linux have been constantly updated and developed to this day, Microsoft seemed to fall in the trap of dismissing them as the "old" way of working and now seems to desperately be playing catch up with powershell and the like. I haven't looked at it in a while but when I looked last I couldn't find any equivalent of nohup, vim, grep, command history and others that I'm used to constantly using on Linux - it's getting there but I don't think it'll ever be as solid and useful as bash.
have you investigated gnuwin32?

I have grep installed on my PC so I can use it to do things more easily at the command line. there is an equivalent for *most* linux GNU tools under windows... so you can have just as much power at the command line.
 
have you investigated gnuwin32?
I have indeed - though these days I mainly just run Ubuntu, most of the work I do on windows when I wish I had a better command line available is on other people's PCs. It'd be great if it was installed on all of them by default, but obviously the overhead of downloading and installing the thing is rather big just to type in a few commands!

The "powershell" in windows that you can use in place of the standard command prompt is nice although I don't know how much stronger/better it is over the regular command prompt.
When I last looked at it it really was pretty awful, though looking around briefly at the moment it seems Microsoft have upped their game lately. There's still no way I'd choose it over bash though.


Still, at some point I'm planning to stand up a custom Gentoo server backed by its hardened sources... and yes, all that will be available is a shell ;)
 
I agree - On a lot of Forums (not so much this one...), people ask about how they can install Gnome/KDE/XFCE and VNC on their servers. If they took the time to learn a few basic shell commands, they would soon realize that a GUI is totally un-necessary, and a huge resource hog.
 
Back
Top Bottom