SlideShare une entreprise Scribd logo
1  sur  79
Télécharger pour lire hors ligne
bashin theory and in practice
19.06.2013
03.07.2013 @pvb265 #imolug
abstract
19.06.2013
03.07.2013 @pvb265 #imolug
abstract
19.06.2013
03.07.2013 @pvb265 #imolug
shell
bash
kernel
o.s.
history
abstract
19.06.2013
03.07.2013 @pvb265 #imolug
shell
bash
kernel
o.s.
Login Process
history
passwd
shadow
shells
configurationfiles
abstract
19.06.2013
03.07.2013 @pvb265 #imolug
shell
bash
kernel
o.s.
Login Process
history
passwd
shadow
shells
configurationfiles
Main Features
POSIX
completion
cmdhistory
AgendaGeneral Info
Underwater
Overview
Syntax
Example
19.06.2013
03.07.2013 @pvb265 #imolug
19.06
03.07
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Syntax
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Syntaxσύνταξις "arrangement" from σύν syn, "together", and τάξις táxis, "an ordering"
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
comment #à #
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
comment #
singole quote ' X ' ' ' '?
'
à #
any trasformations
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
comment #
singole quote ' X ' ' ' '?
'
à #
any trasformations
double quote “ X ”“
2
any trasformations
buts $ ~  ! * @
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
comment #
singole quote ' X ' ' ' '?
'
à #
any trasformations
double quote “ X ”“
2
any trasformations
buts $ ~  ! * @
ANSI-C quoting |
 b backspace
f form feed
n newline
r carriage return
t horizontal tab
v vertical tab
 backslash
