161
UNIX Basics www.scmGalaxy.com Author: Rajesh Kumar www.scmGalaxy.com, Author - Rajesh Kumar 1

Basic Unix

Embed Size (px)

DESCRIPTION

Basic of and Unix and Command. More presentation you can find on www.scmGalaxy.com. scmGalaxy.com is dedicated to software configuration, build and Release management. This covers CVS, VSS (Visual Source Safe),Perforce, SVN(Subversion) MKS Integrity, ClearCase,TFS,CM Synergy, Best Practices ,AnthillPro, Apache Ant, Maven, Bamboo, Cruise Control and many more tools.

Citation preview

Page 1: Basic Unix

UNIX Basics

www.scmGalaxy.comAuthor: Rajesh Kumar

www.scmGalaxy.com, Author - Rajesh Kumar

1

Page 2: Basic Unix

Contents1.Introduction to Unix 03 - 11

2. Logging In and Basic Commands 12 - 26

3File system 27 - 45

4.managing files 46 - 55

5.File Access Permissions 56 - 68

6.vi Editor 69 - 78

7.Shell Basics 79 – 94

8. Standard I/O Redirection 95 – 103

9. Filters & some utilities 104 – 123

10. Controlling Processes 124 – 132

11. Shell Programming concepts 133 - 158

12. Labs 159 - 161

www.scmGalaxy.com, Author - Rajesh Kumar2

Page 3: Basic Unix

Introduction to Unix

Module 1

www.scmGalaxy.com, Author - Rajesh Kumar3

Page 4: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

what is an Operating System History of unix Operating system Unix Architecture More features of unix Unix Flavors Linux Flavors

www.scmGalaxy.com, Author - Rajesh Kumar

4

Page 5: Basic Unix

What Is an Operating System?

• Interface between Users and the Hardware

• take care of Storage Management

• take care of I/O device management

www.scmGalaxy.com, Author - Rajesh Kumar

5

Page 6: Basic Unix

1969 AT&T Bell Labs UNICS system -designed by Ken Thompson & Dennis Ritchie

1970 UNICS finally became UNIX

1973 UNIX rewritten in C, making it portable to different hardware

Mid 1970s University of California at Berkeley (BSD) contributed many important features like vi, C shell etc.

1982 AT & T came back and started commercial production- Editions ->Systems

Late 1980s AT & T released SVR4 unification of SV3.2,BSD,SunOs & XENIX

1991 Linux from Linus Torvalds

1990s POSIX Standard, MIT introduced X-Windows

History of the UNIX Operating System

www.scmGalaxy.com, Author - Rajesh Kumar

6

Page 7: Basic Unix

UNIX Architecture – Kernel & Shell

Shell Kernel HardwareUser

www.scmGalaxy.com, Author - Rajesh Kumar

7

Page 8: Basic Unix

UNIX Architecture – System Calls

Though there are over a thousand commands on the system, they all use a handful of functions, called system calls, to communicate with the kernel.

All unix flavors use the same system calls and are described in the POSIX specification.

www.scmGalaxy.com, Author - Rajesh Kumar

8

Page 9: Basic Unix

• Hierarchical file system• Multi tasking• Multi user• The building block approach• Pattern matching (wildcard characters)• Toolkit(Applications, RDBMSs, Languages etc..)• Programming facility• Documentation

More Features of UNIX

www.scmGalaxy.com, Author - Rajesh Kumar

9

Page 10: Basic Unix

Flavors of UNIX

• Digital Unix

• IRIX

• SCO Open Server

• SCO UnixWare

• IBM -AIX

• HP - UX

• Sun - Solaris

www.scmGalaxy.com, Author - Rajesh Kumar

10

Page 11: Basic Unix

Clone of UNIX (LINUX)

•Red Hat

• Calders

• SuSE

• Mandrake

• Debian

www.scmGalaxy.com, Author - Rajesh Kumar

11

Page 12: Basic Unix

Logging In and Basic Commands

Module 2

www.scmGalaxy.com, Author - Rajesh Kumar

12

Page 13: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

Logging In and Out Command Line Format The Secondary Prompt Online Manual Pages id Command who Command date Command cal, clear Commands passwd Command finger command

www.scmGalaxy.com, Author - Rajesh Kumar

13

Page 14: Basic Unix

• Log in to identify yourself and gain access.

• Execute commands to do work.

• Log off to terminate your connection.

A Typical Terminal Session

www.scmGalaxy.com, Author - Rajesh Kumar

14

Page 15: Basic Unix

Logging In and Out

telnet 192.168.10.1

User:

Password:

exit or <ctrl>+<d> will terminate the login sessionwww.scmGalaxy.com, Author - Rajesh Kumar

15

Page 16: Basic Unix

Syntax:

$ command [-options] [arguments]

1. Separation : mail –f newmail not mail – f newmail

2. Order: mail –f newmail not mal newmail –f

3. Multiple options: who –m –u or who –mu not who –m u

4. Multiple arguments: mail team1 team2 not mail team1team2

Command Line Format

www.scmGalaxy.com, Author - Rajesh Kumar

16

Page 17: Basic Unix

$ echo 'hi

>Good Morning‘

> is the default secondary prompt

The Secondary Prompt

www.scmGalaxy.com, Author - Rajesh Kumar

17

Page 18: Basic Unix

Content of the Manual Pages

NAME WARNINGSSYNOPSIS EXAMPLESDESCRIPTION AUTHORRETURN VALUE FILESERRORS SEE ALSOBUGS etc.

www.scmGalaxy.com, Author - Rajesh Kumar

18

Page 19: Basic Unix

Syntax:

man –[k|X] keyword

in which X is the number of one of the manual sections

Examples: $ man ls Display the “ls" man page. $ man -k cat Display entries with keyword "cat". $ man passwd Display the "passwd" man page-Section 1. $ man 4 passwd Display the "passwd" man page-Section 4.

The Online Manual

www.scmGalaxy.com, Author - Rajesh Kumar

19

Page 20: Basic Unix

Syntax: id Displays effective user and group identification for session

Example: $id uid =303 (user3) gid=300 (class)

The id Command

www.scmGalaxy.com, Author - Rajesh Kumar

20

Page 21: Basic Unix

Syntax: who Reports information about users who are

currently logged on to a systemExamples: $ who root tty1p5 Jul 01 08:01 user11 tty1p4 Jul 01 09:59 user12 tty0p3 Jul 01 10:01

$ who am i user12 tty0p3 Jul 01 10:01

$ whoami user12

The who Command

www.scmGalaxy.com, Author - Rajesh Kumar

21

Page 22: Basic Unix

Syntax: date Reports the date and time

