Tutorial: Unix Command Summary
Tutorial: Unix Command Summary
Tutorial: 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
Contents
• 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 )
• 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
cat
This is one of the most flexible Unix commands We can use to create, view and concatenate files For our
first ex , 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
The command wc counts things --- the number of characters, words, and line in a file
chmod
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
cd
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
echo
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:
% echo PRINTER
PRINTER
ftp
Use ftp to connect to a remote machine, then upload or download files See also: ncftp
Example 1: We'll connect to the machine fubar net, then change director to mystuff, then download the file
homework11:
% ftp solitude
Connected to fubar net
220 fubar net 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 fubar net, then change director to mystuff, then upload the file
collected-letters:
% ftp solitude
Connected to fubar net
220 fubar net 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> binary
ftp> put foo
ftp> ascii
ftp> get bar
The file foo was transferred in binary mode, the file bar was transferred in ascii mode
grep
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
head
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
ls
Use ls to see what files you have Your files are kept in something called a directory
% ls
foo letter2
foobar letter3
letter1 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
lpr
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
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
mv
Use this command to change the name of file and directories
% mv foo foobar
The file that was named foo is now named foobar
ncftp
Use ncftp for anonymous ftp --- that means you don't have to have a password
% ncftp ftp fubar net
Connected to ftp fubar net
> get jokes txt
The file jokes txt is downloaded from the machine ftp fubar net
print
This is a moderately intelligent print command
% print foo
% print notes ps
% 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 notes ps, 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 notes ps 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
rmdir
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
rsh
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
setenv
% 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
tail
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
tar
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
telnet
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
wc
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
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
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 UNIX is case-sensitive
Files
• 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
• File Compression
o 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
o gunzip filename --- uncompresses files compressed by gzip
o 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
• printing
o 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
o 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
o 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
o 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
o dvips filename --- print dvi files (i e files produced by LaTeX) You can use dviselect to print
only selected pages
Directories
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
Miscellaneous tools
• webster word --- looks up the word in an electronic version of Webster's dictionary and returns the
definition(s)
• date --- shows the current date and time
• cal --- shows a calendar of the current month Use e g , 'cal 10 1995' to get that for October 95, or 'cal
1995' to get the whole year
You can find out more about these commands by looking up their manpages:
man commandname --- shows you the manual page for the command
**************************************************************************************
Basic Vi Commands
This document lists Vi commands giving very brief summaries of what they do Using the Unix screen-
based editor Vi (document vi-r1) is an introduction to the Vi editor For a full description of Vi, see the Unix
User's Manual Supplementary Documents
Cursor movements
Basic cursor movements
Scrolling
The following commands move the window through the editor's buffer They are all obtained by holding
down the key marked Ctrl while typing a letter, for example the letter B for Ctrl/b (this is often written as Ctrl/B
or ^B)
Adding text
All these commands put you into input mode Press the Esc key to leave input mode and return to
command mode
Deleting text
Depending on the terminal in use, the screen may not be updated immediately Use Ctrl/r or Ctrl/l to
refresh the screen
x delete character at cursor position
X delete character before cursor
3x delete 3 characters, from cursor
3X delete 3 characters up to cursor
db delete from beginning of word to cursor
de delete to end of word
3de delete to end of 3 words
dw delete to end of word (including trailing space)
dd delete current line
3dd delete 3 lines, from current line
D delete to end of line
d) delete to end of sentence
d( delete from beginning of sentence
d} delete to end of paragraph
d{ delete from beginning of paragraph
dG delete from current line to end of buffer (including current line)
d1G delete from beginning of buffer to current line
Searches
These commands allow the cursor to be moved to a specific text string Normally, searches are made from
the current position to end of the buffer and then from the start of the buffer to the cursor
Special characters in the text string are:
Replacing text
These commands replace existing text and put you into input mode Press the Esc key to leave input
mode Use Ctrl/r or Ctrl/l to refresh the screen if necessary
Substitutions and global edits are done using the :s and:g commands
Miscellaneous commands
J join current line to next line (insert space after full stop)
3J join 3 lines
U undo all changes to current line made since the cursor was moved to the line
u undo last change to the buffer
repeat the last change
xp swap character under cursor with next character
:!ls execute shell command ls from within Vi
:g/happy/p globally search for all occurrences of 'happy' and print the lines
:1,$s/old/new/ search for the first occurrence of 'old' on all lines and replace with 'new' (& in 'new' stands
for the value of 'old')
:1,$s/old/new/g search for all occurrences of 'old' on all lines and replace with 'new'
Environment options
These options are set using the command :set Like all other commands preceded by a colon (:), it must be
executed by pressing Enter The options control the way the editor works For example,
:set autowrite
sets autowrite on (autowrite may be abbreviated to aw) The buffer is saved to file automatically after
every change
:set wrapmargin=10
sets the wrap margin to 10 (wrapmargin may be abbreviated to wm) Text wraps around automatically
10 characters from the right margin
The options are reset when you leave the editor, or by setting noautowrite (noaw), nowrapmargin
(nowm) etc For example,
:set noautowrite
switches off autowrite
To avoid having to set the options every time the editor is invoked create a file named ' exrc' in your
home directory containing the editor commands you want to be given every time you log in
To list the option settings that have been changed type:
:set
To list all option settings type:
:set all
Some of the most useful options are shown below
autoindent
automatically indent the beginning of a new line
autowrite
write the buffer to file after every change
ignorecase
ignore case in searches
list
display tabs and end of line characters
number
display lines preceded by line numbers
readonly
put editor into read-only mode
showmode
show when you are in input mode (not available on all systems)
term=TTY
set the terminal type for the edit session, for example:set term=vt102
tabstop=N
set distance between tab positions to N, for example :set tabstop=5
wrapmargin=N
wrap around when text is N characters from right margin
writeany
write to any file without warning
****************************************************************************************************************
********************************************
Unix summury
cat <file>
Concatenates the contents of <file> to stdout.
cd <dir>
Changes the current directory to <dir>.
chmod <mode> <file>
Changes the permissions mode of <file> to those specified in <mode>.
chgrp <group> <file>
Changes the group ownership of <file> to <group>.
cp <source> <destination>
Copies the filed specified by <source> to <destination>.
du
Display disk usage. (Not the same as quota.)
finger <username>
Display user information for <username>.
grep <pattern> <file>
Search <file> for <pattern>
groups <username>
Display the group memberships for <username>
gunzip <filename>
Unzip a gzipped (.gz extension) file.
gzip <filename>
Compress a file using LZ77 coding. Usuaully done after using tar to archive multiple files into one
.tar.gz file.
hostname
Display the name of the host you are currently logged on to.
less <file>
Browse through a text file.
ls
List the contents of a directory.
man <command>
Display reference manual pages related to <command>.
mkdir <name>
Make a directory called <name>
more <file>
Browse through a text file.
mv <source> <destination>
Move or rename the file <source> to <destination>
ps
Display the status of current processes.
pwd
Display the pathname of the present working directory.
rm <filename>
Remove <filename>
tar <options> <file(s)>
Create or extract a tar (Tape ARchive) file from multiple files. Typically, the command is tar -cvf
<files_to_archive> to archive multiple files together and tar -xvf <tar_file> to extract files from a
.tar file.
yppasswd
Change your password
whereis <command>
Locate the binary, source, and manual pages for <command>.
which <command>
Located <command>, display its pathname and alias.