
A collection of Unix terminal/console/curses tools - tsudot
http://kkovacs.eu/cool-but-obscure-unix-tools/
======
laumars
I know lists like this will almost always contain at least one command that I,
or any other sys admin on here, would use fairly regularly. But it would be
nice if just once an article about "obscure" CLI commands didn't include stuff
that's the most basic of essential every day staples for any *nix
administrator.

Including stuff like vi and emacs is just ridiculous, quite frankly. If you
haven't heard of them already then you really have no place in the command
line, let alone reading a document like this.

Most of these types of articles should be rebanded as "beginners cheat sheet
for handy command line tools" or just not written to begin with (because,
frankly, they're just repeating all the same recommendations as every other
article like this that pops up each week and few of them have any descriptions
that are accurate either).

Maybe my job this weekend will be to write my own version of these documents
but with a decent selection of programs, descriptions and example usages?

~~~
kemist
> Maybe my job this weekend will be to write my own version of these documents
> but with a decent selection of programs, descriptions and example usages?

Maybe your job this weekend should be to get a little exercise before writing
on the internet?

It's a nice little summary of cool tools. "Some are little-known, some are
just too useful to miss, some are pure obscure".

~~~
laumars
_> Maybe your job this weekend should be to get a little exercise before
writing on the internet?_

Maybe you should learn some manners and stop posting wild assumptions about
physique of your peers.

 _> It's a nice little summary of cool tools. "Some are little-known, some are
just too useful to miss, some are pure obscure"._

It's barely a summary. A summary requires some details about the points being
raised; albeit a briefly phrased. That site was more akin to a bullet-pointed
list.

The descriptions are lacklustre, the screenshots are useless for all bar the
ncurses programs, and including _" just too useful to miss"_ programs like
_vi_ and _curl_ but with zero detail nor examples about how to use them is
absolutely worthless. Anyone who's every used a Linux / UNIX command line
-even briefly- would already know that _vi_ and _curl_ exists - what they
might not know is how to use it. And that's where articles like this should
focus if they're wanting to incorporate commonly known commands along with
obscure ones. Otherwise you're trying to appeal to everyone yet failing to
please anyone.

~~~
kemist
Hey man, the guy put together a nice little list of tools, nothing more
nothing less.

~~~
laumars
_> little list of tools, nothing more nothing less._

Which was my point. :P

------
alec
I'm a big fan of Joey Hess' moreutils -
[https://joeyh.name/code/moreutils/](https://joeyh.name/code/moreutils/)

Examples:

\- sponge: read in all of stdin, then write to the given file. Great for
pipelines: sed "s/root/toor/" /etc/passwd | grep -v joey | sponge /etc/passwd

\- vipe: easily drop a $EDITOR instance in the middle of a pipe chain

\- ts: timestamp all standard input; great for long-running output

~~~
wging
How is sponge different from > filename?

~~~
tmhedberg
For one thing, it allows your pipeline to both read from and write to the same
file, as it defers the output until there is no more data to read from
"upstream". For instance, this won't work (it truncates the file for writing
before it is ever read):

    
    
        grep foo <some_file >some_file
    

But this will have the intended effect:

    
    
        grep foo <some_file | sponge some_file

------
vesinisa
The best not-so-well-known tool he mentiions is socat. If you use netcat,
socat is like netcat on steroids. It's just a bit hard to remember all the
options, but next time there's something crazy you want to do with netcat that
it doesn't support, like tunnelling raw packets from a wireless interface on a
machine in firewalled corporate network through an SSL tunnel to home machine
and dumping those packets locally to a serial port, socat can pretty much do
it all.

~~~
jevinskie
I hear nmap's ncat is great as well but I haven't tried it yet. I agree that
socat is invaluable, especially when dealing with serial devices.

------
alcari
I don't really think it's fair to call anything that's in a POSIX standard
obscure (like xargs).

Most of these are fairly common, and many of the descriptions are terrible,
for example: `rsync` doesn't "[Keep] filesystems in sync over SSH"; it's a
versatile `cp`-like for dealing with remote systems efficiently that happens
to support transfers over SSH.

~~~
alcari
As I can no long edit my comment: when I made the parent comment, the title
referred to them as _Obscure_ tools.

~~~
sadanapalli
Yes, the title of the post on HN is now changed, but the url of the original
post still refers to them as "obscure" tools.

------
dbbolton
For being "obscure", htop manages to find its way into a very large proportion
of *NIX screenshots on the web.

Not to mention vim, rsync, curl, and ack, all of which I (and I had assumed
everyone else) use on a regular basis.

~~~
eropple
I still don't use ack, mostly because it's not installed everywhere I go on a
regular basis and so my fingers still go 'grep' when I think 'text search'.

(I also rarely use curl, because my fingers are trained for wget -qO. That one
is a personal quirk, though, I didn't know about curl until I'd had that one
imprinted on my brain. The cool thing there, though, is that wget -qSO will
send headers to stderr and content to stdout, so you can get fancy.)

