Utilizando a página de manual do comando ps, descreva a diferença entre o comando ps –aux e ps –ef. Em que sintaxe cada um deles é visto?
Exercício de fixação 2 e
Visualização de processos em tempo real
Qual comando é usado como um monitor do sistema que mostra a atividade do processador em tempo real, exibindo as tarefas que estão sendo executadas na CPU e fornecendo uma interface amigável para o gerenciamento de processos?
(A) grep (B) mkdir (C) os (D) top (E) egrep
Exercício de fixação 3 e
Visualização de árvore de processos
Qual comando é usado para visualizar a árvore de processos? (A) apple
(B) tree (C) pstree (D) bg (E) fg
Ca pí tu lo 6 - S he ll
Shell Script
q
Shell Script é uma linguagem de programação baseada no conceito de interpretação, que pode ser utilizada na linha de comando do Shell. Os programas escritos nessa lin- guagem são chamados de scripts.
1 Com os comandos separados por ( ; ):
# cd /home/usuario/backup/; tar cvf bkk.tar /var/log/*.log Ou pode ser utilizada para automatizar sequências de comandos em arquivos executá- veis especiais.
1 Com os comandos separados por ( ; )ou colocados um em cada linha:
# file arquivo # utilizado para ver se um arquivo é script. Com o objetivo de automatizar sequências de tarefas que serão repetidas várias vezes, encapsulamos em arquivos executáveis especiais. Neles podemos escrever sequências de comandos do Sistema Operacional, tal como fazemos no Shell, adicionando também a lógica de programação.
Por exemplo, uma das atividades rotineiras de um administrador de sistemas Linux é realizar operações de backup, mantendo cópias de segurança dos arquivos importantes. Supondo que vamos fazer um backup bem simples de, por exemplo, arquivos .log gerados pasta /var/log/, e compactá-los, gerando um arquivo com extensão .tar, colocando-o em um diretório chamado backup, na área de usuário. Uma sequência possível de comandos a ser digitada no Shell seria a seguinte:
# cd /home/usuario/backup # tar cvf bk.tar /var/log/*.log
Supõe-se aqui que o usuário atual seja chamado de “usuario” e que exista o diretório backup já previamente criado.
1 Se tal atividade for realizada periodicamente, é interessante que seja criado um programa para automatizar essa tarefa. No Shell, os programas são interpretados, e por essa carac- terística são chamados de scripts. Assim, os scripts nada mais são do que programas con- tendo sequências de comandos que são interpretados pelo Shell, linha após linha. O script é um arquivo executável, com diretrizes na linha inicial que diz qual Shell deverá interpretar aquela sequência de comandos quando o arquivo for executado. Essa linha deve ser a primeira linha do script e começa com os caracteres #! (chamados de shebang) seguidos do caminho na árvore de diretórios no qual o Shell será encontrado e qual será ele.
O sistema de arquivos do Linux identifica um script através do conteúdo dos seus dois pri- meiros bytes. No entanto, nem todos os arquivos são identificados através do conteúdo dos seus dois primeiros bytes. Para verificar o tipo de um arquivo, pode-se utilizar o comando file, cuja sintaxe é:
In tr od uç ão ao L in ux
1 Para indicar o Shell bash como o interpretador daquela sequência de comandos contida no arquivo, supondo que o interpretador bash esteja no diretório /bin, devemos ter a primeira linha como:
#!/bin/bash
1 Podemos então, criar um arquivo chamando de, por exemplo, “scriptBackup”, e nele colocar os comandos necessários para realizar o backup dos arquivos:
#!/bin/bash
cd /home/usuario/backup # aqui você coloca o comentário
tar cvf bk.tar /var/log/*.log
Por padrão, os comandos são colocados um em cada linha. Para colocá-los na mesma linha, basta separá-los com “;”. Para colocar linhas que não devem ser interpretadas, ou seja, acrescentar comentários no script, basta introduzir o caractere # antes da frase.
1 Para executar a sequência de comandos do script, basta executar o arquivo na linha de comando do Shell:
# ./scriptBackup
Lembre-se de que o arquivo deve ser executável. Para tanto, devemos dar a permissão de “x” para o arquivo, usando, por exemplo, o comando # chmod +x scriptBackup. 1 Podemos ainda, incrementar o script, adicionando mensagens para que o usuário acom-
panhe o que está sendo feito e também, por exemplo, incrementar o nome do arquivo de backup com a data, usando o comando date.
#!/bin/bash
echo “Realizando o backup dos arquivos de Log” cd /home/usuario/backup
tar cvf bk`date +%d%m%Y`.tar /var/log/*.log echo “Backup concluído”
O comando date +%d%m%Y trará a data atual do sistema no formato dia, mês e ano em quatro dígitos. Ele está entre “crases” para indicar ao Shell que ele deve ser interpretado e o resultado dele deve ser colocado naquele ponto. Assim, se a data atual do sistema for 08/02/2012, o nome do arquivo a ser criado será bk08022012.tar.
1 Outro exemplo de script, cuja sequência de comandos busca por informações do usuário atual, pode ser:
#!/bin/bash
echo “Informações do usuário atual” cat /etc/passwd | grep `whoami`
Ca pí tu lo 6 - S he ll
1 Temos, na linha 3, três comandos que devem ser executados nessa ordem. O comando
cat listará o arquivo passwd que contém informações sobre todos os usuários do sistema;
o resultado do comando servirá de entrada para o comando grep, que tem por propósito filtrar todas as linhas que contenham o padrão do parâmetro. No entanto esse padrão só será conhecido após a execução do comando whoami, que busca qual o usuário atual. Por isso ele está entre “crases”.