Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais
de Redes
LAB - 01
Noes de LINUX
SHELL
KERNEL
Sumrio
Noes de LINUX
09:21
Noes de LINUX
Introduo
O BASH no somente uma excelente linha de comando no prompt do shell, mas
uma linguagem de script em si, tais como Perl, Python e Tcl.. Essa linguagem
permite usar as capacidades do shell e automatizar muitas tarefas que caso
contrrio exigiria um monte de comandos no prompt:
Linguagens de programao so geralmente muito mais poderoso e mais rpido do que
linguagens de script. Linguagens de programao geralmente comeam a partir do
cdigo fonte e so compiladas em um arquivo executvel. Este executvel no
facilmente portado em diferentes sistemas operacionais;
Uma linguagem de script tambm comea a partir do cdigo fonte, mas no compilada
em um arquivo executvel. Pelo contrrio, o intrprete l as instrues no arquivo de
origem e executa cada instruo. Programas interpretados so geralmente mais lentos
do que programas compilados. A principal vantagem que voc pode facilmente porta
arquivo de origem para qualquer sistema operacional.
09:21
EX.01
Noes de LINUX
09:21
EX.02
Noes de LINUX
]$
]$
]$
]$
mkdir lixo
cp * lixo
rm -rf lixo
mkdir lixo
Programa exemplo:
#!/bin/bash
# deleo de alguns arquivos
cp * trash
rm -rf lixo
mkdir lixo
echo "ARQUIVOS DELETADOS!"
09:21
Noes de LINUX
Variveis
Podemos usar variveis como em qualquer linguagem de programao. Seus valores so
sempre armazenados como sequncias de caracteres;
No precisamos declarar uma varivel, apenas atribuindo um valor para sua referncia ir
cri-lo;
NOTA: uma varivel poder conter um nmero ou carter;
Programa exemplo:
#!/bin/bash
# atribuio da palavra BOM DIA varivel STR
STR="BOM DIA"
echo $STR
09:21
Noes de LINUX
Aspas Duplas d Simples
Ao atribuir dados de caracteres que contenha espaos ou caracteres especiais, os dados
devem estar entre aspas simples ou duplas;
Usa-se aspas duplas para mostrar uma sequncia de caracteres permitindo quaisquer
variveis entre as aspas para ser resolvido;
Exemplo:
[
[
[
O
]$ var="teste"
]$ newvar="O valor da variavel eh $var"
]$ echo $newvar
valor da variavel eh teste
09:21
Noes de LINUX
Comando EXPORT
O comando export coloca uma varivel no ambiente para que seja acessvel a processos
filhos;
Exemplo:
[ ]$
[ ]$
[ ]$
[ ]$
[ ]$
[ ]$
[ ]$
aula
09:21
x=aula
bash
echo $x
exit
export x
bash
echo $x
# confirmao.
Noes de LINUX
Comando EXPORT
Se o processo filho modifica x, ele no ir modificar o valor original do processo pai;
[ ]$ x=filho
[ ]$ exit
[ ]$ echo $x
aula
09:21
10
Noes de LINUX
Variveis de ambiente
Existem dois tipos de variveis: variveis locais, e variveis de ambiente que so definidas
pelo sistema;
Exemplo:
[ ]$ echo $shell
/bin/bash
[ ]$ echo $PATH
/usr/X11R6/bin:/usr/local/bin:/bin:/usr/bin
Variveis de ambiente so definidas em /etc/profile, /etc/profile.d/ e ~/. bash_profile;
Estes so os arquivos de inicializao e so lidos quando o shell bash for invocado.
09:21
11
Noes de LINUX
Variveis de ambiente
HOME: Argumento padro (diretrio home) para cd.
PATH: Caminho de pesquisa para comandos. uma lista separada por dois pontos que so pesquisadas
quando voc digita um comando.
Caso digita-se:
[ ]$ mkdir ~/bin
... e incluir as seguintes linhas no ~/.bash_profile:
PATH=$PATH:$HOME/bin
... V-se que o comando a seguir includo no caminho de busca:
/home/userid/bin
09:21
12
Noes de LINUX
Variveis de ambiente
LOGNAME: Argumento contendo o nome de usurio;
HOSTNAME: Argumento contendo o nome do computador;
PS1: Sequncia de caracteres apresentados antes do prompt;
\t
hour
\d
date
\w
current directory
\W
last part of the current directory
\u
user name
\$
prompt character
Exemplo:
[userid@home userid]$ PS1='ola \u *'
ola userid*
09:21
13
Noes de LINUX
Comando READ
O comando READ lhe permite realizar uma chamada na tela de prompt que por seguinte ser
armazenada em uma varivel;
Exemplo:
#!/bin/bash
echo -n "Entre o nome do arquivo a ser deletado:"
read file
echo "Digite 'y' para remover, 'n' para desistir"
rm -i $file
echo "Commando realizado!"
09:21
14
Noes de LINUX
Comando de Substituio
Comando de substitution: `commando`
Exemplo:
[ ]$ LIST='ls'
[ ]$ echo $LIST
ola.sh hoje.sh
Comando de substitution: $(commando)
[ ]$ LIST=$(ls)
[ ]$ echo $LIST
ola.sh hoje.sh
09:21
15
Noes de LINUX
Aritmtica
Comando: LET
Exemplo:
[ ]$
[ ]$
24
[ ]$
[ ]$
32
09:21
let X=10+2*7
echo $X
let Y=X+2*4
echo $Y
16
Noes de LINUX
Aritmtica
Comando: LET
Comando: $[expresso] ou $((expresso))
Exemplo:
[ ]$ echo "$((120+20))"
140
[ ]$ VALOR=$[120+20]
[ ]$ echo "$[120*$VALOR]"
16800
09:21
17
EX.01
Noes de LINUX
Aritmtica
Exemplo:
#!/bin/bash
echo -n "Digite o primeiro numero: "; read x
echo -n "Digite o segundo numero: "; read y
add=$(($x + $y))
sub=$(($x - $y))
mul=$(($x * $y))
div=$(($x / $y))
mod=$(($x % $y))
09:21
18
EX.01
Noes de LINUX
Aritmtica
Exemplo (cont.):
# imprime o resultado:
echo "Soma: $add"
echo "Substrao: $sub"
echo "Multiplicao: $mul"
echo "Diviso: $div"
echo "Resto: $mod"
09:21
19
Noes de LINUX
Comparativo
if [ expression ];
then
statements
elif [ expression ];
then
statements
else
statements
fi
09:21
20
Noes de LINUX
Comparativo
Exemplo:
[
[
[
[
[
s1
s1
s1
-n
-z
09:21
= s2 ]
!= s2 ]
]
s1 ]
s2 ]
(verdadeiro
(verdadeiro
(verdadeiro
(verdadeiro
(verdadeiro
caso
caso
caso
caso
caso
s1
s1
s1
s1
s2
for
no
no
tem
tem
igual a s2)
for igual a s2)
for vazio)
tamanho > 0)
tamanho = 0)
21
Noes de LINUX
Comparativo
Comparativo entre Nmeros
-eq
-ne
-le
-ge
-lt
-gt
eq
lt
gt
le
ge
=
=
=
=
=
09:21
compara
compara
compara
compara
compara
compara
caso
caso
caso
caso
caso
caso
equal
less than
greater than
less or iqual
greater or iqual
22
EX.01
Noes de LINUX
Comparativo
[ ]$ nano usuario.sh
#!/bin/bash
echo -n "Entre o seu nome de login: "
read name
if ["$name" = "$USER" ];
then
echo "Ola, $name. Como vai..? "
else
echo "Voce no o $USER, quem voc ..? "
fi
09:21
23
EX.02
Noes de LINUX
Comparativo
[ ]$ nano numero.sh
#!/bin/bash
echo -n "Digite um numero entre 1 < x < 10: "
read num
if ["$num" -lt 10 ]; then
if ["$num" -gt 1 ]; then
echo "$num*$num=$(($num*$num)) "
else
echo "Insero errada..! "
fi
else
echo "Insero errada..! "
fi
)
09:21
24
EX.03
Noes de LINUX
Comparativo
[ ]$ nano diretorio.sh
#!/bin/bash
if [ -f /etc/fstab ];
then
cp /etc/fstab .
echo "Copia realizada. "
else
echo "Este arquivo no existe. "
exit 1
fi
09:21
25
EX.04
Noes de LINUX
Comparativo
[ ]$ nano comparativo.sh
#!/bin/bash
echo -n "Digite um numero 1 < x < 10: "
read num
if [ "$number" -gt 1 ] && [ "$number" -lt 10 ];
then
echo " $num*$num=$(($num*$num)) "
else
echo " Insero errada! "
fi
09:21
26
Noes de LINUX
Comando CASE
case $var in
val1)
statements;;
val2)
statements;;
*)
statements;;
esac
09:21
27
Noes de LINUX
EX.01
Comando CASE
[ ]$ nano case.sh
#!/bin/bash
echo -n "Entre um
read x
case $x in
1) echo
2) echo
3) echo
4) echo
5) echo
6) echo
7) echo
8) echo
9) echo
0 | 10)
*) echo
esac
09:21
28
Noes de LINUX
SHELL Dinmico
Realizar o script a seguir para verificao de existncia ou no de pasta no sistema:
09:21
29
Noes de LINUX
SHELL Dinmico
Realizar o script a seguir para supresso e criao de arquivos criados:
09:21
30