SlideShare a Scribd company logo
UNIX Shell-Scripting Basics
Agenda What is a shell?  A shell script? Introduction to  bash Running Commands Applied Shell Programming
What is a shell? % ▌
What is a shell? /bin/bash
What is a shell? #!/bin/bash
What is a shell? INPUT shell OUTPUT ERROR
What is a shell? Any Program But there are a few popular shells…
Bourne Shells /bin/sh /bin/bash “Bourne-Again Shell” Steve Bourne
Other Common Shells C Shell ( /bin/csh ) Turbo C Shell ( /bin/tcsh ) Korn Shell ( /bin/ksh )
An aside: What do I mean by /bin ? C Shell ( /bin/csh ) Turbo C Shell ( /bin/tcsh ) Korn Shell ( /bin/ksh )
An aside: What do I mean by /bin ? /bin, /usr/bin, /usr/local/bin /sbin, /usr/sbin, /usr/local/sbin /tmp /dev /home/borwicjh
What is a Shell Script? A Text File With Instructions Executable
What is a Shell Script? % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
What is a Shell Script?  A Text File % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
An aside: Redirection cat > /tmp/myfile cat >> /tmp/myfile cat 2> /tmp/myerr cat < /tmp/myinput cat  <<INPUT Some input INPUT cat > /tmp/x  2>&1 0 1 2 INPUT env OUTPUT ERROR
What is a Shell Script?  How To Run % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
What is a Shell Script?  What To Do % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
What is a Shell Script?  Executable % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
What is a Shell Script?  Running it % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
Finding the program: PATH % ./hello.sh echo  vs.  /usr/bin/echo % echo $PATH /bin:/usr/bin:/usr/local/bin: /home/borwicjh/bin % which echo /usr/bin/echo
Variables and the Environment % hello.sh bash: hello.sh: Command not found % PATH=“$PATH:.” % hello.sh Hello, world
An aside: Quoting % echo  ‘ $USER ’ $USER % echo  “ $USER ” borwicjh % echo “ \” ” ” % echo “deacnet \\ sct” deacnet\sct % echo  ‘ \” ’ \”
Variables and the Environment % env […variables passed to sub-programs…] % NEW_VAR=“Yes” % echo $NEW_VAR Yes % env […PATH but not NEW_VAR…] % export NEW_VAR % env […PATH and NEW_VAR…]
Welcome to Shell Scripting! Shebang! The Environment PATH Input, Output, and Error chmod
How to Learn man man bash man cat man man man –k man –k manual Learning the Bash Shell , 2 nd  Ed. “ Bash Reference” Cards http://www.tldp.org/LDP/abs/html/
Introduction to  bash
Continuing Lines: \ % echo This \ Is \ A \ Very \ Long \ Command Line This Is A Very Long Command Line %
Exit Status $? 0 is True % ls /does/not/exist % echo $? 1 % echo $? 0
Exit Status:  exit % cat > test.sh <<_TEST_ exit 3 _TEST_ % chmod +x test.sh % ./test.sh % echo $? 3
Logic: test % test 1 -lt 10 % echo $? 0 % test 1 == 10 % echo $? 1
Logic: test test [ ] [ 1 –lt 10 ]  [[ ]] [[ “this string” =~ “this” ]] (( )) (( 1 < 10 ))
Logic: test [ -f /etc/passwd ] [ ! –f /etc/passwd ] [ -f /etc/passwd –a –f /etc/shadow ] [ -f /etc/passwd –o –f /etc/shadow ]
An aside:  $(( ))  for Math % echo $(( 1 + 2 )) 3 % echo $(( 2 * 3 )) 6 % echo $(( 1 / 3 )) 0
Logic: if if  something then : # “elif” a contraction of “else if”: elif  something-else then : else then : fi
Logic: if if  [ $USER –eq “borwicjh” ] then : # “elif” a contraction of “else if”: elif  ls /etc/oratab then : else then : fi
Logic: if # see if a file exists if  [ -e /etc/passwd ] then echo “/etc/passwd exists” else echo “/etc/passwd not found!” fi
Logic: for for i in 1 2 3 do echo $i done
Logic: for for i in  /* do echo “Listing $i:” ls -l $i read done
Logic: for for i in /* do echo “Listing $i:” ls -l $i read done
Logic: for for i in /* do echo “Listing $i:” ls -l $i read done
Logic: C-style for for (( expr1  ; expr2  ; expr3  )) do list done
Logic: C-style for LIMIT=10 for ((  a=1   ; a<=LIMIT  ; a++  )) do echo –n “$a ” done
Logic: while while  something do : done
Logic: while a=0; LIMIT=10 while [  &quot;$a&quot; -lt &quot;$LIMIT&quot;  ] do echo -n &quot;$a ” a=$(( a + 1 )) done
Counters COUNTER=0 while [ -e “$FILE.COUNTER” ] do COUNTER=$(( COUNTER + 1)) done Note: race condition
Reusing Code: “Sourcing” % cat > /path/to/my/passwords <<_PW_ FTP_USER=“sct” _PW_ % echo $FTP_USER %  .  /path/to/my/passwords % echo $FTP_USER sct %
Variable Manipulation % FILEPATH=/path/to/my/output.lis % echo $FILEPATH /path/to/my/output.lis % echo ${FILEPATH %.lis } /path/to/my/output % echo ${FILEPATH #*/ } path/to/my/output.lis % echo ${FILEPATH ##*/ } output.lis
It takes a long time to become a bash guru…
Running Programs
Reasons for Running Programs Check Return Code $? Get Job Output OUTPUT=`echo “Hello”` OUTPUT=$(echo “Hello”) Send Output Somewhere Redirection:  < ,  > Pipes
Pipes Lots of Little Tools echo “Hello”  |  \ wc -c INPUT echo OUTPUT ERROR 0 1 2 INPUT wc OUTPUT ERROR 0 1 2 A Pipe!
Email Notification % echo “Message” | \ mail –s “Here’s your message” \ [email_address]
Dates % DATESTRING=`date +%Y%m%d` % echo $DATESTRING 20060125 % man date
FTP the Hard Way ftp –n –u server.wfu.edu <<_FTP_ user  username password put FILE _FTP_
FTP with  wget wget \ ftp://user:pass@server.wfu.edu/file wget –r \ ftp://user:pass@server.wfu.edu/dir/
FTP with  curl curl –T upload-file \ -u username:password \ ftp://server.wfu.edu/dir/file
Searching:  grep % grep rayra /etc/passwd % grep –r rayra /etc % grep –r RAYRA /etc % grep –ri RAYRA /etc % grep –rli rayra /etc
Searching:  find %  find /home/borwicjh \ -name ‘*.lis’ [all files matching *.lis] % find /home/borwicjh \ -mtime -1 –name ‘*.lis’ [*.lis, if modified within 24h] % man find
Searching:  locate % locate .lis [files with .lis in path] % locate log [also finds “/var/log/messages”]
Applied Shell Programming
Make Your Life Easier TAB completion Control+R history cd - Study a UNIX Editor
pushd/popd % cd /tmp %  pushd  /var/log /var/log /tmp % cd .. % pwd /var %  popd /tmp
Monitoring processes ps ps –ef ps –u oracle ps –C sshd man ps
“DOS” Mode Files #!/usr/bin/bash^M FTP transfer in ASCII, or dos2unix infile > outfile
sqlplus JOB=“ZZZTEST” PARAMS=“ZZZTEST_PARAMS” PARAMS_USER=“BORWICJH” sqlplus $BANNER_USER/$BANNER_PW << _EOF_ set serveroutput on set sqlprompt &quot;&quot; EXECUTE WF_SATURN.FZ_Get_Parameters('$JOB', '$PARAMS', '$PARAMS_USER'); _EOF_
sqlplus sqlplus $USER/$PASS @$FILE_SQL \ $ARG1 $ARG2 $ARG3 if [ $? –ne 0 ] then exit 1 fi if [  -e /file/sql/should/create  ] then […use SQL-created file…] fi Ask Amy Lamy!  
Passing Arguments % cat > test.sh <<_TEST_ echo “Your name is \ $1  \ $2 ” _TEST_ % chmod +x test.sh % ./test.sh John Borwick ignore-this Your name is John Borwick
INB Job Submission Template $1 : user ID $2 : password $3 : one-up number $4 : process name $5 : printer name % /path/to/your/script $UI $PW \ $ONE_UP $JOB $PRNT
Scheduling Jobs % crontab -l 0 0 * * * daily-midnight-job.sh 0 * * * * hourly-job.sh * * * * * every-minute.sh 0 1 * * 0 1AM-on-sunday.sh %  EDITOR=vi  crontab –e % man  5  crontab
It's Over!
Other Questions? Shells and Shell Scripts bash Running Commands bash  and Banner in Practice

More Related Content

PPTX
Unix shell scripting
PDF
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...
PPTX
Unix shell scripting basics
PDF
Introduction to shell scripting
PPT
Shell Scripts
PPTX
Raspberry pi Part 25
PPT
Unix Shell Scripting Basics
PPT
Talk Unix Shell Script
Unix shell scripting
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...
Unix shell scripting basics
Introduction to shell scripting
Shell Scripts
Raspberry pi Part 25
Unix Shell Scripting Basics
Talk Unix Shell Script

What's hot (20)

PDF
03 tk2123 - pemrograman shell-2
PDF
Module 03 Programming on Linux
PPT
Unix Shell Scripting Basics
ODP
OpenGurukul : Language : Shell Scripting
PPT
Unix Basics
PPT
Unix And C
PDF
BASH Variables Part 1: Basic Interpolation
PPT
Talk Unix Shell Script 1
PPT
Chap06
PPT
Airlover 20030324 1
PPT
Best training-in-mumbai-shell scripting
PDF
Unix 1st sem lab programs a - VTU Karnataka
PDF
Shell Script
RTF
Unix lab manual
PDF
COSCUP2012: How to write a bash script like the python?
TXT
Logrotate sh
PPT
Shell Scripting
PDF
Memory Manglement in Raku
PDF
The $path to knowledge: What little it take to unit-test Perl.
PDF
Scroll pHAT HD に美咲フォント
03 tk2123 - pemrograman shell-2
Module 03 Programming on Linux
Unix Shell Scripting Basics
OpenGurukul : Language : Shell Scripting
Unix Basics
Unix And C
BASH Variables Part 1: Basic Interpolation
Talk Unix Shell Script 1
Chap06
Airlover 20030324 1
Best training-in-mumbai-shell scripting
Unix 1st sem lab programs a - VTU Karnataka
Shell Script
Unix lab manual
COSCUP2012: How to write a bash script like the python?
Logrotate sh
Shell Scripting
Memory Manglement in Raku
The $path to knowledge: What little it take to unit-test Perl.
Scroll pHAT HD に美咲フォント
Ad

Viewers also liked (20)

PPTX
Evaluation
PPT
Camera angles
PPTX
Analysis – Album 3
PPTX
Evaluation
PPTX
Lesson Seven - Of Mice and Men - Creativity
PPTX
Evaluation
PPTX
Evaluation
PPT
Aspen pines powerpoint 2017
PPTX
Andrew Goodwin Music Video Theory
PPT
Legacyallpp 110919132020-phpapp02[1]
PPTX
Evaluation
PPT
第一期
PPT
Actual products against my products
PPTX
Presentation1
PPTX
Evaluation
PPT
Risk assessment
PPT
Aspen Pines 2015-2016 Powerpoint
PPT
Survey results
PPTX
The Reserve In Ft Mitchell Apartments and Townhomes
DOCX
Stakeholders and sustained outcomes
Evaluation
Camera angles
Analysis – Album 3
Evaluation
Lesson Seven - Of Mice and Men - Creativity
Evaluation
Evaluation
Aspen pines powerpoint 2017
Andrew Goodwin Music Video Theory
Legacyallpp 110919132020-phpapp02[1]
Evaluation
第一期
Actual products against my products
Presentation1
Evaluation
Risk assessment
Aspen Pines 2015-2016 Powerpoint
Survey results
The Reserve In Ft Mitchell Apartments and Townhomes
Stakeholders and sustained outcomes
Ad

Similar to Unix shell scripting basics (20)

PPT
Unix And Shell Scripting
DOCX
What is a shell script
PDF
Shell scripting
PPT
PPT
Shell programming
PPT
ShellProgramming and Script in operating system
PPTX
First steps in C-Shell
PDF
Unix Shell Scripting
PPTX
Shell & Shell Script
PPTX
Shell & Shell Script
PDF
PPT
34-shell-programming asda asda asd asd.ppt
DOCX
Quize on scripting shell
PPTX
Scripting 101
PPTX
Shell scripting
PPTX
Bash shell scripting
PPT
34-shell-programming.ppt
PDF
Bash production guide
Unix And Shell Scripting
What is a shell script
Shell scripting
Shell programming
ShellProgramming and Script in operating system
First steps in C-Shell
Unix Shell Scripting
Shell & Shell Script
Shell & Shell Script
34-shell-programming asda asda asd asd.ppt
Quize on scripting shell
Scripting 101
Shell scripting
Bash shell scripting
34-shell-programming.ppt
Bash production guide

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
A Presentation on Artificial Intelligence
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Modernizing your data center with Dell and AMD
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
A Presentation on Artificial Intelligence
20250228 LYD VKU AI Blended-Learning.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation_ Review paper, used for researhc scholars
Per capita expenditure prediction using model stacking based on satellite ima...
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Review of recent advances in non-invasive hemoglobin estimation
Modernizing your data center with Dell and AMD
“AI and Expert System Decision Support & Business Intelligence Systems”
Dropbox Q2 2025 Financial Results & Investor Presentation
MYSQL Presentation for SQL database connectivity

Unix shell scripting basics

  • 2. Agenda What is a shell? A shell script? Introduction to bash Running Commands Applied Shell Programming
  • 3. What is a shell? % ▌
  • 4. What is a shell? /bin/bash
  • 5. What is a shell? #!/bin/bash
  • 6. What is a shell? INPUT shell OUTPUT ERROR
  • 7. What is a shell? Any Program But there are a few popular shells…
  • 8. Bourne Shells /bin/sh /bin/bash “Bourne-Again Shell” Steve Bourne
  • 9. Other Common Shells C Shell ( /bin/csh ) Turbo C Shell ( /bin/tcsh ) Korn Shell ( /bin/ksh )
  • 10. An aside: What do I mean by /bin ? C Shell ( /bin/csh ) Turbo C Shell ( /bin/tcsh ) Korn Shell ( /bin/ksh )
  • 11. An aside: What do I mean by /bin ? /bin, /usr/bin, /usr/local/bin /sbin, /usr/sbin, /usr/local/sbin /tmp /dev /home/borwicjh
  • 12. What is a Shell Script? A Text File With Instructions Executable
  • 13. What is a Shell Script? % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
  • 14. What is a Shell Script? A Text File % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
  • 15. An aside: Redirection cat > /tmp/myfile cat >> /tmp/myfile cat 2> /tmp/myerr cat < /tmp/myinput cat <<INPUT Some input INPUT cat > /tmp/x 2>&1 0 1 2 INPUT env OUTPUT ERROR
  • 16. What is a Shell Script? How To Run % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
  • 17. What is a Shell Script? What To Do % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
  • 18. What is a Shell Script? Executable % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
  • 19. What is a Shell Script? Running it % cat > hello.sh <<MY_PROGRAM #!/bin/sh echo ‘Hello, world’ MY_PROGRAM % chmod +x hello.sh % ./hello.sh Hello, world
  • 20. Finding the program: PATH % ./hello.sh echo vs. /usr/bin/echo % echo $PATH /bin:/usr/bin:/usr/local/bin: /home/borwicjh/bin % which echo /usr/bin/echo
  • 21. Variables and the Environment % hello.sh bash: hello.sh: Command not found % PATH=“$PATH:.” % hello.sh Hello, world
  • 22. An aside: Quoting % echo ‘ $USER ’ $USER % echo “ $USER ” borwicjh % echo “ \” ” ” % echo “deacnet \\ sct” deacnet\sct % echo ‘ \” ’ \”
  • 23. Variables and the Environment % env […variables passed to sub-programs…] % NEW_VAR=“Yes” % echo $NEW_VAR Yes % env […PATH but not NEW_VAR…] % export NEW_VAR % env […PATH and NEW_VAR…]
  • 24. Welcome to Shell Scripting! Shebang! The Environment PATH Input, Output, and Error chmod
  • 25. How to Learn man man bash man cat man man man –k man –k manual Learning the Bash Shell , 2 nd Ed. “ Bash Reference” Cards http://www.tldp.org/LDP/abs/html/
  • 27. Continuing Lines: \ % echo This \ Is \ A \ Very \ Long \ Command Line This Is A Very Long Command Line %
  • 28. Exit Status $? 0 is True % ls /does/not/exist % echo $? 1 % echo $? 0
  • 29. Exit Status: exit % cat > test.sh <<_TEST_ exit 3 _TEST_ % chmod +x test.sh % ./test.sh % echo $? 3
  • 30. Logic: test % test 1 -lt 10 % echo $? 0 % test 1 == 10 % echo $? 1
  • 31. Logic: test test [ ] [ 1 –lt 10 ] [[ ]] [[ “this string” =~ “this” ]] (( )) (( 1 < 10 ))
  • 32. Logic: test [ -f /etc/passwd ] [ ! –f /etc/passwd ] [ -f /etc/passwd –a –f /etc/shadow ] [ -f /etc/passwd –o –f /etc/shadow ]
  • 33. An aside: $(( )) for Math % echo $(( 1 + 2 )) 3 % echo $(( 2 * 3 )) 6 % echo $(( 1 / 3 )) 0
  • 34. Logic: if if something then : # “elif” a contraction of “else if”: elif something-else then : else then : fi
  • 35. Logic: if if [ $USER –eq “borwicjh” ] then : # “elif” a contraction of “else if”: elif ls /etc/oratab then : else then : fi
  • 36. Logic: if # see if a file exists if [ -e /etc/passwd ] then echo “/etc/passwd exists” else echo “/etc/passwd not found!” fi
  • 37. Logic: for for i in 1 2 3 do echo $i done
  • 38. Logic: for for i in /* do echo “Listing $i:” ls -l $i read done
  • 39. Logic: for for i in /* do echo “Listing $i:” ls -l $i read done
  • 40. Logic: for for i in /* do echo “Listing $i:” ls -l $i read done
  • 41. Logic: C-style for for (( expr1 ; expr2 ; expr3 )) do list done
  • 42. Logic: C-style for LIMIT=10 for (( a=1 ; a<=LIMIT ; a++ )) do echo –n “$a ” done
  • 43. Logic: while while something do : done
  • 44. Logic: while a=0; LIMIT=10 while [ &quot;$a&quot; -lt &quot;$LIMIT&quot; ] do echo -n &quot;$a ” a=$(( a + 1 )) done
  • 45. Counters COUNTER=0 while [ -e “$FILE.COUNTER” ] do COUNTER=$(( COUNTER + 1)) done Note: race condition
  • 46. Reusing Code: “Sourcing” % cat > /path/to/my/passwords <<_PW_ FTP_USER=“sct” _PW_ % echo $FTP_USER % . /path/to/my/passwords % echo $FTP_USER sct %
  • 47. Variable Manipulation % FILEPATH=/path/to/my/output.lis % echo $FILEPATH /path/to/my/output.lis % echo ${FILEPATH %.lis } /path/to/my/output % echo ${FILEPATH #*/ } path/to/my/output.lis % echo ${FILEPATH ##*/ } output.lis
  • 48. It takes a long time to become a bash guru…
  • 50. Reasons for Running Programs Check Return Code $? Get Job Output OUTPUT=`echo “Hello”` OUTPUT=$(echo “Hello”) Send Output Somewhere Redirection: < , > Pipes
  • 51. Pipes Lots of Little Tools echo “Hello” | \ wc -c INPUT echo OUTPUT ERROR 0 1 2 INPUT wc OUTPUT ERROR 0 1 2 A Pipe!
  • 52. Email Notification % echo “Message” | \ mail –s “Here’s your message” \ [email_address]
  • 53. Dates % DATESTRING=`date +%Y%m%d` % echo $DATESTRING 20060125 % man date
  • 54. FTP the Hard Way ftp –n –u server.wfu.edu <<_FTP_ user username password put FILE _FTP_
  • 55. FTP with wget wget \ ftp://user:pass@server.wfu.edu/file wget –r \ ftp://user:pass@server.wfu.edu/dir/
  • 56. FTP with curl curl –T upload-file \ -u username:password \ ftp://server.wfu.edu/dir/file
  • 57. Searching: grep % grep rayra /etc/passwd % grep –r rayra /etc % grep –r RAYRA /etc % grep –ri RAYRA /etc % grep –rli rayra /etc
  • 58. Searching: find % find /home/borwicjh \ -name ‘*.lis’ [all files matching *.lis] % find /home/borwicjh \ -mtime -1 –name ‘*.lis’ [*.lis, if modified within 24h] % man find
  • 59. Searching: locate % locate .lis [files with .lis in path] % locate log [also finds “/var/log/messages”]
  • 61. Make Your Life Easier TAB completion Control+R history cd - Study a UNIX Editor
  • 62. pushd/popd % cd /tmp % pushd /var/log /var/log /tmp % cd .. % pwd /var % popd /tmp
  • 63. Monitoring processes ps ps –ef ps –u oracle ps –C sshd man ps
  • 64. “DOS” Mode Files #!/usr/bin/bash^M FTP transfer in ASCII, or dos2unix infile > outfile
  • 65. sqlplus JOB=“ZZZTEST” PARAMS=“ZZZTEST_PARAMS” PARAMS_USER=“BORWICJH” sqlplus $BANNER_USER/$BANNER_PW << _EOF_ set serveroutput on set sqlprompt &quot;&quot; EXECUTE WF_SATURN.FZ_Get_Parameters('$JOB', '$PARAMS', '$PARAMS_USER'); _EOF_
  • 66. sqlplus sqlplus $USER/$PASS @$FILE_SQL \ $ARG1 $ARG2 $ARG3 if [ $? –ne 0 ] then exit 1 fi if [ -e /file/sql/should/create ] then […use SQL-created file…] fi Ask Amy Lamy! 
  • 67. Passing Arguments % cat > test.sh <<_TEST_ echo “Your name is \ $1 \ $2 ” _TEST_ % chmod +x test.sh % ./test.sh John Borwick ignore-this Your name is John Borwick
  • 68. INB Job Submission Template $1 : user ID $2 : password $3 : one-up number $4 : process name $5 : printer name % /path/to/your/script $UI $PW \ $ONE_UP $JOB $PRNT
  • 69. Scheduling Jobs % crontab -l 0 0 * * * daily-midnight-job.sh 0 * * * * hourly-job.sh * * * * * every-minute.sh 0 1 * * 0 1AM-on-sunday.sh % EDITOR=vi crontab –e % man 5 crontab
  • 71. Other Questions? Shells and Shell Scripts bash Running Commands bash and Banner in Practice

Editor's Notes

  • #21: First match wins Security