Shell Script
Usando o Bash
by @haru17 on Telegram
Sobre este slide...
Olá meu nome é @haru17, você pode encontrar-me no telegram
por esse nickname, o conteúdo deste slide está livre,
portanto você pode copiá-lo para usar em seus estudos,
compartilhar, fazer trabalhos derivados deste slide, tais
como videoaulas. Desde que os créditos sejam deixados para o
autor original: @haru17.
Afinal, o que é shell?
Shell na informática é o interpretador de comandos de um
sistema operacional, sendo ele MS-DOS, Unix, Mac OS ou
GNU/Linux. Existem vários Shell’s por aí, os mais conhecidos
são:
-Bash: do Linux e Mac
-Prompt de Comando e Powershell: principalmente para Windows
-sh: presente em sistemas Unix
E o que seria script?
Bom, agora que você deve ter entendido o que é Shell, vamos
entender o que é um script:
Script na informática nada mais é que um arquivo com
instruções para a realização de alguma ação. A sua diferença
com um algoritmo é que, linguagens essencialmente de
programação não podem fazer scripts. Mas, linguagens de
script podem fazer algoritmos, já que possuem estruturas
básicas presentes em quaisquer linguagens, como o 'if', ou
até mesmo o 'case'. Lua e Python são ambas de script e
programação.
Portanto, conclui-se...
"Shell Script é basicamente uma linguagem para realizar
diversas ações em um sistema operacional, ou criar
algoritmos, usando algum shell para executar os comandos,
tudo isso escrito em um arquivo com extensão sh,bat e muitas
outras."
Afinal, o que é o Bash? O que o difere dos demais?
Bash, ou Bourne Again Shell foi desenvolvido pelo projeto
GNU, tornando-se padrão nas várias distribuições Linux.
Sendo compatível com sh, e portando os melhores recursos de
outros interpretadores de comandos como csh, e ksh.
Por onde começaremos?
Simples, pelo básico de qualquer linguagem: o 'Hello World',
ou 'Olá mundo', como preferir usar. Lembrando que para isso
necessitamos de um terminal, a telinha preta nossa de cada
dia. O terminal pode variar muito com as distribuições e
seus ambientes de área de trabalho, mas vamos usar o que
estiver ao nosso alcance.
Com um terminal aberto podemos ver basicamente isto:
[username@pc-name ~]$
Em 'username' consta-se o nome de usuário, em 'pc-name' o
nome do computador, '~' o diretório que você está, que nesse
caso é '/home/username/', e '$' que indica que você está
logado como usuário comum no bash.
Na linha de comando digite:
[username@pc-name ~]$ echo "Hello World"
Hello World
Então, echo é o comando para exibir um texto qualquer na
tela, e o que está entre as aspas é o que será mostrado.
E agora, vamos a uns comandos básicos da linha de comando:
● pwd - mostrar o diretório atual
[username@pc-name ~]$ pwd
/home/username
● ls - listar arquivos/pastas de um diretório
[username@pc-name ~]$ ls
'Área de trabalho' Documentos Dropbox Modelos Notebooks Vídeos
'Biblioteca do calibre' Downloads Imagens Música Público
● sudo su - logar como admin
[username@pc-name ~]$ sudo su ou su, apenas
[sudo] senha para username: senha_aqui
[root@pc-name username]#
Note que no lugar de 'username' está root, mas logo depois 'username' aparece
indicando o diretório atual que é /home/username, porém agora com privilégios
maiores, o '#' indica também o login como administrador. Você pode também tentar
‘su’ para entrar como root.
cd - abrir diretório específico
[root@pc-name username]# cd Documentos/
[root@pc-name Documentos]#
Aqui é necessário indicar uma pasta para abrir.
su e sudo
O sudo vai funcionar para apenas um comando por vez, por
exemplo:
sudo dnf install terminix
Nesse caso após a instalação do terminix, seria necessário
digitar novamente a senha para outras ações que exigem
privilégio maior. Já o ‘su’, você pode usá-lo para logar e
permanecer como root até sair com ‘exit’, logado como root
não é necessário mais usar ‘sudo’ antes de algum comando,
pois como root você manda completamente no sistema.
Sintaxe no Bash
Por ser um interpretador de comandos, consiste nessa ordem:
comando <parâmetros> <argumentos>
Sempre quando há um nome e um espaço e outro nome o bash tentará interpretá-lo
como um comando e seu parâmetro, respectivamente, e quando este não existe ou
é inválido, o bash retorna:
[username@pc-name ~]$ try
bash: try: comando não encontrado
Sendo assim mais para frente vamos entender por que a declaração de variáveis
deve ser sem espaços, justamente porque o bash vai entender como um comando e
seu parâmetro.
Começando scripts...
Antes de tudo há alguns requisitos para começar os scripts:
● Um editor de texto (no meu caso usarei vim);
● '#!/bin/bash' no início de todos os scripts;
● E muita paciência...
Um pouco sobre o Vim
O vim é um editor de textos no terminal, ele possui syntax
highlight, e vários plugins úteis.
Para instalá-lo basta usar:
sudo apt-get install vim
sudo dnf install vim
Em algumas distribuições ele já vem por padrão, ou sua
versão ‘VI’ vem no lugar dele. Mas é recomendável que seja
instalado o Vim - Vi melhorado.
Usando o vim...
Para entrar no vim, chame-o pelo terminal, e para começar a
editar aperte ‘i’. Para ficar mais fácil alguns comandos
importantes a serem aprendidos, para usá-los retorne ao modo
de comandos do Vim usando a tecla ‘esc’ e digitando’:’,
veja:
-w nome-do-arquivo (Gravar o conteúdo do texto)
-q!(Sair do editor sem salvar)
-wq (Gravar e sair do editor)
Ainda em construção...
Aos poucos estarei adicionando mais coisas… Então fiquem
ligados!