Site hosted by Angelfire.com: Build your free website today!

 

UNIX

System V

 

SUMÁRIO

1 APRESENTAÇÃO

2 INTRODUÇÃO

3 COMO ENTRAR NO SISTEMA

4 MANIPULAÇÃO DE ARQUIVOS

4.1 LISTAGEM, CRIAÇÃO E MOVIMENTAÇÃO POR DIRETÓRIOS

Comando ls

Comando mkdir

Comando rmdir

Comando cd

Comando pwd

4.2 CRIAÇÃO E LISTAGEM DE ARQUIVOS

Comando cat

Comando more

4.3 CÓPIA, REMOÇÃO E MOVIMENTAÇÃO DE ARQUIVOS

Comando cp

Comando mv

Comando rm

 

5 SEGURANÇA

Comando chmod

 

6 OBTENDO AJUDA ON-LINE

Comando man

 

7 COMANDOS DE PESQUISA

Comando grep

Comando find

 

8 COMANDOS GERAIS

Comando quota

Comando gzip

Comando gunzip

Comando pipe

Comando emacs (Editor emacs)

Comando alias

 

9 PERSONALIZANDO ÁREA DE TRABALHO

10 PROCESSOS

Comando background (&)

Comando ps

Comando kill

11 COMPILAÇÃO DE PROGRAMAS EM ‘C’

 

1 INTRODUÇÃO

Bem-vindo ao UNIX. Se você não estiver familiarizado com computadores, o UNIX é um sistema operacional, ou seja, um conjunto de programas responsável por atividades como: realizar interface entre o hardware e os programas dos usuários, criando um ambiente mais adequado ao desenvolvimento de aplicativos; gerenciar os recursos de hardware existentes. Nos computadores do laboratório de informática da UFPR, encontramos o UNIX da HP-UX System V, no qual nos baseamos para concretizar esta apostila. Porém, existem outros UNIX, como o XENIX da IBM, o BSD da Berkeley, o Linux para PC, entre outros. O comando man, que é um help on-line, pode auxiliá-lo a trabalhar nestes UNIX’s.

Lendo esta apostila, você encontrará muitos exemplos que ilustram com detalhes e os conceitos em cada capítulo. Na parte I, serão abordados conceitos e comandos básicos do sistema operacional UNIX. Na parte II você encontrará programas mais utilizados na rede Internet.

Podemos citar algumas caracteristicas do UNIX:

  • Capacidade multitarefas;
  • Capacidade multiusuários;
  • Portabilidade;
  • Ampla seleção de programas;
  • Comunicação e correio eletrônico;
  • Biblioteca de software aplicativos.

2 COMO ENTRAR NO SISTEMA

No Sistema UNIX cada usuário possui uma identificação (que é chamada de login do usuário) e uma senha que permite o acesso exclusivo para as suas respectivas áreas. Esta senha é atribuída para o usuário no momento em que ele é cadastrado no sistema. Pode ser alterada sempre que o usuário sinta necessidade, e deve ser guardada segura e sigilosamente.

Sempre que se deseje entrar no sistema, deve-se digitar seu login e em seguida a sua senha. Caso não combinem será pedido para que se digite novamente os dados. Caso se obtenha sucesso na operação de login, o sistema executará algumas operações de inicialização (como ler os arquivos de configuração) e em seguida mostrará o "prompt" dos comandos, mostrando que o sistema pode ser usado.

3 MANIPULAÇÃO DE ARQUIVOS

Uma das coisas básicas em qualquer sistema operacional é o tratamento de arquivos. Neste capítulo serão vistos os principais comandos para a manipulação de arquivos: ls, mkdir, rmdir, cd, pwd, cat, more, cp, mv, rm.

Os nomes dos arquivos e diretórios podem ter tamanho de até 64 caracteres significativos. Um detalhe importante para se saber é o da existência de arquivos ocultos. Arquivos ocultos são os arquivos que não aparecem na listagem simples do diretório. O UNIX considera ocultos todos os arquivos que começam por um ponto.

Para um completo aproveitamento do que vai ser visto, são necessários alguns conceitos básicos:

Entrada e Saída Padrão

Todo programa no UNIX tem uma entrada e uma saída. Geralmente a entrada padrão é o teclado (isto é, todos os dados que o programa precisa serão fornecidos via teclado) e a saída padrão é a tela do terminal (isto é, tudo que o programa gerar como resultado será mostrado na tela do terminal).

Mas pode-se mudar estes padrões utilizando o que se chama de redirecionamento. Os caracteres capazes de realizar isto são:

"<" modifica a entrada do programa

">" modifica a saída do programa

A forma de se utilizá-los segue abaixo:

programa > saída (tudo que for gerado será colocado em saída)

ou

