Bash in theory and in practice - part one
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Bash in theory and in practice - part one

on

  • 397 views

a bash overview

a bash overview

Statistics

Views

Total Views
397
Views on SlideShare
397
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Bash in theory and in practice - part one Presentation Transcript

  • 1. bashin theory and in practice 19.06.2013 03.07.2013 @pvb265 #imolug
  • 2. Agenda General Info Underwater Overview Syntax Examples 19.06.2013 03.07.2013 @pvb265 #imolug
  • 3. Agenda General Info Underwater Overview Syntax Examples 19.06.2013 03.07.2013 @pvb265 #imolug 19.06 03.07
  • 4. Agenda General Info Underwater Overview Syntax Examples 19.06.2013 03.07.2013 @pvb265 #imolug 19.06 03.07
  • 5. bash bourne again shell GNU project textual shell 19.06.2013 03.07.2013 @pvb265 #imolug
  • 6. interface of an O. S. to access Kernel services 19.06.2013 03.07.2013 @pvb265 #imolug shell bash
  • 7. . resources control . process execution 19.06.2013 03.07.2013 @pvb265 #imolug o.s. shellbash
  • 8. . process manager . memory manager . scheduler/event manager . file manager 19.06.2013 03.07.2013 @pvb265 #imolug o.s. shellbash
  • 9. . process wrapper . scheduler controll 19.06.2013 03.07.2013 @pvb265 #imolug kernel o.s.shellbash
  • 10. 19.06.2013 03.07.2013 @pvb265 #imolug kernel o.s. shell bash
  • 11. 19.06.2013 03.07.2013 @pvb265 #imolug kernel o.s. shell bash Desktop PC, Parallel Systems, Distribuited Systems, Clustered Systems, Real-time Systems, Embedded Systems
  • 12. 19.06.2013 03.07.2013 @pvb265 #imolug kernel o.s. shell bash Desktop PC, Parallel Systems, Distribuited Systems, Clustered Systems, Real-time Systems, Embedded Systems Monolithic, MicroKernel, Hybryd kernel, exoKernel
  • 13. 19.06.2013 03.07.2013 @pvb265 #imolug kernel o.s. shell bash Desktop PC, Parallel Systems, Distribuited Systems, Clustered Systems, Real-time Systems, Embedded Systems Monolithic, MicroKernel, noKernel, Hybryd kernel, exoKernel
  • 14. 19.06.2013 03.07.2013 @pvb265 #imolug kernel o.s. shell bash Desktop PC, Parallel Systems, Distribuited Systems, Clustered Systems, Real-time Systems, Embedded Systems Monolithic, MicroKernel, Hybrid kernel, exoKernel textual, GUI
  • 15. 19.06.2013 03.07.2013 @pvb265 #imolug kernel o.s. shell bash Desktop PC, Parallel Systems, Distribuited Systems, Clustered Systems, Real-time Systems, Embedded Systems Monolithic, MicroKernel, Hybrid kernel, exoKernel textual, GUI sh, csh, ksh, bash, tcsh, zsh
  • 16. 19.06.2013 03.07.2013 @pvb265 #imolug shell 1970: runcom (Multics) JCL (s/390) 1975-1978: Steve Bourne, at Bell Labs wrote sh 1978-1979: Bill Joy at BSD wrote csh 1981: tcsh is a fork of csh POSIX compliance 1983: David Korn wrote ksh 1989: Brian Fox wrote bash 1990: Paul Falstad wrote zsh 1997: bash 2.0 2004: bash 3.0 2011: bash 4.2 latest (now) stable
  • 17. 19.06.2013 03.07.2013 @pvb265 #imolug bash UnderWater
  • 18. 19.06.2013 03.07.2013 @pvb265 #imolug bash Pick-Up a Mac OS X Box UnderWater Terminal Process bash-3.2$ ps -ef|grep Terminal ps -ef|grep Terminal 501 1636 211 0 1:55pm ?? 0:04.57 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_667811
  • 19. 19.06.2013 03.07.2013 @pvb265 #imolug bash Pick-Up a Mac OS X Box UnderWater Terminal Process bash-3.2$ ps -ef|grep Terminal ps -ef|grep Terminal 501 1636 211 0 1:55pm ?? 0:04.57 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_667811 bash-3.2$ ps -ef| grep 1636 ps -ef| grep 1636 501 1636 211 0 1:55pm ?? 0:05.87 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_667811 0 1638 1636 0 1:55pm ttys000 0:00.03 login -pfql valeriobalbi /bin/bash -c exec -la bash /bin/bash Login Process
  • 20. 19.06.2013 03.07.2013 @pvb265 #imolug bash Pick-Up a Mac OS X Box UnderWater Terminal Process bash-3.2$ ps -ef|grep Terminal ps -ef|grep Terminal 501 1636 211 0 1:55pm ?? 0:04.57 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_667811 bash-3.2$ ps -ef| grep 1636 ps -ef| grep 1636 501 1636 211 0 1:55pm ?? 0:05.87 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_667811 0 1638 1636 0 1:55pm ttys000 0:00.03 login -pfql valeriobalbi /bin/bash -c exec -la bash /bin/bash bash-3.2$ ps -ef| grep 1638 ps -ef| grep 1638 0 1638 1636 0 1:55pm ttys000 0:00.03 login -pfql valeriobalbi /bin/bash -c exec -la bash /bin/bash 501 1639 1638 0 1:55pm ttys000 0:00.11 -bash Login Process Shell Invocation
  • 21. 19.06.2013 03.07.2013 @pvb265 #imolug bash Pick-Up a Linux Box UnderWater [root@www ~]# ps -ef|grep sshd root 3065 1 0 Feb05 ? 00:01:54 /usr/sbin/sshd root 10442 3065 0 17:15 ? 00:00:00 sshd: root@pts/0 [root@www ~]# ps -ef| grep 10442 root 10442 3065 0 17:15 ? 00:00:00 sshd: root@pts/0 root 10464 10442 0 17:15 pts/0 00:00:00 -bash SSH Process and Login Shell Invocation
  • 22. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin Linux Users Definitions
  • 23. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin Username Password UID GID Description Home Initialprogram Linux Users Definitions
  • 24. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin Username Password UID GID Description Home Initialprogram [root@www ~]# grep root /etc/shadow Root: $1$LDqgrtQA$IXip/e.HuPhjSjLWXmrdj0 :15561 :0:99999:7::: Username Password Lastchanged PasswordAging Linux Users Definitions
  • 25. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin Username Password UID GID Description Home Initialprogram [root@www ~]# grep root /etc/shadow Root: $1$LDqgrtQA$IXip/e.HuPhjSjLWXmrdj0 :15561 :0:99999:7::: Username Password Lastchanged PasswordAging [root@www ~]# cat /etc/passwd|head -1 root:$1$LDqgrtQA$IXip/e.HuPhjSjLWXmrdj0:0:0:root:/root:/bin/bash Linux Users Definitions
  • 26. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin Username Password UID GID Description Home Initialprogram [root@www ~]# grep root /etc/shadow Root: $1$LDqgrtQA$IXip/e.HuPhjSjLWXmrdj0 :15561 :0:99999:7::: Username Password Lastchanged PasswordAging [root@www ~]# cat /etc/passwd|head -1 root::0:0:root:/root:/bin/bash Linux Users Definitions
  • 27. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin Username Password UID GID Description Home Initialprogram Linux Users Definitions
  • 28. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin Username Password UID GID Description Home Initialprogram [root@www ~]# ls -l /etc/shells -rw-r--r-- 1 root root 60 15 feb 2012 /etc/shells Linux Users Definitions
  • 29. 19.06.2013 03.07.2013 @pvb265 #imolug bash Who said system to invoke bash UnderWater [root@www ~]# cat /etc/passwd|head -5 root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin Username Password UID GID Description Home Initialprogram [root@www ~]# ls -l /etc/shells -rw-r--r-- 1 root root 60 15 feb 2012 /etc/shells [root@www ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/ksh Linux Users Definitions
  • 30. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile what after login?
  • 31. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … what after login?
  • 32. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login?
  • 33. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login? 1 2 4 3 5
  • 34. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login? 1 2 4 3 5 for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "$PS1" ]; then . $i else . $i >/dev/null 2>&1 fi fi done
  • 35. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login? 1 2 4 3 5 for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "$PS1" ]; then . $i else . $i >/dev/null 2>&1 fi fi done
  • 36. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login? 1 2 4 3 5 if [ -f ~/.bashrc ]; then . ~/.bashrc fi
  • 37. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login? 1 2 4 3 5 if [ -f ~/.bashrc ]; then . ~/.bashrc fi
  • 38. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login? 1 2 4 3 5 # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
  • 39. 19.06.2013 03.07.2013 @pvb265 #imolug bash the way to suit your bash UnderWater [root@www ~]# ls -l /etc/profile -rw-r--r-- 1 root root 1029 21 set 2009 /etc/profile [root@www ~]# ls -l /root/.bash_profile -rw-r--r-- 1 root root 191 6 gen 2007 /root/.bash_profile [root@www ~]# ls -l /etc/profile.d/ totale 104 -rwxr-xr-x 1 root root 766 21 lug 2011 colorls.csh -rwxr-xr-x 1 root root 727 21 lug 2011 colorls.sh -rwxr-xr-x 1 root root 3015 19 ago 2011 lang.csh -rwxr-xr-x 1 root root 3466 19 ago 2011 lang.sh … [root@www ~]# ls -l /root/.bashrc -rw-r--r-- 1 root root 176 6 gen 2007 /root/.bashrc [root@www ~]# ls -l /etc/bashrc -rw-r--r-- 1 root root 1708 21 set 2009 /etc/bashrc what after login? 1 2 4 3 5 # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
  • 40. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview
  • 41. 19.06.2013 03.07.2013 @pvb265 #imolug bash POSIX 1003.1 standard (IEEE Std 1003.1) pazh-ics not poh-six Command Interpreter Default 4 Linux and Mac OS X Bourne Again Shell ( as rebird or another Bourne) A superset of Bourne shell Include history and directory stack from C shell Relative New concepts in the recents versions: . 3.0 regex like in perl . 4.0 hash to implement awk Overview
  • 42. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 43. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview [root@www ~]#set -o vi Esc-k Esc-j Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 44. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview [root@www ~]#set -o vi Esc-k Esc-j beginning-of-line (C-a) end-of-line (C-e) forward-char (C-f) backward-char (C-b) forward-word (M-f) backward-word (M-b) clear-screen (C-l) Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 45. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview [root@www ~]# ls /root/.bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 46. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview [root@www ~]# ls /root/.bash +TAB+TAB .bash_history .bash_profile .bashrc Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 47. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview [root@www ~]# ls /root/.bash +TAB+TAB .bash_history .bash_profile .bashrc [root@www ~]# mkfs +TAB+TAB mkfs mkfs.ext2 mkfs.ext3 mkfs.vfat Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 48. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview export HISTFSIZE=10000 export HISTFILESIZE=10000 shopt -s histappend Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 49. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview $PS1 - primary prompt string, default s-v$ . $PS2 - secondary, default is > $PS3 - prompt for the select command $PS4 - during an execution trace. default is + Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 50. 19.06.2013 03.07.2013 @pvb265 #imolug bash Overview $PS1 - primary prompt string, default s-v$ . $PS2 - secondary, default is > $PS3 - prompt for the select command $PS4 - during an execution trace. default is + d : date "Tue May 26" h : hostname up to the first '.' t : current time HH:MM:SS u : username of the current user w : current working directory $ : if UID is 0, a #, otherwise a $ Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions
  • 51. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview /etc/profile /etc/profile.d/* /root/.bash_profile /root/.bashrc /etc/bashrc
  • 52. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview /etc/profile /etc/profile.d/* /root/.bash_profile /root/.bashrc /etc/bashrc
  • 53. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview [root@www ~]# dirs ~ [root@www ~]# pushd /etc /etc ~ [root@www etc]# pushd /tmp /tmp /etc ~ [root@www tmp]# popd /etc ~ [root@www etc]# dirs /etc ~
  • 54. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview bash -r rbash bash --restricted
  • 55. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview bash -r rbash bash --restricted vi :set shell=/bin/sh :shell ~$ rbash ~$ cd / rbash: cd: restricted ~$ bash ~$ cd / /$
  • 56. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview bash -r rbash bash --restricted vi :set shell=/bin/sh :shell ~$ rbash ~$ cd / rbash: cd: restricted ~$ bash ~$ cd / /$ rssh
  • 57. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview - When a command in the hash table no longer exists, Bash will re-search $PATH to find the new location. This is also available with ‘shopt -s checkhash’. - The message printed by the job control code and builtins when a job exits with a non-zero status is ‘Done(status)’. - The message printed by the job control code and builtins when a job is stopped is ‘Stopped(signame)’, where signame is, for example, SIGTSTP. And other 42...
  • 58. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview to test $file [ -e filepath ] true if file exists. [ -x filepath ] true if file exists and exec. [ -d filepath ] true if dir exists. [ expr1 -a expr2 ] and condition [ expr1 -o expr2 ] or condition
  • 59. 19.06.2013 03.07.2013 @pvb265 #imolug bash Function Implemented: Command line editing Command line completion Unlimited size command history Prompt control Bash startup files The Directory Stack The Restricted Shell Bash POSIX Mode Bash conditional expressions Overview to test $file [ -e filepath ] true if file exists. [ -x filepath ] true if file exists and exec. [ -d filepath ] true if dir exists. [ expr1 -a expr2 ] and condition [ expr1 -o expr2 ] or condition for arithmetics [ $VAR1 OP $VAR2 ] true if file exists. OP := -gt -eq -ne -lt -ge -le
  • 60. AgendaGeneral Info Underwater Overview Syntax Scripting Examples 19.06.2013 03.07.2013 @pvb265 #imolug 19.06 03.07