Command Line Tools to Break Your Dependence on the GUI

dragondax | 124 points

This article is awful. You're not going to "break your dependence on the GUI" by replacing 5 things you do a few times a day with obscure, less good CLI alternatives. What about things like manipulating files and running programs? Aren't they the things people do with computers?

Also, bc is especially terrible. Nobody who is already "dependent on the GUI" is going to want to know about scale= and all that. Better to use Python or even bash (echo $((123+456)) etc)

cranekam | 4 years ago

A dictionary? I mean, that's neat and all, but not all that useful is it? I might check the weather once a day, tops. This is better solved by having a widget on my smartphone. Same for the dictionary, and same for short google searches too (Firefox Focus).

I had a twinge of hope that this might have been more of an introduction to using the terminal effectively on Linux for diagnoses.

I'm new to Linux, and every time I have an issue and find a thread addressing it, they ask for me to run a whole bunch of commands and paste a bunch of logs. I'm happy to do that, don't get me wrong, but I rarely have the faintest idea of what it is that I'm typing in.

exergy | 4 years ago

I love finding good command line replacements for UIs. One I've grown to rely on a lot these days is awslogs:

https://github.com/jorgebastida/awslogs

Which allows you to stream Cloudwatch logs via a command like:

  awslogs  get <log group name> ALL --watch
which is cool because you can just specify the log group and get all streams without having to dig around for the specific stream in the AWS console.

There's a python based command line HN client (https://github.com/donnemartin/haxor-news) that's nice, although I think the dependencies need updating (I get various conflicts if I try to install other packages in the same venv).

For twitter, rainbowstream is nice:

https://github.com/orakaro/rainbowstream

msluyter | 4 years ago

I love my dependence on the GUI, otherwise would still be stuck using MS-DOS.

pjmlp | 4 years ago

Work in progress, but sixel support may be coming to mainline tmux:

git clone git://github.com/tmux/tmux

git switch sixel

git checkout b1904c9b8db514133d3372aac13b2ff0b2093cc3

This will give you the "placeholder" box for sixels in terminals that do not support sixel (but you should use mlterm on Linux or mintty on Windows)

The upcoming feature is to replace this placeholder box by unicode art for the sixels, cf https://github.com/tmux/tmux/issues/1613 for the current discussion.

Then you will be able to break your dependency on the GUI just by using w3m and your favorites sites, whether your terminal supports sixel or not (but it should, it's just better!)

apt-get install libsixel1-bin

w3m -sixel -o display_image=1 google.com

Cf https://apple.stackexchange.com/questions/244930/how-do-i-vi...

There are other apps with integrated sixel support like mikkuter for twitter, gnuplot (there was https://github.com/csdvrx/sixel-gnuplot , but now the sixel backend is compiled by default in the official gnuplot-nox starting from debian-10)

At the moment, I'm working on a mutt hack rendering outlook emails with all their included thingies (images etc) into sixels.

If someone is looking for an idea, it'd be great to have a IRC client that replaces URL containing pictures by their sixels renditions, a bit like what lsix does ( https://github.com/hackerb9/lsix )

csdvrx | 4 years ago

I'm a little late to the party, but something I've come realize recently is that my affection towards CLI applications comes from the fact that I usually don't have to take my hands off the keyboard.

Human hands can move very fast, faster than we can assemble cogent thoughts thanks to muscle memory (and other things that I'm sure I'm not aware of). I don't know if this is a universal thing, but I like it when I don't have to think about how to get something done. I consciously picture the end goal in my mind, and my hands just do.

Of course, I'm a sloppy typist, and still relatively unrehearsed when it comes to working with Vim and friends. But I've been most of the standard GNU applications long enough to realize that my brain no longer directs my hands to interact with the keyboard for frequent simple tasks (generate a line plot for this two column CSV, use awk to get the penultimate column of this file, hash files in a directory to remove duplicates, open HN in a browser...).

I'm also a big sucker for working with programs that compose well with other programs. If I had all the time and money in the world, I'd love to have more GUI apps that explored GUI/CLI interop better. I think one example many developers can comment on is how nice it is when you can combine CLI git commands with git in your code editor. Sometimes, it's just easier to resolve ugly merge conflicts with a GUI. Or there's a really weird command that doesn't exist in your GUI so you need to type it out on the commandline.

There's definitely a lot more work to be done in this domain and I'm excited to see how software/OS/library developers explore this in years to come.

dwrodri | 4 years ago

I like awk as a calculator:

    calc () { awk "BEGIN { print "$*" }" }

    $ calc "2^16"
    65536
    $ calc "2*16"
    32
    $ calc "2+16"
    18
icefog | 4 years ago

I never tried googler, but I have used lynx before. Far from a productivity boost, all it really did was help me look busy to the untrained eye while reading HN.

excalibur | 4 years ago

You can use this CLI to plan you haircut by browsing queue times for Cutters hair salons:

https://github.com/draperunner/cutters

Which enables you to run:

  $ npx cutters | grep Oslo | head -3
to get queue times in Oslo. Made by a colleague of mine.
henrikwm | 4 years ago

If you use Haskell, then I'd recommend just using ghci over bc because you can't do floating point stuff in bc:

    1/3
    0
Whereas ghci, or your language's REPL, will likely do better:

    > 1/3
    0.3333333333333333
ancarda | 4 years ago

Lots of people in this thread are recommending blogs, videos or books to get to know the command line or just tell to RTFM.

I'd like to note that no manual at all is needed to understand a basic menu structure or a GUI system with consistently used widgets.

xg15 | 4 years ago

Does anyone know of a similar tool to the weather api wttr.in for stock prices?

whyhow | 4 years ago

This is really cool. Has anyone made a version for Windows?

lewisj489 | 4 years ago

awful scroll-jacking on this site. I really hate that.

bil7 | 4 years ago

It's funny how condescending some will try to be about use of the command line, as if it's something special.

You can quickly invert this to read as: GUI configurations to break your dependence on the command line.

In moment's thought, it becomes very obvious that a GUI can readily conceal complexity and require earned skill in the same way any text mode interface might. Text command skills also evaporate just as quickly when you realize you were just locked into preferences specific to the system they bind to.

The command line is not better than other ways of completing tasks. When Linux (and each and every last variant) dies (however long that may take), it will become all too obvious that the essential commands people memorized were only useful within the scope of that particular operating system

bondedScrotes | 4 years ago