├── LICENSE
├── README.md
└── images
└── guia.png
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Arthur Coutinho
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Guia de Shell Script
6 |
7 |
8 | ## :dart: O guia para alavancar a sua carreira
9 |
10 | > Abaixo você encontrará conteúdos para te guiar e ajudar a aprender como funciona a linguagem Shell Script, o intuito desse repositório e abordar tópicos e sub-tópicos com diversos temas para que você tenha o conceito total de como funciona o Shell Script e como ele é utilizado, bem como textos, guias, artigos, e ferramentas para que possa tornar seu aprendizado mais simples e prático, faça bom uso do guia e bons estudos.
11 |
12 | Siga nas redes sociais para acompanhar mais conteúdos:
13 | [
](https://github.com/arthurspk)
14 | [
](https://www.facebook.com/seixasqlc/)
15 | [
](https://www.linkedin.com/in/arthurspk/)
16 | [
](https://twitter.com/manotoquinho)
17 | [](https://discord.gg/NbMQUPjHz7)
18 | [
](https://www.instagram.com/guiadevbrasil/)
19 | [](https://www.youtube.com/channel/UCzmXzz_VR0Li8-YOvWN_t3g)
20 |
21 |
22 | ## :closed_book: E-Book
23 |
24 | > Este repositório é um projeto gratuito para a comunidade de desenvolvedores. Você pode me ajudar comprando o e-book "e-Front" se estiver interessado em aprender ou melhorar suas habilidades de desenvolvimento front-end. O e-book é completo e cobre tecnologias essenciais como HTML, CSS, JavaScript, React, TypeScript e mais. O valor é simbólico e sua compra me ajuda a produzir e fornecer mais conteúdo gratuito para a comunidade. Adquira agora e comece sua jornada no desenvolvimento front-end.
25 |
26 | - eFront - Estudando Desenvolvimento Front-end do Zero. [Clique aqui para comprar](https://hotm.art/cSMObU)
27 |
28 | ## ⚠️ Aviso importante
29 |
30 | > Antes de tudo você pode me ajudar e colaborar, deu bastante trabalho fazer esse repositório e organizar para fazer seu estudo ou trabalho melhor, portanto você pode me ajudar das seguintes maneiras:
31 |
32 | - Me siga no [Github](https://github.com/arthurspk)
33 | - Acesse as redes sociais do [Guia Dev Brasil](https://beacons.ai/guiadevbrasil/)
34 | - Mande feedbacks no [LinkedIn](https://www.linkedin.com/in/arthurspk/)
35 | - Faça uma doação pelo PIX: arthurcoutinho2@hotmail.com
36 |
37 | ## 💡 Nossa proposta
38 |
39 | > A proposta deste guia é dar uma ideia sobre o atual panorama e guiá-lo se você estiver confuso sobre qual será o seu próximo aprendizado, sem influenciar você a seguir os 'hypes' e 'trends' do momento. Acreditamos que com um maior conhecimento das diferentes estruturas e soluções disponíveis poderá escolher a ferramenta que melhor se aplica às suas demandas. E lembre-se, 'hypes' e 'trends' nem sempre são as melhores opções.
40 |
41 | ## :beginner: Para quem está começando agora
42 |
43 | > Não se assuste com a quantidade de conteúdo apresentado neste guia. Acredito que quem está começando pode usá-lo não como um objetivo, mas como um apoio para os estudos. Neste momento, dê enfoque no que te dá produtividade e o restante marque como Ver depois. Ao passo que seu conhecimento se torna mais amplo, a tendência é este guia fazer mais sentido e ficar fácil de ser assimilado. Bons estudos e entre em contato sempre que quiser! :punch:
44 |
45 | ## 🚨 Colabore
46 |
47 | - Abra Pull Requests com atualizações
48 | - Discuta ideias em Issues
49 | - Compartilhe o repositório com a sua comunidade
50 |
51 | ## 🌍 Tradução
52 |
53 | > Se você deseja acompanhar esse repositório em outro idioma que não seja o Português Brasileiro, você pode optar pelas escolhas de idiomas abaixo, você também pode colaborar com a tradução para outros idiomas e a correções de possíveis erros ortográficos, a comunidade agradece.
54 |
55 |
・English — [Click Here](https://github.com/arthurspk/guiadeshellscript)
56 |
・Spanish — [Click Here](https://github.com/arthurspk/guiadeshellscript)
57 |
・Chinese — [Click Here](https://github.com/arthurspk/guiadeshellscript)
58 |
・Hindi — [Click Here](https://github.com/arthurspk/guiadeshellscript)
59 |
・Arabic — [Click Here](https://github.com/arthurspk/guiadeshellscript)
60 |
・French — [Click Here](https://github.com/arthurspk/guiadeshellscript)
61 |
・Italian — [Click Here](https://github.com/arthurspk/guiadeshellscript)
62 |
・Korean — [Click Here](https://github.com/arthurspk/guiadeshellscript)
63 |
・Russian — [Click Here](https://github.com/arthurspk/guiadeshellscript)
64 |
・German — [Click Here](https://github.com/arthurspk/guiadeshellscript)
65 |
・Japanese — [Click Here](https://github.com/arthurspk/guiadeshellscript)
66 |
67 | ## 📚 ÍNDICE
68 |
69 | [📝 Introdução ao Shell Script](#)
70 | [🐧 Conceitos básicos do Shell Script](#)
71 | [🐵 Manipulação de Arquivos e Pastas](#)
72 | [🐶 Expressões Regulares](#)
73 | [🐼 Debugar Código](#)
74 | [🐺 Caracteres de Controle](#)
75 | [🐱 Trabalhando com texto](#)
76 | [🦁 Extração de Dados da Internet](#)
77 | [🐍 Arquivos de Configuração](#)
78 | [🦊 Banco de Dados utilizando Shell Script](#)
79 | [🐔 Depuração e testes](#)
80 | [🐲 Trabalhando com usuários e grupos](#)
81 | [🦏 Trabalhando com redes](#)
82 | [🐬 Tarefas de administração do sistema](#)
83 | [🐙 Tarefas de segurança utilizando Shell Script](#)
84 | [🐙 Boas práticas em Shell Script](#)
85 | [🐰 Interface Gŕafica com Dialog](#)
86 | [🦝 Módulos de anotações sobre Shell Script](#)
87 | [🦞 Exemplos práticos de utilização em Shell Script](#)
88 |
89 | # 📝 Introdução ao Shell Script
90 |
91 | > O que é Shell Script?
92 |
93 | Shell Script é uma linguagem de script usada para automatizar tarefas no sistema operacional Linux/Unix. Ele permite que os usuários criem scripts que executam uma sequência de comandos no shell, tornando mais fácil e rápido a execução de tarefas rotineiras.
94 |
95 | Um script shell é composto de uma sequência de comandos que são executados em ordem. Eles podem incluir comandos do sistema, operações de entrada/saída, operações de controle de fluxo e variáveis. O shell é o interpretador de comandos que lê o script e executa os comandos nele contidos.
96 |
97 | > Como funciona o Shell Script?
98 |
99 | No dia-a-dia, o Shell Script pode ser utilizado para automação de tarefas repetitivas, tais como backup de arquivos, instalação de softwares, atualização do sistema operacional, etc. Além disso, ele pode ser utilizado em conjunto com outras ferramentas de linha de comando, como o sed, awk, grep, entre outros.
100 |
101 | Algumas aplicações práticas de Shell Script em empresas incluem:
102 |
103 | - Automação de tarefas de administração do sistema, tais como backups, atualizações, monitoramento de logs e serviços, etc.
104 | - Criação de scripts de deploy para facilitar a implantação de novas versões de softwares.
105 | - Criação de scripts de automação de testes de software para agilizar o processo de testes e garantir a qualidade do produto final.
106 | - Criação de scripts de análise de logs para identificar problemas e realizar a manutenção preventiva do sistema.
107 |
108 | Já para uso pessoal, exemplos de aplicações práticas incluem:
109 |
110 | - Automatizar tarefas rotineiras, como limpeza de arquivos antigos, organização de pastas, etc.
111 | - Criar scripts para extrair informações de sites e gerar relatórios automaticamente.
112 | - Automatizar tarefas relacionadas à manipulação de imagens, como redimensionamento, conversão, etc.
113 | - Criar scripts para renomear arquivos em massa com base em um padrão específico.
114 |
115 | Além dos exemplos citados, existem outras aplicações práticas de Shell Script que podem ser utilizadas tanto em empresas como para uso pessoal. Seguem abaixo alguns exemplos:
116 |
117 | - Automação de tarefas de monitoramento: Shell Script pode ser usado para monitorar serviços, processos e recursos do sistema operacional. Por exemplo, é possível criar um script para verificar o uso de CPU e memória do servidor e enviar alertas por e-mail em caso de problemas.
118 | - Configuração de ambientes de desenvolvimento: Shell Script pode ser usado para instalar e configurar ferramentas de desenvolvimento de software em ambientes Linux/Unix. Isso pode economizar tempo e garantir a consistência na configuração de diferentes ambientes de desenvolvimento.
119 | - Gerenciamento de usuários e permissões: Shell Script pode ser usado para criar e gerenciar usuários e grupos do sistema operacional e definir permissões de acesso a arquivos e diretórios.
120 | - Manipulação de arquivos de texto: Shell Script é uma ferramenta poderosa para manipular arquivos de texto. Por exemplo, é possível criar um script para extrair informações de arquivos de log e gerar relatórios automaticamente.
121 | - Automação de processos de negócios: Em empresas, Shell Script pode ser usado para automatizar processos de negócios, como geração de faturas, processamento de pedidos, entre outros.
122 | - Automação de tarefas de backup: Shell Script pode ser usado para automatizar tarefas de backup de arquivos e bancos de dados. Isso pode garantir a segurança e integridade dos dados em caso de falhas do sistema.
123 |
124 | Em resumo, o Shell Script é uma ferramenta poderosa para automação de tarefas rotineiras e pode ser usado em diferentes áreas e cenários, desde empresas até uso pessoal. Com um pouco de conhecimento em Shell Script, é possível aumentar a eficiência e produtividade em diferentes atividades.
125 |
126 | > Como Shell Script é aplicado na área de Cyber Security?
127 |
128 | Shell Script é amplamente utilizado na área de Cyber Security para automatizar tarefas de segurança, tais como detecção de vulnerabilidades, análise de logs, monitoramento de tráfego de rede, entre outros. Abaixo estão alguns exemplos de como Shell Script é aplicado na área de Cyber Security:
129 |
130 | - Análise de logs: Shell Script pode ser usado para analisar logs de diferentes fontes, como logs do sistema operacional, logs do servidor web, logs de firewall, entre outros. Os logs são analisados em busca de atividades suspeitas, como tentativas de acesso não autorizado, ataques de força bruta, entre outros.
131 | - Detecção de vulnerabilidades: Shell Script pode ser usado para verificar se os sistemas estão vulneráveis a determinadas ameaças. Por exemplo, é possível criar um script que verifica se um sistema está vulnerável a um determinado exploit conhecido.
132 | - Monitoramento de tráfego de rede: Shell Script pode ser usado para monitorar o tráfego de rede e identificar atividades suspeitas, como tráfego de rede incomum, tentativas de acesso não autorizado, entre outros.
133 | - Criação de scripts de resposta a incidentes: Shell Script pode ser usado para criar scripts de resposta a incidentes de segurança. Esses scripts podem conter instruções para bloquear endereços IP suspeitos, desabilitar contas de usuário comprometidas, entre outras ações.
134 | - Automação de tarefas de segurança: Shell Script pode ser usado para automatizar tarefas de segurança, tais como atualizações de segurança, backup de dados, verificação de integridade de arquivos críticos, entre outras.
135 |
136 | > O que eu preciso estudar para aprender Shell Script?
137 |
138 | - Conhecimento em comandos do terminal: é importante ter conhecimento em comandos do terminal para manipulação de arquivos, pastas e outros recursos do sistema operacional.
139 | - Lógica de programação: Shell Script é uma linguagem de programação que exige conhecimentos em lógica de programação, tais como estruturas de controle de fluxo, funções, variáveis, entre outros.
140 | - Manipulação de arquivos e texto: Shell Script é uma linguagem especializada em manipulação de arquivos e texto. É importante ter conhecimentos em manipulação de arquivos e expressões regulares para tirar o máximo proveito do Shell Script.
141 | - Debugging e testes: Assim como em qualquer outra linguagem de programação, é importante saber como depurar e testar scripts em Shell Script.
142 | - Conhecimentos em redes e segurança: Se você pretende usar Shell Script para automação de tarefas de segurança, é importante ter conhecimentos em redes e segurança para entender as vulnerabilidades e riscos que precisam ser abordados.
143 | - Prática: Shell Script é uma linguagem de programação que exige prática. É importante desenvolver projetos e scripts para consolidar os conhecimentos adquiridos.
144 |
145 | > Quais os benefícios de usar o Shell Script?
146 |
147 | Há vários benefícios em utilizar o Shell Script, dentre eles estão:
148 |
149 | - Automatização de tarefas repetitivas: uma das principais vantagens do Shell Script é a capacidade de automatizar tarefas repetitivas. Isso pode incluir desde a criação de backups automatizados até a instalação de pacotes em múltiplos servidores.
150 | - Customização de processos: o Shell Script oferece grande flexibilidade para customizar e personalizar processos de acordo com as necessidades do usuário. Isso pode incluir, por exemplo, a criação de scripts específicos para a realização de tarefas específicas.
151 | - Controle de processos: o Shell Script permite que o usuário tenha maior controle sobre o processo em execução, com a possibilidade de interromper ou ajustar parâmetros durante a execução.
152 | - Facilidade de manutenção: como o Shell Script é um conjunto de comandos, é relativamente fácil de manter e atualizar. Além disso, o Shell Script é uma linguagem de programação de script interpretada, o que significa que não há necessidade de compilação, facilitando o processo de manutenção.
153 | - Maior eficiência: o Shell Script é uma linguagem de programação leve, que é executada rapidamente e com baixo consumo de recursos. Isso faz com que os scripts desenvolvidos em Shell Script possam ser executados em uma grande variedade de sistemas, incluindo sistemas mais antigos e com menor poder de processamento.
154 | - Acesso a uma grande variedade de comandos: o Shell Script é baseado em comandos do sistema operacional, o que significa que o usuário tem acesso a uma grande variedade de comandos pré-existentes, além da possibilidade de criar novos comandos personalizados.
155 |
156 | Em resumo, o Shell Script é uma ferramenta poderosa para automação de tarefas, customização de processos, e controle de processos em sistemas baseados em Unix/Linux. Ele pode ser utilizado para economizar tempo e recursos, além de melhorar a eficiência e confiabilidade dos processos de uma empresa ou uso pessoal.
157 |
158 | # 🐧 Conceitos básicos do Shell Script
159 |
160 | > Nesse tópico será abordado os conceitos básicos para se aprender Shell Script, ou seja o que é fundamental para quem está aprendendo essa linguagem, pois aborda os fundamentos necessários para entender como os scripts em Shell funcionam, alguns exemplos dos fundamentos incluem:
161 |
162 | - Interpretação de comandos: O Shell Script é uma linguagem de script interpretada, o que significa que ele executa comandos diretamente no terminal do sistema operacional. Isso significa que o script não precisa ser compilado, o que facilita a criação e a execução de scripts em diferentes plataformas.
163 | - Comandos básicos: Alguns dos comandos básicos do Shell Script incluem echo, cd, ls, mkdir, rm, touch, entre outros. É importante compreender como esses comandos funcionam e como eles podem ser usados em conjunto para criar scripts mais complexos.
164 | - Variáveis: Variáveis são usadas para armazenar valores em Shell Script. Elas podem ser usadas para armazenar caminhos de arquivos, nomes de usuários, números, etc. As variáveis são precedidas pelo símbolo $, como por exemplo $HOME para representar o diretório home do usuário atual.
165 | - Operadores: Existem vários tipos de operadores em Shell Script, incluindo operadores aritméticos (+, -, \*, /), operadores de comparação (>, <, =), operadores lógicos (&&, ||), entre outros. É importante saber como esses operadores funcionam e como usá-los em expressões.
166 | - Expressões condicionais: As expressões condicionais, como if/else, permitem que você execute determinadas ações com base em condições específicas. É importante saber como essas expressões funcionam e como usá-las para criar scripts mais complexos.
167 | - Expressões de repetição: As expressões de repetição, como while e for, permitem que você execute determinadas ações repetidamente. É importante saber como essas expressões funcionam e como usá-las para criar scripts mais complexos.
168 | - Funções: As funções permitem que você agrupe um conjunto de comandos em um único bloco reutilizável. É importante saber como as funções funcionam
169 | - Redirecionamento de entrada/saída: O redirecionamento de entrada/saída permite que você redirecione o fluxo de entrada ou saída de um comando. Isso pode ser usado para redirecionar a entrada de um arquivo para um comando ou redirecionar a saída de um comando para um arquivo. É importante saber como fazer isso em Shell Script.
170 |
171 | Esses são apenas alguns exemplos de conceitos básicos que podem ser abordados em um guia de Shell Script. Entender esses conceitos é fundamental para criar scripts mais complexos e eficientes.
172 |
--------------------------------------------------------------------------------
/images/guia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arthurspk/guiadeshellscript/e70902fd92ddd9db1ee3a50c109fd5fbbda2f3a7/images/guia.png
--------------------------------------------------------------------------------