Hacker News new | ask | show | jobs
Ask HN: What are your top most useful Unix commands?
7 points by nns 2427 days ago
14 comments

kill lets you send any signal to a process you have control over. Corresponding signal handlers allow a wide range of behavior changes.
A lot of people only know about its use for literally killing a process. But as an example of where I find myself using it fairly often is:

kill -USR1 <dd>

where <dd> is the process ID (obtained from ps) for the dd command.

Instead of killing dd, it reports back how much has been read/copied so far. Especially useful for working with large files and you decide you want to guestimate how much longer the copy will take.

ls, find, grep, tar, cpio

But in truth, it's the bash scripting 'glue' that holds everything together.

the semicolon ";" for chaining commands

ls -l

the "alias" command in a file for setting up quick-commands

grep, find, tail -f (useful to look at log files as they update)

Extras: sort, uniq, sed, sftp, apropos, man

tail -F

This will also follow a log file if it rotates.

I just found out a few days ago that `-F` works with multiple files, too. When there's new content on one, tail prefixes the output with a header, telling you what file it is.

I've used that to watch all logs apache and descendant processes could be writing to:

  pstree -p $(pgrep -o apache2) \
  | grep -Po '[^}]\(\K\d+'
  | sed ':b;N;$!bb;s/\n/,/g' \
  | sudo xargs lsof -d 0-1000 -a -p \
  | grep -Po '\S+$' \
  | grep 'log' \
  | sort -u \
  | xargs tail -F
top

jk, but also not.

w !sudo tee % in vim, even tho that's not really directly a unix thing?

history | grep <command halfway remember using>
dirs -v pushd popd
cd pwd ls
cut, awk, sed, comm, grep
git
emacs&
find, grep
ls
time cat