Example: $ date Fri Jul 1 11:15:55 EDT 2005

The date Command

www.scmGalaxy.com, Author - Rajesh Kumar

22

Page 23: Basic Unix

Syntax: cal Reports the calendar of 2005 September(Current month)

Example: $ cal 8 2005 for Aug 2005 $ cal 2005 for the full calendar of year 2005

The cal Command

www.scmGalaxy.com, Author - Rajesh Kumar

23

Page 24: Basic Unix

Syntax: passwd Assigns a login password

Example: $ passwd

Changing password for user1 Old password: New password: Re-enter new password:

The passwd Command

www.scmGalaxy.com, Author - Rajesh Kumar

24

Page 25: Basic Unix

The clear Command

Syntax:

clear Clears terminal screen

www.scmGalaxy.com, Author - Rajesh Kumar

25

Page 26: Basic Unix

fingerFinger: Displays information about the users currently logged on

Eg:

$ finger user1

Login name: user1 Directory: /export/home/user1 shell:/usr/bin/sh On since Sep 05 09:10:12 on tty1 No plan

www.scmGalaxy.com, Author - Rajesh Kumar

26

Page 27: Basic Unix

File System

Module 3

www.scmGalaxy.com, Author - Rajesh Kumar

27

Page 28: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

What Is a File System? File System structure Hard Link File Types Ordinary Files Directory Files Symbolic Links Device files The File System Hierarchy Basic Commands pwd, cd, ls, mkdir, rmdir, touch

www.scmGalaxy.com, Author - Rajesh Kumar

28

Page 29: Basic Unix

What Is a File System?

collection of control structures and Data blocks that occupy the space defined by a partition and allow for the storage and management of data.

Data + Meta data

www.scmGalaxy.com, Author - Rajesh Kumar

29

Page 30: Basic Unix

a

File System structure

Primary Superblock

Backup Superblock

Cylinder Group Block

Inode Table

Data Blocks

www.scmGalaxy.com, Author - Rajesh Kumar

30

Page 31: Basic Unix

Hard Link

Allows a file to have more than one name and yet maintain a single copy on the disk.

All the links have the same inode number

Eg: $ ls –i f1

1113 f1

$ ln f1 f1.lnk

$ ls –i f1.lnk

1113 f1.lnk www.scmGalaxy.com, Author - Rajesh Kumar

31

Page 32: Basic Unix

a

File Types

Common File Types:

Ordinary files: regular files

Directory files: table of contents, that stores a list of files/directories within that directory

Device files: For every device there is a device file used by kernel to interact with the device.

Symbolic Link: Its link to other files

www.scmGalaxy.com, Author - Rajesh Kumar

32

Page 33: Basic Unix

a

Ordinary Files

A regular file simply holds data.

Regular files can hold ASCII text, binary data, image data, databases, application-related data, and more.

www.scmGalaxy.com, Author - Rajesh Kumar

33

Page 34: Basic Unix

a

Directory Files

Directory Inode Table

name inum # type mode links user group date size locd1 4 4 dir 755 2 user1 group1 Sep 5 9:30 512f1 10 10 file 644 1 user1 group1 Sep 5 9:45 12

www.scmGalaxy.com, Author - Rajesh Kumar

34

Page 35: Basic Unix

a

Symbolic Links

contains the path of the file to which it links

Exists even after the source file is removed and is exactly similar to Windows shortcut

Syntax: ln –s soucefile linkfile

Eg: ln -s /f1 f1.lnk

Overcomes 2 limitations of Hard Link:1. possible across filesystems2. can link to a directory

www.scmGalaxy.com, Author - Rajesh Kumar

35

Page 36: Basic Unix

a

Device files

A device file provides access to a device.

# cd /devices/pci@1f,0/pci@1,1/ide@3# ls -lbrw------- 1 root sys 136, 0 Apr 3 11:11 dad@0,0:a

Two types of device files:block device filescharacter device file

www.scmGalaxy.com, Author - Rajesh Kumar

36

Page 37: Basic Unix

The File System Hierarchy

/

usr etc devices dev var tmp

bin sbin

ls who

adm sadmdsk rdsk

www.scmGalaxy.com, Author - Rajesh Kumar

37

Page 38: Basic Unix

a

system directories

/ :root directory, top level directory

/bin : user commands like cp, cron, cmp etc..

/usr/sbin: admin commands

/dev : logical device files of all hardware devices

/devices: physical device files

/etc : System configuration files and user database

/tmp : to store temporary files

/usr : the binaries, shared libraries, shared documentation etc.

/var: stores the log files and dynamic files www.scmGalaxy.com, Author - Rajesh Kumar

38

Page 39: Basic Unix

a

File Path nameA sequence of file names, separated by slashes (/), that

describes the path, the system must follow to locate a

file in the file system

Absolute pathname (start from the /-directory):

Eg: /export/home/user1/file1

Relative pathname (start from the current directory)

./test1 (. = current directory)

../team03/.profile (.. = parent directory)www.scmGalaxy.com, Author - Rajesh Kumar

39

Page 40: Basic Unix

pwd - Present Working Directory

pwd prints the Current Directory

www.scmGalaxy.com, Author - Rajesh Kumar

40

Page 41: Basic Unix

6

Syntax: ls [-adlFR] [pathname(s)]

Example: $ ls f1 f2 memo $ ls -F f1 f2* memo/ $ ls -aF profile f1 f2* memo/ $ ls memo f1 f2

ls - List Contents of a Directory

www.scmGalaxy.com, Author - Rajesh Kumar

41

Page 42: Basic Unix

cd Change Directory

Example:$ pwd/home/user3$ cd memo; pwd/home/user3/memo$ cd ../..; pwd/home$ cd /tmp; pwd/tmp

syntax:

cd [dir_name]

www.scmGalaxy.com, Author - Rajesh Kumar

42

Page 43: Basic Unix

mkdir, rmdir – create & remove Directories

Syntax: mkdir directory

eg:

$ mkdir d1

syntax: rmdir dir

eg:

$ rmdir /export/home/user1 www.scmGalaxy.com, Author - Rajesh Kumar

43

Page 44: Basic Unix

working with Multiple Directories

Create multiple directories simultaneously: $ mkdir -p dir1/dir2/dir3

Remove a directory and all its subdirectories

$ rmdir -p dir1/dir2/dir3

www.scmGalaxy.com, Author - Rajesh Kumar

44

Page 45: Basic Unix

The touch CommandUpdates the atime and mtime of a file if it exists.

Else create an empty file

Example:

$ ls –l

-rw-r—r-- 1 user1 group1 100 Sep 5 09:30 test

$date

Mon, Sep 5 10:00 2005