~~~
dbbolton
Installation is simple enough assuming you have perl:

    
    
        curl http://beyondgrep.com/ack-2.12-single-file > ~/bin/ack && chmod 0755 !#:3

------
defrex
I'd highly recommend checking out httpie as a replacement for curl. I find the
interface much more intuitive.

------
albiabia
I'd love to see a site just like this, but cataloging all the best Unix
console tools.

It sounds ridiculous, but you can tell a lot about a console program from a
screenshot.

------
jhallenworld
I would like to see a graphical terminal emulator. When I mean by this is that
the terminal emulator works the same as usual- it should display normal
output, support ANSI escape sequences and have scroll-back. But it also should
be able to display graphics. If your UNIX command line program happens to
output a graph, it shows up on the terminal. The graph is embedded inline with
the text and you can scroll back to it.

Interactive programs should also possible- think of a schematic editor or a
figure editor running right on your terminal emulator.

The point of all this is to retain the context of whatever you're doing
without having to switch windows. That and to advance the state of the art of
console tools- certainly they have not changed in decades.

~~~
tavoe
On the topic of ways to improve the terminal, I'd like to see output separated
from input.

Put the prompt 1/4 of the way down the screen instead of at the bottom. Above
the prompt, we have a backlog of the commands we input. As we press up, it
scrolls through the backlog, as normal.

Below the prompt, we see the output of the command.

I'd also like to see tab completion (and maybe some form of hinting) on
programs, not just file paths.

~~~
groovy2shoes
>On the topic of ways to improve the terminal, I'd like to see output
separated from input.

>Put the prompt 1/4 of the way down the screen instead of at the bottom. Above
the prompt, we have a backlog of the commands we input. As we press up, it
scrolls through the backlog, as normal.

>Below the prompt, we see the output of the command.

That would be more fitting for a shell than for a terminal.

>I'd also like to see tab completion (and maybe some form of hinting) on
programs, not just file paths.

bash already does this. zsh and at least one variant of ksh will do completion
if you type the first letter of a command. I was surprised that tcsh doesn't.

------
tsudot
I recently discovered netbrake. Super awesome tool to limit the bandwidth used
by a process. [http://www.hping.org/netbrake/](http://www.hping.org/netbrake/)

Also its written by antirez :)

------
sadanapalli
Incorrect title for the post. Many of the tools mentioned are very commonly
used. Also, except nice screenshots, this article is just a listing of tools
with very little useful info to go with them.

------
oinksoft
The author mentions App::Ack, but I doubt you'll go back to using `ack` once
you've tried The Silver Searcher (`ag`).

------
johnchristopher
I was certain this had already been posted here:
[http://news.ycombinator.com/item?id=2567186](http://news.ycombinator.com/item?id=2567186)
(from 2 years ago[0]).

I think the difference is in the trailing slash of the submitted link.

[0] Oh god, no.

------
anonfunction
Curl is obscure?

------
philsnow
I used remind and wyrd a fair amount before joining Google + switching to
google calendar. Remind is really powerful, and wyrd is nice.

Here [0] is a post detailing how I got calendar notifications working with
remind/wyrd + screen + URGENT hint.

[0] [http://lists.roaringpenguin.com/pipermail/remind-
fans/2006/0...](http://lists.roaringpenguin.com/pipermail/remind-
fans/2006/000765.html)

------
fis
ITT people who don't think those tools are obscure

------
TuxLyn
Good list thank you. Another good one is "VnStat/VnStati" I use it generate
traffic graphs.

------
tsudot
> nethack & slash'em

> Still the most complex game on the planet.

Does anybody know if a HTML5 version of Nethack exists?

~~~
anateus
Very likely, but potentially even better is this WebTiles version of Dungeon
Crawl Stone Soup:
[http://crawl.akrasiac.org:8080/#lobby](http://crawl.akrasiac.org:8080/#lobby)

~~~
gambogi
I think you might be underestimating the complexity of nethack

------
RexRollman
If you like command line Unix tools, the Inconsolation blog is pretty good.
He's currently running through the tools alphabetically.

[http://inconsolation.wordpress.com/](http://inconsolation.wordpress.com/)

------
coherentpony
They missed out ls and cd.

------
mateuszf
My latest discovery: jq - command line json processing, formatting and
colouring.

~~~
owenversteeg
I was going to mention jq. It's great, and replaces the previous json tool I
was using (can't remember the name now, but it wasn't as useful.) I hope it
becomes more popular.

------
samweinberg
I'm curious what tools the author doesn't consider obscure.

------
retr0h
smem is pretty rad and obscure
([http://www.selenic.com/smem/](http://www.selenic.com/smem/)).

------
rjzzleep
the full topic is "cool, but obscure unix tools"

most of these aren't really obscure, but i still think it's a cool list.
thanks for that.

------
coin
vim and emacs are obscure?

------
sleepybrett
s/Obscure/Handy/gi

