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