Tonight we dine in shell Tonight we dine in shell Hands-On Unix - - PowerPoint PPT Presentation

tonight we dine in shell tonight we dine in shell
SMART_READER_LITE
LIVE PREVIEW

Tonight we dine in shell Tonight we dine in shell Hands-On Unix - - PowerPoint PPT Presentation

Lecture 3 Lecture 3 Tonight we dine in shell Tonight we dine in shell Hands-On Unix System Administration DeCal 2012-09-17 Review $ 1 , $ 2 , . . . ; $ @ , $ * , $ # , $ 0 , $ ? e n v i r o n m e n t v


slide-1
SLIDE 1

Lecture 3

Tonight we dine in shell

Lecture 3

Tonight we dine in shell

Hands-On Unix System Administration DeCal 2012-09-17

slide-2
SLIDE 2

Review

  • $

1 , $ 2 , . . . ; $ @ , $ * , $ # , $ , $ ?

  • e

n v i r

  • n

m e n t v a r i a b l e s

  • e

n v , e x p

  • r

t

  • $

H O M E , $ P A T H

  • $

P S 1 = n \ [ \ e [ ; 3 1 m \ ] \ u \ [ \ e [ m \ ] @ \ [ \ e [ 1 ; 3 4 m \ ] \ w \ [ \ e [ 2 ; 9 m \ ] \ @ \ n \ [ \ e [ m \ ] \ [ \ e [ ; 3 5 m \ ] \ h \ [ \ e [ m \ ] \ [ \ e [ ; 3 1 m \ ] \ $ \ [ \ e [ m \ ] \ [ \ e [ ; 3 2 m \ ]

  • q

u

  • t

e s , ' a n d "

  • a

l i a s e s

  • g

l

  • b

b i n g

  • b

a c k t i c k s ( ` )

  • p

i p e s ( | )

slide-3
SLIDE 3

t e e

  • e

s s e n t i a l l y a p i p e

  • m
  • s

t l y u s e d t

  • d
  • $

s u d

  • <

c

  • m

m a n d > | s u d

  • t

e e < f i l e >

slide-4
SLIDE 4

f i n d

  • g
  • g

l e s e a r c h

  • n

s t e r

  • i

d s f

  • r

f i l e s y s t e m

  • r

e g e x e s , d e p t h s , m t i m e s , t y p e s , g r

  • u

p s , u s e r s , e t c .

$ f i n d a b

  • t

y p e f !

  • n

a m e ' c r a z y '

  • p

r i n t f ' % f \ n ' $ f i n d /

  • n

e w e r t t t

  • u

s e r w n j

  • p

r i n t $ f i n d

  • L

/ u s r / p

  • r

t s / p a c k a g e s

  • t

y p e l

  • e

x e c r m

  • {

} +

slide-5
SLIDE 5

x a r g s

  • m
  • s

t u s e d a f t e r a f i n d :

  • print0

u s e d w i t h f i n d t

  • p

r i n t N U L c h a r a c t e r g e n e r a l l y f

  • r

x a r g s

u s e d i n x a r g s i n c

  • n

j u n c t i

  • n

w i t h

  • p

r i n t f

  • r

` f i n d ' f

  • r

f i l e s w i t h s p a c e s

$ f i n d .

  • n

a m e ' r a n d

  • m

c r a p f i l e ' | x a r g s r m $ f i n d .

  • n

a m e ' f i l e t

  • b

e m

  • v

e d ' | x a r g s

  • I

{ } m v { } s

  • m

e f

  • l

d e r

slide-6
SLIDE 6

l

  • c

a t e

  • c

a c h e d g

  • g

l e s e a r c h f

  • r

f i l e s y s t e m

  • p

r e c

  • m

p i l e d d a t a b a s e

  • f

a s t e r t h a n `

find'

, b u t n

  • t

a s d e t a i l e d i n s e a r c h

slide-7
SLIDE 7

f

  • r

and w h i l e loops

  • b

u i l t i n t

  • s

h e l l S t r u c t u r e : O n e

  • l

i n e r , w i t h s e m i

  • c
  • l
  • n

s :

$ f

  • r

{ s

  • m

e t h i n g } ; d

  • s
  • m

e c

  • m

m a n d ; s

  • m

e

  • t

h e r c

  • m

m a n d ; d

  • n

e f

  • r

{ s

  • m

e t h i n g } d

  • s
  • m

e c

  • m

m a n d s

  • m

e

  • t

h e r c

  • m

m a n d d

  • n

e

slide-8
SLIDE 8

f

  • r

and

w h i l e loops

S t r u c t u r e O n e

  • l

i n e r , w i t h s e m i

  • c
  • l
  • n

s :

$ w h i l e { s

  • m

e e x p r e s s i

  • n

} ; d

  • s
  • m

e c

  • m

m a n d ; s

  • m

e

  • t

h e r c

  • m

m a n d ; d

  • n

e w h i l e { s

  • m

e t h i n g } d

  • s
  • m

e c

  • m

m a n d s

  • m

e

  • t

h e r c

  • m

m a n d d

  • n

e

slide-9
SLIDE 9

a w k

  • f

u l l p r

  • g

r a m m i n g l a n g u a g e

  • g

e n e r a l l y u s e d t

  • d
  • (

s i m p l e ) r e g u l a r e x p r e s s i

  • n

s

  • n

f i l e s

  • M
  • r

e i n f

  • a

t :

h t t p s : / / e n . w i k i p e d i a .

  • r

g / w i k i / A w k , h t t p : / / w w w . g r y m

  • i

r e . c

  • m

/ U n i x / A w k . h t m l

slide-10
SLIDE 10

Moar shell-fu

  • grep
  • sed
  • cut
  • tr
  • wc
  • sort
  • head
  • tail
slide-11
SLIDE 11

t r

  • S

E T 1 a n d S E T 2 d e f i n e

  • r

d e r e d s e t s

  • f

c h a r a c t e r s ( c h a r a c t e r s

  • f

i n p u t t h a t ` t r '

  • p

e r a t e s

  • n

)

  • F

u n c t i

  • n

i s t

  • r

e p l a c e , s q u e e z e , r e m

  • v

e c h a r a c t e r s f r

  • m

i t s i n p u t

– N

  • f

i l e n a m e s t

  • p

r

  • v

i d e a s a r g u m e n t s

  • R

e a d s s t r e a m f r

  • m

s t d i n , w r i t e s t

  • s

t d

  • u

t

t r [ O P T I O N ] . . . S E T 1 [ S E T 2 ]

slide-12
SLIDE 12

t r

  • E

x a m p l e s

– R

e p l a c e c h a r a c t e r s i n S E T 1 w i t h c

  • r

r e s p

  • n

d i n g c h a r a c t e r s i n S E T 2 c a n u s e r a n g e s ( e . g , a

  • z

A

  • Z

)

  • C
  • m

m

  • n

l y u s e d

  • p

t i

  • n

s

  • d

,

  • d

e l e t e

  • s

,

  • s

q u e e z e

  • r

e p e a t s

t r [ O P T I O N ] . . . S E T 1 [ S E T 2 ] $ e c h

t h e q u i c k b r

  • w

n f

  • x

” | t r a b c d e f $ e c h

t h e q u i c k b r

  • w

n f

  • x

” | t r a

  • z

A

  • Z
slide-13
SLIDE 13

s

  • r

t

  • U

s e f u l

  • p

t i

  • n

s :

  • d

,

  • d

i c t i

  • n

a r y

  • r

d e r

  • C
  • n

s i d e r b l a n k s a n d a l p h a n u m e r i c c h a r a c t e r s

  • n

,

  • n

u m e r i c

  • s
  • r

t

S

  • r

t b y n u m e r i c a l v a l u e

  • r

,

  • r

e v e r s e

R e v e r s e t h e r e s u l t

  • f

c

  • m

p a r i s

  • n

s

  • f

,

  • i

g n

  • r

e

  • c

a s e

  • k

( c

  • l

u m n ) ,

  • n

k 2 m e a n s s

  • r

t c

  • l

u m n 2 n u m e r i c a l l y

s

  • r

t [ O P T I O N ] . . . [ F I L E ] . . .

slide-14
SLIDE 14

c u t

  • P

r i n t s e l e c t e d p a r t s

  • f

l i n e s f r

  • m

e a c h F I L E (

  • r

s t d i n ) t

  • s

t d

  • u

t

  • U

s e f u l

  • p

t i

  • n

s :

  • d

,

  • d

e l i m t e r = D E L I M

  • f

,

  • f

i e l d s = L I S T

c u t [ O P T I O N ] . . . [ F I L E ] . . .

slide-15
SLIDE 15

h e a d / t a i l

  • V

i e w f i r s t / l a s t p a r t s

  • f

f i l e

  • U

s e f u l f

  • r

v i e w i n g l

  • g

s

  • D

e f a u l t : v i e w f i r s t / l a s t 1 l i n e s

  • C
  • m

m

  • n
  • p

t i

  • n

s

– -

n ,

  • l

i n e s = N

  • O

u t p u t f i r s t / l a s t N l i n e s ,

  • t

a i l

  • f

< f i l e >

– “

f

  • l

l

  • w

” t h e f i l e ,

  • u

t p u t a p p e n d e d d a t a a s < f i l e > g r

  • w

s

  • t

a i l

  • n

+ N < f i l e >

  • r

t a i l

  • l

i n e s = + N < f i l e >

– S

t a r t i n g f r

  • m

N ,

  • u

t p u t N t

  • r

e s t

  • f

f i l e

  • h

e a d

  • l

i n e s =

  • N

< f i l e >

– V

i e w e v e r y t h i n g b u t t h e l a s t N l i n e s i n < f i l e >

slide-16
SLIDE 16

w c

  • W
  • r

d c

  • u

n t

  • P

r i n t n e w l i n e , w

  • r

d , a n d b y t e c

  • u

n t s

  • w

c

  • l

, p r i n t n e w l i n e c

  • u

n t ( c

  • u

n t l i n e s )

  • w

c

  • w

, p r i n t w

  • r

d c

  • u

n t

slide-17
SLIDE 17

Regular Expressions (regex)

  • S

t r i n g m a t c h i n g

  • S

e t

  • f

m e t a c h a r a c t e r s l e t y

  • u

s e a r c h f

  • r

t e x t t h a t f i t s c r i t e r i a

  • T

e x t e d i t

  • r

s , u t i l i t i e s , p r

  • g

r a m m i n g l a n g u a g e s

 g

r e p , s e d , a w k , v i ( m )

 P

e r l , R u b y , e t c .

  • M

a n y f l a v

  • r

s , P O S I X B R E

  • R

e g e x g l

  • b

s / w i l d c a r d s ≠

  • D

i f f e r e n t s e t s

  • f

m e t a c h a r a c t e r s u s e d f

  • r

d i f f e r e n t p u r p

  • s

e s

  • F

i l e n a m e e x p a n s i

  • n

v s . s t r i n g m a t c h i n g

  • T

h e s h e l l i t s e l f d

  • e

s n

  • t

r e c

  • g

n i z e R E ' s . I t i s t h e c

  • m

m a n d s a n d u t i l i t i e s , t h a t d

  • .
slide-18
SLIDE 18

Basic Regex

\ ( b a c k s l a s h ) t u r n

  • f

f s p e c i a l m e a n i n g

  • f

f

  • l

l

  • w

i n g c h a r a c t e r ( e s c a p i n g ) . ( p e r i

  • d

) m a t c h a n y s i n g l e c h a r a c t e r [ . . ] ( b r a c k e t e x p r e s s i

  • n

)

– M

a t c h e s O N E

  • f

a n y

  • f

t h e e n c l

  • s

e d c h a r a c t e r s

– H

y p h e n s i n d i c a t e a r a n g e

  • f

c h a r a c t e r s ( a

  • z

, A

  • Z

,

  • 9

)

* ( a q u a n t i f i e r ) m a t c h a n y n u m b e r

  • r

n

  • n

e

  • f

p r e c e d i n g c h a r a c t e r

– e

. g , a * m a t c h e s ' a b c ' , ' b c '

– a

a * m a t c h e s ' a b c ' b u t n

  • t

' b c '

slide-19
SLIDE 19

Anchors (regex)

S p e c i f y w h e r e m a t c h i n g t e x t s h

  • u

l d b e ^M a t c h f

  • l

l

  • w

i n g r e g e x a t b e g i n n i n g

  • f

l i n e $M a t c h p r e c e d i n g r e g e x a t e n d

  • f

l i n e

slide-20
SLIDE 20

Examples

R e g e x | M a t c h e s

  • t
  • l

s t

  • y

| t

  • l

s t

  • y

, a n y w h e r e ^ t

  • l

s t

  • y

| t

  • l

s t

  • y

, b e g i n n i n g

  • f

l i n e t

  • l

s t

  • y

$ | t

  • l

s t

  • y

, e n d

  • f

l i n e ^ t

  • l

s t

  • y

$ | a l i n e c

  • n

t a i n i n g e x a c t l y ' t

  • l

s t

  • y

' a n d n

  • t

h i n g e l s e [ T t ]

  • l

s t

  • y

| E i t h e r T

  • l

s t

  • y
  • r

t

  • l

s t

  • y

t

  • l

. t

  • y

| t

  • l

, f

  • l

l

  • w

e d b y a n y c h a r a c t e r , f

  • l

l

  • w

e d b y t

  • y

T

  • l

. * t

  • y

| t

  • l

, a n y s e q u e n c e

  • f
  • r

m

  • r

e c h a r a c t e r s , f

  • l

l

  • w

e d b y t

  • y
slide-21
SLIDE 21

g r e p

  • M

a t c h t e x t ( P A T T E R N c a n b e w /

  • r

w /

  • r

e g e x )

  • G

r e p ( B R E ) , e g r e p / g r e p

  • E

( E R E ) , f g r e p / g r e p

  • F

( m a t c h f i x e d s t r i n g s )

  • C

a n s e a r c h w i t h f i x e d s t r i n g s ,

  • r

w i t h r e g e x e s

  • C
  • m

m

  • n
  • p

t i

  • n

s

  • i

c a s e i n s e n s i t i v e s e a r c h

  • l

l i s t n a m e s

  • f

f i l e s i n s t e a d

  • f

p r i n t i n g t h e a c t u a l m a t c h i n g l i n e s

  • v

p r i n t l i n e s t h a t D O N ' T m a t c h t h e p a t t e r n

  • e

< p a t t e r n >

  • U

s e m u l t i p l e

  • e
  • p

t i

  • n

s t

  • s

e a r c h w i t h m u l t i p l e p a t t e r n s

g r e p [ O P T I O N S ] P A T T E R N [ F I L E . . . ]

slide-22
SLIDE 22

s e d

  • S

t r e a m e d i t

  • r

f

  • r

f i l t e r i n g a n d t r a n s f

  • r

m i n g t e x t

  • n

a n i n p u t s t r e a m ( f i l e

  • r

i n p u t f r

  • m

p i p e l i n e )

  • C
  • m

m

  • n

l y u s e d t

  • p

e r f

  • r

m t e x t s u b s t i t u t i

  • n

i n a p i p e l i n e

  • '

C O M M A N D ' i s

  • f

t e n s u b s t i t u t i n g , a p p e n d i n g , i n s e r t i n g , d e l e t i n g t e x t S U B S T I T U T I O N : '

  • l

d v a l u e ' c a n b e a r e g e x s e d [ O P T I O N S ] ' C O M M A N D ' [ F I L E . . . ] s e d [ O P T I O N S ] ' C O M M A N D ' [ F I L E . . . ] s e d [ O P T I O N S ] ' C O M M A N D ' [ F I L E . . . ] s e d ' s /

  • l

d v a l u e / n e w v a l u e / ( f l a g s ) ' < f i l e >

slide-23
SLIDE 23

s e d s u b s t i t u t i

  • n
  • C
  • m

m

  • n

f l a g s

– n

r e p l a c e n t h i n s t a n c e

  • f

p a t t e r n w i t h – r e p l a c e m e n t

– g

r e p l a c e A L L i n s t a n c e s

  • f

p a t t e r n w i t h – r e p l a c e m e n t

– W

i t h

  • u

t f l a g s , s e d r e p l a c e s f i r s t i n s t a n c e

  • f

'

  • l

d v a l u e ' w i t h ' n e w v a l u e ' i n e a c h l i n e s e d [ O P T I O N S ] ' C O M M A N D ' [ F I L E . . . ] s e d [ O P T I O N S ] ' C O M M A N D ' [ F I L E . . . ] s e d ' s /

  • l

d v a l u e / n e w v a l u e / ( f l a g s ) ' < f i l e > $ e c h

I h a t e t h i s d e c a l ” | s e d ' s / h a t e / l

  • v

e / ' $ e c h

I h a t e t h i s d e c a l ” | s e d ' s / h a t e / l

  • v

e / ' $ e c h

h i h i h i ” | s e d ' s / h i / b y e / '

slide-24
SLIDE 24

s e d : d e l e t i

  • n
  • {

w h a t t

  • f

i n d } c a n b e :

– R

a n g e

  • f

l i n e s : s e d ' 1 , 3 d ' < m y f i l e . t x t >

– R

e g e x : s e d ' / # / d ' ( d e l e t e c

  • m

m e n t s m a y b e ? ) O t h e r s e d c

  • m

m a n d s i n c l u d e i n s e r t i

  • n

( i ) a n d a p p e n d i n g t e x t ( a ) s e d [ O P T I O N S ] ' C O M M A N D ' [ F I L E . . . ] s e d [ O P T I O N S ] ' C O M M A N D ' [ F I L E . . . ] s e d ' { w h a t t

  • f

i n d } d ' < f i l e > # d e l e t i

  • n
slide-25
SLIDE 25

Common options

  • M

a n y c

  • m

m a n d s s h a r e s

  • m

e c

  • m

m

  • n
  • p

t i

  • n

s :

  • h/--help
  • v/--verbose
  • d/--debug
  • f/--force or file input
  • R recursive