SlideShare a Scribd company logo
UNIX Basics www.scmGalaxy.com Author: Rajesh Kumar www.scmGalaxy.com,  Author - Rajesh Kumar
Contents 1.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 Kumar
Introduction to Unix Module 1 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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
UNIX Architecture – Kernel & Shell Shell Kernel Hardware User www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
Flavors of UNIX Digital Unix  IRIX SCO Open Server SCO UnixWare IBM -AIX HP - UX Sun - Solaris www.scmGalaxy.com,  Author - Rajesh Kumar
Clone of UNIX (LINUX) Red Hat  Calders SuSE Mandrake Debian www.scmGalaxy.com,  Author - Rajesh Kumar
Logging In and Basic Commands Module 2 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
Logging In and Out telnet 192.168.10.1 User: Password: exit or <ctrl>+<d> will terminate the login session www.scmGalaxy.com,  Author - Rajesh Kumar
Syntax: $ command [- options] [arguments]  Separation : mail –f  newmail not mail –  f newmail Order:  mail –f newmail  not mal newmail –f Multiple options: who –m –u  or who –mu  not who –m u Multiple arguments: mail team1 team2  not mail team1team2 Command Line Format www.scmGalaxy.com,  Author - Rajesh Kumar
$ echo 'hi >Good Morning‘ > is the default secondary prompt The Secondary Prompt www.scmGalaxy.com,  Author - Rajesh Kumar
Content of the Manual Pages NAME WARNINGS SYNOPSIS  EXAMPLES DESCRIPTION  AUTHOR RETURN VALUE FILES ERRORS SEE ALSO BUGS   etc. www.scmGalaxy.com,  Author - Rajesh Kumar
Syntax: man –[k|X]   keyword in which  X  is the number of one of the manual sections Examples: $ man ls  Display the “ls&quot; man page.  $ man -k cat  Display entries with keyword &quot;cat&quot;.   $ man passwd  Display the &quot;passwd&quot; man page-Section 1.   $ man 4 passwd  Display the &quot;passwd&quot; man page-Section 4.   The Online Manual www.scmGalaxy.com,  Author - Rajesh Kumar
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
Syntax : who     Reports information about users who are   currently logged on to a system Examples: $   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
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
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
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
The clear Command Syntax: clear Clears terminal screen www.scmGalaxy.com,  Author - Rajesh Kumar
finger Finger: 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
File System Module 3 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
a File System structure www.scmGalaxy.com,  Author - Rajesh Kumar Primary Superblock Backup Superblock Cylinder Group Block Inode Table Data Blocks
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
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
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
a Directory Files Directory Inode Table name inum  #  type  mode  links  user  group  date  size  loc d1  4   4  dir  755  2  user1  group1  Sep 5  9:30  512 f1  10  10  file  644  1  user1  group1  Sep 5  9:45  12  www.scmGalaxy.com,  Author - Rajesh Kumar
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 filesystems 2. can link to a directory www.scmGalaxy.com,  Author - Rajesh Kumar
a Device files A device file provides access to a device. # cd /devices/pci@1f,0/pci@1,1/ide@3 # ls -l brw------- 1 root sys 136, 0 Apr 3 11:11 dad@0,0:a Two types of device files: block device files character device file www.scmGalaxy.com,  Author - Rajesh Kumar
The File System Hierarchy / usr etc devices dev var tmp bin sbin ls who adm sadm dsk rdsk www.scmGalaxy.com,  Author - Rajesh Kumar
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
a File Path name A 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
pwd - Present Working Directory pwd prints the Current Directory www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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
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
The touch Command Updates 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  file1 www.scmGalaxy.com,  Author - Rajesh Kumar
Managing Files Module 4 www.scmGalaxy.com,  Author - Rajesh Kumar
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
File Characteristics File Type Permissions Links Owner Group Size Timestamp 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  f2 drwxr-xr-x  2  user3  class  1024  Jul 24 12:03  memo www.scmGalaxy.com,  Author - Rajesh Kumar
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 www.scmGalaxy.com,  Author - Rajesh Kumar CTRL + D
Syntax: more [ filename]... Display files one screen at a time Example: $ more funfile    .    .    .  --funfile (20%)--  Q  or q  Quit more Return  One more line   Space bar  One more page more - Display the Contents of a File www.scmGalaxy.com,  Author - Rajesh Kumar
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
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  testfile www.scmGalaxy.com,  Author - Rajesh Kumar
Syntax: cp [-i]  file1 new_file   Copy a file cp [-i]  file [file...] dest_dir   Copy files to a directory cp -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
Syntax: mv [-i]  file new_file   Rename a file mv [-i]  file [file...] dest_dir Move files to a directory mv [-i]  dir [dir...] dest_dir   Rename or move directories Example:  $ ls -F  $ mv note remind memo f1  f2* memo/ note remind  $ ls -F $ mv f1 file1  file1  memo/ $ ls -F  $ls -F memo file1  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
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
File Access Permissions Module 5 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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 file Permissions  ls (11, ls -l) chmod umask chown chgrp su Determine what access is granted on a file Change 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
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 f2 drwxr-xr-x 2  user3  class 1024  Jul 24 12:03 memo   |  |   owner  group www.scmGalaxy.com,  Author - Rajesh Kumar
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
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 file Final permissions: mode  user  group  other rwxr-xr-x  rwx  r-x  r-x www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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
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
The chgrp Command Syntax: 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
su - Switch User Id Syntax: 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
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
vi  Editor Module 6 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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 saving www.scmGalaxy.com,  Author - Rajesh Kumar
Cursor Control Commands $ w,W l <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
Input Mode: i, a, O, o i   will insert character at the present cursor position I  will insert character at the beginning of the line a  will append character at the present cursor position  A will append character at the end of the line o  will insert a blank line below O will insert a blank line above www.scmGalaxy.com,  Author - Rajesh Kumar
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 line www.scmGalaxy.com,  Author - Rajesh Kumar
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 word www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
Shell Features Module 7 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
/bin/bash /bin/ksh /bin/sh /bin/csh /bin/rksh /bin/rsh /bin/tcsh /bin/zsh Bash shell Korn shell Bourne shell C Shell Restricted Korn shell Restricted Bourne shell An amended version of the C shell The Z shell Commonly Used Shells www.scmGalaxy.com,  Author - Rajesh Kumar
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
Syntax: alias [ name[=string]] Examples: $ alias dir=ls $ alias mroe=more $ alias mstat=/home/tricia/projects/micron/status  $ alias laser=&quot;lp -dlaser&quot; $ 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
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
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
Syntax: env Example: $ 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
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
. Setting Shell Variables . . . Syntax: name=value Example: color=blue  PATH=$PATH:/usr/ucb www.scmGalaxy.com,  Author - Rajesh Kumar
$ 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
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
. $ echo $HOME /home/user3 $ env HOME=/home/user3 … . SHELL=/usr/bin/sh $ set HOME=/home/user3 PATH=/usr/bin:/usr/contrib/bin:/usr/local/bin … . color=lavender count=3 dir_name=/home/user3/tree $ unset dir_name Displaying Variable Values www.scmGalaxy.com,  Author - Rajesh Kumar
Transferring Local Variables  to the Environment Syntax: export  variable Transfer  variable  to environment www.scmGalaxy.com,  Author - Rajesh Kumar
  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
