This page is also available in printable PDF-format (4 pages).
File Attributes
File Commands
Process Commands
Miscellaneous but useful commands
Examples
| Beware: almost everything about UNIX is case-sensitive, including filenames and commands. Also, if the BackSpace key doesn't backspace, try the Delete key, Control-BackSpace or Shift-BackSpace. |
Everything in UNIX is a "file" -- real files, directories, device drivers, and so forth. This makes it easy to combine files and programs in many different and new ways.
Directories are special files that hold the names of other files or other directories. In this way, the UNIX file system looks like a hierarchical tree, similar to DOS. Note that directories are separated by a forward slash ( / ) not a backslash ( \ ) as in DOS.
| file name | A file name is a string of characters. UNIX does not give special relevance to periods or other characters, although some programs expect specific types of filenames. |
| full path | The full path of a file specifies all directories, such as /usr/local/bin/foo.bar. The filename foo.bar can be used for this file when /usr/local/bin is the current directory. |
| file permissions | Each file has an associated owner and group. The owner is a logon account, and the group is a possibly empty group of logon accounts. The read, write, and execute permissions (which can be set by the owner) can be different for the owner (user), group, and public (other). Permissions apply to directories as well as files. |
Enter ls -l to find the permissions on the files and subdirectories in the current directory. This returns lines that look something like the following:
drwx------ 2 bobg comp 512 Jun 7 09:49 mydir -rwxr-xr-x 1 bobg comp 321 May 30 14:36 myscript
Each line describes one file. From left to right: the permissions, the number of links, the owner, the group owner, the size in bytes, the date and time of the last modification, and the file's name.
The first character of the permissions tells what kind of "file" it is; d
for directory, hyphen (-) for regular file. The remaining
nine characters are three triplets. The triplets give the read, write, and execute
permissions for that file or directory for that file for, respectively, the
file's owner, its group owner, and for the public. The r
(read), w (write), and x (execute),
indicate the presence of read, write and execute permissions; the hyphen (-)
indicates their absence. For directories: r permission allows
you to list the files in the directory, w permission allows
you to create or remove files from the directory, and x
permission allows you to cd to the directory (enter it).
Thus, in this example, both files are owned by bobg and have the group comp as group owner. mydir is a subdirectory in which only bobg can read, write, and execute; and myscript is a file which bobg can read, write, execute, while everyone else, including those in group comp, can read and execute it, but not write or delete it.
The chmod command changes file permissions. For example chmod u+x file adds execute permission to file for the owner (user); use u-x to remove execute permission for the owner. u indicates the file's owner (user), g the owner's group, o the public (other), or a for all three; and r is read permission, w is write permission, and x is execute permission.
| CMS Command | UNIX Command | Function |
|---|---|---|
| listfile filelist |
ls ls -al |
gives a list of filenames in the current
directory displays a long list, including system files, with date, time, size (and Unix permissions) |
| rename | mv | rename a file: mv oldfile newfile
or: mv oldfile newdir |
| copyfile | cp | Copy a file: cp oldfile newfile
or: cp oldfile newdir |
| acf | chmod | change permissions; see "File Attributes" above for examples |
| erase | rm | remove a file |
| access | cd | change directories |
| lpr | print a file: lpr -P printer-name file For more information, see Using UNIX: Printing http://www.uic.edu/depts/accc/infwww/inform/unixprt.html |
|
| id | pwd | "print" working directory; returns the current directory |
| q disk/limits | quota | to see how much disk space you’ve used |
| create dir | mkdir | create a new directory |
| erase | rmdir | remove a directory |
| vmarch | gzip | compress a file into one with a .gz extension; gunzip reverses the process |
| package | tar | package a group of files into one file for moving or archiving; also extracts tar files |
The shell (Korn shell, or ksh, by default on the accc UNIX systems) is a command line interpreter (as well as programming language). The shell reads the command line, interprets any special characters, and then runs the specified command, usually as a new process (which itself can spawn new processes).
| CMS Command | UNIX Command | Function |
|---|---|---|
| ps | list your current processes; note the PID (process id); you need the PID to change attributes of the processes | |
| force | kill | send a signal to a process; kill -9 pid terminates the process with process id pid |
| batch | & | run a command in the background; put the & at the end of your command |
| cp disc | nohup | put this command at the beginning to make a background process continue after you break the logon connection |
| hi, hx | Ctrl-c | get command prompt back |
| /*, <null> | Ctrl-d | end of input; same as logout when in shell |
| CMS Command | UNIX Command | Function |
|---|---|---|
| compare | diff | compare two files |
| listfile | find | recursively search for files |
| grep, search | grep | search a bunch of files for a string |
| logoff | logout, exit | end your UNIX session |
| help | man | look up a manual page; man ls will tell about the options to the ls command, for example; main online documentation for UNIX |
| more | make the output stop after each screenful; Spacebar displays next screenful, Ctrl-b displays the previous screenful, q quits | |
| altpswd | passwd | change your password; passwords on the accc UNIX systems may be 7 or 8 characters long and must have at least five letters and two non-letters |
| q disk/limits | quota du ~ |
check your own disk space usage and quota list size of home directory and all its subdirectories |
| sort | sort | sort the lines of a file |
| pipe | cmd | cmd | connect program output to input |
| who am i | To do the obvious; just who lists everyone who is logged on; likewise hostname tells you the name of the machine you're using. |
| pwd | To display current directory. |
| mkdir foo | To make a new directory called foo. |
| cd | To change to your home directory from anywhere. |
| cd bin | To change to the bin directory under the current directory. |
| cd /usr/local/bin | To change to the /usr/local/bin directory, regardless of what your current directory is; much of the public software is stored in the subdirectories of the usr directory |
| ls -l -a -R | more | To get a list of all files in a directory. -l to get a long listing, with permissions; -a to include files with filenames beginning with a period (.); and -R (note the R is uppercase) to also list the files in all subdirectories of the current directory. And since this is likely to be a long listing, it's "piped" into more so the display pauses at the end of each screen. |
| ls -l a*.c | To get a long listing of all files with filenames starting with a and ending in .c. |
| more .profile | To display your .profile file, when your current directory is your home directory. For more information about .profile and .env files, see Customizing UNIX at: http://www.uic.edu/depts/accc/infwww/inform/unixcust.html |
| more ~/.profile | To display your .profile file when your current directory is not your home directory. |
| cp ../foobar . | To copy the file foobar from the parent of the current directory into the current directory.. |
| rm -i ?? | To remove (erase) all files in the current directory with exactly 2 characters in the filename, verifying each erase with a y or n . |
| mv foobar ../newdir/fubar | To rename the file foobar to fubar and place it in the directory newdir, that is a child of the parent directory of your current directory. |
| chmod u+x foobar | To make the file foobar executable by its owner. |
| chmod -R a+r * | To make all files the current directory all subdirectories (-R) readable by everyone. |
| man ls | To get information on the command ls and its flags. |
| ps -e | more | To get a list all processes piped into more; without the -e only the processes associated with your session are listed |
| nohup cmd < foo.in >> foo.out & | To run the command cmd, taking input from foo.in, appending output to foo.out, and run the command in the background so that you can log off and have the command continue to run. (Without the >> , nohup puts output in the file nohup.out.) |
| grep double *.c | To search all the C source files for the string "double". |
| ls -l | grep ^d | wc -l | To find the number of subdirectories in the current directory. |
| find ~ -name foobar -print | To search for all files named foobar in your home directory tree. |
| uncompress foo.Z | To uncompress the compressed file foo.Z in the current directory. |
| tar -xf foo.tar | To extract the contents of the file foo.tar in the current directory. |
| diff foobar fubar diff.bar | To find the differences between foobar and fubar and record the differences in a file called diff.bar. |
| pine consult@uic.edu | To send a note to consult@uic.edu; enter just: pine for a complete mail management menu. |
| set -o ignoreeof | Logout only with exit, not with Ctrl-d |
| export PATH=list of directories | Change PATH for executable-search |
| alias mycmd=unixcmd(s) | Set up alternate command name |
| set -o vi | Allow vi-style backup for commands similar to CMS F6 |
| rm -f .pine-debug* rm -f core | Remove annoying files that got left behind |
| export TERM=termtype | Set terminal type, e.g. vt220 |
| PS1="\$PWD" | Set command line prompt string to current directory |
| tset –e^? | Set delete key as erase |
| alias rm=’rm –i’ alias cp=cp i alias mv=’mv –i’ |
Set up "safe" commands (they inquire, i.e. ask for a confirmation) |