next up previous
Next: Uma Lista de Comandos Up: FMA 215 Aula 12: Previous: Tarefas

Problemas e Dicas

  1. Produza uma lista em ordem alfabética contendo todos os nomes dos usuários do sistema. Utilize o comando sort, que serve para colocar linhas em ordem num arquivo ou stream de dados. Dê uma olhada nas suas páginas de manual. O comando tail também poderá ser útil.

  2. Utilizando vários dos elementos que foram explorados nas tarefas desta apostila, determine a soma de todos os números de usuário dos alunos que já têm contas no sistema. Determine também o valor médio destes números, dentro da precisão permitida pelo truncamento que pode acontecer na aritmética inteira.

  3. Escreva um programa na linha de comando para calcular o fatorial de 10. Faça com que ele escreva na tela todos os fatoriais dos números de 1 a 10. Veja se você consegue descobrir qual é o maior número cujo fatorial é passível de cálculo desta forma, por aritmética inteira num computador de 32 bits como os Pentiums que temos disponíveis.

  4. Escreva um programa na linha de comando para listar todos os 254 possíveis endereços da subrede 192.168.0.n onde n é um número entre 1 e 254, junto com os correspondentes nomes das máquinas, se elas existirem, ou seja, no caso dos endereços que estiverem em uso. Use um loop do tipo while com um contador. Lembre-se de que o comando host, com um argumento que seja um dos endereços numéricos da rede, retorna o nome da máquina correspondente, se ela existe. Filtre o output deste comando com os comandos grep e cut de forma a extrair dele apenas o nome da máquina. O comando echo -n será útil para a formatação adequada do output.

  5. Usando o comando ping -c 1 <endereço>, que envia um único pacote ao endereço discriminado, escreva um programa, no estilo do programa do ítem anterior, que liste os endereços e indique quais deles pertencem a máquinas que estão atualmente no ar e, portanto, respondem ao comando ping. A estrutura do loop e da filtragem deverá ser muito parecida com a do caso anterior, com o uso dos comandos grep e cut. Mais uma vez, para conseguir uma boa formatação do output, o comando echo -n deverá ser útil. Observe que este programa levará algum tempo para rodar, devido aos ``timeouts'' do comando ping nos casos em que os endereços tentados não estiverem em uso.

    Caso você queira incluir um caracter [Tab], por motivos de formatação, dentro de uma string delimitada por aspas na linha de comando, você pode fazer isto usando o sistema de ``quote'' da linha de comando, que é o caracter ^V. Qualquer caracter, inclusive um ``tab'', que seja digitado logo após um ^V não será interpretado de forma especial pela shell, como acontece normalmente com a tecla [Tab], que é interpretada como o comando de completamento. Em vez de ser interpretado, o caracter será inserido na linha de comando, no ponto onde estiver o cursor.

  6. Descubra como usar o sed para trocar colunas num arquivo, usando o arquivo /etc/passwd do socrates como exemplo. Você terá de fazer uso mais sofisticado de regexps. Em particular, você deve usar a sintaxe \(...\) para marcar sub-expressões dentro do primeiro par de barras verticais do argumento da opção -e do sed, bem como a sintaxe \1, \2, etc para as colocar dentro do segundo par de barras verticais. Como exercício, inverta completamente a ordem dos campos daquele arquivo.


next up previous
Next: Uma Lista de Comandos Up: FMA 215 Aula 12: Previous: Tarefas