Unix commands

(Unix programs and tcsh shell commands)



Shell commands   (get help from the shell man page, e.g. 'man tcsh' or 'man bash')

cd - change directories 

   Examples:

      cd
      cd $HOME
      cd suma_demo
      cd AFNI_data6/FT_analysis
      cd ~username
      cd /absolute/path/to/some/directory
      cd relative/path/to/some/directory
      cd ../../some/other/dir

   The 'cd' command is used to change directories.  Without any parameters,
   the shell will change to the user's home directory ($HOME).  Otherwise,
   it will change to the single specified directory.  

   Note that since '..' is the parent directory, including such entries will
   travel up the directory tree.

   It is a good idea to follow a 'cd' command with 'ls' to see what is there.

   for more help, see 'man tcsh'



echo - echo text to the terminal window

   Examples:

      echo hello there
      echo "this section performs volume registration"
      set my_var = 7
      echo "the value of my_var = $my_var"

   The echo command displays the given text on the terminal window.  This is
   often used to show the user what is happening or to prompt for a response.
   There are more devious uses, of course...

   for more help, see 'man tcsh'



set - assing a value to a variable (tcsh)

   Examples:

      set
      set value = 7
      set new_val = "some number, like seven"
      echo $new_val
      set list_of_vals = ( 3 1 4 one five )
      echo $list_of_vals
      echo $list_of_vals[3]
      set path = ( $path ~/abin )

   The set command assigns a value to a variable (or multiple values to 
   multiple variables).  Without any options, all set variables are shown.

   If a value has spaces in it, it should be contained in quotes.  If a list
   of values is desired, parentheses '()' should be used for the assignment,
   while indivisual access is done via square brackets '[]'.

   Note: a single 'set' command can be used to set many variables, but such a
         use is not recommended (as it is error prone).

   Note: 'set' is for setting shell variables, which do not survive to child
         shells.  To survive to a child shell, use envirionment variables.  A
         child shell would be created when a new shell is started, such as when
         running a script.

            setenv DYLD_FALLBACK_LIBRARY_PATH $HOME/abin

         See setenv.

   bash: uses '=' assignment to set variables, which can be exported to the
         environment via export.  Lists are separated by ':', not space.

            value=7
            list_of_vals=3:1:4:one:five
            export list_of_vals
            export DYLD_FALLBACK_LIBRARY_PATH=$HOME/abin

   for more help, see 'man tcsh'
   See also setenv.
   See also unset.



setenv - set an environment variable

   Examples:

      setenv MY_ENV_VAR "some value"
      setenv PATH ${PATH}:$HOME/abin
      setenv DYLD_FALLBACK_LIBRARY_PATH $HOME/abin

   The setenv command works like 'set', except that if a child shell is started
   (such as when running a script), the environment variables are preserved.
   Note that environment variables are generally in all caps by convention, to
   visually distinguish them from regular shell variables.

   Lists are assigned using the bash-like syntax of ':' delimited elements,
   rather than with '()' and space delimited elements as 'set' uses.  When a
   list is added to, as with the $PATH example, the variable should be within
   '{}', so that the ':' does not look like a modifier (i.e. using ${PATH}
   rather than just $PATH).

   bash: 'export' a currently set variable, or add export to an assignment.

        name="Maria Buttersworth"
        export name
        export name="Maria Buttersworth"
        export DYLD_FALLBACK_LIBRARY_PATH=$HOME/abin

   for more help, see 'man tcsh'
   See also set.
   See also unsetenv.




Unix commands   (get help from individual man pages)

cat - display file contents in terminal window

   Examples:

      cat AFNI_data6/FT_analysis/s01.ap.simple
      cat here are four files
      cat here are four files | wc -l

   The cat command, short for catenate, is meant to dump all files on the
   command line to the terminal window.

   for more help, see 'man cat'


jobs - list processes started from current shell

   Examples:

      jobs              - probably shows nothing

   See the example from ctrl-z: help for ctrl-z

   The 'jobs' command lists processes that have been started from the current
   shell (the current terminal window, probably) that are either suspended or
   running in the background.  Processes are suspended via ctrl-z, and can then
   be put into the background using the 'bg' command (or by using & in the
   first place).

   for more help, see 'man jobs'

   Note that 'jobs' is an internal command (to tcsh or bash, say), so the
   actual description might come from 'man tcsh', 'man bash' or a Unix book.


ls - list directory contents

   Examples:

      ls
      ls $HOME
      ls AFNI_data6/afni
      ls AFNI_data6/afni AFNI_data6/FT_analysis/FT ~

      ls -al
      ls -ltr
      ls -ltr ~
      ls -lSr dir.with.big.files

   The 'ls' command lists the contents of either the current directory or the
   directories listed on the command line.  For files listed on the command
   line, it just lists them.

   Multiple directories may be listed, in which case each directory is shows
   one by one.

   Options:

      -a  : list all files/directories, including those starting with '.'
      -l  : use the long format, which includes:
            type, permissions, ownership, size, date (may vary per OS)
      -t  : sort by time (modification time)
      -r  : reverse sort order
      -S  : sort by size of file (e.g. 'ls -lSr')

   for more help, see 'man ls'


pwd - show present working directory

   Examples:

      pwd

   The pwd command just shows the present working directory.

   for more help, see 'man pwd'



Special characters and keystrokes   (get extra help from a Unix book)

ctrl-c - terminate a running process

   Example of usage:

      1. run 'ccalc'
         (the prompt is now waiting for an input expression to evaluate)
      2. type 3+5 and hit <Enter>
         (it should show the result: Z = 8)
      3. terminate the program with ctrl-c
         (the prompt should now be back)

   help for ccalc

   The ctrl-c (while holding the control key down, press c) keystroke is used
   to terminate the foreground process in the current shell (by sending it a
   SIGINT signal).
 
   This might be useful when running a shell script that would take a while to
   complete.  Maybe you decide to make a change, or error messages start 
   coming out.  If that script is running in the foreground, entering ctrl-c
   should terminate it.


ctrl-z - suspend a running process

   Example of usage:

      ccalc
      3+5               - should show the result Z = 8
      ctrl-z            - process 'Suspended', prompt should be back
      ls                - works, can type other commands
      jobs              - shows that 'ccalc' is still suspended
      fg                - put 'ccalc' back in the foreground
      3-4               - should show the result Z = -1
      quit              - quit ccalc program

   help for ccalc
   help for jobs

   The ctrl-c (while holding the control key down, press c) keystroke is used
   to terminate the foreground process in the current shell (by sending it a
   SIGINT signal).
 
   This might be useful when running a shell script that would take a while to
   complete.  Maybe you decide to make a change, or error messages start 
   coming out.  If that script is running in the foreground, entering ctrl-c
   should terminate it.