$ touch test file1

$ ls -l

-rw-r—r-- 1 user1 group1 100 Sep 5 10:00 test

-rw-r—r-- 1 user1 group1 100 Sep 5 10:00 file1www.scmGalaxy.com, Author - Rajesh Kumar

45

Page 46: Basic Unix

Managing Files

Module 4

www.scmGalaxy.com, Author - Rajesh Kumar

46

Page 47: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

File Characteristics cat more tail wc cp mv rm

www.scmGalaxy.com, Author - Rajesh Kumar

47

Page 48: Basic Unix

File Characteristics

FileType

Permissions

Links

Owner

Group

SizeTimestamp

Name

$ ls -l -rw-r--r-- 1 user3 class 37 Jul 24 11:06 f1-rwxr-xr-x 1 user3 class 52 Jul 24 11:08 f2drwxr-xr-x 2 user3 class 1024 Jul 24 12:03 memo

www.scmGalaxy.com, Author - Rajesh Kumar

48

Page 49: Basic Unix

Syntax: cat [file...] Concatenate and display the contents of file(s)

Examples: $ cat remind Your mother's birthday is November 29. $ cat note remind The meeting is scheduled for July 29. Your mother's birthday is November 29.

$ cat abc abc 1234 1234

cat - Display the Contents of a File

CTRL + D

www.scmGalaxy.com, Author - Rajesh Kumar

49

Page 50: Basic Unix

Syntax:more [filename]... Display files one screen at a time

Example: $ more funfile . . . --funfile (20%)-- Q or q Quit moreReturn One more line Space bar One more page

more - Display the Contents of a File

www.scmGalaxy.com, Author - Rajesh Kumar

50

Page 51: Basic Unix

Syntax:

tail [-n] [filename]... Display the end of file(s)

Example:

$ tail -1 test soon as it is available.

tail - Display the End of a File

www.scmGalaxy.com, Author - Rajesh Kumar

51

Page 52: Basic Unix

wc command

The wc command counts the number of lines, words and bytes in a named file:

syntax:

wc [-c] [-l] [-w] filename

Options:

-c counts the number of bytes

-l counts lines

-w counts words

Example:

$wc testfile

10 98 1000 testfilewww.scmGalaxy.com, Author - Rajesh Kumar

52

Page 53: Basic Unix

Syntax:cp [-i] file1 new_file Copy a filecp [-i] file [file...] dest_dir Copy files to a directorycp -r [-i] dir [dir...] dest_dir Copy directories

Example: cp file1 d1 copies file1 to d1 directory cp file2 file3 create a copy of file2 as file3 in the same directory

cp - Copy Files

www.scmGalaxy.com, Author - Rajesh Kumar

53

Page 54: Basic Unix

Syntax:

mv [-i] file new_file Rename a filemv [-i] file [file...] dest_dir Move files to a directorymv [-i] dir [dir...] dest_dir Rename or move directories

Example:

$ ls -F $ mv note remind memof1 f2* memo/ note remind $ ls -F$ mv f1 file1 file1 memo/$ ls -F $ls -F memofile1 f2* memo/ note remind file2* note remind$ mv f2 memo/file2 $ mv memo letters$ ls -F $ ls -F file1 memo/ note remind file1 letters/$ ls -F memo file2*

mv - Move or Rename Files

www.scmGalaxy.com, Author - Rajesh Kumar

54

Page 55: Basic Unix

Syntax: rm [-if] filename [filename...] Remove files rm -r[if] dirname [filename...] Remove directories

Examples:

rm f1 removes the file f1 rm –r d1 remove the directory.

rm - Remove Files

www.scmGalaxy.com, Author - Rajesh Kumar

55

Page 56: Basic Unix

File Access Permissions

Module 5

www.scmGalaxy.com, Author - Rajesh Kumar

56

Page 57: Basic Unix

Objectives

Access to files is dependent on a user's identification and the permissions associated with a file. This module will show how to Understand the read, write, and execute access to a file Permissions

ls (11, ls -l) chmod umask chown chgrp su setuid, setgid, sticky bit

www.scmGalaxy.com, Author - Rajesh Kumar

57

Page 58: Basic Unix

File Permissions and Access

Access to files is dependent on a user's identification and the permissions associated with a file. This module will show how to Understand the read, write, and execute access to a filePermissions

ls (11, ls -l)chmodumaskchownchgrpsu

Determine what access is granted on a fileChange the file access Change default file access Change the owner of a file Change the group of a file Switch your user identifier

www.scmGalaxy.com, Author - Rajesh Kumar

58

Page 59: Basic Unix

Who can access a File?

The UNIX system incorporates a three-tier structure to define who has access to each file and directory:

user The owner of the file group A group that may have access to the file other Everyone else

• The ls -l command displays the owner and group who has access to the file.$ ls -l-rw-r--r-- 1 user3 class 37 Jul 24 11:06 f1-rwxr-xr-x 1 user3 class 37 Jul 24 11:08 f2drwxr-xr-x 2 user3 class 1024 Jul 24 12:03 memo | | owner groupwww.scmGalaxy.com, Author - Rajesh Kumar

59

Page 60: Basic Unix

contents can be examined. contents can be examined.

contents can be changed. contents can be changed.

file can be used as a command.can become current working directory.

Types of Access

There are three types of access for each file and directory:

Read files: directories:

Write files: directories:

Execute files: directories:

www.scmGalaxy.com, Author - Rajesh Kumar

60

Page 61: Basic Unix

Change Permissions (Symbolic Notation)

Syntax: chmod mode_list file... Change permissions of file(s)

mode_list [who[operator]permission] [ ,... ]

who user, group, other or all(u/g/a) operator + (add), - (subtract), = (set equal to) permission read, write, execute

Example:Original permissions: mode user group other rw-r--r-- rw- r-- r--

$ chmod u+x,g+x,o+x file or $ chmod +x fileFinal permissions: mode user group other rwxr-xr-x rwx r-x r-xwww.scmGalaxy.com, Author - Rajesh Kumar

61

Page 62: Basic Unix

Change Permissions(Octal Notation) File and directory permissions can also be specified as an octal number:

Read Permission :4

Write Permission :2

Execute Permission:1

We can just add the numbers to specify the permission for each category

Example: 6 means read and write, 7 means read, write and execute

eg:

$ chmod 664 f1 will give read and write permissions for owner and group while only read for others

www.scmGalaxy.com, Author - Rajesh Kumar

62

Page 63: Basic Unix

Default Permissions

The default protections for newly created files and directories are:

File -rw-r—r-- 644

Directory drwxr-xr-x 755

These default settings may be modified by changing the umask value.