' single quote
" double quote
nnn the octal value nnn
xHH the hexadecimal value HH
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
variable
vector
NAME=”test” echo $NAME
NAME=(test1 test2 test3) echo $TEST[0]
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
MacBook-Pro-di-valerio:~ valeriobalbi$ echo "the shell I'm using is $SHELL and his value is in " '$SHELL'
the shell I'm using is /bin/bash and his value is in $SHELL
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ export i=2
MacBook-Pro-di-valerio:~ valeriobalbi$ until [ $i -lt 0 ]; do echo $i; export i=$(($i-1)); done
2
1
0
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ export i=2
MacBook-Pro-di-valerio:~ valeriobalbi$ while [ $i -ge 0 ]; do echo $i; export i=$(($i-1)); done
2
1
0
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ while true; do date; sleep 2; done
Mar 2 Lug 2013 00:58:07 CEST
Mar 2 Lug 2013 00:58:09 CEST
Mar 2 Lug 2013 00:58:11 CEST
^C
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ for i in 2 1 0; do echo $i; done
2
1
0
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ for i in $(ls); do echo $i; done
.
..
file_one
file_two
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until test-command; do commands; done
while test-command; do commands; done
for name in lists; do commands; done
for (( exp1; exp2; exp3 )); do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ for (( i=0 ; $i<3; i++ )); do echo $i; done
0
1
2
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until while for command
if test-command; then commands; ficonditional
if test-command; then commands; else commands; fi
if test-command; then commands; elif commands; else commands; fi
if test-command; then commands; (elif commands;)* else commands; fi
case name in value) commands;; … value) commands;; esac;
select name in words; do commands; done
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until while for command
if test-command; then commands; ficonditional
if test-command; then commands; else commands; fi
if test-command; then commands; elif commands; else commands; fi
if test-command; then commands; (elif commands;)* else commands; fi
case name in (value) commands;; )+ esac commands;
select name in words; do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ export i=start; case $i in
> start)
> echo "start command placeholder";;
> stop)
> echo "stopping command placeholder";;
> esac
Start command placeholder
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until while for command
if test-command; then commands; ficonditional
if test-command; then commands; else commands; fi
if test-command; then commands; elif commands; else commands; fi
if test-command; then commands; (elif commands;)* else commands; fi
case name in (value) commands;; )+ esac commands;
select name in words; do commands; done
MacBook-Pro-di-valerio:~ valeriobalbi$ export i=”one two”; select j in $i; do echo $j; done
1) one
2) two
#? 1
one
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until while for command
if case select commandconditional
arithmetics
logical complex
(( expression ))
[[ expression ]]
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until while for command
if case select commandconditional
arithmetics
logical complex
MacBook-Pro-di-valerio:~ valeriobalbi$ export i=10; ((i--)); echo $i
9
(( expression ))
[[ expression ]]
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
command verb parameter1 parameter2 parameter3 ...
looping until while for command
if case select commandconditional
arithmetics
logical complex
MacBook-Pro-di-valerio:~ valeriobalbi$ if [[ -a /etc/passwd || -b /etc/passwd ]]; then ls -l /etc/passwd; fi
-rw-r--r-- 1 root wheel 5148 18 Nov 2011 /etc/passwd
MacBook-Pro-di-valerio:~ valeriobalbi$ if [[ -a /etc/passwd && -b /etc/passwd ]]; then ls -l /etc/passwd; fi
MacBook-Pro-di-valerio:~ valeriobalbi$
(( expression ))
[[ expression ]]
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
parentheses ( list )
curly brace
new environment, space needed
{ list; } same environment, operational token
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
parentheses ( list )
curly brace
new environment, space needed
{ list; } same environment, operational token
function name ( ) { commands; } redirections
name ( ) { commands; } redirections
undef name
FUNCNEST != 0
local definition variable
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
parentheses ( list )
curly brace
MacBook-Pro-di-valerio:~ valeriobalbi$ foo(){
# do something
# if not false call foo
foo
}
MacBook-Pro-di-valerio:~ valeriobalbi$ foo
new environment, space needed
{ list; } same environment, operational token
function name ( ) { commands; } redirections
name ( ) { commands; } redirections
undef name
FUNCNEST != 0
local definition variable
infinite loop
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
parentheses ( list )
curly brace
MacBook-Pro-di-valerio:~ valeriobalbi$ export FUNCNEST=5
MacBook-Pro-di-valerio:~ valeriobalbi$ foo(){
# do something
# if not false call foo
foo
}
MacBook-Pro-di-valerio:~ valeriobalbi$ foo
MacBook-Pro-di-valerio:~ valeriobalbi$ undef foo
MacBook-Pro-di-valerio:~ valeriobalbi$ foo
-bash: foo: command not found
new environment, space needed
{ list; } same environment, operational token
function name ( ) { commands; } redirections
name ( ) { commands; } redirections
undef name
FUNCNEST != 0
local definition variable
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
parentheses ( list )
curly brace
new environment, space needed
{ list; } same environment, operational token
built-in function
function definition
. filename
break n
cd ..
cd -
cd directory
eval
exec command
exit n
export
pwd
readonly name
return n
shift n
test
umask mode
unset name
bash specificsh specific
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
parentheses ( list )
curly brace
new environment, space needed
{ list; } same environment, operational token
built-in function
function definition
. filename
break n
cd ..
cd -
cd directory
eval
exec command
exit n
export
pwd
readonly name
return n
shift n
test
umask mode
unset name
alias name=value
command name
echo
help
local name=value
let
printf format values
read n
source filename
ulimit
unalias
bash specificsh specific
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
positional
special
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
positional
special
useradd -b /home/pvb265 pvb265
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
positional useradd -b /home/pvb265 pvb265
${0} ${1} ${2} ${3}
special
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
positional useradd -b /home/pvb265 pvb265
special $* equivalent ${1}${2}${3}....
$@ equivalent ${1} ${2} ${3}
$# parameter number
$? return code
$$ PID
${0} ${1} ${2} ${3}
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
$CDPATH
$HOME
$IFS
$PATH
$PS1
$PS2
bash specificsh specific
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
$CDPATH
$HOME
$IFS
$PATH
$PS1
$PS2
$BASH*
$ENV
$HISTSIZE
$HISTFILESIZE
LANG
SHELL
PPID
UID
GID
bash specificsh specific
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
process1
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
process1
stdin
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
process1
stdin stdout
stderr
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
process1
stdin stdout
stderr
0 1
2
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
cat /etc/hosts > /tmp/output.txt
process1
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
cat /etc/hosts > /tmp/output.txt
cat /etc/passwd >> /tmp/output.txt
process1
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
cat /etc/hosts > /tmp/output.txt
cat /etc/passwd >> /tmp/output.txt
cat /etc/passwd 2>&1 > /tmp/output.txt
process1
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
cat /etc/hosts > /tmp/output.txt
cat /etc/passwd >> /tmp/output.txt
cat /etc/passwd 2>&1 > /tmp/output.txt
> /tmp/output.txt
process1
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
process1 process2
pipeline
||
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
Script is a collection of commands
#!/bin/sh
#
RETVAL=0
prog="sssd"
# Source function library.
. /etc/init.d/functions
SSSD=/usr/sbin/sssd
LOCK_FILE=/var/lock/subsys/sssd
PID_FILE=/var/run/sssd.pid
start() {
[ -x $SSSD ] || exit 5
echo -n $"Starting $prog: "
daemon $SSSD -f -D && success || failure
RETVAL=$?
echo
[ "$RETVAL" = 0 ] && touch $LOCK_FILE
return $RETVAL
}
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
shabang #! #!/bin/bash
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
shabang #! #!/bin/bash
code syntax tree
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
shabang #! #!/bin/bash
code syntax tree
executable code
execution
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
shabang #! #!/bin/bash
code syntax tree execution
shabang tell O.S. which interpreter use to execute the code
For each #! line immagine the fork of a new interpreter
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Basics
Commands
Functions
Parameters
Variables
Redirections
Scripting
Syntax
shabang #! #!/bin/bash
code syntax tree execution
a script file can be executed
- bash scriptfilename.sh
- scriptfilename.sh
19.06.2013
03.07.2013 @pvb265 #imolug
bash
Example
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
[root@doc ~]# runlevel
N 3
[root@doc ~]# cd /etc/rc+TAB+TAB
rc rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rc.d/ rc.local rc.sysinit
[root@doc ~]# cd /etc/rc3.d/
[root@doc rc3.d]# ls -l
totale 0
lrwxrwxrwx. 1 root root 15 22 giu 23:52 K01numad -> ../init.d/numad
lrwxrwxrwx. 1 root root 16 22 giu 23:57 K01smartd -> ../init.d/smartd
lrwxrwxrwx. 1 root root 17 22 giu 21:21 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx. 1 root root 16 22 giu 23:58 K10psacct -> ../init.d/psacct
lrwxrwxrwx. 1 root root 19 22 giu 23:57 K10saslauthd -> ../init.d/saslauthd
…
lrwxrwxrwx. 1 root root 14 22 giu 23:57 S55sshd -> ../init.d/sshd
lrwxrwxrwx. 1 root root 16 23 giu 19:42 S64mysqld -> ../init.d/mysqld
lrwxrwxrwx. 1 root root 17 22 giu 21:21 S80postfix -> ../init.d/postfix
...
lrwxrwxrwx. 1 root root 11 22 giu 23:48 S99local -> ../rc.local
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
[root@doc rc3.d]# cd ../init.d/
[root@doc init.d]# ls -l
totale 320
-rwxr-xr-x. 1 root root 1288 23 feb 05:39 abrt-ccpp
…
-rwxr-xr-x. 1 root root 1698 22 feb 06:38 sandbox
-rwxr-xr-x. 1 root root 2056 20 nov 2012 saslauthd
-rwxr-xr-x. 1 root root 647 9 gen 12:13 single
-rwxr-xr-x. 1 root root 3002 21 feb 23:26 smartd
-rwxr-xr-x. 1 root root 4534 22 feb 04:51 sshd
-rwxr-xr-x. 1 root root 2647 29 apr 09:50 sssd
-rwxr-xr-x. 1 root root 1228 22 giu 2012 sysstat
-rwxr-xr-x. 1 root root 2294 22 feb 06:22 udev-post
-rwxr-xr-x. 1 root root 1608 22 feb 05:09 winbind
-rwxr-xr-x. 1 root root 4799 22 feb 00:23 ypbind
[root@doc init.d]# file sshd
sshd: Bourne-Again shell script text executable
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
#!/bin/bash
#
# sshd Start up the OpenSSH server daemon
#
# chkconfig: 2345 55 25
# description: SSH is a protocol for secure remote shell access. 
# This service starts up the OpenSSH server daemon.
#
# processname: sshd
# config: /etc/ssh/ssh_host_key
# config: /etc/ssh/ssh_host_key.pub
# config: /etc/ssh/ssh_random_seed
# config: /etc/ssh/sshd_config
# pidfile: /var/run/sshd.pid
### BEGIN INIT INFO
# Provides: sshd
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $syslog
# Should-Start: $syslog
# Should-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
#!/bin/bash
#
# sshd Start up the OpenSSH server daemon
#
# chkconfig: 2345 55 25
# description: SSH is a protocol for secure remote shell access. 
# This service starts up the OpenSSH server daemon.
#
# processname: sshd
# config: /etc/ssh/ssh_host_key
# config: /etc/ssh/ssh_host_key.pub
# config: /etc/ssh/ssh_random_seed
# config: /etc/ssh/sshd_config
# pidfile: /var/run/sshd.pid
### BEGIN INIT INFO
# Provides: sshd
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $syslog
# Should-Start: $syslog
# Should-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
# Short-Description: Start up the OpenSSH server daemon
# Description: SSH is a protocol for secure remote shell access.
# This service starts up the OpenSSH server daemon.
### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog
# Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
runlevel=$(set -- $(runlevel); eval "echo $$#" )
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
# Short-Description: Start up the OpenSSH server daemon
# Description: SSH is a protocol for secure remote shell access.
# This service starts up the OpenSSH server daemon.
### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog
# Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
runlevel=$(set -- $(runlevel); eval "echo $$#" )
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
# Short-Description: Start up the OpenSSH server daemon
# Description: SSH is a protocol for secure remote shell access.
# This service starts up the OpenSSH server daemon.
### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog
# Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
runlevel=$(set -- $(runlevel); eval "echo $$#" )
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
# Short-Description: Start up the OpenSSH server daemon
# Description: SSH is a protocol for secure remote shell access.
# This service starts up the OpenSSH server daemon.
### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog
# Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
runlevel=$(set -- $(runlevel); eval "echo $$#" )
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
# Short-Description: Start up the OpenSSH server daemon
# Description: SSH is a protocol for secure remote shell access.
# This service starts up the OpenSSH server daemon.
### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog
# Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
runlevel=$(set -- $(runlevel); eval "echo $$#" )
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
# Short-Description: Start up the OpenSSH server daemon
# Description: SSH is a protocol for secure remote shell access.
# This service starts up the OpenSSH server daemon.
### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog
# Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
runlevel=$(set -- $(runlevel); eval "echo $$#" )
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
# Short-Description: Start up the OpenSSH server daemon
# Description: SSH is a protocol for secure remote shell access.
# This service starts up the OpenSSH server daemon.
### END INIT INFO
# source function library
. /etc/rc.d/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
RETVAL=0
prog="sshd"
lockfile=/var/lock/subsys/$prog
# Some functions to make the below more readable
KEYGEN=/usr/bin/ssh-keygen
SSHD=/usr/sbin/sshd
RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
PID_FILE=/var/run/sshd.pid
runlevel=$(set -- $(runlevel); eval "echo $$#" )
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
fips_enabled() {
if [ -r /proc/sys/crypto/fips_enabled ]; then
cat /proc/sys/crypto/fips_enabled
else
echo 0
fi
}
do_rsa1_keygen() {
if [ ! -s $RSA1_KEY -a `fips_enabled` -eq 0 ]; then
echo -n $"Generating SSH1 RSA host key: "
rm -f $RSA1_KEY
if test ! -f $RSA1_KEY && $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then
chmod 600 $RSA1_KEY
chmod 644 $RSA1_KEY.pub
if [ -x /sbin/restorecon ]; then
/sbin/restorecon $RSA1_KEY.pub
fi
success $"RSA1 key generation"
echo
else
failure $"RSA1 key generation"
echo
exit 1
fi
fi
}
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
fips_enabled() {
if [ -r /proc/sys/crypto/fips_enabled ]; then
cat /proc/sys/crypto/fips_enabled
else
echo 0
fi
}
do_rsa1_keygen() {
if [ ! -s $RSA1_KEY -a `fips_enabled` -eq 0 ]; then
echo -n $"Generating SSH1 RSA host key: "
rm -f $RSA1_KEY
if test ! -f $RSA1_KEY && $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then
chmod 600 $RSA1_KEY
chmod 644 $RSA1_KEY.pub
if [ -x /sbin/restorecon ]; then
/sbin/restorecon $RSA1_KEY.pub
fi
success $"RSA1 key generation"
echo
else
failure $"RSA1 key generation"
echo
exit 1
fi
fi
}
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
fips_enabled() {
if [ -r /proc/sys/crypto/fips_enabled ]; then
cat /proc/sys/crypto/fips_enabled
else
echo 0
fi
}
do_rsa1_keygen() {
if [ ! -s $RSA1_KEY -a `fips_enabled` -eq 0 ]; then
echo -n $"Generating SSH1 RSA host key: "
rm -f $RSA1_KEY
if test ! -f $RSA1_KEY && $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then
chmod 600 $RSA1_KEY
chmod 644 $RSA1_KEY.pub
if [ -x /sbin/restorecon ]; then
/sbin/restorecon $RSA1_KEY.pub
fi
success $"RSA1 key generation"
echo
else
failure $"RSA1 key generation"
echo
exit 1
fi
fi
}
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
start()
{
[ -x $SSHD ] || exit 5
[ -f /etc/ssh/sshd_config ] || exit 6
# Create keys if necessary
if [ "x${AUTOCREATE_SERVER_KEYS}" != xNO ]; then
do_rsa1_keygen
do_rsa_keygen
do_dsa_keygen
fi
echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
echo
return $RETVAL
}
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
start()
{
[ -x $SSHD ] || exit 5
[ -f /etc/ssh/sshd_config ] || exit 6
# Create keys if necessary
if [ "x${AUTOCREATE_SERVER_KEYS}" != xNO ]; then
do_rsa1_keygen
do_rsa_keygen
do_dsa_keygen
fi
echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
echo
return $RETVAL
}
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
start()
{
[ -x $SSHD ] || exit 5
[ -f /etc/ssh/sshd_config ] || exit 6
# Create keys if necessary
if [ "x${AUTOCREATE_SERVER_KEYS}" != xNO ]; then
do_rsa1_keygen
do_rsa_keygen
do_dsa_keygen
fi
echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
echo
return $RETVAL
}
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
case "$1" in
start)
rh_status_q && exit 0
start
;;
stop)
if ! rh_status_q; then
rm -f $lockfile
exit 0
fi
stop
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
RETVAL=2
esac
exit $RETVAL
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
case "$1" in
start)
rh_status_q && exit 0
start
;;
stop)
if ! rh_status_q; then
rm -f $lockfile
exit 0
fi
stop
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}"
RETVAL=2
esac
exit $RETVAL
19.06.2013
03.07.2013 @pvb265 #imolug
bash Example
Questions?

Contenu connexe

Tendances

Be pinched by a cRUSTacean to prevent programming errors !
Be pinched by a cRUSTacean to prevent programming errors !Be pinched by a cRUSTacean to prevent programming errors !
Be pinched by a cRUSTacean to prevent programming errors !René Ribaud
 
Bash is not a second zone citizen programming language
Bash is not a second zone citizen programming languageBash is not a second zone citizen programming language
Bash is not a second zone citizen programming languageRené Ribaud
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting BasicsDr.Ravi
 
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...Zyxware Technologies
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting BasicsSudharsan S
 
Talk Unix Shell Script
Talk Unix Shell ScriptTalk Unix Shell Script
Talk Unix Shell ScriptDr.Ravi
 
Unix And C
Unix And CUnix And C
Unix And CDr.Ravi
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataAnne Nicolas
 
Talk Unix Shell Script 1
Talk Unix Shell Script 1Talk Unix Shell Script 1
Talk Unix Shell Script 1Dr.Ravi
 
DevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung FooDevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung Foobrian_dailey
 
Introduction to shell scripting
Introduction to shell scriptingIntroduction to shell scripting
Introduction to shell scriptingCorrado Santoro
 
Airlover 20030324 1
Airlover 20030324 1Airlover 20030324 1
Airlover 20030324 1Dr.Ravi
 
PHP-FIG: Past, Present and Future
PHP-FIG: Past, Present and FuturePHP-FIG: Past, Present and Future
PHP-FIG: Past, Present and FuturePhil Sturgeon
 
Unix Basics
Unix BasicsUnix Basics
Unix BasicsDr.Ravi
 
On UnQLite
On UnQLiteOn UnQLite
On UnQLitecharsbar
 
Introducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyIntroducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyNikhil Mungel
 

Tendances (19)

Be pinched by a cRUSTacean to prevent programming errors !
Be pinched by a cRUSTacean to prevent programming errors !Be pinched by a cRUSTacean to prevent programming errors !
Be pinched by a cRUSTacean to prevent programming errors !
 
Bash is not a second zone citizen programming language
Bash is not a second zone citizen programming languageBash is not a second zone citizen programming language
Bash is not a second zone citizen programming language
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting Basics
 
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...
Introduction to Bash Scripting, Zyxware Technologies, CSI Students Convention...
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting Basics
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
 
Talk Unix Shell Script
Talk Unix Shell ScriptTalk Unix Shell Script
Talk Unix Shell Script
 
Unix And C
Unix And CUnix And C
Unix And C
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Unix shell scripting
Unix shell scriptingUnix shell scripting
Unix shell scripting
 
