1 UNIX Admin Tools. 2 Overview Review of file manipulation utilities UNIX process subsystem Overview of the UNIX shells csh/ksh.

Slides:



Advertisements
Similar presentations
1 CS345 Operating Systems Φροντιστήριο Άσκησης 1.
Advertisements

CIS 118 – Intro to UNIX Shells 1. 2 What is a shell? Bourne shell – Developed by Steve Bourne at AT&T Korn shell – Developed by David Korn at AT&T C-shell.
1 Introduction to UNIX Ke Liu
1 © 2001 John Urrutia. All rights reserved. Chapter 5 The Shell Overview.
CHAPTER 2 THE UNIX SHELLS by U ğ ur Halıcı. layers in a unix system 1 Users Standard utility programs (shell, editors, compilers, etc.) Standard utility.
CS 497C – Introduction to UNIX Lecture 26: - The Process Chin-Chih Chang
1 Processes Professor Jennifer Rexford
Introducing the Command Line CMSC 121 Introduction to UNIX Much of the material in these slides was taken from Dan Hood’s CMSC 121 Lecture Notes.
Shell Basics CS465 - Unix. Shell Basics Shells provide: –Command interpretation –Multiple commands on a single line –Expansion of wildcard filenames –Redirection.
Now, return to the Unix Unix shells: Subshells--- Variable---1. Local 2. Environmental.
2000 Copyrigths Danielle S. Lahmani UNIX Tools G , Fall 2000 Danielle S. Lahmani Lecture 3.
Linux+ Guide to Linux Certification, Second Edition
More Shell Basics CS465 - Unix. Unix shells User’s default shell - specified in /etc/passwd file To show which shell you are currently using: $ echo $SHELL.
Lecture 02CS311 – Operating Systems 1 1 CS311 – Lecture 02 Outline UNIX/Linux features – Redirection – pipes – Terminating a command – Running program.
2000 copyright Danielle S. Lahmani UNIX Tools G , Fall 2000 Danielle S. Lahmani Lecture 2.
Shell Script Examples.
7/17/2009 rwjBROOKDALE COMMUNITY COLLEGE1 Unix Comp-145 C HAPTER 2.
CTEC 1863 – Operating Systems Shell Scripting. CTEC F2 Overview How shell works Command line parameters –Shift command Variables –Including.
Second edition Your UNIX: The Ultimate Guide Das © 2006 The McGraw-Hill Companies, Inc. All rights reserved. UNIX – Shell Programming The activities of.
COMP1070/2002/lec4/H.Melikian COMP1070 Lecture #5  Files and directories in UNIX  Various types of files  File attributes  Notion of pathname  Commands.
Lesson 7-Creating and Changing Directories. Overview Using directories to create order. Managing files in directories. Using pathnames to manage files.
1 Lecture 2 Working with Files and Directories COP 3344 Introduction to UNIX.
Agenda User Profile File (.profile) –Keyword Shell Variables Linux (Unix) filters –Purpose –Commands: grep, sort, awk cut, tr, wc, spell.
The UNIX Shell. The Shell Program that constantly runs at terminal after a user has logged in. Prompts the user and waits for user input. Interprets command.
Linux+ Guide to Linux Certification, Second Edition
Chapter 4 UNIX Common Shells Commands By C. Shing ITEC Dept Radford University.
The Shell Chapter 7. Overview The Command Line Standard IO Redirection Pipes Running a Program in the Background Killing (a process!)
Linux+ Guide to Linux Certification, Third Edition
UNIX Shell Script (1) Dr. Tran, Van Hoai Faculty of Computer Science and Engineering HCMC Uni. of Technology
CS465 - UNIX The Bourne Shell.
UNIX Commands. Why UNIX Commands Are Noninteractive Command may take input from the output of another command (filters). May be scheduled to run at specific.
1 Operating Systems Lecture 2 UNIX and Shell Scripts.
Linux+ Guide to Linux Certification, Second Edition Chapter 10 Managing Linux Processes.
Unix/Linux cs3353. The Shell The shell is a program that acts as the interface between the user and the kernel. –The shell is fully programmable and will.
Hands On UNIX II Dorcas Muthoni. Processes A running instance of a program is called a "process" Identified by a numeric process id (pid)‏  unique while.
UNIX file system Dr. Tran, Van Hoai Faculty of Computer Science and Engineering HCMC Uni. of Technology
Lecture 24CS311 – Operating Systems 1 1 CS311 – Lecture 24 Outline Final Exam Study Guide Note: These lecture notes are not intended replace your notes.
Linux+ Guide to Linux Certification, Third Edition
Linux+ Guide to Linux Certification, Third Edition
1 © 2000 John Urrutia. All rights reserved. Session 5 The Bourne Shell.
Lesson 3-Touring Utilities and System Features. Overview Employing fundamental utilities. Linux terminal sessions. Managing input and output. Using special.
Linux Commands C151 Multi-User Operating Systems.
Agenda Positional Parameters / Continued... Command Substitution Bourne Shell / Bash Shell / Korn Shell Mathematical Expressions Bourne Shell / Bash Shell.
Chapter 5: The Shell The Man in the Middle. In this chapter … The command line Input, output, and redirection Process management Wildcards and expansion.
2 Manual & Filestore Mauro Jaskelioff. Introduction Using the manual The UNIX filestore File permissions.
1 Lecture 2 Working with Files and Directories COP 3353 Introduction to UNIX.
Lecture 02 File and File system. Topics Describe the layout of a Linux file system Display and set paths Describe the most important files, including.
The Process CIS 370, Fall 2009 CIS UMassD. The notion of a process In UNIX a process is an instance of a program in execution A job or a task Each process.
Lecture 1: Introduction, Basic UNIX Advanced Programming Techniques.
Lesson 6-Using Utilities to Accomplish Complex Tasks.
Agenda The Bourne Shell – Part I Redirection ( >, >>,
Lesson 8-Specifying Instructions to the Shell. Overview An overview of shell. Execution of commands in a shell. Shell command-line expansion. Customizing.
Process Related System Calls By Neha Hulkoti & Kavya Bhat.
Linux Tutorial Lesson Two *Getting Help in Linux *Data movement and manipulation *Relative and Absolute path *Processes Note: see chapter 1,2,3 from Linux.
Linux Administration Working with the BASH Shell.
...looking a bit closer under the hood
...looking a bit closer under the hood
Lecture 2 Working with Files and Directories
C151 Multi-User Operating Systems
Hands On UNIX AfNOG 2010 Kigali, Rwanda
Hands On UNIX AfNOG X Cairo, Egypt
INTRODUCTION TO UNIX: The Shell Command Interface
Tutorial of Unix Command & shell scriptS 5027
Tutorial of Unix Command & shell scriptS 5027
...looking a bit closer under the hood
Tutorial of Unix Command & shell scriptS 5027
Linux Shell Script Programming
CSE 303 Concepts and Tools for Software Development
Chapter 3 The UNIX Shells
LPI Linux Certification
Presentation transcript:

1 UNIX Admin Tools

2 Overview Review of file manipulation utilities UNIX process subsystem Overview of the UNIX shells csh/ksh

3 File Attributes Stored in the file I-node File’s ownership: user and group file permissions: read, write, execute file modification times file type: regular, directory, link, symbolic link, special file

4 Utilities for Manipulating file attributes chmodchange file permissions chownchange file owner chgrpchange file group only owner or super-user can change file attributes upon creation, default permissions given to file modified by process umask value

5 File Permissions Three types of permissions: read, process may read contents of file write, process may write contents of file execute, process may execute file three sets of permisions: permissions for owner permissions for group permissions for other access checks made against process’s effective ids

6 Chmod command Symbolic access modes example: chmod +r file Octal access modes octalread writeexecute 0nonono 1nonoyes 2noyesno 3noyesyes 4yesnono 5yesnoyes 6yesyesno 7yesyesyes

7 Directory permissions Same types and sets of permissions as for files –read: means process may a read a dir (i.e., list files) –write: process add/rm files in dir –execute: process can “search”, access files, in dir or subdir

8 Common Utilities for Managing files and directories pwd print process current dir cat, ed, vi, emacs… create files ls list contents of directory rm remove file mv rename file cpcopy a file lncreate a hard link to a file mkdir and rmdir create and remove dir lp: print a file wc counts the words in a file

9 Unix Processes Definitions: program: collection of bytes and data stored in a file image: computer execution environment process: execution of an image multi-tasking: many processes can execute simultaneously in Unix.

10 Unix Process Groups process id: unique id assigned to process upon creation process group id: id of the group to which the process belongs to foreground process group: is the process group associated with a terminal at a time background process group: processes created by you not in the foreground group

11 Process Relationships A process spawns another process using the fork(2) system call. The creating process is the parent process The newly created process is the child process. fork() returns 0 to the child process fork() returns the process_id of the child to the parent process

12 Process Relationship (continued) exec(2) :To run a new program, the child, will issue the exec( ) system call and overwrites itself with the code and initial data of the new program, thus initiating the execution of the new program wait(2): a parent can suspend its execution until one or more child processes complete via a wait(2) system call

13 Process Relationships (continued) exit(2) :upon terminations, process can set an exit status available to parent. Code used –zero for success –non-zero for failure

14 Example : Program that creates a new process to copy files main(argc,argv) int(argcl char *argv[]; {/* assumes 2 args, source and target files */ if ( fork() == 0) { /* child process */ execl("cp"."cp",argv[1],argv[2],0); } /* parent process */ wait(int *) 0); printf("copy done\n"); }

15 Fork operation

16 After exec of prog2 in child (prog2 is cp in example)

17 Unix process genealogy

18 Process permissions real id and one of more real group id set at login. effective uid and effective group id determine process access to read/write/search/execute files or dir. umask() file mode creation mask, used when file or dir created by process

19 Signals Signal: mesg a process can send to a process or process group, if it has appropriate permissions. mesg number represented by a symbolic name for each signal, receiving process can: –explicitly ignore signal –specify action to be taken upron receipt (signal handler) –otherwise, default action takes place (usually process is killed)

20 Signals (continued) Example: When a child exists, it send a SIGCHLD signal to its parent. When the parent issues a wait, it tells the system it wants to catch the SIGCHLD signal When a parent does not issue a wait, it ignores the SIGCHLD signal

21 Inter-process Communication Related Processes signals read/write regular files pipes: when a process B tries to read from a pipe –returns data if process A has written to pipe –returns with EOF, if no other process has pipe open for writing –suspends execution until process A writes data to it child returns exit value to waiting parent process

22 Interprocess Communication Unrleated Processes –FIFO (named Pipes) –System V IPC msg queues semaphores shared memory –sockets (client/server model)

23 Process Environment includes: Process id and process group id open files current working directory real and effective user and group ids file creation mask (umask) resource limits signal action settings set of named local variables

24 File Descriptors each process associates a number or handle, called file descriptor, (fd) with each file it has opened. At login, three files associated with terminal –standard input: fd 0, open for reading –standard output: fd 1, open for writing –standard error: fd 2, open for reading,writing process inherits parent’s file descriptors unless specified (close-on-exec)

25 Process Subsystem utilities psmonitors status of processes kill terminate a process (by pid) wait parent process wait for one of its children to terminate nohupmakes a command immune to the hangup and terminate signal sleepsleep in seconds nice run processes at low priority

26 Setuid and Setgid Mechanisms Mechanism pattented process effective uids are different from its real uids when it executes a set-uid or set- gid program. the process effective uid and gid become that of the executable example: changing your passwd

27 Security Problems Permissions on the executable program and directory in which it is contained must be correct, otherwise easily replaced by Trojan Horse. Some systems remove setuid and setgid bits whenever files are modified as a security precaution.

28 Overview of the shell Command line interpreter and programming language between operating system and user user may select which shell to run: –/bin/csh Cshell –/bin/kshKorn shell –other shells shell scripts: files of UNIX and shell commands executed from a UNIX shell

29 Working with the shell Shell invoked automatically during a login session or manually at the prompt by user –1. Reads a special startup file for initialization –2. Displays prompt and waits for user command –3. Executes user command and goes to step 2, unless contrl D, then shell terminates

30 Redirection of input/ouput Redirection of output: >, >> –example :$ man ls > info.ls Redirection of input: < –example: $ cat <input.data using filters: pipes –example: $ cat file| wc -l; /* counts the number of line in file */

31 Shell Core Features Simple and complex commands redirection of input/output pipes wildcards command substitution background processes shell variables here documents built-in cmds programming constructs

32 Simple Commands supported simple command: sequence of non blanks arguments separated by blanks or tabs. 1 st argument (numbered zero) usually specifies the name of the command to be executed. Any remaining arguments (with a few exceptions, see meta-characters) –Are passed as arguments to that command. –Arguments may be filenames, pathnames, directories or special options

33 Complex commands Multiple commands Command groupings Conditional command execution

34 File name expansion Wildcards * matches any string of characters ?matches any single character [list] matches any character in list [lower-upper] matches any character in range lower-upper inclusive

35 Shell Scripts A shell script is a regular text file that contains shell or UNIX commands Before running it, it must have execute permissions ( see chmod +x filename) Very useful for automating repetitive task and administrative tools and for storing commands for later execution

36 Shell Scripts (continued) When a script is run, kernel determines which shell it is written for by examining the first line of the script –If 1 st line is just #, then it is interpreted by a C shell –If 1 st line is of the form #!pathname, then the executable –Pathname is used to interpret the script –If neither rule 1 nor rule 2 applies, the script is interpreted by a Bourne shell.

37 Here Documents Shell provides alternative ways of supplying standard input to commands Shell allows in-line input redirection using << called here documents format command [arg(s)] << arbitrary-delimiter command input : arbitrary-delimiter arbitrary-delimiter should be a string that does not appear in text

38 Shell Variables Shell has several mechanisms for creating variables. A variable is a name Representing a string value –Shell variables can save time and reduce typing errors, variables Allow you to store and manipulate information two types : local and environmental –local are set by the user of by the shell itself –Positional parameters variables are normally set only on a command line

39 Environmental Variables NAMEMEANING $HOMEabsolute pathname of your home directory $PATHa list of directories to search for $MAILabsolute pathname to mailbox $USERyour user id $SHELLabsolute pathname of login shell $TERMtype of your terminal

40 Positional parameters when a shell procedure is invoked, the shell implicitly creates positional parameters. The name for a positional parameter is a number. Positional parameters are used mainly in scripts. –$0 is the argument in position zero on the command line –$1 is the first argument –$1.. $9 $n refers to the nth argument on the command line if applicable –$# the number of positional parameters, not counting 0 –$* the list of all arguments

41 QUOTING Quoting restores the literal meaning to characters that are processed specially by the shell. The literal quotes are not passed on to the command Single quotes ( ' ) inhibit wildcard replacement, variable substitution, and command substitution Double quotes ( " ) inhibit wildcard replacement only When quotes are nested, only the outer quotes have any effect

42 BUILT-IN commands commands that are internal to the shell Faster to execute and more efficient than other commands –Shell does not have to fork to execute the command –Trade-off: redirection of input/output not allowed for most of these

43 Built-in commands (continued) built-in commands common to the 3 shells: echoexec cdshift waitumask exiteval

44 End of Lecture Questions?

45 Subshells When a parent shell forks a child to execute a command, the new child shell is sometimes called a subshell. This happens when: –a group command is executed ( $(cmd1; cmd2; cmd3) ) –a shell script is executed( $myscript ) –a background job is executed ( cmd1&) A shell inherits the parent's environment but not the parent's local variables.