www.scmGalaxy.com, Author - Rajesh Kumar

63

Page 64: Basic Unix

umask - Permission Mask

Umask specifies what permission bits will be set on a new file or directory when created.

New Directory: 777 – 022 755 rwxr-xr-x

New File : 666 – 022 644 rw-r—r—

The default value of umask is set in /etc/profile. This can be changed for all the users or a particular user

www.scmGalaxy.com, Author - Rajesh Kumar

64

Page 65: Basic Unix

chown - Change File Ownership

Syntax: chown owner [:group] filename ...

Example: $ id uid=101 (user1), gid=101 (group1) $ cp f1 /tmp/user2/f1 $ ls -l /tmp/user2/f1 -rw-r----- 1 user1 group1 3967 Jan 24 13:13 f1 $ chown user2 /tmp/user2/f1 $ ls -l /tmp/user2/f1 -rw-r----- 1 user2 class 3967 Jan 24 13:13 f1

Only the owner of a file (or root) can change the ownership of the file.

Changes owner of a file(s) and, optionally, the group ID

www.scmGalaxy.com, Author - Rajesh Kumar

65

Page 66: Basic Unix

The chgrp CommandSyntax: chgrp newgroup filename ...

Example: $ id uid=303 (user3), gid=300 (class) $ ls -l f3 -rw-r----- 1 user3 class 3967 Jan 24 13:13 f3 $ chgrp class2 f3 $ ls -l f3 -rw-r----- 1 user3 class2 3967 Jan 24 13:13 f3 $ chown user2 f3 $ ls -l f3 -rw-r----- 1 user2 class2 3967 Jan 24 13:13 f3

www.scmGalaxy.com, Author - Rajesh Kumar

66

Page 67: Basic Unix

su - Switch User IdSyntax: su [user_name]

Example: $ ls -l f1 -rwxr-x--- 1 user1 group1 3967 Jan 24 23:13 class_setup $ id uid=303 (user1), gid=300 (group1)

$ su – user2 Password: $ id uid=400 (user2), gid=300 (group1)

Change your effective user ID and group ID

www.scmGalaxy.com, Author - Rajesh Kumar

67

Page 68: Basic Unix

Special File Permissions – setuid, setgid, sticky bit

setuid – changes the effective user id of the user to the owner of the program chmod u+s f1 or – chmod 4744 f1

setgid – changes the effective group id of the user to the group of the program chmod g+s f1 or chmod 2744 f1

sticky bit – ensures the deletion of files by only file owner in a public writable directory chmod +t f1 or Chmod 1744 f1

www.scmGalaxy.com, Author - Rajesh Kumar

68

Page 69: Basic Unix

vi Editor

Module 6

www.scmGalaxy.com, Author - Rajesh Kumar

69

Page 70: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

What Is vi? Starting and Ending a vi Session Cursor Control Commands Input Mode: i, a, O, o Deleting Text: x, dw, dd, dG Copying, moving and changing Text Searching for Text: /, n, N Find and Replace

www.scmGalaxy.com, Author - Rajesh Kumar

70

Page 71: Basic Unix

• A screen-oriented text editor• Included with most UNIX system distributions• Command driven• Categories of commands include

– General administration– Cursor movement– Insert text– Delete text– Paste text– Modify text

What Is vi?

www.scmGalaxy.com, Author - Rajesh Kumar

71

Page 72: Basic Unix

Starting and Ending a vi Session

vi [filename] Start a vi edit session of file

Example:

$ vi testfile - If the file doesn’t exist, it will be created - Otherwise vi will open the existing file

All modifications are made to the copy of the file brought into memory.

:wq or :x or <shift-zz> write and quit

:w write

:q quit

:q! Quit without savingwww.scmGalaxy.com, Author - Rajesh Kumar

72

Page 73: Basic Unix

Cursor Control Commands

$w,Wl<right-arrow>

<down-arrow>

j

L

<ctrl-f>

G

1G

<ctrl-b>

H

k

<up-arrow>

0 b,B h <left-arrow>

www.scmGalaxy.com, Author - Rajesh Kumar

73

Page 74: Basic Unix

Input Mode: i, a, O, o

i  will insert character at the present cursor positionI will insert character at the beginning of the linea will append character at the present cursor position A will append character at the end of the line

o  will insert a blank line belowO will insert a blank line above

www.scmGalaxy.com, Author - Rajesh Kumar

74

Page 75: Basic Unix

Deleting Text: x, dw, dd, dG

x  deletes the current character

dw  deletes the current word

dd  deletes the current line

dG delete all lines to end of file, including current line.

With any of these you can prefix a number

Example: 3dd will delete 3 lines

d$  to delete to the end of the line

d0 to delete to the start of the linewww.scmGalaxy.com, Author - Rajesh Kumar

75

Page 76: Basic Unix

Copying, moving and changing Text

yy copy the line

yw copy the word p will paste the yanked lines below

dw cut the word P will paste the yanked lines above  

dd cut the line

r will overwrite the current character

R will replace all text on the right of the cursor position

cw will replace only the current wordwww.scmGalaxy.com, Author - Rajesh Kumar

76

Page 77: Basic Unix

Searching for Text: /, n, N

/director will locate for the first occurrence of the pattern ‘director’

n to locate the next occurrence

N to locate the previous occurence

www.scmGalaxy.com, Author - Rajesh Kumar

77

Page 78: Basic Unix

Find and Replace

To find and replace the word director with member :

:1,$s/director/member/g

1,$ represents all lines in the file

g makes it truly global. g will ensure that all occuences in each line is replaced. Without g only the first occurrence of each line will be replaced.

www.scmGalaxy.com, Author - Rajesh Kumar

78

Page 79: Basic Unix

Shell Features

Module 7

www.scmGalaxy.com, Author - Rajesh Kumar

79

Page 80: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

Shell functionalities Commonly Used Shells BASH Shell Features Aliasing, Command History Re-entering Commands The User Environment Setting Shell Variables Variable Substitution Command Substitution Transferring Local Variables to the Environment Functions of a Shell before Command execution.

www.scmGalaxy.com, Author - Rajesh Kumar

80

Page 81: Basic Unix

Shell functionalities

command execution environment settings variable assignment variable substitution command substitution filename generation I/O redirection Interpretive programming language

www.scmGalaxy.com, Author - Rajesh Kumar

81

Page 82: Basic Unix

/bin/bash/bin/ksh/bin/sh/bin/csh/bin/rksh/bin/rsh/bin/tcsh/bin/zsh

Bash shellKorn shellBourne shellC ShellRestricted Korn shellRestricted Bourne shellAn amended version of the C shellThe Z shell

Commonly Used Shells

