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
Comment
In thi sntence, what word is mad fro the mising letters?

Revision 44 as of 2012-05-16 14:15:59

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.

Function

Command

Options

Show contents of current directory

ls

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

like ls, but can provide lots of SAMFS specific information

sls

sls –D /imaging/xy01/experiment1/image1.nii

Change directory

cd <newdir>

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

Make directory

mkdir <newdir>

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

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

Search for files using specified criteria

sfind

sfind /imaging/xy01/experiment1 –type f –offline –name “*.nii”

Find letter string within text

grep

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

See list of previous commands

history

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)

tee

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

chmod

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

Changing group of a file

chgrp

e.g. chgrp imaging <myfile>

Create shortcut for command

alias

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

Show load of linux boxes

showload

Disk usage information

du, sdu

By default, du will only show online data. sdu will show on- and off- line data, sdu –sh /imaging/xy01/experiment1

Change linux box

ssh <machine>

e.g. ssh l42

Show your jobs/processes in current session

jobs

Show current processes

ps

more details: ps -ef

Kill a process

kill

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

Stage offline data back to disk

stage

stage /imaging/xy01/experiment1/image1.nii

Show most CPU-intensive tasks on current processor

top

Checking where an executable file is located

which <filename>

Show name of current linux box

hostname

ip address: hostname -i

Show features of current linux box

uname

more details: uname -a

Check your user name

whoami

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').

General

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 [wiki:Beginners computing-related intros]

Primer on [wiki:AnalyzingData/Primer_ShellScripting shell scripting]

VNC (wiki: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