42

Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Embed Size (px)

Citation preview

Page 1: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments
Page 2: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Week Two AgendaAnnouncements

Link of the weekUse of Virtual MachineReview week one lab assignmentThis week’s expected outcomesNext lab assignments AnnouncementsBreak Out ProblemsUpcoming DeadlinesLab assistance, questions and chat time

Page 3: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

AnnouncementsClass participation

Class participation is an essential element in this class. Many times a student’s final grade borderlines the next highest letter grade. The course instructor has the authority to assign or not assign the next highest final grade when the score is within .5 and 1 points of the next highest letter grade.

Convince me professionally, that you want an “A” in this course.

Page 4: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Link of the week• The link below lists most all operating systems that are

available.

• http://dmoz.org/Computers/Software/Operating_Systems

• The link below has tabs for books, posters, software, and tools

• http://www.javvin.com/unix-like-poster.html

• Definition of Operating System (OS)

• Common operating systems discussed in this class will be:

UNIX, Linux, HP-UX, and Windows

• Basic tasks performed by an operating system

– Control and allocate memory for processes

– Prioritize system requests for the CPU

– Control input and output transmissions to and from devices

– Facilitate networking and support file system management

Page 5: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Link of the weekServices Operating System (OS) perform

– Process management – Memory management

OS coordinates various types of memory – File systems– Networking – Graphical user interface (GUI) and command line– Device drivers– Security

• Internal management• External management

Page 6: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Link of the weekServices Operating System (OS) perform

Process management – Background and foreground processesMemory management - The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Random Access Memory (RAM) – Static and dynamic RAM.Cache Memory - is a cache used by the central processing unit of a computer to reduce the average time to access memoryShared Memory - The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.

–C

Page 7: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Iink of the WeekFile systems - Is an abstraction to store, retrieve and update a set of files. The term identifies data structures specified by some of those abstractions, which are designed to organize multiple files as a single stream of bytes. Network protocols are specified by other abstractions, which are designed to allow files on a system to be accessed remotely.

Networking – Internal and external communication.

Graphical user interface (GUI) and Command line (CLI).

Device drivers - Is a computer program that operates or controls a particular type of device that is attached to a computer. A driver typically communicates with the device through the computer bus or communications subsystem to which the hardware connects

Page 8: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Link of the WeekSecurity -Internal management and external management.

Internal security pertains to employees inside the company and visitors that come to a company to sale products, repair equipment and delivery persons.

External security encompasses users needing access to company data and/or assets. The list of external users accessing data for a company could be significant depending on the nature of the business. The list includes employees working remotely, branches offices, and company

suppliers.

Page 9: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Use of the Virtual Machine

Knoppix features

• Use the sftp command to move a file from Knoppix software to the cs.franklin.edu (Einstein) machine using VMware software

Open two Konqueror windows

Enter the sftp protocol

sftp://[email protected]/export/home/dandrear

in one screen

Open a Konsole screen and create a file to transfer to the cs.franklin.edu machine.

Page 10: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignmentBasic vi editor commands.

vi test_file.txt

^ (place cursor on beginning of line)

$ (place cursor at end of line)

o (insert text - alpha character)

x (delete a single character)

dd (delete a single line of text in a file)

cw (change an entire word in a file)

Esc key (exit insert mode)

:wq! (save text entered in file)

:q! (quit without saving changes)

Page 11: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignmentless and more command

q (terminates pagination)

Enter or Return key (advance one line)

Space bar (refresh entire screen)

Location of weekly Power Point presentations:http://cs.franklin.edu/~dandrear/itec400/Summer_2013_ UNIX_Presentations/

File format: Week_Two_2_UNIX_ppt.ppt

Week_Two_2_UNIX.pptx

Page 12: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignmentif [ ]

thenAction statements

fi

while [ ]do

Action statementsdone

for file_name in *do

Action statementsdone

Page 13: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignment#!/bin/ksh

NUMBER=$1

# One argument must be provided, otherwise don’t execute

if [ …]

then

…… Action statement(s)

exit …..

# The value of the command line argument can’t

# be less than or equal to zero.

elif [ …]

then

……Action statement(s)

exit …..

fi

Page 14: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignment# Integer value must be greater than zero

while [ ……… -gt 0 ]

do

printf $variable

# If the value of the argument is greater than one, insert a comma after the integer

if [ ………… -gt 1 ]

then

printf ", "

fi

# Decrease the value of NUMBER by one with each iteration