www.scmGalaxy.com, Author - Rajesh Kumar

82

Page 83: Basic Unix

• A shell user interface with some advanced features:

– Command aliasing– File name completion– Command history mechanism– Command line recall and editing– Job control– Enhanced cd capabilities– Advanced programming capabilities

BASH Shell Features

www.scmGalaxy.com, Author - Rajesh Kumar

83

Page 84: Basic Unix

Syntax: alias [name[=string]]

Examples: $ alias dir=ls $ alias mroe=more $ alias mstat=/home/tricia/projects/micron/status $ alias laser="lp -dlaser" $ laser fileX request id is laser-234 (1 file) $ alias displays aliases currently defined $ alias mroe displays value of alias mroe mroe=more

Aliasing

www.scmGalaxy.com, Author - Rajesh Kumar

84

Page 85: Basic Unix

• The shell keeps a history file of commands that you enter.• The history command displays the last 16 commands.• You can recall, edit, and re-enter commands previously entered.

Syntax: history [-n| a z] Display the command history.Example: $ history -2 list the last two commands

15 cd 16 more .profile

$ history 3 5 list command numbers 3 through 5

3 date 4 pwd 5 ls

Command History

www.scmGalaxy.com, Author - Rajesh Kumar

85

Page 86: Basic Unix

Example: $ history 3 5 list command numbers 3 through 5 3 date 4 pwd 5 ls $ r 4 run command number 4 pwd /home/kelley

Re-entering Commands

• You type r c to re-enter command number c.

www.scmGalaxy.com, Author - Rajesh Kumar

86

Page 87: Basic Unix

Syntax: envExample: $ env HOME=/home/gerry PWD=/home/gerry/develop/basics ... PATH=/usr/bin:/usr/contrib/bin:/usr/local/bin:\ /home/gerry/bin

The User Environment

• Your environment describes your session to the programs you run.

www.scmGalaxy.com, Author - Rajesh Kumar

87

Page 88: Basic Unix

The PATH variable– A list of directories where the shell will search for the

commands you type The TERM variable

– Describes your terminal type and screen size to the programs you run

$ env ... PATH=/usr/bin:/usr/contrib/bin:/usr/local/bin $ TERM=70092

Two Important Variables

www.scmGalaxy.com, Author - Rajesh Kumar

88

Page 89: Basic Unix

.

Setting Shell Variables

.

.

.

Syntax: name=value

Example:

color=blue PATH=$PATH:/usr/ucb

www.scmGalaxy.com, Author - Rajesh Kumar

89

Page 90: Basic Unix

$ echo $PATH/usr/bin:/usr/contrib/bin:/usr/local/bin$ PATH=$PATH:$HOME:.$ echo $PATH/usr/bin:/usr/contrib/bin:/usr/local/bin:/home/user3:.$ echo $HOME/home/user3$ file_name=$HOME/file1$ more $file_name<contents of /home/user3/file1>

Variable Substitution

www.scmGalaxy.com, Author - Rajesh Kumar

90

Page 91: Basic Unix

Syntax: $(command)

Example:

$ dt=date This will store the string date in the variable dt not the value

$ dt=$(date) This will do command substitution and store the result of date command in the variable dt

note: instead of $(date) we can also use `date`

Command Substitution

www.scmGalaxy.com, Author - Rajesh Kumar

91

Page 92: Basic Unix

.

$ echo $HOME/home/user3

$ envHOME=/home/user3….SHELL=/usr/bin/sh

$ setHOME=/home/user3PATH=/usr/bin:/usr/contrib/bin:/usr/local/bin….color=lavendercount=3dir_name=/home/user3/tree

$ unset dir_name

Displaying Variable Values

www.scmGalaxy.com, Author - Rajesh Kumar

92

Page 93: Basic Unix

Transferring Local Variables to the Environment

Syntax: export variable Transfer variable to environment

www.scmGalaxy.com, Author - Rajesh Kumar

93

Page 94: Basic Unix

Functions of a Shell before Command execution.

Searches for a command Substitutes Shell variable values. Command substitution, I/O redirection Interpreted programming interface

www.scmGalaxy.com, Author - Rajesh Kumar

94

Page 95: Basic Unix

Standard I/O Redirection

Module 8

www.scmGalaxy.com, Author - Rajesh Kumar

95

Page 96: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

The Standard Files Input Redirection Output Redirection Creating a file with cat Error Redirection Combined Redirection Split Outputs

www.scmGalaxy.com, Author - Rajesh Kumar

96

Page 97: Basic Unix

The Standard Files

Standard Input File (0) Keyboard

Standard Output File (1) Monitor

Standard Error File (2) Monitor

operators:

standard input redirection 0< or <

standard output redirection 1> or >

standard Error redirection 2>

www.scmGalaxy.com, Author - Rajesh Kumar

97

Page 98: Basic Unix

Input Redirection

Default standard input

$ mail user1

subject: Hi

Test mail

<ctrl-d>

Redirect Input from a file: <

$ mail user1 < letter

www.scmGalaxy.com, Author - Rajesh Kumar

98

Page 99: Basic Unix

Output Redirection

Default standard output:$ ls f1 f2 f3

Redirect output from a file: >$ ls > ls.out

Redirecting and appending output to a file: >>$ who >> who.out

www.scmGalaxy.com, Author - Rajesh Kumar

99

Page 100: Basic Unix

Creating a file with catWhile normally used to list the contents of files, using cat with redirection can be used to create a file

$ lsfile1 file2 file3

Using redirection

$ cat > newfilefile created by using the output redirection<ctrl-d>

$ lsfile1 file2 file3 newfilewww.scmGalaxy.com, Author - Rajesh Kumar

100

Page 101: Basic Unix

Error Redirection

Default standard error:

$ cat file1 file3

This is file1

cat: cannot open file2

Redirecting error output to a file: 2> (To append: 2>>)

$ cat file1 file3 2>err

This is file1

$ cat err

cat: cannot open file2

$ cat file1 file3 2> /dev/nullwww.scmGalaxy.com, Author - Rajesh Kumar

101

Page 102: Basic Unix

Combined Redirection

Combined redirects: $ command > outfile 2>errfile <infile $ command >> appendfile 2 >> errorfile <infile

Association Examples: $ command > outfile 2 >&1

note: This is NOT the same as above $ command 2>&1 >outfile

www.scmGalaxy.com, Author - Rajesh Kumar

102

Page 103: Basic Unix

Split Outputs

The tee command reads standard input and sends the data to both standard output and a file.

Example:

$ ls | tee ls.save | wc –l

www.scmGalaxy.com, Author - Rajesh Kumar

103

Page 104: Basic Unix

Module 9

