LINUX
- Ficha 3 - Programação
1. Criar o ficheiro fich.txt com o comando
touch e verificar as suas permissões com o comando ls –la
fich.txt.
____________________________________________________
2. Escrever uma frase para o ficheiro como por exemplo
echo ola tudo bem? >> fich.txt
____________________________________________________
3. Alterar as permissões do ficheiro por forma
que o proprietário não possa escrever.
Apenas poderá ler o ficheiro. Usar o comando chmod nnn
fich.txt (n representa a soma dos valores de R,W e X conforme
a tabela em baixo).
| |
Owner (proprietário) |
Group (Grupo) |
World (Mundo) |
| R (read) |
4 |
4 |
4 |
| W (write) |
2 |
2 |
2 |
| X (execute) |
1 |
1 |
1 |
_______________________________
4. Tentar escrever algo mais no ficheiro e verificar
o que acontece. Qual a explicação para o sucedido?
____________________________________________________
5. Atribuir agora permissão total para
o ficheiro (777) e voltar a tentar escrever no ficheiro por exemplo com
o comando
echo e agora? ja escreve? >> fich.txt
____________________________________________________
6. Criar mais um ficheiro com o nome fich2.txt.
De uma só vez atribuir a permissão 755 (o grupo e o mundo
não podem escrever no ficheiro ) para os 2 ficheiros.
____________________________________________________
7. Executar o comando stat fich.txt.
Qual o significado das palavras Uid e Gid ?
___________________________________________________
8. Executar os seguintes comandos sobre informação
do sistema: (poderá ter que colocar o endereço absoluto
sendo nesse caso necessário verificar em que directorio se encontam
com a instrução locate/ whereis comando_x )
pwd - mostra o directório corrente
hostname - mostra o nome da máquina
whoami - nome do utilizador
id nome_do_utilizador - identifcação sobre
o utilizador
who - mostra os utilizadores ligados à máquina
w - mostra os utilizadores no sistema e o que estão
fazendo.
rwho –a - mostra os utilizadores ligados noutros
computadores da rede
finger nome_de_utilizador - dá informações
sobre o utilizador
passwd - muda a password do utilizador.
last - mostra os últimos utilizadores que entraram
no sistema
history | more - mostra os últimos comandos executados
na linha de comandos
uptime - mostra a quantidade de tempo decorrido desde
o último reboot
ps - lista os processos correntes executados pelo utilizador
corrente
ps axu | more - lista todos os processos em execução,
mesmo aqueles não ligados a nenhum terminal, junto com o nome do
utilizador, dono de cada processo.
free - informação sobre memória
(em Kilobytes)
du / -bh | more - exibe o uso detalhado de disco em cada
subdiretório começando pelo diretório raiz (“/
“)
set|more - Mostra o ambiente do usuário corrente(completo).
echo $PATH - Mostra o conteúdo da variável
de ambiente "PATH". Este comando pode ser usado para mostrar
outras variáveis de ambiente.
cat /proc/version - Versão do linux e outras informações.
shutdown -h now - Desliga o sistema (shutdown –r
now ? reinicia o sistema) Como root!
Programação em Linux (Shell Script)
1. No seu directório criar um directório
com o nome prog onde irá desenvolver os seus scripts
Linux.
2. Editar um ficheiro com o nome
script.cgi e com o seguinte conteúdo:
#!/bin/bash
echo "Ola, $USER. Vou listar os ficheiros "
echo "no directorio corrente , $PWD"
ls # lista de ficheiros (# quer dizer comentário e echo envia para
o ecran)
3. Atribuir as permissões
755 ao ficheiro script.cgi e executar o ficheiro com o comando
./script.cgi (não esquecer o ponto!)
4. Agora um script com variáveis:
#!/bin/bash
primeiro_nome=Paulo;
ultimo_nome=Sousa;
nome_completo=”Paulo Sousa”; # é necessário
as aspas por causa do espaço
echo $primeiro_nome; # para aceder à variável coloca-se
o cifrão $ antes do nome da mesma
echo $nome_completo
5. As expressões condicionais
#!/bin/bash
a=2;
b=3;
if [ $a > $b]
then
echo “a é maior que b”;
else
echo “b é maior que a”;
fi
6. Os ciclos for
#!/bin/bash
for X in red green blue
do
echo $X
done
Outro exemplo
#!/bin/bash
for X in *
do
ls –la "$X"
done
7. Os ciclos while
#!/bin/bash
X=0
while [ $X -le 20 ]
do
echo $X
X=$((X+1))
done
8. Entrada de dados
A entrada de dados no linux poderá ser feita com o comando read
variavel
Exemplo:
echo “Escolha as opcões 1, 2 ou 3”
read opcao
echo “Escolheu a opção $opcao”
9. Desenvolver um script em linux que
pede ao utilizador 2 números e mostra no ecran
o resultado da soma desses números
10. Explicar o que faz o seguinte programa
#!/bin/bash
# Exemplo Final de Script Shell
Principal() {
echo "Exemplo Final sobre o uso de scripts shell"
echo "------------------------------------------"
echo "Opções:"
echo
echo "1. Trasformar nomes de arquivos"
echo "2. Adicionar um usuário no sistema"
echo "3. Deletar um usuário no sistema"
echo "4. Fazer backup dos arquivos do /etc"
echo "5. Sair do exemplo"
echo
echo -n "Qual a opção desejada? "
read opcao
case $opcao in
1) Transformar ;;
2) Adicionar ;;
3) Deletar ;;
4) Backup ;;
5) exit ;;
*) "Opção desconhecida." ; echo ; Principal ;;
esac
}
Transformar() {
echo -n "Para Maiúsculo ou minúsculo? [M/m] "
read var
if [ $var = "M" ]; then
echo -n "Que diretório? "
read dir
for x in `/bin/ls` $dir; do
y=`echo $x | tr '[:lower:]' '[:upper:]'`
if [ ! -e $y ]; then
mv $x $y
fi
done
elif [ $var = "m" ]; then
echo -n "Que diretório? "
read dir
for x in `/bin/ls` $dir; do
y=`echo $x | tr '[:upper:]' '[:lower:]'`
if [ ! -e $y ]; then
mv $x $y
fi
done
fi
}
Adicionar() {
clear
echo -n "Qual o nome do usuário a se adicionar? "
read nome
adduser nome
Principal
}
Deletar() {
clear
echo -n "Qual o nome do usuário a deletar? "
read nome
userdel nome
Principal
}
Backup() {
for x in `/bin/ls` /etc; do
cp -R /etc/$x /etc/$x.bck
mv /etc/$x.bck /usr/backup
done
}
Principal
|