COMPANHIA DE INFORMÁTICA DO PARANÁ DISOP - DIVISÃO DE SUPORTE E PROJETOS DE AMBIENTES INFORMATIZADOS DOCUMENTO AUTHOR DATA curso.doc [email protected] 10/03/98 SISTEMA OPERACIONAL UNIX HISTÓRICO CARACTERÍSTICAS Capacidade Multiusuária Capacidade Multitarefa Spooler de Impressão Portabilidade Comunicação ESTRUTURA DO SISTEMA Kernel Shell Arquitetura do Sistema Sistemas de Arquivos Arquivos Arquivos diretórios Arquivos Especiais Proteção Administração do Sistema Usuários Sessões Ambiente Unix Acesso ao Sistema Redirecionamento Conexões e canalizações COMANDOS Formato Geral Comandos de Manipulação de Diretórios e Arquivos Comandos de Manipulação de Textos Comandos de Manipulação de Impressão Comandos Genéricos EDITOR DE TEXTO VI Movimentação do Cursor Movimentação da Janela de Edição Inserção de Texto Remoção de Texto Pesquisa de Texto Outros Recursos Comandos de Deleção Comandos de Troca Comandos de Gravação e Saída do Editor. HISTÓRICO 1969 Beel Laboratories da AT&T sai do projeto Multics Ken Thompson desenvolve a primeira versão monotarefa/monousuário do UNIX em um Digital PDP-7 Dennis Ritchie junta-se a Thompson Primeira Versão do UNIX multitarefa escrita em ASSEMBLY no PDP-7 1971 O UNIX é portado para o PDP-11/20, escrito em linguagem B subconjunto de BCPL 1973 Reescrito em Linguagem C num PDP-11/70 [Portabilidade] Versão 5 licenciada com fontes Preço Simbólico para Universidades 1975 É lançada a versão 6 Ken Thompson passa um ano na Universidade de Berkeley como professor convidado 1977 É lançado o BSD-UNIX (Berkeley System Distribution), o primeiro Sistema UNIX com suporte comercial Em Berkeley foram desenvolvidos diversos recursos para o Sistema UNIX: Editor VI C-Shell INGRESS [Banco de Dados] 1979 É lançada a versão 7 Surgem vários UNIX - Like com suporte comercial. Dentre eles , destaca-se o XENIX da Microsoft 1981 Fim do acordo de pesquisa entre AT&T e o governo americano. A Bell Laboratories entra no mercado de Informática 1983 Lançamento do System V com a incorporação de recursos necessários para o sucesso comercial UNIX: Lock de registro de arquivos Memória compartilhada Semáforos Filas de Mensagens Lock de Programas na memória CARACTERÍSTICAS CAPACIDADE MULTIUSUÁRIO A capacidade multiusuário do UNIX significa que vários usuários do sistema podem ter acesso aos mesmos dados simultaneamente. Ou seja várias pessoas envolvidas em projetos comuns podem ter acesso uma aos dados das outras. O UNIX suporta esquemas de proteção embutidos, como senhas e permissões para arquivos. Isso permite que cada usuário de um grupo tenha sua conta individual com seu próprio diretório de entrada para acesso. CAPACIDADE MULTITAREFA O UNIX suporta a execução simultânea de vários programas em um mesmo computador. Isso significa que enquanto você executa um programa aplicativo, como uma planilha eletrônica , você pode usar outros aplicativos, como um editor de texto, para rascunhar uma carta e ainda receber correspondência eletrônica sem interferência em seu trabalho. SPOOLER DE IMPRESSÃO O Sistema UNIX System V tem como implementação para administração de impressão recurso denominado “SPOOLER de IMPRESSÃO”. Este recurso permite que o sistema operacional gerencie as impressoras cadastradas, controlando a fila de pedidos das mesmas. Permite, também a configuração de recursos como salto de página, label de relatórios com data de emissão, usuário que emitiu e outros recursos. Existe um processo encarregado de verificar continuamente se existe algum pedido de impressão. PORTABILIDADE Um dos pontos fortes do Sistema Operacional UNIX é sua portabilidade. Como o UNIX é escrito em Linguagem C ele pode ser portado para outros sistemas de computadores. Por este motivo temos os Sistemas UNIX para plataforma Intel, RISC IBM, RISC HP, RISC SUN e outros. COMUNICAÇÃO O Sistema UNIX possui vários programas de comunicação. O programa MAIL é usado para enviar e receber mensagens eletrônicas, permitindo que usuários de seu computador e de outros computadores transfiram mensagens. As mensagens enviadas por outros usuários são colocadas em sua caixa de postal e você pode lê-las uma de cada vez, de acordo com sua disponibilidade. O programa WRITE pode comunicar diretamente com um outro usuário que esteja ligado ao seu sistema UNIX. Acessando este comando tudo que você digitar aparece no terminal receptor. Se o receptor também acessar o comando WRITE, uma comunicação bidirecional estará estabelecida. Tudo que for digitado em um terminal aparecerá diretamente no terminal do outro usuário. ESTRUTURA KERNEL O KERNEL ou núcleo é o coração do sistema operacional, controlando o hardware e na verdade ligando e desligando partes do computador ao comando de um programa. Todos os Sistemas Operacionais têm um KERNEL, embora ele possa ter outros nomes. Por exemplo quando um usuário digita o comando “ls” [para listar nomes dos arquivos e sub-diretórios contidos em seu diretório], o KERNEL direciona o computador para a leitura dos nomes dos arquivos no disco e os coloca na tela para que o usuário os veja. SHELL É o programa que conecta e interpreta os comandos digitados por um usuário. Ele interpreta os pedidos do usuário, chama programas em memória para executá-los individualmente ou em uma seqüência chamada PIPE. O SHELL fornece uma conexão fácil entre pessoas que “falam” línguas diferentes, fica entre o usuário e o KERNEL. Ele fala tanto a linguagem do usuário quanto a de máquina entendida pelo computador. O programa SHELL interpreta os comandos que o usuário digita quando trabalha com sistema operacional e os traduz para comandos que o KERNEL compreende. O SHELL diz ao KERNEL para fazer o trabalho que o usuário solicitou, eliminando a necessidade do usuário ter de falar com o KERNEL diretamente em uma linguagem que ele não entenda. ARQUITETURA DO SISTEMA USUÁRIO SHELL KERNEL UTILITÁRIOS RECURSOS ADICIONAIS COMPILADORES NFS X25 SISTEMAS DE ARQUIVO C PASCAL COBOL FERRAMENTAS GERAIS pr grep find EDITORES DE TEXTO VI ED DESENVOL. DE APLICAÇÕES ORACLE SYBASE Um arquivo é uma unidade de dados que é armazenado em disco magnético ou fita. O nome do arquivo identifica-o de forma exclusiva. O diretório é um tipo especial de arquivo que contém a lista dos nomes dos arquivos. O Sistema UNIX de arquivamento permite uma estrutura hierárquica. E possui os seguintes arquivos característicos: / /etc /etc /bin /usr /dev /lib /tmp /bin /dev /usr /lib /tmp Comandos de Administração do Sistema Comandos UNIX de uso comum Diretórios de Administração, Comandos , Contas de Usuários Arquivos de dispositivos Biblioteca para programação C Armazenamento temporário ARQUIVOS Toda e qualquer informação armazenada em um sistema UNIX utiliza uma estrutura denominada arquivo. Existem no UNIX três tipos de arquivos: comum, diretório e especial. O nome de cada arquivo deve ter no máximo 14 caracteres e o tipo do arquivo é identificado pelo primeiro caracter da listagem gerada pelo comando “ls -l”. EXEMPLO: - arquivo comum -r-xr-xr-x d bin 25684 ago 22 1997 find 3 root root 704 fev 13 1997 notes sys 3,0 fev 23 08.21 wch0 arquivos especiais b--x--x--OBS: bin arquivo diretório drwxrwxrwx c, b 1 1 root Arquivos especiais são arquivos de interfaces entre dispositivos lógicos e físicos. b c Acesso a bloco Acesso a caracter ARQUIVOS DIRETÓRIO Um arquivo diretório armazena os nomes dos arquivos agrupados por ele em um ponteiro indicando onde encontram as informações sobre arquivos. A criação e manipulação de um arquivo diretório são feitas através de programas utilitários. ARQUIVOS ESPECIAIS Um arquivo especial é interface entre os sistemas de arquivos e a rotina do sistema operacional, que controla um dispositivo periférico. Para cada dispositivo periférico presente na máquina deve existir um arquivo especial. Por convenção os arquivos especiais ficam no diretório /dev e os nomes são constituídos por um símbolo que identifica o tipo do periférico e por um número que seleciona uma lógica do dispositivo. PROTEÇÃO Normalmente todo tipo de arquivo contém informações que não devem ser acessadas por qualquer usuário. Para atender a esta necessidade, o UNIX estabeleceu os seguintes modos de permissão nos arquivos. leitura gravação execução (r) (w) (x) Estas permissões existem em nível de usuário, grupo de usuários e outros grupos e podem ser alteradas através do comando chmod. ADMINISTRAÇÃO DE SISTEMA Este bloco é representado por um grupo restrito de usuários que tem por atividade a administração técnica da instalação do servidor. Ao administrador cabe a responsabilidade de cadastrar novos usuários com suas limitações de atuação, bem como exercer a auditoria sobre as atividades de usuário. O administrador é um superusuário, uma categoria de usuário que possui níveis de atuação ilimitada. USUÁRIOS Em contraste com o superusuário, existem usuários formados por analistas, programadores, operadores e usuários finais. As suas atuações se restringem às atividades especificas de cada um ou ao grupo a que pertencem. Existe um local na estrutura interna do UNIX onde são registradas as informações relativas a um usuário. Seu nome, senha de acesso, diretório de trabalho, identificação e outras informações. SESSÕES O conceito de sessão se refere à parcela de tempo em que um dado sistema permanece à disposição do usuário. A sessão se inicia quando um usuário solicita acesso ao sistema [login] e se encerra quando o usuário solicita o seu desvinculamento do sistema [logout]. AMBIENTE UNIX Convencionamos como Ambiente UNIX a totalidade dos recursos disponíveis num servidor UNIX. Isto inclui sistema operacional, software adicionais, estruturas de arquivo, hierarquias, informações armazenadas, etc. O administrador do sistema UNIX prepara um ambiente de trabalho para cada usuário do sistema. Cada ambiente possui a particularidade que melhor atende as necessidades de cada usuário. Para ser um usuário UNIX é necessário ser cadastrado através de um nome ou conta. Este cadastro é efetuado pelo administrador do sistema. ACESSO AO SISTEMA Login : aluno passwd: ***** $ ls arquivo $ arquivo2 aluno1 REDIRECIONAMENTO O sistema UNIX tem como entrada padrão o teclado e como saída padrão o terminal do usuário. Através do redirecionamento, o usuário pode alterar o padrão de entrada e saída do sistema. O redirecionamento é representado pelos caracteres: > < >> redirecionamento da saída redirecionamento da entrada redirecionamento da saída com acréscimo no final do arquivo se este já existir. [APPEND] EXEMPLOS Redirecionamento da saída $ cat arquivo >arquivo2 Ao invés do arquivo1 ser exibido na tela, sua saída original, o conteúdo do arquivo é armazenada em arquivo2. $ who >usuários O arquivo usuários passa a ter armazenada a relação de todos os usuários ativos. Redirecionamento da entrada $ wc -l < usuarios O arquivo usuários é direcionado como entrada para o contador [wc] com a opção de contar linhas [-l], e temos como resultado o número de usuários. Redirecionamento da saída com acréscimo no final do arquivo se este já existir. [APPEND] $ cat arquivo >> arquivo2 O conteúdo do arquivo é adicionado em arquivo2. COMANDOS FORMATO GERAL comando [ -opções ] [ argumentos ] OBS: Comandos com nomes curtos Maiúsculas diferem de minúsculas Não existe conceito de extensão Metacaracteres EXEMPLO $ ls -l arq* -r-xr-xr-x -r-xr-xr-x 1 bin bin 1 bin bin 25684 jan 23456 fev 22 10 1997 arquivo1 1997 arquivo2 COMANDOS DE MANIPULAÇÃO DE DIRETÓRIOS E ARQUIVOS NOME: pwd SINTAXE: pwd DESCRIÇÃO: indicação do diretório de trabalho atual EXEMPLO: pwd NOME: cd SINTAXE: cd [diretório] DESCRIÇÃO: navegação entre diretórios EXEMPLO: cd .. NOME: mkdir SINTAXE: mkdir [diretório] DESCRIÇÃO: criação de diretórios EXEMPLO: mkdir curso NOME: rmdir SINTAXE: rmdir [diretório] DESCRIÇÃO: remoção de diretórios EXEMPLO: rmdir curso NOME: ls SINTAXE: ls [ -opções ] [ argumentos ] DESCRIÇÃO: listagem dos diretórios/arquivos EXEMPLO: ls -l NOME: cat SINTAXE: cat [arquivo] DESCRIÇÃO: listagem do conteúdo do arquivo indicado sem paginação EXEMPLO: cat arquivo1 NOME: mv SINTAXE: mv arquivo1 arquivo2 DESCRIÇÃO: renomeia arquivos EXEMPLO: mv arquivo1 arquivo2 NOME: cp SINTAXE: cp arquivo1 arquivo2 DESCRIÇÃO: cópia de arquivos EXEMPLO: cp arquivo2 arquivo3 NOME: rm SINTAXE: rm arquivo1 arquivo2 4DESCRIÇÃO: remoção de arquivos EXEMPLO: rm arquivo3 NOME: wc SINTAXE: wc [ -opções ] [ argumentos ] DESCRIÇÃO: contador de palavras/linhas EXEMPLO: wc -l arquivo2 COMANDOS DE MANIPULAÇÃO DE TEXTOS NOME: grep SINTAXE: grep [ -opções ] [ argumentos ] DESCRIÇÃO: pesquisa em textos EXEMPLO: grep teste arquivo2 NOME: tail SINTAXE: tail [ -opções ] [ argumentos ] DESCRIÇÃO: exibição de linhas de um texto EXEMPLO: tail -10 arquivo2 NOME: pr SINTAXE: pr [ -opções ] [ argumentos ] DESCRIÇÃO: paginação de textos EXEMPLO: pr arquivo2 NOME: pg SINTAXE: pg [ -opções ] [ argumentos ] DESCRIÇÃO: exibição de texto tela a tela EXEMPLO: pg arquivo2 COMANDOS DE MANIPULAÇÃO DE IMPRESSÃO NOME: lp SINTAXE: lp [ -opções ] [ argumentos ] DESCRIÇÃO: comando de impressão via spooler EXEMPLO: lp arquivo NOME: lpstat SINTAXE: lpstat [ -opções ] [ argumentos ] DESCRIÇÃO: verifica status de impressão EXEMPLO: lpstat -t NOME: cancel SINTAXE: cancel pedido DESCRIÇÃO: cancela solicitação de impressão EXEMPLO: cancel laser-2344 COMANDOS GENÉRICOS NOME: write SINTAXE: write usuário DESCRIÇÃO: conversação entre usuários EXEMPLO: write aluno NOME: talk SINTAXE: talk usuário DESCRIÇÃO: conversação entre usuários EXEMPLO: talk aluno NOME: mail SINTAXE: mail usuário DESCRIÇÃO: remessa de mensagem entre usuários EXEMPLO: mail aluno mensagem CTRL d NOME: ps SINTAXE: ps [ -opções ] [ argumentos ] DESCRIÇÃO: contrôle de processos associados ao usuário EXEMPLO: ps NOME: kill SINTAXE: kill [ -opções ] [ argumentos ] DESCRIÇÃO: Mata processos EXEMPLO: kill PID EDITOR DE TEXTO VI NOME SINTAXE OBS vi “Visual” vi arquivo Se o arquivo não existir, ele é criado. MOVIMENTAÇÃO DE CURSOR [n]k [n]j [n]h [n]l movimenta n linhas acima movimenta n linhas abaixo movimenta n caracteres à esquerda movimenta n caracteres à direita ^ $ w b e início da linha final da linha avança palavras retorna palavras final da palavra OBS Todos os comandos de movimentação podem ser precedidos pelo número de vezes que deve ser repetido. 3w 3k 8b avança 3 palavras 3 linhas acima 8 palavras para trás MOVIMENTAÇÃO DA JANELA DE EDIÇÃO CTRL d CTRL u CTRL f CTRL b desce meia tela sobe meia tela desce uma tela sobe uma tela H M L NG coloca o cursor no topo da tela coloca o cursor no meio da tela coloca o cursor no final da tela vai para alinha N INSERÇÃO DE TEXTO o O i I a A OBS Abre uma linha abaixo da linha corrente, posiciona o cursor no início da nova linha e entra em modo inserção. Abre uma linha acima da linha corrente, posiciona o cursor no início da nova linha e entra em modo inserção. Entra em modo inserção antes do cursor. Posiciona o cursor no início da linha e entra em modo inserção. Entra em modo inserção após o cursor. Posiciona o cursor no final da linha e entra em modo inserção. Modo comando ou modo inserção ?? Em caso de dúvida aperte a tecla “ESC” REMOÇÃO DE TEXTO x r nx X Elimina o caracter sob o cursor Substitui o caracter sob o cursor Elimina os próximos n caracteres Elimina o caracter anterior ao cursor PEQUISA DE TEXTO /palavra ?palavra n N Procura a próxima ocorrência de “palavra” para frente Procura a próxima ocorrência de “palavra” para trás Repete padrão e sentido da última busca Repete padrão, mas em sentido contrário ao da última busca OUTROS RECURSOS s Elimina o caracter abaixo do cursor, entrando em modo inserção R Coloca o editor em modo substituição. Tudo o que for digitado irá substituir o texto abaixo do cursor. J Junção da linha corrente com a próxima, eliminando brancos e tab´s à esquerda da linha de baixo. COMANDOS DE DELEÇÃO dw d$ d10G dG dd Deleta a próxima palavra Deleta até o final da linha Deleta da linha atual até a linha 10 inclusive Deleta da linha atual até o fim do arquivo Deleta somente a linha atual COMANDOS DE TROCA cw Troca da posição do cursor até o final da palavra pelo texto inserido até <ESC>. c$ Troca o conteúdo existente entre a posição atual do cursor e o final da linha pelo texto inserido até <ESC>. COMANDOS DE GRAVAÇÃO E SAÍDA DO EDITOR :w :q :q! :wq Grava e continua a edição Sai sem gravar Sai sem gravar e elimina a confirmação Grava e sai