Filters & other commands

www.scmGalaxy.com, Author - Rajesh Kumar

104

Page 105: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

grep, sort, find ,cut , tr ftp paste command split command uniq command diff(Differential file comparator) Command cmp command file command tar (tape archive program) Restoring Files

www.scmGalaxy.com, Author - Rajesh Kumar

105

Page 106: Basic Unix

grep

Search for lines matching specified pattern

syntax:

grep [options] pattern [file1 file2 …..]

Example:

emp.dat

Robin Bangalore

John Chennai

Rina Bangalore

$ grep Bangalore emp.dat

Robin Bangalore

Rina Bangalorewww.scmGalaxy.com, Author - Rajesh Kumar

106

Page 107: Basic Unix

grep with Regular Expressions

grep ‘regular_expression’ file

Valid metacharacters

. Any single character

* Zero or more occurences of the preceding character

[aA] Enumeration: a or A

[a-f] Any one of the characters in the range of a through f

^a Any lines that start with a

z$ Any lines that end with zwww.scmGalaxy.com, Author - Rajesh Kumar

107

Page 108: Basic Unix

grep options

-v print lines that do not match

-c print only a count of matching lines

-l print only the names of the files with matching lines

-n number the matching lines

-i ignore the case of letters when making comparisons

-w do a whole word search

www.scmGalaxy.com, Author - Rajesh Kumar

108

Page 109: Basic Unix

sort command

The sort command sorts lines and writes the result to standard output:

$ sort [ -t delimiter] [+field[.column]] [options]

Options:

-d sorts in dictionary order. Only letters, digits and spaces are considered in comarisons

-r reverses the order of the specified sort

-n sorts numeric fields in arithmetic valuewww.scmGalaxy.com, Author - Rajesh Kumar

109

Page 110: Basic Unix

sort examples

$ cat animalsdog.2cat.4elephant.10rabbit.7

$ sort animalscat.4dog.2elephant.10rabbit.7

$ cat animals | sort +0.1rabbit.7cat.4elephant.10dog.2

$ cat animals | sort -t. -n +1dog.2cat.4rabbit.7elephant.10

www.scmGalaxy.com, Author - Rajesh Kumar

110

Page 111: Basic Unix

find command

Search one or more directory structures for files that meet certain specified criteria

Display the names of matching files or execute commands against those files

find path expression

Examples:$ find / -name file1 ---search for files in whole system with name file1$ find / -user user1 –exec rm { } \; ---search for the

files owned by user1 and delete them$ find / -user user1 –ok rm { } \; ---search for the

files owned by user1 and delete them interactively

www.scmGalaxy.com, Author - Rajesh Kumar

111

Page 112: Basic Unix

find options

-type f ordinary filed directory

-size +n larger than "n" blocks-n smaller than "n" blocks n equal to "n" blocks

-mtime +x modified more than "x" days ago-x modified less than "x" days ago

-perm onum access permissions match "onum"mode access permissin match "mode"

-user user1 finds files owned by "user1"

-o logical "or"

-newer ref searches for files that are newer than the reference file.www.scmGalaxy.com, Author - Rajesh Kumar

112

Page 113: Basic Unix

cut command

Used to cut fields from each line of a file or columns of a table

cut –d: -f1,5 /etc/passwdcut –c2 test second character of each line cut –c-2 test first 2 characters of each line

www.scmGalaxy.com, Author - Rajesh Kumar

113

Page 114: Basic Unix

tr command

Used to substitute the values

tr [a-z] [A-Z] will convert each small letter to caps

cat test | tr [a-z] [A-Z] will convert the small letters to caps in display

tr –s “ “ will squeeze multiple space occurences of space into one

www.scmGalaxy.com, Author - Rajesh Kumar

114

Page 115: Basic Unix

ftpThe ftp Command Syntax :

$ ftp hostname

get Gets a file from the remote computer.

put Sends a local file to the remote system

mget get multiple files from the remote system

mput Sends multiple files to the remote system

cd changes the directory in the remote system

lcd changes the directory in the local system

ls Lists files on the remote computer.

? Lists all ftp commands

help command Display a very brief help message for command.

bye Exits ftp.

www.scmGalaxy.com, Author - Rajesh Kumar

115

Page 116: Basic Unix

The paste commandUsed to paste files vertically

eg. file1 file2 paste file1 file2

name address age name address age

ram mvm 29 ram mvm 29

raghu rjnagar 25 raghu rjnagar 25

(To rearrange f1 f2 f3 to f3 f2 f1, cut each field,put into file then paste)

By default paste uses the tab character for pasting files, but –d to specify one

eg. paste –d \| file1 file2

name address|age

ram mvm|29

raghu rjnagar|25www.scmGalaxy.com, Author - Rajesh Kumar

116

Page 117: Basic Unix

The split command

Used to split up the files:

This command breaks up the input into several equi line segments.

by defalult, split breaks a file into 1000 line pieces(or whatever is left)

split creates files like xaa,xab,xac …. xaz then xba, xbb …. xbz and … xzz . So there can be 676(26*26) files

split –5 chap (here the chap file is broken into files of 5 lines size)

split chap small (the file names will be smallaa,smallab …. smallzz)

www.scmGalaxy.com, Author - Rajesh Kumar

117

Page 118: Basic Unix

The uniq command• used in EDP environment

• to clear the duplicate entries by mistakes

eg. dept.list 01|accounts|6213

01|accounts|6213

02|admin|5423

03|marketing|6521

03|marketing|6521

uniq dept.list 01|accounts|6213

02|admin|5423

03|marketing|6521

The input to uniq must be ordered data. So sort and send the data

sort dept.list | uniq -uniqlist (uniqlist is the output file)www.scmGalaxy.com, Author - Rajesh Kumar

118

Page 119: Basic Unix

The diff(Differential file comparator) Command

Analyzes text files

Reports the differences between files

diff [-options] file1 file2

www.scmGalaxy.com, Author - Rajesh Kumar

119

Page 120: Basic Unix

The cmp command

$ cmp names names.oldnames names.old differ: byte 6, line 1

$cmp -l names names.old6 12 1517 102 1568 157 145.........cmp: EOF on names

www.scmGalaxy.com, Author - Rajesh Kumar

120

Page 121: Basic Unix

The file commandThe file command tells the type of file

Example:$ file /usr/bun/vi/usr/bin/vi:executable (RISC system/6000) or object module

$ file c1c1: ascii text

$ file /usr/bin/usr/bin: directorywww.scmGalaxy.com, Author - Rajesh Kumar

121

Page 122: Basic Unix

create a disk archive that contains a group of files or an entire directory structure

-c copy-x extract-t list [only one can be present at a time]-f to specify the device name

