This Week`s Topics Review week one lab assignment Review week

Download Report

Transcript This Week`s Topics Review week one lab assignment Review week

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
Announcements
Break Out Problems
Upcoming Deadlines
Lab assistance, questions and chat time
Announcements
Class 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 to 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.
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, and HP-UX
• 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
Link of the week
Services 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
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 ftp 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.
Review week one lab assignment
Basic vi editor commands.
vi test_file.txt
^
(place cursor on beginning of line)
$
(place cursor at end of line)
o
(insert text - alpha character)
cw
(change an entire word in a file)
Esc key
(exit insert mode)
:wq!
(save text entered in file)
:q!
(quit without saving changes)
Review week one lab assignment
less command
q
Enter or Return key
Space bar
(terminates pagination)
(advance one line)
(refresh entire screen)
Location of weekly Power Point presentations:
http://cs.franklin.edu/~dandrear/itec400/Winter_2011_
Franklin_Live_Presentations/
File format: Week_Two_2_ppt.ppt
Week_Two_2.pptx
Review week one lab assignment
if [ ]
then
Action statements
fi
while [ ]
do
Action statements
done
for file_name in *
do
Action statements
done
Review week one lab assignment
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
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
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
DIR="."
Review week one lab assignment
# Case #1 and #2.
# The number of arguments on the command line equals one.
if [[ $X -eq 1 ]]
then
# Is the directory entry a directory?
if [[ -X $1 ]]
then
# Assign the command line argument to the variable,
DIR="$X"
else
printf "$ERRORX"
exit 1
fi
fi
Explain different syntax
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
Review week one lab assignment
Case #1: ./printnum.sh <numeric value>
/~dandrear/itec400/homework
Case #1: ./maxlines.sh
/~dandrear/itec400/homework
printnum.sh
maxlines.sh
Case #2: ./maxlines.sh /bin
cat
chmod
cp
Review week one lab assignment
Case #3: ./maxlines.sh .
/~dandrear/itec400/homework
printnum.sh
maxlines.sh
Review week one lab assignment
man (uses the “less” command for pagination)
ls –l
ps
ls -a
cut –c 1-7
wc -l
$#
date
exit 0
exit 1
NUMBER=$2
echo $NUMBER
less
Review week one lab assignment
cp file1 file2
mv file1 file2
rm file_1
rmdir dir_1
clear
head
tail
who
myArray[1]=$1
more
ps –ef
Review week one lab assignment
grep
find
ls
mkdir
cd $1
$1, $2, $3
cat <file name>
chmod <permission> <file name>
Review week one lab assignment
sleep <number of seconds>
diff <file name> <file name>
cd <directory>
sort <file name>
umask
umask -S
who
who am i
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.
Next lab assignment
In 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 with 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.
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.
Next lab assignment
Most 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/ksh
#!/bin/bash
#!/usr/bin/perl
Demonstrate:
cat /etc/shells
echo $SHELL
Next lab assignment
Concentric Circle Relationship
Shell
Utilities
ps
Kernel
vi
sort
KERNEL
HARDWARE
csh
Next lab assignment
drwxrwxrwx permissions
(directory)
-rwxrwxrwx permissions
(file)
lrwxrwxrwx permissions
(symbolic link)
-rwx------ 2 dandrear faculty (hard link)
crw------- 1 root root 14, 4 Jun 24 2004 audio
brw-rw---- 1 root disk 29, 0 Jun 24 2004 aztcd
The exit command has a return value.
0 indicates normal exit
1 indicates failed exit
The return value of a command can be used with
conditional or iteration commands.
Next lab assignment
Exit command
Allows you to exit from a program, shell or log you
out of a Unix network.
The exit command may be used to terminate a script,
just as in a C program. It can also return a value,
which is available to the script's parent process.
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 indicates failed exit
Next lab assignment
Pipe Command
Users can connect the standard output of one
command into the standard input of another
command by using the pipeline operator (|).
Demonstrate general commands:
ps -ef
ps –ef | wc –l
ps –ef | awk ‘{print $2}’
ps –ef | grep dandrear
ls –l | cut –c1-3
who –b (time of last system boot)
who –d (print dead processes)
who –r
(print current run level)
Next lab assignment
File 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.
Next lab assignment
Manual (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 calls
3 C library functions
4 Special files (usually devices, those found in
/dev) and drivers.
5 File formats and conventions
6 Games and screensavers
7 Miscellaneous
8 System administration commands and daemons
Next lab assignment
Grep Command
The grep command searches the named input file(s)
for
lines containing a given pattern. Normally,
each line found is reported to standard output.
Demonstrate:
grep text ~dandrear/Winter08_solutions/foobar
grep pattern foobar_1
grep pattern *
Next lab assignment
Find Command
The find command lists all pathnames that are in each
of the
given directories.
Demonstrate:
find / -type d –print
find ~dandrear –type d -print
find . –print
find / -name foobar
Next lab assignment
Redirections
Many UNIX commands take text-like input and/or
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).
Next lab assignment
Redirection (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/Summer2010_solutions/test.txt
Append the standard output of a command to a file.
cat foobar_2 >> foobar_1
Next lab assignment
Coding 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, …).
Break Out Problems
1. ps | wc –l
2. who | awk ‘{print $1}‘ | sort –u | wc –l
3. ps –ef | awk ‘{print $1}’ | sort –u | wc –l
4. sort –r names.txt
5. ps –ef | awk ‘{print $9, $1}’
6. find /bin -name gzip
7. find /etc -name motd
8. > newfile
9. rm newfile
10.date | cut –c12-19
11.cp test_data.txt ~dandrea/temp
12.mv test_data.txt ~dandrear/temp
13.printf $NUMBER
Upcoming Deadlines
• Lab Assignment 2-1, Simple Shell Scripting,
due January 23, 2011.
• Lab Assignment 3-1, Advanced Scripting, due
January 30, 2011.
• Read Chapters 1 and 2 in Essential System
Administration text.
• Read Module Two listed under the course Web
site
• Did everyone receive a Shell Quick Reference
document and script logic for Lab Assignment
2-1?
Lab assistance, questions and answers
• Questions
• Comments
• Concerns
• After class I will help students with their
scripts.