Standard I/O Redirection Module 8 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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
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
Creating a file with cat While normally used to list the contents of files, using  cat  with  redirection can be used to create a file $ ls file1  file2 file3 Using redirection   $ cat > newfile file created by using the output redirection <ctrl-d> $ ls file1 file2 file3 newfile www.scmGalaxy.com,  Author - Rajesh Kumar
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/null www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
Module 9 Filters & other commands www.scmGalaxy.com,  Author - Rajesh Kumar
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
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 Bangalore www.scmGalaxy.com,  Author - Rajesh Kumar
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 z www.scmGalaxy.com,  Author - Rajesh Kumar
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
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 value www.scmGalaxy.com,  Author - Rajesh Kumar
sort examples $ cat animals dog.2 cat.4 elephant.10 rabbit.7 $ sort animals cat.4 dog.2 elephant.10 rabbit.7 $ cat animals | sort +0.1 rabbit.7 cat.4 elephant.10 dog.2 $ cat animals | sort -t. -n +1 dog.2 cat.4 rabbit.7 elephant.10 www.scmGalaxy.com,  Author - Rajesh Kumar
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
find options -type f ordinary file d directory -size +n larger than &quot;n&quot; blocks -n smaller than &quot;n&quot; blocks   n equal to &quot;n&quot; blocks -mtime +x modified more than &quot;x&quot; days ago -x modified less than &quot;x&quot; days ago -perm onum access permissions match &quot;onum&quot; mode access permissin match &quot;mode&quot;  -user user1 finds files owned by &quot;user1&quot; -o logical &quot;or&quot; -newer ref searches for files that are newer than the  reference file. www.scmGalaxy.com,  Author - Rajesh Kumar
cut command Used to cut fields from each line of a file or columns of a table cut –d: -f1,5 /etc/passwd cut –c2 test  second character of each line  cut –c-2 test    first 2 characters of each line www.scmGalaxy.com,  Author - Rajesh Kumar
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
ftp The 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
The paste command Used 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|25 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
The  diff(Differential file comparator)  Command Analyzes text files Reports the differences between files diff [-options] file1 file2 www.scmGalaxy.com,  Author - Rajesh Kumar
The  cmp  command $ cmp names names.old names names.old differ: byte 6, line 1 $cmp -l names names.old 6  12  151 7  102  156 8  157  145 ... ... ... cmp: EOF on names www.scmGalaxy.com,  Author - Rajesh Kumar
The  file  command The file command tells the type of file Example: $ file /usr/bun/vi /usr/bin/vi:executable (RISC system/6000) or object module $ file c1 c1: ascii text $ file /usr/bin /usr/bin:  directory www.scmGalaxy.com,  Author - Rajesh Kumar
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
tar –xvf tarfile Example:  tar –xvf etc.tar selective extraction tar –xvf  etc.tar /etc/passwd tar –tvf  etc.tar  will display the archive Restoring Files www.scmGalaxy.com,  Author - Rajesh Kumar
Module 10 Controlling Processes www.scmGalaxy.com,  Author - Rajesh Kumar
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
Monitoring Process The  ps  command dislays process status information $ ps -f UID PID PPID ... TTY ... COMMAND john 202 1 ... tty0 ... -ksh john 204 202 ... tty0 ... ksh john 210 204 ... yyu0 ... ls -R / john 212 204 ... tty0 ... ps -f www.scmGalaxy.com,  Author - Rajesh Kumar
Controlling Processes Foreground Processes: $ ls -lR / >lsout Background Processes: $ ls -lR / >lsout & www.scmGalaxy.com,  Author - Rajesh Kumar
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
Kill Signals Sig Meaning 01 hangup- you logged out while the process was  still running 02 interrupt- you pressed the interrupt(break) key  sequence ctrl-c 03 quit -you pressed the quit key sequence ctrl-\ 09 Kill signal: The most powerful and risky signal that can be  sent Signal cannot be avoided or ignored! 15 Termination signal(Default): Stop a process Signal can be handled by programs www.scmGalaxy.com,  Author - Rajesh Kumar
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] 102 Sending output to nohup.out www.scmGalaxy.com,  Author - Rajesh Kumar
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
Job Control Examples $ ls -R / > out 2> errfile & [1] 273 $ jobs [1]  +  Running ls -R / > out 2>errfile & $ fg %1 ls -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
Module 11 Shell Programming Concepts www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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 args www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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
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
The if Conditiona l 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
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
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 to www.scmGalaxy.com,  Author - Rajesh Kumar
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
[ ] 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
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
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 = s2 true if s1 = s2 s1 != s2  true if s1 is not equal to s2 str1 true if str1 is assigned and not null www.scmGalaxy.com,  Author - Rajesh Kumar
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
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 esac www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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 integers www.scmGalaxy.com,  Author - Rajesh Kumar
Command Substitution x=5 x=`expr $x +1` echo $x it will give 6 www.scmGalaxy.com,  Author - Rajesh Kumar
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
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
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
For loop for 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
The list in for loop 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
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
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/d4 11. 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
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