tar [–]cvf etc.tar /etc/*

tar (tape archive program)

www.scmGalaxy.com, Author - Rajesh Kumar

122

Page 123: Basic Unix

tar –xvf tarfile

Example: tar –xvf etc.tar

selective extractiontar –xvf etc.tar /etc/passwd

tar –tvf etc.tar will display the archive

Restoring Files

www.scmGalaxy.com, Author - Rajesh Kumar

123

Page 124: Basic Unix

Module 10

Controlling Processes

www.scmGalaxy.com, Author - Rajesh Kumar

124

Page 125: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

Monitoring Process Controlling Processes Terminating Processes Kill Signals Running Long Processes Job Control

www.scmGalaxy.com, Author - Rajesh Kumar

125

Page 126: Basic Unix

Monitoring Process

The ps command dislays process status information

$ ps -f

UID PID PPID ... TTY ... COMMANDjohn 202 1 ... tty0 ... -kshjohn 204 202 ... tty0 ... kshjohn 210 204 ... yyu0 ... ls -R /john 212 204 ... tty0 ... ps -f

www.scmGalaxy.com, Author - Rajesh Kumar

126

Page 127: Basic Unix

Controlling Processes

Foreground Processes:

$ ls -lR / >lsout

Background Processes:

$ ls -lR / >lsout &

www.scmGalaxy.com, Author - Rajesh Kumar

127

Page 128: Basic Unix

Terminating Processes

Foreground Processes:

ctrl-c Interrupt key, cancels a forground process

kill Sometimes the kill command is used to terminate foreground processes

Background Processes:

kill kill is the only way to terminate background processes

www.scmGalaxy.com, Author - Rajesh Kumar

128

Page 129: Basic Unix

Kill Signals

Sig Meaning

01 hangup- you logged out while the process was still running02 interrupt- you pressed the interrupt(break) key sequence ctrl-c03 quit -you pressed the quit key sequence ctrl-\

09 Kill signal:The most powerful and risky signal that can be sentSignal cannot be avoided or ignored!

15 Termination signal(Default): Stop a processSignal can be handled by programs

www.scmGalaxy.com, Author - Rajesh Kumar

129

Page 130: Basic Unix

Running Long Processes

The nohup command will prevent a process from being killed if you log off the system before it completes:

$ nohup ls -lR / >lsout & [1] 100

If you do not redirect output, nohup will redirect output to a file nohup.out

$ nohup ls -lR / & [1] 102Sending output to nohup.out

www.scmGalaxy.com, Author - Rajesh Kumar

130

Page 131: Basic Unix

Job Control

jobs Lists all jobs

<ctrl-z> Suspends foreground task

fg %jobnumber Execute job in foreground

bg %jobnumber Execute job in background

stop %jobnumber Suspends background task

www.scmGalaxy.com, Author - Rajesh Kumar

131

Page 132: Basic Unix

Job Control Examples

$ ls -R / > out 2> errfile & [1] 273

$ jobs [1] + Running ls -R / > out 2>errfile &

$ fg %1ls -R / > out 2>errfile<ctrl-z>[1] + Stopped (SIGTSTP) ls -R / >out 2>errfile &

$ bg %1% jobs[1] + Running ls -R / >out 2>errfile & $ kill %1[1] + Terminating ls -R / >out 2>errfile &www.scmGalaxy.com, Author - Rajesh Kumar

132

Page 133: Basic Unix

Module 11

Shell Programming Concepts

www.scmGalaxy.com, Author - Rajesh Kumar

133

Page 134: Basic Unix

Objectives

Upon completing this module you should be able to understand the following:

echo & read commands Command Line Arguments The logical operators && and || The if Conditional Numeric comparison with test numeric, string and file comparison The case CONDITIONAL expr: Computation Command Substitution sleep & wait while loop, until and for loops

www.scmGalaxy.com, Author - Rajesh Kumar

134

Page 135: Basic Unix

echo & read commands

echo used to display messages on the screen

read used to accept values from the users, make programming interactive

eg.

echo “Enter ur name “

read name

echo “Good Morning $name”

www.scmGalaxy.com, Author - Rajesh Kumar

135

Page 136: Basic Unix

Command Line Arguments

Shell programs can accept values through

1. read [Interactive –used when there are more inputs]

2. From the command Line when u execute it[Non interactive- used when only a few inputs are there]

For eg. sh1 20 30 Here 20 & 30 are the command Line arguments.

Command Line args are stored in Positional parameters

$1 contains the first argument, $2 the second, $3 the third etc.

$0 contains the name of the file, $# stores the count of args

$* displays all the argswww.scmGalaxy.com, Author - Rajesh Kumar

136

Page 137: Basic Unix

An example of Command Line args.

#! /bin/bash

echo “Program: $0”

echo “The number of args specified is $#”

echo “The args are $*”

sh sh1 prog1 prog2

www.scmGalaxy.com, Author - Rajesh Kumar

137

Page 138: Basic Unix

The parameter $?

$? can be used to know the exit value of the previous command . This can be used in the shell scripts:

www.scmGalaxy.com, Author - Rajesh Kumar

138

Page 139: Basic Unix

The logical operators && and ||

These operators can be used to control the execution of command depending on the success/failure of the previous command

eg.

grep ‘director’ emp1.lst && echo “Pattern found in file”

grep ‘manager’ emp2.lst || echo “pattern not found”

or grep ‘director’ emp.lst’ && echo “Pattern found” || echo “Pattern not found”

www.scmGalaxy.com, Author - Rajesh Kumar

139

Page 140: Basic Unix

exit : Script Termination

exit command used to prematurely terminate a program. It can even take args.

eg. grep “$1” $2 | exit 2

echo “Pattern found – Job over”

www.scmGalaxy.com, Author - Rajesh Kumar

140

Page 141: Basic Unix

The if Conditional

if condition is true

then

execute commands

else

execute commands

fi

else is not a must : if condition is true

then

execute commands

fi

www.scmGalaxy.com, Author - Rajesh Kumar

141

Page 142: Basic Unix

An example of if

eg1: if grep “director” emp.lst

then echo “Pattern found”

else echo “Pattern not found”

fi

Every if must have an accompanying then and fi, and optionally else

www.scmGalaxy.com, Author - Rajesh Kumar

142

Page 143: Basic Unix

Numeric comparison with test

test is used to check a condition and return true or false

Relational operators used by if

Operator Meaning

-eq Equal to

-ne Not equal to

-gt Greater than

-ge Gfreater than or equal to

-lt Less than

-le Less than or equal towww.scmGalaxy.com, Author - Rajesh Kumar

143

Page 144: Basic Unix

An example of test with numeric

echo “Enter age”

read age

if test $age –ge 18

then echo “Major”

else echo “Minor”

fi

www.scmGalaxy.com, Author - Rajesh Kumar

144

Page 145: Basic Unix

[ ] short hand for test

echo “Enter age”

read age

if [ $age –ge 18 ]

then echo “Major”

else echo “Minor”

fi

www.scmGalaxy.com, Author - Rajesh Kumar

145

Page 146: Basic Unix

if –elif :Multi-way Branching

if condition echo “Enter marks”

then execute commands read marks

elif condition if [ $marks –ge 80 ]

then execute commands then echo“Distinction”

elif condition elif [ $marks –ge 60 ]

then execute commands then echo “First Class”

else execute conditions else echo “Pass”

fi fi

can have as many elif , else is optional

www.scmGalaxy.com, Author - Rajesh Kumar

146

Page 147: Basic Unix

test String comparison

test with Strings uses = and !=

String Tests used by test

Test Exit Status

-n str1 true if str1 is not a null string

-z str1 true if str1 is a null string

s1 = s2true if s1 = s2

s1 != s2 true if s1 is not equal to s2

str1 true if str1 is assigned and not nullwww.scmGalaxy.com, Author - Rajesh Kumar

147

Page 148: Basic Unix

file tests

File related Tests with test

Test Exit Status

-e file True if file exists

-f file True if fie exists and is a regular file

-r file True if file exists and is readable

-w file True if file exists and is writable

-x file True if file exists and is executable

-d file True if file exists and is a directory

-s file True if the file exists and has a size >0

www.scmGalaxy.com, Author - Rajesh Kumar

148

Page 149: Basic Unix

The case CONDITIONAL

case used to match an expression for more than one alternatives and uses a compact construct to permit multi way branching

case expression in

pattern1) execute commands;;

pattern2) execute commands

esacwww.scmGalaxy.com, Author - Rajesh Kumar

149

Page 150: Basic Unix

An example for case

echo “1. List of files 2. Processes of user 2. Quit”

echo “Enter choice”

read choice

case “$choice” in

1) ls ;;

2) ps –f ;;

3) exit;;

*) echo “Wrong Choice”

esac www.scmGalaxy.com, Author - Rajesh Kumar

150

Page 151: Basic Unix

case Matching Multiple patterns

echo “Do u want to continue (y/n) “

read answer

case “$answer” in

y|Y) echo “Good” ;;

n|N) exit ;;

esac

case can also use wildcards like [yY][eE]* or [nN][oO]

www.scmGalaxy.com, Author - Rajesh Kumar

151

Page 152: Basic Unix

expr: Computation

Shell doesn’t have any compute features-depend on expr

expr 3 + 5

expr $x + $y

expr $x - $y

expr $x \* $y

expr &x / $y

expr $x % $y division gives only integers as expr

can handle only integerswww.scmGalaxy.com, Author - Rajesh Kumar

152

Page 153: Basic Unix

Command Substitution

x=5

x=`expr $x +1`

echo $x it will give 6

www.scmGalaxy.com, Author - Rajesh Kumar

153

Page 154: Basic Unix

sleep & wait

sleep 100 the program sleeps for 100 seconds

wait wait for completion of all background processes

wait 138 wait for completion of the process 138

www.scmGalaxy.com, Author - Rajesh Kumar

154

Page 155: Basic Unix

while loop

while condition is true

do

execute commands

done

eg. x=1

while test $x -le 10

do

echo $x

x=`expr $x + 1`

done (while true will set infinite condition)www.scmGalaxy.com, Author - Rajesh Kumar

155

Page 156: Basic Unix

until : while’s complement

x=1

until test $x –gt 10

do

echo $x

x=`expr $x + 1`

done

www.scmGalaxy.com, Author - Rajesh Kumar

156

Page 157: Basic Unix

For loopfor variable in list

do

execute commands

done

eg. for x in 1 2 3 4 5

do

echo “Value of x is $x”

done

www.scmGalaxy.com, Author - Rajesh Kumar

157

Page 158: Basic Unix

The list in for loop1. List from variables

for var in $PATH $HOME $MAIL

do

echo $var

done

2. List from Wild cards

for file in *.c

do

cc $file –o $file{x}

done

3. List from positional parameters

for pattern in $*

do

grep”$pattern” emp.lst || echo “pattern $pattern not found”

done

4. List from command substitution

for file in `cat clist`www.scmGalaxy.com, Author - Rajesh Kumar

158

Page 159: Basic Unix

Labs

1.develop a script that accepts a file name as argument and displays the last modification time if the file exists and a suitable message if it doesn’t.

2. write a script that accepts one or more file names as arguments, and converts them all to upper case provided they exist.

3. Devise a script that lists files by modification time when called with lm and by access time when called with la. By default the script should show the listing of all files in the current directory

4. Write a script that uses find to look for a file and echo a suitable message if the file is not found. You must not store the output of the find to a file.

5. use the “if then” construct to write a script that will check for at least two parameters present on the command line. Output an appropriate

error message.6. Write a shell script which will compare two numbers passed as command line

arguments and tell which one is bigger.7. Write a shell script which will add all the numbers between 0 and 9 and display the

result.8. Write a script which will give 4 choices to the user 1. ls 2. pwd 3. who 4. exit and

execute the command as per the users choice

www.scmGalaxy.com, Author - Rajesh Kumar

159

Page 160: Basic Unix

Labs contd.

9. Execute the date command with the proper arguments so that its output is in a mm-dd-yy format.

10. From your home directory, make the following directories with a single command line

d1, d1/d2, d1/d3, d1/d2/d411. create a file f1 in the home directory. Change the permissions to 777.12. create a file f2 in your home directory and set setuid and sticky bit

permissions on the file.13. Write the command which will display all the files in the system having

setuid set.14. write the command to find all the files in your home directory hierarchy

modified 1yr back and having a size more than 10 mb and delete the matching files interactively.

15. write two commands which will display all the ordinary files in the system

www.scmGalaxy.com, Author - Rajesh Kumar

160

Page 161: Basic Unix

Labs contd.

16. Write a script that lists all the start scripts in a specified rc#.d directory

a. Name the script rcscripts

b. Write the script so that it doesn’t require command-line arguments

c. For all start scripts in /etc/rc3.d directory print The script name The inode number of the script All other files under /etc with the same inode number

17.Print all entries from /etc/passwd for users who have ksh as their login shell

18. Print the lines from /etc/group that contain the pattern root preceded by the line number

19. Print the number of users in the system.

20. Print the users whose account is locked

www.scmGalaxy.com, Author - Rajesh Kumar

161