Basic UNIX/Linux commands

Custom commands available on departmental Linux computers but not on 
Linux systems elsewhere have descriptions marked by an *asterisk. 
Notice that for some standard Unix/Linux commands, friendlier versions 
have been implemented; on departmental Linux computers the names of such 
custom commands end with a period.
------------------------------------------------------------------------------
INTERACTIVE FEATURES
TAB                         Command completion !!! USEFUL !!!
UPARROW                     Command history !!! USEFUL !!!

CTRL-C                      Interrupt/kill current process.

CTRL-D                      (at the beginning of the input line) end input.
CTRL-D CTRL-D               (in the middle of the input line) end input.
------------------------------------------------------------------------------
WILDCARDS AND DIRECTORIES USED IN COMMANDS
*                           Replaces any string of characters in a file name
                            except the initial dot.
?                           Replaces any single character in a file name
                            except the initial dot.
~                           The home directory of the current user.
~abcde001                   The home directory of the user abcde001.
..                          The parent directory.
.                           The present directory.
/                           The root directory

Example:
ls ~/files/csc221/*.txt
------------------------------------------------------------------------------
REDIRECTIONS AND PIPES

COMMAND < FILE              Take input from FILE instead of from the keybaord.
COMMAND > FILE              Put output of COMMAND to FILE
COMMAND >> FILE             Append the output of COMMAND to FILE
COMMAND 2> FILE             Put error messages of COMMAND to FILE.
COMMAND 2>> FILE            Append error messages of COMMAND to FILE.
COMMAND > FILE1 2> FILE2    Put output and error messages in separate files.
COMMAND >& FILE             Put output and error messages in the same FILE.
COMMAND >>& FILE            Append output and error messages of COMMAND to FILE.

COMMAND1 | COMMAND2         Output of COMMAND1 becomes input for COMMAND2.
COMMAND | more              See the output of COMMAND page by page.
COMMAND | sort | more       See the output lines of COMMAND sorted and page by page.
------------------------------------------------------------------------------
ONLINE HELP

h                           *Custom help.
COMMAND --help | more       Basic help on a Unix COMMAND (for most commands).
COMMAND -h | more           Basic help on a Unix COMMAND (for some commands).
whatis COMMAND              One-line information on COMMAND.
man COMMAND                 Display the UNIX manual page on COMMAND.
info COMMAND                Info help on COMMAND.
xman                        Browser for Unix manual pages (under X-windows).
apropos KEYWORD | more      Find man pages relevant to COMMAND.
help COMMAND		    Help on a bash built-in COMMAND.
perldoc                     Perl documentation.
------------------------------------------------------------------------------
FILES AND DIRECTORIES

ls                          List contents of current directory.
ls -l                       List contents of current directory in a long form.
ls -a                       Same as ls but .* files are displayed as well.
ls -al                      Combination of ls -a and ls -l 
ls DIRECTORY                List contents of DIRECTORY (specified by a path).
ls SUBDIRECTORY             List contents of SUBDIRECTORY.
ls FILE(S)                  Check whether FILE exists (or what FILES exist).

pwd                         Display absolute path to present working directory.

mkdir DIRECTORY             Create DIRECTORY (i.e. a folder)

cd                          Change to your home directory.
cd ..                       Change to the parent directory.
cd SUBDIRECTORY             Change to SUBDIRECTORY.
cd DIRECTORY                Change to DIRECTORY (specified by a path).
cd -                        Change to the directory you were in previously.
cd. ARGUMENTS               *Same as cd followed by ls

cp FILE NEWFILE             Copy FILE to NEWFILE.
cp -r DIR NEWDIR            Copy DIR and all its contents to NEWDIR.
cp. ARGUMENTS               *Same as cp -r but preserving file attributes.

mv FILE NAME                Rename FILE to new NAME.
mv DIR NAME                 Rename directory DIR to new NAME.
mv FILE DIR                 Move FILE into existing directory DIR.
swap FILE1 FILE2            *Swap contents of FILE1 and FILE2.
ln -s FILE LINK             Create symbolic LINK (i.e. shortcut) to existing FILE.

quota                       Displays your disk quota.
quota.                      *Displays your disk quota and current disk usage.

rm FILE(S)                  Remove FILE(S).
rmdir DIRECTORY             Remove empty DIRECTORY.
rm -r DIRECTORY             Remove DIRECTORY and its entire contents.
rm -rf DIRECTORY            Same as rm -r but without asking for confirmations.
clean                       *Remove non-essential files, interactively 
clean -f                    *Remove non-essential files, without interaction.
junk FILE                   *Move FILE to ~/junk instead of removing it. 
find. FILE(S)               *Search current dir and its subdirs for FILE(S).
touch FILE                  Update modification date/time of FILE.
file FILE                   Find out the type of FILE.
gzip                        Compress or expand files.
zip                         Compress or expand files.
compress                    Compress or expand files.
tar                         Archive a directory into a file, or expand such a file.
targz DIRECTORY             *Pack DIRECTORY into archive file *.tgz 
untargz ARCHIVE.tgz         *Unpack *.tgz archive into a directory.

------------------------------------------------------------------------------
TEXT FILES

more FILE                   Display contents of FILE, page by page.
less FILE                   Display contents of FILE, page by page.
cat FILE                    Display a file. (For very short files.)
head FILE                   Display first lines of FILE.
tail FILE                   Display last lines of FILE.

pico FILE                   Edit FILE using a user-friendly editor. 
nano FILE                   Edit FILE using a user-friendly editor. 
kwrite FILE                 Edit FILE using a user-friendly editor under X windows.
gedit FILE                  Edit FILE using a user-friendly editor under X windows.
kate FILE                   Edit FILE using a user-friendly editor under X windows.
emacs FILE                  Edit FILE using a powerful editor.
vim FILE                    Edit FILE using a powerful editor with cryptic syntax.
aspell -c FILE              Check spelling in text-file FILE.
ispell FILE                 *Check spelling in text-file FILE.

cat FILE1 FILE2 > NEW       Append FILE1 and FILE2 creating new file NEW.
cat FILE1 >> FILE2          Append FILE1 at the end of FILE2.

sort FILE > NEWFILE         Sort lines of FILE alphabetically and put them in NEWFILE.

grep STRING FILE(S)         Display lines of FILE(S) which contain STRING.
grep. STRING FILE(S)        *Similar to that above, but better. 
wc FILE(S)                  Count characters, words and lines in FILE(S).
diff FILE1 FILE2 | more     Show differences between two versions of a file.

filter FILE NEWFILE         *Filter out strange characters from FILE.

COMMAND | cut -b 1-9,15     Remove sections from each line.
COMMAND | uniq              Omit repeated lines.
------------------------------------------------------------------------------
PRINTING

lpr FILE                    In Hawk153B or Redcay 141A, print FILE from a workstation. 
lprint1 FILE                *Print text-file on local printer; see help printing
lprint2 FILE                *Print text-file on local printer; see help printing

------------------------------------------------------------------------------
PROGRAMMING LANGUAGES
python                      Listener of Python 2.x programming language.
python3                     *Listener of Python 3.x programming language.
idle                        IDE for Ptyhon 2.x.
idle3                       *IDE for Ptyhon 3.x.
cc -g -Wall -o FILE FILE.c  Compile C source FILE.c into executable FILE.
gcc -g -Wall -o FILE FILE.c Compile C source FILE.c into executable FILE.
c++ -g -Wall -o FIL FIL.cxx Compile C++ source FIL.cxx into executable FIL.
g++ -g -Wall -o FIL FIL.cxx Compile C++ source FIL.cxx into executable FIL.
gdb EXECUTABLE              Start debugging a C/C++ program.
make FILE                   Compile and link C/C++ files specified in makefile
m                           *Same as make but directs messages to a log file.
c-work                      *Repeatedly edit-compile-run a C program.
javac CLASSNAME.java        Compile a Java program.
java CLASSNAME              Run a Java program.
javadoc CLASSNAME.java      Create an html documentation file for CLASSNAME.
appletviewer CLASSNAME      Run an applet.

scheme                      *Listener of Scheme programming language.
lisp                        *Listener of LISP programming language.
prolog                      *Listener of Prolog programming language.
------------------------------------------------------------------------------
INTERNET
lynx                        Web browser (for text-based terminals).
firefox                     Web browser.
konqueror                   Web browser.
BROWSER                     Browse the Internet (with one of the browsers above.
BROWSER FILE.html           Display a local html file.
BROWSER FILE.pdf            Display a local pdf file.

mutt                        Text-based e-mail manager.
pine                        Text-based e-mail manager (on some systems).

ssh HOST                    Open interactive session on HOST using secure shell.
sftp HOST                   Open sftp (secure file transfer) connection to HOST.
rsync ARGUMENTS             Synchronize directories on local and remote host.
------------------------------------------------------------------------------
UNDER X-WINDOWS
libreoffice                 LibreOffice productiveity suite
soffice                     OpenOffice productivity suite
 
acroread FILE.pdf           Display pdf FILE.pdf
epdfviewer FILE.pdf         Display pdf FILE.pdf
okular FILE                 Display FILE (pdf, postscript, ...)

xterm                       A shell window
konsole                     A better shell window
xcalc                       A calculator
xclock                      A clock
xeyes                       They watch you work and report to the Boss :-)
------------------------------------------------------------------------------
RESET

xfwm4                       Reset the windows manager on Lab and MiniLab computers.
Ctrl-Alt-Backspace          Restart the X-server. (You may need to do that twice.)
clear                       Clear shell window.
xrefresh                    Refresh X-windows.
reset                       *Reset session.
setup-account               *Set up or reset your account (Dr. Plaza's customizations)
------------------------------------------------------------------------------
MISCELLANEOUS

exit                        Exit from any shell.
logout                      Exit from the login shell and terminate session.

svn                         Version control system.    

date                        Display date and time.
------------------------------------------------------------------------------
COURSEWORK IN DR. PLAZA'S COURSES
Commands and directory names related to csc219 have 219 as a suffix. 
By changing the suffix you will obtain commands for other courses.
ls $csc319                  *List files related to csc319. 
cd $csc319                  *change into instructor's public directory for csc319. 
cp $csc319/FILE .           *Copy FILE related to csc319 to the current directory
cp -r $csc319/SUBDIR .      *Copy SUBDIR of csc319 to the current directory.
submit                      *Submit a directory with files for an assignment. 
grades                      *See your grades. Used in some courses only.
------------------------------------------------------------------------------
PROCESS CONTROL
Notes: A process is a run of a program; 
       One program can be used to create many concurrent processes.
       A job may consist of several processes with pipes and redirections.
       Processes are managed by the kernel. 
       Jobs are managed by the shell.
	
CTRL-Z                      Suspend current foreground process.
fg                          Bring job suspended by CTRL-Z to the foreground.
bg JOB                      Restart suspended JOb in the background.
ps                          List processes.
ps.                         *List processes.
jobs                        List current jobs (A job may involve many processes).
kill PROCESS                Kill PROCESS (however some processes may resist).
ctrl-C                      Kill the foreground process (but it may resist).
kill -9 PROCESS             Kill PROCESS (no process can resist.)
kill. PROCESS               *Kill PROCESS; same as kill -9.
COMMAND &                   Run COMMAND in the background. 
------------------------------------------------------------------------------
ENVIRONMENT VARIABLES IN BASH
env | sort | more           List all the environment variables with values.
echo $VARIABLE              List the value of VARIABLE.
unset VARIABLE              Remove VARIABLE.
export VARIABLE=VALUE       Create environment variable VARIABLE and set to VALUE.
------------------------------------------------------------------------------