Você está na página 1de 7

Linux Eficiente

na Linha de Comando
Aumente suas habilidades na linha de comando

Daniel J. Barrett

Novatec
Authorized Portuguese translation of the English edition of Efficient Linux at the Command Line, ISBN
9781098113407 © 2022 Daniel Barrett. This translation is published and sold by permission of O'Reilly Media,
Inc., the owner of all rights to publish and sell the same.
Tradução em português autorizada da edição em inglês da obra Efficient Linux at the Command Line, ISBN
9781098113407 © 2022 Daniel Barrett. Esta tradução é publicada e vendida com a permissão da O'Reilly Media,
Inc., detentora de todos os direitos para publicação e venda desta obra.
© Novatec Editora Ltda. [2022].
Copyright ©2022 da Novatec Editora Ltda.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,
mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.
Editor: Rubens Prates
Tradução: Aldir Coelho Corrêa da Silva
Revisão gramatical: Lia Gabriele Regius
ISBN impresso: 978-65-86057-97-3
ISBN ebook: 978-65-86057-98-0
Histórico de impressões:
Setembro/2022 Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Email: novatec@novatec.com.br
Site: https://novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
GRA20220831
Sumário

Prefácio......................................................................................................................................9

Parte I ■ Conceitos básicos..................................................................................... 15


Capítulo 1 ■ Combinação de comandos......................................................................................16
Entrada, saída e pipes.................................................................................................... 17
Seis comandos para você começar.................................................................................. 19
Comando #1: wc...................................................................................................... 19
Comando #2: head................................................................................................... 22
Comando #3: cut..................................................................................................... 23
Comando #4: grep................................................................................................... 25
Comando #5: sort.................................................................................................... 26
Comando #6: uniq................................................................................................... 29
Detecção de arquivos duplicados.................................................................................... 31
Resumo......................................................................................................................... 33

Capítulo 2 ■ Introdução ao shell.................................................................................................34


Vocabulário do shell....................................................................................................... 35
Busca de padrões em nomes de arquivo.......................................................................... 35
Avaliação de variáveis..................................................................................................... 38
De onde vêm as variáveis........................................................................................... 39
Variáveis e suposições............................................................................................... 40
Padrões versus variáveis............................................................................................ 40
Como encurtar comandos com aliases............................................................................ 41
Redirecionamento da entrada e da saída......................................................................... 43
Desativação da avaliação com aspas e escape.................................................................. 45
Localização de programas a serem executados................................................................ 47
Ambientes e arquivos de inicialização, a versão curta...................................................... 49
Resumo......................................................................................................................... 51

Capítulo 3 ■ Reexecução de comandos.......................................................................................52


Visualização do histórico de comandos........................................................................... 53
Resgate de comandos com o histórico............................................................................. 54
3
4 Linux Eficiente na Linha de Comando

Uso do cursor para percorrer o histórico.................................................................... 54


Expansão do histórico.............................................................................................. 56
Nunca exclua o arquivo errado novamente (graças à expansão do histórico)............... 59
Busca incremental do histórico de comandos............................................................. 61
Edição de linha de comando........................................................................................... 63
Cursoring dentro de um comando............................................................................. 63
Expansão do histórico com circunflexos (carets)........................................................ 64
Edição de linha de comando no estilo Emacs ou Vim................................................. 65
Resumo......................................................................................................................... 67

Capítulo 4 ■ Navegação no sistema de arquivos..........................................................................68


Acesso a diretórios específicos com eficiência.................................................................. 68
Salte para o seu diretório home................................................................................. 69
Digite rápido com o recurso autocompletar com Tab.................................................. 69
Salte para diretórios visitados com frequência usando aliases ou variáveis.................. 71
Faça um sistema de arquivos grande parecer menor com CDPATH............................ 73
Organize seu diretório home para uma navegação rápida........................................... 75
Retorno aos diretórios eficientemente............................................................................. 77
Alterne-se entre dois diretórios com “cd -”................................................................. 77
Alterne-se entre muitos diretórios com pushd e popd................................................. 78
Resumo......................................................................................................................... 84

Parte II ■ Habilidades do próximo nível.................................................................. 85


Capítulo 5 ■ Expansão da caixa de ferramentas..........................................................................86
Produção de texto.......................................................................................................... 87
Comando date.......................................................................................................... 87
Comando seq........................................................................................................... 88
Expansão de chaves (um recurso do shell)................................................................. 89
Comando find.......................................................................................................... 90
Comando yes............................................................................................................ 92
Isolamento de texto........................................................................................................ 93
grep: uma verificação mais detalhada........................................................................ 94
Comando tail........................................................................................................... 97
Comando awk {print}.............................................................................................. 98
Combinação de texto................................................................................................... 100
Comando tac...........................................................................................................101
Comando paste...................................................................................................... 102
Comando diff......................................................................................................... 103
Transformação de texto................................................................................................ 104
Comando tr............................................................................................................ 104
Sumário 5

Comando rev.......................................................................................................... 105


Comandos awk e sed.............................................................................................. 106
Obtenção de uma caixa de ferramentas ainda maior......................................................115
Resumo........................................................................................................................116

Capítulo 6 ■ Pais, filhos e ambientes........................................................................................ 117


