Unix Commands
From Steak Wiki
Jump to navigationJump to searchsome years of gnulinux, commands i have found easy to understand, yet still useful
find . -print | grep <somefile> find . -printf '$TY-%Tm-%Td %p\n' | grep 2020-12-29 stat /files/* | grep -A5 <somenameoffile> | awk 'xor(/File/,/Modify/)' > /tmp/dates sed -e 's/original/new/g' -i editfileinplace.txt grep 'one|two|three' -search multiple items (may want to add -i to ignore case)
edit .bashrc
alias hs="history"
function cd() { builtin cd "$@"
if [ -f README ]
then
cat README
fi }
Useful but less intuitive commands
To get file counts for all directories (say you want to know how bloated / lean a software project is)
du -a | cut -d/ -f2 | sort | uniq -c | sort -nr
Resources: Unix Power Tools 1993
Here's a test command.
ANS=$(ls -l | wc -l)
su username -c "test ${ANS} -gt 10 && beep"
watch "su username -c 'test ${ANS} -gt 10 && beep'"
watch "su username -c 'test `ls -l | wc -l` -gt 10 && beep'"
watch myscript.sh
1) In order to get a command to run in test, wrap it in a variable
2) There is a syntax trap: you don't run $ANS, but ${ANS} in test
3) beep is a piece of $#@% and won't run as root, so run it as a user with su
4) you have to use the right order of escaping quotes.
5) for some reason, watch isn't running a new command everytime.
6) the answer is to put the watch command in a shell script. then it will re-evaluate it.
7) done.
The quoting in this is, not great.
External Links
- https://lowendbox.com/blog/ten-cool-linux-command-line-tricks-for-the-journeyman-practitioner/ - A similar list. Somehow I missed the timeout and script command.