More Related Content

What's hot (20)

PPTX
Unix ppt
sudhir saurav
 
PPTX
Linux file system
Md. Tanvir Hossain
 
PPTX
User management
Mufaddal Haidermota
 
PPT
Basic command ppt
Rohit Kumar
 
PPTX
Linux.ppt
onu9
 
PPTX
Bash shell scripting
VIKAS TIWARI
 
PPT
Scheduling algorithms
Chankey Pathak
 
PDF
Basic linux commands
Shakeel Shafiq
 
PDF
Linux File System
Anil Kumar Pugalia
 
PDF
Complete Guide for Linux shell programming
sudhir singh yadav
 
PPTX
Linux commands
Mannu Khani
 
PPTX
Linux operating system ppt
Achyut Sinha
 
PPT
Linux os and its features
Kadiresan Nagarattiname
 
PPTX
Linux process management
Raghu nath
 
PPT
Case study windows
Padam Banthia
 
PPTX
UNIX Operating System ppt
OECLIB Odisha Electronics Control Library
 
PPT
Linux presentation
Nikhil Jain
 
PPTX
Unix ppt
Dr Rajiv Srivastava
 
PPTX
Basic commands of linux
shravan saini
 
PDF
Presentation on linux
Veeral Bhateja
 
Unix ppt
sudhir saurav
 
Linux file system
Md. Tanvir Hossain
 
User management
Mufaddal Haidermota
 
Basic command ppt
Rohit Kumar
 
Linux.ppt
onu9
 
