## What is ... ?

### a brief overview of Unix, tcsh and AFNI

    Descriptions, examples, comments, sample commands, syntax and getting help...

    Unix

    What is Unix?

       - Unix is a type of operating system (a standard), first developed in 1969

    Examples of Unix operating systems:

       - Solaris, OpenSolaris, Irix, AIX, HP-UX, OS X, Linux, FreeBSD
         (actually, Linux and FreeBSD are not formally Unix, but are very similar)

    Comments:

       - has graphical environment, but strength is in command-line capabilities
       - hundreds or more usually thousands of programs come with systems
         (not just a handful that have screen icons)

    Sample commands:

       - ls, cat, less, mv, cp, date, ssh, vi, rm

    Syntax (characters that mean something special):

       - variables ($), quotes (', ", `), wildcards (*, ?, []),
         pipes (|), redirection (>)

    Getting help:

       - 'man' is short for manual, the on-line manual for unix commands

             man ls
             man less
             man man

       - 'info' is a newer help system

       - books, having one that also covers shell programming can be helpful
         (an in our case, the focus is on tcsh rather than bash)

    tcsh

    What is tcsh?

       - the T-shell is a Unix shell: a command-line interpreter

          - when user types a command and hits Enter, the shell
            processes that command and decides what to do:

             - processes special characters
             - decides what program to run, if any
             - runs the program, passing along any options and parameters

    Examples of similar shell programs (but different from tcsh):

       - sh, bash, csh, ksh, zsh

    Comments:

       - tcsh is just one of many common Unix programs
       - the actual program (a file on disk) is generally /bin/tcsh
       - has own syntax
       - has own sub-commands (cd, echo, set, ...)
       - not has powerful as bash, but more simple and readable

    Sample commands:

       - tcsh has many sub-commands: commands that do not exist on the system,
         but are just part of the shell, e.g.

            - cd, echo, set, setenv, alias, foreach, while, bg, exit, ...

       - for example, 'cd' is not a program, it just tells the shell that you want
         to be "sitting in a new location"

    Syntax (characters that mean something special):

       - home directories (~), history (!), jobs (%), redirecting stderr (>&)

    Getting help:

       - since 'tcsh' is just a Unix program, "man tcsh" is one way to get help

             man tcsh

       - again, consider getting a book that covers tcsh

    AFNI

    What is AFNI?

       - AFNI is a suite of data analysis and viewing tools
       - well over 500 programs, scripts and plugins

    Examples of similar packages (but different from AFNI):

       - FSL, SPM, just to name a couple

    Comments:

       - good for viewing (and hopefully understanding) data
       - written on top of X11 and for Unix systems
       - does not work directly on Windows (can use a virtual system)
       - is free (costs nothing)
       - is open source (can see and modify the code)

    Sample commands:

       - afni, suma, 3dcalc, afni_proc.py, 3dDeconvolve

    Syntax (characters that mean something special):

       - sub-brick selection ([$,..]), range (<>), index ({}), transposition (')
       - many programs have their own special syntax

    Getting help:

       - virtually every AFNI program provides help using the -help option, e.g.
            afni_proc.py -help
            afni_proc.py -help | less
            afni_proc.py -h_view
       - this output is also available at: help: all AFNI programs
       - course material is available at: help: course handouts
       - class data is available at: AFNI data packages