1- De acordo com cada questão, execute os comandos para entender o que acontece no prompt.
Em caso de dúvida pesquise nos links externos cada uma das funcionalidade.
- Experimente o comando pwd para
ver aonde está neste momento. - Para obter ajuda sobre os comandos da linha de comandos utilize o comando man.
Experimente o seguinte:- man ls
- man cp
- man rm
- man man
- Experimente os seguintes comandos para saber mais sobre os utilizadores
do sistema:- who
- whoami
- finger
- O que faz cada um dos seguintes comandos?
- ls *
- ls *.c
- ls ?.c
- ls [a-c]*
- ls [a-z]*
- ls ??[c]*
- ls ?[e]
- ls [A-Za-z]*
- ls dir*/*.c
- Qual a diferença entre utilizar o comando ls -l e ls -la?
- Crie um diretório chamado RedesComputadores.
Entre nesse diretório e crie outro chamado exercicios. Mostre o conteúdo do diretório RedesComputadores.
Remova o diretório exercicios e crie um novo chamado exerc. Mude o nome do directório exerc para exercicios. - Pesquise a finalidade do comando rm -rf RedesComputadores
- Redirecione o “output” do comando man para um ficheiro. Por exemplo, man ls > ls.man. Verifique o resultado usando o comando cat ou o comando more.
- Experimente os seguintes comandos:
echo ‘um’ > ficheiro.tmp
echo ‘dois’ > ficheiro.tmp
Qual é o conteúdo
de ficheiro.tmp? Se usar alternativamente os seguintes comandos:echo ‘um’ > ficheiro.tmp
echo ‘dois’ >> ficheiro.tmp
Qual é o conteúdo
de ficheiro.tmp? Porquê?Desenvolva um script simule uma agenda telefonica, onde os dados de Nome, telefone, email, deverão ser infomados durante a sua execução, e ao final atualizados no arquivo de agenda.
- Consulte a página do manual do comando grep. Supondo que tem um ficheiro com um programa em linguagem C chamado teste.c, explique o que faz cada uma das instruções seguintes:
- grep -n main teste.c
- grep main *
- grep -v main teste.c
- grep -c main teste.c
- grep -cv main teste.c
- Consulte a página do manual do comando find. O que faz cada uma das linhas seguintes?
- find /home -name ‘trabalho.c’
- find . -name ‘*.c’ -ls
- find ~ -name ‘core’ -exec rm {} \
- Uma boa ferramenta para fazer cópia(s) de segurança do seu trabalho é o tar. Consulte a página de manual do tar e diga o que faz cada uma das seguintes linhas:
- tar cvf backup.tar .
- tar tvf backup.tar
- tar -zxvf backup.tar
Como é que pode compactar um ficheiro tar?
- Consulte a página do manual referente ao comando ps. Experimente visualizar os processos existentes no seu sistema. Pode experimentar ps e ps
-aux. - Consulte a página de manual para o comando kill.
- Experimente iniciar um processo que não faça nada durante
5 minutos: sleep 5mSe agora tentar introduzir algum comando o que acontece? Para acabar um processo que corre em “foreground” faça CTRL-C. Acabe com o processo sleep 5m. O que acontece se introduzir comandos agora? - Inicie outro processo, desta vez em “background”: sleep 5m &Tente introduzir outros comandos. O que acontece?
- Utilize o comando jobs. O que vê?
- Inicie mais dois processos em background:sleep 10m & sleep 15m &
Utilize novamente o comando jobs e analise o resultado.
- Traga o segundo processo para “foreground” com fg %2. O que aconteceu?
- Suspenda o processo com CTRL-Z. Experimente novamente o jobs.
O que vê? - Coloque o processo novamente em “background” com bg %2.
- Use o comando kill %2 e em seguida o jobs. O que vê?
- Use o comando ps para ver os processos que correm e acabe com os sleeps recorrendo
ao seu PID. Execute novamente o comando ps para verificar o
que aconteceu.
2- Desenvolva um Script Shell que ao ser executado informe a seguinte
frase “Eu estou logado como usuário …., e meu diretório é o …..” .
3- Coloque o respectivo script para funcionar, em caso de falha procure
pelos erros e realize as correções.
#!/bin/bash
# Exemplo de Script com várias opção de seleção
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