Talk Unix Shell Script 1
Talk Unix Shell Script 1Talk Unix Shell Script 1
Talk Unix Shell Script 1
 
DevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung FooDevChatt 2010 - *nix Cmd Line Kung Foo
DevChatt 2010 - *nix Cmd Line Kung Foo
 
Introduction to shell scripting
Introduction to shell scriptingIntroduction to shell scripting
Introduction to shell scripting
 
Airlover 20030324 1
Airlover 20030324 1Airlover 20030324 1
Airlover 20030324 1
 
PHP-FIG: Past, Present and Future
PHP-FIG: Past, Present and FuturePHP-FIG: Past, Present and Future
PHP-FIG: Past, Present and Future
 
Unix Basics
Unix BasicsUnix Basics
Unix Basics
 
On UnQLite
On UnQLiteOn UnQLite
On UnQLite
 
Introducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyIntroducing Command Line Applications with Ruby
Introducing Command Line Applications with Ruby
 
01 linux basics
01 linux basics01 linux basics
01 linux basics
 

Similaire à Bash in theory and in practice - part two

Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciAtlassian
 
BSDM with BASH: Command Interpolation
BSDM with BASH: Command InterpolationBSDM with BASH: Command Interpolation
BSDM with BASH: Command InterpolationWorkhorse Computing
 
ShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaa
ShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaaShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaa
ShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaaewout2
 
Will iPython replace Bash?
Will iPython replace Bash?Will iPython replace Bash?
Will iPython replace Bash?Babel
 
Will iPython replace bash?
Will iPython replace bash?Will iPython replace bash?
Will iPython replace bash?Roberto Polli
 
Overloading Perl OPs using XS
Overloading Perl OPs using XSOverloading Perl OPs using XS
Overloading Perl OPs using XSℕicolas ℝ.
 
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策kwatch
 
Gogo shell
Gogo shellGogo shell
Gogo shelljwausle
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in RustInfluxData
 
Hudson以外の何か with 任意
Hudson以外の何か with 任意Hudson以外の何か with 任意
Hudson以外の何か with 任意bleis tift
 
PrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docx
PrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docxPrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docx
PrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docxChantellPantoja184
 
Functional Structures in PHP
Functional Structures in PHPFunctional Structures in PHP
Functional Structures in PHPMarcello Duarte
 
Best training-in-mumbai-shell scripting
Best training-in-mumbai-shell scriptingBest training-in-mumbai-shell scripting
Best training-in-mumbai-shell scriptingvibrantuser
 
Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)David Atchley
 
Nginx Workshop Aftermath
Nginx Workshop AftermathNginx Workshop Aftermath
Nginx Workshop AftermathDenis Zhdanov
 