NUMBER=$(($.................. - 1))

done

printf

Page 15: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignment

ERROR1="error: can only use 0 or 1 arguments.\nusage: maxlines.sh [directory]"ERROR2="error: argument must be a directory.\nusage:

maxlines.sh [directory]\n"# Verify that more than one command line argument

doesn't exist.if [[ $# -gt 1 ]] then printf "$ERRORX" exit 1 fi# Default variable settingDIR="."

Page 16: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignment# Case #2.

# The number of arguments on the command line equals one.

if [[ $X -eq 1 ]]

then

# Is the command line argument a directory?

if [[ -X $1 ]]

then

# Assign the command line argument to the variable,

DIR="$X"

else

printf "$ERRORX"

exit 1

fi

fi

Page 17: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignment# All cases are processed with the following code.

# Change directory to the indicated variable content.

cd $XXX

# Assign file name with highest number of new lines to the variable FILE.

FILE=$(wc –X `ls` 2>/dev/XXXX | sort –X X | tail –X X | head –X X)

# Print statement for all cases.

printf "File `echo $FILE | awk '{print $X}'` has the maximum lines with `echo $XXXX| awk '{print $X}'` lines.\n"

exit 0

Page 18: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignmentCase #1:

Execute script: ./printnum.sh <numeric value>

Execution location: /~dandrear/itec400/homework

Objective: Provide script with data from the command line.

Case #1:

Execute script: ./maxlines.sh or ./maxlines.sh .

Execution location: /~dandrear/itec400/homework

Objective: Visit every directory entry under homework

Case #2:

Execute script: ./maxlines.sh /bin

Execution location: /~dandrear/itec400/homework

Objective: Visit every directory entry under /bin directory

Page 19: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignmentman (uses the “less” command for on-line page control) ls –l ps ls –a

cut –c 1-7

wc -l

$# date

exit 0

exit 1 NUMBER=$2 echo $NUMBER

less

Page 20: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignmentcp file1 file2

mv file1 file2 rm file_1 rmdir dir_1 clear

head

tail who

myArray[1]=$1

more ps –ef

Page 21: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignment

grep

findls

mkdir <directory name>

cd $1

$1, $2, $3 (Example: ./printnum.sh 6)cat <file name>chmod <permission> <file or directory name>

Page 22: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Review week one lab assignment

sleep <number of seconds>diff <file1 name> <file2 name>cd <directory>sort <file name>umaskumask -Swhowho am Iuname -n

Page 23: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Weeks 2 and 3 expected outcomes

Upon successful completion of this module, the student will be able to:

• Create scripts using shell variables and program control flow.

• Use man page system and find script tools. • Use redirection and pipes to combine scripts and

executables.

Page 24: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentIn a Unix environment, the commands you

enter are executed by a program called the "shell". The user must select a command shell to communicate with UNIX. Examples are Korn, Bourne, and C Shell.

One of the things that makes the UNIX operating system so flexible is its layered design. At the core is the hardware. The hardware is surrounded by system software that most users never interact. One of these software applications is called the kernel . The kernel is surrounded by programs (often called utilities) such as cat, date, and diff commands that perform specific tasks. A shell program communicates with these utilities and the kernel with text type information. Ultimately, the kernel sends and receives information from the user’s shell.

Page 25: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignment

A shell program enables a user to interact with computer resources, such as programs, files, directories, and devices. Shells allow users to interact on a system interactively as a command interpreter. When acting as command interpreter, the shell is the interface between the user and the system in a real time environment.

To observe the different types of shells on a system, execute the following command:

Demonstrate: cat /etc/shells

Page 26: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentMost shells are used as a programming

language. Users can combine command sequences to create new programs. These programs are known as shell scripts. Shell scripts automate the use of the shell as a command interpreter.

The first line of any script must begin with #!, followed by the name of the interpreter.

Examples: /bin/sh, /bin/bash, /sbin/nologin

/bin/ksh, /bin/tcsh, /bin/csh

Verify the shell currently being used.

Demonstrate: echo $SHELL

Page 27: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentConcentric Circle Relationship

KERNELHARDWARE

Shell

Utilities

Kernel

csh

sort

ps

vi

Page 28: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignment

Command: ls –l

drwxrwxrwx permissions (Directory)

-rwxrwxrwx permissions (File)

lrwxrwxrwx permissions (Symbolic link)

-rwx------ 2 dandrear faculty (Hard link)

