
The Command Line Challenge. - chavezgu
http://blog.chavezgu.com/2012/03/07/the-command-line-challenge/
======
tikhonj
Amusingly, Emacs can do pretty much all he listed. Of course, as somebody who
pretty much lives in Emacs and a browser, I'm probably the wrong demographic
:).

Also, I'm annoyed at other commenters' equating "command line" with primitive:
just because GUIs are newer does _not_ mean they are superior or that the
command line is obsolete! For a large range of tasks like file management or
system administration it is actually superior; for quite a lot of other things
it's completely usable. I'm not saying GUIs are useless or that the command
line is perfect for everything, but it is far from obsolete or inferior.

Now, doing _everything_ in a terminal is overkill, which is why this is a
_challenge_ \--you're not expected to use a terminal forever, just long enough
to get sufficiently acquainted with it so that when you do things the terminal
is great at--which you will--you will be able to use it as efficiently as
possible. And, since all the readers here doubtlessly spend _very_ large
amounts of time behind a computer, being as efficient as possible there should
be a priority.

Coincidentally, I say all this as somebody who started using a computer with
Windows 95. I only learned how to use the command line (first a bit on Windows
then on Linux) because it looked cool; I continue using it because it turned
out to be more efficient at a whole host of tasks than using a GUI.

------
enneff
More like "the terminal challenge." Curses-based programs (like vim, mutt and
lynx) still have graphical user interfaces, they just have really shitty
graphics. (And that's not a criticism of those programs.)

Try spending a week using just ed, mail, and curl. Those are actual command-
line programs, not just terminal-based programs. The litmus test is whether
they would work with a real paper teletype.

~~~
derleth
_Curses-based programs (like vim, mutt and lynx) still have graphical user
interfaces, they just have really shitty graphics. (And that's not a criticism
of those programs.)_

I'd say the keyboard-centricness still separates them from, say, Eclipse.

~~~
koningrobot
For those looking for a keyboard-driven browser, try <http://conkeror.org/>

~~~
klez
or <http://uzbl.org>

~~~
icebraining
or <http://dactyl.sourceforge.net/pentadactyl/>

or <http://luakit.org/projects/luakit/>

------
sliverstorm
My (unintentional) Command Line Challenge was trying to build Gentoo on a
100MHz laptop with no other computers around. That was about 2 days of compute
work. At the time, it didn't compile reliably either, so emerge would crash
5-10 times while trying to get to Xorg. Learning to fix the problems,
particularly via lynx, brought me up to speed more quickly than anything else.

Something to be said for leaning by immersion.

~~~
MatthewPhillips
I agree with your general point, but configuring Xorg is a form of torture no
man deserves to go through.

~~~
count
Hah, kids these days. Xorg is a DREAM compared to it's predecessors X11 and
friends.

~~~
MatthewPhillips
Xorg is fine today, it's pretty much automatic. I'm talking about 6 or 7 years
ago when you had to dive into xorg.conf to get 75% of graphics cards to work.

------
Karunamon
Short answer: No.

Lynx/links/elinks are not acceptable substitutes for a modern browser.

The command line is a powerful tool, and it has its place, like any other
tool. This just reeks of "all I have is a hammer..." syndrome.

~~~
chavezgu
It's not intended as a full replacement. It's about reducing your technology
for a few days in order to get proficient in the console. The browsers are
just because we all need google or hacker news sooner or later.

~~~
eropple
With respect: "larval mode makes you learn things" is obvious even without a
blog post.

------
bnegreve
_I recommend Vim because I use it every day._

I have to say that I haven't seen such a fair argument in favor of emacs or vi
for years.

------
rcthompson
I upvoted this because it links to a lot of useful-looking terminal programs
that I didn't already know about.

~~~
icebraining
Related, a great list of them: <http://jaredandcoralee.com/CLIapps.html>

------
hereonbusiness
Will using cli tools for no real reason be the next hipster retro thing? If
so, I just want to state that I've used the terminal and cli
applications/tools long before it was cool :p

------
dsr_
Yeah, so, I did that. On VT-220 and VT-320 terminals, connected to VMS on VAX
and Solaris on Sun. Oh, and command line on a 486DX33 running Linux so long
ago that the concept of a distribution was new.

I love command lines, and I use them every day. Most of my work is on a
command line... in a term window in X. The Linux virtual terminal system was a
great advantage. The ability to run multiple terminal windows on-screen at the
same time, with a clipboard! that was an amazing achievement. Virtual
desktops? Great.

All of these things are advantages, and you don't need to stop using the good
stuff that works in order to use the new stuff that works. Today I click on
one of my sidebar icons to summon the terminal windows in which I do most of
my work. I have enough RAM that I can keep heavy graphical browsers open -- FF
and Chrome -- with hundreds of tabs open.

I'm happy to be able to use everything. I'm happy to have choices.

~~~
sgtsugarfingers
The article didn't make any religious argument for the command line opposed to
a GUI. His background is the opposite of yours. For him, relying on the ease
of a graphical interface was a habitual deterrent to stepping out of his
comfort zone and learning the CLI. Temporarily restricting himself to use only
CLI was a focusing mechanism to help him gain strength in a weak area. His
efforts demonstrate the hacker ethic quite well. He could have easily stuck
with the familiar, but decided to force himself to go out on a limb.

------
MatthewPhillips
> lynx has more options and is more powerful in general, but elinks has a
> better rendering and looks.

I've never understood why lynx gets so much more love and respect than elinks.
Elinks has tabs, lynx doesn't. Elinks supports some EMCAscript, lynx does not.
What are these special features that only lynx has?

------
newman314
Honestly, I'm going to fall back on right tool for the right task.

I just happen to be able to get a lot done using a terminal. However, that
does not mean I want to be doing something Excel-ish in anything but Excel.

~~~
chernevik
Yes. But. The trick is knowing other tools in sufficient depth to know when
Excel is an anti-pattern.

Which is hard, b/c it's so flexible that it gets adapted to a lot of stuff it
really shouldn't be. A big chunk of Corporate America uses Excel the way our
foreprogrammers used Perl or Bash, adapting it to all manner of tasks because
it's what they know. I admire their resourcefulness (and scorn their IT
environment for limiting their access to better tools) but that handiness
leads them into solutions that are fragile, unmaintainable, uncheckable and
unscaleable.

