Wednesday, August 29, 2007

bsdtalk127 - Why I like the CLI

Why I like the CLI:
  • Uses minimal resources. Less space, less memory, fewer dependencies.
  • Transparency. GUI hides internals, limits options.
  • Similar between Unix-like systems. GUI tools seem to change every week.
  • Remote management. SSH rocks.
  • Everything is text. Configs, devices, output. CLI is natural complement.
  • Pipes and scripts. One time is hard, a thousand times is easy.
  • Only need a few tools. Grep, sed, awk, vi, cron.
  • Text config files. Easy to version, share, and comment.
  • Requires reading skills instead of clicking skills.
  • Much faster when you know what you are doing.

File Info: 12Min, 6MB.

Ogg Link:
http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk127.ogg

10 comments:

Dick said...

It'd be useful to hear what's wrong with the CLI from your point of view too.

Greg Fitzgerald said...

Well you got me thinking a little today. First i agreed yes we want telnet dead. Then i was thinking it's way to useful for debugging. I use it a lot to debug mails ervers and other protocols. Then by the end of my day I realized ah let it die netcat to the rescue. :)

Rick Noelle said...

Hi Will,

I really enjoy your podcast, keep up the great work. I want to encourage you to use CVS to manage config files. You mentioned that you typically save copies of the config with the date that you made the change and never delete a line, just comment it out, etc. I used to do this too and after awhile I found it hard to manage and would get tired of my directories filling up with multiple copies of the same file. Using CVS keeps one clean file with easy access to any of the previous version with a simple checkout command. It is also really nice to be able to do diffs on specific versions of the file in varying points of time and review comments about why a change was made. CVS takes awhile to get used to but once you do, it is one of those things you find yourself wondering how you ever lived without. Just my two cents! :-) Rick

Tim Rue said...

There are three primary user interfaces. The first was of course the commandline. Following that was the GUI, easier for new users but limited and not as versatile as the commandline.

The third user interfaces has yet to really emerge as a standard and consistant interface but is typically known by many names and variations (which doesn't help the users) and its the side door port. The external access point to application functionality, libraries, devices, etc. It is what the users can use to put things together for themselves.

Its a matter of nature and natural application of primaries. Such as Paint colors of magenta, cyan, and yellow from which you can make any other color from, paint a full color picture.

But take one of those primary colors away and you greatly limit what the users, the painters can paint.

Making ease of use of these three is also a natural, though the question is why it has not really been done yet.

for more see:
http://threeseas.net/abstraction_physics.html

David said...

Enjoyed the show. Personally I spend a lot of time at work with several terminals open, I find that:

tail -f /var/log/logfile

tends to be a lifesaver for me.

Anonymous said...

Great thing about CLI is that it has a defined means of communication with outside processes. You give it input and take output back in post-processable form.

And that gives us the universal abilities to process our data watching those nasty transformations in result. We have any option to use ready functionality of many small programs to do a new thing for us. So they are great because they complement each other.

In contrast I find CLI poor in larger applications of some special purpose where dialog with user is a primary thing. When you must watch such a monster, it becomes really tiring.

Thanks a lot for bsdtalk127, I found it interesting and entertaining.

Anonymous said...

Hi Will,
I'm a longtime listener who enjoys your show. Thanks. About the command line. Yes, I have to agree with your points. It does have its advantages but I don't like dealing with a blank screen and a prompt. I tend to always use the Midnight Commander file manager instead. It still lets you use the command line but it's a more visual environment
(low resource text mode) plus it runs on everything. Take care. Tim S.

Gualtherus said...

CLI benefits: What you said.

Even more: Doing development on Windows in a GUI environment is a real pain. There's nothing like good old make. Where GUI dev is good, however, is with Palm and other handhelds or some Java environments.

CLI drawbacks: Not marketable. Commands are still stuck in PDP-11 days, yet short is sweet when scripting.

A slight typing error can hose your machine as root. No brakes!

Trash is not OS-level implementation, although neither is it on OS X, which violates one of Donald Norman's design rules.

Behavior of commands within emacs, etc., may be different than in your shell.

.cshrc or .bashrc magic can be just as much a hindrance as a GUI if that is what one becomes *used* to (cause I'm LAZY). When in college I cobbled together a .cshrc from enough operators' tricks that could practically make pancakes. But when it came time to sidestep the programmed defaults, there was still a "duh" moment before I RTFMP'd and doped it out.

We will always need the CLI. But mc is my friend.

Валенок said...

I really enjoy your podcast, please, keep it up and thank you for your time.

battery said...

The third user interfaces has yet to really emerge as a standard and consistant interface but is typically known by many names and variations (which doesn't help the users) and its the side door port. The external access point to application functionality, libraries, devices, etc. It is what the users can use to put things together for themselves.