crw------- 1 root root audio (Character device)

brw-rw---- 1 root disk aztcd (Block device)

Page 29: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentExit command

Allows you to exit from a program, or shell

The exit command may be used to terminate a script, just as in a C program. It can also return a value, that can be examined by the parent process for further action.

Every command returns an exit status (sometimes referred to as a return status ).

The exit command values range is from 0-255.

0 indicates normal exit

1 through 255 indicates a failed exit

Page 30: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentAwk Commands

1. The awk command scans its instructions and executes any actions specified to occur before the input file is read.

2. One record is read from the input file.

3. The record is compared against each pattern specified by the awk command's instructions.

4. The command instructions can specify that a specific field within the record be compared. By default, fields are separated by white space (blanks or tabs). Each field is referred to by a field variable. The first field in a record is assigned the $1 variable, the second field is assigned the $2 variable, and so forth. The entire record is assigned to the $0 variable.

5. If the record matches a pattern, any actions associated with that pattern are performed on the record.

Page 31: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentPipe Command

Users can connect the standard output of one command into the standard input of another command.by using the pipeline operator (|).

Demonstrate command usage:ps -efps –ef | wc –lps –ef | awk ‘{print $2}’ps –ef | grep dandrearls –l | cut –c1-3who –b (Time of last system boot)who –r (Print current run level)

who –s (Print short version of user on system).

Page 32: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentFile Descriptor

A process associates a number with each file it has open. This number is called a file descriptor. When you log in, your first process has the following three open files connected to your terminal.

Standard input: File descriptor 0 is open for reading.Standard output: File descriptor 1 is open for writing.Standard error: File descriptor 2 is open

reading.

Page 33: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentManual (man) Command

Linux command documentation is known as “man”. Each page is a self-contained document.

The Manual sections are split into eight numbered sections:

1 General commands.2 System calls3 C library functions4 Special files (usually devices, those found in

/dev) and drivers.5 File formats and conventions6 Games and screensavers7 Miscellaneous8 System administration commands and

daemons

Page 34: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentGrep Command

The grep command searches the named input file(s) for lines in a file containing a given pattern. When a pattern is found, each line is reported to standard output.

Demonstrate: grep [options] pattern file(s)grep inc_A ~dandrear/xyzgrep inc_A prog1 prog2grep inc_A *

Page 35: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentFind Command

The find command lists all pathnames that are in each of the given directories.

Demonstrate: find ~dandrear –type d –print

find ~dandrear –type f -printfind . –printfind / -type f –print

Page 36: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentRedirections

Many UNIX commands take text-like input and produce text-like output. It's sometimes useful to be able to control where the input comes from and output goes (via redirection), or even pass the output from one command to another's input (via pipes).

Page 37: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentRedirection (cont)

Redirect the standard output of a command to a file.

date > /tmp/date_saved

Redirect the standard input of a command so that it reads from a file instead of from your terminal.

cat < ~dandrear/Fall_2013_Solutions/foobar

Append the standard output of a command to a file.

cat foobar_2 >> foobar_1

Page 38: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Next lab assignmentCoding and Testing Process

Code one small script function at a time.

Test that function before adding more code to the script.

Program coding is an iterative process (code,test,code,test,code,test, …).

Page 39: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Break Out Problems1. ps | wc –l2. who | awk ‘{print $1}‘ | sort –u | wc –l3. ps –ef | awk ‘{print $1}’ | sort –u | wc –l4. sort –r names.txt5. ps –ef | awk ‘{print $8, $1}’ 6. find /bin -name gzip7. find /etc -name motd8. > newfile9. rm file_name10.date | cut –c 12-1911.cp test_data.txt ~dandrea/temp12.mv test_data.txt ~dandrear/temp13.printf $NUMBER14. touch newfile

Page 40: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Upcoming Deadlines• Lab Assignment 2-1, Simple Shell Scripting,

due September 29, 2013.• Lab Assignment 3-1, Advanced Scripting, due

October 6, 2013.• Read Chapters 1 and 2 in Essential System

Administration text.• Read Module Two listed under the course

Web site.• Everyone should have received a Shell Quick

Reference document and script logic for Lab Assignment 2-1.

Page 41: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments

Lab assistance, questions and answers

• Questions

• Comments

• Concerns

• After class I will help students with their scripts.

Page 42: Week Two Agenda Announcements Link of the week Use of Virtual Machine Review week one lab assignment This week’s expected outcomes Next lab assignments