Unix Basics

Unix & Concepts

Features of Unix
* Multi-user
* Multitasking
* Support for Networking
* Programming Facility

Windows and Unix OS.
* (Table…)
* Menus and Icons
* Requires Constant Attention
* Scripting

Structure of Unix Operating System

Structure of Unix OS

Understanding the Unix commands

ls - Lists all the files & directories
cat - used for displaying and also creating new files.
grep - checks for the pattern in the specified file
file - gives the details of the file i.e,,, txt, exe, gif as such.
noclobber - prevents the accidental overwriting into a file .
ps - Lists all the commands that are currently running
echo - Displays all the arguments on the screen
uname - Gives the version number of the shell / kernel
who - Displays all the current users of the system
spell - Checks for all the mistakes in a given file document
pwd - Displays the current working directory
home - Displays the home directory which is decided by the administrator.
cmp - Compares two files and gives the corresponding output.
comm - Find the common text between the two files and gives the corresponding output.
pr - Paginating of files and adds an appropriate headers and footers
head - Displays top of the file
tail - Displays the bottom of the file
cut - Used to extract specific columns of the files
paste - Pastes files vertically rather than horizontally as it is usually done .
sort - Performs its usual sorting functions with variable length records,it comes with a lot of options.

Navigating the File System

* Redirection operators.(> , < , >> )
* Redirection of standard input ,output and standard error.
* Managing files and directories ( cd , pwd )
* Create/delete directory ( mkdir , rmdir )
* Create/delete files.( rm )
* Move/copy files.( mv , cp)
* In the current directory mv is used for renaming of files.

File Permissions
ls –l
-rwx-rw-rw- sunil may 13:55 sun1

Changing File Permissions ( chmod )
U-user + à assign r- read
g-group - à assign w- write
O-others = à assign x- execute.

Octal notation.
1.Read permission 4
2.Write permission 2
3.Execute permission 1

Syntax: chmod category operation permission file
chmod u + x sun1
chmod ugo = r sun1
chmod 6 6 6 sun1

Pipelines and tees
Pipeline :
* A sequence of two or more commands used with the | symbol , so that the input of one command comes from the output of the other.
* No intermediate files need to be created during the process.
* Example : $ who | wc –l

Tees :
* Unix provides a feature by which u can save the standard output in a file , as well as display it on the terminal
* Tees breaks up the input into two components, one component is saved in the file , and the other is connected to the standard output.
* No filtering is done by tee it gives out exactly what it takes.
* Example: $ who | tee user. lst
sunil tty1 october 1 14:32

Wild card characters

Wild card / Meta characters ( * , ? , [ ] )
* Matches Zero or many occurrences .
? Matches a single character
[ ] Matches a single character within the enclosed characters

Example1 : $ ls -x chap*
chap1,chap2 ,chap22,chap…..
Example2 : $ ls -x chap?
chap x chap y chapz
Example 3: $ls –x chap [ijk]

[!ijk] Matches a single character that is not an i,j or k
[x-z] Matches a single character i.e.., within the ASCII range of characters X to Z
[! x-z] Matches a single character i.e.,not within the ASCII range of characters X to Z

A backslash is used to remove the characteristics of the wild card characters .
Example1: $ echo * $ echo \*
All the files in pwd displayed *

Example2: $ls –l char* $ls –l char\*

System Variables

Unix system is controlled by number of shell variables that are separately set by the system some during the booting process and some after logging.


It is a script executed during login time. it alters the operating environment of a user , which

remains in effect throughout the login session.

$ cat .profile
# user $HOME /.profile –commands executed at login time
HOME =/one/sunil/progs
Path =$PATH: /home/bin/usr
Ps1=$ ( command prompt )
Ps2=> ( multi-line command )
Echo “today the date is ‘date’ “

It is similar to that of an shell script where all the commands are inserted into single file as such and executed during login for a particular user.

Stty ( setting the terminal characteristics )
Depending upon the users choice different terminals are configured differently .
$stty –a
Speed 9600 baud ; erase=^\;quit=^d; …………………….

Aliases :
Alias lets u assign short hand names for commands u may be using quite frequently.
$ cd $1;ls –l
Replaced with : alias showdir = ‘ $ cd $1;ls –l ’

VI editor

i insert mode.
leave insert mode and go into command mode.
a append characters to the end of the line.
g Go to the bottom of the file.
? And / Used for searching of a word/text in a file.
r replace the letter that you are on with the one you type next.
x erase the character that you are on
dd delete the line that you are on. A number before dd deletes that number of lines
.yy copy the line you are on. A number before yy copies that number of lines.
p paste the line you are on below you.
P paste the line you are on above you.
:wq write and quit the file that you are editing.
:wq! write and quit the file that you are editing, even if it is designated as read only
:w! write to a read only file
:q quit.
:q! discard any editing and quit.

Process & Job control

Suspend a Job – A suspended job is not killed , neither running but it is stopped ( ( ctrl +Z ) )
Background Job –To restart a job in background which is suspended , $ bg .
Foreground Job -To bring the command to foreground , $ fg .
Run a job in background – We can directly run a process in the background
$ big_task &
Displaying current Jobs – shell displays all the jobs that are being run , jobs in background , jobs background , jobs stopped .
$ jobs
Killing a Job – kills the job that is either bg, fg, stopped.
•Kill % job number

Features of shell (Bourne shell )
Command line editing – alter wrongly typed commands using screen editing commands (ctrl+A , ctrl+B, ctrl+E ………)
History mechanism- reissue previously entered commands.
File name completion – automatically complete a filename ,when given a partial name.
Redirecting input and output – direct output from commands to files and vice-versa.
Run commands in background while carrying on with your normal interactive work.
Change prompt – you can always change the command prompt , with the system name , present directory , date other than the usual “ $ “.
Use the { and } to produce multiple results from a single command .

Shell programming
Shell scripts
A file containing shell commands is a shell script .It has its own built in programming language , thus it is able to analyze and execute shell commands one at a time .

Steps followed to create a shell script ,

Create a file with the commands which u wish to execute
Change the file access mode , executable file.
Type the name of the file to execute the commands in the script
We can also execute a shell script by giving the command
$ sh script.sh

Control statements ( if , while , for )
Syntax: if condition then Syntax: while condition
Statements do
elif condition then statements
Statements done

Syntax: for var [ in list ] syntax :case expression in
do pattern 1)
Statements statements;;
Done pattern 2)

If list is omitted, $@ is assumed Otherwise ${ list[*] } Where list is an array variable.
The keywords break, continue, and return have the same meaning as in C/C++

Positional parameters
The read command allows you to prompt for input and store it in a variable .
Correct : read name incorrect : read $name.
$1 - $9 these variables are called the positional parameters .
$# the number of positional arguments given to this invocation of the shell.
$? the exit status of the last command executed status is 0 / 1
$$ the process number of this shell
$! the process id of the last command run in the background.
$* a string containing all the arguments to the shell, starting at $1.
$@ same as above, except when quoted.
Example : festival$ cat example_5args
echo The first five command line
echo arguments are $1 $2 $3 $4 $5
Initially only nine commands are available it can be increased to any number by using the SHIFT COMMAND.


apropos - locate commands by keyword lookup /usr/bin/X11/dxbook
man - find manual information about commands

whatis - describe what a command is

whereis - locate source, binary, or man page for a program

--help - some Linux commands don’t have man pages but almost all of them support the help option.