Shells são arquivos executáveis......................................................................................118
Processos pai e filho..................................................................................................... 120
Variáveis de ambiente................................................................................................... 121
Criação de variáveis de ambiente............................................................................. 123
Alerta de superstição: variáveis “globais”................................................................. 124
Shells filhos versus subshells......................................................................................... 125
Configuração de seu ambiente...................................................................................... 126
Releitura de um arquivo de configuração................................................................. 128
Como viajar com seu ambiente................................................................................ 129
Resumo....................................................................................................................... 129

Capítulo 7 ■ Mais 11 maneiras de executar um comando........................................................... 130


Técnicas de lista........................................................................................................... 130
Técnica #1: Listas condicionais................................................................................131
Técnica #2: Listas não condicionais........................................................................ 133
Técnicas de substituição............................................................................................... 133
Técnica #3: Substituição de comandos.................................................................... 134
Técnica #4: Substituição de processos..................................................................... 136
Técnicas de comando como string................................................................................ 139
Técnica #5: Passagem de um comando como argumento para o bash....................... 139
Técnica #6: Envio de um comando com o pipe para o bash......................................141
Técnica #7: Execução de uma string remotamente com o ssh....................................143
Técnica #8: Execução de uma lista de comandos com xargs.................................... 144
Técnicas de controle de processos..................................................................................148
Técnica #9: Execução de um comando em segundo plano........................................148
Técnica #10: Subshells explícitos............................................................................ 154
Técnica #11: Troca de processos............................................................................. 156
Resumo....................................................................................................................... 157

Capítulo 8 ■ Criação de uma arrojada abordagem de linha única............................................... 159


Prepare-se para ser arrojado..........................................................................................161
Seja flexível..............................................................................................................161
Pense em onde começar...........................................................................................162
Conheça suas ferramentas de teste.......................................................................... 164
Inserção de um nome de arquivo em uma sequência..................................................... 164
6 Linux Eficiente na Linha de Comando

Verificação de pares de arquivos correspondentes......................................................... 167


Geração de uma CDPATH a partir de seu diretório home...............................................171
Geração de arquivos de teste.........................................................................................172
Geração de arquivos vazios............................................................................................176
Resumo....................................................................................................................... 177

Capítulo 9 ■ Uso de arquivos de texto...................................................................................... 178


Primeiro exemplo: busca de arquivos............................................................................ 180
Verificação da expiração de domínios............................................................................181
Criação de um banco de dados de códigos de área........................................................ 184
Criação de um gerenciador de senhas........................................................................... 186
Resumo....................................................................................................................... 194

Parte III ■ Tópicos adicionais................................................................................ 195


Capítulo 10 ■ Eficiência no teclado........................................................................................... 196
Trabalho com janelas................................................................................................... 196
Shells e navegadores instantâneos............................................................................ 196
Janelas de uso único............................................................................................... 197
Atalhos de teclado para o navegador........................................................................ 198
Alternância entre janelas e áreas de trabalho............................................................ 199
Acesso à web a partir da linha de comando................................................................... 200
Execução de janelas do navegador a partir da linha de comando.............................. 200
Recuperação de HTML com curl e wget.................................................................. 202
Processamento de HTML com HTML-XML-utils................................................... 204
Recuperação de conteúdo renderizado da web com um navegador baseado em texto.207
Controle da área de transferência a partir da linha de comando..................................... 209
Conexão das X-selections com a stdin e a stdout.......................................................210
Como melhorar o gerenciador de senhas.................................................................. 212
Resumo....................................................................................................................... 215

Capítulo 11 ■ Últimos recursos para economizar tempo............................................................ 216


Aprendizagem rápida....................................................................................................216
Acesso ao seu editor a partir do less..........................................................................216
Edição de arquivos que contenham uma string específica..........................................217
Aceitação de erros de digitação.................................................................................217
Criação de arquivos vazios rapidamente...................................................................218
Processamento de um arquivo linha a linha..............................................................218
Identificação de comandos que suportam a recursão................................................ 219
Leitura de uma manpage......................................................................................... 219
Sumário 7

Aprendizagem mais longa............................................................................................ 220


Leia a manpage do bash.......................................................................................... 220
Conheça cron, crontab e at...................................................................................... 220
Conheça o rsync..................................................................................................... 221
Conheça outra linguagem de script......................................................................... 222
Use make para tarefas não relacionadas à programação........................................... 223
Aplicação do controle de versões a arquivos do dia a dia.......................................... 225
Até a próxima.............................................................................................................. 226

Apêndice A ■ Reciclagem de Linux........................................................................................... 227


Comandos, argumentos e opções................................................................................. 227
O sistema de arquivos, os diretórios e os caminhos....................................................... 228
Mudança de diretório................................................................................................... 229
Criação e edição de arquivos........................................................................................ 230
Manipulação de arquivos e diretórios........................................................................... 230
Visualização de arquivos.............................................................................................. 232
Permissões de arquivos................................................................................................ 233
Processos..................................................................................................................... 234
Visualização da documentação..................................................................................... 234
Shell Scripts................................................................................................................. 235
Como tornar-se superusuário....................................................................................... 236
Leitura adicional.......................................................................................................... 237

Apêndice B ■ Se você usa um shell diferente............................................................................238


Índice remissivo...................................................................................................................... 243

Você também pode gostar