= 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''' ||'''Examples''' || ||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 '' ||* ''cd /home/myname/mydatadir'' <
> * one up: ''cd ..'' (e.g. ''cd ../batchfiles'') <
> * to home directory: ''cd ~'' || ||Make directory ||''mkdir '' ||* 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 '' ||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 == ||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 ||