380 likes | 449 Views
Agenda. Introduction Administrative Announcements Link of the Week Expected Outcomes This Week’s Topics Next Week’s Lab Assignment Break Out Problems Upcoming Deadlines Lab assistance, questions, and chat time. Introduction. Instructor: Professor Bob D’Andrea Software Engineer
E N D
Agenda • Introduction • Administrative Announcements • Link of the Week • Expected Outcomes • This Week’s Topics • Next Week’s Lab Assignment • Break Out Problems • Upcoming Deadlines • Lab assistance, questions, and chat time
Introduction Instructor: Professor Bob D’Andrea Software Engineer Instructor at Franklin University since 2004 Phone No. 614.898.0457 Cell No. 616.519.5853 dandrear@franklin.edu Program Chair of Information and Technology: Mr. Todd Whittaker Phone # 614.947.6110 whittakt@franklin.edu
Administrative Announcements Instructor commitment Respond daily to student emails. Post exam and lab assignment grades as quickly as possible in student grade books. Post student midterm and final exam status on the Announcement page after each exam has been received from the Student Learning Center (SLC). Office hours Monday through Friday: 9:00 AM – 9:00 PM Saturday and Sunday: 12:00 AM – 6:00 PM Personalized Franklin Live session can be scheduled with a student(s) needing individual assistance.
Administrative Announcements Course Web Site Were students able to read my comments in the Class Communication icon? Attendance Email and/or call me if you are unable to attend class. Otherwise, you will be marked “Not Present” and you will receive an email notice. cs.franklin.edu server Everyone will need a login to the cs.franklin.edu machine? Putty is the prescribed open source interface for this class. You will use putty to access the cs.franklin.edu machine. Student lab assignments will be tested under your itec400/homework directory.
Administrative Announcements Recorded Franklin Live Power Point Presentations http://cs.franklin.edu/~dandrear/itec400/Summer_2013_UNIX_Presentations Franklin Live file name format: -rwx---r-x 1 dandrear faculty 1067008 Apr 3 21:53 Week_One_1_UNIX_ppt.ppt -rwx---r-x 1 dandrear faculty 887795 Apr 3 21:54 Week_One_1_UNIX.pptx Each week, the Power Point presentation used in the Franklin Live session will be available on Monday mornings for printing and/or review prior to the online session.
Administrative Announcements Email format for completed lab assignments Email a notification when an assignment is completed and ready to be graded. The “Subject” line of your email notification should have the following format: <User name> <Section Number> <Lab Assig 1-3> Example: dandrear V1WW Lab Assign. 1-3 Email format for questions <User name> <Section Number> <Question(s)> Example: dandrear V1WW Question(s) Scripts and text file suffix All scripts and text files shall end with a suffix (e.g. ,sh, .pl, .txt and .cgi). Homework assistance: Do not solicit help from the Internet for lab assignments. If caught soliciting assistance from the Internet, Franklin University will take action against you.
Administrative Announcements Drop Box: Deposit all lab assignments in the Drop Box. The Drop Box is located under your Franklin University course Web page “Communications” tab. Student drop box documentation link below http://online.franklin.edu/forms/StudentDropBoxManual.doc /home/user name/itec400/homework This directory is where your scripts and text files are graded.
Administrative Announcements Turnitin.com Assignments The Light Directory Access Protocol (LDAP) and Public Domain/Open Source lab assignments must be submitted to Turnitin.com. Your report will be verified by Turnitin.com for author originality. If Turnitin.com indicates that your percentage of originality is 45 percent or greater, I will not grade the paper. I will recommend that you seek assistance from the Student Learning Center (SLC).
Administrative Announcements UNIX System Administration Syllabus Optional Materials Tutorials: Refer to the following web sites throughout UNIX System Administration. They are excellent resources for UNIX and Linux: • UNIX System Administration Independent Learning (USAIL) (NO LONGER AVAILABLE) http://web.archive.org/web/20080206003854/http://www.uwsg.indiana.edu/usail/ • Linux help, tutorials and tips • UNIX Tutorial for Beginners • UNIX help for Users.
Administrative Announcements APA style format: Your writing assignments will be graded on citing sources, spelling, punctuation, and capitalization. All reports must have a cover and reference page. Link of the week: New links are provided weekly to direct students to information on the Internet that will aid them with class lab assignments and enhance their overall learning experience. Tutoring and workshops: Student Learning Center (SLC) Writing appointments via Franklin Live
Administrative Announcements VMware software: You should receive a Live CD with Knoppix 5.1.1 recorded on it from Franklin University. If you do not receive this CD, call the Helpdesk. The Knoppix software can also be downloaded from the course site. Creating scripts using Knoppix software: ftp from your Knoppix software to cs.franklin.edu sftp://dandrear@cs.franklin.edu/home/dandrear
Link of the Week Open Source Software: • http://en.wikipedia.org/wiki/Open_source • http://freshmeat.net • http://sourceforge.net
Link of the Week Open Source Software: Definition of Open Source Software. • Distributed in source code format • Developed in a public, collaborative manner • Software is free of charge • Allows anyone to create modifications to the software, port it to new operating systems and processor architectures Who benefits from open source products?
Expected Outcomes Upon successful completion of this course, students will be able to: • Create non-trivial shell scripts. • Perform appropriate UNIX System Administration tasks. • Compose non-trivial scripts using Perl programming language. • Distinguish the roles of Linux and Open Source software. • Incorporate the make utility appropriately within programs. • Create an open source presentation of your choice. • Create a CGI script
Basic UNIX Primer UNIX comes in a variety of constantly changing flavors (SUNOS, HPUX, BSD and Solaris, just to name a few). Each of these UNIX types will have small variations from all of the others. This may seem a bit discouraging at first, but in reality each version of UNIX has more in common with all of the others than differences. The ls command, for example, will give a listing of the current directory in any UNIX environment. The changes or semantics local to any particular brand of UNIX should be explained in the manual pages that come with that particular system.
Basic UNIX Primer The purpose of this explanation is not to explore the differences between different UNIX flavors, but rather to assume that they are all equivalent and look at how the different shells behave.
UNIX Commands The UNIX operating system comes with many commands that allows the user to interact with their computer. UNIX commands are simply programs that are executed when called for. The usual place for the storage of these commands is the /usr/bin directory. The commands that are available on a particular machine will vary. There is a set number of standard commands that come with a UNIX system, but there is no limit to the commands that can be made available.
What is a shell? A shell is an entity that takes input from the user and deals with the computer rather than have the user deal directly with the computer. If the user had to deal directly with the computer he would not get much done as the computer only understands strings of 1's and 0's. While this is a bit of a misrepresentation of what the shell actually does (the idea of an operating system is neglected) it provides a rough idea that should cause the reader to be grateful that there is such a thing as a shell. A good way to view a shell is as follows. When a person drives a car, that person doesn't have to actually adjust every detail that goes along with making the engine run, or the electronic system controlling all of the engine timing and so on. All the user (or driver in this example) needs to know is that D means drive and that pressing accelerator pedal will make the car go faster or slower. The dashboard would also be considered part of the shell since pertinent information relating to the user's involvement in operating the car is displayed there.
What is a shell? In fact any part of the car that the user has control of during operation of the car would be considered part of the shell. I think the idea of what a shell is coming clear now. It is a program that allows the user to use the computer without him having to deal directly with it. It is in a sense a protective shell that prevents the user and computer from coming into contact with one another.
Command Line Parsing To parse a command line means to look at each part of the command line and convert it into something that the computer can execute. Since there variations in how different shells parse a command line, it can be assumed that the shell in question is generic. When a user enters a command line at the prompt, the shell begins by analyzing the command line. The shell will break the command line down into small indivisible pieces called tokens (sometimes they are referred to as atomic).
Command Line Parsing Each token is then analyzed in terms of its relationship with the other tokens. This is similar to the human examination of an English sentence. If a noun is present, but no verb, the sentence is deemed incomplete. The shell behaves in much the same matter. It doesn't only check for missing bits, it also makes sure that what is there is in correct order. The shell may have to examine a command line more than once to collect all of the tokens. Each examination is called a pass. The reason for multiple passes is that command lines can be quite complicated, there can be all kinds of substitutions that need to be made.
Command Line Parsing On each pass the shell will make a required substitution and then collect the available tokens. Since the substitutions can be nested (substitutions containing substitutions), the shell may require several passes to collect all of the tokens. As stated above, if at this point in the process the shell determines that the grammar of the command line is incorrect, an error is displayed to the user, or else the command is executed. While the actual order in which the tokens are gathered is interesting, it is beyond the scope of this course. Where required (such as aliases) the order of some of the parsing procedure will be presented.
Command Line Parsing There are two types of arguments, OPTIONS and PARAMETERS. Options come right after the command name and consist of a – (minus sign character) followed by a letter. Parameters come after the options. The example : ls –l file1 file2 file3
Review Shell syntax Shell Variables One of the ways the shell lets you customize your working environment is by using shell variables. A shell variable is an item, known by a name, that represents a value of some type. As the term “variable” implies, the value of a shell variable can be changed. There are two types of shell variables. First, there are variables that act as off/on switches. Second, there are variables that store a particular value as a string of characters.
Review Shell syntax Shell Set Command Debugging part of a script: set -x # activate debugging # your commands go here... set +x # stop debugging
Review Shell syntax Shell Set Command set -A is Korn Shell (ksh) specific (not available in Bash or POSIX SH) and it initializes an array with the specified value(s). $ set -A COLORS "red" "green" "blue" $ print ${COLORS[0]} red $ print ${COLORS[1]} green $ print ${COLORS[2]} blue
Review Shell syntax • $# - Number of positional parameters • $! - Background PID • $? - Return value • $$ - Process PID • $ - Provides the content of a variable ($NUMBER) • $0, $1, $2, $3 … - This syntax represents the positional parameters on the command line. ./printnum.sh 4 • exit 0 – The return values is a number from 0 to 255. A value of zero (0) indicates a normal exit. • exit 1 - Indicates a failure occurred.
Review shell syntax • “ “ - Double quotes. Removes special meaning of all enclosed characters, except $, `, “, and \. • Example: print “The price is $Price.\n”; (interpolation) • ‘ ’ - Literal quotes. Removes the special meaning of all enclosed characters. A single quote cannot appear within single quotes because a single quote denotes the end of the string. • ` ` - Single Back-Tic quotes. Used for command substitution. • Example: echo The date is `date` (interpolation) • LINES=`wc -l $ENTRY | cut -c 1-7` • LISTING=`ls -l | cut -f 9`
Review Command Structure • if [ -d "$1" ] then action statement fi • wc –l - Word count with –l (line option). Print the new line counts • ~ - Tilde (~ means /home/dandrear) • for name in * do action statements done
Review Command Structure • while [ condition] do action statement(s) done • if [ condition ] then action statement(s) fi
Review Command Structure • for name in * do action statements done Example: while [ "$1" != "" ] do # Store the value zero (0) in the variable size. $size = 0 done
Review Command Structure Examples: if [ $# –ne 1 ] then echo “Please enter a command line argument” fi logfile="/var/adm/messages" foreach mon in Sun Mon Tue Wed Thu Fri Sat do grep $mon $logfile > $logfile.$mon end
Next Weeks Lab Assignment • Review Lab Assignment 2-1 Simple Shell scripting. • Lab assignments should be recorded on cs.franklin.edu (Einstein) machine in your “~/itec400/homework” directory. • Demonstrate how to create a file using the “vi” editor. • Execute printnum.sh and maxlines.sh scripts on the cs.franklin.edu machine. • Lab Assignment 2-1 will be complemented with script logic. Script logic will be utilized to jump start the lab assignment. It contains script logic, 70% percent of the needed coding, and helpful hints to assist your programming skills. In addition to script logic, you will receive a Shell and Perl Commands Quick Reference document in email.
Break Out Problems • Program statement (#!/bin/ksh) • less • ps –ef | wc –l • who | awk ‘{print $1}’ | sort –u | wc –l • ps –ef | awk ‘{print $1}’ |sort –u | wc –l • find / ex • ps –ef | awk ‘{print $9, $1}’ • Shell language syntax: $# • Shell language command: for name in * • Shell language command: NUMBER=$(($NUMBER - 1)) 11. Shell variable:PATH
Upcoming Deadlines • Lab Assignment 1-1, Obtain a Proctor for Exams, due May 12, 2013. • Lab Assignment 1-2, Install VMware and Knoppix Virtual Machine, due May 5, 2013 • Lab Assignment 1-3, Introduction to Linux, due January 5, 2013 • Lab Assignment 2-1, Simple Shell Scripting, due May 19, 2012013 • Lab Assignment 3-1, Advanced Scripting, due May 26, 2013. • Read Chapters 1 and 2 in your text book, Essential System Administration. • Read Module One listed under the course Web site
Lab assistance, questions, and chat time • Questions? • Comments? • Concerns? • After each Franklin Live session, I will remain on the session to provide assistance unless otherwise indicated.