Você está na página 1de 14

1.

Operadores
Operadores Aritmticos + Adio - Subtrao * Multiplicao / Diviso % Mdulo ** Exponenciao Operadores de Atribuio = Atribui valor a uma varivel += Incrementa a varivel por uma constante -= Decrementa a varivel por uma constante *= 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 Operadores Lgicos && E lgico (AND) || OU lgico (OR) Operadores de BIT (atribuio) <<= Deslocamento esquerda >>= Deslocamento direita &= E de bit |= OU de bit ^= OU exclusivo de bit Operadores Relacionais == Igual != Diferente > < Maior Menor Operadores de BIT << Deslocamento esquerda >> Deslocamento direita & | ^ ~ ! E de bit (AND) OU de bit (OR) OU exclusivo de bit (XOR) Negao de bit NO de bit (NOT) >= Maior ou Igual <= Menor ou Igual

2. Redirecionamento
Operador < > 2> >> 2>> | 2>&1 >&2 >&2>&Ao 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

3<>arq Conecta o descritor de arquivos 3 ao arquivo 'arq' <<FIM Alimenta a entrada padro (Here Document) <<-FIM Alimenta a entrada padro, cortando TABs <(cmd) A sada do comando 'cmd' um arquivo: diff <(cmd1) <(cmd2) >(cmd) A entrada do comando 'cmd' um arquivo: tar cf >(bzip2 -c >file.tbz) $dir

3. Variveis especiais
Varivel $0 $1 ... $9 ... $# $* $@ Varivel $$ $! $_ $? Parmetros Posicionais 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 NN ... Nmero total de parmetros da linha de comando ou funo Todos os parmetros, como uma string nica Todos os parmetros, como vrias strings protegidas 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

${10} Parmetro nmero 10 (da linha de comando ou funo)

4. Expanso de variveis
Sintaxe ${var:-texto} ${var:=texto} ${var:?texto} ${var:+texto} Sintaxe ${var} ${#var} ${!var} ${!texto*} ${var:N} ${var:N:tam} ${var#texto} Expanso Condicional Se var no est definida, retorna 'texto' Se var no est definida, defina-a com 'texto' Se var no est definida, retorna o erro 'texto' Se var est definida, retorna 'texto', seno retorna o vazio Expanso de Strings o mesmo que $var, porm no ambguo Retorna o tamanho da string Executa o contedo de $var (igual 'eval \$$var') Retorna os nomes de variveis comeadas por 'texto' Retorna o texto partir da posio 'N' Retorna 'tam' caracteres partir da posio 'N' Corta 'texto' do incio da string

${var##texto} ${var%texto} ${var%%texto} ${var/texto/novo}

Corta 'texto' do incio da string (* guloso) Corta 'texto' do final da string Corta 'texto' do final da string (* guloso) Substitui 'texto' por 'novo', uma vez

${var//texto/novo} Substitui 'texto' por 'novo', sempre ${var/#texto/novo} Se a string comear com 'texto', substitui 'texto' por 'novo' ${var/%texto/novo} Se a string terminar com 'texto', substitui 'texto' por 'novo'

5. Blocos e agrupamentos
Sintaxe "..." '...' $'...' `...` {...} (...) $(...) Descrio Protege uma string, mas reconhece $, \ e ` como especiais Protege uma string completamente (nenhum caractere especial) Protege uma string 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)) [[ 5 > 3 ]]

((...)) Testa uma operao aritmtica, retornando 0 ou 1 $((...)) Retorna o resultado de uma operao aritmtica [...] [[...]] Testa uma expresso, retornando 0 ou 1 (podendo usar && e ||)

Testa uma expresso, retornando 0 ou 1 (alias do comando 'test') [ 5 -gt 3 ]

6. if, for, select, while, until, case


if if COMANDO then ... elif COMANDO then ... else ... fi for / select while / until case for VAR in LISTA while COMANDO case $VAR in do do txt1) ... ;; ... ... txt2) ... ;; done done txtN) ... ;; *) ... ;; esac ou: for ((exp1;exp2;exp3))

7. Opes do comando test ou [


Testes em arquivos -b -c um dispositivo de bloco um dispositivo de caractere Comparao Numrica Testes em variveis

-d -e -f -g -G -k -L -O -p -r -s -S -t -u -w -x

um diretrio O arquivo existe um arquivo normal O bit SGID est ativado 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

-lt menor que (LessThan) -gt maior que (GreaterThan) -le menor igual (LessEqual) -ge maior igual (GreaterEqual) -ne diferente (NotEqual) Comparao de Strings = igual != diferente -n no nula -z nula Operadores Lgicos ! NO lgico (NOT) -a E lgico (AND) -o OU lgico (OR)

O grupo do arquivo o do usurio atual -eq igual (EQual)

-nt O arquivo mais recente (NewerThan) -ot O arquivo mais antigo (OlderThan) -ef O arquivo o mesmo (EqualFile)

8. Escapes especiais para usar no prompt (PS1)


Escape Lembrete \a \d \e \h \H \j \l \n \r \s \t \T \@ \A \u Alerta Data Escape Hostname Hostname Jobs Tty Newline Return Shell Time Time At At Usurio 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 Expande para...

\v \V \w \W \! \# \$ \nnn \\ \[ \]

Verso Verso

Verso do Bash (2.00) Verso+subverso do Bash (2.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. Escapes reconhecidos pelo comando echo


Escape Lembrete \a \b \c \e \f \n \r \t \v \\ \nnn \xnn Alerta EOS Escape Newline Return Tab Vtab Octal Hexa Descrio Alerta (bipe) Termina a string Caractere Esc Linha nova Retorno de carro Tabulao horizontal Tabulao vertical Caractere cujo octal nnn Caractere cujo hexadecimal nn

Backspace Caractere Backspace

Form feed Alimentao

Backslash Barra invertida \ literal

10. Formatadores do comando date


Formato %a %A %b %B %c %y %Y %m 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)

%d %j %H %M %S %s %% %t %n

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. Formatadores do comando printf


Formato %d %o %x %X %f %e %E %s Descrio Nmero decimal Nmero octal Nmero hexadecimal (a-f) Nmero hexadecimal (A-F) Nmero com ponto flutuante Nmero em notao cientfica (e+1) Nmero em notao cientfica (E+1) String

12. Letras identificadoras de arquivos no comando ls -l


Letra Lembrete d l b c s p r w x X s Link Block Char Socket Pipe Read Write Directory Diretrio Link simblico Dispositivo de blocos (HD) Dispositivo de caracteres (modem serial) Socket mapeado em arquivo (comunicao de processos) FIFO ou Named Pipe (comunicao de processos) Permisses do Arquivo (prximos nove caracteres) Permisso desativada Acesso de leitura Acesso de escrita Tipos de Arquivo (primeiro caractere) Arquivo normal

Letra Lembrete

eXecute Acesso de execuo (ou acesso ao diretrio) eXecute Acesso ao diretrio somente Set ID Usurio/grupo para execuo (SUID, SGID) - permisso 'x' ativada

S t T

Set ID sTicky sTicky

Usurio/grupo para execuo (SUID, SGID) - permisso 'x' desativada Usurios s apagam seus prprios arquivos - permisso 'x' ativada Usurios s apagam seus prprios arquivos - permisso 'x' desativada

13. Curingas para nomes de arquivo (glob)


Curinga * ? Qualquer coisa Um caractere qualquer Casa com... *.txt arquivo-??.zip [Aa]rquivo.txt [^A-Z]*.txt Exemplo

[...] Qualquer um dos caracteres listados [^...] Qualquer um caractere, exceto os listados

{...} Qualquer um dos textos separados por vrgula arquivo.{txt,html}

14. Curingas para os itens do comando case


Curinga * ? Casa com... Qualquer coisa Um caractere qualquer Exemplo *.txt) echo ;; arquivo-??.zip) echo ;; [0-9]) echo ;; [^0-9]) echo ;; txt|html) echo ;;

[...] Qualquer um dos caracteres listados [^...] Qualquer um caractere, exceto os listados ...|... Qualquer um dos textos separados por |

15. Sinais para usar com trap/kill/killall


# Linux Cygwin HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS Cygwin PIPE ALRM SystemV HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS SystemV PIPE ALRM AIX HUP INT QUIT ILL TRAP LOST EMT FPE KILL BUS SEGV SYS AIX PIPE ALRM HP-UX HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS HP-UX PIPE ALRM Solaris HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS Solaris PIPE ALRM BSD/Mac HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS BSD/Mac PIPE ALRM 1 HUP 2 INT 3 QUIT 4 ILL 5 TRAP 6 ABRT 7 BUS 8 FPE 9 KILL 10 USR1 11 SEGV 12 USR2 # Linux 13 PIPE 14 ALRM

15 TERM 16 17 CHLD 18 CONT 19 STOP 20 TSTP 21 TTIN 22 TTOU 23 URG 24 XCPU # Linux 25 XFSZ 27 PROF 28 WINCH 29 IO 30 PWR 31 SYS 32 33 34 35 36 37 -

TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU Cygwin XFSZ PROF WINCH LOST USR1 USR2 -

TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP SystemV CONT TTOU PROF XCPU XFSZ -

TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU AIX XFSZ MSG PWR USR1 USR2 PROF

TERM USR1 USR2 CHLD PWR PROF IO WINCH STOP HP-UX TSTP CONT TTIN TTOU URG LOST -

TERM USR1 USR2 CHLD PWR URG IO STOP TSTP Solaris CONT TTIN TTOU PROF XCPU XFSZ LWP FREEZE THAW LOST

TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU BSD/Mac XFSZ VTALRM PROF INFO USR1 USR2 -

VTALRM WINCH

26 VTALRM VTALRM TTIN

VTALRM WINCH

VTALRM WINCH

WAITING -

DANGER VTALRM MIGRATE PRE -

CANCEL -

Como obter a listagem: trap -l, kill -l ou killall l Veja tambm: man 7 signal

16. Cdigos de retorno de comandos


Cdigo 0 1 2 126 127 128 130 Significado 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) O parmetro para o 'exit' no um decimal echo echo $((1/0)) touch a ; ./a exit 1.0 kill -9 $PPID #exit 137 Exemplo

Comando no encontrado ("command not found") echooo

128+n 128 + cdigo do sinal que o matou

O programa interrompido com o Ctrl+C (128 + 2) -

255

Parmetro para o 'exit' no est entre 0 e 255

exit -1

17. Cdigos de cores (ANSI)


Cor Preto Vermelho Verde Amarelo Azul Rosa Ciano Branco Letra Fundo ## Atributo Valor ## 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 Reset Negrito Sublinhado Piscando Reverso 0 1 4 5 7 Exemplos: ESC [ <N>;<N> m ESC[m texto normal (desliga cores) ESC[1m negrito ESC[33;1m amarelo ESC[44;37m fundo azul, letra cinza ESC[31;5m vermelho piscando Na linha de comando: echo -e '\e[33;1m amarelo \e[m' echo -e '\033[33;1m amarelo \ 033[m'

18. Os metacaracteres das expresses regulares


Meta . [] ? * + ^ $ \b \ | () \1 \2 .* ?? *? Nome Ponto Lista Opcional Asterisco Mais Circunflexo Cifro Borda Escape Ou Grupo Retrovisor Retrovisor Curinga Descrio Curinga de um caractere Casa qualquer um dos caracteres 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

[^] Lista negada Casa qualquer caractere, exceto os listados

{,} Chaves

Opcional NG Idem ao opcional comum, mas casa o mnimo possvel Asterisco NG Idem ao asterisco comum, mas casa o mnimo possvel Idem ao mais comum, mas casa o mnimo possvel

+? Mais NG

{}? Chaves NG

Idem s chaves comuns, mas casa o mnimo possvel

19. Metacaracteres que so diferentes nos aplicativos


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 \<\> \<\> | \| | \| | \| | \| | | | | \| \| () \(\) () \(\) () \(\) () \(\) () () () () \(\) \(\)

20. Caracteres ASCII imprimveis (ISO-8859-1) - texto


$ zzascii 32 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44 , 45 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 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 @ 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 ` 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 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 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

60 61 62 63

< = > ?

92 93 94 95

\ ] ^ _

124 125 126 161

| } ~

190 191 192 193

222 223 224 225

254 255

21. Caracteres ASCII imprimveis (ISO-8859-1) - imagem

22. Cdigos prontos para copiar e colar


Condicionais com o IF if [ -f "$arquivo" ]; then echo 'Arquivo encontrado'; fi if [ ! -d "$dir" ]; then echo 'Diretrio no encontrado'; fi if [ $i -gt 5 ]; then echo 'Maior que 5'; else echo 'Menor que 5'; fi if [ $i -ge 5 -a $i -le 10 ]; then echo 'Entre 5 e 10, incluindo'; fi if [ $i -eq 5 ]; then echo '=5'; elif [ $i -gt 5 ]; then echo '>5'; else echo '<5'; fi if [ "$USER" = 'root' ]; then echo 'Oi root'; fi if grep -qs 'root' /etc/passwd; then echo 'Usurio encontrado'; fi Condicionais com o E (&&) e OU (||)

[ -f "$arquivo" ] && echo 'Arquivo encontrado' [ -d "$dir" ] || echo 'Diretrio no encontrado' grep -qs 'root' /etc/passwd && echo 'Usurio encontrado' cd "$dir" && rm "$arquivo" && touch "$arquivo" && echo 'feito!' [ "$1" ] && param=$1 || param='valor padro' [ "$1" ] && param=${1:-valor padro} [ "$1" ] || { echo "Uso: $0 parmetro" ; exit 1 ; } Adicionar 1 varivel $i i=$(expr $i + 1) i=$((i+1)) let i=i+1 let i+=1 let i++ Loop de 1 10 for i in 1 2 3 4 5 6 7 8 9 10; do echo $i; done for i in $(seq 10); do echo $i; done for ((i=1;i<=10;i++)); do echo $i; done i=1 ; while [ $i -le 10 ]; do echo $i ; i=$((i+1)) ; done i=1 ; until [ $i -gt 10 ]; do echo $i ; i=$((i+1)) ; done Loop nas linhas de um arquivo ou sada de comando cat /etc/passwd | while read LINHA; do echo "$LINHA"; done grep 'root' /etc/passwd | while read LINHA; do echo "$LINHA"; done while read LINHA; do echo "$LINHA"; done < /etc/passwd while read LINHA; do echo "$LINHA"; done < <(grep 'root' /etc/passwd) Curingas nos itens do comando case case "$dir" in /home/*) echo 'dir dentro do /home';; esac case "$user" in root|joao|maria) echo "Oi $user";; *) echo "No te conheo";; esac case "$var" in ?) echo '1 letra';; ??) echo '2 letras';; ??*) echo 'mais de 2';; esac case "$i" in [0-9]) echo '1 dgito';; [0-9][0-9]) echo '2 dgitos';; esac Caixas do Dialog dialog --calendar 'abc' 0 0 31 12 1999 dialog --checklist 'abc' 0 0 0 item1 'desc1' on item2 'desc2' off dialog --fselect /tmp 0 0 (echo 50; sleep 2; echo 100) | dialog --gauge 'abc' 8 40 0 dialog --infobox 'abc' 0 0 dialog --inputbox 'abc' 0 0 dialog --passwordbox 'abc' 0 0 dialog --menu 'abc' 0 0 0 item1 'desc1' item2 'desc2' dialog --msgbox 'abc' 8 40 dialog --radiolist 'abc' 0 0 0 item1 'desc1' on item2 'desc2' off dialog --tailbox /tmp/arquivo.txt 0 0

dialog --textbox /tmp/arquivo.txt 0 0 dialog --timebox 'abc' 0 0 23 59 00 dialog --yesno 'abc' 0 0 Dica1: dialog ... && echo 'Apertou OK/Yes' || echo 'Apertou Cancel/No' Dica2: resposta=$(dialog --stdout --TIPODACAIXA 'abc' ...)

23. Atalhos da linha de comando (set -o emacs)


Atalho Descrio Tecla Similar Home Delete End Backspace Tab Enter Ctrl+A Move o cursor para o incio da linha Ctrl+B Move o cursor uma posio esquerda Ctrl+C Envia sinal EOF() para o sistema Ctrl+D Apaga um caractere direita Ctrl+E Move o cursor para o fim da linha Ctrl+F Move o cursor uma posio direita Ctrl+H Apaga um caractere esquerda Ctrl+I Ctrl+J Completa arquivos e comandos Quebra a linha

Ctrl+K Recorta do cursor at o fim da linha Ctrl+L Limpa a tela (igual ao comando clear) Ctrl+N Prximo comando Ctrl+P Comando anterior Ctrl+Q Destrava a shell (veja Ctrl+S) Ctrl+R Procura no histrico de comandos Ctrl+S Trava a shell (veja Ctrl+Q) Ctrl+T Troca dois caracteres de lugar Ctrl+U Recorta a linha inteira Ctrl+V Insere caractere literal Ctrl+W Recorta a palavra esquerda Ctrl+X Move o cursor para o incio/fim da linha (2x) Home/End

Ctrl+Y Cola o trecho recortado

24. A caixa de ferramentas do shelleiro


Comando cat cut date Funo Mostra arquivo Extrai campo Mostra data -n, -s -d -f, -c -d, +'...' Opes teis

diff echo find fmt grep head od paste printf rev sed seq sort tac tail tee tr uniq wc xargs

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

-u, -Nr, -i, -w -e, -n -name, -iname, -type f, -exec, -or -w, -u -i, -v, -r, -qs, -n, -l, -w -x, -A -B -C -n, -c -a, -c, -o, -x -d, -s nenhuma nenhuma -n, -f, s/isso/aquilo/, p, d, q, N -s, -f -n, -f, -r, -k -t, -o nenhuma -n, -c, -f -a -d, -s, A-Z a-z -i, -d, -u -c, -w, -l, -L

Gerencia argumentos -n, -i

Você também pode gostar