today
play

Today Unix as an OS case study Intro to Shell Scripting Make sure - PDF document

Today Unix as an OS case study Intro to Shell Scripting Make sure the computer is in Linux If not, restart, holding down ALT key Login! Posted slides contain material not explicitly covered in class Sept 10, 2018 Sprenkle


  1. Today • Unix as an OS case study • Intro to Shell Scripting • Make sure the computer is in Linux • If not, restart, holding down ALT key • Login! • Posted slides contain material not explicitly covered in class Sept 10, 2018 Sprenkle - CSCI330 1 Review • What is an Operating System? • What are its goals? • How do we evaluate it? Sept 10, 2018 Sprenkle - CSCI330 2 1

  2. Review: What is an Operating System? • A program that acts as an intermediary between a user of a computer and the computer hardware Applications Ø Resource allocator Operating System Ø Control program Hardware • Tasks: Ø Execute user programs and make solving user problems easier Ø Make the computer system convenient to use Ø Use the computer hardware in an efficient manner Sept 10, 2018 Sprenkle - CSCI330 3 What is an Operating System? • Formally: A program that acts as an intermediary between the computer user and the computer hardware • Goals: Ø Make the computer system easy to use. Ø Use the computer hardware efficiently. • It is an extended machine Ø Hides the messy details which must be performed Ø Presents user with a virtual machine, easier to use • It is a resource manager Ø Each program gets time with the resource Ø Each program gets space on the resource Sept 10, 2018 Sprenkle - CSCI330 4 2

  3. Review: OS Goals • Make computers easier to use Ø Abstraction! Ø Bridge gap between hardware and user experience • Use computer hardware efficiently Why are these two separate goals? What is a “computer”? Sept 10, 2018 Sprenkle - CSCI330 5 Review: Evaluating an Operating System • Reliability Ø Does exactly what it is designed to do • Security Ø Withstands malicious attacks, privacy, … • Portability Ø Runs on multiple HW specifications • Performance Ø Efficiency, fairness, response time, throughput, consistency Sept 10, 2018 Sprenkle - CSCI330 6 3

  4. SYSTEMS PROGRAMMING Sept 10, 2018 Sprenkle - CSCI330 7 One Course Goal: Develop a Simple OS • How are we going to do that? Ø Systems programming! Sept 10, 2018 Sprenkle - CSCI330 8 4

  5. What is Systems Programming? • Program development with system tools Ø (no fancy pants IDEs here) • Uses system calls that hook in to core OS functions • Use coding standards to ensure portability Ø Common file locations Ø Common compilation & installation procedures Ø Basic shell functionality • We’ll be programming in the Unix environment, using C Sept 10, 2018 Sprenkle - CSCI330 9 The System Programmer’s Toolbox • Shell: a program used to run other programs • Text editor: where you’ll develop your code Ø Your faves? • Compiler: transforms source code into an executable file Ø gcc • Debugger: a program that allows you to step through an execution & observe how the program state (i.e., variable values) changes Ø gdb Ø Print statements Sept 10, 2018 Sprenkle - CSCI330 10 5

  6. The System Programmer’s Toolbox • Shell: a program used to run other programs • Text editor: where you’ll develop your code Ø Your faves? • Compiler: transforms source code into an executable file More on Wednesday Ø gcc • Debugger: a program that allows you to step through an execution & observe how the program state (i.e., variable values) changes Ø gdb Ø Print statements Sept 10, 2018 Sprenkle - CSCI330 11 Why Unix? • Open source = easier to study Ø Windows is proprietary & closed Ø OSX is proprietary and is built on top of Unix • Historic: developed in the 60s & 70s Ø One of the oldest OS’s in use today • Most serious programmers and hackers know their way around Unix/Linux • Linux is a Unix-like OS Sept 10, 2018 Sprenkle - CSCI330 12 6

  7. Why C? • The high-level language (HLL) that’s closest to the hardware • If you understand C, you [pretty much] understand how machines store and process data Sept 10, 2018 Sprenkle - CSCI330 14 UNIX Sept 10, 2018 Sprenkle - CSCI330 15 7

  8. Unix Philosophy • Make each program do one thing well Ø More complex functionality by combining programs Ø Make every program a filter Ø More efficient Ø Better for reuse • Portability • No GUIs • Only error feedback Sept 10, 2018 Sprenkle - CSCI330 16 What is a Shell? • User interface to the operating system • Command-line interpreter • Functionality: Ø Execute other programs Ø Manage files Ø Manage processes • A program, like any other • Basic form of shell: hides details of underlying Ø while <read command>: operating system • parse command execute command Sept 10, 2018 Sprenkle - CSCI330 17 8

  9. The Shell and Terminal • When you open the terminal, you can interact with the shell Sept 10, 2018 Sprenkle - CSCI330 18 Directory Shortcuts • . Ø Current directory • .. Ø Parent directory of current directory Ø Every directory except the root directory has a parent directory • ~ Ø User’s home directory Useful in a variety of Unix commands Sept 10, 2018 Sprenkle - CSCI330 19 9

  10. Unix Commands Worksheets • Work together on these worksheets • Check-in at 2:05 p.m. Sept 10, 2018 Sprenkle - CSCI330 20 Handout Discussion • What additional Unix commands did you find? • What are the tradeoffs to the Unix command design (many small, simple programs; can be combined)? Sept 10, 2018 Sprenkle - CSCI330 21 10

  11. Unix Design • Small, simple programs Ø Easier to maintain Ø Single-responsibility principle • Combine (a few or lots) with pipes Ø Easy to combine with a simple interface | • Not-so-user-friendly to get started Sept 10, 2018 Sprenkle - CSCI330 22 USEFUL SHORTCUTS Sept 10, 2018 Sprenkle - CSCI330 48 11

  12. Useful Shortcuts • Up arrow • !command-prefix Ø ! = bang Ø Repeat most recent command that begins with prefix • Tab completion Ø Use tab to complete filepaths and commands Sept 10, 2018 Sprenkle - CSCI330 49 SHELL SCRIPTING Sept 10, 2018 Sprenkle - CSCI330 51 12

  13. Review: What is a Shell? • User interface to the operating system • Command-line interpreter • Functionality: Ø Execute other programs Ø Manage files Ø Manage processes • A program like any other • Basic form of shell: Ø while <read command>: hides details of underlying operating system • parse command execute command Sept 10, 2018 Sprenkle - CSCI330 52 What is a shell script? • A shell script is a list of commands to be run by a shell Ø basically a program Ø uses shell commands instead of C or Java statements • Why? Ø automate repetitious tasks • Ex: executing a program on a large set of test inputs Ø package up commonly executed command sequences Ø create our own commands Sept 10, 2018 Sprenkle - CSCI330 53 13

  14. Simple Shell Script Example #!/bin/sh Which shell to use echo "Hello World" Command to execute echo – like a print statement #! is known as the shebang Look at the available shells by executing ls -l /bin/*sh What do you notice about /bin/sh ? Sept 10, 2018 Sprenkle - CSCI330 54 Shell Scripts • A shell script is a regular text file that contains shell or UNIX commands • Kernel uses the first line of script to determine which shell script to use Ø #!pathname-of-shell • Kernel invokes pathname and sends the script as an argument to be interpreted Ø If #! is not specified, the current shell assumes it is a script in its own language • Can lead to problems Sept 10, 2018 Sprenkle - CSCI330 55 14

  15. Invoking a Script • A script can be invoked as: Where sh is whatever Ø sh scr_name [ arg … ] shell you want Ø sh < scr_name [ args … ] Ø path/to/scr_name [ arg …] • Before running, script must have execute permission: Ø chmod +x scr_name We’ll typically use the 1 st or 3 rd execution option and we’ll use the bash shell Sept 10, 2018 Sprenkle - CSCI330 56 Example Programs • In /csdept/courses/cs330/handouts/ bash_examples/ • In a new terminal/tab, go into this directory • Look at the permissions on the files Sept 10, 2018 Sprenkle - CSCI330 57 15

  16. Writing Your First Bash Script • Bash : B ourne- a gain sh ell Ø Unix shell and command language • Open your favorite text editor • Write a simple bash script: Ø Type in the shebang #!/bin/ #!/bin/sh sh Ø And the command: echo "Hello World" Ø and save as hello.sh • Type bash hello.sh to run Sept 10, 2018 Sprenkle - CSCI330 58 Comments • Comments begin with a # • Comments end at the end of the line • Comments can begin whenever a token begins • Many text editors will help you with syntax highlighting • Examples: # This is a comment # This is a comment # and so is this # and so is this grep foo bar grep foo bar # this is a comment # this is a comment grep foo bar# this is not a comment grep foo bar# this is not a comment Style requirement: A comment on 2 nd line in your script that lists you as author Sept 10, 2018 Sprenkle - CSCI330 59 16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend