Bash in theory and in practice - part one

  • 213 views
Uploaded on

a bash overview

a bash overview

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
213
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

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