Bash shell scripting
VIKAS TIWARI
 
Scheduling algorithms
Chankey Pathak
 
Basic linux commands
Shakeel Shafiq
 
Linux File System
Anil Kumar Pugalia
 
Complete Guide for Linux shell programming
sudhir singh yadav
 
Linux commands
Mannu Khani
 
Linux operating system ppt
Achyut Sinha
 
Linux os and its features
Kadiresan Nagarattiname
 
Linux process management
Raghu nath
 
Case study windows
Padam Banthia
 
Linux presentation
Nikhil Jain
 
Basic commands of linux
shravan saini
 
Presentation on linux
Veeral Bhateja
 

Viewers also liked (20)

PPTX
Unix Operating System
subhsikha
 
PPTX
Unix operating system
ABhay Panchal
 
PPTX
Unix slideshare
Mohan Krishna Kona
 
PPTX
Unix OS & Commands
Mohit Belwal
 
PPTX
UNIX/Linux training
Michael Olafusi
 
PPTX
UNIX Operating System
Unless Yuriko
 
PPT
Unix/Linux Basic Commands and Shell Script
sbmguys
 
DOCX
Introduction to unix
sudheer yathagiri
 
DOCX
Unix operating system
midhunjose4u
 
PDF
Unix - An Introduction
Deepanshu Gahlaut
 
DOC
Some basic unix commands
aaj_sarkar06
 
PPTX
Unix
Erm78
 
PPT
Unix(introduction)
meashi
 
PDF
Unix Command Line Productivity Tips
Keith Bennett
 
ODP
intro unix/linux 02
duquoi
 
PPT
Unix memory management
Tech_MX
 
PPT
Vi editor in linux
Bhumivaghasiya
 
PPS
QSpiders - Unix Operating Systems and Commands
Qspiders - Software Testing Training Institute
 
PPT
UNIX and Linux - an introduction by Mathias Homann
Mathias Homann
 
Unix Operating System
subhsikha
 
Unix operating system
ABhay Panchal
 
Unix slideshare
Mohan Krishna Kona
 
Unix OS & Commands
Mohit Belwal
 
UNIX/Linux training
Michael Olafusi
 
UNIX Operating System
Unless Yuriko
 
Unix/Linux Basic Commands and Shell Script
sbmguys
 
Introduction to unix
sudheer yathagiri
 
Unix operating system
midhunjose4u
 
Unix - An Introduction
Deepanshu Gahlaut
 
Some basic unix commands
aaj_sarkar06
 
Unix
Erm78
 
Unix(introduction)
meashi
 
Unix Command Line Productivity Tips
Keith Bennett
 
intro unix/linux 02
duquoi
 
Unix memory management
Tech_MX
 
Vi editor in linux
Bhumivaghasiya
 
QSpiders - Unix Operating Systems and Commands
Qspiders - Software Testing Training Institute
 
UNIX and Linux - an introduction by Mathias Homann
Mathias Homann
 
Ad

Similar to Basic Unix (20)

PDF
Unix Basics
siri_gaddipati
 
PPSX
Unix environment [autosaved]
Er Mittinpreet Singh
 
PDF
Introduction to Linux with Focus on Raspberry Pi
David Horvath
 
PDF
Linux Notes-1.pdf
asif64436
 
DOCX
lec1.docx
ismailaboshatra
 
PPTX
UNIX.pptx
P S Rani
 
PPTX
Chapter 2 unix system commands
LukasJohnny
 
PPT
Online Training in Unix Linux Shell Scripting in Hyderabad
Ravikumar Nandigam
 
PPTX
Linux Presentation
Muhammad Qazi
 
PPTX
Linux powerpoint
bijanshr
 
PPT
Karkha unix shell scritping
chockit88
 
DOC
58518522 study-aix
homeworkping3
 
PDF
Basics of Linux Commands, Git and Github
Devang Garach
 
PDF
Lecture1 2 intro-unix
nghoanganh
 
PPTX
Red hat linux essentials
Haitham Raik
 
PPTX
Chapter 2 Linux File System and net.pptx
alehegn9
 
PPTX
Rishav Mishra final presentation on UNIX Final.pptx
rishavmishra041
 
PPT
unix.ppt
jeronimored
 
PPTX
Unix_Introduction_BCA.pptx the very basi
Priyadarshini648418
 
PPTX
Unix environment [autosaved]
Er Mittinpreet Singh
 
Unix Basics
siri_gaddipati
 
Unix environment [autosaved]
Er Mittinpreet Singh
 
Introduction to Linux with Focus on Raspberry Pi
David Horvath
 
Linux Notes-1.pdf
asif64436
 
lec1.docx
ismailaboshatra
 
