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[m texto normal (desliga cores) |
| Vermelho | 31 | 41 |
| Negrito | 1 |
| ESC[1m negrito |
| Verde | 32 | 42 |
| Sublinhado | 4 |
| ESC[33;1m amarelo |
| Amarelo | 33 | 43 |
| Piscando | 5 |
| ESC[44;37m fundo azul, letra cinza |
| Azul | 34 | 44 |
| Reverso | 7 |
| ESC[31;5m vermelho 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