Quick start bash script

1,170

Published on

A share of bash script concept

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,170
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
33
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Quick start bash script

  1. 1. Quick Start - Bash Script Simon Su
  2. 2. ● Not a linux/unix guide ... ● Talk something basic about programming shell script ... ○ Basic concepts ○ Basic commands ○ Vi Outline
  3. 3. Shell Scripts ● sh ● bash ● ksh ● csh ● zsh sh csh ksh bash tcsh zsh rc es Job control N Y Y Y Y Y N N Aliases N Y Y Y Y Y N N Shell functions Y(1) N Y Y N Y Y Y "Sensible" Input/Output redirection Y N Y Y N Y Y Y Directory stack N Y Y Y Y Y F F Command history N Y Y Y Y Y L L Command line editing N N Y Y Y Y L L Vi Command line editing N N Y Y Y(3) Y L L Emacs Command line editing N N Y Y Y Y L L Rebindable Command line editing N N N Y Y Y L L User name look up N Y Y Y Y Y L L Login/Logout watching N N N N Y Y F F Filename completion N Y(1) Y Y Y Y L L Username completion N Y(2) Y Y Y Y L L Hostname completion N Y(2) Y Y Y Y L L History completion N N N Y Y Y L L Fully programmable Completion N N N N Y Y N N Mh Mailbox completion N N N N(4) N(6) N(6) N N Co Processes N N Y N N Y N N Builtin artithmetic evaluation N Y Y Y Y Y N N Can follow symbolic links invisibly N N Y Y Y Y N N Periodic command execution N N N N Y Y N N Custom Prompt (easily) N N Y Y Y Y Y Y Sun Keyboard Hack N N N N N Y N N Spelling Correction N N N N Y Y N N Process Substitution N N N Y(2) N Y Y Y Underlying Syntax sh csh sh sh csh sh rc r Freely Available N N N(5) Y Y Y Y Y Checks Mailbox N Y Y Y Y Y F F Tty Sanity Checking N N N N Y Y N N Can cope with large argument lists Y N Y Y Y Y Y Y Has non-interactive startup file N Y Y(7) Y(7) Y Y N N Has non-login startup file N Y Y(7) Y Y Y N N Can avoid user startup files N Y N Y N Y Y Y Can specify startup file N N Y Y N N N N Low level command redefinition N N N N N N N Y Has anonymous functions N N N N N N Y Y List Variables N Y Y N Y Y Y Y Full signal trap handling Y N Y Y N Y Y Y File no clobber ability N Y Y Y Y Y N F Local variables N N Y Y N Y Y Y Lexically scoped variables N N N N N N N Y Exceptions N N N N N N N Y
  4. 4. Basic Concept - .bashrc / .bash_profile / .bash_history ● .bashrc ● .bash_profile ● .bash_history
  5. 5. Basic Concept - man page ● man [commands] ex: man bash
  6. 6. Basic Concept - Declare & Comment ● #!/bin/bash ● #comments...
  7. 7. Basic Concept - Environment ● export KEY=VALUE
  8. 8. Basic Concept - source ● . [script file] ● source [script file]
  9. 9. Basic Concept - “|” ● ps -ef | grep root ● ps -ef | cat > /tmp/ps.log ● ps -ef | grep httpd | awk '{print $2}'
  10. 10. Basic Concept - “<” & “>” & “>>” ● mysql -uroot -p < test.sql ● ps -ef > ps.log ● bash [file] > /dev/null 2>&1 ● ps -ef >> ps.log
  11. 11. Basic Concept - `[commands]` ● kill -9 `ps -ef | grep httpd | awk ‘{print $2}’` ● tail -f `svcs -L apache`
  12. 12. Basic Concept - ‘’ & “”
  13. 13. Basic Concept - & and && ● bash [file] & ● bash [file1] && bash [file2]
  14. 14. Basic Concept - bash execution ● #!/bin/bash ● ./[file] ● bash [file] ● bash -x [file]
  15. 15. Basic Concept - Parameter input ● Input: bash [file] [parameter 1] [parameter 2] … ● Receive: $1, $2....
  16. 16. Basic Concept - Parameters of Bash ● $# ● $@ ● $* ● $?
  17. 17. ● alias ll=”ls -l” Basic Commands - alias
  18. 18. Basic Commands - bg / fg Process lock screen.. ctrl + z (process stop and screen return) bg (process keep running) fg (screen back to process)
  19. 19. Basic Commands - background proc ● bash [script file] & ● nohup bash [script file] & ● nohup bash [script file] > /dev/null 2>&1 &
  20. 20. if …. then … elseif … fi export i=5; if [ $i -gt 5 ] ; then echo $i; fi if [ $i -eq 5 ] ; then echo $i; fi if Expression then Commands elif Expression then Commands else Commands fi if (Expression) then Commands elif (Expression) then Commands else Commands fi if [ Expression ]; then Commands elif [ Expression ]; then Commands else Commands fi
  21. 21. for / while / until loop for name in { 1..10 } do …. done for VariableName in List do Commands done while [Expression] do Commands done until [ Expression ] do Commands done
  22. 22. switch … case ... case $1 in   start )     command1     command2     ;;   stop )     command3     ;;   restart )     command4     command5     ;;   status )     command6     ;; esac # bash [script] start # bash [script] stop # bash [script] restart # bash [script] status
  23. 23. read ● read parameter-name ● read -p ‘Ask string’ parameter-name ● echo $parameter-name
  24. 24. function helloworld(){ echo hello $1 } helloworld simon
  25. 25. Basic Commands - find ● find [from] -name [pattern] -print ● find [from] -name [pattern] -type f ● find [from] -ctime 3 -print ● find [from] -atime +1 -print -exec ls -l {} ;
  26. 26. Basic Commands - awk ● awk -F "t" '{print $1,$2}' /etc/hosts ● cat /etc/hosts | awk -F "t" '{print $1,$2}'
  27. 27. Basic Commands - sed ● sed 's/old_text/new_text/g' [file] ● sed -i 's/old_text/new_text/g' [file]
  28. 28. Basic Commands - xargs ● ps -ef | grep node | awk '{print $2}' | xargs kill -9
  29. 29. Nice tool - bash_it ● https://github.com/revans/bash-it ● Install: ○ Check a clone of this repo: git clone http://github.com/revans/bash-it.git ~/.bash_it ○ Run ~/.bash_it/install.sh ○ Edit your ~/.bash_profile file in order to customize bash-it.
  30. 30. Vi
  31. 31. Vi - View Mode
  32. 32. Vi - Edit Mode
  33. 33. Vi - Goto line & Search & Replace ● Goto line: :[line number] ● Search: /[key] ● Replace first: %s/[old]/[new] ● Replace all: %s/[old]/[new]/g
  34. 34. Vi - split, vsplit ● :vsp ● :vsp [file] ● :sp ● :s[ [file] ● ctrl+w
  35. 35. Vi - tabedit ● :tabe [file] ● gt ● n gt
  36. 36. Vi - set ● :set nu / :set nonu ● :set paste
  37. 37. Vi - execute command ● :![command]
  38. 38. Vi - ~/.vimrc
  39. 39. Reference ● http://www.slideshare.net/kingheaven/shell- 11956457?from_search=3 ● http://www.suse.url.tw/sles10/lesson10. htm#23 ●
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×