- Last Tweets
-
Please wait while my tweets load

Bash Command Line Examples
After having spent years on unix systems, shell scripting still continues to elude me. Hence these reminders.
For Loops over lists
- To add a bunch of files to subversion
for f in Button.phi Buttons.phi Cells.phi ; do svn add $f; done
for f in `ls -l *.phi`; do svn add $f; done
- A more complete sample
ls *.xml
file1.xml file2.xml file3.xml
ls *.xml > list
for i in `cat list`; do cp "$i" "$i".bak ; done
ls *.xml*
file1.xml file1.xml.bak file2.xml file2.xml.bak file3.xml file3.xml.bak
- To clear emails to user@example.com out of my mail queue after inspecting the affected files
cd /path/to/mailqueue
ls -l `grep -l 'user@example.com' \`find . -type f\``
rm -f `grep -l 'user@example.com' \`find . -type f\``
Note: Be sure to run the ls before the rm.
- A little awking. PIDs of all processes using alsa. Grabs the 2nd column out of a listing.
lsof | grep alsa | awk '{print $2}'
- This alias produces a sorted list of services and the ports they're listening on.
alias ports='sudo /usr/bin/lsof -nPi | grep LIST | awk '\''{printf "%-20s%-5s%-5s%s\n",$1,$5,$7,$8}'\'' | sort | uniq'
- Running ports would then produce something like this:
cupsd IPv4 TCP 127.0.0.1:631
master IPv4 TCP 127.0.0.1:25
mysqld IPv4 TCP 127.0.0.1:3306
portmap IPv4 TCP *:111
rpc.mount IPv4 TCP *:657
rpc.statd IPv4 TCP *:894
smbd IPv4 TCP *:139
smbd IPv4 TCP *:445
sshd IPv6 TCP *:22
While loop
- Keeping my mail inbox from overflowing while running email stress tests
cd /path/to/maildir/new
while true; do rm -f *; sleep 5; done
The Absolute Current Working Directory
- AKA Getting the realpath of a location.
- This is really more useful in scripts, but here goes:
MYCWD=`dirname \`readlink -e $0\``
Getting a line count on various directories
T=0; \
for f in dir1 dir3 dir10; do \
N=0; \
for n in `find $f -type f -exec wc -l {} \; | awk '{print $1}'`; do\
N=$(( $M + $n )); \
done; \
T=$(( $T + $N)); \
echo $N - $f; \
done; \
echo $T - Total
4686 - dir1
4894 - dir3
981037 - dir10
990617 - Total

