1 / 22

Additional UNIX Commands

Learn about executing multiple commands, job control, running jobs in the background, suspending or killing jobs, and moving between background and foreground.

austina
Download Presentation

Additional UNIX Commands

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. Additional UNIX Commands

  2. Lecture Overview • Multiple commands and job control • More useful UNIX utilities

  3. Executing Multiple Commands • Several commands can be executed in a single line, by separating them with ';'s: • To run a set of commands in a sub-shell, enclose them within brackets: set a = /home ; echo $a/demo /home/demo ( set a = /home ; echo $a/demo )

  4. Executing Commands in a Sub-shell – Example pwd /home/demo (set p = /etc; cd $p ; pwd ; ls -l passwd) /etc -rw-r--r-- 1 root root 15692 Dec 3 23:12 passwd pwd /home/demo echo $p p: Undefined variable.

  5. The sleep Command • The sleep command just does nothing for the given number of seconds: • Can be useful for interactive scripts • We will use it to demonstrate job control sleep number

  6. Job Control • A job is any command line that can be executed by the shell • Multiple jobs can be run concurrently • The shell allows you to manage jobs: • Place a job in the background • Move a job to the foreground • Suspend a job • Kill a job

  7. Running Jobs in the Background • Typing any command, followed by the '&' symbol, will cause the job to be run in the background • The job number is printed out for reference • When a job is running in the background, you may continue to type new commands • A message is displayed when the job is complete

  8. Running Multiple Jobs • The jobs command will list all current job sleep 10 & [1] 3215 (sleep 5 ; pwd ; sleep 5) & [2] 3216 jobs [1] + Running sleep 10 [2] - Running ( sleep 5; pwd; sleep 5 )

  9. Running Multiple Jobs • After 5 seconds, the following is printed: • After a few more seconds: • And finally: /home/demo [1] Done sleep 10 [2] Done ( sleep 5; pwd; sleep 5 )

  10. Suspending or Killing the Foreground Job • Pressing Ctrl-Z while some job is running in the foreground will stop its execution • The job stops, but is not dead • The suspended job will show up in the jobs output, with a status of suspended • Pressing Ctrl-C will completely terminate (or 'kill') the foreground job • The kill command will kill a specific job

  11. Moving Jobs Between Background and Foreground • The bg command starts running the specified job in the background • The job number should be preceded by a '%' • The fg command is used to move any background job to the foreground • The job will start to run in the foreground, whether it was running or suspended

  12. Jobs – Example • We type the following two commands, and press Ctrl-Z immediately after each one: sleep 10 Suspended (sleep 5 ; pwd ; sleep 5) Suspended jobs [1] + Suspended sleep 10 [2] - Suspended ( sleep 5; pwd; sleep 5 )

  13. Jobs – Example • Now, we start running the second job in the background: • To move the first job to the foreground: bg %2 [2] ( sleep 5; pwd; sleep 5 ) & /home/demo fg %1 Sleep 10

  14. Lecture Overview • Multiple commands and job control • More useful UNIX utilities

  15. More Useful Utilities • The UNIX operating system has many other commands • We will briefly review several additional ones now, but you are encouraged to investigate and learn: • More commands • Additional options and uses for the commands that we have learned

  16. Simple Loop –repeat • The repeat command executes any command multiple times • For example: repeat count command repeat 3 echo Hello Hello Hello Hello

  17. Date and Time –date • The date command can be used to print the current date and time: • The format argument can be used to control the display of the current time • It may contain literal characters, or special sequences starting with '%' date [options] [+format]

  18. date– Examples • For example, '%A' is the weekday, '%Y' is the current year, etc. date +%D 12/04/05 date +"%A, %B %d" Sunday, December 04 date +"Date: %A, %B %d, %Y; Time: %l:%M" Date: Sunday, December 04, 2005; Time: 4:26

  19. Getting User Information • Several UNIX commands allow us to get information about other users currently logged-on to the system: • who– Shows who is logged on • w– Shows who is logged on, and also what they are doing • finger– Provides various information about users currently logged-on

  20. Splitting Data Streams • The tee command takes input from the standard input, and writes it both to the standard output, and to a list of files: • The following will list all files in the current directory into the file 'all.txt' , and also print a count of all '.c' files in the directory tee [options] files ls | tee all.txt | grep '.c' | wc -l

  21. The find command • The find command searches for files whose name matches a pattern • The most common use of find: • Finds all files that match pattern in directory or in any of its sub-directories • find has many other options and uses find directory -name pattern

  22. find– Example • find can execute any command • One common use is to execute the grep command on all files: • This will traverse the current directory and all of its sub-directories, and search for the string 'Hello' in each simple file find . -type f -exec grep -H "Hello" '{}' \;

More Related