440 likes | 579 Views
Week Four Agenda. Announcements Link of the week Review week three lab assignment This week’s expected outcomes Next lab assignment Break-out problems Upcoming deadlines Lab assistance, questions and answers. Announcements. Script Comments Scripts should contain the following comments:
E N D
Week Four Agenda • Announcements • Link of the week • Review week three lab assignment • This week’s expected outcomes • Next lab assignment • Break-out problems • Upcoming deadlines • Lab assistance, questions and answers
Announcements Script Comments Scripts should contain the following comments: Editing Author: Script Functionality: Lab Assignment: Due Date:
Link of the Week Object Code • https://freedom-to-tinker.com/blog/felten/source-code-and-object-code • What is object code? • http://www.linfo.org/object_code.html • Object File Format
Review Week Three Lab Assignment Textual (command-line) and visual interfaces (graphical) are two common interfaces used to support engineering tasks on systems. Both utilize Netflows data as the main resource. Netflows are network-based logs that are collected from a network ‘s router. They provide records of the flows that occur on the network. A Netflow record contains a wide variety of useful information about the traffic in a given flow.
Review Week Three Lab Assignment SolarWinds NetFlow Traffic Analyzer (NTA) analyzes Cisco NetFlow, Juniper J-Flow, IPFIX, sFlow, & Huawei NetStream™ data to deliver a complete picture of network traffic, identifying who and what are consuming your bandwidth.
Review Week Three Lab Assignment What is a filter? A UNIX filter command performs an operation or manipulation of the input text from a file. Standard in and out are typically used during this operation. UNIX Command Line Filters awk, cat, cut, expand, compress, fold, grep, head, nl, perl, pr, sed, sh, sort, split, strings, tail, tac, tee, tr, uniq, and wc
Review Week Three Lab Assignment File System Filters cat, cd, chmod, chown, chgrp, cksum, cmp, cp, dd, du, df, fsck, fuser, ln, ls, lsattr, lsof, mkdir, mount, mv, pwd, rm, rmdir, split, touch, umask Processes Filters at, chroot, cron, exit, kill, killall, nice, pgrep, pidof, pkill, ps, pstree, sleep, time, top, and wait
Review Week Three Lab Assignment Test Command A common way to set up a condition for the if command is with the test command. test condition or [ condition ] The test command evaluates the condition and returns 0 or 1, depending on the results of the test. The brackets work exactly like the test condition. The open bracket is a link to test.
Review Week Three Lab Assignment Constructing Conditions -s file -r file -w file -S file -x file -f file -d file Examples: if [ ! –f /etc/.fsckask ] If the plain file /etc/.fsckask does not exist If [ -d /etc/rc0.d ] If there is a directory named /etc/rc0.d
Review Week Three Lab Assignment Perl is a simple language that compiles and executes like a shell or batch type file. Perl doesn’t impose special growth limitations on an array or data strings Perl is a composite of C, AWK, and Basic. Perl was originally developed to manipulate text information.
Review Week Three Lab Assignment • Perl’s capabilities range from - System administration - Web development - Network programming - GUI development • Perl’s major features are • Procedural Programming makes use of simple sequential steps, routines, subroutines, and methods. • Object Oriented Programming (OOP) makes use of “objects”. The key elements of are inheritance, modularity, polymorphism, and encapsulation.
Review Week Three Lab Assignment Perl and Shell Similarities Perl scalar@ARGV ~ Shell $# Perl $ARGV[0] ~ Shell $1 Perl $ARGV[1] ~ Shell $2 Perl unless(scalar(@ARGV)==2) ~ Shell if [ $# != 2] All Perl statements are terminated with a “;” Perl exit 0 is returned if execution was successful. Perl exit 1 is returned if execution fails.
Review Week Three Lab Assignment Perl syntax $? - this variable contains the return value # - precedes a comment statement in Perl \n - new line syntax “ …” $strexp = “This text is considered as a string”; ‘ …’ $charexp = ‘a’; ` …` $cmdexp = `ls –l`; @ARGV – array containing command line arguments $_ - default implied scalar
Review Week Three Lab Assignment There are two types of relational operators. One class operates on numeric values, the other on string values. Relational operators NumericStringMeaning > gt Greater than >= ge Greater than or equal < lt Less than <= le Less than or equal
Review Week Three Lab Assignment Equality Operators NumericStringMeaning == eq Equal to != ne Not equal to cmp Comparison, sign results -1 if the left operand is less 0 If both operands equal 1 If the left operand is greater
Review Week Three Lab Assignment Commands cal –y (display a calendar for the year) cal –j 2010 (display Julian dates) cal –m 2010 (display Monday first day) cal –s 2010 (display Sunday first day) cal 9 2010 (display September 2010 month)
Week Four Expected Outcomes Learning Outcomes • Write Perl scripts, including variables, control flow, and regular expression syntax
Next Lab Assignment • Perl is designed to - Process text data - Perform pattern matching - Utilize string handling tasks • Perl is available on many platforms - UNIX - Linux - HP-UX
Next Lab Assignment Perl utilizes two types of categories Singular variables that represent a single- value. The variable prefix symbol for a scalar is the $. Plural variables are ones that contain multiple-values. Arrays and hashes are two multi-valued variables. The variable prefix symbol for an array and hash are @ and %, respectively.
Next Lab Assignment Perl data types $answer = 42; (an integer) $pi = 3.14159265; (a “real” number) $animal = “horse”; (string) $statement = “I exercise my $animal”; (string with interpolation) $amount = ‘It cost me $5.00’; (string without interpolation) $cwd = `pwd`; (string output from a command)
Next Lab Assignment Initialize Perl array: Definition: An array is an ordered list of scalars, accessed by the scalar’s position in the list. @garage = (“car”, “mower”, “broom”); @persons = (“Will”, “Karim”, “Asma”, “Jay”); $count = @persons; Extecute Perl script: ./week_four.pl
Next Lab Assignment Open Statement The open function can be used to create file handles for different purposes (input, output, and piping), you need to be able to specify which behavior you want.
Next Lab Assignment open functions open(file_handler, “file_name”) open(file_handler, “<file_name”) open (file_handler, “>file_name”) open (file_handler, “>>file_name”) See page 21 in your Perl text.
Next Lab Assignment Filehandle is utilized for both input and output files. Most file names are cryptic and are meaningless to programmers. The purpose of a filehandle is to help the programmer remember a simple file name throughout a program. A filehandle is a name given for a file, device, socket, or pipe. Filehandle command line format: open(filehandle, file name, permissions, chmod); Example: open($FH,$file_name);
Next Lab Assignment If you want to read text from a file line-by-line, then you want to use the following syntax: my @lines = <FILE>; The <FILE> operator - where FILE is a previously opened filehandle - returns all the unread lines of the text file in list context or a single line in scalar context. Hence, if you had a particularly large file and you wanted to conserve memory you could process it line by line: while (<FILE>) { print $_; }
Next Lab Assignment Perl Formats if ( … ) { … } while ( … ) { … }
Next Lab Assignment Perl Formats for ( initialize variable, test variable, increment variable) { … }
Next Lab Assignment Perl Formats if ($append) { open(MYOUTFILE, ">filename.out"); #open for write, overwrite } else { open(MYOUTFILE, ">> filename.out"); #open for write, append }
Next Lab Assignment What is List Processing? @math_array = (6 - 4, 4 * 4, 8 / 2, 9 - 8); while ( … ) { … }
Next Lab Assignment What is a for loop? for (counter = 0; counter < 10; counter++) { … } Three expressions are contained in a for loop: 1. Set initial state of the loop variable 2. Condition test the loop variable 3. Modify the state of the loop variable
Next Lab Assignment Foreach Statement Format foreach VAR (List) { … } Read a list of values Execute Perl script: ./read_list.pl
Next Lab Assignment Foreach Statement Format @myNames = ('Larry', 'Curly', 'Moe'); foreach (@myNames) { print $_;} Sum the elements in an array Execute Perl script: ./sum_list.pl
Next Lab Assignment Display the content of an array Execute Perl script: ./array_display.pl Sort the elements in an array Execute Perl script: ./array_sort.pl
Next Lab Assignment Regular Expressions Definition: Regular expression provides a concise and flexible means for "matching" (specifying and recognizing) strings of text, such as particular characters, words, or patterns of characters. Abbreviations for "regular expression" include "regex" and "regexp". The concept of regular expressions was first popularized by utilities provided by Unix distributions, in particular the editor “ed” and the command/filter grep. Example: if ( /UNIX V5/ ) { print “UNIX V5 found on system. \n”; }
Next Lab Assignment Regular Expressions Substitution operator: s/original value/new value/ Character class: Matches a single character that is contained within the brackets [ a-zA-Z0-9_ ] Special or meta characters are used to denote actions or delimit groups: + means “one or more of whatever was before the + symbol” . Matches any single character (i.e., x.z) ^ Matches the starting position within the string $ Matches the ending position of the string or the position just before a string-ending newline
Next lab assignment Perl Program Statement #!/usr/bin/perl #!/usr/bin/perl -w Print continuation statement print "error: incorrect number of arguments", "\n", "usage: intlist a b (where a < b)", "\n"; Execute Perl scripts: ./linenum.pl and ./intlist.pl
Break-out problems • $strexp = “This text is considered as a string”; • $intexp = 10; • $floatptexp = 2.54; • $charexp = ‘a’; • $cmdexp = `ls –l`; • $argexp = (“two”, “four”, “six”); • @array_exp = (“Jackie”, “Vicki”, “Alex”); • $array [0] = “new value”; • $a = $b + 5; • $container = @container; • ($map{blue}, $map{orange}, $map{jade}) = (0xff0000, 0x00ff00, 0x0000ff0);
Next Lab Assignment Programming Perl text book reading Chapter One Chapter Two Chapter Three
Upcoming deadlines Lab Assignment 3-1 is due on September 27, 2012. Lab Assignment 4-1 is due on October 4, 2012. Lab Assignment 7-1, Midterm exam administered from October 15 through 20. Midterm outline to be posted on the Bulletin Board by September 30, 2012.
Questions and answers • Questions • Comments • Concerns • After class, I will help students with their scripts.