Tags: unix, os x, linux, command line, terminal, bash, shell Date: 2013-08-20 23:09:02 # Command line tutorial To learn more, try the command line basics and UNIX tutorials found at [http://www.ee.surrey.ac.uk/Teaching/Unix/](http://www.ee.surrey.ac.uk/Teaching/Unix/) and [http://www.westwind.com/reference/OS-X/commandline/navigation.html](http://www.westwind.com/reference/OS-X/commandline/navigation.html). ## Requirements Open a command line shell: * use 'Terminal' on OS X or Linux * use [cygwin](http://www.cygwin.com) on Windows (need to install first) ## Examples List files ls Change directory cd Desktop Change up one directory level cd .. Print current directory location pwd Go to root of drive cd / Go back to user home folder cd ~ Read in the Lord Of The Rings (LOTR) calendar with concatenate (should work on most Linux and Mac OS X systems): cat /usr/share/calendar/calendar.lotr Read help for cat man cat *Use `b` and `spacebar` to move forward and backwards a page at time when viewing man help pages. Press `q` to quit.* Find all lines about 'Frodo' by **piping** the output from 'cat' into the 'grep' find program with the pipe operator `|`: cat /usr/share/calendar/calendar.lotr | grep 'Frodo' Same exact result as giving grep both original inputs: grep 'Frodo' /usr/share/calendar/calendar.lotr Find all lines *ending* with 'Gandalf' using a 'regular expression' search pattern. To do this use the flag `-e` and the `$` in the search pattern to indicate the line ending position: cat /usr/share/calendar/calendar.lotr | grep -e 'Gandalf$' Save this output to a file on the Desktop. Notice the usage of both a pipe `|` and a redirection of output `>`: cd ~/Desktop cat /usr/share/calendar/calendar.lotr | grep -e 'Gandalf$' > testfile.txt Append something to the file using the redirection with append marker `>>`: echo 'Double Rainbow!' >> testfile.txt ## Useful examples ### Print file usage List usage in human-readable format for a directory du -sh * ### List file creation timestamps in seconds and filenames from ls command ls -lT *.tif | sort | awk '{ print $10, $8 }' > frametimes.txt find . -name '*.tif ' | xargs ls -lT | sort | awk '{ print $10, $8 }' | sed -Ee 's/^.\///g' > ~/Desktop/frametimes.txt ### List date times for .tif CCD movies for pasting into a spreadsheet ls -lTU *.tif | awk '{ print $6, $7, $8, $9}' > ~/Desktop/frametimes.txt #U is file creation date-- file modification time might be better... ls -lT *.tif | awk '{ print $6, $7, $8, $9}' | pbcopy ls -lT *.tif | awk '{ print $10}' > ~/Desktop/frametimes.txt ### List filenames without pathnames ls -lT *.tif | awk '{ print $10}' | pbcopy ls -lTU *.tif | awk '{ print $6, $7, $8, $9 }' > ~/Desktop/movietimes.txt ### Print tiff header information tiffutil -info filename.tif ### Copy files only less than 500MB in size rsync -av --max-size=500M FilePathToSource FilePathToDestination