Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Ask HN: What are your top most useful Unix commands? (b'') similar stories update story
7.0 points by nns | karma 2031 | avg karma 7.81 2019-10-31 16:20:45+00:00 | hide | past | favorite | 18 comments



view as:

time cat

top

jk, but also not.

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


ls

dirs -v pushd popd

cd pwd ls

find, grep

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

history | grep <command halfway remember using>

emacs&

the semicolon ";" for chaining commands

ls -l

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


cut, awk, sed, comm, grep

git

ls, find, grep, tar, cpio

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


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.


Legal | privacy