Escolar Documentos
Profissional Documentos
Cultura Documentos
PROGRAMAO
SHELL
Autoras:
Cristiana Munhoz Eugnio
Lilliam Cssia Ciani Palermo
Programao C-Shell
1
Notas:
O que Shell ?
programa que conecta e interpreta os comandos
linguagem de programao completa - interpretada
possui variveis;
construes condicionais e interativas;
ambiente adaptvel ao usurio;
Simplicidade do Shell
Pipeline
Sistemas de arquivos
Sistema operacional UNIX
Programao Shell
2
Notas:
Quando usar
Interativamente
Realizar uma operao simples, uma nica vez
Interagir com o comando
Programao Shell
3
Notas:
Produtividade
1 linha de cdigo
Programao Shell
4
Filtros
Notas:
Uma chave para transformar dados brutos em informao til
filtrar os dados estranhos.
STDIN
FILTRO
STDOUT (tela)
(teclado)
STDERR (tela)
cat
cat arquivo
sed -e s/shell/Shell/g capit1
O comando sed abrir o arquivo capit1 como stdin e passar o
arquivo para stdout
(terminal) enquanto muda todas as
ocorrncias de shell para Shell.
Programao Shell
5
Notas:
Redirecionamento
Criar ou anexar arquivos;
Usar arquivos existentes como entrada para o Shell;
Reunir dois fluxos de sada;
Operadores:
< arquivo
> arquivo
>> arquivo
>>&
EOF!
Programao Shell
6
Conduto
Notas:
ls -la
Programao Shell
7
Notas:
#! /bin/ksh
korn shell.
vi meu-programa
utilizado
#! /bin/ksh
/bin/rm arquivo
recomendvel passar o caminho (path) dos comandos
\rm arquivo
Garante encontrar a primeira ocorrncia no path.
Programao Shell
8
Notas:
(aspas duplas)
Mostra a cadeia de caracteres citada entre ", substituindo
o nome da varivel pelo seu contedo.
Ex: dia_da_semana=Segunda-feira
echo Hoje $dia_da_semana
resultado : Hoje Segunda-feira
(aspas simples)
Mostra a cadeia de caracteres citada entre ', sem
substituir o nome da varivel pelo seu contedo.
Ex: dia_da_semana=Segunda-feira
echo ' Hoje $dia_da_semana '
resultado : Hoje $dia_da_semana
` ` (crase)
O resultado do comando usado em output.
Ex: data= `date +%D `
\ (barra invertida)
Transcreve um caracter especial
Programao Shell
9
Notas:
; (vrgula)
Separador de comando sequencial.
Exemplos:
Suponha que no diretrio corrente exista os seguintes arquivos:
capit1 , capit2, capit3, capit4 e capitulo
ls capit*
ls capit?
ls capit[1-3]
? ( ponto de interrogao )
Combina com qualquer caracter isolado .
* (asterisco)
(aparecer os 5 arquivos)
(capit1, capit2, capit3, capit4)
(capit1, capit2, capit3)
^string
Procura a string somente no comeo da linha
string$
Procura a string somente no fim da linha
Programao Shell
10
Notas:
Tipo de Variveis
Global:
Seta variveis de ambiente ou variveis globais. Elas
existem enquanto a sesso estiver aberta.
Sintaxe: export nomevar=valor
Exemplos:
export TERM=vt100
(varivel de ambiente)
export DBDATE=Y4MD- (varivel de ambiente)
export matricula=20444 (varivel global)
EXPORT:
nome=Rogrio
Nomes de Variveis no pode conter hifen.
X
nota-aluno
dar erro
minha_var
Local:
Seta variveis locais. Elas existem somente durante a
execuo da Shell.
Sintaxe: nomevar=valor
Programao Shell
11
Notas:
Definio de variveis
String
Atribuindo valores:
Sintaxe : nome=contedo
Exemplos:
msg_ftp=221 Quit command received.
dir_log=~liliam/tmp
meus_arqs=`ls -la`
Concatenando strings:
Exemplos:
nome=Li
nome1=lliam
conc=$nome$nome1
Lilliam
echo $conc
Programao Shell
12
Definio de variveis
Notas:
String
Utilizando string:
Utilize "$" para substituir o nome da varivel pelo seu
contedo.
Sintaxe : $varivel
Exemplos:
cabec= Relatrio do ano $ano
dir_log=/tmp ; ls $dir_log
aluno=${nomes[$cont]}
parm1=$1
ls arq$var
dia=Segunda-feira ; echo Hoje dia $dia
Programao Shell
13
Notas:
Definio de variveis
Inteiro
Programao Shell
14
Definio de variveis
Notas:
Array
Criando arrays:
Exemplos:
set -A var a b c
set -A nomes ana jose maria
seta um
Exemplos de array :
set -A nome maria lucia joao
echo ${nome[*]}
Resp = maria lucia joao
echo ${#nome[*]}
Resp = 3
Incrementando arrays:
Exemplos:
nomes[3]=joo
aluno=${nomes[[3]}
echo $aluno
joo
Manipulando arrays:
${var[*]}
Mostra o contedo do array inteiro
${#var[*]}
Mostra o nmero de elementos (argumentos) de
um array.
${varivel[n]}
Elementos posicionais de um array.
Notas:
Edio de string
typeset
Especifica o tipo do valor da varivel
Sintaxe:
typeset [opes] v=$var
Opes:
-Ln : ajusta esquerda. Se "n" especificado,
preenchido com branco ou truncado direita no
valor de n
-Rn: ajusta direita. Se "n" especificado,
preenchido com branco ou truncado esquerda
no valor de n
-Zn: mesmo que o acima, adiciona 0 ao em vez
de branco
-l
converte para minsculo
-u
converte para maisculo
Exemplos:
alpha="
aBcDeFgHiJkLmNoPqRsTuVwXyZ
typeset -L v=$alpha"
"aBcDeFgHiJkLmNoPqRsTuVwXyZ
"
"
"VWXYZ"
"00123.50"
Programao Shell
16
Notas:
Tratamento de Variveis
if [[ -z $matricula ]] then
echo " varivel matricula NO inicializada"
fi
matricula=23456
if [[ -n $matricula ]] then
echo " varivel matricula inicializada"
fi
Programao Shell
17
Notas:
Tratamento de erro
sucesso.
0 executado com sucesso
1 executado sem sucesso
Exemplos:
var=5
echo $?
(=0)
echo $var4
echo $?
(= 1)
Programao Shell
18
Notas:
Variveis de ambiente
$USER
Contedo do comando whoami (quem o usurio da
conta)
$$
Muito utilizado pelos utilitrios de mail que gravam o arquivo
em /tmp/arq_nmero_do_processo
$PATH
Lista de diretrios a serem procurados pelo meus
executveis
$HOME
Mostra qual o diretrio home
$PS1
Mostra o que est setado como prompt
$SHELL
Mostra a shell que est sendo utilizada
$TERM
Mostra qual o tipo de terminal que est sendo utilizado
$$
Nmero do processo do comando corrente
Programao Shell
19
Notas:
$script
$ksh -opes_de_teste meu-shell
$ CTRL D
$ more typescript
Dentro do editor vi:
:w
Programao Shell
20
Tratamento
de Parmetros
$#
No. de parmetros
$0
Parmetro que contm o nome do programa
$1, $2, $3, ...
Parmetros fornecidos
Notas:
Se voc tem um shell script que recebe parmetros de entrada,
voc pode usar $# no comeo do programa para obter o nmero
de argumentos (parmetros) recebidos, testando se esse era o
nmero de argumentos esperado.
Exemplo:
ksh meuscript parm1 parm2
#! /bin/ksh
if (( $# == 2)) then
echo " numero de parametros correto "
fi
ksh
meuprogram
$0
parm1
$1
parm2
$2
$*
Lista o contedo de todos os parmetros
Programao Shell
21
Notas:
Principais Operadores
Operao
Numrico
String
igual
==
diferente
!=
!=
menor, maior
<, >
... ou igual
>=, <=
and , or
&&, ||
soma
diviso
>=, <=
+
--
subtrao
multiplicao
<, >
*
/
Programao Shell
22
Notas:
Operadores de Teste
Verdadeira se ...
-d file
-f file
se diretrio
se file
-r arquivo
-w arquivo
-x arquivo
Condio Shell
test -r nomearq
echo $?
-a arquivo
se arquivo existe
-s arquivo
-O arquivo
-G arquivo
if [[ -d arq_com ]]
then
echo " arq_com um diretrio "
fi
Programao Shell
23
Notas:
Comandos condicionais
if - then - else
Exemplos:
Comparao numrica
a=5 ; b=7
if (( $a == $b )) then
echo valores iguais
else
echo valores diferentes
fi
Comparao de string
a=inteiro ; b=metade
if [[ $a = $b ]] then
echo variveis iguais
else
echo variveis diferentes
fi
Exemplo:
if [[ $a = $b ]] then
echo variveis iguais
fi
Programao Shell
24
Comandos condicionais:
Notas:
Exemplos:
case
case expresso in
opo1 ) processa a
echo opcao a ;;
opo2 ) processa b;;
opo3 ) processa c;;
Exemplo:
$ cria_imp -p pcca -ip 143.106.30.9 -n pcca
while (( $# ))
do
case $1 in
-ip) ip_da_impressora=$2 ; shift ;;
-p) nome_da_impressora=$2 ; shift ;;
-n) nome_da_imp_rede=$2 ; shift ;;
esac
shift
done
Programao Shell
25
Notas:
Comandos condicionais:
Exemplos:
for
Utilizando array:
Exemplos:
Utilizando o resultado de um comando:
Programao Shell
26
Comandos condicionais:
Notas:
Sintaxe:
while ((expresso))
do
done
while
dir_relatorio=~kikinha/prog
while ((1))
do
clear
echo \n* Centro de Computacao* \n
echo Selecione a opcao desejada
echo 1- Tabela de Orgaos
echo 2 - Notice
echo 3 - Sai
print -n
read RESP
case $RESP in
1) $dir_relatorio/jsi03e_carga;;
2) /usr/local/notice/manager ;;
3) exit ;;
*) print -n Opcao Invalida - Tecle <enter>
read ENTER ;;
esac
done
Comando exit:
Serve para sair do while sem ser pela condio definida na
expresso.
Programao Shell
27
Notas:
Comandos do Shell
Exemplo:
man nome_comando
Arquivos e diretrios
Seleo
Combinao e ordenao
Impresso
Segurana
Comandos :
1.
2.
3.
4.
5.
6.
prxima linha
prxima pgina
pgina anterior
procura string
continuar a busca
cancelar pesquisa
ENTER
space bar
CTRL B
/\caracter especial ou /string
n
q ou CTRL C
Programao Shell
28
TIPO
Diretrio
Arquivo
Seleo
Juno
Ordenao
Transformao
Impresso
Segurana
Leitura
COMANDO
cd ls pwd
mkdir rmdir
cat cp csplit
ln
mv rm split
awk
cut
grep
head
line
sed
tail
uniq
wc
cat
join
paste
sort
sed
tr
dd
cat
echo
chmod
$<
touch
sleep
exit
Notas:
Os comandos de Diretrios e Arquivos j foram abordados
anteriormente. Eles podem ser utilizados sem restries numa shell.
Exemplos:
\rm arquivo_old >& /dev/null
\ls -la
/bin/cat arquivo
/bin/mv arqvelho arqnovo
/bin/pwd
/bin/mkdir meudir
Alguns lembretes:
cd
ls
pwd
mkdir
mkdir -p
rmdir
cp
cp -p
mv
rm
basename
dirname
diff
cmp
Programao Shell
29
Notas:
Comandos de Impresso
echo ou print
Escreve argumentos em stdout.
echo
Exemplos:
1. print -n Entre com a opo desejada =>
Entre com a opo desejada __
2. echo Hoje dia $dia
3. echo Bom dia
4. echo Os arquivos so: *
5. echo Essa pessoa $nome eh muito legal > arq
6. echo *
o mesmo que o comando ls *
Sintaxe:
echo [opes] string
Opes:
-n : no adiciona uma nova linha no stdout antes
de imprimir a string, deixando o cursor na linha
da mensagem escrita. FUNCIONA APENAS
COM PRINT
Programao Shell
30
Notas:
Comandos de Impresso
cat
cat
Concatena e imprime. O comando cat no altera dados,
ele toma a stdin e a reproduz no stdout. Possui tambm
a opo de varrer o arquivo mas no pra a cada tela
do terminal.
Sintaxe:
cat [opes] stdin
Opes:
-n : lista as linhas do arquivo numerando-as
file:
Exemplos:
1. cat capt1 capit2 > livro
livro ir conter capit1,2
2. cat capt3 >> livro
anexe capit3 no livro
3. cat capit1
lista capit1 no terminal
4. cat -n capit1
lista capit1 numerando as linhas
5. cat > arq1
direciona o stdin para o terminal e stdout para arq1, assim
tudo que for digitado ser gravado no arq1. Para encerrar
tecle CTRL D.
Programao Shell
31
Notas:
Comando de Segurana
chmod
Altera a permisso do arquivo.
Sintaxe:
chmod [quem] operao acesso arquivo
Exemplos:
chmod u=rwx,go= arquivo
ls -la
-rwx------ 1 lilliam supsof
Opes:
quem: u(usurio), g(grupo), o(outros), a
(todos)
operao: +(atribuir), -(remover), =
acesso: r(read), w(write), x(execuo)
-R : altera a permisso dos arquivos e
diretrios descendetemente.
Para tornar um shell script executvel, necessrio alterar
a permisso do arquivo.
Comando de Leitura
chmod
Se a sua shell for executar o comando FTP voc dever alterar a
permisso do arquivo que contm o usurio e a senha para
somente o dono ler, gravar e executar.
Exemplo:
echo -n Digite a opcao:
read opcao
if (($opcao > 9)) then
echo Opcao Invalida
fi
read
Direciona o terminal como stdin, ou seja , captura o
que foi digitado no teclado.
Sintaxe:
read varivel
Programao Shell
32
Notas:
Comando de Ordenao
sort
Ordena e combina mltiplos arquivos.
Sintaxe:
sort [opes] stdin .....
Opes:
a
-b: ignora espaos em branco para encontrar a 1
ou ltima coluna do campo
-d: sorteia usando ordem alfabtica. Somente
letras, dgitos e espaos so considerados na
comparao.
-f: altera todas as letras minsculas para
maisculas antes da comparao.
-m: junta todos arquivos de entrada num s. Os
arquivos de entrada devem estar sorteados.
-n: ordena o arquivo numericamente
-r : ordena o arquivo na forma decrescente
-u: deleta linhas duplicadas
-t: define delimitador
-k [cpo ini.col ini] [opo] [ , cpo fim.col fim]
[opo] : define chave do sort
-o: especifica que o stdout vai ser o mesmo
arquivo do stdin
Programao Shell
33
Notas:
Comandos de Seleo
line
Copia uma linha do stdin e grava no stdout.
Sintaxe:
line stdin > stdout
stdin
stdout
- arquivo
- arquivo ou terminal
head
tail -f /var/adm/messages
tail
Seleciona as 10 linhas finais de um arquivo
Sintaxe:
tail [opes] stdin > stdout
Opes:
-n : seleciona as n ltimas linhas do stdin
-f : mostra as linhas que esto sendo
adicionadas no arquivo.
Programao Shell
34
Notas:
Comandos de Seleo
sed
Edita e altera dados.
Sintaxe:
sed [opes] stdin > stdout
Exemplos:
Opes:
-e script : edita e altera dados
Onde script pode ser:
s/string antiga/string nova/g
/string pertencente linha a ser deletada/d
s/string a ser deletada//g
deleta espao em branco at o fim
"s/ *$//g"
da linha
1d arquivo
deleta a 1 linha do arquivo
.
- No usar stdin como stdout
- Pode ser alterado o delimitador do sed de "/ "
para qualquer outro caracter "+", "(", "=", etc
Programao Shell
35
Notas:
Comandos de Seleo
Exemplos:
uniq
Sintaxe:
uniq [opes] stdin
Opes:
-u: seleciona linhas nicas
-c: conta o nmero de vezes que cada linha se
repete
-d: seleciona apenas as linhas com mais de uma
ocorrncia
find
Seleciona arquivos, a partir do diretrio especificado.
recursivo.
Sintaxe:
find dir opes
Opes:
-type: especifica o tipo de arquivo (f, d ou l)
-name : informa o nome do arquivo
-print: lista os arquivos (incluindo o path) que
satisfazem o critrio.
Programao Shell
36
Notas:
Comandos de Seleo
grep
Seleciona linhas usando um nico critrio de seleo.
Exemplos:
1. grep
Sintaxe:
grep [opes] string stdin
Mar* arquivo
2. grep Maria
Opes:
-c : conta o n de vezes que a string aparece.
-i : ignora uppercase
-l : lista somente o nome dos arquivos que contm
a string procurada.
-n : numera linhas que contm a string procurada.
-v : lista todas as linhas do arquivo exceto s que
contem a string.
^letra : lista todas as linhas que iniciem com a
letra ou string.
-w : lista somente as linhas que tem exatamente a
string passada
$varivel
palavra composta
palavra
metacaracteres (* ? [a-z] )
stringmetacaracter
arq*
maria arquivo
no aparece a linha do
Programao Shell
37
Notas:
Comandos de Seleo
cut
Seleciona colunas.
Sintaxe:
cut [opes] stdin
Exemplos:
1. cut -f1,5 -d: arquivo
2. cut -c1-72 arquivo
Opes:
3. cut -d:
-s -f3,5 arquivo
wc
Exemplos:
1. grep -l Maria arqu* | wc -l
2. cat arq l wc -l
wc
Conta linhas, palavras e caracteres de arquivos.
Sintaxe:
wc [opes] stdin
Opes:
-c:
conta caracteres
-l :
conta linhas
-w:
conta palavras
Programao Shell
38
Notas:
Comandos de Seleo
split
Divide o stdin em arquivos menores contendo um
nmero especfico de linhas .
Sintaxe:
split [opes] stdin [prefixo]
Opes:
Programao Shell
39
Notas:
Comandos de Seleo
csplit
csplit
Separa os arquivos sempre que encontrar uma
combinao entre seus argumentos e o contedo do
arquivo. No funciona no FreeBSD
Exemplos:
O arquivo livro contm:
Introduo,
Capitulo1,
Captulo 2,
Resumo.
Sintaxe:
csplit [opes] stdin [argumentos]
Opes:
-f prefixo: prefixo dos stdouts criados. O sufixo
00,01 at 99. Default xx
argumentos:
/argn/ : cria um arquivo por argumento
(inclusive). O arquivo prefixo00 contm as linhas
anteriores ao 1 argumento.
%arg% : cria um arquivo contendo os dados a
partir do argumento.
-k: no desfaz a criao dos stdouts caso o no.
de stdouts especificado seja maior que o qtd de
stdin
Programao Shell
40
Comandos de Transformao
Notas:
tr
Transforma caracter por caracter.
Sintaxe:
tr caracter velha caracter nova stdin > stdout
dd
Converte e copia arquivo.
2. tr (:)
(\t)
Sintaxe:
dd if=stdin of=stdout conv=[opes conv]
Opes do conv:
sed
Visto anteriormente.
Programao Shell
41
Notas:
Comandos de Juno
join
Junta dois arquivos, combinando linha a linha. Os
arquivos devem estar ordenados (comando sort).
Sintaxe:
join [opes] arquivo1 arquivo2
Opes:
-tCaracter: define delimitador
string especificada
arquivo2:
Aldo:enfermeiro:7234
Joo:digitador:7111
Ricardo:mdico:7323
Programao Shell
42
Comandos de Juno
Notas:
Exemplos:
paste
Anexa mltiplos arquivos coluna por coluna.
Sintaxe:
paste [opes] stdin1 stdin2
Opes:
Programao Shell
43
Notas:
Comandos de Juno
Exemplos:
awk
Linguagem de processamento e procura de padres.
Encontra linha(s) no(s) arquivo(s) de entrada que
combinam com um padro especificado e ento executa
as aes definidas.
Sintaxe:
awk [opes] '/padro/' {ao} stdin
Opes:
A ao pode ser:
-f pgm: arquivo que contm as aes a serem
executadas pelo comando awk.
pgm: so as aes a serem executadas pelo
awk.
Programao Shell
44
Notas:
Comandos de Juno
AWK (Cont.)
Tipos de padres de pesquisa:
Notas:
Comandos de Juno
AWK (Cont.)
Programao Shell
46
Comandos de Juno
AWK (Cont.)
Tipos de aes:
Output:
Impresso de campos, variveis e constantes:
{ print $1 $2} : grava em stdout o campo 1 e
campo 2 separados por um espao em branco.
Redirecionamento:
{ print $1 > arqoutput} : redireciona o campo 1 para o
sequencia
\n
\b
\t
significado
nova linha
backspace
tab
stdout arqoutput .
Instrues aritmticas:
Notas:
Programao Shell
47
Comandos de Juno
Notas:
AWK (Cont.)
Concatenao de campos:
{ print $1 = $1 $2}' : o campo 1 a concatenao do
campo 1 com campo 2
Imprimir linha em branco:
{print }
Impresso formatada de campos variveis ou
constantes :
{printf %15s\n , $1} : imprime o campo 1 por linha
formatando-o utilizando 15 posies alinhado direita.
expresso
caracter ASC II
decimal inteiro
[-] d.dddddd [+-] dd
[-] ddd.dddddd
string
imprime %
Fmt
%c
%d
%5d
%e
%f
%7.2f
%06d
|%s|
|%10s|
|%-10s|
|%.3s|
|%10.3s|
|%-10.3s|
%%
$1
97
97.5
97.5
97.5
97.5
97.5
97
Janeiro
Janeiro
Janeiro
Janeiro
Janeiro
Janeiro
Janeiro
Programao Shell
48
Notas:
Comandos de Juno
AWK (Cont.)
Begin
Aes que devem ser executadas antes do stdin ser lido.
Na execuo de mais de uma ao ela deve estar entre
colchetes.
BEGIN { FS = :
printf (%20s %5s\n , NOME , RAMAL) }
{ printf (%20s %5s\n, $2 , $1) }
End
Aes que devem ser executadas aps o stdin ser lido.
Se for executar mais de uma ao ela deve estar entre
colchetes.
END { printf ("%20s" , "fim de relatrio ") }
END { print "fim de relatrio" }
Programao Shell
49
Comandos de Juno
Notas:
AWK (Cont.)
Instrues condicionais:
if (expresso) {aes} [else {aes} ]
while (expresso) {aes}
BEGIN { FS = : }
if ($1 != prev {
print
prev = $1
}
Variveis especiais:
NR: nmero da linha corrente
NF: quantidade de campos da linha
FS = caracter: define delimitador
Programao Shell
50
Date
Algumas opes de date:
(sem 0 ex: 1)
(no. da semana)
(ano)
hora=`date +%H%M%S`
(dia do ano)
Notas:
Programao Shell
51
Notas:
Dicas de programao
1. Se a sua shell for fazer FTP, alterar a permisso do
arquivo que contm o usrio e a senha para 700. Este
um tem obrigatrio por medidas de segurana.
2. Cada sistema tem um usrio para acessar o IBM
(mainframe) via FTP. Se o objetivo deste ftp acessar
alguma viso DB2, dever ser solicitado ao DBA
autorizao para acesso s vises.
3. Utilize filtros de reduo, grep, cut e awk em primeiro
lugar em um conduto, reduzindo a quantidade dos dados
que devero ser transferidos pelo Shell.
Exemplo: grep $1 arq1 | sort
4. Utilize condutos ao invs de arquivos temporrios para
melhorar a eficincia da sua shell
Com arquivo temporrio:
cut -f1,5 arq1 > /tmp/arq1tmp
sort /tmp/arq1tmp
rm /tmp/arq1tmp
Com conduto:
cut -f1,f5 arq1 | sort
5. Qualquer programa Shell com mais de duas pginas
muito complexo.
Programao Shell
52
Notas:
Dicas de programao
6. Sempre utilize delimitador de campos nos arquivos. O
delimitador deve ser nico e simples e deve ser
utilizado entre colunas.
7.
Programao Shell
53
Notas:
vi
Comandos_vi:
/FIM
dd
^[
:x
ed
Programao Shell
54
Notas:
/usr/informix/bin/isql
Path do isql
-s bgql01
Banco de dados que est a viso/relao que
ser acessada.
-qr
Opes do isql que sero executadas. No caso,
q (query) e r(run)
delvtab53
Arquivo que contm os comandos isql
\
Continuao da linha comando
logerror_delete
Se ocorrer algum erro, ser gravado neste
arquivo
Programao Shell
55
REFERNCIAS
Programao Shell
56
:
vai para a 1 linha do arquivo
:$
vai para a ltima linha do arquivo
a
A
I
I
o
O
u
U
:u
ALTERANDO O TEXTO
altera palavra ( ou parte da palavra direita do cursor)
altera linha
altera parte da linha direita do cursor
substitui a string onde o cursor est posicionado
repete string que o cursor est com um outro caracter
r-Return para linha
junta a linha corrente com a linha acima
muda o caracter que o cursor est posicionado com o
caracter direita
altera letra (upper ou lower)
desfaz o comando anterior
desfaz todas as alteraes da linha
desfaz o comando anterior da ltima linha
x
dw
dd
D
:5,10 d
DELETANDO TEXTO
deleta caracter
deleta palavra (ou parte da palavra direita do cursor)
deleta linha
deleta parte da linha direita do cursor
deleta da linha 5 linha 10
cw
cc
C
s
r
J
xp
Programao Shell
57
:g/string/d
procura a string e deleta
:%s/string velha/string nova/g
:%s/^h.t$/host substitui palavra que comea com h e termina com t
LIMPANDO A TELA
Ctrl L
G
21G
?
limpa a tela
PROCURANDO E ALTERANDO
/string/
procura a string
?string?
procura a string no texto acima
n
procura a prxima ocorrncia da string
:g/search-string/s//replace-string/gc
procura e altera, consultando antes de cada ocorrncia
:%s/string_velha/string_nova/g
troca string_velha pela string_nova
:g/....$/s/// deleta as 4 ltimas posies
:g/^$/d
deleta linha em branco
:g/^Capit [0-9]$/g .w >> stdout
grava no arquivo todas as linhas que contenham a string
"Capit" seguida de espao em branco e 1 algarismo
variando de 1 a 9
:g/^Capit [0-9]$/ . copy $
a mesma pesquisa, porem sero copiadas para o final do
arquivo
SALVANDO E CANCELANDO
:w ou :x
salva as alteraes (no buffer)
:w filename
grava o buffer no arquivo
:wq ou :zz
salva as alteraes e sai do vi
:q!
sai do vi sem salvar as alteraes
arq .exrc
ab vc - Vocabulary
Programao Shell
58
NDICE
Programao Shell
59
24
25
FOR ............................................................................................................ 26
WHILE ........................................................................................................ 27
CASE ..........................................................................................................
TIPO DE VARIVEIS........................................................................................ 11
GLOBAL: .................................................................................................... 11
LOCAL:....................................................................................................... 11
STRING ....................................................................................................... 12
STRING ....................................................................................................... 13
INTEIRO ...................................................................................................... 14
ARRAY ....................................................................................................... 15
TYPESET ..................................................................................................... 16
30
31
COMANDO DE SEGURANA.......................................................................... 32
CHMOD .......................................................................................................
32
READ ..........................................................................................................
32
COMANDO DE ORDENAO......................................................................... 33
SORT ..........................................................................................................
33
LINE ...........................................................................................................
34
34
TAIL ........................................................................................................... 34
HEAD ..........................................................................................................
SED ............................................................................................................
35
UNIQ........................................................................................................... 36
FIND ........................................................................................................... 36
GREP .......................................................................................................... 37
CUT ............................................................................................................ 38
Programao Shell
60
WC ............................................................................................................. 38
SPLIT .......................................................................................................... 39
CSPLIT ........................................................................................................ 40
TR .............................................................................................................. 41
DD .............................................................................................................. 41
SED
............................................................................................................ 41
COMANDOS DE JUNO................................................................................ 42
JOIN............................................................................................................ 42
PASTE ......................................................................................................... 43
AWK ........................................................................................................... 44
DATE................................................................................................................... 51
DICAS DE PROGRAMAO ........................................................................... 52
EXECUTAR COMANDOS VI EM MODO BATCH ........................................ 54
COMO UTILIZAR ISQL NUM SHELL ........................................................... 55
COMANDOS BSICOS DO VI:........................................................................ 57
Programao Shell
61