1. Operadores
   | Operadores Aritméticos | 
 | Operadores Relacionais | 
  | + | Adição | 
 | == | Igual | 
  | - | Subtração | 
 | != | Diferente | 
  | * | Multiplicação | 
 | > | Maior | 
  | / | Divisão | 
 | >= | Maior ou Igual | 
  | % | Módulo | 
 | < | Menor | 
  | ** | Exponenciação | 
 | <= | Menor ou Igual | 
  | Operadores de Atribuição | 
 | Operadores de BIT | 
  | = | Atribui valor a uma variável | 
 | << | Deslocamento à esquerda | 
  | += | Incrementa a variável por uma constante | 
 | >> | Deslocamento à direita | 
  | -= | Decrementa a variável por uma constante | 
 | & | E de bit (AND) | 
  | *= | Multiplica a variável por uma constante | 
 | | | OU de bit (OR) | 
  | /= | Divide a variável por uma constante | 
 | ^ | OU exclusivo de bit (XOR) | 
  | %= | Resto da divisão por uma constante | 
 | ~ | Negação de bit | 
  | ++ | Incrementa em 1 o valor da variável | 
 | ! | NÃO de bit (NOT) | 
  | -- | Decrementa em 1 o valor da variável | 
 | 
 | 
  | Operadores Lógicos | 
 | Operadores de BIT (atribuição) | 
  | && | E lógico (AND) | 
 | <<= | Deslocamento à esquerda | 
  | || | OU lógico (OR) | 
 | >>= | Deslocamento à direita | 
  | 
 | 
 | 
 | &= | E de bit | 
  | 
 | 
 | 
 | |= | OU de bit | 
  | 
 | 
 | 
 | ^= | OU exclusivo de bit | 
 
   
2. Redirecionamento
   | Operador | Ação | 
  | < | Redireciona a entrada padrão (STDIN) | 
  | > | Redireciona a saída padrão (STDOUT) | 
  | 2> | Redireciona a saída de erro (STDERR) | 
  | >> | Redireciona a saída padrão, anexando | 
  | 2>> | Redireciona a saída de erro, anexando | 
  | | | Conecta a saída padrão com a entrada padrão de outro comando | 
  | 2>&1 | Conecta a saída de erro na saída padrão | 
  | >&2 | Conecta a saída padrão na saída de erro | 
  | >&- | Fecha a saída padrão | 
  | 2>&- | Fecha a saída de erro | 
  | 3<>arq | Conecta o descritor de arquivos 3 ao arquivo 'arq' | 
  | < | Alimenta a entrada padrão (Here Document) | 
  | <<-FIM | Alimenta a entrada padrão, cortando TABs | 
  | <(cmd) | A saída do comando 'cmd' é um arquivo: diff <(cmd1) <(cmd2) | 
  | >(cmd) | A entrada do comando 'cmd' é um arquivo: tar cf >(bzip2 -c >file.tbz) $dir | 
 
   
3. Variáveis especiais
   | Variável | Parâmetros Posicionais | 
  | $0 | Parâmetro número 0 (nome do comando ou função) | 
  | $1 | Parâmetro número 1 (da linha de comando ou função) | 
  | ... | Parâmetro número N ... | 
  | $9 | Parâmetro número 9 (da linha de comando ou função) | 
  | ${10} | Parâmetro número 10 (da linha de comando ou função) | 
  | ... | Parâmetro número NN ... | 
  | $# | Número total de parâmetros da linha de comando ou função | 
  | $* | Todos os parâmetros, como uma string única | 
  | $@ | Todos os parâmetros, como várias strings protegidas | 
  | Variável | Miscelânia | 
  | $$ | Número PID do processo atual (do próprio script) | 
  | $! | Número PID do último job em segundo plano | 
  | $_ | Último argumento do último comando executado | 
  | $? | Código de retorno do último comando executado | 
 
   
4. Expansão de variáveis
   | Sintaxe | Expansão Condicional | 
  | ${var:-texto} | Se var não está definida, retorna 'texto' | 
  | ${var:=texto} | Se var não está definida, defina-a com 'texto' | 
  | ${var:?texto} | Se var não está definida, retorna o erro 'texto' | 
  | ${var:+texto} | Se var está definida, retorna 'texto', senão retorna o vazio | 
  | Sintaxe | Expansão de Strings | 
  | ${var} | É o mesmo que $var, porém não ambíguo | 
  | ${#var} | Retorna o tamanho da string | 
  | ${!var} | Executa o conteúdo de $var (igual 'eval \$$var') | 
  | ${!texto*} | Retorna os nomes de variáveis começadas por 'texto' | 
  | ${var:N} | Retorna o texto à partir da posição 'N' | 
  | ${var:N:tam} | Retorna 'tam' caracteres à partir da posição 'N' | 
  | ${var#texto} | Corta 'texto' do início da string | 
  | ${var##texto} | Corta 'texto' do início da string (* guloso) | 
  | ${var%texto} | Corta 'texto' do final da string | 
  | ${var%%texto} | Corta 'texto' do final da string (* guloso) | 
  | ${var/texto/novo} | Substitui 'texto' por 'novo', uma vez | 
  | ${var//texto/novo} | Substitui 'texto' por 'novo', sempre | 
  | ${var/#texto/novo} | Se a string começar com 'texto', substitui 'texto' por 'novo' | 
  | ${var/%texto/novo} | Se a string terminar com 'texto', substitui 'texto' por 'novo' | 
 
   
5. Blocos e agrupamentos
   | Sintaxe | Descrição | Exemplo | 
  | "..." | Protege uma string, mas reconhece $, \ e ` como especiais | "abc" | 
  | '...' | Protege uma string completamente (nenhum caractere é especial) | 'abc' | 
  | $'...' | Protege uma string completamente, mas interpreta \n, \t, \a, etc | $'abc\n' | 
  | `...` | Executa comandos numa subshell, retornando o resultado | `ls` | 
  | {...} | Agrupa comandos em um bloco | { ls ; } | 
  | (...) | Executa comandos numa subshell | ( ls ) | 
  | $(...) | Executa comandos numa subshell, retornando o resultado | $( ls ) | 
  | ((...)) | Testa uma operação aritmética, retornando 0 ou 1 | ((5 > 3)) | 
  | $((...)) | Retorna o resultado de uma operação aritmética | $((5+3)) | 
  | [...] | Testa uma expressão, retornando 0 ou 1 (alias do comando 'test') | [ 5 -gt 3 ] | 
  | [[...]] | Testa uma expressão, retornando 0 ou 1 (podendo usar && e ||) | [[ 5 > 3 ]] | 
 
   
6. if, for, select, while, until, case
   | if | for / select | while / until | case | 
  | if COMANDO | for VAR in LISTA | while COMANDO | case $VAR in | 
  | then | do | do | txt1) ... ;; | 
  | ... | ... | ... | txt2) ... ;; | 
  | elif COMANDO | done | done | txtN) ... ;; | 
  | then | 
 | 
 | *) ... ;; | 
  | ... | 
 | 
 | esac | 
  | else | ou: | 
 | 
  | ... | for ((exp1;exp2;exp3)) | 
  | fi | 
 | 
 | 
 
   
7. Opções do comando test ou [
   | Testes em arquivos | 
 | Testes em variáveis | 
  | -b | É um dispositivo de bloco | 
 | 
 | 
 | 
  | -c | É um dispositivo de caractere | 
 | Comparação Numérica | 
  | -d | É um diretório | 
 | -lt | É menor que   (LessThan) | 
  | -e | O arquivo existe | 
 | -gt | É maior que   (GreaterThan) | 
  | -f | É um arquivo normal | 
 | -le | É menor igual (LessEqual) | 
  | -g | O bit SGID está ativado | 
 | -ge | É maior igual (GreaterEqual) | 
  | -G | O grupo do arquivo é o do usuário atual | 
 | -eq | É igual       (EQual) | 
  | -k | O sticky-bit está ativado | 
 | -ne | É diferente   (NotEqual) | 
  | -L | O arquivo é um link simbólico | 
 | 
 | 
 | 
  | -O | O dono do arquivo é o usuário atual | 
 | Comparação de Strings | 
  | -p | O arquivo é um named pipe | 
 | = | É igual | 
  | -r | O arquivo tem permissão de leitura | 
 | != | É diferente | 
  | -s | O tamanho do arquivo é maior que zero | 
 | -n | É não nula | 
  | -S | O arquivo é um socket | 
 | -z | É nula | 
  | -t | O descritor de arquivos N é um terminal | 
 | 
 | 
 | 
  | -u | O bit SUID está ativado | 
 | Operadores Lógicos | 
  | -w | O arquivo tem permissão de escrita | 
 | ! | NÃO lógico (NOT) | 
  | -x | O arquivo tem permissão de execução | 
 | -a | E lógico (AND) | 
  | -nt | O arquivo é mais recente (NewerThan) | 
 | -o | OU lógico (OR) | 
  | -ot | O arquivo é mais antigo (OlderThan) | 
  | -ef | O arquivo é o mesmo (EqualFile) | 
 
   
8. Escapes especiais para usar no prompt (PS1)
   | Escape | Lembrete | Expande para... | 
  | \a | Alerta | Alerta (bipe) | 
  | \d | Data | Data no formato "Dia-da-semana Mês Dia" (Sat Jan 15) | 
  | \e | Escape | Caractere Esc | 
  | \h | Hostname | Nome da máquina sem o domínio (dhcp11) | 
  | \H | Hostname | Nome completo da máquina (dhcp11.empresa) | 
  | \j | Jobs | Número de jobs ativos | 
  | \l | Tty | Nome do terminal corrente (ttyp1) | 
  | \n | Newline | Linha nova | 
  | \r | Return | Retorno de carro | 
  | \s | Shell | Nome do shell (basename $0) | 
  | \t | Time | Horário no formato 24 horas HH:MM:SS | 
  | \T | Time | Horário no formato 12 horas HH:MM:SS | 
  | \@ | At | Horário no formato 12 horas HH:MM am/pm | 
  | \A | At | Horário no formato 24 horas HH:MM | 
  | \u | Usuário | Login do usuário corrente | 
  | \v | Versão | Versão do Bash (2.00) | 
  | \V | Versão | Versão+subversão do Bash (2.00.0) | 
  | \w | Working Dir | Diretório corrente, caminho completo ($PWD) | 
  | \W | Working Dir | Diretório corrente, somente o último (basename $PWD) | 
  | \! | Histórico | Número do comando corrente no histórico | 
  | \# | Número | Número do comando corrente | 
  | \$ | ID | Mostra "#" se for root, "$" se for usuário normal | 
  | \nnn | Octal | Caractere cujo octal é nnn | 
  | \\ | Backslash | Barra invertida \ literal | 
  | \[ | Escapes | Inicia uma seqüência de escapes (tipo códigos de cores) | 
  | \] | Escapes | Termina uma seqüência de escapes | 
 
   
9. Escapes reconhecidos pelo comando echo
   | Escape | Lembrete | Descrição | 
  | \a | Alerta | Alerta (bipe) | 
  | \b | Backspace | Caractere Backspace | 
  | \c | EOS | Termina a string | 
  | \e | Escape | Caractere Esc | 
  | \f | Form feed | Alimentação | 
  | \n | Newline | Linha nova | 
  | \r | Return | Retorno de carro | 
  | \t | Tab | Tabulação horizontal | 
  | \v | Vtab | Tabulação vertical | 
  | \\ | Backslash | Barra invertida \ literal | 
  | \nnn | Octal | Caractere cujo octal é nnn | 
  | \xnn | Hexa | Caractere cujo hexadecimal é nn | 
 
   
10. Formatadores do comando date
   | Formato | Descrição | 
  | %a | Nome do dia da semana abreviado (Dom..Sáb) | 
  | %A | Nome do dia da semana (Domingo..Sábado) | 
  | %b | Nome do mês abreviado (Jan..Dez) | 
  | %B | Nome do mês (Janeiro..Dezembro) | 
  | %c | Data completa (Sat Nov 04 12:02:33 EST 1989) | 
  | %y | Ano (dois dígitos) | 
  | %Y | Ano (quatro dígitos) | 
  | %m | Mês (01..12) | 
  | %d | Dia (01..31) | 
  | %j | Dia do ano (001..366) | 
  | %H | Horas (00..23) | 
  | %M | Minutos (00..59) | 
  | %S | Segundos (00..60) | 
  | %s | Segundos desde 1º de Janeiro de 1970 | 
  | %% | Um % literal | 
  | %t | Um TAB | 
  | %n | Uma quebra de linha | 
 
   
11. Formatadores do comando printf
   | Formato | Descrição | 
  | %d | Número decimal | 
  | %o | Número octal | 
  | %x | Número hexadecimal (a-f) | 
  | %X | Número hexadecimal (A-F) | 
  | %f | Número com ponto flutuante | 
  | %e | Número em notação científica (e+1) | 
  | %E | Número em notação científica (E+1) | 
  | %s | String | 
 
   
12. Letras identificadoras de arquivos no comando ls -l
   | Letra | Lembrete | Tipos de Arquivo (primeiro caractere) | 
  | - | - | Arquivo normal | 
  | d | Directory | Diretório | 
  | l | Link | Link simbólico | 
  | b | Block | Dispositivo de blocos (HD) | 
  | c | Char | Dispositivo de caracteres (modem serial) | 
  | s | Socket | Socket mapeado em arquivo (comunicação de processos) | 
  | p | Pipe | FIFO ou Named Pipe (comunicação de processos) | 
  | Letra | Lembrete | Permissões do Arquivo (próximos nove caracteres) | 
  | - | - | Permissão desativada | 
  | r | Read | Acesso de leitura | 
  | w | Write | Acesso de escrita | 
  | x | eXecute | Acesso de execução (ou acesso ao diretório) | 
  | X | eXecute | Acesso ao diretório somente | 
  | s | Set ID | Usuário/grupo para execução (SUID, SGID) - permissão 'x' ativada | 
  | S | Set ID | Usuário/grupo para execução (SUID, SGID) - permissão 'x' desativada | 
  | t | sTicky | Usuários só apagam seus próprios arquivos - permissão 'x' ativada | 
  | T | sTicky | Usuários só apagam seus próprios arquivos - permissão 'x' desativada | 
 
   
13. Curingas para nomes de arquivo (glob)
   | Curinga | Casa com... | Exemplo | 
  | * | Qualquer coisa | *.txt | 
  | ? | Um caractere qualquer | arquivo-??.zip | 
  | [...] | Qualquer um dos caracteres listados | [Aa]rquivo.txt | 
  | [^...] | Qualquer um caractere, exceto os listados | [^A-Z]*.txt | 
  | {...} | Qualquer um dos textos separados por vírgula | arquivo.{txt,html} | 
 
   
14. Curingas para os itens do comando case
   | Curinga | Casa com... | Exemplo | 
  | * | Qualquer coisa | *.txt) echo ;; | 
  | ? | Um caractere qualquer | arquivo-??.zip) echo ;; | 
  | [...] | Qualquer um dos caracteres listados | [0-9]) echo ;; | 
  | [^...] | Qualquer um caractere, exceto os listados | [^0-9]) echo ;; | 
  | ...|... | Qualquer um dos textos separados por | | txt|html) echo ;; | 
 
   
15. Sinais para usar com trap/kill/killall
   | # | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac | 
  | 1 | HUP | HUP | HUP | HUP | HUP | HUP | HUP | 
  | 2 | INT | INT | INT | INT | INT | INT | INT | 
  | 3 | QUIT | QUIT | QUIT | QUIT | QUIT | QUIT | QUIT | 
  | 4 | ILL | ILL | ILL | ILL | ILL | ILL | ILL | 
  | 5 | TRAP | TRAP | TRAP | TRAP | TRAP | TRAP | TRAP | 
  | 6 | ABRT | ABRT | IOT | LOST | ABRT | ABRT | ABRT | 
  | 7 | BUS | EMT | EMT | EMT | EMT | EMT | EMT | 
  | 8 | FPE | FPE | FPE | FPE | FPE | FPE | FPE | 
  | 9 | KILL | KILL | KILL | KILL | KILL | KILL | KILL | 
  | 10 | USR1 | BUS | BUS | BUS | BUS | BUS | BUS | 
  | 11 | SEGV | SEGV | SEGV | SEGV | SEGV | SEGV | SEGV | 
  | 12 | USR2 | SYS | SYS | SYS | SYS | SYS | SYS | 
  | # | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac | 
  | 13 | PIPE | PIPE | PIPE | PIPE | PIPE | PIPE | PIPE | 
  | 14 | ALRM | ALRM | ALRM | ALRM | ALRM | ALRM | ALRM | 
  | 15 | TERM | TERM | TERM | TERM | TERM | TERM | TERM | 
  | 16 | - | URG | USR1 | URG | USR1 | USR1 | URG | 
  | 17 | CHLD | STOP | USR2 | STOP | USR2 | USR2 | STOP | 
  | 18 | CONT | TSTP | CHLD | TSTP | CHLD | CHLD | TSTP | 
  | 19 | STOP | CONT | PWR | CONT | PWR | PWR | CONT | 
  | 20 | TSTP | CHLD | WINCH | CHLD | VTALRM | WINCH | CHLD | 
  | 21 | TTIN | TTIN | URG | TTIN | PROF | URG | TTIN | 
  | 22 | TTOU | TTOU | IO | TTOU | IO | IO | TTOU | 
  | 23 | URG | IO | STOP | IO | WINCH | STOP | IO | 
  | 24 | XCPU | XCPU | TSTP | XCPU | STOP | TSTP | XCPU | 
  | # | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac | 
  | 25 | XFSZ | XFSZ | CONT | XFSZ | TSTP | CONT | XFSZ | 
  | 26 | VTALRM | VTALRM | TTIN | - | CONT | TTIN | VTALRM | 
  | 27 | PROF | PROF | TTOU | MSG | TTIN | TTOU | PROF | 
  | 28 | WINCH | WINCH | VTALRM | WINCH | TTOU | VTALRM | WINCH | 
  | 29 | IO | LOST | PROF | PWR | URG | PROF | INFO | 
  | 30 | PWR | USR1 | XCPU | USR1 | LOST | XCPU | USR1 | 
  | 31 | SYS | USR2 | XFSZ | USR2 | - | XFSZ | USR2 | 
  | 32 | - | - | - | PROF | - | WAITING | - | 
  | 33 | - | - | - | DANGER | - | LWP | - | 
  | 34 | - | - | - | VTALRM | - | FREEZE | - | 
  | 35 | - | - | - | MIGRATE | - | THAW | - | 
  | 36 | - | - | - | PRE | - | CANCEL | - | 
  | 37 | - | - | - | - | - | LOST | - | 
 
    | Como obter a listagem: trap -l, kill -l ou killall -l | 
  | Veja também: man 7 signal | 
 
   
16. Códigos de retorno de comandos
   | Código | Significado | Exemplo | 
  | 0 | Nenhum erro, execução terminou OK | echo | 
  | 1 | A maioria dos erros comuns na execução | echo $((1/0)) | 
  | 2 | Erro de uso em algum 'builtin' do Shell | - | 
  | 126 | Comando não executável (sem permissão) | touch a ; ./a | 
  | 127 | Comando não encontrado ("command not found") | echooo | 
  | 128 | O parâmetro para o 'exit' não é um decimal | exit 1.0 | 
  | 128+n | 128 + código do sinal que o matou | kill -9 $PPID #exit 137 | 
  | 130 | O programa interrompido com o Ctrl+C (128 + 2) | - | 
  | 255 | Parâmetro para o 'exit' não está entre 0 e 255 | exit -1 | 
 
   
17. Códigos de cores (ANSI)
   | Cor | Letra | Fundo | ## | Atributo | Valor | ## | Exemplos: ESC [ ; m | 
  | Preto | 30 | 40 | 
 | Reset | 0 | 
 | ESC[mtexto normal (desliga cores) | 
  | Vermelho | 31 | 41 | 
 | Negrito | 1 | 
 | ESC[1mnegrito | 
  | Verde | 32 | 42 | 
 | Sublinhado | 4 | 
 | ESC[33;1mamarelo | 
  | Amarelo | 33 | 43 | 
 | Piscando | 5 | 
 | ESC[44;37mfundo azul, letra cinza | 
  | Azul | 34 | 44 | 
 | Reverso | 7 | 
 | ESC[31;5mvermelho piscando | 
  | Rosa | 35 | 45 | 
 | 
 | 
 | 
 | Na linha de comando: | 
  | Ciano | 36 | 46 | 
 | 
 | 
 | 
 | echo -e '\e[33;1m amarelo \e[m' | 
  | Branco | 37 | 47 | 
 | 
 | 
 | 
 | echo -e '\033[33;1m amarelo \033[m' | 
 
   
18. Os metacaracteres das expressões regulares
   | Meta | Nome | Descrição | 
  | . | Ponto | Curinga de um caractere | 
  | [] | Lista | Casa qualquer um dos caracteres listados | 
  | [^] | Lista negada | Casa qualquer caractere, exceto os listados | 
  | ? | Opcional | A entidade anterior pode aparecer ou não (opcional) | 
  | * | Asterisco | A entidade anterior pode aparecer em qualquer quantidade | 
  | + | Mais | A entidade anterior deve aparecer no mínimo uma vez | 
  | {,} | Chaves | A entidade anterior deve aparecer na quantidade indicada | 
  | ^ | Circunflexo | Casa o começo da linha | 
  | $ | Cifrão | Casa o fim da linha | 
  | \b | Borda | Limita uma palavra (letras, números e sublinhado) | 
  | \ | Escape | Escapa um meta, tirando seu poder | 
  | | | Ou | Indica alternativas (usar com o grupo) | 
  | () | Grupo | Agrupa partes da expressão, é quantificável e multinível | 
  | \1 | Retrovisor | Recupera o conteúdo do grupo 1 | 
  | \2 | Retrovisor | Recupera o conteúdo do grupo 2 (segue até o \9) | 
  | .* | Curinga | Casa qualquer coisa, é o tudo e o nada | 
  | ?? | Opcional NG | Idem ao opcional comum, mas casa o mínimo possível | 
  | *? | Asterisco NG | Idem ao asterisco comum, mas casa o mínimo possível | 
  | +? | Mais NG | Idem ao mais comum, mas casa o mínimo possível | 
  | {}? | Chaves NG | Idem às chaves comuns, mas casa o mínimo possível | 
 
   
19. Metacaracteres que são diferentes nos aplicativos
   | Programa | Opc | Mais | Chaves | Borda | Ou | Grupo | 
  | awk | ? | + | - | - | | | () | 
  | ed | \? | \+ | \{,\} | \b | \| | \(\) | 
  | egrep | ? | + | {,} | \b | | | () | 
  | emacs | ? | + | - | \b | \| | \(\) | 
  | expect | ? | + | - | - | | | () | 
  | find | ? | + | - | \b | \| | \(\) | 
  | gawk | ? | + | {,} | \<\> | | | () | 
  | grep | \? | \+ | \{,\} | \b | \| | \(\) | 
  | mawk | ? | + | - | - | | | () | 
  | perl | ? | + | {,} | \b | | | () | 
  | php | ? | + | {,} | \b | | | () | 
  | python | ? | + | {,} | \b | | | () | 
  | sed | \? | \+ | \{,\} | \<\> | \| | \(\) | 
  | vim | \= | \+ | \{,} | \<\> | \| | \(\) | 
 
   
20. Caracteres ASCII imprimíveis (ISO-8859-1) - texto
       $ zzascii
    32        64  @     96  `    162  ¢    194  Â    226  â
    33  !     65  A     97  a    163  £    195  Ã    227  ã
    34  "     66  B     98  b    164  ¤    196  Ä    228  ä
    35  #     67  C     99  c    165  ¥    197  Å    229  å
    36  $     68  D    100  d    166  ¦    198  Æ    230  æ
    37  %     69  E    101  e    167  §    199  Ç    231  ç
    38  &     70  F    102  f    168  ¨    200  È    232  è
    39  '     71  G    103  g    169  ©    201  É    233  é
    40  (     72  H    104  h    170  ª    202  Ê    234  ê
    41  )     73  I    105  i    171  «    203  Ë    235  ë
    42  *     74  J    106  j    172  ¬    204  Ì    236  ì
    43  +     75  K    107  k    173       205  Í    237  í
    44  ,     76  L    108  l    174  ®    206  Î    238  î
    45  -     77  M    109  m    175  ¯    207  Ï    239  ï
    46  .     78  N    110  n    176  °    208  Ð    240  ð
    47  /     79  O    111  o    177  ±    209  Ñ    241  ñ
    48  0     80  P    112  p    178  ²    210  Ò    242  ò
    49  1     81  Q    113  q    179  ³    211  Ó    243  ó
    50  2     82  R    114  r    180  ´    212  Ô    244  ô
    51  3     83  S    115  s    181  µ    213  Õ    245  õ
    52  4     84  T    116  t    182  ¶    214  Ö    246  ö
    53  5     85  U    117  u    183  ·    215  ×    247  ÷
    54  6     86  V    118  v    184  ¸    216  Ø    248  ø
    55  7     87  W    119  w    185  ¹    217  Ù    249  ù
    56  8     88  X    120  x    186  º    218  Ú    250  ú
    57  9     89  Y    121  y    187  »    219  Û    251  û
    58  :     90  Z    122  z    188  ¼    220  Ü    252  ü
    59  ;     91  [    123  {    189  ½    221  Ý    253  ý
    60  < 61  ="     93">     94  ^    126  ~    192  À    224  à 
    63  ?     95  _    161  ¡    193  Á    225  á 
   
21. Códigos prontos para copiar e colar
   | Condicionais com o IF | 
  | if [ -f "$arquivo" ]; then echo 'Arquivo encontrado'; fi | 
  | if [ ! -d "$dir" ]; then echo 'Diretório não 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';> | 
  | if [ "$USER" = 'root' ]; then echo 'Oi root'; fi | 
  | if grep -qs 'root' /etc/passwd; then echo 'Usuário encontrado'; fi | 
  | Condicionais com o E (&&) e OU (||) | 
  | [ -f "$arquivo" ] && echo 'Arquivo encontrado' | 
  | [ -d "$dir" ] || echo 'Diretório não encontrado' | 
  | grep -qs 'root' /etc/passwd && echo 'Usuário encontrado' | 
  | cd "$dir" && rm "$arquivo" && touch "$arquivo" && echo 'feito!' | 
  | [ "$1" ] && param=$1 || param='valor padrão' | 
  | [ "$1" ] && param=${1:-valor padrão} | 
  | [ "$1" ] || { echo "Uso: $0 parâmetro" ; exit 1 ; } | 
  | Adicionar 1 à variável $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 saída 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 "Não te conheço";; esac | 
  | case "$var" in ?) echo '1 letra';; ??) echo '2 letras';; ??*) echo 'mais de 2';; esac | 
  | case "$i" in [0-9]) echo '1 dígito';; [0-9][0-9]) echo '2 dígitos';; 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' ...) | 
 
   
22. Atalhos da linha de comando (set -o emacs)
   | Atalho | Descrição | Tecla Similar | 
  | Ctrl+A | Move o cursor para o início da linha | Home | 
  | Ctrl+B | Move o cursor uma posição à esquerda | <- | 
  | Ctrl+C | Envia sinal EOF() para o sistema | 
  | Ctrl+D | Apaga um caractere à direita | Delete | 
  | Ctrl+E | Move o cursor para o fim da linha | End | 
  | Ctrl+F | Move o cursor uma posição à direita | -> | 
  | Ctrl+H | Apaga um caractere à esquerda | Backspace | 
  | Ctrl+I | Completa arquivos e comandos | TAB | 
  | Ctrl+J | Quebra a linha | Enter | 
  | Ctrl+K | Recorta do cursor até o fim da linha | 
  | Ctrl+L | Limpa a tela (igual ao comando clear) | 
  | Ctrl+N | Próximo comando | 
  | Ctrl+P | Comando anterior | 
  | Ctrl+Q | Destrava a shell (veja Ctrl+S) | 
  | Ctrl+R | Procura no histórico 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 início/fim da linha (2x) | Home/End | 
  | Ctrl+Y | Cola o trecho recortado | 
 
   
23. A caixa de ferramentas do shelleiro
   | Comando | Função | Opções úteis | 
  | cat | Mostra arquivo | -n, -s | 
  | cut | Extrai campo | -d -f, -c | 
  | date | Mostra data | -d, +'...' | 
  | diff | Compara arquivos | -u, -Nr, -i, -w | 
  | echo | Mostra texto | -e, -n | 
  | find | Encontra arquivos | -name, -iname, -type f, -exec, -or | 
  | fmt | Formata parágrafo | -w, -u | 
  | grep | Encontra texto | -i, -v, -r, -qs, -n, -l, -w -x, -A -B -C | 
  | head | Mostra Início | -n, -c | 
  | od | Mostra Caracteres | -a, -c, -o, -x | 
  | paste | Paraleliza arquivos | -d, -s | 
  | printf | Mostra texto | nenhuma | 
  | rev | Inverte texto | nenhuma | 
  | sed | Edita texto | -n, -f, s/isso/aquilo/, p, d, q, N | 
  | seq | Conta Números | -s, -f | 
  | sort | Ordena texto | -n, -f, -r, -k -t, -o | 
  | tac | Inverte arquivo | nenhuma | 
  | tail | Mostra Final | -n, -c, -f | 
  | tee | Arquiva fluxo | -a | 
  | tr | Transforma texto | -d, -s, A-Z a-z | 
  | uniq | Remove duplicatas | -i, -d, -u | 
  | wc | Conta Letras | -c, -w, -l, -L | 
  | xargs | Gerencia argumentos | -n, -i | 
 
Nenhum comentário:
Postar um comentário