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?
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".
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.
Which was my point. :P
- 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
More focused on those a sysadmin might prefer than general-use, but contributions or updates are welcome.
grep foo <some_file >some_file
grep foo <some_file | sponge some_file
echo data | sudo sponge /etc/a.file
sed -i -e 's/root/toor/' -e '/joey/d' /etc/passwd
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.
Not to mention vim, rsync, curl, and ack, all of which I (and I had assumed everyone else) use on a regular basis.
(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.)
curl http://beyondgrep.com/ack-2.12-single-file > ~/bin/ack && chmod 0755 !#:3
It sounds ridiculous, but you can tell a lot about a console program from a screenshot.
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.
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.
>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.
There was a work by someone on github for building a new kind of terminal. It wasn't line-based, rather "context-based": the output of the command was written next to the input, but you could write commands in the same terminal next to each other. It was some amazing stuff, but I can't find it (I think the logo was an octopus or something like that, and the "backend" was emacs)
Also its written by antirez :)
I think the difference is in the trailing slash of the submitted link.
 Oh god, no.
Here  is a post detailing how I got calendar notifications working with remind/wyrd + screen + URGENT hint.
> Still the most complex game on the planet.
Does anybody know if a HTML5 version of Nethack exists?
That's a direct link to the Gate One demo. You can play Nethack (among other things).
Here's the source to Gate One: https://github.com/liftoff/GateOne
most of these aren't really obscure, but i still think it's a cool list. thanks for that.