= 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'' || ||Change directory ||''cd '' ||e.g. ''cd /home/myname/mydatadir'', one up: ''cd ..'' (e.g. ''cd ../batchfiles''), to home directory: ''cd ~'' || ||Make directory ||''mkdir '' || || ||Copy file/directory ||''cp '' ||Copy directories: ''cp -r '' || ||Move file/directory ||''mv '' || || ||Delete file/directory ||''rm '' ||delete directory: ''rm –r '', suppress warning prompt: ''rm -f '' || ||Create link between a new filename and an existing file ||''ln '' ||symbolic link: ''ln -s '', 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'' || ||Find letter string within text ||''grep'' ||''grep error logfile.txt'', ''ps -ef | grep '' || ||See list of previous commands ||''history'' || || ||Execute command from history list ||''!'', 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 '' or ''chmod go-w '' || ||Changing group of a file ||''chgrp'' ||e.g. ''chgrp imaging '' || ||Create shortcut for command ||''alias'' ||e.g. ''alias cd_batch "cd "'', ''alias h history'' || ||Convert text files from DOS to Unix ||''dos2unix '' || || ||Edit files ||''nedit'', ''emacs'', ''vi'' ||e.g. type ''nedit &'' to keep command prompt || ||Help on linux commands ||''man '' ||turn page using space bar, quit typing ''q'' || ||Short description of commands ||''whatis '' || || = System-Related Commands = ||CBU Cluster Utility Functions ||''e.g. login_load, freenodes, showallmatlab'' ||see [[http://intranet.mrc-cbu.cam.ac.uk/computing/cluster-utility/|CBU intranet]]|| ||Disk usage information ||''du'' ||''estimate space usage of directories and files, e.g. du –sh /imaging/xy01/experiment1'' || ||Change linux box ||''ssh '' ||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 '', where '''' is from ''ps'' output || ||Show most CPU-intensive tasks on current processor ||''top'' || || ||Checking where an executable file is located ||''which '' || || ||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 ''! '' (e.g. ''! hostname'') or ''[s,r] = unix()'' (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 [[CbuMeg:Beginners|computing-related intros]] || ||Primer on [[CbuMeg:AnalyzingData/Primer_ShellScripting|shell scripting]] || ||VNC (CbuImaging:UsingVNC): start Putty, ''vncserver –geometry 1280x1024 –name , for OpenGL graphics: ''vncserver.glx -geometry 1280x1024 -name '' '' || ||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 ||