Programando com shell BASH
Nos
últimos anos estamos testemunhando o crescente aumento da
popularidade e do uso do sistema UNIX, para os programadore
s
de computadores isso não é nenhuma surpresa, UNIX foi desenhado e
oferece uma gama muito grande de funções e aplicativos para
desenvolvedores.
No
entanto com o advento do LINUX, essa popularidade ganhou um
incremento de crescimento geométrico, visto que o sistema foi muito
bem aceito nos meios acadêmicos, e mais recentemente com o
desenvolvimento de psetodes mais atraentes e seu desenvolvimento
voltado para usuários comuns, tornou o LINUX extremante fácil de
ser operado, e com o domínio da exploração de suas funcionalidades
se tornou uma grande opção para usuários domésticos, empresas,
além de que Governos do mundo inteiro vem adotando o sistema como
padrão.
Mas
vamos falar de SHELL, o shell e o prompt de comando do UNIX, ou
terminal
existem
vários sabores de Shell e todos eles podem ser utilizados no LINUX,
porém a versão padrão do LINUX e o BASH.
O
shell é um programa que fornece um ambiente consistente e fácil de
usar para a execução de programas em UNIX/LINUX.
A
função do shell é ler os comandos digitados e, em seguida, pedir
o kernel UNIX para executar estes comandos ele proporciona
construções de programas sofisticados para tomadas de decisões,
executar um grupo de comandos, criar funções, e armazenar e
alterar valores em variáveis.
O
BASH e derivado do shell chamado de Bourne. Quando Dennis Ritche e
Ken
Thompson
estavam desenvolvendo o UNIX no início da década de 1970, eles
usaram um shell muito simples. escrito por Stephen Bourne, O shell
Bourne original foi ligeiramente alterado ao longo dos anos; alguns
recursos foram adicionados e outros foram removidos, mas a sua
sintaxe e seu poder resultante permaneceram os mesmos.
O
shell permite a criação de scripts. Scripts são arquivos que
contêm uma
lista
de comandos que você deseja executar. Os scripts permitem combinar
sequencias de comandos e programas o que ajuda muito na resolução
de problemas, e na automação de tarefas cotidianas tornado a vida
dos usuários mais fácil e produtiva.
O
shell e como uma grande caixa de ferramentas, que possibilita a
construção de programas completos e complexos para resolver os mais
variados problemas, no entanto para desenvolvê-los e necessário
conhecimentos dessas ferramentas e de como trabalhar com cada uma
delas funciona, este curso tem por objetivo apresentar as mais
importantes funções do BASH, e demonstrar inúmeras
funcionalidades, oque dará a você uma grande fonte de conhecimento
para começar a desenvolver scripts e a trabalhar com o Shell Bash
interativamente.
Antes
que você possa construir coisas usando o shell, você precisa
aprender algumas noções básicas. Vamos analisar o seguintes
tópicos:
-
comandos
-
o e shell
É
hora de começar.
Em
UNIX/Linux(daqui para frente só vou me referir a LINUX), um comando
é um programa que você executa. Em desporto de sistemas
operacionais, como o Mac OS Linux ou Windows, você executa um
programa cliqando em seu ícone. Para executar um comando no shell,
você digita seu nome e pressione Enter.
Por
exemplo:
Executando
o comando who que mostra quem esta logado no sistema.
edson@ed-net:~$
who
edson
:0 2015-12-07 08:05 (:0)
edson
pts/0 2015-12-07 08:06 (:0.0)
edson
pts/1 2015-12-07 10:22 (:0.0)
edson@ed-net:~$
Mostra
usuário data e hora de login, muito útil para administradores de
sistemas.
No
Bash temos dois tipo básicos de modo de operação, repare que
existe o sinal de cifrão, $ ele indica que o usuário esta logado
como usuário comum e não pode fazer alterações no sistema. Agora
veja outro exemplo:
Para
obter privilégios de administrador e preciso que o usuário
pertença ao grupo root, e para poder usar privilégios
administrativos e preciso se tornar root, isto e obtido com o comando
sudo su; Como segue:
edson@ed-net:~$
sudo su
root@ed-net:/home/edson#
Veja
que o sinal $ mudou e agora existem um hashtag #.
#
e o simbolo do root.
No
shell podemos usar comando simples comandos complexos e comandos
compostos.
Comando
simples:
O
who e um exemplo de comando simples, que você pode executar apenas
digitando seu nome na linha de comando e pressionando enter:
$
comando
Comandos
complexos
Você
pode usar o who para obter informações sobre si mesmo e só
você executá-lo da seguinte forma:
root@ed-net:/home/edson#
who i am
edson
pts/1 2015-12-07 10:22 (:0.0)
root@ed-net:/home/edson#
^C
root@ed-net:/home/edson#
Isto
passa as seguintes informações:
Meu
nome é edson.
Eu
estou conectado ao terminal pts / 0.
Eu
fiz login as 08:49 em 09 de dezembro.
Este
comando também introduz o conceito de um comando complexo, que é um
comando que consiste em um nome de comando e de argumentos.
Argumentos
são modificadores que alteram o comportamento de um comando. Neste
caso, o nome do comando é who, e os argumentos são am e i.
Quando
executamos o who comandam como um comando simples, ele exibe
informações sobre todos os que estão logados no sistema . é o
comportamento padrão do comando.
Os
argumentos am e i vão mudar o comportamento do who para listar
apenas as informações sobre você.
A
maioria dos comandos aceitam argumentos para modificar seu
comportamento.
A
sintaxe formal para um comando complexo é:
$
Comando argument1 argument2 Argument3 ... argumentoN
Aqui,
o comando é o nome do comando que você deseja executar, e argument1
até o argumentoN são os argumentos que você passa para os
comandos.
Comandos
Compostos.
Uma
das facilidades mais interessantes do shell e poder combinar comando
na mesma linha, formando comandos complexos, que são utilizados para
osmais variados usos:
EX:
Se
eu quiser informações sobre meu processador posso consultar o
arquivo cpuinfo utilizando o comando cat. Isso me passa uma lista
enorme que aqui vou abreviada.
root@ed-net:/home/edson/Documentos#
cat /proc/cpuinfo
processor :
0
vendor_id :
AuthenticAMD
cpu
family : 20
model :
2
model
name : AMD C-70 APU with Radeon(tm) HD Graphics
stepping :
0
microcode :
0x500010d
cpu
MHz : 800.000
Se
eu quiser informações apenas do modelo, posso conseguir usando um
comando composto de cat e grep.
Para
isso preciso separar os comando com um pipe | isso faz com que a
saída de um programa seja a entrada de outro.:
root@ed-net:/home/edson/Documentos#
cat /proc/cpuinfo | grep 'model name'
model
name : AMD C-70 APU with Radeon(tm) HD Graphics
model
name : AMD C-70 APU with Radeon(tm) HD Graphics
Outro
exemplo
root@/home/edson/Documentos#
cat /proc/cpuinfo | grep 'model name' ; who
model
name : AMD C-70 APU with Radeon(tm) HD Graphics
model
name : AMD C-70 APU with Radeon(tm) HD Graphics
edson
:0 2015-12-07 08:05 (:0)
edson
pts/0 2015-12-07 08:06 (:0.0)
edson
pts/1 2015-12-07 10:22 (:0.0)
root@ed-net:/home/edson/Documentos#
Veja
que agora eu inclui mais um comando o who separados por ; que o
comando separador, assim sempre que eu quiser dar vários comandos
seguidos na mesma linha tenho que separá-los com ponto e virgula ; .
Então
pipe | direciona a saída de um comando para outro, e ponto e
virgula concatena vários comandos separados, cat | grep e diferente
de cat ; grep.
Então
aprendemos como executar um comando simples complexo e compostos,mas
como é que o computador sabe o que você quer fazer com comando
cat?
O
computador usa um programa especial chamado shell; Para descobrir
isso. O shell fornece com uma interface para o sistema para você dar
entrada. e executa os comandos (programas) com base nessa entrada.
Uma
característica muito importante do shell e que ele e um
interpretador de comandos ou seja não é preciso compilar seus
scripts para que ele rode.
Para
usuários familiarizados com o Windows, o shell UNIX é semelhante ao
shell DOS, COMMAND.COM.
O
shell UNIX é muito mais do que um interpretador de comandos. Também
é uma poderosa linguagem de programação completa, com declarações
condicionais, loops e funções.
Se
você estiver familiarizado com esses tipos de declarações de
outras linguagens de programação, ótimo. Você vai pegar o jeito
do shell rapidamente. Caso contrário, não se preocupe. No decorrer
das minhas postagens você vai se familiarizar e aprender como usar
o shell bash.
Só
para constar existem diferentes tipos de shell
Em
UNIX, existem dois grandes tipos de shell:
-
O shell Bourne (inclui sh, ksh e bash)
-
O shell C (csh e tcsh inclui)
-
Se
você estiver usando um shell tipo Bourne , o prompt padrão é o
caractere $. Se você estiver usando um shell do tipo C, o prompt
padrão é o caractere %. Minhas postagens abrangeram apenas shells
Bash (Bourne Again Shell).
As
diferentes shells Bourne tipo seguir:
-
Bourne shell (sh)
-
Korn (ksh)
-
Bourne Again shell (bash)
As
diferentes shells tipo C:
-
C shell ( csh)
-
TENEX/TOPS C shell ( tcsh)
O
Bourne Again Shell 'BASH'
O
BASH, foi desenvolvido como parte do projeto GNU e substituiu o
Bourne
shell,
sh, para sistemas baseados em GNU como Linux. Todas as principais
distribuições Linux, incluindo Red Hat, Slackware, e Debian, tem
como padrão o bash .
Nenhum comentário:
Postar um comentário