4116
Comment:
|
6037
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#acl GoodGroup:admin,read,write,delete,revert CambridgeGroup:read CbuGroup:read |
|
Line 5: | Line 3: |
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. |
|
Line 6: | Line 6: |
|| '''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'' || || Change directory || ''cd <newdir>'' || e.g. ''cd /home/myname/mydatadir'', one up: ''cd ..'' (e.g. ''cd ../batchfiles'', to home directory: ''cd ~'') || |
|| '''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 ~'' || |
Line 14: | Line 15: |
|| Find letter string within text || ''grep'' || ''grep error logfile.txt'', ''ps -ef | grep <yourname>'' || | || 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>'' || |
Line 18: | Line 21: |
|| Send output of a command directly to another command ("pipes") || ''|'' || e.g. ''grep myfile.txt | ls -l'' || || Run progress in background (keep command prompt) || ''&'' || e.g. ''nedit &'', ''runmybatch.sh &'' || || Changing access permissions || ''chmod'' || e.g. ''chmod 755 <myfile>'' || |
|| 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>'' || |
Line 23: | Line 28: |
|| Edit files || ''nedit'', ''emacs'', ''vi'' || e.g. type ''nedit &'' to keep command prompt || | || Edit files || ''nedit'', ''emacs'', ''vi'' || e.g. type ''nedit &'' to keep command prompt || |
Line 25: | Line 30: |
|| Short description of commands || ''whatis <yourcommand>'' || || | |
Line 28: | Line 33: |
|| Show load of linux boxes || ''showload'' || || || Change linux box || ''ssh <machine>'' || e.g. ''ssh l42'' || || Show current processes || ''ps'' || ''ps -ef'' || |
|| 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'' || |
Line 32: | Line 41: |
|| Checking where an executable file is located || ''which <filename>'' || || || Show features of current linux box || ''uname'' || ''uname -a'' || |
|| 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'' || |
Line 35: | Line 45: |
|| Get time or date || ''time'', ''date'' || || | |
Line 41: | Line 52: |
|| 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'). || |
|
Line 46: | Line 59: |
|| More [http://imaging.mrc-cbu.cam.ac.uk/meg/Beginners computing-related intros] || || Primer on [http://imaging.mrc-cbu.cam.ac.uk/meg/AnalyzingData/Primer_ShellScripting shell scripting] || || VNC (http://imaging.mrc-cbu.cam.ac.uk/imaging/UsingVNC): start Putty, ''vncserver –geometry 1280x1024 –name <somename>, for OpenGL graphics: ''vncserver.glx -geometry 1280x1024 -name <somename>'' || |
|| More [wiki:CbuMeg:Beginners computing-related intros] || || Primer on [wiki:CbuMeg:AnalyzingData/Primer_ShellScripting shell scripting] || || VNC (wiki:CbuImaging:UsingVNC): start Putty, ''vncserver –geometry 1280x1024 –name <somename>, for OpenGL graphics: ''vncserver.glx -geometry 1280x1024 -name <somename>'' '' || |
Line 51: | Line 64: |
|| 32-bit machines: l21, l24-31, l33-l36, l37-l42; 64-bit machines: l43-l63; OpenGL machines: l37-l42 || | || 32-bit machines: l21, l24-31, l33-l36, l37-l42; 64-bit machines: l43-l63; OpenGL machines: l37-l42 || |
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 |