unixsurvivalguide - Methods

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Type the odd characters out in each group: abz2a 125t7 HhHaHh year.s 5433r21 worl3d

location: unixsurvivalguide

Your Survival Guide to Unix at the CBSU

What you see below probably seems like a list of arbitrary incantations and may put you off ever going near a unix command line. However, you'll soon find that simple combinations of unix commands (possibly written as a shell script) can do things instantly that would take hours of pointing and clicking on a Mac or PC.

Commands for Navigation, File Manipulation etc.




Show contents of current directory


* details: ls –l
* hidden files: ls –a
* output to file: ls > file.txt
wild cards: ls *.txt

Change directory

cd <newdir>

* cd /home/myname/mydatadir
* one up: cd .. (e.g. cd ../batchfiles)
* to home directory: cd ~

Make directory

mkdir <newdir>

* mkdir ./tmp creates directory 'tmp' in current directory
* mkdir ../tmp creates directory 'tmp' one level above current directory
* mkdir /home/yourname/subdir/tmp creates 'tmp' in /home/yourname/subdir/
* mkdir ~/tmp creates 'tmp' in your home directory (same as mkdir /home/yourname/tmp)

Copy file/directory

cp <old> <new>

Copy directories: cp -r <old> <new>

Move file/directory

mv <old> <new>

Delete file/directory

rm <filename>

delete directory: rm –r <dirname>, suppress warning prompt: rm -f <filename>

Create link between a new filename and an existing file

ln <filename> <linkname>

symbolic link: ln -s <filename> <linkname>, to see whether a file is "real" or a symbolic link, use ls -l

Find a file in directory structure


* find myfile.txt in current directory and below: find . -name myfile.txt
* wildcards: find . -name \*results\*.txt

Find letter string within text


grep error logfile.txt, ps -ef | grep <yourname>

See list of previous commands


Execute command from history list

!<x>, where x is number in history list

e.g. !112 to get command 112 from history list

Send output of a command to text file


e.g. ls -l > listoffiles.txt, >> appends instead of overwriting

Send output of a command directly to another command ("pipes")


e.g. ls -l | grep myfile.txt

Send output of a command to text file AND standard output (screen)


e.g. ls -l | tee listoffiles.txt, tee -a appends instead of overwriting

Run progress in background (keep command prompt)


e.g. matlab &, runmybatch.sh &

Changing access permissions


e.g. chmod 755 <myfile> or chmod go-w <myfile>

Changing group of a file


e.g. chgrp imaging <myfile>

Create shortcut for command


e.g. alias cd_batch "cd <mybatchdir>", alias h history

Convert text files from DOS to Unix

dos2unix <filename>

Edit files

nedit, emacs, vi

e.g. type nedit & to keep command prompt

Help on linux commands

man <yourcommand>

turn page using space bar, quit typing q

Short description of commands

whatis <yourcommand>

System-Related Commands

CBU Cluster Utility Functions

e.g. login_load, freenodes, showallmatlab

see CBU intranet

Disk usage information


estimate space usage of directories and files, e.g. du –sh /imaging/xy01/experiment1

Change linux box

ssh <machine>

e.g. ssh l42

Show your jobs/processes in current session


Show current processes


more details: ps -ef

Kill a process


kill <processID>, where <processID> is from ps output

Show most CPU-intensive tasks on current processor


Checking where an executable file is located

which <filename>

Show name of current linux box


ip address: hostname -i

Show features of current linux box


more details: uname -a

Check your user name


Get time or date

time, date

Useful Tricks

Use cursor keys up/down to get previous commands

Copy/paste: mark text with left mouse button, click to destination, click middle mouse button

Auto-complete commands: start typing, then “Tab” to complete to next unique possibility

Type the beginning of a previously used command, then simultaneously press Esc p to autocomplete to last used command with same beginning

Move cursor to beginning Ctrl+a or end Ctrl+e of command line

Run linux commands from within matlab using ! <command> (e.g. ! hostname) or [s,r] = unix(<command>) (e.g., [s,r] = unix('hostname')), where s returns the status (0=pass, nonzero=fail) and r is the result (e.g., 'l41').


Overview of CBU computing: http://imaging.mrc-cbu.cam.ac.uk/meg/Beginners/MatlabIntroCBU?action=AttachFile&do=get&target=RussellComputing.pdf

Computing on Intranet: http://intranet.mrc-cbu.cam.ac.uk/computing/

Intro to Unix: http://www.ee.surrey.ac.uk/Teaching/Unix/

More computing-related intros

Primer on shell scripting

VNC (UsingVNC): start Putty, vncserver –geometry 1280x1024 –name <somename>, for OpenGL graphics: vncserver.glx -geometry 1280x1024 -name <somename>

Access home space: Windows \\home\username; Linux /home/username

Access imaging space: Windows \\samfs-lh\imaging; Linux /imaging/username

32-bit machines: l21, l24-31, l33-l36, l37-l42; 64-bit machines: l43-l63; OpenGL machines: l37-l42