Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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 ||)
-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)
-nt O arquivo mais recente (NewerThan) -ot O arquivo mais antigo (OlderThan) -ef O arquivo o mesmo (EqualFile)
\v \V \w \W \! \# \$ \nnn \\ \[ \]
Verso Verso
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
%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
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
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
[...] Qualquer um dos caracteres listados [^...] Qualquer um caractere, exceto os listados
[...] Qualquer um dos caracteres listados [^...] Qualquer um caractere, exceto os listados ...|... Qualquer um dos textos separados por |
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
VTALRM WINCH
VTALRM WINCH
WAITING -
CANCEL -
Como obter a listagem: trap -l, kill -l ou killall l Veja tambm: man 7 signal
255
exit -1
{,} 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
60 61 62 63
< = > ?
92 93 94 95
\ ] ^ _
| } ~
254 255
[ -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' ...)
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
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