UNIX.pptx
P S Rani
 
Chapter 2 unix system commands
LukasJohnny
 
Online Training in Unix Linux Shell Scripting in Hyderabad
Ravikumar Nandigam
 
Linux Presentation
Muhammad Qazi
 
Linux powerpoint
bijanshr
 
Karkha unix shell scritping
chockit88
 
58518522 study-aix
homeworkping3
 
Basics of Linux Commands, Git and Github
Devang Garach
 
Lecture1 2 intro-unix
nghoanganh
 
Red hat linux essentials
Haitham Raik
 
Chapter 2 Linux File System and net.pptx
alehegn9
 
Rishav Mishra final presentation on UNIX Final.pptx
rishavmishra041
 
unix.ppt
jeronimored
 
Unix_Introduction_BCA.pptx the very basi
Priyadarshini648418
 
Unix environment [autosaved]
Er Mittinpreet Singh
 
Ad

More from Rajesh Kumar (20)

PDF
Fundamental of apache maven
Rajesh Kumar
 
PDF
Git and github fundamental
Rajesh Kumar
 
PDF
Tools for quality matrix and kloc
Rajesh Kumar
 
PDF
Cast vs sonar
Rajesh Kumar
 
PDF
Cast vs sonar
Rajesh Kumar
 
PDF
Testing in a glance
Rajesh Kumar
 
PDF
Rpm cheatbook
Rajesh Kumar
 
PDF
Code coverage & tools
Rajesh Kumar
 
PDF
Scm process assessment guide
Rajesh Kumar
 
PPT
Cruise control
Rajesh Kumar
 
PPT
Cloud computer
Rajesh Kumar
 
PPTX
Branching and Merging Practices
Rajesh Kumar
 
PPSX
SCM Process and smartBuild
Rajesh Kumar
 
PPT
Why Scm
Rajesh Kumar
 
PPT
Version Control With CVS
Rajesh Kumar
 
PPT
Using Ant To Build J2 Ee Applications
Rajesh Kumar
 
PPT
Software Configuration Management And CVS
Rajesh Kumar
 
PPT
Scm With Mks Integrity
Rajesh Kumar
 
PPT
Introduction To Software Configuration Management
Rajesh Kumar
 
PPT
Introduction To Ant
Rajesh Kumar
 
Fundamental of apache maven
Rajesh Kumar
 
Git and github fundamental
Rajesh Kumar
 
Tools for quality matrix and kloc
Rajesh Kumar
 
Cast vs sonar
Rajesh Kumar
 
Cast vs sonar
Rajesh Kumar
 
Testing in a glance
Rajesh Kumar
 
Rpm cheatbook
Rajesh Kumar
 
Code coverage & tools
Rajesh Kumar
 
Scm process assessment guide
Rajesh Kumar
 
Cruise control
Rajesh Kumar
 
Cloud computer
Rajesh Kumar
 
Branching and Merging Practices
Rajesh Kumar
 
SCM Process and smartBuild
Rajesh Kumar
 
Why Scm
Rajesh Kumar
 
Version Control With CVS
Rajesh Kumar
 
Using Ant To Build J2 Ee Applications
Rajesh Kumar
 
Software Configuration Management And CVS
Rajesh Kumar
 
Scm With Mks Integrity
Rajesh Kumar
 
Introduction To Software Configuration Management
Rajesh Kumar
 
Introduction To Ant
Rajesh Kumar
 

Recently uploaded (20)

PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 