programa < entrada (tudo que for necessário para o programa estará em entrada)

ou

programa < entrada > saída (o programa lê de entrada e escreve em saída)

Exemplos de como se usar o redirecionamento serão vistos no decorrer da apostila .

Ê Metacaracteres

Para representar um conjunto de nomes de arquivos podem ser utilizados caracteres coringas (os metacaracteres), que são:

? representa um caracter

* representa vários caracteres

Por exemplo:

a?e representa todos os arquivos que tem o nome de 3 caracteres sendo que o primeiro é ‘a’ e o último é ‘e’. Todos os seguintes nome fariam parte do conjunto: ale, ate, ave, ane e ame. Mas, alle não.

com* representa todos os arquivos, independente do tamanho, que começam pela sequência ‘com’. Esses arquivos fariam parte do conjunto: com, comida, comando, compra.txt e compulsorio.

Este conceito ficará melhor entendido quando forem mostrados exemplos práticos.

3.1 LISTAGEM, CRIAÇÃO E MOVIMENTAÇÃO POR DIRETÓRIOS

Os arquivos no UNIX são organizados em diretórios. Cada diretório pode ter sub-diretórios formando uma árvore de diretórios. A árvore começa no diretório que é chamado de diretório raiz (representado por uma barra "/") e vai se expandindo tanto em profundidade como em largura.

A seguir serão vistos os comandos para visualizar o conteúdo de um diretório (ls), para a criação e remoção de diretórios (mkdir e rmdir), para a movimentação por entre os diretórios (cd) e para a vizualização do nome e do caminho do diretório de trabalho atual (pwd).

 

Comando ls

Mostra o conteúdo de um diretório. Caso um arquivo seja especificado, ls mostra o seu nome e alguma outra informação requisitada. Quando nada é especificado o diretório atual é mostrado.

Sintaxe: ls [-opções] [nomes_de_arquivos_ou_diretórios]

onde as opções mais usuais são:

 

-a mostra todos os arquivos, inclusive os ocultos (começados por .)

-l mostra os arquivos com vários atributos (permissões, usuário, grupo, tamanho em bytes, data de última modificação, nome)

-R mostra recursivamente o conteúdo dos diretórios encontrados.

-F mostra como ls normal, mas indicado o tipo do arquivo:

- / : diretório

- * : executável

- @: link simbólico

Exemplos

Digite no prompt, ls e pressione a tecla <ENTER>, assim:

/home/pedro> ls

Materia anual classe trabalho

/home/pedro> _

No exemplo acima foi mostrado o conteúdo do diretório corrente, que é o /home/pedro.

O mesmo exemplo, mas utilizando a opção "-l" ficaria assim:

/home/pedro> ls -l

drwxr-xr-x daniel grad93 24 Dec 13 16:47 Materia

-rw------- daniel grad93 2439 Dec 13 16:38 anual

-rw-rw-rw- daniel grad93 4226 Nov 7 18:53 classe

-rw-rw-r-- daniel grad93 90 Dec 13 16:47 trabalho

/home/pedro> _

O primeiro caractere de cada linha indica o tipo do arquivo. Quando for "d", indica que é um diretório, quando "l" indica que é um link e quando for "-" indica um arquivo. Os outros nove próximos caracteres indicam o modo de proteção do arquivo cuja explicação será vista no próximo capítulo. O próximo campo indica o proprietário do arquivo. Em seguida vem o nome do grupo ao qual pertence o proprietário, o tamanho em bytes, a data de última alteração e o nome do arquivo.

Com a opção "-a" conseguimos ver as entradas ocultas do diretório:

 

/home/pedro> ls -a

./ ../ .cshrc .mailrc .profile Materia anual classe trabalho

/home/pedro> _

 

Pode-se também utilizar combinações de opções, como:

 

/home/pedro>ls -la

drwxr-xr-x 3 daniel grad93 1024 Dec 13 17:05 ./

drwx------ 4 daniel mail 1024 Dec 13 16:36 ../

-rw-rw-r-- 1 daniel grad93 6 Dec 13 17:04 .cshrc

-rw-rw-r-- 1 daniel grad93 123 Dec 13 17:05 .mailrc

-rw-rw-r-- 1 daniel grad93 123 Dec 13 17:05 .profile

drwxr-xr-x 2 daniel grad93 24 Dec 13 16:47 Materia

-rw------- 1 daniel grad93 2439 Dec 13 16:38 anual

-rw-rw-rw- 1 daniel grad93 4226 Nov 7 18:53 classe

-rw-rw-r-- 1 daniel grad93 90 Dec 13 16:47 trabalho

onde foram listados os atributos de todos os arquivos e diretórios presentes no diretório atual.

E para visualizar o conteúdo do diretório Materia?

/home/pedro> ls Materia

notas professor

