Unix Commands

From Steak Wiki
Jump to navigationJump to search

some 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