Basic Unix

  • 1. UNIX Basics www.scmGalaxy.com Author: Rajesh Kumar www.scmGalaxy.com, Author - Rajesh Kumar
  • 2. Contents 1.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 Kumar
  • 3. Introduction to Unix Module 1 www.scmGalaxy.com, Author - Rajesh Kumar
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. UNIX Architecture – Kernel & Shell Shell Kernel Hardware User www.scmGalaxy.com, Author - Rajesh Kumar
  • 8. 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
  • 9. 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
  • 10. Flavors of UNIX Digital Unix IRIX SCO Open Server SCO UnixWare IBM -AIX HP - UX Sun - Solaris www.scmGalaxy.com, Author - Rajesh Kumar
  • 11. Clone of UNIX (LINUX) Red Hat Calders SuSE Mandrake Debian www.scmGalaxy.com, Author - Rajesh Kumar
  • 12. Logging In and Basic Commands Module 2 www.scmGalaxy.com, Author - Rajesh Kumar
  • 13. 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
  • 14. 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
  • 15. Logging In and Out telnet 192.168.10.1 User: Password: exit or <ctrl>+<d> will terminate the login session www.scmGalaxy.com, Author - Rajesh Kumar
  • 16. Syntax: $ command [- options] [arguments] Separation : mail –f newmail not mail – f newmail Order: mail –f newmail not mal newmail –f Multiple options: who –m –u or who –mu not who –m u Multiple arguments: mail team1 team2 not mail team1team2 Command Line Format www.scmGalaxy.com, Author - Rajesh Kumar
  • 17. $ echo 'hi >Good Morning‘ > is the default secondary prompt The Secondary Prompt www.scmGalaxy.com, Author - Rajesh Kumar
  • 18. Content of the Manual Pages NAME WARNINGS SYNOPSIS EXAMPLES DESCRIPTION AUTHOR RETURN VALUE FILES ERRORS SEE ALSO BUGS etc. www.scmGalaxy.com, Author - Rajesh Kumar
  • 19. Syntax: man –[k|X] keyword in which X is the number of one of the manual sections Examples: $ man ls Display the “ls&quot; man page. $ man -k cat Display entries with keyword &quot;cat&quot;. $ man passwd Display the &quot;passwd&quot; man page-Section 1. $ man 4 passwd Display the &quot;passwd&quot; man page-Section 4. The Online Manual www.scmGalaxy.com, Author - Rajesh Kumar
  • 20. 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
  • 21. Syntax : who Reports information about users who are currently logged on to a system Examples: $ 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. The clear Command Syntax: clear Clears terminal screen www.scmGalaxy.com, Author - Rajesh Kumar
  • 26. finger Finger: 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
  • 27. File System Module 3 www.scmGalaxy.com, Author - Rajesh Kumar
  • 28. 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
  • 29. 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
  • 30. a File System structure www.scmGalaxy.com, Author - Rajesh Kumar Primary Superblock Backup Superblock Cylinder Group Block Inode Table Data Blocks
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. a Directory Files Directory Inode Table name inum # type mode links user group date size loc d1 4 4 dir 755 2 user1 group1 Sep 5 9:30 512 f1 10 10 file 644 1 user1 group1 Sep 5 9:45 12 www.scmGalaxy.com, Author - Rajesh Kumar
  • 35. 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 filesystems 2. can link to a directory www.scmGalaxy.com, Author - Rajesh Kumar
  • 36. a Device files A device file provides access to a device. # cd /devices/pci@1f,0/pci@1,1/ide@3 # ls -l brw------- 1 root sys 136, 0 Apr 3 11:11 dad@0,0:a Two types of device files: block device files character device file www.scmGalaxy.com, Author - Rajesh Kumar
  • 37. The File System Hierarchy / usr etc devices dev var tmp bin sbin ls who adm sadm dsk rdsk www.scmGalaxy.com, Author - Rajesh Kumar
  • 38. 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
  • 39. a File Path name A 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
  • 40. pwd - Present Working Directory pwd prints the Current Directory www.scmGalaxy.com, Author - Rajesh Kumar
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. The touch Command Updates 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 file1 www.scmGalaxy.com, Author - Rajesh Kumar
  • 46. Managing Files Module 4 www.scmGalaxy.com, Author - Rajesh Kumar
  • 47. 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
  • 48. File Characteristics File Type Permissions Links Owner Group Size Timestamp 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 f2 drwxr-xr-x 2 user3 class 1024 Jul 24 12:03 memo www.scmGalaxy.com, Author - Rajesh Kumar
  • 49. 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 www.scmGalaxy.com, Author - Rajesh Kumar CTRL + D
  • 50. Syntax: more [ filename]... Display files one screen at a time Example: $ more funfile . . . --funfile (20%)-- Q or q Quit more Return One more line Space bar One more page more - Display the Contents of a File www.scmGalaxy.com, Author - Rajesh Kumar
  • 51. 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
  • 52. 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 testfile www.scmGalaxy.com, Author - Rajesh Kumar
  • 53. Syntax: cp [-i] file1 new_file Copy a file cp [-i] file [file...] dest_dir Copy files to a directory cp -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
  • 54. Syntax: mv [-i] file new_file Rename a file mv [-i] file [file...] dest_dir Move files to a directory mv [-i] dir [dir...] dest_dir Rename or move directories Example: $ ls -F $ mv note remind memo f1 f2* memo/ note remind $ ls -F $ mv f1 file1 file1 memo/ $ ls -F $ls -F memo file1 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
  • 55. 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
  • 56. File Access Permissions Module 5 www.scmGalaxy.com, Author - Rajesh Kumar
  • 57. 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
  • 58. 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 file Permissions ls (11, ls -l) chmod umask chown chgrp su Determine what access is granted on a file Change 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
  • 59. 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 f2 drwxr-xr-x 2 user3 class 1024 Jul 24 12:03 memo | | owner group www.scmGalaxy.com, Author - Rajesh Kumar
  • 60. 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
  • 61. 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 file Final permissions: mode user group other rwxr-xr-x rwx r-x r-x www.scmGalaxy.com, Author - Rajesh Kumar
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. The chgrp Command Syntax: 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
  • 67. su - Switch User Id Syntax: 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
  • 68. 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
  • 69. vi Editor Module 6 www.scmGalaxy.com, Author - Rajesh Kumar
  • 70. 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
  • 71. 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
  • 72. 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 saving www.scmGalaxy.com, Author - Rajesh Kumar
  • 73. Cursor Control Commands $ w,W l <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
  • 74. Input Mode: i, a, O, o i  will insert character at the present cursor position I will insert character at the beginning of the line a will append character at the present cursor position A will append character at the end of the line o  will insert a blank line below O will insert a blank line above www.scmGalaxy.com, Author - Rajesh Kumar
  • 75. 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 line www.scmGalaxy.com, Author - Rajesh Kumar
  • 76. 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 word www.scmGalaxy.com, Author - Rajesh Kumar
  • 77. 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
  • 78. 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
  • 79. Shell Features Module 7 www.scmGalaxy.com, Author - Rajesh Kumar
  • 80. 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
  • 81. 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
  • 82. /bin/bash /bin/ksh /bin/sh /bin/csh /bin/rksh /bin/rsh /bin/tcsh /bin/zsh Bash shell Korn shell Bourne shell C Shell Restricted Korn shell Restricted Bourne shell An amended version of the C shell The Z shell Commonly Used Shells www.scmGalaxy.com, Author - Rajesh Kumar
  • 83. 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
  • 84. Syntax: alias [ name[=string]] Examples: $ alias dir=ls $ alias mroe=more $ alias mstat=/home/tricia/projects/micron/status $ alias laser=&quot;lp -dlaser&quot; $ 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
  • 85. 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
  • 86. 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
  • 87. Syntax: env Example: $ 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
  • 88. 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
  • 89. . Setting Shell Variables . . . Syntax: name=value Example: color=blue PATH=$PATH:/usr/ucb www.scmGalaxy.com, Author - Rajesh Kumar
  • 90. $ 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
  • 91. 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
  • 92. . $ echo $HOME /home/user3 $ env HOME=/home/user3 … . SHELL=/usr/bin/sh $ set HOME=/home/user3 PATH=/usr/bin:/usr/contrib/bin:/usr/local/bin … . color=lavender count=3 dir_name=/home/user3/tree $ unset dir_name Displaying Variable Values www.scmGalaxy.com, Author - Rajesh Kumar
  • 93. Transferring Local Variables to the Environment Syntax: export variable Transfer variable to environment www.scmGalaxy.com, Author - Rajesh Kumar
  • 94. 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
  • 95. Standard I/O Redirection Module 8 www.scmGalaxy.com, Author - Rajesh Kumar
  • 96. 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
  • 97. 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
  • 98. 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
  • 99. 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
  • 100. Creating a file with cat While normally used to list the contents of files, using cat with redirection can be used to create a file $ ls file1 file2 file3 Using redirection $ cat > newfile file created by using the output redirection <ctrl-d> $ ls file1 file2 file3 newfile www.scmGalaxy.com, Author - Rajesh Kumar
  • 101. 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/null www.scmGalaxy.com, Author - Rajesh Kumar
  • 102. 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
  • 103. 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
  • 104. Module 9 Filters & other commands www.scmGalaxy.com, Author - Rajesh Kumar
  • 105. 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
  • 106. 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 Bangalore www.scmGalaxy.com, Author - Rajesh Kumar
  • 107. 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 z www.scmGalaxy.com, Author - Rajesh Kumar
  • 108. 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
  • 109. 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 value www.scmGalaxy.com, Author - Rajesh Kumar
  • 110. sort examples $ cat animals dog.2 cat.4 elephant.10 rabbit.7 $ sort animals cat.4 dog.2 elephant.10 rabbit.7 $ cat animals | sort +0.1 rabbit.7 cat.4 elephant.10 dog.2 $ cat animals | sort -t. -n +1 dog.2 cat.4 rabbit.7 elephant.10 www.scmGalaxy.com, Author - Rajesh Kumar
  • 111. 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
  • 112. find options -type f ordinary file d directory -size +n larger than &quot;n&quot; blocks -n smaller than &quot;n&quot; blocks n equal to &quot;n&quot; blocks -mtime +x modified more than &quot;x&quot; days ago -x modified less than &quot;x&quot; days ago -perm onum access permissions match &quot;onum&quot; mode access permissin match &quot;mode&quot; -user user1 finds files owned by &quot;user1&quot; -o logical &quot;or&quot; -newer ref searches for files that are newer than the reference file. www.scmGalaxy.com, Author - Rajesh Kumar
  • 113. cut command Used to cut fields from each line of a file or columns of a table cut –d: -f1,5 /etc/passwd cut –c2 test second character of each line cut –c-2 test first 2 characters of each line www.scmGalaxy.com, Author - Rajesh Kumar
  • 114. 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
  • 115. ftp The 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
  • 116. The paste command Used 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|25 www.scmGalaxy.com, Author - Rajesh Kumar
  • 117. 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
  • 118. 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
  • 119. The diff(Differential file comparator) Command Analyzes text files Reports the differences between files diff [-options] file1 file2 www.scmGalaxy.com, Author - Rajesh Kumar
  • 120. The cmp command $ cmp names names.old names names.old differ: byte 6, line 1 $cmp -l names names.old 6 12 151 7 102 156 8 157 145 ... ... ... cmp: EOF on names www.scmGalaxy.com, Author - Rajesh Kumar
  • 121. The file command The file command tells the type of file Example: $ file /usr/bun/vi /usr/bin/vi:executable (RISC system/6000) or object module $ file c1 c1: ascii text $ file /usr/bin /usr/bin: directory www.scmGalaxy.com, Author - Rajesh Kumar
  • 122. 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
  • 123. tar –xvf tarfile Example: tar –xvf etc.tar selective extraction tar –xvf etc.tar /etc/passwd tar –tvf etc.tar will display the archive Restoring Files www.scmGalaxy.com, Author - Rajesh Kumar
  • 124. Module 10 Controlling Processes www.scmGalaxy.com, Author - Rajesh Kumar
  • 125. 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
  • 126. Monitoring Process The ps command dislays process status information $ ps -f UID PID PPID ... TTY ... COMMAND john 202 1 ... tty0 ... -ksh john 204 202 ... tty0 ... ksh john 210 204 ... yyu0 ... ls -R / john 212 204 ... tty0 ... ps -f www.scmGalaxy.com, Author - Rajesh Kumar
  • 127. Controlling Processes Foreground Processes: $ ls -lR / >lsout Background Processes: $ ls -lR / >lsout & www.scmGalaxy.com, Author - Rajesh Kumar
  • 128. 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
  • 129. Kill Signals Sig Meaning 01 hangup- you logged out while the process was still running 02 interrupt- you pressed the interrupt(break) key sequence ctrl-c 03 quit -you pressed the quit key sequence ctrl-\ 09 Kill signal: The most powerful and risky signal that can be sent Signal cannot be avoided or ignored! 15 Termination signal(Default): Stop a process Signal can be handled by programs www.scmGalaxy.com, Author - Rajesh Kumar
  • 130. 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] 102 Sending output to nohup.out www.scmGalaxy.com, Author - Rajesh Kumar
  • 131. 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
  • 132. Job Control Examples $ ls -R / > out 2> errfile & [1] 273 $ jobs [1] + Running ls -R / > out 2>errfile & $ fg %1 ls -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
  • 133. Module 11 Shell Programming Concepts www.scmGalaxy.com, Author - Rajesh Kumar
  • 134. 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
  • 135. 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
  • 136. 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 args www.scmGalaxy.com, Author - Rajesh Kumar
  • 137. 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
  • 138. 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
  • 139. 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
  • 140. 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
  • 141. The if Conditiona l 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
  • 142. 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
  • 143. 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 to www.scmGalaxy.com, Author - Rajesh Kumar
  • 144. 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
  • 145. [ ] 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
  • 146. 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
  • 147. 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 = s2 true if s1 = s2 s1 != s2 true if s1 is not equal to s2 str1 true if str1 is assigned and not null www.scmGalaxy.com, Author - Rajesh Kumar
  • 148. 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
  • 149. 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 esac www.scmGalaxy.com, Author - Rajesh Kumar
  • 150. 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
  • 151. 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
  • 152. 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 integers www.scmGalaxy.com, Author - Rajesh Kumar
  • 153. Command Substitution x=5 x=`expr $x +1` echo $x it will give 6 www.scmGalaxy.com, Author - Rajesh Kumar
  • 154. 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
  • 155. 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
  • 156. 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
  • 157. For loop for 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
  • 158. The list in for loop 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
  • 159. 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
  • 160. 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/d4 11. 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
  • 161. 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

Editor's Notes

  • #2: www.scmGalaxy.com, Author - Rajesh Kumar www.scmGalaxy.com, Author - Rajesh Kumar