/home/pedro> _

E para visualizar o diretório corrente e todos os sub-diretórios recursivamente?

/home/pedro> ls -R

Materia/ anual classe trabalho

./Materia:

notas professor

/home/pedro> _

Neste caso primeiramente foi listado o conteúdo do diretório corrente e em seguida o do sub-diretório existente.

Agora usando os metacaracteres para ver todos os arquivos que contenham como terceira letra a vogal ‘a’:

/home/pedro> ls ??a*

classe trabalho

/home/pedro> _

Comando mkdir

Cria um novo diretório, cujo nome deve ser especificado.

Sintaxe: mkdir [nome_do_diretório]

Exemplo

Se é necessário a criação de um novo diretório no diretório corrente, deverá ser digitada a seguinte linha de comando:

/home/pedro> mkdir novo

/home/pedro> ls -F

Materia/ anual classe novo/ trabalho

/home/pedro> _

Comando rmdir

Remove o diretório especificado, que deve estar vazio.

Sintaxe: rmdir [nome_do_diretório]

Exemplo

Para remover o diretório novo do diretório atual deverá ser feito o seguinte:

/home/pedro> rmdir novo

/home/pedro> ls -F

Materia/ anual classe trabalho

/home/pedro> _

Comando cd

Muda o diretório de trabalho atual para o diretório especificado.

Sintaxe: cd [nome_do_diretório]

Exemplos

Os seguintes comandos mudam o atual diretório de trabalho para o diretório Materia e em seguida cria um novo diretório no mesmo:

/home/pedro> cd Materia

/home/pedro/Materia> mkdir Horarios

/home/pedro/Materia> ls -F

Horarios/ notas professor

/home/pedro/Materia> _

Para ir ao diretório /home deve-se executar este comando:

/home/pedro/Materia> cd /home

/home> _

E agora para ir ao mais novo diretório criado (Horarios) fazer o seguinte:

/home> cd pedro/Materia/Horarios

/home/pedro/Materia/Horarios> _

Comando pwd

Mostra na tela o diretório de trabalho corrente.

Sintaxe: pwd

Exemplo

/home/pedro> pwd

/home/pedro

3.2 CRIAÇÃO E LISTAGEM DE ARQUIVOS

Os seguintes comandos têm por finalidade criar novos arquivos (uma das tarefas do cat), listar arquivos na tela ou em alguma outra saída especificada com o redirecionamento (cat e more) e concatenar arquivos (cat).

Comando cat

Realiza a concatenação de arquivos, ou cópia de arquivos ou simplesmente mostra o conteúdo dos arquivos na tela, dependendo dos argumentos fornecidos na linha de comando.

Sintaxes: cat [lista_de_arquivos] ou

cat [lista_de_arquivos] > [arquivo] ou

cat > [arquivo]

Exemplos

A primeira opção de sintaxe mostra o conteúdo de cada um dos arquivos na saída padrão (a tela). Por exemplo, suponhamos que existam os arquivos arq1, arq2 e arq3. Para ver o conteúdo de arq1 basta executar :

> cat arq1

este e o arq1

Caso se queira ver o conteúdo dos três arquivos juntos, digite:

> cat arq1 arq2 arq3

este e o arq1

este e o arq2

este e o arq3

A outra opção de sintaxe concatena os arquivos antes do sinal de redirecionamento e os coloca na saída especificada.

Caso queiramos criar o arquivo arq123 que contenha o conteúdo dos três arquivos anteriores:

> cat arq1 arq2 arq3 > arq123

Para visualizar a concatenação basta utilizar o primeiro exemplo dado do cat:

> cat arq123

este e o arq1

este e o arq2

este e o arq3

A útilma opção de sintaxe coloca o que vier da entrada padrão (teclado) na saída especificada. Quando se acabar de digitar os dados que irão para a saída é necessário digitar a seqüência "^d" (CRTL-d) para indicar o término.

Por exemplo, criar um aquivo arq4 e colocar nele o seu nome e em seguida mostrá-lo na tela:

> cat > arq4

meu nome é pedro

<CTRL D>

> cat arq4

meu nome é pedro

Um outro sinal de redirecionamento existente é o >> que acrescenta os dados ao final da saída especificada, diferente do > que, primeiramente apaga o conteúdo da saída e depois coloca os dados.

Por exemplo, concatenar o arq4 e o arq1 e acrescentar ao arq123 e depois mostrar o conteúdo de arq123:

> cat arq4 arq1 >> arq123

> cat arq123

este e o arq1

este e o arq2

este e o arq3

meu nome é pedro

este e o arq1

Comando more

