Escolar Documentos
Profissional Documentos
Cultura Documentos
3URJUDPDomR&6KHOO
DXWRUDV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
&ULVWLDQD0XQKR](XJrQLR
/LOOLDP3DOHUPR
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
2TXHp6KHOO"
3URJUDPDTXHFRQHFWDHLQWHUSUHWD
FRPDQGRV
/LQJXDJHPGHSURJUDPDomR
FRPSOHWDLQWHUSUHWDGD
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
possui variveis
construes condicionais e
interativas
ambiente adaptvel ao usurio
8PDGDVOLQJXDJHQVRULJLQDLVGH
TXDUWDJHUDomR*/
6LPSOLFLGDGHGR6KHOO
pipeline
sistemas de arquivos
sistema operacional UNIX
3URGXWLYLGDGH
/LQJXDJHPLQWHUSUHWDGDQmR
FRPSLODGD
8PSURJUDPDGRUPpGLRSRGH
GXSOLFDURXWULSOLFDUVXD
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
SURGXWLYLGDGH
&RPSDUDomRGH%UXFH&R[SDLGR
2EMHWLYH&
Shell:
linha de cdigo
Linguagem O.O: linhas de cdigo
Linguagem C: linhas de cdigo
4XDQGRXVDU
,QWHUDWLYDPHQWH
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
2VKHOOVFULSWGHYHUiVHUXWLOL]DGR
VHPSUHTXHIRUQHFHVViULRUHDOL]DU
A qualquer momento que voc executa algum comando (ls, cat), voc est usando
o 6KHOO interativamente: VWGLQVWGRXWHVWGHUU so todos direcionados para o terminal.
6WGLQ
!VWDQGDUWLQSXW
6WGRXW
!VWDQGDUWRXWSXW
6WGHUU
!VWDQGDUWHUURU
&DUDFWHUtVWLFDVGR&6KHOO
(VFULWDSRU%LOO-R\QD8QLYHUVLGDGH
GD&DOLIyUQLD%HUNHOH\
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
6LPLODUjOLQJXDJHP&
&RQWUROHVREUHDVWDUHIDVHP
SULPHLURHVHJXQGRSODQR
+LVWRU\H$OLDVLQJ
2SHUDGRUHVFRQGLFLRQDLV
P
Q D
U
8
J
R
U
3
!HWF
(VWUXWXUDGHFRQWUROHLIZKLOHHWF
9DULiYHLVJOREDLVHORFDLVVHW
VHWHQY
!n
!ftp
(YLWHFULDUPDLVGHDOLDVSRLVFRPSURPHWHDSHUIRUPDQFH
No Shell C, voc poder mover tarefas em primeiro plano para o segundo, conforme
a necessidade.
Sempre que voc precisar de respostas imediatas, execute os comandos em
primeiro plano.
Quando o comando for ocupar muito tempo de terminal, ou seja, levar muito tempo
para voltar a resposta, voc poder submet-lo em segundo plano.
Exemplos: find / -name *.ps -print
jobs
fg 1
)LOWURV
67'287
67',1
),/752
WHFODGR
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
WHOD
67'(55
WHOD
JUHSL$UWKXUFDSLW
VHGHVVKHOO6KHOOJFDSLW
5HGLUHFLRQDPHQWR
&ULDUDUTXLYRV
$QH[DUDUTXLYRV
8VDUDUTXLYRVH[LVWHQWHVFRPR
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
HQWUDGDSDUDRVKHOO
5HXQLUGRLVIOX[RVGHVDtGD
8VDUSDUWHGRFRPDQGRVKHOOFRPR
HQWUDGD
2SHUDGRUHV
DUTXLYRGLUHFLRQDXPDUTSVWGLQ
!DUTXLYRGLUHFLRQD
stdoutSXPD
QRYDVDtGD
stdoutDXPDUT
!!DUTXLYRDQH[D
H[LVWHQWH
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
!! DQH[D
GHOLPLWDGRU
!DUTXLYR
!!DUTXLYR
P
Q D
U
8
J
R
U
3
stderrDstdout
direciona stdin do
shell at o delimitador
VHGHVVKHOO6KHOOJFDSLW!QRYRFDSLW
&RQGXWR
0HLRGHFRQGXomRSDUDWUDQVSRUWDU
GDGRVGHXPFRPDQGRSDUDRXWUR
2UHVXOWDGRGDH[HFXomRGHXP
FRPDQGRSRGHVHUXWLOL]DGRFRPR
SDUkPHWURGHHQWUDGDQDH[HFXomR
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
GHRXWURFRPDQGR
&RQHFWDVWGRXWGHXPFRPDQGRj
VWGLQGHRXWUR
([HPSORV
&RQVWUXLUXPVKHOOVFULSW
(GLWHXPDUTXLYR
vi meuprograma
3ULPHLUDOLQKDGHYHFRQWHU
#! /bin/csh
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
3DUDFRPHQWDUXPDOLQKD
#
3DVVDURFDPLQKRGRVFRPDQGRV
/bin/rm arquivo
ou
\rm arquivo
#! /bin/csh
FVKHOO
'LFDVGHSURJUDPDomR
2VVKHOOVFULSWVGHYHPHVWDUVHPSUH
HPXPGLUHWyULRFRPXP
Exemplo: /usr/sys/nome-sistema
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
$UTXLYRVGHFRQWUROHTXHVmR
JHUDGRVSHORVKHOOGHYHPHVWDUHP
XPGLUHWyULRWHPSRUiULRVHSDUDGRV
GRVVKHOOVFULSWV
'LFDVGHSURJUDPDomR
8WLOL]HILOWURVGHUHGXomR
8WLOL]HFRQGXWRVDRLQYpVGH
DUTXLYRVWHPSRUiULRV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
6HVHXVKHOOIRUID]HU)73OHPEUH
VHGHDOWHUDURFKPRGGRDUTXLYR
6HPSUHXWLOL]HGHOLPLWDGRUQRV
DUTXLYRV
8WLOL]HGHOLPLWDGRU~QLFRH
GLIHUHQWHSDUDVXEFDPSRV
2UJDQL]HRVGDGRVSDUDPDLRU
HILFLrQFLDGDPiTXLQD
Se o seu shell for fazer FTP, alterar a permisso do arquivo que contm o username
e a senha para 700. (VWHpXPtWHPREULJDWyULRSRUPHGLGDGHVHJXUDQoD
Utilize filtros de reduo, JUHS FXW H DZN em primeiro lugar em um conduto,
reduzindo a quantidade de dados que devero ser transferidos pelo Shell.
Exemplo: grep $1 arq1 | sort
Utilize condutos ao invs de arquivos temporrios para melhorar a eficincia do seu
shell
&RPDUTXLYRWHPSRUiULR
&RPFRQGXWR
3DUDH[HFXWDUXPVKHOO
VFULSW
)RUDGRHGLWRUYLQDOLQKDGH
FRPDQGR
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
'HQWURGRHGLWRUYL
:w (grava o arquivo)
:!csh -opo %
!
(executa o comando shell
seguinte)
%
(diz ao vi para preencher o
nome do arquivo corrente)
Voc pode executar o seu programa medida que for sendo desenvolvido,
facilitando tambm a deteco e correo de erros. Entre no YL e crie as primeiras
linhas do programa, grave o arquivo (:w) e execute-o sem sair do editor:
Comando :
FVKRSomR
2So}HVGHWHVWH
H
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
Y
[
P
D
U
J
R
U
3
&DUDFWHUHVHVSHFLDLV
$VSDVGXSODV
string
mostra o string e substitui variveis
(se existir)
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
$VSDVVLPSOHV
string
mostra o string e 12 substitui
variveis (se existir)
&UDVHC
`comando(s)`
o resultado do comando usado em
output
transforma
caracter especial em caracter normal
%DUUDLQYHUWLGD?
0HWDFDUDFWHU
6HSDUDGRUGHFRPDQGR
VHTHQFLDO
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
"&RPELQDFRPTXDOTXHU
FDUDFWHULVRODGR
&RPELQDFRPTXDOTXHU
FDGHLDGHFDUDFWHU
>D]
@&RPELQDFRPDOJRTXH
FRQVLVWDGHFDUDFWHUHV
DOIDEpWLFRVPLQ~VFXORV
aparecer os 5 arquivos
ls capit?
ls capit[123]
9DULiYHLVQR&6KHOO
*OREDLV
SETENV
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
Exemplos:
P
Q D
U
8
J
R
U
3
VHWHQY7(50YW
VHWHQY'%'$7(<0'
VHWHQY',63/$<PiTXLQD
/RFDLV
$WULEXLQGRYDORUHVGRWLSR675,1*
2OD
VHWGLUBORJ
aH[HUFLFLRV
VHWPHXGLU
COVDOC
VHWQDPH
&XUVRGH&6KHOO
$UUD\
VHWYDU
DEF
1mRXVDUKtIHQQRQRPHGHYDULiYHLV
6HWYDU H[SUHVVmR
Para saber quais variveis esto setadas e quais so seus valores, utilize o
comandoVHW
2EV
/RFDLV
$WULEXLQGRYDORUHVGRWLSR,17(,52
#YDU
H[SUHVVmR
([HPSORV
#DQR
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
#VRPD
YDORUYDORU
VHSDUDGRVSRUEUDQFR
#L
#MVRPDQDYDULiYHO
#SVXEWUDLQDYDULiYHO
#DQR
VRPDQDYDULiYHODQR
#YDUVXEWUDLQDYDULiYHO
0DQLSXODQGRYDULiYHLV
YDULiYHO
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
OVGLUBORJ
VHWOHWUD
VHWN
#N
YDU>@
YDU>L@
L
VHWGLD
VHWSDUP
HFKR+RMHpGLDGLD
"YDULiYHO
7HVWDDH[LVWrQFLDGDYDULiYHOVH
HODWHPYDORU
=1
=0
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K ([HPSORV
6
VHWYDU
&
R
HFKR"YDU
j
o
5HVXOWDGR
D
P
D
U
J
R
U
3
XQVHWYDU
HFKR"YDUHFKRYDU
VWDWXV
7HVWDVHRFRPDQGRIRLH[HFXWDGR
FRPVXFHVVR
=0
=1
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
sucesso
sem sucesso
Exemplos:
P
Q D
U
8
J
R
U
3
VHWYDU
HFKRVWDWXV
XQVHWYDU
HFKRVWDWXV
HFKRYDUHFKRVWDWXV
(1)
YDULiYHO
5HWRUQDRQ~PHURGHHOHPHQWRVGH
XPDUUD\
([HPSORV
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
VHWQDPH
PDULDOXFLDMRDR
HFKRQDPH
Resultado: 3
P
D
U
J
R
U
3
YDULiYHO
finalidade
volta sempre um nmero inteiro que pode ser usado para alguma
YDULiYHO>Q@
YDULiYHO>Q@RXYDULiYHO>Q\@RX
YDULiYHO>Q@
elementos posicionais
([HPSORV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
VHWQRPH
PDULDMRVHMRDR
QRPH>@
QRPH>@
QRPH>@
Exemplos:
$nome[1]
(Maria)
(Jos Joo)
3DVVDJHPGHSDUkPHWURV
DUJY
Q~PHURGHDUJXPHQWRVSDVVDGRV
FRPRSDUkPHWUR
DUJXPHQWRVSRVLFLRQDLV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
QRPHGRSURJUDPD
WRGRVRVDUJXPHQWRV
QRGRSURFHVVRGRFRPDQGR
FRUUHQWH
DUJY>Q@
FRQWH~GRGRSDUDPHWURQSDVVDGR
csh
meuprogram
parm1
parm2
DUTY>@
DUTY>@
FVKPHXVFULSWSDUPSDUP
ELQFVK
if ($#argv != 2) then
echo Nmero de parmetros invlido
exit
else
set nome = $1 ou set nome = $argv[1]
set ramal = $2 ou set nome = $argv[2]
endif
9DULiYHLVFRQKHFLGDV
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
XVHU
FZG
SDWK
KRPH
SURPSW
VKHOO
WHUP
KRVWQDPH
P
D
U
J
R
U
3
([SUHVV}HVH2SHUDGRUHV
&RPSDUDUYDULiYHLVQXPpULFDVRX
VWULQJV
LJXDO
GLIHUHQWH
&RPSDUDUVRPHQWHVWULQJV
O
O
H
a
LJXDO
R K
G 6
aGLIHUHQWH
D
o &
Q
D R
2SHUDGRUOyJLFR
Y j
o
$ D
DQGRU __
[
L
P
Q D
U
8
2SHUDGRUDULWPpWLFR
J
R
U
3
PDLRUPHQRULJXDO!
!
LIWKHQHOVH
O
O
H
LID
EWKHQ
R K
G 6
D
HFKRYDULiYHLVLJXDLV
o &
Q
HOVH
D R
Y j
o
$ D
HFKRYDULiYHLVGLIHUHQWHV
[
L
P
HQGLI
Q D
U
8
J
R
U
LIHDUTBHQWUDGDWKHQ
3
HFKR2DUTXLYRH[LVWH
HQG
LI
e no
2SHUDGRUHVGHWHVWH
&RQGLomR 9HUGDGHLUDVH
HDUTXLYR VHDUTXLYRH[LVWH
UDUTXLYR H[LVWLUDUT/HJtYHO
O
O
H
R K
G 6 ZDUTXLYRH[LVWLUDUT*UDYiYHO
D
o &
Q [ DUTXLYR H[LVWLU DUT
D R
Y j
([HFXWiYHO
o
$ D
[
L
P
H[LVWLURGLUHWyULR
Q D GGLU
U
8
J
R ] DUTXLYR DUTH[LVWLU H QmR
U
3
WLYHU
GDGRVWDPDQKR
GDGRV
if ( -e arq_entrada) then
echo O arquivo existe
else
echo O arquivo NO existe
end
if ( -d Mail) then
echo Isto um diretrio
else
echo Isto um arquivo
end
6ZLWFK
VZLWFKVWULQJ
FDVHYDORU
DomR
EUHDNVZREULJDWyULR
FDVHYDORU
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
DomR
EUHDNVZ
GHIDXOW
DomRGHIDXOW
EUHDNVZ
HQGVZ
)RUHDFK
IRUHDFKYDULiYHOH[SUHVVmR
FRPDQGRYDULiYHO
HQG
([SUHVVmR
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o $VLQVWUXo}HVGHQWURGRIRUHDFK
$ D
VHUmRH[HFXWDGDVWDQWDVYH]HV
[
L
P
Q D
TXDQWRVIRUHPRQ~PHURGH
U
8
J
HOHPHQWRVSUHVHQWHVHQWUH
R
U
3
SDUrQWHVHV
resultado de um comando
valores ou ocorrncias de um array
Exemplos:
Utilizando array:
set tabela = (maria joo)
foreach pessoa ($tabela[*])
echo $pessoa
end
Utilizando o resultado de um comando
foreach arquivo ( `ls -l | awk {print $3, $4, $8)`)
echo $arquivo
end
1mRh comando)25para C Shell
:KLOH
ZKLOHH[SUHVVmR
Do}HV
HQG
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
ZKLOHD
D
HFKR9DORU
D
HQG
P
D
U
J
R
U
3
:KLOH
ZKLOH
HFKR&HQWURGH&RPSXWDomR
HFKR6HOHFLRQHDRSomR
GHVHMDGD
HFKR1RWLFH
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
HFKR6DLU
HFKRQ!
VHW5(63
VZLWFK5(63
HQGVZ
HQG
while (1)
echo 1- Tabela de Orgaos
echo 2 - Notice
echo X - Sai
echo -n Selecione a opcao desejada -->
set RESP = ($<)
switch ($RESP)
case 1:
source jsi03e_carga; breaksw
case 2:
/usr/local/notice/manager ; breaksw
case X:
exit
default:
echo -n Opcao Invalida - Tecle <enter>
set CONT = ($<)
breaksw
endsw
end
comando exit: sai do while sem ser pela condio definida na expresso
&RPDQGRVGR6KHOO
2VFRPDQGRVVKHOOVHUmRPRVWUDGRV
GLYLGLGRVHPYiULDVFDWHJRULDV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
$UTXLYRVHGLUHWyULRV
6HOHomR
&RPELQDomRHRUGHQDomR
,PSUHVVmR
6HJXUDQoD
Para cada comando existem vrias opes. Neste curso tentaremos mostrar as
opes mais utilizadas.
Para conhecer outras opes ou maiores detalhes utilize o comando PDQ
nome_comando
PDQ
2%6
.prxima linha
ENTER
.prxima pgina
space bar
.pgina anterior
CTRL B
.procuro string
.continuar a busca
.cancelar pesquisa
q ou CTRL C
&RPDQGRV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
cd ls pwd mkdir
rmdir
cat cp csplit ln
$UTXLYR
mv rm split
awk cut grep sed
6HOHomR
head line tail uniq
wc
cat join paste
-XQomR
sort
2UGHQDomR
tr
dd
7UDQVIRUPDomRsed
cat echo
,PSUHVVmR
chmod
6HJXUDQoD
$< touch
/HLWXUD
sleep exit
2XWURV
'LUHWyULR
Alguns lembretes:
cd
ls
pwd
mkdir
cria diretrio
rmdir
deleta diretrio
cp
copia arquivo
mv
renomeia arquivo
rm
deleta arquivo
,PSUHVVmR
(&+2
HVFUHYHDUJXPHQWRVHPVWGRXW
6LQWD[H
HFKR>RSo}HV@VWULQJ
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
2So}HV
QQmRDGLFLRQDXPDQRYDOLQKD
QRVWGRXWDQWHVGHLPSULPLUR
VWULQJGHL[DQGRRFXUVRUQDOLQKD
GDPHQVDJHPHVFULWD
Exemplos:
echo -n Entre com a opo desejada =>
Entre com a opo desejada
__
,PSUHVVmR
&$7
FRQFDWHQDHLPSULPH
QmRDOWHUDGDGRV7RPDDVWGLQH
DUHSURGX]QRVWGRXW
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
YDUUHRDUTXLYRHQmRSiUDDFDGD
WHODGRWHUPLQDO
6LQWD[H
FDW>RSo}HV@>ILOHILOH@
2So}HV
QOLVWDDVOLQKDVGRDUTXLYR
QXPHUDQGRDV
Exemplos
capt1 capit2 > livro
FDW
FDW
capit1
FDW
-n capit1
FDW
> arq1
FDW
6HJXUDQoD
&+02'
SDUDWRUQDURDUTXLYRGRVKHOO
H[HFXWiYHOpQHFHVViULRDOWHUDUD
SHUPLVVmRGRDUTXLYR
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
P
Q D
U
8
J
R
U
3
6LQWD[H
FKPRG>TXHP@RSHUDomRDFHVVR
DUTXLYR
2So}HV
TXHPXXVXiULRJJUXSRR
RXWURVDDOO
RSHUDomRDWULEXLUUHPRYHU
ATENO: Se o seu shell for executar o comando FTP voc dever alterar a
permisso do arquivo que contm o username e a senha para que somente o dono
possa ler, gravar e executar.
Exemplos:
chmod u=rwx,go= arquivo
ls -la
-rwx------ 1 lilliam supsof
/HLWXUD
GLUHFLRQDRWHUPLQDOFRPRVWGLQ
([HPSOR
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
VHWRSomR
Exemplos:
echo -n Digite a opcao:
set opcao = $<
if ($opcao > 9) then
echo Opcao Invalida. Tecle enter para continuar
$<
endif
Existem duas maneiras de trabalhar com este comando
set opo = $<
( neste caso, eu estou guardando o que o usurio digitou
$<
( Est uma maneira de deixar a msg na tela at o usurio digitar alguma tecla.
6HOHomR
/,1(
FRSLDXPDOLQKDGRVWGLQHJUDYD
QRVWGRXW
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
6LQWD[H
OLQHVWGLQ!VWGRXW
6HOHomR
+($'
VHOHFLRQDDVSULPHLUDVOLQKDV
GHXPDUTXLYR
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
6LQWD[H
KHDG>RSo}HV@VWGLQ!VWGRXW
2So}HV
FQVHOHFLRQDDVQSULPHLUDV
FROXQDVGRVWGLQ
QVHOHFLRQDDVQSULPHLUDV
OLQKDVGRVWGLQ
Exemplos
head -5 arquivo
6HOHomR
7$,/
VHOHFLRQDDVOLQKDVILQDLVGH
XPDUTXLYR
6LQWD[H
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
WDLO>RSo}HV@VWGLQ!VWGRXW
2So}HV
QVHOHFLRQDDVQ~OWLPDVOLQKDV
GRVWGLQ
IPRVWDUDVOLQKDVTXHVmR
DGLFLRQDGRVDRDUTXLYR
Exemplos
tail -5 arquivo
tail -f /var/messages
6HOHomR
6('
HGLWDHDOWHUDGDGRV
6LQWD[H
VHG>RSo}HV@VWGLQ!VWGRXW
2So}HV
O
HVFULSW
O
H
R K
RQGHVFULSWSRGHVHU
G 6
D
VVWULQJBDQWLJDVWULQJBQRYDJ
o &
Q
D R VWULQJTXHSHUWHQFHjOLQKDTXHGHYHUi
Y j
o
VHUGHOHWDGDG
$ D
[
L
PVVWULQJDVHUGHOHWDGDJ
Q D
U
8
J
IDUTXLYRFRQWpPRVVFULSWVD
R
U
VHUHPH[HFXWDGRV1mRXVDU
3
DVSDVGHQWURGRDUTXLYR
1mRXVDUVWGLQFRPRVWGRXW
H
2%6
6HOHomR
81,4
VHOHFLRQDDSHQDVXPDRFRUUrQFLD
GHFDGDOLQKDGRVWGLQ
2EULJDWRULDPHQWHVWGLQGHYHHVWDU
RUGHQDGRFRPDQGRVRUW
6LQWD[H
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
XQLT>RSo}HV@VWGLQ
2So}HV
XVHOHFLRQDOLQKDV~QLFDV
FFRQWDRQ~PHURGHYH]HVTXH
FDGDOLQKDVHUHSHWH
GVHOHFLRQDDSHQDVDVOLQKDV
FRPPDLVGHXPDRFRUUrQFLD
6HOHomR
*5(3
VHOHFLRQDOLQKDVXVDQGRXP
~QLFRFULWpULRGHVHOHomR
6LQWD[H
JUHS>RSo}HV@VWULQJVWGLQ
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
P
Q D
U
8
J
R
U
3
2So}HV
FFRQWDRQ~PHURGHYH]HVTXH
RVWULQJDSDUHFH
LLJQRUDXSSHUFDVH
OOLVWDVRPHQWHRQRPHGRV
DUTXLYRVTXHSRVVXHPRVWULQJ
SURFXUDGD
QQXPHUDFDGDOLQKDTXH
FRQWpPRVWULQJSURFXUDGD
6HOHomR
*5(3
2So}HV
YOLVWDWRGDVDVOLQKDVGR
DUTXLYRH[FHWRjVTXHFRQWpPD
VWULQJ
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
AOHWUDOLVWDWRGDVDVOLQKDVTXH
LQLFLHPFRPDOHWUDRXVWULQJ
6WULQJ
YDULiYHO VWULQJFRPSRVWD
VWULQJ
PHWDFDUDFWHUHV
">D]@
JUHSKHDGOLQHVHGWDLOHXQLT
RSHUDPHPOLQKDV
Exemplos:
grep -v Amlia arq1 - lista todas as linhas do arqu1 exceto s
que contm a string Amlia
grep ^R arq1 - lista todas as linhas do arq1que comeam com R
grep [a-z] arq1 -
6HOHomR
&87
VHOHFLRQDFROXQDV
6LQWD[H
FXW>RSo}HV@VWGLQ
2So}HV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
F[\GHILQHFROXQDLQLFLDO[H
FROXQDILQDO\
G&KDUGHILQHGHOLPLWDGRU
I[\GHILQHFDPSRLQLFLDO[H
FDPSRILQDO\
VVXSULPHOLQKDVTXHQmR
FRQWpPGHOLPLWDGRU
2EULJDWRULDPHQWHGHYHVHUXVDGR
FRPDRSomRG
2%62FRPDQGRFXWWUDEDOKDFRP
FROXQDV
6HOHomR
:&
FRQWDOLQKDVSDODYUDVH
FDUDFWHUHVGHDUTXLYRV
6LQWD[H
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
ZF>RSo}HV@VWGLQ
2So}HV
FFRQWDFDUDFWHUHV
OFRQWDOLQKDV
ZFRQWDSDODYUDV
Exemplos:
grep -l Maria arqu* | wc -l - lista a qtd de linhas que contm a varivel
Maria
cat arq l wc -l
6HOHomR
63/,7
FRUWDRVWGLQHPDUTXLYRV
PHQRUHVFRQWHQGRXPQ~PHUR
HVSHFtILFRGHOLQKDV
6LQWD[H
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
VSOLW>RSo}HV@VWGLQ>SUHIL[R@
2So}HV
QHVSHFLILFDRQ~PHURGHOLQKDV
GHFDGDDUTXLYRGHVDtGD'HIDXOW
OLQKDVSRUDUTXLYR
SUHIL[RSUHIL[RGRVVWGRXWV
FULDGRV2VXIL[RVHUiDDDEDWp
]]2GHIDXOWGRSUHIL[Rp[
6HOHomR
&63/,7
VHSDUDRVDUTXLYRVVHPSUHTXH
HQFRQWUDUXPDFRPELQDomRHQWUH
VHXVDUJXPHQWRVHRFRQWH~GRGR
DUTXLYR
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
6LQWD[H
FVSOLW>RSo}HV@VWULQJ
>DUTJXPHQWRV@
2So}HV
P
Q D
U
8
J
R
U
3
ISUHIL[RSUHIL[RGRVVWGRXWV
FULDGRV2VXIL[RYDULDGHj
'HIDXOW[[
Exemplos
O arquivo livro contm:
Introduo,
Captulo 1,
Captulo 2,
Resumo.
csplit -f capit livro /Captulo / /Captulo /
resultado: capit00 (contm Introduo)
capit01 (contm Captulo 1)
capit02 (contm Captulo2 e Resumo)
csplit -f capit livro %Captulo 1%
resultado: capit00 (contm Captulo 1 Captulo 2 e Resumo)
6HOHomR
&63/,7
2So}HV
DUJQFULDXPDUTXLYRSRU
DUJXPHQWRLQFOXVLYH2DUTXLYR
SUHIL[RFRQWpPDVOLQKDV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
DQWHULRUHVDRSULPHLURDUJXPHQWR
DUJFULDXPDUTXLYR
FRQWHQGRRVGDGRVDSDUWLUGR
DUJXPHQWR
1mRIXQFLRQDQR)UHH%6'
2UGHQDomR
6257
RUGHQDHFRPELQDP~OWLSORV
DUTXLYRV
6LQWD[H
VRUW>RSo}HV@DUTXLYRV
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
P
Q D
U
8
J
R
U
3
2So}HV
ELJQRUDHVSDoRVHPEUDQFR
SDUDHQFRQWUDUDSULPHLUDRX
~OWLPDFROXQDGRFDPSR
GFODVVLILFDXVDQGRRUGHP
DOIDEpWLFD6RPHQWHOHWUDVGtJLWRV
HHVSDoRVVmRFRQVLGHUDGRVQD
FRPSDUDomR
IDOWHUDWRGDVDVOHWUDV
PLQ~VFXODVSDUDPDL~VFXODV
DQWHVGDFRPSDUDomR
O comando VRUW opera com caracter, campo ou em uma combinao dos dois.
Caso o arquivo classificado possua linhas duplicadas estas podem ser retiradas
atravs do comando XQLT. Para tornar mais eficiente esse comando deve ser
utilizado aps os dados terem sido selecionados (JUHS ou FXW).
Exemplos :
sort -nru arquivo - ordena o arquivo em ordem numrica decrescente e
deleta as linhas duplicadas.
sort -m arq1 arq2 - junta arq1 e arq2 e ordena
sort -f arq1 -o arq1_sort - ignora uppercase e grava o resultado em
arq1_sort.
2UGHQDomR
6257
2So}HV
PMXQWDWRGRVRVDUTXLYRVGH
HQWUDGDQXPVy2VDUTXLYRVGH
HQWUDGDGHYHPHVWDU
FODVVLILFDGRV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
QRUGHQDRDUTXLYR
QXPHULFDPHQWH
URUGHQDRDUTXLYRHPRUGHP
GHFUHVFHQWH
XGHOHWDOLQKDVGXSOLFDGDV
WGHILQHGHOLPLWDGRU
N>FDPSRBLQLFLDOFROXQDBLQLFLDO@
>RSomR@
>FDPSRBILQDOFROXQDBILQDO@
>RSomR@GHILQHDFKDYHGRVRUW
comeo da linha
col ini
cpo fim
final da linha
col fim
Exemplos:
sort -k2,2f -k3 arquivo
sort -k1.1 -k2.4 arquivo
sort -rt -k3b -k4 arquivo
7UDQVIRUPDomR
75
WUDQVIRUPDFDUDFWHUSRUFDUDFWHU
6LQWD[H
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
WUVWULQJBDQWLJDVWULQJBQRYD
VWGLQ!VWGRXW
O comando
Exemplos:
tr
tr (:)
7UDQVIRUPDomR
''
FRQYHUWHHFRSLDDUTXLYR
6LQWD[H
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
GGLI
VWGLQRI
FRQY
>RSo}HV@
VWGRXW
2So}HV
OFDVHFRQYHUWHRFRQWH~GRGR
DUTXLYRSDUDPLQ~VFXOR
XFDVHFRQYHUWHRFRQWH~GRGR
DUTXLYRSDUDPDL~VFXOR
DVFLLFRQYHUWHHEFGLFSDUDDVFLL
LEPFRQYHUWHDVFLLSDUDDYHUVmR
HEFGLFGD,%0
-XQomR
-2,1
MXQWDGRLVDUTXLYRVFRPELQDQGR
OLQKDDOLQKD2VDUTXLYRVGHYHP
HVWDURUGHQDGRV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
6LQWD[H
MRLQ>RSo}HV@DUTXLYRDUTXLYR
2So}HV
W&KDUGHILQHGHOLPLWDGRU
DQRDUTXLYRSURGX]XPDOLQKD
GHVDtGDSDUDFDGDOLQKDGR
DUTXLYRHVSHFLILFDGRSHORQ
DUTXLYRPHVPRSDUDRVFDPSRV
GRMRLQTXHQmRFDVDPFRP
QHQKXPDOLQKDGRRXWURDUTXLYR
GHHQWUDGD
Quando o MRLQ encontra registros que se combinam nos 2 arquivos de entrada ele
cria um nico registro contendo algum ou todos os campos dos dois registros. Para
utiliz-lo, os dois arquivos devem estar ordenados (utilize VRUW).
2%6
-XQomR
-2,1
2So}HV
RQRDUTXLYRFDPSRDVOLQKDV
GHVDtGDVmRFRPSRVWDVSHOD
OLVWDGRVFDPSRVHVSHFLILFDGDV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
QDYDULiYHO
QDUTXLYRFDPSRSDUDGHILQLU
PDLVFDPSRVVHSDUHRVSRU
EUDQFRRXYtUJXOD
FDPSRRXFDPSRID]RMRLQ
GHDUTXLYRVXVDQGRRFDPSR
HVSHFLILFDGRQDYDULiYHOFDPSR
GRDUTXLYRRXDUTXLYR
Exemplos:
DUTBHQW
Aldo:HC
DUTBHQW
Aldo:enfermeiro:7234
Bruno:IMECC
Joo:digitador:7111
Joo:CCUEC
Ricardo:mdico:7323
vazio
Aldo:HC:enfermeiro:7234
Bruno:IMECC:__________
Joo:CCUEC:digitador:7111
Aldo:HC:7234
Joo:CCUEC:7111
-XQomR
3$67(
DQH[DP~OWLSORVDUTXLYRVFROXQD
SRUFROXQD
6LQWD[H
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
SDVWH>RSo}HV@DUTXLYR
DUTXLYR
2So}HV
G&KDUGHILQHGHOLPLWDGRU
VMXQWDOLQKDVVXEVHTXHQWHVGR
DUTXLYR
Exemplos :
DUTBHQW
Aldo:HC
DUTBHQW
Bruno:IMECC
Aldo:enfermeiro:7234
Joo:digitador:7111
DUTBVDLGD
Bruno:Imecc/Joo:digitador:7111
paste -s -d / arq_ent1 arq_ent2 >
DUTBVDLGD
Aldo:HC/Bruno:Imecc
Aldo:Enfermeiro:7234/Joo:digitador:7111
6HOHomRH,PSUHVVmR
$:.
OLQJXDJHPGHSURFHVVDPHQWRH
SURFXUDGHSDGU}HV(QFRQWUD
OLQKDVQRVDUTXLYRVGHHQWUDGD
TXHFRPELQDPFRPXPSDGUmR
HVSHFLILFDGRHHQWmRH[HFXWDDV
Do}HVGHILQLGDV
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
6LQWD[H
DZN>RSo}HV@SDGUmR^ISJP
SJP`VWGLQ
2So}HV
)&KDUGHILQHGHOLPLWDGRU
ISJPDUTXLYRTXHFRQWpPDV
Do}HVDVHUHPH[HFXWDGDVSHOR
FRPDQGRDZN
SJPVmRDVDo}HVDVHUHP
H[HFXWDGDVSHORDZN
6HOHomRH,PSUHVVmR
7LSRVGHSDGU}HV
VWULQJ
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
VWULQJVWULQJ
VWULQJ"
VWULQJ_VWULQJ
VWULQJ>FKDUFKDU@
VWULQJ>?AFKDUFKDU@
Tipos de padres:
VWULQJ : grava em stdout todas as linhas do stdin que contm pelo menos uma
ocorrncia do string.
VWULQJVWULQJ : grava em stdout as linhas que contm o string1 seguido por um
ou mais caracteres que precede o sinal de + e termina com o string2.
VWULQJ": grava em stdout as linhas que contm o string1 seguido por nenhum
ou um caracter que precede o sinal ?
VWULQJ_VWULQJ : grava em stdout as linhas que contm o string1 e/ou o string2.
VWULQJ>FKDUFKDU@ : grava em stdout as linhas que contm o string1 seguido
por qualquer caracter que esteja entre char1 e char2 inclusive (char1 e char2 devem
estar em ordem)
VWULQJ>?AFKDUFKDU@ : grava em stdout as linhas que contm o string1 seguido
por qualquer caracter que QmR esteja entre char1 e char2 inclusive (char1 e char2
devem estar em ordem).
6HOHomRH,PSUHVVmR
7LSRVGHSDGU}HV
aFKDU
aAFKDU
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
aFKDU
VWULQJ
!
FKDU
VWULQJ
VWULQJ
Tipos de padres:
aFKDU : grava em stdout todos os registros que contm no 1o. campo o
caracter char1 ou um string .
aAFKDU : grava em stdout todos os registros que QmR contm no 1o. campo o
caracter char1 ou um string.
aFKDU : grava em stdout todos os registros que contm o ltimo caracter
igual a char1 ou string.
VWULQJ : grava em stdout todos os registros que contm o 1o. campo
igual ao string1
! FKDU : grava em stdout todos os registros que o 1o. campo maior ou
igual a char1
VWULQJ VWULQJ : grava em stdout todos os registros que o
1o. campo igual ao string1 e o 2o. igual o string2.
6HOHomRH,PSUHVVmR
7LSRVGHDo}HV287387
,PSUHVVmRGHFDPSRVYDULiYHLVH
FRQVWDQWHV
^SULQW`
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
5HGLUHFLRQDPHQWR
^SULQW!DUTBRXWSXW`
,QVWUXo}HVDULWPpWLFDV
^SULQW
`
^SULQWUDPHGLD`
9DULiYHLVHVSHFLDLV
^SULQW15`
em branco.
Redirecionamento:
^SULQW!DUTRXWSXW`
Instrues aritmticas:
^ SULQW
`
campo2.
: grava em stdout o campo 1 precedido do
string UD eo string PpGLD o resultado da diviso do campo $2 pelo campo $3 .
^SULQWUDPpGLD`
Variveis Especiais:
: grava em stdout os registros de stdin numerado.
^SULQW15`
6HOHomRH,PSUHVVmR
7LSRVGHDo}HV
&RQFDWHQDomRGHFDPSRV
^SULQW
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
`
,PSULPLUOLQKDHPEUDQFR
^SULQW`
,PSUHVVmRIRUPDWDGDGHFDPSRV
YDULiYHLVRXFRQVWDQWHV
^SULQWIV?Q`
^SULQWIGV?Q
`
^SULQWIVG?Q120(
5$0$/`
seqncia
significado
\n
nova linha
\b
backspace
\t
tab
6HOHomRH,PSUHVVmR
7LSRVGHDo}HV
%(*,1
%(*,1^)6
^SULQWIVV?Q120(
R
G
D
o
Q
D
Y
$
[
L
O
O
H
K
6
&
R
j
o
D
P
Q D
U
8
J
R
U
3
5$0$/`
^SULQWIVV?Q`
(1'
(1'^SULQWIVILPGH
UHODWyULR`
(1'^SULQWILPGHUHODWyULR`
%HJLQ
Aes que devem ser executadas antes do stdin ser lido. Na execuo de
mais de uma ao ela deve estar entre colchetes.
(QG
Aes que devem ser executadas aps o stdin ser lido. Se for executar mais
de uma ao ela deve estar entre colchetes.
6HOHomRH,PSUHVVmR
7LSRVGHDo}HV
,QVWUXo}HVFRQGLFLRQDLV
LIH[SUHVVmR^Do}HV`>HOVH
^Do}HV`@
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
LI
SUHY^
SULQW
SUHY
`
9DULiYHLVHVSHFLDLV
15Q~PHURGDOLQKD
FRUUHQWH
1)TXDQWLGDGHGHFDPSRV
GDOLQKD
)6
FDUDFWHUGHILQH
GHOLPLWDGRU
([HPSORVGHIRUPDWDomR
SULQWI
IPW
SULQWI^IPW`
F
D
G
G
EEE
O
O G
H
R K
G 6
D H
o &
Q
D R
Y j
o
$
D I
[
L
P
Q D
U I
8
J
R
U
3
FDUDFWHU$6&,,
H
H[SRQHQFLDomR
SRQWRIOXWXDQWH
([HPSORVGHIRUPDWDomR
SULQWI
IPW
SULQWI^IPW`
V
-DQHLUR
-DQHLUR
V
-DQHLUR
V
O
O
H
R K V
G 6
D
o & V
Q
D R
Y j V
o
$ D
[
L
P
Q D
U
8
J
R
U
3
VWULQJ
-DQHLUR
-DQHLUR
-DQHLUR
-DQHLUR
-DQ
-DQHLUR
-DQ
-DQHLUR
-DQ
-DQHLUR
&RPDQGRYLHPPRGR
EDWFK
8WLOL]DQGRRHGLWRUYL
YLDUTXLYRFRPDQGRVBYL!
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
GHYQXOO
DUTXLYRFRPDQGRVBYL
/FIM
dd
^[
:x
Comandos vi:
YL
A>
[
)RUPDWRGRFRPDQGRGDWH
CGDWH DC
O
O
H
R K
G 6
D
o &
Q
D R
Y j
o
$ D
[
L
P
Q D
U
8
J
R
U
3
!7XH
CGDWH $C
!7XHVGD\
CGDWH EC
!6HS
CGDWH %C
!6HSWHPEHU
CGDWH FC
! 7XH6HS
CGDWH GC
!GLD
CGDWH 'C
!PrVGLDDQR
CGDWH MC
!
CGDWH PC
!PrV
CGDWH SC
!30
CGDWH 8C
!
CGDWH \C
!DQR
5HIHUrQFLDV
81,;3URJUDPDomR6KHOO
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
&RPDQGRVYL
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
,1,&,$1'229,
vi filename
vi +18 filename
vi +/frigorfico filename
view filename
move esquerda
move direita
Return
Back Space
Space Bar
Ctrl-F
Ctrl-D
Ctrl-B
Ctrl-U
&RPDQGRVYL
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
,16(5,1'2&$5$&7(5(/,1+$6
cw
cc
altera linha
r-Return
para linha
xp
:u
&RPDQGRVYL
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
'(/(7$1'27(;72
deleta caracter
dw
dd
deleta linha
:5,10 d
yy ou Y
dd
:1,2 co 3
:4,5 m 10
:set nu
:set nonu
21G
&RPDQGRVYL
R
G
D
o
Q
D
Y
$
[
L
Q
8
O
O
H
K
6
&
R
j
o
D
P
D
U
J
R
U
3
352&85$1'2($/7(5$1'2
/string/
procura a string
?string?
:g/search-string/s//replace-string/gc
procura e altera, consultando antes de cada ocorrncia
/,03$1'2$7(/$
Ctrl L
limpa a tela
,16(5,1'280$548,92180$548,92
:r filename
:34 r filename
:w
:w filename
:wq ou :zz
:q!