SlideShare a Scribd company logo
1 of 143
Download to read offline
Linux Shell
&
Shell Script
netman<netman@study-area.org>
Part I
Command Line
System Layer
O/S
hardware
software
user
Interface
kernel
hardware
shell
Shell Definition
● Command interpreter:
● Issue commands from user to system
● Display command results from system to user
Shell Type
● sh:
● Burne Shell (sh)
● Burne Again Shell (bash)
● csh:
● C Shell (csh)
● TC Shell (tcsh)
● Korn Shell (ksh)
● /etc/shells
Shell Prompt
● Function:
Telling the user:
You can type command now!
● Type:
● Super User: #
● Regular User: $ or >
Carriage Return (CR)
● Function:
Telling the system:
You can run command now!
● Generated by:
<Enter>
Command Line
Everything typed between Shell
Prompt and Carriage Return.
Command Line Components
● A Command (must present):
What to do?
● Options (zero or more):
How to do?
●Arguments (zero or more):
Which to do with?
Internal Field Separator (IFS)
● Function:
To separate command line components.
● Speak in general:
To cut a command line into words(fields).
● Generated by:
● <Space>
● <Tab>
● <Enter> (*note: CR also)
A Command Line Format
Command<IFS>[Options...]<IFS>[Arguments...]
Option Format
● Preceding Character:
­
+
●Full Format:
Starting with ­­
● Short Format:
Starting with ­
Combinable
Option Example
● Find the difference:
ls ­a ­l l
ls ­al l
ls ­all
ls ­­all
ls ­­ ­­all
A Simple Command: echo
● Function:
To display all arguments to STDOUT(screen),
plus an ending <newline> character.
A Simple Command: echo
● Major options:
­n : disable the trailing <newline>
­e : enable interpretation of escapes ()
Escaped Characters in echo
● Most Frequently Used:
 backslash