Lista o conteúdo de um arquivo na tela, parando a cada vez que uma tela é preenchida. Ao final de cada tela aparecerá a mensagem --More--. Quando esta mensagem aparecer, pode-se apertar a barra de espaço para vizualizar a próxima tela de texto, ou pode-se teclar <ENTER> para vizualizar a próxima linha do texto ou pode-se digitar algum dos comandos que o more proporciona.

Sintaxe: more [-n] [+num_linha][+/expressão] arquivo(s)

onde:

-n usa uma janela de n linhas para mostrar o texto.

+num_linha começa a mostrar o texto a partir da linha num_linha

+/expressão começa a mostrar o texto duas linhas antes de aparecer expressão

Alguns dos vários comandos disponíveis são :

i<espaço> mostra mais i linhas, se i não for fornecido, pula para a próxima tela.

CTRL D mostra mais 11 linhas .

q ou Q sai do more.

= mostra o número da linha atual.

h mostra todos os comandos disponíveis.

i/expressão procura a i-ésima ocorrência de expressão.

in procura a i-ésima ocorrência da última expressão procurada.

' vai para a última posição onde se iniciou uma procura, se não foi realizada nenhuma, vai para o começo do texto.

!comando executa o comando especificado.

:f mostra o nome do arquivo atual e o número da linha atual.

. repete o último comando.

Exemplo

Para vizualizar um texto chamado anual, com uma janela de 10 linhas e a partir de duas linhas acima da pimeira ocorrência de "janeiro" :

> more -10 +/janeiro anual

3.3 CÓPIA, REMOÇÃO E MOVIMENTAÇÃO DE ARQUIVOS

Os comandos que serão mostrados em seguida servem para tratar arquivos, como copiar um arquivo de um diretório para outro (cp), ou apagar algum determinado arquivo (rm) ou mover arquivos de um lugar para outro (mv).

Comando cp

Copia o conteúdo de um arquivo origem para um arquivo destino.

Sintaxe: cp [-ipr] origem destino

onde:

-i pede confirmação para sobrescrever um arquivo já existente.

-p copia não só o conteúdo do arquivo origem, mas tembém a data de modificação e as permissões.

-r caso o arquivo origem seja um diretório e o destino também, copia o conteúdo de todo o diretório e sub-diretórios recursivamente para o diretório destino.

Exemplos

Para copiar o arquivo classe para o diretório Materia:

/home/pedro> cp classe ~/Materia

Agora fazer uma cópia de backup do arquivo anual:

/home/pedro> cp anual anual.bak

Fazer uma cópia de todos os arquivos do diretório Materia para o diretório /tmp:

/home/pedro> cp Materia/* /tmp

Agora copiar todos os arquivos em que a quarta letra seja u para o diretório /home/maria/tmp :

/home/pedro> cp ???u* /home/maria/tmp

Comando mv

Move um arquivo de um lugar para outro ou renomeia arquivo, dependendo dos argumentos.

Sintaxe: mv [-fi] nome novonome

onde:

-f desconsidera qualquer restrição dos modo de proteção e também omite qualquer aviso a respeito desta violação.

-i pede confirmação para sobrescrever arquivo já existente.

Exemplos

Mover o arquivo class para o diretório Materia:

> mv class Materia

Agora renomear o arquivo anual.bak para seguranca:

> mv anual.bak seguranca

Agora renomear o nome do diretório Materia para Materias:

> mv Materia Materias

Comando rm

Apaga arquivo(s) de um diretório.

Sintaxe: rm [-fir] arquivo

onde:

-f não pede confirmação.

-i pede confirmação para cada arquivo.

-r remove o conteúdo de um diretório e seus sub-diretórios recursivamente

Exemplos

Remover o arquivo seguranca do diretório corrente:

> rm -i seguranca

seguranca: ? (y/n) y

Agora remover o arquivo class do diretório Materias inibindo as mensagens:

> rm -f Materias/class

Agora remover todo o diretório Materias e seus possíveis sub-diretórios:

> rm -r Materias

directory Materias: ? (y/n) y

Materias/Horarios: ? (y/n) y

Materias/notas: ? (y/n) y

Materias/professor: ? (y/n) y

Materias: ? (y/n) y

4 SEGURANÇA

Todos arquivos/diretórios no UNIX tem uma proteção. Um arquivo pode ser configurado com relação à escrita e/ou leitura e/ou execução. As restrições podem ser feitas para o dono do arquivo, para o grupo (conjunto de usuários com características em comum) ao qual pertence o arquivo e para outros usuários que não sejam os dois anteriores. Para relembrar o que foi comentado no capítulo anterior, vamos mostrar alguns dos atributos de um arquivo:

-rwxrw-r-- 1 daniel grad93 90 Dec 13 16:47 carta.tex

Apenas foi citado que os nove caracteres (rwxrw-r--) seguidos do primeiro traço ‘-’ (ou ‘d’) eram o modo de proteção do arquivo. E, este modo significa:

  • Os três primeiros caracteres (rwx) representam as permissões do dono do arquivo (no caso, daniel).

r representa acesso para leitura (read) do arquivo.

w representa acesso para escrita (write) no arquivo.

x representa acesso para execução do arquivo.

  • Os próximos três (rw-) representam as permissões do grupo.

- representa acesso negado para execução do arquivo.

  • Os últimos três (r--) representam as permissões para os outros usuários, que no caso só têm permissão de leitura.

O próximo comando altera o modo de proteção de arquivos/diretórios.

Comando chmod

Muda o modo de proteção de um arquivo/diretório.

Sintaxe: chmod modo arquivo

O modo tem a seguinte forma:

[quem] operador permissão [operador permissão]

onde:

quem especifica-se para quem se está alterando a permissão, podendo ser o usuário (u), o grupo (g) ou outros (o).

operador pode ser ‘+’ (para acrescentar a permissão) ou ‘-’ (para retirar a permissão).

 

permissão pode ser para leitura (r), escrita (w) ou execução (x).

Exemplos

Supor que o diretório corrente tenha o seguinte conteúdo:

-rwx------ 1 daniel grad93 2439 Dec 13 16:38 anual

-rw-rw---- 1 daniel grad93 4226 Nov 7 18:53 classe

-rw-rw-r-- 1 daniel grad93 262 Dec 14 18:22 notas

drwxrwxrwx 2 daniel grad93 1024 Dec 14 18:21 novidades

-rw-rw-r-- 1 daniel grad93 105 Dec 14 18:22 professor

-rw-rw-r-- 1 daniel grad93 367 Dec 14 18:22 sala

-rw------- 1 daniel grad93 2439 Dec 14 18:58 seguranca

-rw-rw-r-- 1 daniel grad93 90 Dec 13 16:47 trabalho

Agora fazer as alterações :

  • permitir acesso de leitura do anual para o grupo e para outros

>chmod og+r anual

  • negar escrita do arquivo classe para o grupo

>chmod g-w classe

  • negar acesso geral ao arquivo trabalho para grupo e outros

>chmod go-rwx trabalho

  • permitir acesso geral ao arquivo sala para outros e grupo

>chmod go+rwx sala

Depois destas alterações, o diretório ficou assim:

-rwx---r-- 1 daniel grad93 2439 Dec 13 16:38 anual

-rw-r----- 1 daniel grad93 4226 Nov 7 18:53 classe

-rw-rw-r-- 1 daniel grad93 262 Dec 14 18:22 notas

drwxrwxrwx 2 daniel grad93 1024 Dec 14 18:21 novidades

-rw-rw-r-- 1 daniel grad93 105 Dec 14 18:22 professor

-rwxrwxrwx 1 daniel grad93 367 Dec 14 18:22 sala

-rw------- 1 daniel grad93 2439 Dec 14 18:58 seguranca

-rw------- 1 daniel grad93 90 Dec 13 16:47 trabalho

6 OBTENDO AJUDA ON-LINE

Será abordado neste capítulo o comando man, que proporciona informações a respeito de uma diversidade de assuntos.

Comando man

No sistema UNIX há uma versão on-line do manual HP-UX Reference. O man mostra partes deste manual.

Sintaxe: man -k keyword ou

man keyword

No primeiro caso, pode-se informar aguma palavra-chave e ele retorna em que parte do manual ela está. No segundo, pode-se procurar por alguma parte inteira do manual, dando como parâmetro o nome do comando ou capítulo que se deseja ler.

Exemplos

Para ver qual parte do manual trata de subtrees :

> man -k subtrees

cp(1) - copy files and directory subtrees

Agora para ver a parte do manual inteira a respeito do cp:

> man cp

O resultado desta operação fica como exercício. Examine também os comandos ls, mv, pwd, cd, etc.

7 COMANDOS DE PESQUISA

Comando grep

Este comando procura por uma expressão regular dentro de um ou mais arquivos.

Sintaxe: grep [opções] expressão [arquivos]

onde opções pode ser:

-c : Mostra o número de ocorrências da expressão.

-i : Ignora a diferença entre maiúsculas e minúsculas.

-n : Precede cada linha com seu número no arquivo.

-l : Lista apenas os nomes dos arquivos.

Exemplos

> grep -ic amigo meu_texto

> 4

> _

Procura pela ocorrência de ‘amigo’, ignorando maiúsculas e minúsculas, no arquivo meu_texto informando o número de ocorrências.

> grep -il amigo *

meu_texto

carta

importante

> _

Procura pela ocorrência de ‘amigo’, ignorando maiúsculas e minúsculas, em todos os arquivos do diretório atual, informando o nome de todos os arquivos que possuem a expressão procurada.

Comando find

Este comando faz a procura de um determinado arquivo. É possível encontrar um arquivo pelo seu nome, nome do seu dono e pelo grupo ao qual pertença.

Sintaxe: find path [expressão]

onde:

path: é o ponto de partida da procura;

expressão pode ser:

-name nome_arq: procura os arquivos com nome igual a nome_arq;

-user nome_user: procura os arquivos que pertencem ao usuário nome_user;

-group nome_grupo: procura pelos arquivos do grupo nome_grupo;

-print: mostra o path completo do arquivo

-ls: mostra todas as informações do arquivo, como tamanho, data, etc..

Exemplos

>find /home/curso -name ‘meu_arquivo’ -print

/home/curso/temp/meu_arquivo

> _

Neste exemplo procuramos pelo arquivo meu_arquivo a partir do diretório /home/curso. Utilizando a opção ‘-print’, temos como resposta a localização completa do arquivo.

>find /home/curso -name ‘ca*’ -group ‘pet’ -ls

137384 1 -rw-r--r-- 1 julio pet 506 Jul 12 16:06 /home/curso/Mail/carta

92196 0 -rw-rw-r-- 1 julio pet 210 Dec 13 13:01 /home/curso/Pet/capitulo1

203108 12 -rw-rw---- 1 julio pet 23251 Jul 12 14:26 /home/curso/Pet/cap2.tex

>_

Neste segundo exemplo procuramos, a partir de /home/curso, todos os arquivos que começam com ‘ca’ e que pertençam ao grupo pet. Utilizando a opção ‘-ls’, obtemos como resposta várias informações dos arquivos: permissões, dono, grupo a que pertence, tamanho, data de criação/atualização, etc.

8 COMANDOS GERAIS

Comando quota

Este comando indica o uso que o usuário tem do disco e seus limites.

Sintaxe: quota [-v]

O comando quota sem a opção "-v" exibe apenas um aviso indicando quota excedida; se esta for a situação do usuário. Caso sua quota exceda, você deve remover os arquivos dispensáveis das áreas indicadas, se isto não for possível, tentar compactar os arquivos; por exemplo, utilizando o comando gzip. É aconselhável verificar o diretório /tmp a procura de arquivos dispensáveis.

Exemplo

> quota -v

Filesystem usage quota limit timeleft files quota limit timeleft

/usr/soft 0 100 1000 63 0 0

/hp 13 100 1000 0 0 0

/hp/home 1901 4000 5000 202 0 0

>_

Comando gzip

Este comando compacta um ou mais arquivos. O uso de ‘*’ e ‘?’ é permitido.

Sintaxe: gzip <arquivo(s)>

Os arquivos especificados para compactação não serão armazenados em apenas um arquivo. Cada arquivo selecionado receberá a extensão .gz, indicando assim que se trata de um arquivo compactado.

Exemplo:

/home/pedro> ls

anual classe trabalho Materia carta

/home/pedro> gzip c*

/home/pedro>ls

anual classe.gz trabalho Materia carta.gz

/home/pedro>_

Comando gunzip

Utilize este comando para descompactar arquivos criados a partir do comando gzip.

Sintaxe: gunzip <arquivo.gz>

Exemplo

/home/pedro>ls

anual classe.gz trabalho Materia carta.gz

/home/pedro>gunzip classe.gz

/home/pedro>ls

anual classe trabalho Materia carta.gz

/home/pedro>_

Comando pipe

O comando ‘|’ (pipe) tem como objetivo fazer a ligação da saída de um comando com a entrada de outro comando. Isto é chamado redirecionamento. A melhor forma de entender é com exemplo.

Exemplo

> ls -l

total 20

drwxr-xr-x 13 arpa 2560 Dec 12 17:21 arpa/

drwxr-xr-x 15 berutti 1024 Dec 12 18:27 berutti/

drwxr-xr-x 4 borba 512 Jul 27 1993 borba/

drwxr-xr-x 3 catj 512 Dec 7 21:27 catj/

drwxr-xr-x 3 clevan 512 Nov 11 20:47 clevan/

drwxrwxrwx 6 curso 512 Nov 8 19:33 curso94/

drwxr-xr-x 6 dehne 1024 Jan 27 1994 dehne/

lrwxrwxrwx 1 root 23 Sep 26 17:32 denilson/

drwxr-xr-x 8 dorothea 512 Jul 15 03:30 dorothea/

drwxr-xr-x 13 firk 1024 Dec 12 14:14 firk/

lrwxrwxrwx 1 root 21 Oct 18 10:01 foryta/

drwxr-xr-x 2 guest 512 Aug 25 19:17 guest/

lrwxrwxrwx 1 root 22 Jul 26 1993 irapuru

drwx--x--x 9 jcohen 1024 Oct 28 14:45 jcohen/

drwxr-xr-x 2 59000 512 Jun 3 1994 prppg/

drwxr-xr-x 5 rick 512 Sep 23 00:20 rick/

drwxr-xr-x 2 rnpnoc 512 Dec 17 1992 rnpnoc/

drwxr-xr-x 2 rpp 512 Nov 22 10:51 rpp/

> ls -l | grep ‘Jul’

drwxr-xr-x 4 borba 512 Jul 27 1993 borba/

drwxr-xr-x 8 dorothea 512 Jul 15 03:30 dorothea/

lrwxrwxrwx 1 root 22 Jul 26 1993 irapuru/

Neste exemplo, o primeiro comando simplesmente listou todos os arquivos do diretório enviando o resultado para a tela. O segundo comando por sua vez, também listou os arquivos do diretório, mas enviando a saída para o comando grep (visto anteriormente) que selecionou, no nosso caso, aquelas linhas onde a expressão ‘Jul’ ocorria.

Comando emacs (Editor emacs)

Para utilizar o editor emacs, digite emacs na linha de comando. O editor mostrará um conjunto de informações bastante úteis. Como editor, possue as funções comuns e algumas bastantes avançadas. Para acessar estas funções devemos ter conhecimento de um conjunto de teclas. Abaixo está relacionada as mais usadas e importantes:

Obs.: O sinal de mais (+) não faz parte do comando. Representa associação de duas teclas, pressionadas juntas.

Ctrl+v

Rola uma página para baixo;

ESC+v

Rola uma página para cima;

Ctrl+l

Coloca o texto próximo ao cursor no meio da tela;

ESC+a

Vai para o início da sentença;

ESC+e

Vai para o fim da sentença;

ESC+<

Vai para o início do arquivo;

ESC+>

Vai para o fim do arquivo;

Ctrl+g

Desfaz um conjunto de teclas;

Ctrl+K

Apaga da posição do cursor até o final da linha (pode ser revertido);

Ctrl+y

Cola o que Ctrl+K cortou na posição atual do cursor;

Ctrl+x u

Desfaz uma ação anterior;

Ctrl+x Ctrl+f

Abre um arquivo;

Ctrl+x Ctrl+s

Salva o arquivo;

Ctrl+X Ctrl+c

Sai do emacs;

Ctrl+h

Exibe uma tela de help;

Ctrl+s

Procura para frente, proxima ocorrência Ctrl+s novamente;

Ctrl+r

Procura para trás, próxima ocorrência Ctrl+r novamente.

Comando alias

O comando alias tem como objetivo a definição de uma linha de comando.

Sintaxe: alias [nome [definição] ]

onde:

nome: é o nome do alias que estamos criando;

definição: é uma lista de palavras que contém uma determinada função.

Se definição for omitida, o comando alias exibirá a definição corrente de nome. Se nome e definição forem omitidos, o comando alias exibirá todos os alias.

Exemplo

>alias dir ls -l

>alias dir

ls -l

drwxr-xr-x 4 borba 512 Jul 27 1993 borba

drwxr-xr-x 8 dorothea 512 Jul 15 03:30 dorothea

>_

Se setar um alias em linha de comando, como no exemplo, este só terá efeito nesta seção, ou seja, quando abandonar o sistema este alias será perdido. Porém, se quiser um alias permanente, o melhor lugar é em seu .cshrc.

9 PERSONALIZANDO ÁREA DE TRABALHO

Através da configuração das variáveis de ambiente no arquivo .cshrc configura-se a área de trabalho. Além de configurar as variáveis de ambiente utilizamos o arquivo .cshrc para inserir comandos que achamos necessários.

Algumas variáveis de ambiente:

PATH : Utilizada para configurar o caminho de procura dos programas executávesi;

MANPATH : Utilizada para indicar a localização dos arquivos de ajuda utilizados pelo man.

cwd : É o diretório corrente;

USER : Usuário corrente;

HOME : Define o diretório local (/home/curso);

SHELL : Define a shell padrão;

Um comando muito utilizado no arquivo .cshrc é o alias. Veja exemplo abaixo.

Fragmento de um arquivo .cshrc com algumas variáveis de ambiente configuradas:

....

set path = (/usr/local /usr/local/bin usr/bin /usr/etc /usr/bin/X11)

setenv MANPATH /usr/openwin/share/man:/usr/local/man:/usr/man

alias cd cd \!*;set prompt="`hostname` A:`echo $cwd`> "‘

if ($?USER == 0 || $?prompt == 0) exit

.....

10 PROCESSOS

Como o UNIX é um sistema multitarefa, todo o seu funcionamento é através de processos. Um processo é um programa em execução, que utiliza-se de recursos da máquina em tempos determinados.

Comando background (&)

Um processo pode ser executado em primeiro ou segundo plano. Em primeiro plano é o que estamos mais acostumados. Quando digitamos um texto num editor estamos trabalhando em primeiro plano. Processos em segundo plano são normalmente processos que levarão muito tempo para serem executados, portanto, colocados em segundo plano para que não seja necessário ficar esperando até que ele termine sua execução e, possamos continuar usando o computador.

Para colocar um processo rodando em background basta que seja colocado um ‘&’ no final do comando.

Exemplo

> who & > tmp

[1]3111

> cat tmp

dief ttyp0 Dec 13 13:59 (harpia)

julio ttyp1 Dec 13 14:11 (condor)

leandro ttyp2 Dec 13 14:23 (abutre)

jonatas ttyp3 Dec 13 14:32 (gaviao)

> _

Comando ps

O comando ps exibe o ‘status’ dos processos correntes.

Sintaxe: ps [opções]

onde opções pode ser:

-a : Inclue informações sobre processos pertencentes a outros.

-u: Exibe os campos: USER, %CPU, MEM, SZ, RSS e START.

-x: Inclue processos não associados com o terminal.

Exemplo

>ps -ef

USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND

root 427 30.0 1.4 28 689 S R 11:11 0:00 rlogin aguia

root 386 10.0 0.1 24 4 ? S 15:07 0:00 in.rlogind

renato 372 0.0 0.0 25 60 pa TW 15:06 0:00 -bin/tcsh -i

renato 370 0.0 0.0 35 560 pa TW 15:06 0:00 porlatex ec-t

julio 382 0.0 1.5 34 4460 p4 S 15:07 0:00 -tcsh (tcsh)

root 483 0.0 0.0 24 0 ? IW 15:10 0:00 in.rlogind

root 472 0.0 0.1 48 24 p 6 S 15:11 0:00 rlogin aguia

>_

Sendo:

USER: Nome do dono do processo;

PID: Número inteiro identificador do processo;

%CPU: Quantidade de CPU utilizada pelo processo.

Comando kill

Este comando elimina um processo ativo pertencente ao usuário.

Quando eliminar processos:

  • Quando um processo está provocando queda do desempenho;
  • Um processo está ‘pendurado’;
  • O terminal está travado.

Sintaxe: kill PID

onde PID é o número inteiro identificador do processo (veja comando ps)

Exemplo

>ps

3862 p4 S 0:01 -tcsh (tcsh)

5446 p4 S 0:00 sleep 20

5447 p4 R 0:00 ps

5042 p9 IW 0:00 -tcsh (tcsh)

>kill 5446

[1] Terminated sleep 20

>ps

3862 p4 S 0:01 -tcsh (tcsh)

5447 p4 R 0:00 ps

5042 p9 IW 0:00 -tcsh (tcsh)

>_

Com o comando ps identificamos o PID dos processos ativos. Utilizando o comando kill, eliminamos o processo 5446.

Este comando poderá ser útil também quando acontecer algum problema em seu programa que cause pane (trave). Para solucionar este problema basta logar-se em outra máquina, observar os processos que estão rodando na máquina ( ps ) que travou e eliminá-los ( kill ) .

11 COMPILAÇÃO DE PROGRAMAS EM ‘C’

O sistema UNIX possui o compilador C como parte de seu sistema. O próprio UNIX foi desenvolvido em C. Para compilar programas em C basta usar o comando cc (em minúsculo).

Sintaxe: cc [-o arq_saida] [-c] [-g] [-I caminho] [-LDiretório] arq_origem

onde:

-o : Gera o arquivo executável com nome arq_saida. Se a opção ‘-o’ for suprimida será criado um arquivo executável a.out.

-c : Apenas compila gerando um arquivo com terminação .o para cada arquivo de entrada. Um único arquivo objeto pode ser gerado usando a opção ‘-o’.

-g : Para permitir a utilização posterior do depurador ( " Debuger ");

-I : Adiciona caminho na lista de diretórios onde deve buscar os arquivos #include.

-L : Adiciona Diretório na lista de diretórios de bibliotecas.

arq_origem: é o nome(s) do(s) arquivo(s) que contém o programa fonte.

Exemplos

> cc -o teste teste.c

> ls

teste teste.c

> _

Se nenhum erro for identificado o arquivo teste será criado e poderá ser executado em seguida, digitando teste na linha de comando.

> cc teste.c

> _

O arquivo a.out será criado pois não foi indicado um arquivo de saída, através da opção ‘-o’, neste segundo exemplo. O arquivo a.out também poderá ser executado a partir deste momento.

> ls

Mail/ Util/hello.c a.out magn teste.c

Pet/ Xwindow/ carta.txt mosaic

> a.out

Isto e’ apenas um teste ...

>