Manual de refêrencia do Bash

in #bash7 years ago (edited)

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.png

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


Bate-Papo /Chat Português | Projeto Camoes | Steemit Pt Twitter | Steem.Center Gal


Comenta, Suxire, Critica, Partilha

Sort:  

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)

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63657.90
ETH 2656.15
USDT 1.00
SBD 2.84