b backspace
c produce no further output
n new line
r carriage return
t horizontal tab
v vertical tab
0NNN byte with octal value
xHH byte with hexadecimal value
Examples of echo
● Using ­n option:
$ echo first line 
first line 
$ echo ­n first line 
first line $ 
Examples of echo
● Using escape character:
$ echo ­e "atbtcndtetf" 
a       b       c 
d       e       f  
Examples of echo
● Using escape with octal value:
$ echo ­e 
"141011142011143012144011145
011146" 
a       b       c 
d       e       f   
Examples of echo
● Using escape with hex value:
$ echo ­e 
"x61x09x62x09x63x0ax64x09x65
x09x66" 
a       b       c 
d       e       f    
Part II
Quoting
Character Type in Command Line
● Literal Character:
Plain text, no function
123456 abcdefg …
● Meta Character:
Reserved with functions
Frequently Used Meta Characters
=  : set variable value
$  : variable substitution
>  : redirect to STDOUT
<  : redirect from STDIN
|  : pipe line
&  : background running
() : run commands in nested sub-shell
{} : command grouping
;  : run commands in frequency
&& : run command while TRUE
|| : run command while FALSE
! : re-run command in history
Quoting Usage
● Purpose:
Disable the functions of Meta Characters.
Quoting Method
● Escaping (  ):
Disable meta character following backward
slash by each.
● Example:
$
(

<newline>
Quoting Method
● Hard Quoting ( '' ):
Disable all meta characters within single
quotes.
● Example:
'...$...(...)...'
Quoting Method
● Soft Quoting ( ”” ):
Disable some meta characters within double
quotes.
● Example:
“...$...(...)...“
Exception in Soft Quoting
● Reserved functions:
$ : substitute
 : escape
` : command substitute
! : history
Quoting Example
● Disable <IFS>:
$ A=B C # white space 
$ C: command not found.
$ echo $A
$ A="B C"
$ echo $A
B C 
Quoting Example
●Disable <CR>:
$ A='B 
> C
> '
$ echo "$A"
B
C  
Quoting Example
●Think about:
$ echo "$A"
B
C  
$ echo $A
B C 
Quoting Example
●Think about:
$ A=B C
$ echo '”$A”'
”$A”
$ echo “'$A'“
'B C' 
Quoting Example
● Identical:
$ awk '{print $0}' 1.txt
$ awk "{print $0}" 1.txt
$ awk {print $0} 1.txt
$ A=0
$ awk "{print $$A}" 1.txt
Part III
Variable
Variable Setting
● Setting format:
name=value
● Setting rules:
● No space
● No number beginning
● No $ in name
● Case sensitive
Variable Setting
● Common errors:
 A= B
 1A=B
 $A=B
 a=B
Variable Substitution
● Substitute then re-construct:
$ A=ls 
$ B=la 
$ C=/tmp 
$ $A ­$B $C
● Result:
$ ls ­la /tmp 
Viewing a Variable Value
● Using the echo command:
$ echo $A ­$B $C
ls ­la /tmp 
Value Expansion
● Using separator:
$ A=B:C:D
$ A=$A:E
● Using {}:
$ A=BCD
$ A=${A}E
The export command
● Purpose:
To set Environment Variable, inheritable in
sub shells.
Variable Exporting Method
● Using export command:
$ A=B
$ export A
Or
$ export A=B
● Using declare command:
$ declare ­x A
$ A=B
Variable Exportation Effect
A=B export A
Before exporting
After exporting
Viewing Environment Variable
● Using env command:
$ env
●Using export command:
$ export
Variable Revocation
● Using unset command:
$ A=B
$ B=C
$ unset $A
● Different to null value:
$ A=
$ unset A
Part IV
Sub Shell
Process Hierarchy
● Every command issues a process
when running.
● A command process is a child, and
the shell is the parent.
● Child process returns a value($?) to
parent when exists.
shell
command
Return
Value
Process Environment
● Child process inherit it's environment
from parent.
● However, any changing of
environment in a child will NEVER
effect the parent!
Shell Script
● Definition:
A serial of command lines defined in a text
file before we running them.
Script Running
● Using a sub shell to run commands:
Environment changing only effects the sub
shell.
● Interpreter is defined at the first line:
#!/path/to/shell
shell
sub shell
commands
Source Running
● Using source command to run script:
● There is no sub shell, interpreter is ignored.
● Environment changing effects the current
shell.
shell
commands
Exec Running
● Using exec command to run script:
● The current shell is terminated when script
starting.
● The process is hanged over to interpreter.
shell
commands
interpreter
Practice and Understand
● Write a shell script (my.sh):
pwd
cd /tmp
pwd
sleep 3
● Make it executable:
$ chmod +x my.sh
Practice and Understand
● Run the script in different ways:
$ ./my.sh
$ pwd
$ . ./my.sh
$ pwd
$ cd ­
$ exec ./my.sh
Identical to:
source ./my.sh
Part V
Command Grouping
Sequence Running
● Using the ; symbol:
$ cmd1 ; cmd2; cmd3
● Equivalent to:
$ cmd1
$ cmd2
$ cmd3
Command Grouping Method
● Using {} to run command group in
current shell:
$ { cmd1 ; cmd2; cmd3; }
● Using () to run command group in a
nested sub shell:
$ ( cmd1 ; cmd2; cmd3 )
Command Grouping Effect
● Using {} :
Environment changing effects the
current shell.
● Using ():
Environment changing does NOT
effects the current shell.
Named Command Group
● Also known as function
Command group is run when calling the
function name.
$ my_function () {
cmd1
cmd2
cmd3
}
$ my_function
Part VI
Shell Features
Command Substitution
● Using $() :
$ cmd1 … $(cmd2 …) … 
● Using `` (don't be confused with ''):
$ cmd1 … `cmd2 …` … 
Multiple Substitution
● Using $() :
$ cmd1 … $(cmd2 … $(cmd3 … ) … ) … 
● Using `` :
$ cmd1 … `cmd2 … `cmd3 … ` … ` … 
Advanced Variable Substitution
● ${#var} :
the length of value
Advanced Variable Substitution
● ${var#pattern} :
remove shortest pattern at beginning
● ${var##pattern} :
remove longest pattern at beginning
● ${var%pattern} :
remove shortest pattern at end
● ${var%%pattern} :
remove longest pattern at end
Advanced Variable Substitution
● ${var:n:m} :
since position n to have m characters,
(position starting from 0)
Advanced Variable Substitution
● ${var/pattern/str} :
substitute the first pattern to str
● ${var//pattern/str} :
substitute all pattern to str
Array Setting
● Using ():
array=(value1 value2 value3)
● Position assigning:
array[0]=value1
array[1]=value2
array[2]=value3
Array Substitution
● All values:
${array[@]}
${array[*]}
● Position values:
${array[0]}
${array[1]}
${array[2]}
Array Substitution
● Length of value:
${#array[0]}
● Number of value:
${#array[@]}
Arithmetic Expansion
● 32Bit integer:
-2,147,483,648 to 2,147,483,647
● No floating point !
● Using external commands instead:
● bc
● awk
● perl
Arithmetic Operation
● Operators:
+ : add
­ : subtract
* : multiply
/ : divide
& : AND
| : OR
^ : XOR
! : NOT
Arithmetic Operation
●Using $(()) or $[]:
$ a=5;b=7;c=2
$ echo $((a+b*c))
19
$ echo $[(a+b)/c]
6
Arithmetic Operation
●Using declare with variable:
$ declare ­i d
$ d=(a+b)/c
$ echo $d
6
Arithmetic Operation
●Using let with variable:
$ let f=(a+b)/c
$ echo $f
6
Arithmetic Operation
●Using (()) with variable:
$ a=1
$ ((a++))
$ echo $a
2
$((a­=5))
$ echo $a
­3
Part VII
Positional Parameter
Script Parameter
● Assigned by command line:
script_name par1 par2 par3 ...
● Reset by set command:
set par1 par2 par3 ...
● Separated by <IFS> :
set “par1 par2” par3 ...
Parameter Gathering
● Substituted by $n (n=position) :
$0 $1 $2 $3 ...
● Position:
$0 : script_name itself
$1 : the 1st parameter
$2 : the 2nd parameter
and so on...
Parameter Substitution
● Reserved variables:
${nn} : position greater than 9
$# : the number of parameters
$@ or $* : All parameters individually
“$*” : All parameters in one
“$@” : All parameters with position reserved
Parameter Shifting
● Using shift [n]
to erase the first n parameters.
Function Parameter
● Function has own position except $0
Part VIII
Data Stream
File Descriptor (FD)
● Processes use File Descriptors to
input or output (I/O) data with system
● Each process has 256 FD
●The first 3 FD are standard
0 : Standard Input (STDIN)
1 : Standard Output (STDOUT)
2 : Standard Error Output (STDERR)
Standard FD
● By default, each standard FD is
connected to an I/O device:
STDIN : Keyboard
STDOUT : Screen
STDERR : Screen
processFD0
FD2
FD1
keyboard screen
IO Redirection
● Standard FD can be changed in
command line:
STDIN : < file
STDOUT : > file
STDERR : 2> file
processFD0
FD2
FD1
keyboard screen
IO Redirection Example
● Command default:
$ mail -s test root
this is a test mail.
please skip.
^d
IO Redirection Example
● Change the STDIN by using < :
$ mail -s test root < /etc/passwd
IO Redirection Example
● Change the STDOUT by using > :
$ cat /etc/passwd > std.out
IO Redirection Example
● Change the STDERR by using 2> :
$ cat /etc/password 2> std.err
Device /dev/null
● Keep the STDERR only:
$ find /etc > /dev/null
Output Appending
● Keep the existing content in target
file by using >> :
$ find /etc >/dev/null 2>> std.out
HERE Document
● Multiple line input by using << TAG :
$ mail -s test root << .
this is a test mail.
please skip.
.
Output Combination
● Save STDOUT and STDERR to a same
file by using 2>&1 :
$ cat std.out std.none > std.both 2>&1
Or
$ cat std.out std.none &> std.both
● Note:
Order is important! cmd1
FD2
FD1
FD0
Pipe Line
● Connect STDOUT of left command to
STDIN of right command:
$ cmd1 | cmd2
cmd1
FD2
FD1
FD0
screen
cmd2
FD2
FD1
FD0
Pipe Line
● Combine STDERR into STDOUT in
pipe line:
$ cmd1 2>&1 | cmd2
cmd1
FD2
FD1
FD0
screen
cmd2
FD2
FD1
FD0
Output Splitting
● Tap an output copy to a file by using
command tee :
$ cmd1 | tee file | cmd2
$ cmd1 | tee -a file | cmd2
cmd1
FD2
FD1
FD0
tee file
Xargs
● Change the STDIN to be as argument
by using xargs :
$ cmd1 | xargs cmd2
cmd1
FD2
FD1
FD0
cmd2 --opt args...
FD0
Part IX
Conditional Execution
Return Value (RV)
● Every command has a Return Value
when exists, also called Exist Status.
● Specified by exit in script:
exit [n]
Or, inherited from last command
● Using $? to have RV of last command
Return Value Range
● Range:
0-255
● Type:
TRUE: 0
FALSE: 1-255
Conditional Running
● Using && to run only while TRUE:
cmd1 && cmd2
●Using || to run only while FALSE:
cmd1 || cmd2
Test Condition
● Using test command to return
TRUE or FALSE accordingly:
test expression
[ expression ]
Test Expression
( EXPRESSION )
       EXPRESSION is true
! EXPRESSION
       EXPRESSION is false
EXPRESSION1 ­a EXPRESSION2
       both EXPRESSION1 and EXPRESSION2 are true
EXPRESSION1 ­o EXPRESSION2
       either EXPRESSION1 or EXPRESSION2 is true
String Expression
­n STRING
       the length of STRING is nonzero
STRING equivalent to ­n STRING
­z STRING
       the length of STRING is zero
STRING1 = STRING2
       the strings are equal
STRING1 != STRING2
       the strings are not equal
Integer Expression
INTEGER1 ­eq INTEGER2
       INTEGER1 is equal to INTEGER2
INTEGER1 ­ge INTEGER2
       INTEGER1 is greater than or equal to INTEGER2
INTEGER1 ­gt INTEGER2
       INTEGER1 is greater than INTEGER2
INTEGER1 ­le INTEGER2
       INTEGER1 is less than or equal to INTEGER2
INTEGER1 ­lt INTEGER2
       INTEGER1 is less than INTEGER2
INTEGER1 ­ne INTEGER2
       INTEGER1 is not equal to INTEGER2
File Expression
FILE1 ­nt FILE2
       FILE1 is newer (mtime) than FILE2
FILE1 ­ot FILE2
       FILE1 is older than FILE2
File Expression
­e FILE
       FILE exists
­s FILE
       FILE exists and has a size greater than 
zero
File Expression
­d FILE
       FILE exists and is a directory
­f FILE
       FILE exists and is a regular file
­L FILE
       FILE exists and is a symbolic link (same 
as ­h)
File Expression
­u FILE
       FILE exists and its set­user­ID bit is set
­g FILE
       FILE exists and is set­group­ID
­k FILE
       FILE exists and has its sticky bit set
File Expression
­G FILE
       FILE exists and is owned by the effective 
group ID
­O FILE
       FILE exists and is owned by the effective 
user ID
File Expression
­G FILE
       FILE exists and is owned by the effective 
group ID
­O FILE
       FILE exists and is owned by the effective 
user ID
File Expression
­r FILE
       FILE exists and read permission is granted
­w FILE
       FILE exists and write permission is granted
­x FILE
       FILE exists and execute (or search) 
permission is granted
Test Example
● Think about:
$ unset A
$ test ­n $A
$ echo $?
0
$ test ­n “$A”
$ echo $?
1
Test Example
● Tips:
test str
test ­n str
test ­n
test ­n ­n
test ­n $A
test ­n
test ­n ­n
Test Example
● Tips:
test ­n “$A“
test ­n <NULL>
The if­then Statement
● Syntax:
if cmd1 
then
cmd2...
fi
The if­then­else Statement
● Syntax:
if cmd1 
then
cmd2 ...
else
cmd3 ...
fi
Using Command Group
● Syntax:
cmd1 && {
cmd2 ...
:
} || {
cmd3 ...
}
Multiple Conditions (elif)
● Syntax:
if cmd1 
then
cmd2 ...
elif cmd3
then
cmd4 ...
fi
repeatable
Run By case
● Syntax:
case “$VAR” in
pattern1)
cmd1 ...
;;
pattern2)
cmd2 ...
;;
esac
repeatable
Part X
Looping
Loop Statement
● Loop flow:
loop
condition
do
cmd ...
done
The for Loop
● Syntax:
for VAR in values ...
do
commands ...
done
The for Loop
● Tips:
● A new variable is set when running a for loop
● The value sources are vary.
● The times of loop depends on the number of
value.
● Each value is used once in the do­done
statement in order.
The while Loop
● Syntax:
while cmd1
do
cmd2 ...
done
The while Loop
● Tips:
● The cmd1 is run at each loop cycle.
● The do­done statement only be run while cmd1
returns TRUE value.
● The whole loop is terminated once cmd1 returns
FALSE value.
● Infinity loop may be designed in purpose, or
accidentally.
The until Loop
● Syntax:
until cmd1
do
cmd2 ...
done
The until Loop
● Tips:
● The cmd1 is run at each loop cycle.
● The do­done statement only be run while cmd1
returns FALSE value.
● The whole loop is terminated once cmd1 returns
TRUE value.
Using break In Loop
● Loop flow:
loop
condition
do
cmd ...
break
cmd ...
done
Using break In Loop
● Tips:
● The loop is terminated once break runs.
● A number can be specified to break the Nth
outbound loop.
1
2
3
Using continue In Loop
● Loop flow:
loop
condition
do
cmd ...
continue
cmd ...
done
Using continue In Loop
● Tips:
● The remained lines in current loop cycle are
omitted once continue runs, script goes straight
to continue next cycle.
● A number can be specified to continue the Nth
outbound loop.
Using sleep In Loop
● Tips:
● The script is temporally stopped when the
sleep runs.
● A number of second can be specified to stop the
script in how long.
● Useful for periodical jobs with infinity loop.
Plus:
Regular Expression
Regular Expression (RE)
● Tips:
● Processing in line base.
● Meta characters may conflict with shell, mu be
quoted.
● Commonly used in text filtering:
grep, sed, awk, perl, php, etc...
Regular Expression
● Character set:
abc : individual character
(abc) : a set of character
(abc|xyz) : one set of
[abc] : one character of list
[^abc] : one character of non-list
Regular Expression
● Anchor Characters:
^ : the beginning of line
$ : the end of line
< : the beginning of word
> : the end of word
Regular Expression
● Modifier
To modify the preceding character or set:
* : zero or more times
? : zero or one times
+ : one or more times
{n} : n times
{n,m} : n to m times
Regular Expression
● Boundary
IMPORTANT: anything outside the boundary is
ignored.
● Think about:
Which of following match abc{3,5}?
abcc
abcccc
abcccccc
Regular Expression
● Tips:
The abc{3,5} doesn't care about what
character following the 5th c :
abcccccc
Regular Expression
● Extended and traditional RE:
Extended Traditional
+ +
? ?
() ()
{} {}
| (none)
Show Time:
Live Coding
The End

More Related Content

What's hot (20)

Express js
Express jsExpress js
Express js
 
Lexical Analysis - Compiler design
Lexical Analysis - Compiler design Lexical Analysis - Compiler design
Lexical Analysis - Compiler design
 
Javascript variables and datatypes
Javascript variables and datatypesJavascript variables and datatypes
Javascript variables and datatypes
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
 
Tomcat
TomcatTomcat
Tomcat
 
Kotlin InDepth Tutorial for beginners 2022
Kotlin InDepth Tutorial for beginners 2022Kotlin InDepth Tutorial for beginners 2022
Kotlin InDepth Tutorial for beginners 2022
 
Php introduction
Php introductionPhp introduction
Php introduction
 
Shift reduce parser
Shift reduce parserShift reduce parser
Shift reduce parser
 
Lesson 2 php data types
Lesson 2   php data typesLesson 2   php data types
Lesson 2 php data types
 
Intermediate code generator
Intermediate code generatorIntermediate code generator
Intermediate code generator
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
 
C# operators
C# operatorsC# operators
C# operators
 
9. Input Output in java
9. Input Output in java9. Input Output in java
9. Input Output in java
 
Basics of JavaScript
Basics of JavaScriptBasics of JavaScript
Basics of JavaScript
 
Form using html and java script validation
Form using html and java script validationForm using html and java script validation
Form using html and java script validation
 
Java interfaces
Java interfacesJava interfaces
Java interfaces
 
Java script ppt
Java script pptJava script ppt
Java script ppt
 
Java Script ppt
Java Script pptJava Script ppt
Java Script ppt
 

Similar to Linux shell

Linux fundamental - Chap 00 shell
Linux fundamental - Chap 00 shellLinux fundamental - Chap 00 shell
Linux fundamental - Chap 00 shellKenny (netman)
 
Shell Programming_Module2_Part2.pptx.pdf
Shell Programming_Module2_Part2.pptx.pdfShell Programming_Module2_Part2.pptx.pdf
Shell Programming_Module2_Part2.pptx.pdfHIMANKMISHRA2
 
Getting by with just psql
Getting by with just psqlGetting by with just psql
Getting by with just psqlCorey Huinker
 
Perl - laziness, impatience, hubris, and one liners
Perl - laziness, impatience, hubris, and one linersPerl - laziness, impatience, hubris, and one liners
Perl - laziness, impatience, hubris, and one linersKirk Kimmel
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from insidejulien pauli
 
String handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering College
String handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering CollegeString handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering College
String handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering CollegeDhivyaa C.R
 
Linux fundamental - Chap 14 shell script
Linux fundamental - Chap 14 shell scriptLinux fundamental - Chap 14 shell script
Linux fundamental - Chap 14 shell scriptKenny (netman)
 
Add an interactive command line to your C++ application
Add an interactive command line to your C++ applicationAdd an interactive command line to your C++ application
Add an interactive command line to your C++ applicationDaniele Pallastrelli
 
ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015Michiel Borkent
 
shellScriptAlt.pptx
shellScriptAlt.pptxshellScriptAlt.pptx
shellScriptAlt.pptxNiladriDey18
 

Similar to Linux shell (20)

Linux fundamental - Chap 00 shell
Linux fundamental - Chap 00 shellLinux fundamental - Chap 00 shell
Linux fundamental - Chap 00 shell
 
Shell Programming_Module2_Part2.pptx.pdf
Shell Programming_Module2_Part2.pptx.pdfShell Programming_Module2_Part2.pptx.pdf
Shell Programming_Module2_Part2.pptx.pdf
 
Getting by with just psql
Getting by with just psqlGetting by with just psql
Getting by with just psql
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Perl - laziness, impatience, hubris, and one liners
Perl - laziness, impatience, hubris, and one linersPerl - laziness, impatience, hubris, and one liners
Perl - laziness, impatience, hubris, and one liners
 
Shellprogramming
ShellprogrammingShellprogramming
Shellprogramming
 
Sdl Basic
Sdl BasicSdl Basic
Sdl Basic
 
Quick tour of PHP from inside
Quick tour of PHP from insideQuick tour of PHP from inside
Quick tour of PHP from inside
 
Php engine
Php enginePhp engine
Php engine
 
UNIT II (7).pptx
UNIT II (7).pptxUNIT II (7).pptx
UNIT II (7).pptx
 
UNIT II (7).pptx
UNIT II (7).pptxUNIT II (7).pptx
UNIT II (7).pptx
 
String handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering College
String handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering CollegeString handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering College
String handling and arrays by Dr.C.R.Dhivyaa Kongu Engineering College
 
Gun make
Gun makeGun make
Gun make
 
C notes.pdf
C notes.pdfC notes.pdf
C notes.pdf
 
Linux fundamental - Chap 14 shell script
Linux fundamental - Chap 14 shell scriptLinux fundamental - Chap 14 shell script
Linux fundamental - Chap 14 shell script
 
Add an interactive command line to your C++ application
Add an interactive command line to your C++ applicationAdd an interactive command line to your C++ application
Add an interactive command line to your C++ application
 
lec4.docx
lec4.docxlec4.docx
lec4.docx
 
ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015ClojureScript loves React, DomCode May 26 2015
ClojureScript loves React, DomCode May 26 2015
 
shellScriptAlt.pptx
shellScriptAlt.pptxshellScriptAlt.pptx
shellScriptAlt.pptx
 
Ruby training day1
Ruby training day1Ruby training day1
Ruby training day1
 

More from Kenny (netman)

rpi_audio configuration steps
rpi_audio configuration stepsrpi_audio configuration steps
rpi_audio configuration stepsKenny (netman)
 
Importance of linux system fundamental in technical documentation reading
Importance of linux system fundamental in technical documentation readingImportance of linux system fundamental in technical documentation reading
Importance of linux system fundamental in technical documentation readingKenny (netman)
 
Linux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System RescueLinux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System RescueKenny (netman)
 
Linux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingLinux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingKenny (netman)
 
Linux fundamental - Chap 13 account management
Linux fundamental - Chap 13 account managementLinux fundamental - Chap 13 account management
Linux fundamental - Chap 13 account managementKenny (netman)
 
Linux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware ManagementLinux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware ManagementKenny (netman)
 
Linux fundamental - Chap 11 boot
Linux fundamental - Chap 11 bootLinux fundamental - Chap 11 boot
Linux fundamental - Chap 11 bootKenny (netman)
 
Linux fundamental - Chap 10 fs
Linux fundamental - Chap 10 fsLinux fundamental - Chap 10 fs
Linux fundamental - Chap 10 fsKenny (netman)
 
Linux fundamental - Chap 09 pkg
Linux fundamental - Chap 09 pkgLinux fundamental - Chap 09 pkg
Linux fundamental - Chap 09 pkgKenny (netman)
 
Linux fundamental - Chap 08 proc
Linux fundamental - Chap 08 procLinux fundamental - Chap 08 proc
Linux fundamental - Chap 08 procKenny (netman)
 
Linux fundamental - Chap 07 vi
Linux fundamental - Chap 07 viLinux fundamental - Chap 07 vi
Linux fundamental - Chap 07 viKenny (netman)
 
Linux fundamental - Chap 06 regx
Linux fundamental - Chap 06 regxLinux fundamental - Chap 06 regx
Linux fundamental - Chap 06 regxKenny (netman)
 
Linux fundamental - Chap 05 filter
Linux fundamental - Chap 05 filterLinux fundamental - Chap 05 filter
Linux fundamental - Chap 05 filterKenny (netman)
 
Linux fundamental - Chap 04 archive
Linux fundamental - Chap 04 archiveLinux fundamental - Chap 04 archive
Linux fundamental - Chap 04 archiveKenny (netman)
 

More from Kenny (netman) (20)

rpi_audio configuration steps
rpi_audio configuration stepsrpi_audio configuration steps
rpi_audio configuration steps
 
Rpi audio
Rpi audioRpi audio
Rpi audio
 
Importance of linux system fundamental in technical documentation reading
Importance of linux system fundamental in technical documentation readingImportance of linux system fundamental in technical documentation reading
Importance of linux system fundamental in technical documentation reading
 
Ha opensuse
Ha opensuseHa opensuse
Ha opensuse
 
Chap 19 web
Chap 19 webChap 19 web
Chap 19 web
 
Chap 18 net
Chap 18 netChap 18 net
Chap 18 net
 
Chap 17 advfs
Chap 17 advfsChap 17 advfs
Chap 17 advfs
 
About the Course
About the CourseAbout the Course
About the Course
 
Linux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System RescueLinux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System Rescue
 
Linux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job SchedulingLinux fundamental - Chap 15 Job Scheduling
Linux fundamental - Chap 15 Job Scheduling
 
Linux fundamental - Chap 13 account management
Linux fundamental - Chap 13 account managementLinux fundamental - Chap 13 account management
Linux fundamental - Chap 13 account management
 
Linux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware ManagementLinux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware Management
 
Linux fundamental - Chap 11 boot
Linux fundamental - Chap 11 bootLinux fundamental - Chap 11 boot
Linux fundamental - Chap 11 boot
 
Linux fundamental - Chap 10 fs
Linux fundamental - Chap 10 fsLinux fundamental - Chap 10 fs
Linux fundamental - Chap 10 fs
 
Linux fundamental - Chap 09 pkg
Linux fundamental - Chap 09 pkgLinux fundamental - Chap 09 pkg
Linux fundamental - Chap 09 pkg
 
Linux fundamental - Chap 08 proc
Linux fundamental - Chap 08 procLinux fundamental - Chap 08 proc
Linux fundamental - Chap 08 proc
 
Linux fundamental - Chap 07 vi
Linux fundamental - Chap 07 viLinux fundamental - Chap 07 vi
Linux fundamental - Chap 07 vi
 
Linux fundamental - Chap 06 regx
Linux fundamental - Chap 06 regxLinux fundamental - Chap 06 regx
Linux fundamental - Chap 06 regx
 
Linux fundamental - Chap 05 filter
Linux fundamental - Chap 05 filterLinux fundamental - Chap 05 filter
Linux fundamental - Chap 05 filter
 
Linux fundamental - Chap 04 archive
Linux fundamental - Chap 04 archiveLinux fundamental - Chap 04 archive
Linux fundamental - Chap 04 archive
 

Recently uploaded

『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationMarko4394
 

Recently uploaded (20)

『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentation
 

Linux shell