Hacker News new | ask | show | jobs
by Altreus 5766 days ago
Why use the command line at all when you can use a GUI?

Understanding how your system works is a different level from choosing the tools in the first place.

3 comments

You may not always have your optimal tool set, such as when you're remoting into someone else's environment (common for sysadmins or contractors), or when you're stuck using someone else's computer rather than your own.
It depends on what you do, I suppose. If your work doesn't have a large command-line component, using the command line might be disruptive.

A large part of my job involves working with remote Linux servers, so I chose to invest time learning Linux command line tools and vim. Now I'm more productive in a terminal than in a GUI environment. I use common tools that are installed by default on Linux/Unix/OSX, so I can sit down anywhere and do my work, or SSH directly into my machine and have my exact work environment securely and without latency.

A command line is a poor mans gui.

A gui is a poor mans command line.

Whichever I'm using there are always aspects of the work that you could do better with the other.

Give me an example of something that you could do better with a gui. Just curious.
Selecting a number of unrelated items from a list. Example: You have a folder with music files and want to select some to copy onto your portable music player. It's easier to click on the items to select them than typing all the names, even with file name completion.
- interactively increasing the contrast of an image

- browsing the web (sorry, lynx users)

- play games (not that I'm a gamer)

- desk-top publishing

- routing a PCB

- CAD

and so on...

But then, each of those has moments when you think to yourself 'Man, I wished I could script this' (well, maybe not the games).

Sure, but given that I already use screen, what use cases would I find easier using job control instead of plain screen?
Simple command line timer:

    remind() {
        [[ $# -ge 2 ]] || { echo >&2 "Usage: $FUNCNAME time msg"; return 1; }
        local sec="$(($1*60))"
        (   trap "echo \"\$sec seconds left\"" QUIT
            while ((--sec > 0)); do sleep 1; done
            say "${@:2}" # OS X only, replace with your favorite notifier
        ) 2>/dev/null &
    }

    $ remind 30 get the laundry
Query time remaining with kill -QUIT %jobspec. Good for systems that don't have at(1).
Hm. That looks like quite a typing exercise. What's wrong with:

    ( sleep 1800 ; say "get the laundry" )&
His can be added to your .bashrc/.bash_profile, and then all you have to type is:

  remind [minutes] [message]
Functions can be imported to your shell. =)
neat trick
Thanks, that's useful!

Favorite notifier:

  echo "${@:2}" | growlnotify -t Reminder -s -m -