1 / 52

Some simple examples

Some simple examples. First, second, third(with errors) third2. echo Command. Use echo command to display text or value of variable.

Télécharger la présentation

Some simple examples

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Some simple examples • First, second, third(with errors) third2

  2. echo Command • Use echo command to display text or value of variable. • echo [options] [string, variables...]Displays text or variables value on screen.Options-n Do not output the trailing new line.-e Enable interpretation of the following backslash escaped characters in the strings:\a alert (bell)\b backspace\c suppress trailing new line\n new line\r carriage return\t horizontal tab\\ backslash

  3. Example • $ echo -e "An apple a day keeps away \a\t\tdoctor\n"

  4. More about echo • Display colorful messages • echo “Hello, world!” • echo -e "\033[34m   Hello Colorful  World."

  5. That echo statement uses ANSI escape sequence (\033[34m), above entire string ( i.e.  "\033[34m   Hello Colorful  World." ) is process as follows • 1) First \033, is escape character, which causes to take some action. • 2) Here it set screen foreground color to Blue using [34m escape code. • 3) Then it prints our normal message Hello Colorful  World! in blue color.

  6. If we want to display that echo statement in red • echo -e "\033[31m   Hello Colorful  World.“ • In general: • Syntaxecho   -e  "\033[escape-codeyour-message" • More detail, see file cs315\Echo_sequence

  7. Shell Arithmetic • Use to perform arithmetic operations. • Syntax:expr op1 math-operator op2Examples: $ expr 1 + 3$ expr 2 - 1$ expr 10 / 2$ expr 20 % 3$ expr 10 \* 3$ echo `expr 6 + 3`

  8. Double quote, single quote, and back quote • echo “Today is `date`” • Double quote remove the meaning of the characters except “$” and “\”. • echo ‘Today is `date`’ • Enclosed in single quotes remains unchanged • echo `date` To execute command

  9. The read Statement • Use to get input (data from user) from keyboard and store (data) to variable.Syntax: read variable1, variable2,...variableN

  10. Example • ##Script to read your name from key-board#echo "Your first name please:"read fnameecho "Hello $fname, Lets be friend!"

  11. More Unix Commands • nohup + command will make it immune to the hanup and terminate signal. • Example: nohup sleep 30& • kill + pid to kill a process • wait + pid will wait the process to finish. • wait – without pid will wait all its child processes to finish.

  12. env command • Displays your UNIX environment variables. • env enter

  13. Variable assignment • Variables are assigned in a script program as follows: • DONE=no • They are used in this manner: • while [ $DONE = no ] in your script

  14. looping • Example: looping–week13

  15. #! /bin/bash • DONE=no • ENTRIES="hello bye ls 1" • while [ $DONE = no ] • do • echo Valid entries are: $ENTRIES • read ENTRY # Read the variable ENTRY from the user • case $ENTRY in • 1) • pwd • ;; • hello) • echo How are you? • ;; • bye) • echo exiting... • DONE=yes • ;; • ls) • ls -al |more • ;; • *) • echo $ENTRY is an unrecognized command. • ;; • esac • done

  16. /bin and Running Shell Script • To run a script, we can: • 1. ./script_Name • 2 . script_Name • 3. sh script_Name • In fact, we can run the script with some other ways.

  17. The difference between . Script_Name and ./script_Name • You can also run a script by using: • bash script_Name enter • The bash expects input from a file, you do not need execute permissions; the same is true for . Script_Name

  18. Create a bin directory mkdir bin under your home directory. From your current directory, Type: cp script_name ../bin to copy the script into /bin directory. Or, cp * ../bin to copy all your files to the bin directory. Now, you can run them directly by type in the script_Name.

  19. Example • Run looping script under current directory • cp looping ../bin enter • Type looping enter • This time, you can type in the script name and run it directly.

  20. chsh –Change Shell • chsh enter • Type in your password enter • Type /bin/ksh will change your login shell to Korn shell

  21. What Is Korn Shell? • The Korn shell (/bin/ksh) is the most advanced 'standard' UNIX shell. It extends the Bourne shell with lots of nice features, and is a lot faster.

  22. Korn Shell • It was written by David Korn. • It is a powerful superset of the Bourne shell. • The improvements include : • 1. Job control • 2. Command line editing • 3. Programming features.

  23. Korn Shell Korn is superset of Bourne. zsh claims to be an enhanced Korn shell, while bash has added some parts of it

  24. Aliases in Korn shell • The corn shell allows you to create your own commands by using the alias command. • Example: • $ alias d= `ls –l` in standard Unix • Example in In our Linux • alias l=ls [Enter] • alias AA=“cal 2004”

  25. Exception in using alias in Korn • All built-in commands may be aliased except for: • case, do, done, elif, else, esac, fi, for, function, if, select, then, time, until, while, {,}

  26. Remove an alias-unalias • The unalias will remove all of the specified aliases. format: unalias aliasName [Enter]

  27. Functions in Korn shell • Korn shell allows one to define functions that may be invoked as shell commands. • Two basic format to define a function in Korn shell: • 1. Function name • { • list • }

  28. Function --- cont. • 2. Name ( ) • { • list • } • This format looks similar to C language format.

  29. Example • f ( ) • { • echo parameter l = $1 • echo parameter list = $* • } • # main program • f l • f cat dog goat • (week13 func6)

  30. Enhanced job control • Command : • jobs --- Display current jobs • bg %job# --- resumes the specified job as • a background process. • fg %job# --- resumes the specified job as • the foreground process. • kill

  31. TILDE “~” substitution • ~ --- $HOME • ~user --- home directory of user • ~/pathname --- $HOME pathname • ~+ --- $PWD (current working directory) • ~- --- $OLDPWD (previous working directory)

  32. More • let x=y+z written as ( ( x = y + z )) • select - allows use of simple menus • functions can be written with parameters • f( ) • { • echo $1 $2 $3 • } called by f cat dog cow

  33. Kermel • 1. The kernel itself is not a process but a • process manager. • 2. System calls are some specific program constructs that perform the kernel service required by processes. • 3. Each system call sets up the group of parameters that identifies the process request and then executes the hardware-dependent CPU instructions to switch from User Mode to Kernel Mode.

  34. Kernel thread---Privileged processes • Besides user processes, Unix systems include a few privileged processes • ---Kernel thread. • 1. They run Kernel Mode in the kernel address space. • 2. They do not interact with users, and thus do not require terminal devices. • 3. They usually created during startup and remain alive until the system is shut down.

  35. Transition between User Mode and Kernel Mode • . Process1 Process1 Process2 Process2 User Mode Kernel Mode Interrupt handler System call handler Scheduler System call Timer interrupt Device interrupt

  36. Process Implementation • To let the kernel manage processes, each process is represented by a process descriptor that includes information about the current state of the process. • When kernel stops the execution of a process, it saves the current contents of several processor registers in the process descriptor. These include: PC, SP, General-purpose registers, floating point registers, processor control registers, • and the memory management registers.

  37. Device Drivers • The kernel interacts with I/O devices by means of device drivers and each driver interacts with the remaining part of the kernel (even with other drivers) through a specific interface. The advantages are: • 1. Device-specific code can be encapsulated in a specific module. • 2. Vendors can add new devices without knowing the kernel source code: only the interface specifications must be know. • 3. The kernel deals with all devices in a uniform way and accesses them through the same interface. • 4. Dynamically load and unload device drivers to minimize the kernel image stored in RAM.

  38. Kernel

  39. Device Driver Interface P P P P System call interface Virtual File System Kernel Character device files Block device files tty driver Tape driver Disk driver tty tty Tape Disk Disk

  40. Kernel --- cont.

  41. Kernel, hardware, and software Process Process Process • . System calls Kernel Hardware interrupt Peripheral Peripheral Peripheral

  42. User Mode and Kernel Mode • Normally, when a user process is running, it operates in a special machine mode called user mode. • The only way for a user process to enter kernel mode is to execute a system call.

  43. System calls Open a file open Close a file close • . Perform I/O read/write Send a signal kill Create a pipe pipe Create a socket socket Duplicate a process fork Terminate a process exit

  44. Hardware interrupt Interrupt vector table Highest priority Hardware errors 0 1 2 3 4 • . Pointers to kernel Interrupt Handlers Clock Disk I/O Keyboard Traps (software interrupt) Lowest priority

  45. Interrupt can be interrupted! • Because of the priority, a lower priority interrupt can be interrupted by a higher priority interrupt.

  46. Screen saver example • # name: lock • # function: lock the screen until a correct password is entered • # • clear • echo -e "\n\nEnter your password>" • read pword_1 • clear • echo -e "\n\n This system is locked ..... " • pword_2= • until [ "$pword_1" = "$pword_2" ] • do • read pword_2 • done • clear • echo "The password you typed in is correct! You can use the computer now!“ week14 lock1

  47. Problems with the lock1 • 1. Password being displayed while enter it. • 2. There are some ways one can enter the system without password. • Such as ctrol+c … • The reason is it can cause an interrupt to the kernel and the kernel knows about the device. The kernel interrupt has higher priority than your process.

  48. Some of the shell signals • Signal # Name Meaning • 1 hang up Terminal connection lost • 2 interrupt One of the interrupt key • 3 quit One of the quit key • 9 kill The kill –9 has been issued • 15 terminator The kill command has been • issued.

More Related