Module 1 Unix
Module 1 Unix
Module 1
CHAPTER 1 INTRODUCTION
To understand UNIX, we'll first have to know what an operating system is, why a computer needs operating
system and how UNIX is vastly different from other operating systems that came before and after. What is an
operating system? An operating system is the software that manages the computer's hardware and provides
a convenient and safe environment for running programs. It acts as an interface between user programs and
the hardware resources that these programs access like – processor, memory, hard disk, printer & so on. It is
loaded into memory when a computer is booted and remains active as long as the machine is up.
Page 1
Division of labor: Kernel and shell
The fertile ideas in the development of UNIX has two agencies – kernel and shell.
The kernel interacts with the machine's hardware.
The shell interacts with the user.
The Kernel
The core of the operating system - a collection of routines mostly written in C.
It is loaded into memory when the system is booted and communicates directly with the hardware.
User programs (the applications) that need to access the hardware use the services of the kernel, which
performs the job on the user's behalf.
These programs access the kernel through a set of functions called system calls.
Apart from providing support to user's program, kernel also does important housekeeping.
It manages the system's memory, schedules processes, decides their priorities and so on.
The kernel has to do a lot of this work even if no user program is running.
The kernel is also called as the operating system - a programs gateway to the computer's resources.
The Shell
Page 2
The file and process
Two simple entities support the UNIX – the file and the process.
“Files have places and processes have life”
The File
A file is just an array of bytes and can contain virtually anything.
Every file in UNIX is part of the one file structure provided by UNIX.
UNIX considers directories and devices as members of the file system.
The Process
The process is the name given to the file when it is executed as a program (Process is program under
execution).
We can say process is an “time image” of an executable file.
We also treat process as a living organism which have parents, children and are born and die.
Page 3
The UNIX system-comprising the kernel, shell and applications-is written in C.
Though there are several commands that use functions called system calls to communicate with the
kernel.
All UNIX flavors have one thing in common – they use the same system calls.
3. FEATURES OF UNIX
UNIX is an operating system, so it has all the features an operating system is expected to have.
A Multiuser System
A Multitasking System
The building-block approach
The UNIX toolkit
Pattern Matching
Programming Facility
Documentation
A Multiuser System
UNIX is a multiprogramming system, it permits multiple programs to run and compete for the
attention of the CPU.
This can happen in two ways:
Multiple users can run separate jobs
A single user can also run multiple jobs
A Multitasking System
A single user can also run multiple tasks concurrently.
UNIX is a multitasking system.
It is usual for a user to edit a file, print another one on the printer, send email to a friend and browse
www - all without leaving any of applications.
The kernel is designed to handle a user's multiple needs.
In a multitasking environment, a user sees one job running in the foreground; the rest run in the
background.
User can switch jobs between background and foreground, suspend, or even terminate them.
Page 4
The designer never attempted to pack too many features into a few tools.
Instead, they felt “small is beautiful”, and developed a few hundred commands each of which
performed one simple job.
UNIX offers the | (filters) to combine various simple tools to carry out complex jobs.
Example:
$ cat note #cat displays the file contents
WELCOME TO HIT
$ cat note | wc #wc counts number of lines, words & characters in the file 1 3 15
Pattern Matching
UNIX features very sophisticated pattern matching features.
Example: The * (zero or more occurrences of characters) is a special character used by system to
indicate that it can match a number of filenames.
Programming Facility
The UNIX shell is also a programming language; it was designed for programmer, not for end user.
It has all the necessary ingredients, like control structures, loops and variables, that establish powerful
programming language.
These features are used to design shell scripts – programs that can also invoke UNIX commands.
Many of the system's functions can be controlled and automated by using these shell scripts.
Documentation
The principal on-line help facility available is the man command, which remains the most important
references for commands and their configuration files.
Apart from the man documentation, there's a vast ocean of UNIX resources available on the Internet.
5. LOCATING COMMANDS
The UNIX is command based system i.e.,- things happens because the user enters commands in.
UNIX commands are seldom more than four characters long.
All UNIX commands are single words like – cat, ls, pwd, date, mkdir, rmdir, cd, grep etc.
The command names are all in lowercase.
Example:
$ LS bash: LS: command not found
All UNIX commands are files containing programs, mainly written in C.
All UNIX commands(files) are stored in directories(folders).
If you want to know the location of executable program (or command), use type command-
Example:
$ type date date is /bin/date
When you execute date command, the shell locates this file in the /bin directory and makes
arrangements to execute it.
The PATH
The sequence of directories that the shell searches to look for a command is specified in its own PATH
variable.
Page 6
Example:
$ echo $PATH /bin: /usr/bin: /usr/local/bin: /usr/ccs/bin: /usr/local/java/bin:
Examples:
$ type echo # echo is an internal command echo is shell built-in $ type ls # ls is an external
command ls is /bin/ls
If the command exists both as an internal and external one, shell execute internal command only.
Internal commands will have top priority compare to external command of same name.
7. COMMAND STRUCTURE
To understand power of UNIX, user must know syntax of important UNIX commands.
The general syntax of UNIX command is -
command arguments
Commands and arguments have to be separated by spaces or tabs to enable the system to interpret
them as words.
UNIX arguments range from the simple to the complex.
Arguments may consist of options, expressions, instructions and filenames etc.
Options
Options are special type of arguments mostly used with a minus(-) sign.
An option is normally preceded by a minus(-) sign to distinguish it from filenames or other arguments.
Example:
$ ls -l note # -l option list all the attributes of the file note -rwxrwxrwx 1 mahesh mahesh 811
Jan 27 12:20 note
$ ls -z note # Message from ls, not from shell ls: illegal option –z
Page 7
Options can normally be combined with only one (-) sign, i.e., instead of using $ ls -l -a -t -d you
might as well use $ ls -latd.
Filename Arguments
Many UNIX commands use a filename as argument so the command can take input from the file.
If a command uses a filename as argument, it will generally be its last argument.
It's also quite common to see many commands working with multiple filenames as arguments.
The command with its arguments and options is known as the command line.
This line can be considered complete only after the user has hit [Enter].
The complete line is then fed to the shell as its input for interpretation and execution.
Examples:
$ ls -lat chap01 chap02 chap03 # Multiple filenames as arguments
$ rm chap01 chap02
$ cp chap01 chap01.bak
Exceptions
There are some commands that don't accept any arguments.
There are also some commands that may or may not be specified with arguments.
The ls command can run without arguments (ls), with only options (ls -l) and also with only filenames
like- (ls chap01 chap02)
Examples:
$ pwd # pwd prints the current working directory
$ who # who lists currently logged in users
mahesh tty7 2013-01-30 09:08
Page 8
Combining Commands
UNIX allows you to specify more than one command in the single command line.
Example:
$ ( wc note; ls -l note ) #Two commands combined here using ; & parenthesis 2 3 16 note-rw-rw-
r-- 1 mahesh mahesh 16 Jan 30 09:35 note
$ ls | wc #Two commands combined here using filter 115 166 1227
This is
a three-line
text message
Page 9
The pager is actually a UNIX command, and man is preconfigured to be used with a specific pager.
UNIX systems currently use the following pager programs-
more
less
Finally, to quit the pager, and ultimately man, press q. You'll be returned to the shell's prompt.
SYNOPSIS
wc [ -c | -m | -C] [ -lw ] [ files.... ]
DESCRIPTION
The wc utility reads one or more input files and, by default, writes the number of newline
characters, words and bytes contained in each input file to the standard output.
OPTIONS
Page 10
The following options are supported:
-c Count Bytes
-m Count Characters
-l Count Lines
-w Count Words
OPERANDS
The following operands are supported:
File- a path name of an input file. If no file operand are specified, the standard input will be
used.
USAGE
See largefiles(5) for the behavious of wc when encountering files greater than or equal to 2
Gbyte.
EXIT STATUS
0 Successful Completion
> 0 An Error Occurred
SEE ALSO
isspace(3C), iswalpha(3C), iswspace(3C), setlocale(3C), attributes(5), environ(5), largefile(5)
Page 11
awk (1) - pattern scanning and text processing language
mawk (1) - pattern scanning and text processing language
nawk (1) - pattern scanning and text processing language
$ whatis awk #Lists one-line description of command and same as $man -f awk a
wk (1) - pattern scanning and text processing language
Backspacing Doesn’t work : Consider a word „passwd‟ is misspelled as password, and when backspace key
is pressed it produces some characters ^H^H^H ; backspacing is not working. It happens when user login to
the remote machine whose terminal settings are different from your local one. So can use these following keys
to work:
[ctrl-h] or [delete]
Killing a Line: If the command line contains a many mistakes, its possible to kill the line altogether without
executing it.
[ctrl-u]
The line-kill character erases everything in the line and returns the cursor to the beginning of the line.
Interrupting a command: Sometimes, a program goes on running for an hour and doesn‟t seem to complete.
In this case to interrupt the program and bring back the prompt can use either of the two sequences:
[ctrl-c] or [delete]
Terminating a command’s input: cat command uses an argument representing the filename. If filename is
omitted and simple press enter
$ cat[Enter]
Command waits for user to enter something. Even if you enter any text you should know how to terminate it.
For commands that expect user input, enter a [ctrl-d] to bring back the prompt:
$ cat
[ctrl-d]
$_
Page 12
The keyboard is lacked: When this happens you are not able to key in anything. It could probably be due to
accidental pressing of the key sequence [ctrl-s]. Press [ctrl-q] to release the lock and restore normal keyboard
operation. To resume scrolling, press [ctrl-q].
The [Enter] key doesn’t work: This key is used to complete the command line. If it doesn’t work use either
[ctrl-j] or [ctrl-m]. These key sequences generate the linefeed and carriage return characters, respectively.
The terminal behaves in an erratic manner: Your terminal settings could be disturbed; it may display
everything in uppercase or simply garbage when you press the printable keys. To restore the original setting
press stty sane
The following table lists keyboard commands to try when things go wrong.
Syntax:
Everything within the rectangular box in optional. So cal can be used without any arguments, in which case it
displays the calendar of the current month
Page 13
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
You can‟t hold the calendar of a year in a single screen page;it scrolls off rapidly before you can use [ctrl-s] to
make it pause. To make cal pause using paegr using the | symbol to connect them.
$ date
Mon Sep 4 16:40:02 IST 2017
The command can also be used with suitable format specifiers as arguments. Each symbol is preceded by the
+ symbol, followed by the % operator, and a single character describing the format. For instance, you can
print only the month using the format +%m:
$date +%m
09
Or
the month name name:
$ date +%h
Aug
Or
You can combine them in one command:
There are many other format specifiers, and the useful ones are listed below:
d – The day of month (1 - 31)
Page 14
y – The last two digits of the year.
H, M and S – The hour, minute and second, respectively.
D – The date in the format mm/dd/yy
T – The time in the format hh:mm:ss
$echo $SHELL
/usr/bin/bash
Page 15
printf also accepts all escape sequences used by echo, but unlike echo, it doesn‟t automatically insert newline
unless the \n is used explicitly. printf also uses formatted strings in the same way the C language function of
the same name uses them:
The %s format string acts as a placeholder for the value of $SHELL, and printf replaces %s with the value of
$SHELL. %s is the standard format used for printing strings. printf uses many of the formats used by C‟s
printf function. Here ara some of the commonly used ones:
%s – String
%30s – As above but printed in a space 30 characters wide
%d – Decimal integer
%6d - As above but printed in a space 30 characters wide
%o – Octal integer
%x – Hexadecimal integer
%f – Floating point number
Example:
$ who
mahesh tty7 2017-09-04 16:38 (:0)
mahesh123 tty17 2017-09-04 16:38 (:0)
$_
$ who -H
NAME LINE TIME COMMENT
mahesh tty7 2017-09-04 16:38 (:0)
$_
Page 16
-u option is used with who command displays detailed information of users:
$ who -Hu
NAME LINE TIME IDLE PID COMMENT
mahesh tty7 2017-09-04 16:38 00:18 1865 (:0)
$_
$ tty
/dev/pts/11
$_
Terminal filename is 11 resident in pts directory. This directory in turn is under the /dev directory.
stty uses a very large number of keywords, but we all consider only a handful of them. The –a option displays
the current settings. The trimmed output is presented below:
$ stty -a
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = ^Q; stop = ^S; susp = ^Z
iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
Page 17
To remove echo command to work we can use the following command
$stty –echo
[ctrl-a] will now terminate input for those commands that expects input from the keyboard when invoked in a
particular way.
Once you login as a root you are placed in root’s home directory. Depending on the system, this directory
could be / or /root. Administrative commands are resident in /sbin and /usr/sbin in modern systems and in
older system it resides in /etc.
Page 18
Roots PATH list includes detailed path, for example:
/sbin:/bin:/usr/sbin:/usr/bin:/usr/dt/bin
Any user can acquire superuser status with the su command if they know the root password. For example, the
user abc becomes a superuser in this way.
$ su
Password: *********** #Password of root user
#pwd
/home/abc
Though the current directory doesn‟t change, the # prompt indicates that abc now has powers of a superuser.
To be in root‟s home directory on superuser login, use su –l.
User‟s often rush to the administrator with the complaint that a program has stopped running. The
administrator first tries running it in a simulated environment. Su command when used with a – (minus),
recreates the user‟s environment without the login-password route:
$su – abc
This sequence executes abc’s .profile and temporarily creates abc’s environment. su runs in a separate sub-
shell, so this mode is terminated by hitting [ctrl-d] or using exit.
All these fields are found in a single line identifying the user in /etc/passwd file.
Page 19
1. groupadd: Adding a group
If the user is to be placed in a new group, an entry for the group has to be created first in the /etc/group. User
will always have one primary group and one or more supplementary groups.
/etc/group file contains all of the named groups of the system, and a few lines of this file have the structure as
follow:
root:x:0:root
bin:x:2:
lp:x:7:
usp:x:18: Ram, krishn, image
class:x:1000:
To create a new group usp with GID 2015, use groupadd command as follow,
#groupadd -g 2015 usp #2015 is the GID for usp
The command places this entry in /etc/group, which can also be inserted manually.
usp:x:2015:
Once an entry for the group has been made, then we can add a user of this group to system
The useradd command adds a new users to the system. All details to the user are provided in the command
line:
# useradd -u 999 -g class -c “Unix and shell programming” -d /home/usp -s /bin/ksh -m usp #_
This creates the user usp with UID 999 and group name class.
The home directory is /home/usp and user will use the Korn shell.
The -m option ensure that the home directory is created if it doesn't already exist and copies a
sample .profile and .kshrc to the user‟s home directory.
Page 20
usp:x:999:2015: Unix and shell programming:/home/usp:/bin/ksh
Useradd sets up the user's mailbox and sets the MAIL variable to point to that location(/var/mail). Can set new
users password with the command passwd usp.
/etc/shadow
Encrypted password is stored in /etc/shadow file, this is the control file used by passwd to ascertain the
legitimacy of a user's password. For every line in /etc/passwd, there‟s a corresponding entry in /etc/shadow.
The relevant line in this file could look like:
usp:ggytai749sditjm:999:::::::
This password encryption is stored in the second field. It‟s impossible to generate password from this
encryption. This file is made unreadable for all users for security reason. Only superuser can access this file.
Each field in the shadow file is separated with ":" colon characters, and are as follows:
Username, up to 8 characters. Case-sensitive, usually all lowercase. A direct match to the username in
the /etc/passwd file.
Password, 13 character encrypted. A blank entry (eg. ::) indicates a password is not required to log in
(usually a bad idea), and a ``*'' entry (eg. :*:) indicates the account has been disabled.
The number of days (since January 1, 1970) since the password was last changed.
The number of days before password may be changed (0 indicates it may be changed at any time)
The number of days after which password must be changed (99999 indicates user can keep his or her
password unchanged for many, many years)
The number of days to warn user of an expiring password (7 for a full week)
The number of days after password expires that account is disabled
The number of days since January 1, 1970 that an account has been disabled
A reserved field for possible future use
/etc/passwd
There are total seven fields in each line of the /etc/passwd file. Their significance are as follows:
Username: The name you use to log on to a UNIX system
Password: No longer stores the password encryption but contains an x
UID: The user‟s numerical identification No two users should have the same UID. ls command prints
the owner‟s name by matching the UID obtained from the inode with this field.
GID: The user's numerical group identification
Page 21
Comments or GCOS: User details, name address. This name is used at the front of the email address
for this user
Home directory: The directory where the user ends up on logging in. The login program reads this
field to set the variable HOME
Login shell: The first program executed after logging in This is usually the shell (/bin/ksh). Login sets
the variable SHELL by reading this entry, and also fork-execs the shell process.
usermod is used for modifying some of the parameters set with useradd. Any parameters can be modified by
specifying corresponding options to usermod command.
For example sometimes user need to change their login shell. Command to set Bash as the login shell for the
user usp is:
#usermod -s /bin/bash usp #changes user usp‟s shell from ksh to bash shell
Users are removed from the system with the userdel Command to delete user usp from the system is:
Removes all entries pertaining to usp from /etc/passwd, etc/group and /etc/shadow The user's home
directory doesn't get deleted in the process and has to be removed separately if required.
Page 22
1. THE FILE
The file is the container for storing information.
Neither a file's size nor its name is stored in file.
All file attributes such as file type, permissions, links, owner, group owner etc are kept in a separate
area of the hard disk, not directly accessible to humans, but only to kernel.
1. Ordinary file – also called as regular file. It contains only data as a stream of characters.
2. Directory file – it contains files and other sub-directories.
3. Device file – all devices and peripherals are represented by files.
Ordinary File - ordinary file itself can be divided into two types-
1. Text File – it contains only printable characters and you can often view the contents and make sense
out of them.
2. Binary file – it contains both printable and unprintable characters that cover entire ASCII range.
Examples- Most Unix commands, executable files, pictures, sound and video files are binary.
Directory File
A directory contains no data but keeps some details of the files and subdirectories that it contains.
A directory file contains an entry for every file and subdirectories that it houses.
If you have 20 files in a directory, there will be 20 entries in the directory.
Each entry has two components-
the filename
A unique identification number for the file or directory (called as inode number).
Device File
Installing software from CD-ROM, printing files and backing up data files to tape.
All of these activities are performed by reading or writing the file representing the device.
Advantage of device file is that some of the commands used to access an ordinary file also work with
device file.
Device filenames are generally found in a single directory structure, /dev.
Page 23
2. File may or may not have extensions, and consist of any ASCII character expect the / & NULL
character.
3. Users are permitted to use control characters or other unprintable characters in a filename.
4. Examples - .last_time list. @#$%*abcd a.b.c.d.e
5. But, it is recommended that only the following characters be used in filenames-
Alphabetic characters and numerals
the period(.), hyphen(-) and underscore(_).
The feature of UNIX file system is that there is a top, which serves as the reference point for all
files.
This top is called root and is represented by a / (Front slash).
The root is actually a directory.
Page 24
The root directory (/) has a number of subdirectories under it.
The subdirectories in turn have more subdirectories and other files under them.
Every file apart from root, must have a parent, and it should be possible to trace the ultimate
parentage of a file to root.
In parent-child relationship, the parent is always a directory.
When you logon to the system, UNIX places you in a directory called home directory.
It is created by the system when the user account is created.
If a user login using the login name kumar, user will land up in a directory that could have the path
name /home/kumar.
The shell variable HOME knows the home directory.
$echo $HOME
/home/kumar
Any time user can know the current working directory using pwd command.
$ pwd
/home/kumar
User can move around the UNIX file system using cd (change directory) command.
When used with the argument, it changes the current directory to the directory specified as
argument, progs:
Page 25
$ pwd
/home/kumar
$cd progs
$ pwd /
home/kumar/progs
Here we are using the relative pathname of progs directory. The same can be done with the
absolute pathname also.
$cd /home/kumar/progs
$ pwd
/home/kumar/progs
$cd /bin
$ pwd
/bin
$cd
$ pwd
/home/kumar
$ pwd
/home/Sharma
$cd
/home/kumar
Page 26
Directories are created with mkdir (make directory) command. The command is followed by
names of the directories to be created. A directory patch is created under current directory like this:
$mkdir patch
This creates three subdirectories – progs, cprogs and javaprogs under progs.
The order of specifying arguments is important. You cannot create subdirectories before creation
of parent directory.
For instance following command doesn‘t work
The rmdir (remove directory) command removes the directories. You have to do this to remove
progs:
$rmdir progs
Page 27
rmdir expect the arguments reverse of mkdir.
Following command used with mkdir fails with rmdir
First it removes cprogs and javaprogs form progs directory and then it removes progs fro system.
9. ABSOLUTE PATHNAME
Example
date command can executed in two ways as
$date // Relative path
Page 28
10. RELATIVE PATHNAME
A pathname can also be relative to your current working directory. Relative pathnames never begin
with /. Relative to user amrood's home directory, some pathnames might look like this –
progs/cprogs
rdsk/Os3
$cd /home/kumar
$pwd
/home/kumar
$cd ..
$pwd
/home/kumar/progs
This method is compact and easy when ascending the directory hierarchy. The command cd ..
Translates to this ―change your current directory to parent of current directory‖.
Page 29
$cd ../..
$pwd
/home
The following command copies the file prog1.java present in javaprogs, which is present is parent of
current directory to current directory.
$pwd
/home/kumar/progs/cprogs
$cp ../javaprogs/prog1.java .
cat command is used to display the contents of a small file on the terminal.
Page 30
$ cat cprogram.c
# include <stdioh>
void main ()
{
Printf(―hello‖);
}
As like other files cat accepts more than one filename as arguments
In this the contents of the second files are shown immediately after the first file without any header
information. So cat concatenates two files- hence its name.
cat OPTIONS
When the command line is terminated with [Enter], the prompt vanishes. Cat now waits to take input from
the user. Enter few lines; press [ctrl-d] to signify the end of input to the system To display the file contents of
new use file name with cat command.
$ cat new
Page 31
This is a new file which contains some text, just to
Add some contents to the file new
The cp command copies a file or a group of files. It creates an exact image of the file on the disk with a
different name.
The syntax takes two filename to be specified in the command line.
If the destination file (csb) doesn‘t exist, it will first be created before copying takes place. If not it
will simply be overwritten without any warning from the system.
cp can also be used with the shorthand notation, .(dot), to signify the current directory as the
destination. To copy a file „new‟ from /home/user1 to your current directory, use the following
command:
cp command can be used to copy more than one file with a single invocation of the command. In
this case the last filename must be a directory.
Ex: To copy the file ch1,ch2,ch3 to the module , use cp as
$ cp ch1 ch2 ch3 module
The files will have the same name in module. If the files are already resident in module, they will be
overwritten. In the above diagram module directory should already exist and cp doesn‘t able create a
directory.
UNIX system uses * as a shorthand for multiple filenames.
Ex:
$ cp ch* usp Copies all the files beginning with ch
cp options
Page 32
Interactive Copying(-i) : The –i option warns the user before overwriting the destination file, If unit 1
exists, cp prompts for response
$ cp -i ch1 unit1
$ cp: overwrite unit1 (yes/no)? Y
A y at this prompt overwrites the file, any other response leaves it uncopied.
It performs recursive behavior command can descend a directory and examine all files in its
subdirectories.
If the newclass/newusp doesn‘t exist, cp creates it along with the associated subdirectories.
Page 33
To remove all file in a directory use *
$ rm *
rm options
Interactive Deletion (-i) : Ask the user confirmation before removing each file:
$ rm -i ch1 ch2
rm: remove ch1 (yes/no)? ? y
rm: remove ch1 (yes/no)? ? n [Enter]
o A ‗y‘ removes the file (ch1) any other response like n or any other key leave the file undeleted.
Recursive deletion (-r or -R): It performs a recursive search for all directories and files within these
subdirectories. At each stage it deletes everything it finds.
$ rm -r * Works as rmdir
o It deletes all files in the current directory and all its subdirectories.
Forcing Removal (-f): rm prompts for removal if a file is write-protected. The -f option overrides
this minor protection and forces removal.
The mv command renames (moves) files. The main two functions are:
1. It renames a file(or directory)
2. It moves a group of files to different directory
It doesn't create a copy of the file; it merely renames it. No additional space is consumed on disk
during renaming.
Page 34
$ mv c1 c2
If the destination file doesn‘t exist in the current directory, it will be created. Or else it will just rename
the specified file in mv command.
A group of files can be moved to a directory.
Ex: Moves three files ch1,ch2,ch3 to the directory module
$ mv rename newname
To view the file ch1, we can use more command along with the filename, it is used for display
This file is an example for od command ^d used as an interrupt key ^e indicates the end of file.
It displays the contents of ch1 on the screen, one page at a time. If the file contents is more it will
show the filename and percentage of the file that has been viewed:
----More--- (15%)
Navigation
f or Spacebar: to scroll forward a page at a time
b to move back one page
The ls output won‘t fit on the screen if there are too many files, So the command can be used like this:
ls | more
Page 35
The pipeline of two commands where the output of two commands, where the output of one is used as
the input of the other.
wc command performs Word counting including counting of lines and characters in a specified file. It
takes one or more filename as arguments and displays a four columnar output.
$ wc ofile
4 20 97 ofile
wc offers 3 options to make a specific count. –l option counts only number of lines, - w and –c options
count words and characters, respectively.
$ wc -l ofile
4 ofile
$ wc -w ofile
20 ofile
Multiple filenames, wc produces a line for each file, as well as a total count.
$ wc -c ofile file
97 ofile
15 file
112 total
Page 36
^d used as an interrupt key
$ od –b file
0000000 164 150 151 163 040 146 151 154 145 040 151 163 040 141 156 040
0000020 145 170 141 155 160 154 145 040 146 157 162 040 157 144 040 143
0000040 157 155 155 141 156 144 012 136 144 040 165 163 145 144 040 141
0000060 163 040 141 156 040 151 156 164 145 162 162 165 160 164 040 153
0000100 145 171
-c character option
Now it shows the printable characters and its corresponding ASCII octal representation
$ od –bc file
od -bc ofile
0000000 164 150 151 163 040 146 151 154 145 040 151 163 040 141 156 040
T h i s f i l e i s a n
0000020 145 170 141 155 160 154 145 040 146 157 162 040 157 144 040 143
E x a m p l e f o r o d c
0000040 157 155 155 141 156 144 012 136 144 040 165 163 145 144 040 141
o m m a n d \n ^ d u s e d a
0000060 163 040 141 156 040 151 156 164 145 162 162 165 160 164 040 153
s a n i n t e r r u p t k
0000100 145 171
e y
Page 37