Basic UNIX commands

Note: not all of these are actually part of UNIX itself, and you may not find them on all UNIX machines. But they can all be used on turing in essentially the same way, by typing the command and hitting return. Note that some of these commands are different on non-Solaris machines - see SunOS differences. If you've made a typo, the easiest thing to do is hit CTRL-u to cancel the whole line. But you can also edit the command line (see the guide to More UNIX). UNIX is case-sensitive.


ls --- lists your files ls -l --- lists your files in 'long format', which contains lots of useful information, e.g. the exact size of the file, who owns the file and who has the right to look at it, and when it was last modified. ls -a --- lists all files, including the ones whose filenames begin in a dot, which you do not always want to see. There are many more options, for example to list files by size, by date, recursively etc. more filename --- shows the first part of a file, just as much as will fit on one screen. Just hit the space bar to see more or q to quit. You can use /pattern to search for a pattern. emacs filename --- is an editor that lets you create and edit a file. See the emacs page. mv filename1 filename2 --- moves a file (i.e. gives it a different name, or moves it into a different directory (see below) cp filename1 filename2 --- copies a file rm filename --- removes a file. It is wise to use the option rm -i, which will ask you for confirmation before actually deleting anything. You can make this your default by making an alias in your .cshrc file. diff filename1 filename2 --- compares files, and shows where they differ wc filename --- tells you how many lines, words, and characters there are in a file chmod options filename --- lets you change the read, write, and execute permissions on your files. The default is that only you can look at them and change them, but you may sometimes want to change these permissions. For example, chmod o+r filename will make the file readable for everyone, and chmod o-r filename will make it unreadable for others again. Note that for someone to be able to actually look at the file the directories it is in need to be at least executable. See help protection for more details. File Compression

• • • • •

• • •

gzip filename --- compresses files, so that they take up much less space. Usually text files compress to about half their original size, but it depends very much on the size of the file and the nature of the contents. There are other tools for this purpose, too (e.g. compress), but gzip usually gives the highest compression rate. Gzip produces files with the ending '.gz' appended to the original filename. gunzip filename --- uncompresses files compressed by gzip.

gzcat filename --- lets you look at a gzipped file without actually having to gunzip it (same as gunzip -c). You can even print it directly, using gzcat filename | lpr lpr filename --- print. Use the -P option to specify the printer name if you want to use a printer other than your default printer. For example, if you want to print double-sided, use 'lpr -Pvalkyr-d', or if you're at CSLI, you may want to use 'lpr -Pcord115-d'. See 'help printers' for more information about printers and their locations. lpq --- check out the printer queue, e.g. to get the number needed for removal, or to see how many other files will be printed before yours will come out lprm jobnumber --- remove something from the printer queue. You can find the job number by using lpq. Theoretically you also have to specify a printer name, but this isn't necessary as long as you use your default printer in the department. genscript --- converts plain text files into postscript for printing, and gives you some options for formatting. Consider making an alias like alias ecop 'genscript -2 -r \!* | lpr -h -Pvalkyr' to print two pages on one piece of paper. dvips filename --- print .dvi files (i.e. files produced by LaTeX). You can use dviselect to print only selected pages. See the LaTeX page for more information about how to save paper when printing drafts.


○ ○

Directories, like folders on a Macintosh, are used to group files together in a hierarchical structure.
• •

mkdir dirname --- make a new directory cd dirname --- change directory. You basically 'go' to another directory, and you will see the files in that directory when you do 'ls'. You always start out in your 'home directory', and you can get back there by typing 'cd' without arguments. 'cd ..' will get you one level up from your current position. You don't have to walk along step by step - you can make big leaps or avoid walking around by specifying pathnames. pwd --- tells you where you currently are.

Finding things

ff --- find files anywhere on the system. This can be extremely useful if you've forgotten in which directory you put a file, but do remember the name. In fact, if you use ff -p you don't even need the full name, just the beginning. This can also be useful for finding other things on the system, e.g. documentation. grep string filename(s) --- looks for the string in the files. This can be useful a lot of purposes, e.g. finding the right file among many, figuring out which is the right version of something, and even doing serious corpus work. grep comes in several varieties (grep, egrep, and fgrep) and has a lot of very flexible options. Check out the man pages if this sounds good to you.

About other people

w --- tells you who's logged in, and what they're doing. Especially useful: the 'idle' part. This allows you to see whether they're actually sitting there typing away at their keyboards right at the moment. who --- tells you who's logged on, and where they're coming from. Useful if you're looking for someone who's actually physically in the same building as you, or in some other particular location. finger username --- gives you lots of information about that user, e.g. when they last read their mail and whether they're logged in. Often people put other practical information, such as phone numbers and addresses, in a file called .plan. This information is also displayed by 'finger'. last -1 username --- tells you when the user last logged on and off and from whe

More UNIX Commands
I have noticed that the overwhelming majority of visitors come to this page via a Lycos search. This page is probably *not* what you're looking for - see the links at the bottom of this page for more useful information! •
jobs --- lists your currently active jobs (those that you put in the background)

and their job numbers. Useful to determine which one you want to foreground if you have lots of them.
bg --- background a job after suspending it. fg %jobnumber --- foreground a job !! --- repeat the previous command (but CTRL-p, is safer, because you have

• • • • • •

hit return in addition)
!pattern --- repeat the last command that starts with pattern echo $VARIABLE --- shows the value of an environment variable setenv --- lets you set environment variables. For example, if you typed a wrong value for the TERM variable when logging in, you don't have to log out and start over, but you can just do setenv TERM vt100 (or whatever). To see what all your environment variables are set to, type env. The one that you're most likely to have to set is the DISPLAY variable, when using an X-display. unset VAR --- lets you un-set environment variables. Useful, for example, if you've usually set autologout but want to stay logged on for a while without typing for some reason, or if you set the DISPLAY variable automatically but

want to avoid opening windows for some reason. • • them to take effect (or log off and in again)

source filename --- you need to source your dotfiles after making changes for load --- will show you the load average graphically

ispell filename --- will check the spelling in your file. If you're running it on a LaTeX file use the -T option to tell it to ignore the LaTeX commands. You can

create and use your own dictionary to avoid having it tell you that your own name, those of fellow linguists, and linguistics terminology are a typos in every paper you write. • • •
weblint --- checks the syntax of html files latex2html --- translates LaTeX files into HTML wn word option --- lets you access the WordNet database and display, for

example, synonyms, hypernyms, or hyponyms, depending on the option you select

Command editing in the tcsh
These things are the same as in emacs: Backspace --- delete previous character CTRL-d --- delete next character CTRL-k --- delete rest of line CTRL-a --- go to start of line CTRL-e --- go to end of line CTRL-b --- go backwards without deleting CTRL-f --- go forward without deleting Other useful things TAB --- complete filename or command up to the point of uniqueness
CTRL-u --- cancel whole line CTRL-p --- show the last command typed, then the one before that, etc.

(you can also use the cursor up key for this)
CTRL-n --- go forwards in the history of commands

(you can also use the cursor down key for this)
CTRL-c --- cancel the processes after it has started CTRL-z --- suspend a running process (e.g. in order to do something else in between)

you can then put the process in the background with bg
CTRL-l --- redraws the screen | (piping) --- Lets you execute any number of commands in a sequence.

The second command will be executed once the first is done, and so forth, using the previous command's output as input. You can achieve the same effect by putting the output in a file and giving the filename as an argument to the second command, but that would be much more complicated, and

you'd have to remember to remove all the junkfiles afterwards. Some examples that show the usefulness of this: ls | more --- will show you one screenful at a time, which is useful with any command that will produce a lot of output, e.g. also ps -aux man ls | grep time --- checks whether the man page for ls has something to say about listing files by time - very useful when you have a suspicion some command may be capable of doing what you want, but you aren't sure. ls -lR | grep dvi --- will show you all your dvi files - useful to solve disk space problems, since they're large and usually can be deleted.

Some policies on turing
Other UNIX pages • • • • • A good and extensive introduction to UNIX A short UNIX Command Summary (for the Leland Systems) Getting Started in UNIX (Portfolio) Lots more information about UNIX My list of basic UNIX commands

Back up to the Main Computing Page

***************************************************************************** ************* Basic UNIX Command Line (shell) navigation : Last revised May 17 2001 ***************************************************************************** ************* Directories: File and directory paths in UNIX use the forward slash "/" to separate directory names in a path. examples: / /usr /usr/STRIM100 "root" directory directory usr (sub-directory of / "root" directory) STRIM100 is a subdirectory of /usr

Moving around the file system: pwd Show the "present working directory", or current directory.

cd cd /usr/STRIM100 cd INIT of the current

Change current directory to your HOME directory. Change current directory to /usr/STRIM100. Change current directory to INIT which is a sub-directory

directory. cd .. Change current directory to the parent directory of the current directory. cd $STRMWORK Change current directory to the directory defined by the environment variable 'STRMWORK'. cd ~bob Change the current directory to the user bob's home directory (if you have permission). Listing directory contents: ls list a directory ls -l list a directory in long ( detailed ) format for example: $ ls -l drwxr-xr-x 4 cliff user 1024 Jun 18 09:40 WAITRON_EARNINGS -rw-r--r-1 cliff user 767392 Jun 6 14:28 scanlib.tar.gz ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | | | owner group size date time name | | | | number of links to file or directory contents | | | permissions for world | | permissions for members of group | permissions for owner of file: r = read, w = write, x = execute -=no permission type of file: - = normal file, d=directory, l = symbolic link, and others... ls -a start ls -ld * using List the current directory including hidden files. Hidden files with "." List all the file and directory names in the current directory long format. Without the "d" option, ls would list the contents of any sub-directory of the current. With the "d" option, ls just lists them like regular files. Changing file permissions and attributes chmod 755 file and rx for = 101 binary) chgrp user file chown cliff file chown -R cliff dir directory tree. Changes the permissions of file to be rwx for the owner, the group and the world. (7 = rwx = 111 binary. 5 = r-x Makes file belong to the group user. Makes cliff the owner of file. Makes cliff the owner of dir and everything in its

You must be the owner of the file/directory or be root before you can do any of these things. Moving, renaming, and copying files: cp file1 file2 copy a file mv file1 newname move or rename a file mv file1 ~/AAA/ move file1 into sub-directory AAA in your home directory. rm file1 [file2 ...] remove or delete a file rm -r dir1 [dir2...] recursivly remove a directory and its contents BE CAREFUL! mkdir dir1 [dir2...] create directories mkdir -p dirpath create the directory dirpath, including all implied directories in the path. rmdir dir1 [dir2...] remove an empty directory Viewing and editing files: cat filename more filename down less filename vi filename vi in some form. emacs filename have emacs. head filename head -n filename tail filename tail -n filename Shells The behavior of the command line interface will differ slightly depending on the shell program that is being used. Depending on the shell used, some extra behaviors can be quite nifty. You can find out what shell you are using by the command: echo $SHELL Of course you can create a file with a list of shell commands and execute it like a program to perform a task. This is called a shell script. This is in fact the primary purpose of most shells, not the interactive command line behavior. Dump a file to the screen in ascii. Progressively dump a file to the screen: ENTER = one line SPACEBAR = page down q=quit Like more, but you can use Page-Up too. Not on all systems. Edit a file using the vi editor. All UNIX systems will have Edit a file using the emacs editor. Not all systems will Show Show Show Show the the the the first few lines of a file. first n lines of a file. last few lines of a file. last n lines of a file.

Environment variables You can teach your shell to remember things for later using environment variables. For example under the bash shell: export CASROOT=/usr/local/CAS3.0 with the value export LD_LIBRARY_PATH=$CASROOT/Linux/lib LD_LIBRARY_PATH with /Linux/lib appended, Defines the variable CASROOT /usr/local/CAS3.0. Defines the variable the value of CASROOT with or /usr/local/CAS3.0/Linux/lib By prefixing $ to the variable name, you can evaluate it in any command: cd $CASROOT CASROOT echo $CASROOT printenv CASROOT Interactive History A feature of bash and tcsh (and sometimes others) you can use the up-arrow keys to access your previous commands, edit them, and re-execute them. Filename Completion A feature of bash and tcsh (and possibly others) you can use the TAB key to complete a partially typed filename. For example if you have a file called constantine-monks-and-willy-wonka.txt in your directory and want to edit it you can type 'vi const', hit the TAB key, and the shell will fill in the rest of the name for you (provided the completion is unique). Bash is the way cool shell. Bash will even complete the name of commands and environment variables. And if there are multiple completions, if you hit TAB twice bash will show you all the completions. Bash is the default user shell for most Linux systems. Redirection: Changes your present working directory to the value of Prints out the value of CASROOT, or /usr/local/CAS3.0 Does the same thing in bash and some other shells.

grep string filename > newfile grep grep string filename >> existfile command

Redirects the output of the above command to a file 'newfile'. Appends the output of the grep to the end of 'existfile'.

The redirection directives, > and >> can be used on the output of most commands to direct their output to a file. Pipes: The pipe symbol "|" is used to direct the output of one command to the input of another. For example: ls -l | more list command filter). a time. This commands takes the output of the long format directory "ls -l" and pipes it through the more command (also known as a In this case a very long list of files can be viewed a page at

du -sc * | sort -n | tail The command "du -sc" lists the sizes of all files and directories in the current working directory. That is piped through "sort -n" which orders the output from smallest to largest size. Finally, that output is piped through "tail" which displays only the last few (which just happen to be the largest) results. Command Substitution You can use the output of one command as an input to another command in another way called command substitution. Command substitution is invoked when by enclosing the substituted command in backwards single quotes. For example: cat `find . -name aaa.txt` which will cat ( dump to the screen ) all the files named aaa.txt that exist in the current directory or in any subdirectory tree.

Searching for strings in files: The grep


grep string filename

prints all the lines in a file that contain the string

Searching for files : The find command find search_path -name filename find . -name aaa.txt directory or Finds all the files named aaa.txt in the current

any subdirectory tree. find / -name vimrc Find all the files named 'vimrc' anywhere on the system. find /usr/local/games -name "*xpilot*" Find all files whose names contain the string 'xpilot' which exist within the '/usr/local/games' directory tree. Reading and writing tapes, backups, and archives: The tarcommand The tar command stands for "tape archive". It is the "standard" way to read and write archives (collections of files and whole directory trees). Often you will find archives of stuff with names like stuff.tar, or stuff.tar.gz. This is stuff in a tar archive, and stuff in a tar archive which has been compressed using the gzip compression program respectivly. Chances are that if someone gives you a tape written on a UNIX system, it will be in tar format, and you will use tar (and your tape drive) to read it. Likewise, if you want to write a tape to give to someone else, you should probably use tar as well. Tar examples: tar xv verbose) Extracts (x) files from the default tape drive while listing (v =

the file names to the screen. tar tv Lists the files from the default tape device without extracting them. tar cv file1 file2 Write files 'file1' and 'file2' to the default tape device. tar cvf archive.tar file1 [file2...] Create a tar archive as a file "archive.tar" containing file1, file2...etc. tar xvf archive.tar extract from the archive file tar cvfz archive.tar.gz dname Create a gzip compressed tar archive containing everything in the directory 'dname'. This does not work with all versions of tar.

tar xvfz archive.tar.gz Extract a gzip compressed tar archive. Does not work with all versions of tar. tar cvfI archive.tar.bz2 dname Create a bz2 compressed tar archive. Does not work with all versions of tar File compression: compress, gzip, and bzip2 The standard UNIX compression commands are compress and uncompress. Compressed files have a suffix .Z added to their name. For example: compress part.igs uncompress part.igs part.igs.Z. Creates a compressed file part.igs.Z Uncompresseis part.igs from the compressed file Note the .Z is not required. Another common compression utility is gzip (and gunzip). These are the GNU compress and uncompress utilities. gzip usually gives better compression than standard compress, but may not be installed on all systems. The suffix for gzipped files is .gz gzip part.igs gunzip part.igs Creates a compressed file part.igs.gz Extracts the original file from part.igs.gz

The bzip2 utility has (in general) even better compression than gzip, but at the cost of longer times to compress and uncompress the files. It is not as common a utility as gzip, but is becoming more generally available. bzip2 part.igs Create a compressed Iges file part.igs.bz2 bunzip2 part.igs.bz2 Uncompress the compressed iges file.

Looking for help: The man and apropos commands Most of the commands have a manual page which give sometimes useful, often more or less detailed, sometimes cryptic and unfathomable discriptions of their usage. Some say they are called man pages because they are only for real men. Example: man ls Shows the manual page for the ls command

You can search through the man pages using apropos Example:

apropos build Shows a list of all the man pages whose discriptions contain the word "build" Do a man apropos for detailed help on apropos. Basics of the vi editor vi filename Opening a file

Creating text Edit modes: These keys enter editing modes and type in the text of your document. i I a A r R <ESC> Insert before current cursor position Insert at beginning of current line Insert (append) after current cursor position Append to end of line Replace 1 character Replace mode Terminate insertion or overwrite mode Deletion of text x Delete single character dd Delete current line and put in buffer ndd Delete n lines (n is a number) and put them in buffer J Attaches the next line to the end of the current line (deletes carriage return). Oops u yy nyy p P Undo last command cut and paste Yank current line into buffer Yank n lines into buffer Put the contents of the buffer after the current line Put the contents of the buffer before the current line

cursor positioning ^d Page down ^u Page up :n Position cursor at line n :$ Position cursor at end of file ^g Display current line number h,j,k,l Left,Down,Up, and Right respectivly. Your arrow keys should also work if if your keyboard mappings are anywhere near sane. string substitution :n1,n2:s/string1/string2/[g] Substitute string2 for string1 on lines


n1 to n2. If g is included (meaning all instances of string1 on each line are substituted. If g is not included, only the first instance per matching line substituted.

is ^ matches start of line . matches any single character $ matches end of line

These and other "special characters" (like the forward slash) can be "escaped" with \ i.e to match the string "/usr/STRIM100/SOFT" say "\/usr\/STRIM100\/SOFT" Examples: :1,$:s/dog/cat/g file) :23,25:/frog/bird/ Substitute 'bird' for 'frog' on lines 23 through 25. Only the first instance on each line is substituted. Substitute 'cat' for 'dog', every instance for the entire file - lines 1 to $ (end of

Saving and quitting and other "ex" commands These commands are all prefixed by pressing colon (:) and then entered in the lower left corner of the window. They are called "ex" commands because they are commands of the ex text editor - the precursor line editor to the screen editor vi. You cannot enter an "ex" command when you are in an edit mode (typing text onto the screen) Press <ESC> to exit from an editing mode. :w :w new.file :w! existing.file edited. :wq :q :q! :e filename :set number :set nonumber Write the current file. Write the file to the name 'new.file'. Overwrite an existing file with the file currently being Write the file and quit. Quit. Quit with no changes. Open the file 'filename' for editing. Turns on line numbering Turns off line numbering


The USENET FAQs should be the first place you look for an answer to specific questions. You can find most of them at RTFM The contents of this directory includes vi, bash, and comp.unix.questions FAQs. Searching USENET archives are very useful too. has a USENET archive (formerly's) . Advanced Group Search rules. This document was converted from plain text using Vim and then hacked. Vim is the best version of the one true text editor: vi.

Copyright (c) 2000-2006 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with Invariant Section: Preface, with Front-Cover Texts, and with no Back-Cover Texts. A copy of the license can be found on the GNU web site here.

Unix Command Summary
See the Unix tutorial for a leisurely, self-paced introduction on how to use the commands listed below. For more documentation on a command, consult a good book, or use the man pages. For example, for more information on grep, use the command man grep.

• • • • • • • • • • • cat --- for creating and displaying short files chmod --- change permissions cd --- change directory cp --- for copying files date --- display date echo --- echo argument ftp --- connect to a remote machine to download or upload files grep --- search file head --- display first part of file ls --- see what files you have lpr --- standard print command (see also print )

• • • • • • • • • • • • • • • cat

more --- use to read files mkdir --- create directory mv --- for moving and renaming files ncftp --- especially good for downloading files via anonymous ftp. print --- custom print command (see also lpr ) pwd --- find out what directory you are in rm --- remove a file rmdir --- remove directory rsh --- remote shell setenv --- set an environment variable sort --- sort file tail --- display last part of file tar --- create an archive, add or extract files telnet --- log in to another machine wc --- count characters, words, lines

This is one of the most flexible Unix commands. We can use to create, view and concatenate files. For our first example we create a three-item English-Spanish dictionary in a file called "dict."
% cat >dict red rojo green verde blue azul <control-D> %

<control-D> stands for "hold the control key down, then tap 'd'". The symbol > tells the computer that what is typed is to be put into the file dict. To view a file we use cat in a different way:
% cat dict red rojo green verde blue azul %

If we wish to add text to an existing file we do this:
% cat >>dict white blanco black negro <control-D> %

Now suppose that we have another file tmp that looks like this:

% cat tmp cat gato dog perro %

Then we can join dict and tmp like this:
% cat dict tmp >dict2

We could check the number of lines in the new file like this:
% wc -l dict2 8

The command wc counts things --- the number of characters, words, and line in a file.

This command is used to change the permissions of a file or directory. For example to make a file essay.001 readable by everyone, we do this:
% chmod a+r essay.001

To make a file, e.g., a shell script mycommand executable, we do this
% chmod +x mycommand

Now we can run mycommand as a command.

To check the permissions of a file, use ls -l . For more information on chmod, use man chmod.

Use cd to change directory. Use pwd to see what directory you are in.
% cd english % pwd % /u/ma/jeremy/english % ls novel poems % cd novel % pwd % /u/ma/jeremy/english/novel % ls ch1 ch2 ch3 journal scrapbook % cd .. % pwd % /u/ma/jeremy/english % cd poems % cd % /u/ma/jeremy

Jeremy began in his home directory, then went to his english subdirectory. He listed this directory using ls , found that it contained two entries, both of which happen to be diretories. He cd'd to the diretory novel, and found that he had gotten only as far as chapter 3 in his writing. Then he used cd .. to jump back one level. If had wanted to jump back one level, then go to poems he could have said cd ../poems. Finally he used cd with no argument to jump back to his home directory.

cp Use cp to copy files or directories.
% cp foo foo.2

This makes a copy of the file foo.
% cp ~/poems/jabber .

This copies the file jabber in the directory poems to the current directory. The symbol "." stands for the current directory. The symbol "~" stands for the home directory.
date Use this command to check the date and time.
% date Fri Jan 6 08:52:42 MST 1995


The echo command echoes its arguments. Here are some examples:
% echo this this % echo $EDITOR /usr/local/bin/emacs % echo $PRINTER b129lab1

Things like PRINTER are so-called environment variables. This one stores the name of the default printer --- the one that print jobs will go to unless you take some action to change things. The dollar sign before an environment variable is needed to get the value in the variable. Try the following to verify this:


Use ftp to connect to a remote machine, then upload or download files. See also: ncftp Example 1: We'll connect to the machine, then change director to mystuff, then download the file homework11:
% ftp solitude Connected to 220 FTP server (Version wu-2.4(11) Mon Apr 18 17:26:33 MDT 1994) ready. Name (solitude:carlson): jeremy 331 Password required for jeremy. Password: 230 User jeremy logged in. ftp> cd mystuff 250 CWD command successful.

ftp> get homework11 ftp> quit

Example 2: We'll connect to the machine, then change director to mystuff, then upload the file collected-letters:
% ftp solitude Connected to 220 FTP server (Version wu-2.4(11) Mon Apr 18 17:26:33 MDT 1994) ready. Name (solitude:carlson): jeremy 331 Password required for jeremy. Password: 230 User jeremy logged in. ftp> cd mystuff 250 CWD command successful. ftp> put collected-letters ftp> quit

The ftp program sends files in ascii (text) format unless you specify binary mode:
ftp> ftp> ftp> ftp> binary put foo ascii get bar

The file foo was transferred in binary mode, the file bar was transferred in ascii mode.


Use this command to search for information in a file or files. For example, suppose that we have a file dict whose contents are
red rojo green verde blue azul white blanco black negro

Then we can look up items in our file like this;
% grep red dict red rojo % grep blanco dict white blanco % grep brown dict %

Notice that no output was returned by grep brown. This is because "brown" is not in our dictionary file. Grep can also be combined with other commands. For example, if one had a file of phone numbers named "ph", one entry per line, then the following command would give an alphabetical list of all persons whose name contains the string "Fred".
% grep Fred ph | sort Alpha, Fred: 333-6565 Beta, Freddie: 656-0099

Frederickson, Molly: 444-0981 Gamma, Fred-George: 111-7676 Zeta, Frederick: 431-0987

The symbol "|" is called "pipe." It pipes the output of the grep command into the input of the sort command.

For more information on grep, consult
% man grep


Use this command to look at the head of a file. For example,
% head essay.001

displays the first 10 lines of the file essay.001 To see a specific number of lines, do this:
% head -n 20 essay.001

This displays the first 20 lines of the file.


Use ls to see what files you have. Your files are kept in something called a directory.
% ls foo foobar letter1 % letter2 letter3 maple-assignment1

Note that you have six files. There are some useful variants of the ls command:
% ls l* letter1 letter2 letter3 %

Note what happened: all the files whose name begins with "l" are listed. The asterisk (*) is the " wildcard" character. It matches any string.

This is the standard Unix command for printing a file. It stands for the ancient "line printer." See
% man lpr

for information on how it works. See print for information on our local intelligent print command.
mkdir Use this command to create a directory.
% mkdir essays

To get "into" this directory, do

% cd essays

To see what files are in essays, do this:
% ls

There shouldn't be any files there yet, since you just made it. To create files, see cat or emacs.

More is a command used to read text files. For example, we could do this:
% more poems

The effect of this to let you read the file "poems ". It probably will not fit in one screen, so you need to know how to "turn pages". Here are the basic commands:
• • • • q --- quit more spacebar --- read next page return key --- read next line b --- go back one page

For still more information, use the command man more.

Use this command to change the name of file and directories.
% mv foo foobar

The file that was named foo is now named foobar

Use ncftp for anonymous ftp --- that means you don't have to have a password.
% ncftp Connected to > get jokes.txt

The file jokes.txt is downloaded from the machine
print This is a moderately intelligent print command.
% print foo % print % print manuscript.dvi

In each case print does the right thing, regardless of whether the file is a text file (like foo ), a postcript file (like, or a dvi file (like manuscript.dvi. In these examples the file is printed on the default printer. To see what this is, do
% print

and read the message displayed. To print on a specific printer, do this:
% print foo jwb321 % print jwb321 % print manuscript.dvi jwb321

To change the default printer, do this:
% setenv PRINTER jwb321

pwd Use this command to find out what directory you are working in.
% pwd /u/ma/jeremy % cd homework % pwd /u/ma/jeremy/homework % ls assign-1 assign-2 assign-3 % cd % pwd /u/ma/jeremy %

Jeremy began by working in his "home" directory. Then he cd 'd into his homework subdirectory. Cd means " change directory". He used pwd to check to make sure he was in the right place, then used ls to see if all his homework files were there. (They were). Then he cd'd back to his home directory.
rm Use rm to remove files from your directory.
% rm foo remove foo? y % rm letter* remove letter1? y remove letter2? y remove letter3? n %

The first command removed a single file. The second command was intended to remove all files beginning with the string "letter." However, our user (Jeremy?) decided not to remove letter3.

Use this command to remove a directory. For example, to remove a directory called "essays", do this:
% rmdir essays

A directory must be empty before it can be removed. To empty a directory, use rm.


Use this command if you want to work on a computer different from the one you are currently working on. One reason to do this is that the remote machine might be faster. For example, the command
% rsh solitude

connects you to the machine solitude. This is one of our public workstations and is fairly fast. See also: telnet
% echo $PRINTER labprinter % setenv PRINTER myprinter % echo $PRINTER myprinter

sort Use this commmand to sort a file. For example, suppose we have a file dict with contents
red rojo green verde blue azul white blanco black negro

Then we can do this:
% sort dict black negro blue azul green verde red rojo white blanco

Here the output of sort went to the screen. To store the output in file we do this:
% sort dict >dict.sorted

You can check the contents of the file dict.sorted using cat , more , or emacs .


Use this command to look at the tail of a file. For example,
% tail essay.001

displays the last 10 lines of the file essay.001 To see a specific number of lines, do this:
% tail -n 20 essay.001

This displays the last 20 lines of the file.


Use create compressed archives of directories and files, and also to extract directories and files from an archive. Example:
% tar -tvzf foo.tar.gz

displays the file names in the compressed archive foo.tar.gz while
% tar -xvzf foo.tar.gz

extracts the files.


Use this command to log in to another machine from the machine you are currently working on. For example, to log in to the machine "solitude", do this:
% telnet solitude

See also: rsh.

Use this command to count the number of characters, words, and lines in a file. Suppose, for example, that we have a file dict with contents
red rojo green verde blue azul white blanco black negro

Then we can do this
% wc dict 5 10 56 tmp

This shows that dict has 5 lines, 10 words, and 56 characters. The word count command has several options, as illustrated below:
% wc -l dict 5 tmp % wc -w dict 10 tmp % wc -c dict 56 tmp

Under construction

Man ual command.
man man This is help command, and will explains you about online manual pages you can also use man in conjunction with any command to learn more about that command for example.
• •

man ls will explain about the ls command and how you can use it. man -k pattern command will search for the pattern in given command.

Banner command.
banner prints characters in a sort of ascii art poster, for example to print wait in big letters. I will type banner wait at unix command line or in my script. This is how it will look.
# # # # # # # ## # ## ## # # # ## # # # # # # # ##### # # # # #

# # ###### # # # #

Cal command
cal command will print the calander on current month by default. If you want to print calander of august of 1965. That's eightht month of 1965. cal 8 1965 will print following results.
S 1 8 15 22 29 August 1965 M Tu W Th F S 2 3 4 5 6 7 9 10 11 12 13 14 16 17 18 19 20 21 23 24 25 26 27 28 30 31

Clear command
clear command clears the screen and puts cursor at beginning of first line.

Calendar command
calendar command reads your calendar file and displays only lines with current day. For example in your calendar file if you have this
12/20 1/15 1/20 Test new software. Test newly developed 3270 product. Install memory on HP 9000 machine.

On dec 20th the first line will be displayed. you can use this command with your crontab file or in your login files.

Nohup command.
nohup command if added in front of any command will continue running the command or process even if you shut down your terminal or close your session to machine. For exmaple, if I want to run a job that takes lot of time and must be run from terminal and is called update_entries_tonight . nohup update_entries_tonight will run the job even if terminal is shut down in middle of this job.

Tty command
Tty command will display your terminal. Syntax is tty options Options • • -l will print the synchronous line number. -s will return only the codes: 0 (a terminal), 1 (not a terminal), 2 (invalid options) (good for scripts)

back to top of misc commands back to top of page

File Management commands.
cat,cd, cp, file,head,tail, ln,ls,mkdir ,more,mv, pwd, rcp,rm, rmdir, wc.

Pwd command.
pwd command will print your home directory on screen, pwd means print working directory.

is output for the command when I use pwd in /u0/ssb/sandeep directory.

Ls command
ls command is most widely used command and it displays the contents of directory.

• • • • • • •

ls will list all the files in your home directory, this command has many options. ls -l will list all the file names, permissions, group, etc in long format. ls -a will list all the files including hidden files that start with . . ls -lt will list all files names based on the time of creation, newer files bring first. ls -Fxwill list files and directory names will be followed by slash. ls -Rwill lists all the files and files in the all the directories, recursively. ls -R | more will list all the files and files in all the directories, one page at a time.

Mkdir command.
mkdir sandeep will create new directory, i.e. here sandeep directory is created.

Cd command.
cd sandeep will change directory from current directory to sandeep directory. Use pwd to check your current directory and ls to see if sandeep directory is there or not. You can then use cd sandeep to change the directory to this new directory. Cat command cat cal.txt cat command displays the contents of a file here cal.txt on screen (or standard out).

Head command.
head filename by default will display the first 10 lines of a file. If you want first 50 lines you can use head -50 filename or for 37 lines head -37 filename and so forth.

Tail command.
tail filename by default will display the last 10 lines of a file. If you want last 50 lines then you can use tail -50 filename.

More command. more command will display a page at a time and then wait for input which is
spacebar. For example if you have a file which is 500 lines and you want to read it all. So you can use more filename

Wc command
wc command counts the characters, words or lines in a file depending upon the option.

• • •

wc -l filename will print total number of lines in a file. wc -w filename will print total number of words in a file. wc -c filename will print total number of characters in a file.

File command.
File command displays about the contents of a given file, whether it is a text (Ascii) or binary file. To use it type file filename. For example I have cal.txt which has ascii characters about calander of current month and I have resume1.doc file which is a binariy file in microsoft word. I will get file resume.doc
resume1.doc: data

file cal.txt
cal.txt: ascii text

Cp command.
cp command copies a file. If I want to copy a file named oldfile in a current directory to a file named newfile in a current directory. cp oldfile newfile If I want to copy oldfile to other directory for example /tmp then cp oldfile /tmp/newfile. Useful options available with cp are -p and -r . -p options preserves the modification time and permissions, -r recursively copy a directory and its files, duplicating the tree structure.

Rcp command.
rcp command will copy files between two unix systems and works just like cp command (-p and -i options too). For example you are on a unix system that is called Cheetah and want to copy a file which is in current directory to a system that is called lion in /usr/john/ directory then you can use rcp command rcp filename lion:/usr/john You will also need permissions between the two machines. For more infor type man rcp at command line.

Mv command.
mv command is used to move a file from one directory to another directory or to rename a file.

Some examples:
• • • •

mv oldfile newfile will rename oldfile to newfile. mv -i oldfile newfile for confirmation prompt. mv -f oldfile newfile will force the rename even if target file exists. mv * /usr/bajwa/ will move all the files in current directory to /usr/bajwa directory.

Ln command.
Instead of copying you can also make links to existing files using ln command. If you want to create a link to a file called coolfile in /usr/local/bin directory then you can enter this command. ln mycoolfile /usr/local/bin/coolfile

Some examples:
• • •

ln -s fileone filetwo will create a symbolic link and can exist across machines. ln -n option will not overwrite existing files. ln -f will force the link to occur.

Rm command.
To delete files use rm command.

• • •

rm oldfile will delete file named oldfile. rm -f option will remove write-protected files without prompting. rm -r option will delete the entire directory as well as all the subdirectories, very dangerous command.

Rmdir command.
rmdir command will remove directory or directories if a directory is empty.

• • • •

rm -r directory_name will remove all files even if directory is not empty. rmdir sandeep is how you use it to remove sandeep directory. rmdir -p will remove directories and any parent directories that are empty. rmdir -s will suppress standard error messages caused by -p.

back to top of File management commands back to top of page

Comparison and Searching
diff,dircmp, cmp, grep, find.

Diff command.
diff command will compare the two files and print out the differences between. Here I have two ascii text files. fileone and file two. Contents of fileone are
This this this this this is is is is is first file second line third line different as;lkdjf not different

filetwo contains
This this this this this is is is is is first file second line third line different xxxxxxxas;lkdjf not different

diff fileone filetwo will give following output
4c4 < this is different --> this is different as;lkdjf xxxxxxxas;lkdjf

Cmp command.
cmp command compares the two files. For exmaple I have two different files fileone and filetwo. cmp fileone filetwo will give me
fileone filetwo differ: char 80, line 4

if I run cmp command on similar files nothing is returned. -s command can be used to return exit codes. i.e. return 0 if files are identical, 1 if files are different, 2 if files are inaccessible. This following command prints a message 'no changes' if files are same cmp -s fileone file1 && echo 'no changes' .
no changes

Dircmp Command.
dircmp command compares two directories. If i have two directories in my home directory named dirone and dirtwo and each has 5-10 files in it. Then dircmp dirone dirtwo will return this
Dec 9 16:06 1997 dirone only and dirtwo only Page 1 ./fourth.txt ./rmt.txt ./te.txt ./third.txt

./cal.txt ./dohazaar.txt ./four.txt ./junk.txt ./test.txt

Grep Command
grep command is the most useful search command. You can use it to find processes running on system, to find a pattern in a file, etc. It can be used to search one or more files to match an expression. It can also be used in conjunction with other commands as in this following example, output of ps command is passed to grep command, here it means search all processes in system and find the pattern sleep. ps -ef | grep sleep will display all the sleep processes running in the system as follows.
ops dxi ops ops ops dxi 12964 12974 12941 12847 12894 13067 25853 15640 25688 25812 25834 27253 0 0 0 0 0 2 16:12:24 16:12:25 16:12:21 16:11:59 16:12:12 16:12:48 ttyAE/AAES ttyAH/AAHP ttyAE/AAEt ttyAH/AAH6 ttyAE/AAEX ttyAE/ABEY 0:00 0:00 0:00 0:00 0:00 0:00 sleep sleep sleep sleep sleep sleep 60 60 60 60 60 1

ops dxi ops ops ssb pjk

13046 12956 12965 12989 13069 27049

25761 13078 25737 25778 26758 3353

0 0 0 0 2 0

16:12:44 16:12:23 16:12:24 16:12:28 16:12:49 15:20:23

ttyAE/AAE0 ttyAG/AAG+ ttyAE/AAEp ttyAH/AAHv ttyAH/AAHs ?

0:00 0:00 0:00 0:00 0:00 0:00

sleep 60 sleep 60 sleep 60 sleep 60 grep sleep sleep 3600

• • • • -b option will precede each line with its block number. -c option will only print the count of matched lines. -i ignores uppercase and lowercase distinctions. -l lists filenames but not matched lines.

other associated commands with grep are egrep and fgrep. egrep typically runs faster. for more information type man egrep or man fgrep in your system.

Find command.
Find command is a extremely useful command. you can search for any file anywhere using this command provided that file and directory you are searching has read write attributes set to you ,your, group or all. Find descends directory tree beginning at each pathname and finds the files that meet the specified conditions. Here are some examples.
Some Examples:

find $HOME -print will lists all files in your home directory. find /work -name chapter1 -print will list all files named chapter1 in /work directory. find / -type d -name 'man*' -print will list all manpage directories. find / -size 0 -ok rm {} \; will remove all empty files on system.

conditions of find
• • • • • • • • •

-atime +n |-n| n will find files that were last accessed more than n or less than -n days or n days. -ctime +n or -n will find that were changed +n -n or n days ago. -depth descend the directory structure, working on actual files first and then directories. You can use it with cpio command. -exec commad {} \; run the Unix command on each file matched by find. Very useful condition. -print print or list to standard output (screen). -name pattern find the pattern. -perm nnnfind files whole permission flags match octal number nnn. -size n find files that contain n blocks. -type c Find file whole type is c. C could be b or block, c Character special file, d directory, p fifo or named pipe, l symbolic link, or f plain file.

back to top of misc commands back to top of page

Text processing
cut,paste, sort, uniq,awk,sed,vi.

Cut command.
cut command selects a list of columns or fields from one or more files. Option -c is for columns and -f for fields. It is entered as cut options [files] for example if a file named testfile contains
this is firstline this is secondline this is thirdline

Examples: cut -c1,4 testfile will print this to standard output (screen)
ts ts ts

It is printing columns 1 and 4 of this file which contains t and s (part of this).

• • •

-c list cut the column positions identified in list. -f list will cut the fields identified in list. -s could be used with -f to suppress lines without delimiters.

Paste Command.
paste command merge the lines of one or more files into vertical columns separated by a tab. for example if a file named testfile contains
this is firstline

and a file named testfile2 contains
this is testfile2

then running this command paste testfile testfile2 > outputfile will put this into outputfile
this is firstline

this is testfile2

it contains contents of both files in columns. who | paste - - will list users in two columns.

• • -d'char' separate columns with char instead of a tab. -s merge subsequent lines from one file.

Sort command.
sort command sort the lines of a file or files, in alphabetical order. for example if you have a file named testfile with these contents
zzz aaa 1234 yuer wer qww wwe

Then running sort testfile will give us output of
1234 aaa qww wer wwe yuer zzz

-b ignores leading spaces and tabs. -c checks whether files are already sorted. -d ignores punctuation. -i ignores non-printing characters. -n sorts in arithmetic order. -ofile put output in a file. +m[-m] skips n fields before sorting, and sort upto field position m. -r reverse the order of sort. -u identical lines in input file apear only one time in output.

• • • • • • • •

Uniq command.
uniq command removes duplicate adjacent lines from sorted file while sending one copy of each second file.

sort names | uniq -d will show which lines appear more than once in names file.


• •

-c print each line once, counting instances of each. -d print duplicate lines once, but no unique lines. -u print only unique lines.

Awk and Nawk command.
awk is more like a scripting language builtin on all unix systems. Although mostly used for text processing, etc. Here are some examples which are connected with other commands.


df -t | awk 'BEGIN {tot=0} $2 == "total" {tot=tot+$1} END {print (tot*512)/1000000}' Will give total space in your system in megabytes. Here the output of command df -t is being passed into awk which is counting the field 1 after pattern "total" appears. Same way if you change $1 to $4 it will accumulate and display the addition of field 4 which is used space. for more information about awk and nawk command in your system enter man awk or man nawk.

Sed command.
sed command launches a stream line editor which you can use at command line. you can enter your sed commands in a file and then using -f option edit your text file. It works as sed [options] files

• •

-e 'instruction' Apply the editing instruction to the files. -f script Apply the set of instructions from the editing script. -n suppress default output.

for more information about sed, enter man sed at command line in your system.

Vi editor.
vi command launches a vi sual editor. To edit a file type vi filename vi editor is a default editor of all Unix systems. It has several modes. In order to write characters you will need to hit i to be in insert mode and then start typing. Make sure that your terminal has correct settings, vt100 emulation works good if you are logged in using pc. Once you are done typing then to be in command mode where you can write/search/ you need to hit :w filename to write and in case you are done writing and want to exit :w! will write and exit.

• i for insert mode.
○ ○

I inserts text at the curson A appends text at the end of the line.

○ ○ ○ • ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ • •

a appends text after cursor. O open a new line of text above the curson. o open a new line of text below the curson. <escape> to invoke command mode from insert mode. :!sh to run unix commands. x to delete a single character. dd to delete an entire line ndd to delete n number of lines. d$ to delete from cursor to end of line. yy to copy a line to buffer. P to paste text from buffer. nyy copy n number of lines to buffer. :%s/stringA/stringb /g to replace stringA with stringB in whole file. G to go to last line in file. 1G to go to the first line in file. w to move forward to next word. b to move backwards to next word. $ to move to the end of line. J join a line with the one below it.

: for command mode.

/string to search string in file. n to search for next occurence of string.

back to top of Text processing commands back to top of page

Shell and programming
Shell programming,bourne shell, ksh, csh, echo,line,sleep, test,cc compiler.

Shell programming concepts and commands.
Shell programming is integral part of Unix operating systems. Shell is command line userinterface to Unix operating system, User have an option of picking an interface on Unix such as ksh, csh, or default sh., these are called shells(interface). Shell programming is used to automate many tasks. Shell programming is not a programming language in the truest sense of word since it is not compiled but rather an interpreted language. Unix was written in C language

and thus c language is integral part of unix and available on all versions. Shells, like ksh and csh are popular shells on unix although there are 5 or 6 different shells available but I will only be discussing ksh and csh as well as sh. Common features among all shells are job control, for example if I am running a processes which is searching the whole system for .Z files and output is directed to a file named compressedfiles.

• • • • •

find / -name *.Z -print > compressedfiles then after entering this command hitting <control z> key will suspend this job, then entering bg at command line will put this job in background, entering fg will put this job in foreground. Entering jobs at command line will show me all my concurrent jobs that are running. Other common features
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

> will redirect output from standard out (screen) to file or printer or whatever you like. >> filename will append at the end of a file called filename. < will redirect input to a process or commnand. | pipe output, or redirect output, good for joining commands, i.e. find command with cpio, etc. & at the end of command will run command in background. ; will separate commands on same line. * will match any characters in a file or directories. junk* will match all files with first 4 letters ? will match single characters in a file. [] will match any characters enclosed. () execute in subshell. ` ` to run a command inside another command and use its output. " " partial quote for variables. ' ' full quote for variables. # begin comment (if #/bin/ksh or csh or sh is entered at first line of script it runs script in that shell) bg background execution. break break from loop statements. continue Resume a program loop.

○ ○ ○ ○

Kill pid number will terminate running jobs stop will stop background job. suspend will suspend foreground job. wait will wait for a background job to finish.

Bourne Shell (sh shell).
sh or Bourne shell is default shell of Unix operating systems and is the most simplest shell in Unix systems. Examples:
• • • • •

cd; ls execute one after another. (date;who;pwd)> logifile will redirect all the output from three commands to a filenamed logfile. sort file | lp will first sort a file and then print it. alias [options] [name[='command']] will let you create your own commands. i.e.
○ ○

alias ll="ls -la" will execute `ls -la` command whenever ll is entered. let i=i+1 will work as a counter with i incrementing each time this statement is encountered.

let expressions is syntax of let statement.

• • •

for x[in list] do commands done is syntax for for do loop. function name {commands;} is the syntax of a function which can be called from anywhere in program. if condition1 then commands1 elif condition2 then commands2 ... ... ... else commands3 fi

Ksh shell (Korn).
Ksh or Korn shell is widely used shell.

Csh or C shell
csh is second most used shell.

Echo command
echo command in shell programming.

Line command.
line command in shell programming.

Sleep command.
sleep command in shell programming.

Test Command.
test command in shell programming.

CC compiler (c programming language compiler).
Since Unix is itself written in C programming language, most Unix operating systems come with c compiler called cc. back to top of Shell programming. back to top of page

cu,ftp,login, rlogin,talk,telnet, vacation and write .

Cu command.
cu command is used for communications over a modem or direct line with another Unix system. Syntax is cu options destination Options
• • • • • • • • • •

-bn process lines using n-bit characters (7 or 8). -cname Search UUCP's device file and select local area network that matches name. -d Prints diagnostics. -e sends even parity data to remote system -lline communicate on this device (line=/dev/tty001, etc) -n prompts for a telephone number. -sn set transmission rate to n(e.g 1200,2400,9600, BPS) Destination telno is the telephone number of the modem to connect to. system is call the system known to uucp. aadr is an address specific to LAN.

Ftp command (protocol).
ftp command is used to execute ftp protocol using which files are transferred over two systems.

Syntax is ftp options hostname options
• • • •

-d enable debugging. -g disable filename globbing. -i turn off interactive prompts. -v verbose on. show all responses from remote server.

ftp hostname by default will connect you to the system, you must have a login id to be able to transfer the files. Two types of files can be transferred, ASCII or Binary. bin at ftp> prompt will set the transfer to binary. Practice FTP by ftping to loggin in as anomymous with password being your e-mail address.

Login command.
login command invokes a login session to a Unix system, which then authenticates the login to a system. System prompts you to enter userid and password.

Rlogin command.
rlogin command is used to log on to remote Unix systems, user must have permissions on both systems as well as same userid, or an id defined in .rhosts file. Syntax is rlogin options host options
• • •

-8 will allow 8 bit data to pass, instead of 7-bit data. -e c will let you use escape character c. -l user will let you to login as user to remote host, instead of same as local host.

Talk command.
talk command is used to invoke talk program available on all unix system which lets two users exchange information back and forth in real time. Syntax is talk userid@hostname

Telnet command.
Telnet command invokes a telnet protocol which lets you log on to different unix, vms or any machine connected over TCP/IP protocol, IPx protocol or otherwise. Syntax is telnet hostname

Vacation command.
vacation command is used when you are out of office. It returns a mail message to sender announcing that you are on vacation. to disable this feature, type mail -F " " .

syntax is vacation options Options
• • • •

-d will append the date to the logfile. -F user will forward mail to user when unable to send mail to mailfile. -l logfile will record in the logfile the names of senders who received automatic reply. -m mailfile will save received messages in mailfile.

Write command will initiate an interactive conversation with user. Syntax is
write user tty back to top of communications commands back to top of page

Storage commands
compress uncompress, cpio,dump,pack, tar, mt.

Compress command.
Compress command compresses a file and returns the original file with .z extension, to uncompress this filename.Z file use uncompress filename command. syntax for compress command is compress options files Options •
• • •

-bn limit the number of bits in coding to n. -c write to standard output (do not change files). -f compress conditionally, do not prompt before overwriting files. -v Print the resulting percentage of reduction for files.

Uncompress command.
Uncompress file uncompresses a file and return it to its original form. syntax is uncompress filename.Z this uncompresses the compressed file to its original name. Options

-c write to standard output without changing files

Cpio command.
cpio command is useful to backup the file systems. It copy file archives in from or out to tape or disk, or to another location on the local machine. Its syntax is cpio flags [options] It has three flags, -i, -o, -p • cpio -i [options] [patterns]

cpio -i copy in files who names match selected patterns.

○ If no pattern is used all files are copied in. ○ It is used to write to a tape. cpio -o ○ Copy out a list of files whose name are given on standard output. cpio -p ○ copy files to another directory on the same system. Options
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

-a reset access times of input files. -A append files to an archive (must use with -o). -b swap bytes and half-words. Words are 4 bytes. -B block input or output using 5120 bytes per record. -c Read or write header information as Ascii character. -d create directories as needed. -l link files instead of copying. -o file direct output to a file. -r rename files interactively. -R ID reassign file ownership and group information to the user's login ID. -V print a dot for each file read or written. -s swap bytes. -S swap half bytes. -v print a list of filenames. Examples find . -name "*.old" -print | cpio -ocvB > /dev/rst8 will backup all *.old files to a tape in /dev/rst8 cpio -icdv "save"" < /dev/rst8 will restore all files whose name contain "save" find . -depth -print | cpio -padm /mydir will move a directory tree.

Dump command is useful to backup the file systems.
dump command copies all the files in filesystem that have been changed after a certain date. It is good for incremental backups. This information about date is derived from /var/adm/dumpdates and /etc/fstab . syntax for HP-UX dump is /usr/sbin/dump [option [argument ...] filesystem] Options •
• • •

0-9 This number is dump level. 0 option causes entire filesystem to be dumped. b blocking factor taken into argument. d density of tape default value is 1600. f place the dump on next argument file instead of tape. This example causes the entire file system (/mnt) to be dumped on /dev/rmt/c0t0d0BEST and specifies that the density of the tape is 6250 BPI. ○ /usr/sbin/dump 0df 6250 /dev/rmt/c0t0d0BEST /mnt for more info type man dump at command line.

Pack command.
pack command compacts each file and combine them together into a filename.z file. The original file is replaced. Pcat and unpack will restore packed files to their original form. Syntax is Pack options files Options
• • • •

- Print number of times each byte is used, relative frequency and byte code. -f Force the pack even when disk space isn't saved. To display Packed files in a file use pcat command pcat filename.z To unpack a packed file use unpack command as unpack filename.z .

Tar command.
tar command creates an archive of files into a single file. Tar copies and restore files to a tape or any storage media. Synopsis of tar is tar [options] [file]

tar cvf /dev/rmt/0 /bin /usr/bin creates an archive of /bin and /usr/bin, and store on the tape in /dev/rmt0. tar tvf /dev/rmt0 will list the tape's content in a /dev/rmt0 drive. tar cvf - 'find . -print' > backup.tar will creates an archive of current directory and store it in file backup.tar.

• • • • • • • • c creates a new tape. r append files to a tape. t print the names of files if they are stored on the tape. x extract files from tape.

b n use blocking factor of n. l print error messages about links not found. L follow symbolic links. v print function letter (x for extraction or a for archive) and name of files.

Mt command
Mt command is used for tape and other device functions like rewinding, ejecting, etc. It give commands to tape device rather than tape itself. Mt command is BSD command and is seldom found in system V unix versions. syntax is mt [-t tapename] command [count] mt for HP-UX accept following commands
• • • • • • • • • • •

eof write count EOF marks. fsf Forward space count files. fsr Forward space count records. bsf Backward space count files. bsr Backward space count records. rew Rewind tape. offl Rewind tape and go offline. eod Seek to end of data (DDS and QIC drives only). smk Write count setmarks (DDS drives only). fss Forward space count setmarks (DDS drives only). bss Backward space count setmarks (DDS drives only). Examples
○ ○

mt -t /dev/rmt/0mnb rew will rewind the tape in this device. mt -t /dev/rmt/0mnb offl will eject the tape in this device.

back to top of storage commands back to top of page

System Status
at, chmod,chgrp, chown,crontab,date, df,du, env, finger, ps,ruptime, shutdwon,stty, who.

At command.
at command along with crontab command is used to schedule jobs. at options time [ddate] [+increment] is syntax of at command. for example if I have a script named usersloggedin which contains.
#!/bin/ksh who | wc -l echo "are total number of people logged in at this time."

and I want to run this script at 8:00 AM. So I will first type at 8:00 %lt;enter> usersloggedin %lt;enter> I will get following output at 8:00 AM
30 are total number of people logged in at this time.

• • • •

-f file will execute commands in a file. -m will send mail to user after job is completed. -l will report all jobs that are scheduled and their jobnumbers. -r jobnumber will remove specified jobs that were previously scheduled.

Chmod command.
chmod command is used to change permissions on a file. for example if I have a text file with calender in it called cal.txt. initially when this file will be created the permissions for this file depends upon umask set in your profile files. As you can see this file has 666 or -rw-rw-rw attributes. ls -la cal.txt
-rw-rw-rw1 ssb dxidev 135 Dec 3 16:14 cal.txt

In this line above I have -rw-rw-rw- meaning respectively that owner can read and write file, member of the owner's group can read and write this file and anyone else connected to this system can read and write this file., next ssb is owner of this file dxidev is the group of this file, there are 135 bytes in this file, this file was created on December 3 at time16:14 and at the end there is name of this file. Learn to read these permissions in binary, like this for example Decimal 644 which is 110 100 100 in binary meand rw-r--r-- or user can read,write this file, group can read only, everyone else can read only. Similarly, if permissions are 755 or 111 101 101 that means rwxr-xr-x or user can read, write and execute, group can read and execute, everyone else can read and execute. All directories have d in front of permissions. So if you don't want anyone to see your files or to do anything with it use chmod command and make

permissions so that only you can read and write to that file, i.e. chmod 600 filename.

Chgrp command.
chgrp command is used to change the group of a file or directory. You must own the file or be a superuser. chgrp [options] newgroup files is syntax of chgrp. Newgroup is either a group Id or a group name located in /etc/group . Options:
• •

-h will change the group on symbolic links. -R recursively descend through directory changing group of all files and subdirectories.

Chown command.
chown command to change ownership of a file or directory to one or more users. Syntax is chown options newowner files Options
• •

-h will change the owner on symbolic links. -R will recursively descend through the directory, including subdirectories and symbolic links.

Crontab command.
crontab command is used to schedule jobs. You must have permission to run this command by unix Administrator. Jobs are scheduled in five numbers, as follows.
Minutes 0-59 Hour Day of month month Day of week 0-23 1-31 1-12 0-6 (0 is sunday)

so for example you want to schedule a job which runs from script named backup_jobs in /usr/local/bin directory on sunday (day 0) at 11.25 (22:25) on 15th of month. The entry in crontab file will be. * represents all values.
25 22 15 * 0 /usr/local/bin/backup_jobs

The * here tells system to run this each month. Syntax is crontab file So a create a file with the scheduled jobs as above and then type crontab filename .This will scheduled the jobs.

Date command.
Date displays todays date, to use it type date at prompt.
Sun Dec 7 14:23:08 EST 1997

is similar to what you should see on screen.

Df command.
df command displays information about mounted filesystems. It reports the number of free disk blocks. Typically a Disk block is 512 bytes (or 1/2 Kilobyte). syntax is df options name Options
• • • • • • •

-b will print only the number of free blocks. -e will print only the number of free files. -f will report free blocks but not free inodes. -F type will report on an umounted file system specified by type. -k will print allocation in kilobytes. -l will report only on local file systems. -n will print only the file system name type, with no arguments it lists type of all filesystems

Du command.
du command displays disk usage.

Env command.
env command displays all the variables.

Finger command.
finger command.

PS command
ps command is probably the most useful command for systems administrators. It reports information on active processes. ps options options. •
• • •

-a Lists all processes in system except processes not attached to terminals. -e Lists all processes in system. -f Lists a full listing. -j print process group ID and session ID.

Ruptime command.
ruptime command tells the status of local networked machines. ruptime options options.
• • • • •

-a include user even if they've been idle for more than one hour. -l sort by load average. -r reverse the sort order. -t sort by uptime. -i sort by number of users.

Shutdown command.
Shutdown command can only be executed by root. To gracefully bring down a system, shutdown command is used. options.
• •

-gn use a grace-period of n seconds (default is 60). -ik tell the init command to place system in a state k.
○ ○ ○ ○ ○

s single-user state (default) 0 shutdown for power-off. 1 like s, but mount multi-user file systems. 5 stop system, go to firmware mode. 6 stop system then reboot.

-y suppress the default prompt for confirmation.

Stty command
stty command sets terminal input output options for the current terminal. without options stty reports terminal settings. stty options modes < device options
• • • • •

-a report all options. -g report current settings. Modes 0 hang up phone. n set terminal baud. erase keyname, will change your keyname to be backspace key.

Who command
who command displays information about the current status of system. who options file Who as default prints login names of users currently logged in. Options
• • • • • •

-a use all options. -b Report information about last reboot. -d report expired processes. -H print headings. -p report previously spawned processes. -u report terminal usage.

back to top of systemstatus commands back to top of page

Advance unix command concepts
Put advance commands utilities, redirection, etc here. cal > cal.txt To create a new file called cal.txt that has calendar for current month. > sign redirects output from stdout (screen) to a file.

Sign up to vote on this title
UsefulNot useful