Você está na página 1de 30

Engenharia de Redes de Comunicao

SOR Sistemas Operacionais de Redes

Sistemas Operacionais
de Redes

Prof. Georges Daniel Amvame Nze, Dr.


Universidade de Braslia
2015

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

LAB - 01
Noes de LINUX

SHELL
KERNEL

Sumrio

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

Noes de LINUX

09:21

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

EX.01

Noes de LINUX

Abrir um editor da vossa escolha (vi, vim, nano, gedit etc.):


[ ]$nano
Programa exemplo:
#!/bin/bash
echo "BOM DIA"
Executar o Programa:
[ ]$chmod 700 bomdia.sh
[ ]$./bomdia.sh
BOM DIA

09:21

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

EX.02

Noes de LINUX

Seguir os passos abaixo:


[
[
[
[

]$
]$
]$
]$

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

# Roda processo filho


# Nada na variavel x.
# Retorno ao processo pai

# confirmao.

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

Noes de LINUX
Comparativo
if [ expression ];
then
statements
elif [ expression ];
then
statements
else
statements
fi

09:21

20

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

dois nmeros sejam iguais


dois nmeros no sejam iguais
um nmero menor ou igual ao outro
um nmero maior ou igual ao outro
um nmero menor ao outro
um nmero maior ao outro

equal
less than
greater than
less or iqual
greater or iqual

22

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

Noes de LINUX
Comando CASE
case $var in
val1)
statements;;
val2)
statements;;
*)
statements;;
esac

09:21

27

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

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

numero entre 1 < x < 10: "

"O valor de x 1. ";;


"O valor de x 2. ";;
"O valor de x 3. ";;
"O valor de x 4. ";;
"O valor de x 5. ";;
"O valor de x 6. ";;
"O valor de x 7. ";;
"O valor de x 8. ";;
"O valor de x 9. ";;
echo numero errado. ";;
valor nao reconhecido. ";;

28

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

Noes de LINUX

SHELL Dinmico
Realizar o script a seguir para verificao de existncia ou no de pasta no sistema:

09:21

29

Engenharia de Redes de Comunicao


SOR Sistemas Operacionais de Redes

Noes de LINUX

SHELL Dinmico
Realizar o script a seguir para supresso e criao de arquivos criados:

09:21

30

Você também pode gostar