Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What are your favorite, but lesser known Linux commands?

fuser, strace, ltrace, nc come to mind offhand.



lsof, ngrep, history (only found out this one a month ago after 6 years of being a sysadmin)


What terrible names. Sorry, but from a non-Unix perspective, symbols such as 'lsof' and 'ngrep' seem arbitrary and nonsensical.


What, LiSt Open Files and Net grep (Global Regular Expression Print)?

They sound like fairly sensible abbreviations to me.


How about "listopenfiles" and "netfind"? And "list" instead of "ls", and "delete" instead of "rm", and... et cetera.

"Global Regular Expression Print" is a terrible name on its own, too.


See the thing is that if you're knee deep in an unfamiliar system trying to fix it you type "ls" about a dozen times a minute. Adding two unnecessary keystrokes (doubling the length!) not only adds up it makes typos more common.

There are some nice conventions though, once you know grep there's egrep, ngrep, etc. Then there's the -stat family, prstat, iostat, vmstat, mpstat, etc.

Grep is its own special case, I'm not going to argue that it's a good name a priori but it does have the benefit of being completely unique not to mention far too entrenched to change now. Not to mention that it's "burp" in Yiddish.

Unix is difficult to pick up but once your brain operates in that special warped way things do make sense by extension.


palish has a point to the extent that lsof is so infrequently used that it would do no harm to give it a more descriptive name.

Nonetheless, I entirely agree with you about ls, and about sticking to the conventions that have developed around unix.


There's a tribal aspect, too; not to mention jargon as a barrier to entry. And what professional wants to forgo hard-won knowledge?

That said, I kind of like the weird names, esp grep. (Wasn't that in Stranger in a Strange Land or something?)

But I do object to inconsistent options. One example is: mkdir -p a/b/c This will make all three nested directories, if needed; but there is no equivalent: mv -p x a/b/c/y There also isn't: cp -p a/b/c [1]. You have to create the nested destination directories (a/b/c) first.

[1] cp has a -p option, but with a different meaning...

BTW: It would be nice if HackerNews had the `` markdown of Reddit for inline code. There's been a bit of code sharing recently, and I like that in a "hacker" site.


Inconsistent options are like irregular verbs in English (the most frequently used verbs are both ancient and irregular as a rule).


For code, use two spaces at the start of the line.

  like this


thanks, I know. I referred to inline code.


Grok, you're thinking of.


yes! thanks,


If that really bothers you, just alias those commands.

alias listopenfiles=ls

alias netfind=ngrep

...and so forth. I've done that to add the DOS "cls" command to clear my terminal screen. Also, I'm a Cisco admin, so I have aliased "en" to "su", and the reverse on Cisco switches and routers. Yes, Cisco also has the alias command in IOS.


If unix were being designed from the ground up, today, user friendly commands, with aliases to power user abbreviations might make sense. It was, however, created some 30+ years ago.


yeah, if you don't like it, change it (you could even put them on a USB stick or a server somewhere so you could install them on a new machine quickly). That one could change it honestly didn't occur to me til you said it.

There's the favourite DOS->unix:

  alias cd..="cd .."


If you want user friendly, use the GUI. The commands are meant to be quick to write for frequent users, especially in the days when shells didn't do command completion.


They are derivatives of very well known names in Unix: ls and grep.

When ls utility was created standard RAM was 10KB and power computers looked like this http://images.appleinsider.com/leopard-preview-server-1.jpg

I guess if your IO interface is a real dead-tree paper then each character counts.


Any you booted the machine by togging in a program in octal directly into memory from the front panel.


pgrep, pkill, rename


not sure how well known this is but I use 'tee' alot




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: