Manual de refêrencia do Bash
Atopei este manual de Bash anunciado na canle @pr1v8 que trata temas de hacking e software livre.
Decidin gardalo e incluilo na web biblioteca comunitaria por todas as lágoas que teño no trato co intérprete de comandos, e sobre todo porque por fin atopo un manual escrito en galego e podo centrarme nos conceptos e non nas traduçoes.
Como todo o enlazado na livreteca o texto está distribuido baixo a licenza Creative Commons, polo que pode redistribuirse e modificarse ó albedrío propio respectando os dereitos das autoras orixinais.
De seguido deixovos un pequeno comentario extraido do propio volume arredor do Bash así como o Sumario do manual.
Agardo que o disfrutedes.
Manual de refêrencia do Bash
Documentaçao de Referência para o Bash
Ediçao 4.3, para Bash Versao 4.3.
Fevereiro de 2014
Chet Ramey, Case Western Reserve University
Brian Fox, Free Software Foundation
Bash é o shell, ou interpretador de linguagem de comando, para o sistema operacional gnu.
O nome é um acrônimo para o ‘Bourne-Again SHell’, uma homenagem a Stephen Bourne,
o autor do ancestral direto do shell Unix atual sh, o qual apareceu na vers~ao do Unix da
Sétima Ediçao do Bell Labs Research.
Bash é largamente compatı́vel com sh e incorpora caracterı́sticas úteis oriundas do shell
Korn ksh e do shell C csh.
Ele é entendido para ser uma implementaçao conforme da porçao das Ferramentas e Shell do ieee posix da especificaçao ieee posix
Ele oferece melhoramentos funcionais sobre o sh para ambos uso interativo e programaçao.
Ao mesmo tempo em que o sistema operacional gnu fornece outros shells, incluindo
uma versao do csh, Bash é o shell padrao. Como outros softwares gnu, Bash é facilmente
portável. Ele atualmente roda em quase todas as versoes de Unix e alguns outros sistemas operacionais − existem implementaç~oes independentemente suportadas para ms-dos, os/2, e plataformas Windows.
Nestas 192 páxinas debullanse as posibilidades de este entorno shell, incluindo a súa compilaçao, verbas reservadas, variabels do entorno, etc….
Podes descargar ou leer o libro en liña dende á livreteca de @accioncultural ou dende o repositorio orixinal do GitHub.
Sumário
1 Introduç~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
O Que é Bash? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
O Que um shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Definiç~oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Caracterı́sticas Básicas do Shell . . . . . . . . . . . . . . . 5
3.1 Sintaxe do Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 Operaç~ao do Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Encapsulamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.1 Carácter de Escape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.2 Aspas Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.3 Aspas Duplas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.4 Encapsulamento ANSI-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.5 Traduç~ao Especı́fica por Locale . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Comentários. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Comandos do Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1 Comandos Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2 Canais de Comunicaç~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.3 Listas de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.4 Comandos Compostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.4.1 Construtores de Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.4.2 Construtores Condicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.4.3 Agrupando Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.5 Coprocessos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.6 GNU Parallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Funç~oes de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Par^ametros de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1 Par^ametros Posicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.2 Par^ametros Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 Expans~oes de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.1 Expans~ao de Chave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5.2 Expans~ao de Til . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.3 Expans~ao de Par^ametro de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.4 Substituiç~ao de Comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5.5 Expans~ao Aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5.6 Substituiç~ao de Processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5.7 Divis~ao de Palavra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5.8 Expans~ao de Nome de Arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.8.1 Coincid^encia de Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.9 Remoç~ao de Aspas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.6 Redireç~oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34ii
3.6.1 Redirecionando Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.2 Redirecionando Saı́da . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.3 Adicionando Saı́da Redirecionada . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.4 Redirecionando a Saı́da Padr~ao e o Erro Padr~ao . . . . . . . . . .
3.6.5 Adicionando a Saı́da Padr~ao e o Erro Padr~ao . . . . . . . . . . . . .
3.6.6 Documentos Here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.7 Sequ^encias de Caracteres Here . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.8 Duplicando Descritores de Arquivos . . . . . . . . . . . . . . . . . . . . . .
3.6.9 Movendo Descritores de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.10 Abrindo Descritores de Arquivos para Leitura e Escrita . .
3.7 Execuç~ao de Comandos . . . . . . . . . . . . . . . . . . . . . .
3.7.1 Expans~ao de Comando Simples . . . . . . . . . . . . . . . .
3.7.2 Busca de Comando e Execuç~ao . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.3 Ambiente de Execuç~ao de Comando . . . . . . . . . . . . . .
3.7.4 Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.5 Situaç~ao de Saı́da . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.6 Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8 Scripts de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comandos Internos ao Shell . . . . . . . . . . . . . . . . . . 44
Comandos Internos do Shell Bourne . . . . . . . . . . . . . . . .
Comandos Internos ao Bash . . . . . . . . . . . . . . . . . . . . . . . . .
Modificando o Comportamento do Shell . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 O Comando Interno Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 O Comando Interno Shopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Comandos Internos Especiais . . . . . . . . . . . .
Variáveis do Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Variáveis do Shell Bourne . . . . . . . . . . . . . . . . . . 75
Variáveis do Bash . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Caracterı́sticas de Bash . . . . . . . . . . . . . . . . . . . . . . . 87
Invocando o Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Arquivos de Inicializaç~ao do Bash . . . . . 89
Shells Interativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.3.1 O Que é um Shell Interativo? . . . . . . . .. . . . . . . . 91
6.3.2 Este Shell é Interativo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.3.3 Comportamento de Shell Interativo . . . . . . . .. . . . . . . . 91
6.4 Express~oes Condicionais de Bash . . . . . . . . . . . . . . . . . . . . . . 93
6.5 Aritmética de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.6 Apelidos . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.7 Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.8 A Pilha de Diretório . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.8.1 Comandos Internos da Pilha de Diretório . . . . . . . . . . . . . 99
6.9 Controlando o Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.10 O Shell Restrito . . . . . . . . . . . . . . . . . . . .. . . . . 101
6.11 O Modo POSIX de Bash . . . . . . . . . . . .. . . . . . . . . . 102
7 Controle de Tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Fundamentos do Controle de Tarefa . . . . . . . . . . . . . 106
Comandos Internos do Controle de Tarefa . . . . . . . 107
Variáveis do Controle de Tarefa . . . . . . . . . . .. . . . . . . . 109
Ediç~ao de Linha de Comando . . . . . . . . . . . . . . . 110
Introduç~ao à Ediç~ao de Linha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interaç~ao com Readline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.1 Mı́nimo Essencial sobre Readline . . . . . . . . . . . . . . . . . . . . . . . .
8.2.2 Comandos de Movimento em Readline . . . . . . . . . . . . . . . . . . .
8.2.3 Comandos Readline para Killing (“Recortar”) . . . . . . . . . . .
8.2.4 Argumentos em Readline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.5 Buscando Comandos no Histórico . . . . . . . . . . . . . . . . . . . . . . .
8.3 Arquivo Init de Readline . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.1 Sintaxe do Arquivo Init de Readline . . . . . . . . . . . . . . . . . . . . .
8.3.2 Construtores Condicionais Init . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.3 Arquivo Init de Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4 Comandos de Readline Vinculáveis . . . . . . . . . . . . . . .
8.4.1 Comandos Para Movimentaç~ao . . . . . . . . . . . . . . . . .
8.4.2 Comandos Para Manipular O Histórico . . . . . . . . . . . . . . . . . .
8.4.3 Comandos Para Modificaç~ao de Texto . . . . . . . . . . . .
8.4.4 Killing (“Recortando”) And Yanking (“Colando”) . . . . . . .
8.4.5 Especificando Argumentos Numéricos. . . . . . . . . . . . . . . . . . . .
8.4.6 Deixando Readline Digitar Por Voc^e . . . . . . . . . . . . . . . . . . . . .
8.4.7 Macros (“Sequ^encias de Comandos”) de Teclado . . . . . . . . .
8.4.8 Alguns Comandos Variados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5 Modo vi de Readline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.6 Complementaç~ao Programável . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.7 Comandos Internos à Complementaç~ao Programável . . . . . . . . . .
8.8 Um Exemplo de Complementaç~ao Programável . . . . . . . . . . . . . . .
9 Utilizando o Histórico Interativamente . . . . . 145
Facilidades do Histórico de Bash . . . . . . . . . . . . . . . . . . . . . .
Comandos Internos ao Histórico de Bash . . . . . . . . .
Expans~ao de Histórico . . . . . . . . . . . . . . . . . . . . . . . .
9.3.1 Designadores de Evento . . . . . . . . . . . . . . . . . . . .
9.3.2 Designadores de Palavra . . . . . . . . . . . . . . . . . . .
9.3.3 Modificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 Instalando o Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Instalaç~ao Básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compiladores e Opç~oes . . . . . . . . . . . . . . . . . . .
Compilando Para Múltiplas Arquiteturas . . . . . .
Nomes de Instalaç~ao . . . . . . . . . . . . . . . . . . . . . . . . .
Especificando o Tipo do Sistema . . . . . . . . . . . . .
Compartilhando Padr~oes . . . . . . . . . . . . . . . . . . . .
Controles de Operaç~ao . . . . . . . . . . . . . . . . . . . . . .
Caracterı́sticas Opcionais . . . . . . . . . . . . . . . .
Relatando Bugs . . . . . . . . . . . . . . . . . . 159
Ap^endice B Maiores Diferenças Para o Shell Bourne . . . 160
B.1
Diferenças de Implementaç~ao Com O Shell SVR4.2. . . . . . . 165
Ap^endice C Licença de Documentaç~ao LivreGNU . . . . . . 166
Ap^endice D GNU Free Documentation License. . . . . 175
Comandos Internos ao Shell . . . . . . . . . . . . . . . . . . . . . . .
Palavras Reservadas do Shell . . . . . . . . . . . . . . . . . . . . . .
Par^ametros e Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funç~oes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
!steemitworldmap '42.1926286' lat '-8.7155195,17' long Steembookx D3SCR
@Freyman no Steem Center: Contribucións | Perfil
Congratulations, Your Post Has Been Added To The Steemit Worldmap!
Author link: http://steemitworldmap.com?author=freyman
Post link: http://steemitworldmap.com?post=manual-de-referencia-do-bash
Want to have your post on the map too?
Add the following inside your post:
!steemitworldmap xxx lat yyy long description d3scr
(replace xxx and yyy with latitude and longitude)