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