|
UNIX System V 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
6 OBTENDO AJUDA ON-LINE
7 COMANDOS DE PESQUISA
8 COMANDOS GERAIS
9 PERSONALIZANDO ÁREA DE TRABALHO 10 PROCESSOS
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:
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. 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
ou
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:
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).
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 .)
-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 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> _ Cria um novo diretório, cujo nome deve ser especificado. Sintaxe: mkdir [nome_do_diretório] 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> _ Remove o diretório especificado, que deve estar vazio. Sintaxe: rmdir [nome_do_diretório] 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> _ Muda o diretório de trabalho atual para o diretório especificado. Sintaxe: cd [nome_do_diretório] 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> _ Mostra na tela o diretório de trabalho corrente. Sintaxe: pwd /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). 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] 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 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
Alguns dos vários comandos disponíveis são :
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.
!comando executa o comando especificado. :f mostra o nome do arquivo atual e o número da linha atual. . repete o último comando. 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). 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.
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 Move um arquivo de um lugar para outro ou renomeia arquivo, dependendo dos argumentos. Sintaxe: mv [-fi] nome novonome onde:
-i pede confirmação para sobrescrever arquivo já existente. 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 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 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 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:
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:
r representa acesso para leitura (read) do arquivo. w representa acesso para escrita (write) no arquivo. x representa acesso para execução do arquivo.
- representa acesso negado para execução do arquivo.
O próximo comando altera o modo de proteção de arquivos/diretórios. 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:
permissão pode ser para leitura (r), escrita (w) ou execução (x). 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 :
>chmod og+r anual
>chmod g-w classe
>chmod go-rwx trabalho
>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 Será abordado neste capítulo o comando man, que proporciona informações a respeito de uma diversidade de assuntos. 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. 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. 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. > 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. 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.. >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. 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. > 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 >_ 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. /home/pedro> ls anual classe trabalho Materia carta /home/pedro> gzip c* /home/pedro>ls anual classe.gz trabalho Materia carta.gz /home/pedro>_ Utilize este comando para descompactar arquivos criados a partir do comando gzip. Sintaxe: gunzip <arquivo.gz> /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>_ 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. > 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. 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.
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. >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 PROCESSOSComo 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. 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. > 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 psO 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. >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. Este comando elimina um processo ativo pertencente ao usuário. Quando eliminar processos:
Sintaxe: kill PID onde PID é o número inteiro identificador do processo (veja comando ps) >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. > 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 ... > |