Escolar Documentos
Profissional Documentos
Cultura Documentos
Canivete - Suíço - Do - Shell
Canivete - Suíço - Do - Shell
ndice
1. Operadores................................................................................................................................... 2 2. Redirecionamento........................................................................................................................ 3 3. Variveis especiais....................................................................................................................... 4 4. Expanso de variveis..................................................................................................................4 5. Blocos e agrupamentos................................................................................................................ 6 6. if, for, select, while, until, case.................................................................................................... 6 7. Opes do comando test ou [....................................................................................................... 7 8. Escapes especiais para usar no prompt (PS1).............................................................................. 9 9. Escapes reconhecidos pelo comando echo.................................................................................10 10. Formatadores do comando date................................................................................................11 11. Formatadores do comando printf............................................................................................. 12 12. Letras identificadoras de arquivos no comando ls -l................................................................12 13. Curingas para nomes de arquivo (glob)................................................................................... 13 14. Curingas para os itens do comando case.................................................................................. 14 15. Sinais para usar com trap/kill/killall........................................................................................ 15 16. Cdigos de retorno de comandos............................................................................................. 16 17. Cdigos de cores (ANSI)..........................................................................................................16 18. Os metacaracteres das expresses regulares.............................................................................18 19. Metacaracteres que so diferentes nos aplicativos................................................................... 19 20. Caracteres ASCII imprimveis (ISO-8859-1) - texto............................................................... 20 21. Caracteres ASCII imprimveis (ISO-8859-1) - imagem...........................................................21 22. Cdigos prontos para copiar e colar........................................................................................ 22 23. Atalhos da linha de comando (set -o emacs)........................................................................... 25 24. A caixa de ferramentas do shelleiro.........................................................................................26
1/27
1.Operadores
Operadores Aritmticos
+ * / % Adio Subtrao Multiplicao Diviso Mdulo
Operadores Relacionais
== Igual != Diferente > Maior
** Exponenciao
Operadores de Atribuio
= Atribui valor a uma varivel Incrementa a varivel por uma constante Decrementa a varivel por uma constante
Operadores de BIT
<< Deslocamento esquerda
+=
& | ^ ~ !
E de bit (AND) OU de bit (OR) OU exclusivo de bit (XOR) Negao de bit NO de bit (NOT)
*= Multiplica a varivel por uma constante /= Divide a varivel por uma constante %= Resto da diviso por uma constante ++ Incrementa em 1 o valor da varivel Decrementa em 1 o valor da varivel
2/27
2.Redirecionamento
Operador Ao
< > 2> >> 2>> | 2>&1 >&2 >& 2>& 3<>arq <<FIM <<FIM <(cmd) >(cmd) Redireciona a entrada padro (STDIN) Redireciona a sada padro (STDOUT) Redireciona a sada de erro (STDERR) Redireciona a sada padro, anexando Redireciona a sada de erro, anexando Conecta a sada padro com a entrada padro de outro comando Conecta a sada de erro na sada padro Conecta a sada padro na sada de erro Fecha a sada padro Fecha a sada de erro Conecta o descritor de arquivos 3 ao arquivo arq Alimenta a entrada padro (Here Document) Alimenta a entrada padro, cortando <TAB> A sada do comando 'cmd' um arquivo:diff<(cmd1) <(cmd2) A entrada do comando 'cmd' um arquivo:tarcf>(bzip2 c>file.tbz)$dir
3/27
3.Variveisespeciais
Varivel Parmetros Posicionais
$0 $1 ... $9 ${10} ... $# $* $@ Parmetro nmero 0 (nome do comando ou funo) Parmetro nmero 1 (da linha de comando ou funo) Parmetro nmero N ... Parmetro nmero 9 (da linha de comando ou funo) Parmetro nmero 10 (da linha de comando ou funo) Parmetro nmero NN ... Nmero total de parmetros da linha de comando ou funo Todos os parmetros, como uma cadeia nica Todos os parmetros, como vrias cadeias protegidas
Varivel Miscelnia
$$ $! $_ $? Nmero PID do processo atual (do prprio script) Nmero PID do ltimo job em segundo plano ltimo argumento do ltimo comando executado Cdigo de retorno do ltimo comando executado
4.Expansodevariveis
Sintaxe Expanso Condicional
${var:texto} Sevarno est definida, retornatexto ${var:=texto} Sevarno est definida, defina-a comtexto ${var:?texto} Sevarno est definida, retorna o errotexto ${var:+texto} Sevarest definida, retornatexto,seno retorna vazio
4/27
Expanso de cadeias
o mesmo que$var,porm no ambguo Retorna o tamanho da cadeia Executa o contedo de$var(igualeval\$$var) Retorna os nomes de variveis comeadas portexto Retorna o texto partir da posioN Retornatamcaracteres partir da posioN Cortatextodo incio devar Cortatextodo incio devar (*guloso) Cortatextodo final devar Cortatextodo final devar (*guloso)
${var/texto/novo} Substituitextopornovo,uma vez ${var//texto/novo} Substituitextopornovo,sempre ${var/#texto/novo} Sevarcomear comtexto,substituitextopornovo ${var/%texto/novo} Sevarterminar comtexto,substituitextopornovo
5/27
5.Blocoseagrupamentos
Sintaxe Descrio
"..." '...' $'...' `...` {...} (...) $(...) Protege uma cadeia, mas reconhece$,\e`como especiais Protege uma cadeia completamente (nenhum caractere especial) Protege uma cadeia completamente, mas interpreta\n,\t,\a,etc Executa comandos numa subshell, retornando o resultado Agrupa comandos em um bloco Executa comandos numa subshell Executa comandos numa subshell, retornando o resultado
Exemplo
"abc" 'abc' $'abc\n' `ls` {ls;} (ls) $(ls) ((5>3)) $((5+3))
((...)) Testa uma operao aritmtica, retornando 0 ou 1 $((...)) Retorna o resultado de uma operao aritmtica [...] [[...]]
Testa uma expresso, retornando 0 ou 1 (alias do comando [5gt3] test) Testa uma expresso, retornando 0 ou 1 (podendo usar&& [[5>3]] e||)
6.if,for,select,while,until,case
if ifCOMANDO then ... elifCOMANDO then ... else ... fi for/select forVARinLISTA do ... done while/until whileCOMANDO do ... done case case$VARin txt1)...;; txt2)...;; txtN)...;; *)...;; esac
ou: for((exp1;exp2;exp3))
6/27
7.Opesdocomandotestou[
Testes em arquivos
b c d e f g G k L O p r s S t u w x nt ot ef um dispositivo de bloco um dispositivo de caractere um diretrio O arquivo existe um arquivo normal O bit SGID est ativado O grupo do arquivo o do usurio atual O sticky-bit est ativado O arquivo um link simblico O dono do arquivo o usurio atual O arquivo um named pipe O arquivo tem permisso de leitura O tamanho do arquivo maior que zero O arquivo um socket O descritor de arquivos N um terminal O bit SUID est ativado O arquivo tem permisso de escrita O arquivo tem permisso de execuo O arquivo mais recente (NewerThan) O arquivo mais antigo (OlderThan) O arquivo o mesmo (EqualFile)
7/27
Comparao Numrica
lt gt le ge eq ne menor que (LessThan) maior que (GreaterThan) menor igual (LessEqual) maior igual (GreaterEqual) igual (EQual) diferente (NotEqual)
Comparao de cadeias
= != n z igual diferente no nula nula
Operadores Lgicos
! a o NO lgico (NOT) E lgico (AND) OU lgico (OR)
8/27
8.Escapesespeciaisparausarnoprompt(PS1)
Escape Lembrete Expande para...
\a \d \e \h \H \j \l \n \r \s \t \T \@ \A \u \v \V \w \W \! \# \$ \nnn \\ \[ \] Alerta Data Escape Hostname Hostname Jobs Tty Newline Return Shell Time Time At At Usurio Verso Verso Alerta (bipe) Data no formato "Dia-da-semana Ms Dia" (Sat Jan 15) Caractere Esc Nome da mquina sem o domnio (dhcp11) Nome completo da mquina (dhcp11.empresa) Nmero de jobs ativos Nome do terminal corrente (ttyp1) Linha nova Retorno de carro Nome do shell(basename$0) Horrio no formato 24 horas HH:MM:SS Horrio no formato 12 horas HH:MM:SS Horrio no formato 12 horas HH:MM am/pm Horrio no formato 24 horas HH:MM Login do usurio corrente Verso do Bash (3.00) Verso+subverso do Bash (3.00.0)
Working Dir Diretrio corrente, caminho completo ($PWD) Working Dir Diretrio corrente, somente o ltimo(basename$PWD) Histrico Nmero ID Octal Backslash Escapes Escapes Nmero do comando corrente no histrico Nmero do comando corrente Mostra#se for root,$se for usurio normal Caractere cujo octal nnn Barra invertida\literal Inicia uma seqncia de escapes (tipo cdigos de cores) Termina uma seqncia de escapes
9/27
9.Escapesreconhecidospelocomandoecho
Escape Lembrete Descrio
\a \b \c \e \f \n \r \t \v \\ \nnn \xnn Alerta Backspace EOS Escape Form feed Newline Return Tab Vtab Backslash Octal Hexa Alerta (bipe) Caractere Backspace Termina a cadeia Caractere Esc Alimentao Linha nova Retorno de carro Tabulao horizontal Tabulao vertical Barra invertida\literal Caractere cujo octal nnn Caractere cujo hexadecimal nn
10/27
10.Formatadoresdocomandodate
Formato
%a %A %b %B %c %y %Y %m %d %j %H %M %S %s %% %t %n
Descrio
Nome do dia da semana abreviado (Dom..Sb) Nome do dia da semana (Domingo..Sbado) Nome do ms abreviado (Jan..Dez) Nome do ms (Janeiro..Dezembro) Data completa (Sat Nov 04 12:02:33 EST 1989) Ano (dois dgitos) Ano (quatro dgitos) Ms (01..12) Dia (01..31) Dia do ano (001..366) Horas (00..23) Minutos (00..59) Segundos (00..60) Segundos desde 1 de Janeiro de 1970 Um % literal Um TAB Uma quebra de linha
11/27
11.Formatadoresdocomandoprintf
Formato
%d %o %x %X %f %e %E %s
Descrio
Nmero decimal Nmero octal Nmero hexadecimal(af) Nmero hexadecimal(AF) Nmero com ponto flutuante Nmero em notao cientfica(e+1) Nmero em notao cientfica(E+1) cadeia
12.Letrasidentificadorasdearquivosnocomandolsl
Letra
d l b c s p
12/27
Canivete Suo do Shell Letra Lembrete Permisses do Arquivo (prximos nove caracteres)
r w x X s S t T Read Write eXecute eXecute Set id Set id sTicky sTicky Permisso desativada Acesso de leitura Acesso de escrita Acesso de execuo (ou acesso ao diretrio) Acesso ao diretrio somente Usurio/grupo para execuo (SUID, SGID) - permissoxativada Usurio/grupo para execuo (SUID, SGID) - permissox desativada Usurios s apagam seus prprios arquivos - permissoxativada Usurios s apagam seus prprios arquivos - permissox desativada
13.Curingasparanomesdearquivo(glob)
Curinga Casa com...
* ? [...] [!...] {...} Qualquer coisa Um caractere qualquer Qualquer um dos caracteres listados Qualquer um caractere, exceto os listados Qualquer um dos textos separados por vrgula
Exemplo
*.txt arq uivo??.zip [Aa]rq uivo.txt [!AZ]*.txt arq uivo.{txt,html}
13/27
14.Curingasparaositensdocomandocase
Curinga Casa com...
* ? [...] [^...] Qualquer coisa Um caractere qualquer Qualquer um dos caracteres listados Qualquer um caractere, exceto os listados
Exemplo
*.txt)echo;; arq uivo??.zip)echo;; [09])echo;; [^09])echo;; txt|html)echo;;
14/27
15.Sinaisparausarcomtrap/kill/killall
# Linux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # 25 26 27 28 29 30 31 32 33 34 35 36 37 HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM CHLD CONT STOP TSTP TTIN TTOU URG XCPU Linux XFSZ VTALRM PROF WINCH IO PWR SYS -
15/27
16.Cdigosderetornodecomandos
Cdigo Significado
0 1 2 126 127 128 128+n 130 255 Nenhum erro, execuo terminou OK A maioria dos erros comuns na execuo Erro de uso em algum builtin do Shell Comando no executvel (sem permisso) Comando no encontrado (command not found)
Exemplo
echo echo$((1/0)) toucha;./a echooo
O parmetro para oexitno um decimal exit1.0 128 + cdigo do sinal que o matou O programa interrompido com o Ctrl+C (128 + 2) Parmetro para oexitno est entre 0 e 255 kill9$PPID#exit137 exit1
17.Cdigosdecores(ANSI)
Cor
Preto
Vermelho
Sublinhado 4
Piscando Reverso
5 7
Na linha de comando:
echoe'\e[33;1mamarelo\e[m' echoe'\033[33;1mamarelo\033[m'
16/27
17/27
18.Osmetacaracteresdasexpressesregulares
Meta Nome
. [] [^] ? * + {,} ^ $ \b \ | () \1 \2 .* ?? *? +? {}? Ponto Lista Lista negada Opcional Asterisco Mais Chaves Circunflexo Cifro Borda Escape Ou Grupo Retrovisor Retrovisor Curinga Opcional NG Asterisco NG Mais NG Chaves NG
Descrio
Curinga de um caractere Casa qualquer um dos caracteres listados Casa qualquer caractere, exceto os listados A entidade anterior pode aparecer ou no (opcional) A entidade anterior pode aparecer em qualquer quantidade A entidade anterior deve aparecer no mnimo uma vez A entidade anterior deve aparecer na quantidade indicada Casa o comeo da linha Casa o fim da linha Limita uma palavra (letras, nmeros e sublinhado) Escapa um meta, tirando seu poder Indica alternativas (usar com o grupo) Agrupa partes da expresso, quantificvel e multinvel Recupera o contedo do grupo 1 Recupera o contedo do grupo 2 (segue at o \9) Casa qualquer coisa, o tudo e o nada Idem ao opcional comum, mas casa o mnimo possvel Idem ao asterisco comum, mas casa o mnimo possvel Idem ao mais comum, mas casa o mnimo possvel Idem s chaves comuns, mas casa o mnimo possvel
18/27
19.Metacaracteresquesodiferentesnosaplicativos
Programa Opc Mais Chaves Borda Ou Grupo
awk ed egrep emacs expect find gawk grep mawk perl php python sed vim ? \? ? ? ? ? ? \? ? ? ? ? \? \= + \+ + + + + + \+ + + + + \+ \+ \{,\} {,} {,} \{,\} {,} {,} {,} \{,\} \{,} \b \b \b \b \<\> \b \b \b \b \<\> \<\> | \| | \| | \| | \| | | | | \| \| () \(\) () \(\) () \(\) () \(\) () () () () \(\) \(\)
19/27
20.CaracteresASCIIimprimveis(ISO88591)texto
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 161 ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
20/27
21.CaracteresASCIIimprimveis(ISO88591)imagem
21/27
22.Cdigosprontosparacopiarecolar
Condicionais com o IF
if[f"$arquivo"];thenecho'Arquivoencontrado';fi if[!d"$dir"];thenecho'Diretrionoencontrado';fi if[$igt5];thenecho'Maiorque5';elseecho'Menorque5';fi if[$ige5a$ile10];thenecho'Entre5e10,incluindo';fi if[$ieq5];thenecho'=5';elif[$igt5];thenecho'>5';else echo'<5';fi if["$USER"='root'];thenecho'Oiroot';fi ifgrepqs'root'/etc/passwd;thenecho'Usurioencontrado';fi
Adicionar 1 varivel $i
i=$(expr$i+1) i=$((i+1)) leti=i+1 leti+=1 leti++
22/27
23/27
24/27
23.Atalhosdalinhadecomando(setoemacs)
Atalho Descrio
Ctrl+A Ctrl+B Ctrl+C Ctrl+D Ctrl+E Ctrl+F Ctrl+H Ctrl+I Ctrl+J Ctrl+K Ctrl+L Ctrl+N Ctrl+P Ctrl+Q Ctrl+R Ctrl+S Ctrl+T Ctrl+U Ctrl+V Ctrl+W Ctrl+X Ctrl+Y Move o cursor para o incio da linha Move o cursor uma posio esquerda Envia sinal EOF() para o sistema Apaga um caractere direita Move o cursor para o fim da linha Move o cursor uma posio direita Apaga um caractere esquerda Completa arquivos e comandos Quebra a linha Recorta do cursor at o fim da linha Limpa a tela (igual ao comandoclear) Prximo comando Comando anterior Destrava a shell (veja Ctrl+S) Procura no histrico de comandos Trava a shell (veja Ctrl+Q) Troca dois caracteres de lugar Recorta a linha inteira Insere caractere literal Recorta a palavra esquerda Move o cursor para o incio/fim da linha (2x) Cola o trecho recortado Home/End Delete End Backspace Tab Enter
Tecla Similar
Home
25/27
24.Acaixadeferramentasdoshelleiro
Comando Funo
cat cut date diff echo find fmt grep head od paste printf rev sed seq sor t tac tail tee tr uniq wc xargs Mostra arquivo Extrai campo Mostra data Compara arquivos Mostra texto Encontra arquivos Formata pargrafo Encontra texto Mostra Incio Mostra Caracteres Paraleliza arquivos Mostra texto Inverte texto Edita texto Conta Nmeros Ordena texto Inverte arquivo Mostra Final Arquiva fluxo Transforma texto Remove duplicatas Conta Letras Gerencia argumentos
Opes teis
n,s df,c d,+'...' u,Nr,i,w e,n name,iname,typef,exec,or w,u i,v,r,qs,n,l,wx,ABC n,c a,c,o,x d,s nenhuma nenhuma n,f,s/isso/aq uilo/,p,d,q,N s,f n,f,r,kt,o nenhuma n,c,f a d,s,AZaz i,d,u c,w,l,L n,i
26/27
27/27