5 ms·
Ask HN: What are your favorite UNIX tools?
Either built-in tools, or those that follow the UNIX philosophy.
My favorite hidden gems in a base UNIX install are `tac` (print lines in reverse order) and `tr` (character substitutions).
- dcdevito 2y ago[dead]
- PaulHoule 2y agoawk (It's a guilty pleasure to write shell pipelines that use awk to write a shell script and then pipe that script in sh, I find it easier than looking up the bizzaro syntax for loops in bash in the info pages.)
- bediger4000 2y agotr is surprisingly useful. If you're clever, the -c and -d flags can do good things. wc is also useful, mostly as "wc -l". If you keep data in line oriented, human readable form, "wc -l" counts data items.
- manbart 2y agoxclock with the cat theme
- deleted 2y ago[deleted]
- t-3 2y agoperl-rename - rename is also good, but much more annoying to use for me as it doesn't use standard regex notation like perl-rename. printf - shell is natively great at interpolation already, but having C-style printf formatting is often useful and echo has a lot of footguns
- caprock 2y agoctrl-r in bash tops my list, even if it's not quite what you are thinking of as a unix tool. Probably the pipe itself would be my favorite next. Then in no particular order: tail, cut, xargs, wc, tr, grep, sort, uniq.
- kasperset 2y agofind My command to backup selected file using Tarsnap. find /Users/xyz/Analysis -type f \( -name '.pdf' -o -name '.docx' \) -print0 | tarsnap --dry-run --no-default-config --print-stats --humanize-numbers -c --null -T- This command file files ending with docx and pdf to back with tarsnap. The "-" following the "-T" option allows to pass the name using std-in via find command
- vermasque 2y agopbpaste and pbcopy to read and write to the clipboard and then combine with your favorite grep, sed, tr, cut, etc.
- wruza 2y agoMost: grep, find, cat, sort, tail, wc, ls, sudo, pgrep. Interesting: comm: https://linux.die.net/man/1/comm https://linux.die.net/man/1/comm Compare sorted files FILE1 and FILE2 line by line. With no options, produce three-column output. Column one contains lines unique to FILE1, column two contains lines unique to FILE2, and column three contains lines common to both files. -1 suppress column 1 (lines unique to FILE1) -2 suppress column 2 (lines unique to FILE2) -3 suppress column 3 (lines that appear in both files) Weak: adduser/useradd (hard to non-interactive), chmod (could use file/dir filter with -R). Least: systemctl, journalctl.
- commandersaki 2y agoOne trick I learned from a UNIX greybeard in my junior days before pgrep was widely avaialble is: ps auxw | grep [p]rocessname and it will eschew the grep process in the list.
- commandersaki 2y agocomm & awk