The step from Excel to broader, more flexible tools is the move away from
graphically delineated relationships to logically stated relationships. It's a
very hard step, and one most people won't make unless they force themselves
through a period of clumsiness while they orient themselves to a new approach.

Exercises like the OP are a great way to do just that: "I'm going to force
myself in this direction by setting some simple but arbitrary obstacle that
will build capabilities I can use elsewhere." Doing so on tasks that are well
understood may help even more -- "I know how I would do this in Excel, how do
I do it in Python?" -- because your knowledge of the problem frees you to
learn the new things about this new sort of solution.

The OP isn't saying the CLI is the right tool for everything, he's saying this
is a way to build the understanding that lets you move to it freely when it is
the right.

------
super_mario
I do this. I live in the command line exclusively and have for over a decade,
except for web browsing (Lynx is extremely useful though) with Firefox +
pentadactyl, and PDF/image,video viewing/editing.

But then again I'm a little biased, since I work for a company that makes our
own vi, perl, awk port of entire POSIX APIs for Windows and UNIX shells etc.
And cross platform ALM suite of applications (Linux, Solaris, AIX, HPUX,
Windows, Mac OS X). I can't imagine being a developer and not being in the CLI
99% of the time.

~~~
MatthewPhillips
It's frustrating. I envy you.

------
unimpressive
On image viewing:

You can use the (terribly named.) libcaca. Or you can use fbi as root and take
advantage of having a display that isn't a physical teletype.

~~~
derleth
If you let 'console' include 'xterm' (in Ratpoison, perhaps) then w3m displays
images in an xterm just fine.

------
ocivelek
CLI is great from *NIX perspective and I believe most of us had used it
extensively in the past. I still use CLI but if and only if it suits as the
best tool for the problem I'm working on. The fact is, that the paradigm has
changed, therefore the way we interact with our computing devices.

IMHO, bigotry is not only bad in politics. We have to embrace the change,
learn new tools, improve, share our knowledge and not only make our jobs
better for ourselves, but also for others. Especially for rookies, who will
have to be doing more tomorrow than what we do today. I don't believe
`libcaca` has anything to serve this purpose.

Using mutt instead of gmail; I'd ask "Why?". We don't need to stick with the
tools we've used 10 years ago. If I'd be looking for a challenge as a
sysadmin, I'd learn ways to better utilize cloud environments, look for better
ways to serve static content for large volume systems, improve my tool base
for managing geographically distributed servers, learn about the requirements
of the new era of real time web, how to deploy node.js on my servers, etc.

~~~
DanBC
You point out that you're familiar with the command line, thus this article
isn't really for you.

For people who haven't used CLI before; or who don't have much experience of
the command line: it makes some things about the Unix way a bit clearer. One
program does one task, but does it well. You pass the output from one command
into the input of another. Input and output are text, because text is
universal.

These are important powerful concepts and I'm disappointed that they've
largely been forgotten in the GUI world.

I'm also baffled that my vastly powerful computer has areas of lagginess when
grinding through some seemingly trivial things. A pure-CLI trivially-easy-to-
install distro[1] isn't going to happen, but imagine the use people could get
from all those old computers which are not coping with modern OSs.

[1] Linux from scratch definitely does not count. TinyCore doesn't really
count. Arch sort of comes close, but would need to be i) Much easier to
install and ii) have a specific repository for CLI / Curses / etc software.

------
djhworld
I use a lot of command line tools these days, but I always use a web browser
for browsing the web and a proper music player too. I don't think "going cold
turkey" from the GUI is really a good idea.

Both have their place.

~~~
icebraining
_proper music player_

I can understand the browser - I use a graphical one too - but except for CD
covers there's really no content a music player needs images for.

Ncmpcpp has a clear, nice interface with features like automated lyrics
downloading, database management, tags editor, playlists, etc. And the
advantage is that since it's only an MPD frontend, you can still use mpc to
script stuff.

------
HoverHell
Probably not so useful but a more hardcore challenge: limit yourself to a
visual equivalent of a braille terminal.

------
wvenable
I suppose now we have a new generation of developers who have never had
nothing but a DOS prompt to stare at. I have no desire to relive the days
before high resolution displays, mice, and the most amazing software that has
ever existed.

~~~
eropple
Have to agree. I mean, I probably count as the tail end of that generation, at
least in terms of actual programming (though I sort-of-fondly remember the
joys of SUBSTing drive letters for games in DOS when I was five or six...),
but I do definitely remember 80x25-and-that's-all-you-get (heck--QBasic,
anybody?). I have been to the land of stone knives and bearskins, and I am so
very grateful we don't still live there.

------
drstrangevibes
I draw the line at viewing pictures in text. C'mon Son!