Perl Intro 9 Command Line Arguments
Perl Intro 9 Command Line ArgumentsPerl Intro 9 Command Line Arguments
Perl Intro 9 Command Line ArgumentsShaun Griffith
 
2005_Structures and functions of Makefile
2005_Structures and functions of Makefile2005_Structures and functions of Makefile
2005_Structures and functions of MakefileNakCheon Jung
 

Similaire à Bash in theory and in practice - part two (20)

Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
BSDM with BASH: Command Interpolation
BSDM with BASH: Command InterpolationBSDM with BASH: Command Interpolation
BSDM with BASH: Command Interpolation
 
ShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaa
ShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaaShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaa
ShellAdvanced aaäaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Will iPython replace Bash?
Will iPython replace Bash?Will iPython replace Bash?
Will iPython replace Bash?
 
Will iPython replace bash?
Will iPython replace bash?Will iPython replace bash?
Will iPython replace bash?
 
Overloading Perl OPs using XS
Overloading Perl OPs using XSOverloading Perl OPs using XS
Overloading Perl OPs using XS
 
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
What is wrong on Test::More? / Test::Moreが抱える問題点とその解決策
 
Gogo shell
Gogo shellGogo shell
Gogo shell
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in Rust
 
Hudson以外の何か with 任意
Hudson以外の何か with 任意Hudson以外の何か with 任意
Hudson以外の何か with 任意
 
PrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docx
PrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docxPrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docx
PrizeExample.DS_Store__MACOSXPrizeExample._.DS_StoreP.docx
 
Functional Structures in PHP
Functional Structures in PHPFunctional Structures in PHP
Functional Structures in PHP
 
Es6 to es5
Es6 to es5Es6 to es5
Es6 to es5
 
KT on Bash Script.pptx
KT on Bash Script.pptxKT on Bash Script.pptx
KT on Bash Script.pptx
 
Best training-in-mumbai-shell scripting
Best training-in-mumbai-shell scriptingBest training-in-mumbai-shell scripting
Best training-in-mumbai-shell scripting
 
Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)Idiomatic Javascript (ES5 to ES2015+)
Idiomatic Javascript (ES5 to ES2015+)
 
PHP 5.3
PHP 5.3PHP 5.3
PHP 5.3
 
Nginx Workshop Aftermath
Nginx Workshop AftermathNginx Workshop Aftermath
Nginx Workshop Aftermath
 
Perl Intro 9 Command Line Arguments
Perl Intro 9 Command Line ArgumentsPerl Intro 9 Command Line Arguments
Perl Intro 9 Command Line Arguments
 
2005_Structures and functions of Makefile
2005_Structures and functions of Makefile2005_Structures and functions of Makefile
2005_Structures and functions of Makefile
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Dernier (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Bash in theory and in practice - part two