Vous êtes sur la page 1sur 41

Curso Bsico de Linux

. . .

Essa apostila composta por uma combinao de vrias outras apostilas disponveis atravs da Internet. Portanto os crditos podem ser atribudos a vrios autores. Alguns deles esto relacionados no final deste trabalho.

NDICE HISTRICO ...........................................................................................................................3 ESTRUTURA .........................................................................................................................3 2.1. Caractersticas Gerais.......................................................................................................4 2.2. Acesso ao Sistema ...........................................................................................................4 2.3. Organizao de Usurios no UNIX ..................................................................................5 2.3.1. Identificadores de Usurios (UIDs) ..........................................................................5 2.3.2. Grupos .....................................................................................................................5 2.4. Ambiente Grfico no UNIX (X Window System) ............................................................6 2.5. Notao Genrica de Comandos.......................................................................................6 2.6. Documentao Online......................................................................................................7 3. COMANDOS DE USO GERAL .............................................................................................8 4. PARTIO...........................................................................................................................10 5. SISTEMA DE ARQUIVOS DO UNIX..................................................................................11 5.1. Estrutura Hierrquica .....................................................................................................12 5.2. Formato do Sistema de Arquivos ...................................................................................13 5.3. I-nodes...........................................................................................................................14 5.4. Entrada de Diretrio.......................................................................................................15 5.5. Caminhos.......................................................................................................................15 6. DIRETRIO DE LOGIN ......................................................................................................16 7. COMANDOS DE MANIPULAO DE DIRETRIOS.......................................................17 8. TRABALHANDO COM ARQUIVOS ..................................................................................18 8.1. Caractersticas................................................................................................................19 8.2. Tipos de Arquivos..........................................................................................................20 8.3. Comandos de Manipulao de Arquivos ........................................................................20 9. PERMISSES E ACESSO A ARQUIVOS ...........................................................................23 9.1. TIPOS DE ACESSOS....................................................................................................24 9.2. Permisses .....................................................................................................................25 10. COMANDOS DE MANIPULAO DE PERMISSO DE ACESSO ..............................25 11. EDITOR ............................................................................................................................29 11.1. Alguns Editores..........................................................................................................29 11.2. vi ...............................................................................................................................29 11.3. joe..............................................................................................................................31 11.4. pico............................................................................................................................34 12. PROCESSOS.....................................................................................................................35 12.1. Executando Processos em Background e Foreground .................................................36 12.2. Comandos de Controle de Processos ..........................................................................37 13. TAREFAS ADMINISTRATIVAS.....................................................................................40 13.1. Iniciando o Sistema....................................................................................................40 13.2. Finalizando o Sistema ................................................................................................40 14. REFERNCIAS BIBLIOGRFICAS ...............................................................................41 1. 2.

ii

I - INTRODUO 1. HISTRICO

O UNIX um dos mais populares sistemas operacionais pelo mundo inteiro por causa da grande base de suporte e distribuio. Ele foi originalmente desenvolvido como um sistema multitarefa para minicomputadores e mainframes em meados da dcada de 1970. Verses do UNIX existem para muitos sistemas - indo de computadores pessoais a supercomputadores tal como o Cray Y-MP. A maioria das verses do UNIX para PCs so completamente caras. O Linux uma verso de distribuio livre do UNIX desenvolvido primeiramente por Linus Torvalds (torvalds@kruuna.helsinki.fi) da Universidade de Helsinki na Finlndia. O Linux foi desenvolvido com a ajuda de muitos programadores UNIX e especialistas atravs da Internet, permitindo que qualquer pessoa com conhecimento suficiente e iniciativa pudesse desenvolver e alterar o sistema. O ncleo (kernel) do Linux utiliza o cdigo da AT&T ( System V para PC 386) projetado na Free Software Foundation em Cambridge, Massachusetts. Assim, programadores do mundo inteiro tem contribudo para o crescimento do software. O Linux foi inicialmente desenvolvido como um projeto de lazer por Linus Torvalds. Ele foi inspirado por Minix, um pequeno sistema operacional desenvolvido por Andy Tanenbaum, e a primeira discusso sobre o Linux foi no newsgroup da USENET comp.os.minix. Nenhuma propaganda foi feito com a verso 0.01 do Linux em Agosto de 1991. Esta verso ainda no era executvel, pois continha somente os fontes do kernel ainda rudimentares, e assumia que voc tinha acesso mquina Minix para compilar e rodar o sistema. Em outubro de 1991, Linux anunciou a primeira verso oficial do Linux, verso 0.02, quando j era possvel executar bash (o GNU Bourne Again Shell) e o gcc (GNU C compiler). A partir de ento mais pessoas passaram a participar do desenvolvimento do sistema. Atualmente, Linux um clone completo do UNIX, capaz de executar X Windows, TCP/IP, Emacs, UUCP, mail e news. 2. ESTRUTURA

A figura 1 apresenta a arquitetura do UNIX de forma simplificada. Pode-se visualizar o sistema como um conjunto de nveis, desde o hardware at aplicaes dos usurios, passando pelo ncleo (kernel) e programas bsicos do sistema. A portabilidade uma caracterstica marcante do UNIX, j que apenas uma pequena parte do cdigo dependente de especificaes da mquina. Logo, a maior parte do sistema necessita apenas de uma recompilao quando mudada a plataforma de hardware.

Figura 1 - Arquitetura do sistema UNIX

2.1.

Caractersticas Gerais

O UNIX um sistema operacional de tempo compartilhado (time sharing), cujo cdigo escrito em sua grande maioria na linguagem C. Vrios processos podem estar executando no sistema. Um processo pode gerar novos processos, criando as figuras de processos pais e filhos. O escalonamento do uso dos recursos de execuo da CPU pelos vrios processos realizado por um algoritmo de prioridade bastante simples, porm eficiente. Vrios usurios podem estar usando o sistema ao mesmo tempo, e cada um deles pode ter num dado momento uma ou mais sesses abertas. Os processos gerados em cada sesso competem entre si e com outros processos no sistema pelo uso da CPU. Na figura 2, tem-se um shell, utilitrios e aplicaes solicitando atendimento do kernel. O sistema de arquivos do UNIX organizado de forma hierrquica, numa estrutura de rvore. A partir de um diretrio raiz vo sendo criados sub-diretrios, que tambm podem possuir sub-diretrios, e assim por diante.

Figura 2 - Ambiente UNIX

2.2.

Acesso ao Sistema

Para utilizar o sistema UNIX, o usurio deve efetuar o processo de login. O processo de login identifica o usurio para o sistema operacional, fornecendo informaes como o identificador do usurio (UID), identificador de grupo (GID), onde est localizado seu diretrio home no sistema de arquivos, e outras informaes relativas ao perfil do usurio dentro do ambiente UNIX. Para acessar o sistema, o usurio deve ter sido previamente cadastrado pelo administrador do sistema, onde receber um nome de usurio (username) e uma senha (password). Ao acessar o sistema o usurio ser solicitado a digitar seu username no campo login, e a senha de acesso no campo password. Quando o usurio digita a senha ela no ecoada na tela, por questes de segurana. Uma vez identificado pelo sistema, o usurio recebe a linha de comando (prompt) onde poder executar seus comandos. A partir deste momento o usurio passa a interagir com o programa Shell. As respostas geradas pela execuo dos comandos sero mostradas na tela. Para encerrar a sesso digite o comando exit na linha de comando ou as teclas Ctrl-D.

Ateno: Quando a conexo for feita pelo administrador do sistema (username = root) o prompt a ser exibido o #. O sistema UNIX sensvel a letras maisculas e minsculas tratando-as como letras diferentes. Por questo de padronizao o nome de usurio e senha sero sempre minsculas. Quando a senha for informada pela primeira vez, o sistema pede para entrar novamente para confirmao. O sistema retorna ao prompt de login e ento a sequncia de login dever ser completada com a nova senha.

2.3.

Organizao de Usurios no UNIX

2.3.1. Identificadores de Usurios (UIDs) Todo usurio de um sistema UNIX tem uma conta (account). A conta dividida em duas partes: o nome do usurio (username / logname) e uma senha (password). O nome de usurio um identificador, que informa ao sistema quem o usurio que est abrindo uma sesso no UNIX. A senha um autenticador, ou seja, uma maneira de o sistema operacional verificar se o usurio quem ele diz ser (username). O UNIX tambm possui algumas contas especiais, associadas no a usurios, mas a funes ou processos do prprio sistema. Estas contas so usadas para administrao. Na execuo de tarefas de mais baixo nvel, como por exemplo, gerenciamento de processos e controle de acesso aos arquivos, o sistema operacional identifica o usurio por um nmero inteiro, chamado de UID (User IDentifier), nico para cada usurio do sistema. Esse identificador associado ao usurio no momento de seu cadastramento no sistema. UIDs so inteiros sinalizados, o que significa que podem variar de -32768 at 32767. UIDs entre 0 e 9 so tipicamente usados para funes do sistema. UIDs para usurios comeam em 20 ou 100. Algumas vezes UIDs so inteiros no sinalizados, variando de 0 at 65535. O UNIX faz a traduo entre o nome de usurio e o UID consultando o arquivo /etc/passwd. Cada usurio possui uma entrada nesse arquivo, onde o sistema pode mapear nomes de usurio (username) em UIDs. Caso seja fornecido o mesmo UID a dois usurios, o UNIX os ver como um nico usurio, mesmo possuindo diferentes usernames e passwords. O superusurio (root) uma conta especial no sistema, pois detm todos os privilgios necessrios execuo das tarefas de administrao. Essa conta possui o username igual a root e seu UID 0. Processos com UIDs efetivos iguais a zero (0), executam com direitos de root, ou seja, no so feitas validaes de segurana sobre as atividades do processo. 2.3.2. Grupos Todo usurio do UNIX pertence a um ou mais grupos. Assim como usurios tem username e UIDs, grupos possuem nomes (group names) e identificadores (GIDs). Grupos permitem ao administrador do sistema organizar seus usurios de forma a permitir acesso comum a arquivos especficos, diretrios, dispositivos, etc.

Assim como o UID, o GID (Group IDentifier) do usurio armazenado no arquivo /etc/passwd. A lista de grupos do sistema, juntamente com seus GIDs est armazenada no arquivo /etc/group. Os conceitos de UIDs e GIDs permitem definir o perfil do usurio dentro do sistema, ou seja, definir o espao de armazenamento do usurio, permisses de acesso aos arquivos de dados e programas, compartilhamento de informaes com outros usurios, etc.

2.4.

Ambiente Grfico no UNIX (X Window System)

A utilizao de ambientes grficos possibilita uma maior produtividade do usurio, visto que a interface com o sistema se torna bem mais amigvel. O X Window System, ou apenas X, um padro de fato para ambiente grfico no UNIX, originado no projeto acadmico Athena do MIT. O X-Window System segue um paradigma cliente-servidor. O processo principal, chamado X, o servidor do ambiente grfico. Este servidor trata requisies de clientes locais (uma nica estao) ou remotos atravs de redes baseadas em TCP/IP. Em funo de sua capacidade de trabalhar em um ambiente de rede (networking) possvel rodar uma aplicao X em uma estao e apresentar seus resultados (sada de dados) em outra, economizando recursos de processamento local. O servidor X controla o monitor, teclado e mouse. Portanto, aplicaes clientes (cliente X) devem se conectar ao servidor X, atravs de mecanismos de comunicao entre processos (usualmente BSD sockets), com o objetivo de efetuar suas requisies ao servidor. Os usurios de micros PC com MS-DOS/Windows tambm podem utilizar esse ambiente grfico, graas a servidores X desenvolvidos para estas plataformas, o que possibilita que aplicaes executando em estaes de trabalho mais poderosas executem seu processamento remotamente e envie seus resultados ao usurio no PC. Em alguns sistemas UNIX, o processo de login (acesso ao sistema) realizado na forma tradicional, e logo em seguida carregado o ambiente grfico. Existem alternativas onde o usurio efetua o processo de login diretamente de um prompt em modo grfico, j estando todo o ambiente previamente carregado, exceto o gerenciador de janelas, que ser carregado no momento em que o usurio entrar no sistema.
Utilitrios login: password: Shell Gerenciador de Janelas Shell Shell Fim Gerenciador de Janelas

Figura 4 - Gerenciadores de Janelas e o Shell

2.5.

Notao Genrica de Comandos

Os comandos no UNIX so muitos e variados, contudo guardam entre si algumas caractersticas comuns. Um comando, de um modo geral, composto do nome seguido de opes e argumentos. Assim, um comando pode vir seguido de uma ou mais opes e um ou mais argumentos, nesta ordem.

prompt: comando [-opes ... ] [argumentos ... ]

mais argumentos podem seguir. geralmente so nomes de arquivos, caminhos, qualquer parmetro exigido pelo comando. outras opes precedidas por hfen. opes de uma ou mais letras. nome do comando. prompt do Shell: $: Bourne Shell %: C-Shell >: Tcsh #: superusurio (root)

Os elementos da linha de comando que esto entre [ ] so opcionais. Em alguns casos somente o nome do comando obrigatrio. Espaos em branco (definidos com a tecla Space ou Tab) so usados como delimitador de comandos, opes e argumentos. Aps todo comando sempre dever ser pressionada a tecla Return/Enter para que o mesmo seja executado pelo computador. Para entrar com vrios comandos em uma mesma linha utilize o caracter ponto-e-vrgula (;) como delimitador.

2.6.

Documentao Online

O UNIX possui uma documentao on-line bastante abrangente, conhecida como man pages. Cada item documentado apresentado numa estrutura como mostrado abaixo. NOME nome - funo do comando SINOPSE nome [-opes ... ] [argumentos ... ] DESCRIO apresenta a descrio do comando OPES -X : descreve a opo X EXEMPLO $ nome -X argumento(s) Essa documentao dividida em 8 sees: [1] - Comandos de usurio [2] - Chamadas de sistema (system calls) [3] - Bibliotecas de funes [4] - Formatos de arquivos especiais, drivers e hardware [5] - Arquivos de configurao [6] - Jogos e demonstraes [7] - Comandos diversos [8] - Comandos de administrao do sistema

Para utilizar a referncia on-line, o usurio deve utilizar o comando man. O comando man apresenta todas as entradas do manual UNIX on-line. man [seo] tpico O tpico o comando, chamada de sistema, funo, ou qualquer outro item que se queira consultar. O argumento seo especifica em qual seo [1-8] no manual se deseja procurar pela ocorrncia do tpico. A utilizao do parmetro seo importante, pois alguns nomes so comuns a comandos e chamadas de sistema. Um exemplo o comando kill. Caso o usurio queira ver como a forma de utilizao da chamada de sistema kill, dever digitar: $: man 2 kill A seo 2 refere-se a chamadas de sistema. Caso a consulta fosse sobre o comando de usurio kill, a seo correta seria a primeira (man 1 kill). Ao encontrar o tpico solicitado, o man apresenta o contedo na tela e aguarda comandos do teclado. Os principais comandos so: h H q :q :Q e ^E CR y ^Y k ^K z w g G /texto n N mostra a ajuda (help) do man; finaliza; prxima linha; volta uma linha; volta uma linha; prxima janela; volta uma janela; vai para a primeira janela do help; vai para a ltima janela do help, procura pela ocorrncia do texto especificado no help apresentado; repete a ltima procura no sentido normal; repete a ltima procura no sentido inverso.

3.

COMANDOS DE USO GERAL Por conveno, todos os

O UNIX diferencia entre letras maisculas e minsculas. comandos listados aqui devem ser digitados em letras minsculas.

As palavras em negrito constituem o nome do comando, devendo ser digitadas exatamente como esto escritas; em itlico representam os parmetros que o usurio especifica para o comando (o nome de um arquivo, por exemplo); [entre colchetes] opcional, podendo ser omitido (na execuo do comando os colchetes no devem ser digitados. Quando as opes estiverem separadas por uma barra vertical ( | ), indica que somente uma delas deve ser escolhida.

1 - CLEAR Nome: Sinopse: Descrio: Exemplo: 2 - CAL Nome: Sinopse: Descrio: Exemplo:

clear - limpa a tela do terminal Clear o comando clear limpa a tela atualmente ativa $ clear

cal - apresenta um calendrio cal [ms [ano] ] cal apresenta o calendrio do ano e ms especificados. Na falta dos argumentos, so assumidos o ms e o ano corrente. $ cal 6 1997 June 1997 Sun 1 8 15 22 29 Mon 2 9 16 23 30 Tue 3 10 17 24 Wed Thu 4 11 18 25 5 12 19 26 Fri 6 13 20 27 Sat 7 14 21 28

3 - DATE Nome: Sinopse: Descrio: Exemplo:

date - apresenta/altera a data e a hora do sistema date sem nenhum argumento, so apresentadas a hora e a data corrente. somente o administrador do sistema pode alterar a data. $ date Tue Jun 17 17:01:02 EST 1997

4 - PASSWD Nome: Sinopse:

passwd - muda a senha de um usurio passwd

Descrio: passwd altera a senha de um usurio. O superusurio (root) pode usar passwd para alterar a senha de qualquer usurio. Exemplo: $ passwd Changing password for antonio Old password: ****** New password: ******* Retype new password: *******

4.

PARTIO

Discos so divididos em uma ou mais parties. Cada partio funciona como se fosse um disco separado, assim, diferentes sistemas operacionais podem ser instalados num mesmo disco sem que ocorra conflito. A informao sobre como um disco foi particionado armazenada no 1 setor (1 setor da 1 trilha do 1 disco). Este setor chamado registro de boot principal (MBR - Master Boot Record) do disco. O MBR contm um pequeno programa que l a tabela de partio, verifica qual partio est ativa (como partio de boot) e l o primeiro setor de boot daquela partio. O setor de boot tambm contm outro pequeno programa que l a primeira parte do sistema operacional armazenado naquela partio e ento o inicializa. O esquema original de particionamento para discos de PC permitiam somente 4 parties. Para superar este problema, foram criadas as parties estendidas (extended partitions), permitindo que uma partio primria (primary partition) fosse dividida em sub-parties. A partio primria ento subdividida partio estendida. O disco dividido em 3 parties primrias, a segunda das quais dividida em 2 parties lgicas. Parte do disco no particionada. O disco como um todo e cada partio primria possuem um setor de boot.

Figura 5 - Exemplo de Partio de Disco Existem muitos programas para criar e remover parties. A maioria dos sistemas operacionais possue o seus prprios programas, geralmente chamados fdisk. Quando estiver usando os discos IDE a partio de boot deve estar completamente dentro dos 1024 cilindros. Isto acontece porque o disco utilizado pela BIOS durante o boot, e a maioria das verses de BIOS no consegue manipular mais do que 1024 cilindros. Cada partio deve ter um mesmo nmero de setores. O sistema de arquivos do UNIX utiliza blocos de 1 kbytes de tamanho, ou seja, 2 setores. Cada partio, incluindo parties estendidas, possui o seu prprio arquivo de device. A conveno de nomes para estes arquivos que um nmero de partio, includo aps o nome do
10

disco com a conveno: 1-4 so parties primrias e 5-8 so para as parties lgicas. Por exemplo, /dev/hda (hd - hard drive) refere-se ao primeiro disco como um todo, /dev/hda1 a primeira partio primria do primeiro disco IDE e /dev/sdb7 a terceira partio estendida no segundo disco SCSI. Os prefixos mais usados na definio de nomes de discos so: 5. fd - floppy disk hd - hard drive sd - SCSI drive st - SCSI tape

SISTEMA DE ARQUIVOS DO UNIX

Um sistema de arquivos (filesystem) define os mtodos e as estruturas de dados que um sistema operacional usa para manter o caminho de arquivos num disco ou partio, ou seja, a maneira como os arquivos so organizados no disco. O sistema operacional UNIX usa um filesystem hierrquico para gerenciar e organizar seus arquivos e diretrios. Um arquivo geralmente um recepiente para dados e diretrio um recepiente para arquivos e/ou outros diretrios. Um diretrio contido dentro de outro diretrio tambm denominado de subdiretrio. Para trabalhar eficientemente com o sistema UNIX, necessrio compreender como o filesystem organizado e os diferentes tipos de arquivos que podem ser criados. Existem limitaes nos nomes de arquivos e diretrios. O UNIX suporta vrios tipos de sistemas de arquivos. Para descobrir quais so os sistemas de arquivos suportados consulte a rvore de origem do kernel no diretrio /usr/src/linux/fs. possvel selecionar quais os tipos de sistemas de arquivos sero suportados no momento de construo do kernel (consulte o manual do sistema operacional). Os principais sistemas de arquivos so:
SISTEMA DE ARQUIVOS Sistema de Arquivos Second Extended NOME DO TIPO ext2 DESCRIO O sistema de arquivo mais comum do Linux. Residem fisicamente em dispositivos de armazenamento de massa, usualmente drives de disco rgido Substitudo pelo ext2 O sistema de arquivos Minix original (raramente usado) Permite o acesso a arquivos remotos na rede NFS - Network File Services Acessa os arquivos do MS-DOS O sistema de arquivos do OS/2 HPFS - High-performance File System Acessa os arquivos a partir de um servidor Windows for Workgroups ou Windows NT Usado pela maioria dos CD-ROM (Compact Disk-Read Only Memory)

Sistema de Arquivos Extended Sistema de Arquivos Minix Sistema de Arquivos da Rede (NFS) Sistema de Arquivos MS-DOS Sistema de Arquivos HPFS Sistema de Arquivos SMB Sistema de Arquivos ISSO 9660

ext minix NFS msdos HPFS smbfs Iso9660

Tabela 1 - Sistemas de Arquivos Cada tipo de filesystem tem seus prprios atributos e limites. Por exemplo o MS-DOS restringe os nomes de arquivos a 8 caracteres mais uma extenso com 3 caracteres e deve ser usado apenas para acessar os disquetes no MS-DOS.

11

O filesystem Second Extended (ext2) que foi desenvolvido basicamente para o Linux, suporta os nomes de arquivos com 256 caracteres, um tamanho mximo do filesystem de 4 terabytes e muitas outras caractersticas. Para acessar qualquer filesystem no UNIX necessrio mont-lo (com o comando mount) em um certo diretrio. Exceto o filesystem raiz (root) no disco de sistema, possvel montar e desmontar todos os filesystems nos discos, para e de uma rvore de sistemas existente. Os filesystem montveis so chamados de sistemas de arquivos auxiliares (auxiliary filesystems).

5.1.

Estrutura Hierrquica

Os arquivos so manipulados internamente pelo sistema operacional UNIX. Entretanto, para a viso do usurio, o sistema de arquivos uma nica estrutura hierrquica, onde pode-se ter vrias parties, discos e arquivos associados em forma de um rvore.

Figura 5 - rvore de Diretrio no UNIX No sistema de arquivo do UNIX, arquivos e diretrios so agrupados por funo. Usurios podem controlar seus prprios arquivos e diretrios enquanto que o administrador do sistema controla e gerencia o sistema de arquivos e diretrios. Assim fica mais fcil organizar as centenas de arquivos e programas que normalmente so instalados em uma mquina rodando o UNIX. O topo da hierarquia denominado diretrio raiz (root) e indicado com uma barra (/). O sistema UNIX tambm fornece comandos que permitem que voc crie novos diretrios quando sua organizao precisar de mudanas, como mover ou copiar arquivos de um diretrio para outro, o que pode ser feito de forma extremamente fcil. A estrutura de diretrio pode variar de acordo com a implementao do sistema, mas a seguir descrevemos aqueles que so encontrados na maioria dos sistemas UNIX:
DIRETRIO /etc FINALIDADE Contm os comandos do administrador de sistemas e muitos dos arquivos de configurao do sistema, arquivos solicitados durante o bootup ou shutdown. Contm os arquivos especiais (devices files) para todos os tipos de dispositivos de hardware. Estes arquivos funcionam como gateways para o perifrico, para desta forma, os dados no serem diretamente armazenados nos perifricos. Contm os comandos necessrios para a operao bsica do UNIX e para a manipulao de arquivos. Geralmente estes comandos so acessveis por todos usurios.

/dev

/bin

12

DIRETRIO /lib

FINALIDADE Contm as bibliotecas compartilhadas. Estes arquivos geralmente possuem um nome como /lib/libc.so.4.3.2 que neste exemplo indica a verso 4.3.2 da biblioteca padro da linguagem C. Contm um subdiretrio para cada usurio do sistema UNIX, ou seja, para cada conta. Cada usurio tem controle total sobre o contedo de seu prprio diretrio, inclusive com a possibilidade de criar outros subdiretrios. O nome do diretrio /home pode variar, dependendo de cada sistema operacional, mas os principais so: /users e /usr/homes. Contm os arquivos temporrios gerados durante a execuo de certas aplicaes. Estes arquivos podem ser eliminados sempre que assim o desejar. Este diretrio similar ao diretrio /usr. Mas quando existir, basicamente ir conter arquivos de configurao para programas instalados em /usr/bin. Em alguns sistemas este diretrio apenas um link para o diretrio /usr, que neste caso contero a mesma coisa. Contm os comandos suplementares do UNIX. possvel executar o sistema operacional sem a maioria destes comandos. Contm as bibliotecas estticas (geralmente possuem um nome como libc.a) , arquivos de configurao e dados para programas individuais, programas auxiliares que somente so invocados por outros programas. Os arquivos deste diretrio somente so acessados por programas residentes em /usr/bin. Contm os arquivos de cabealhos (*.h) para a linguagem de programao C. Contm os cdigos fonte do kernel. Contm todos os arquivos associados s pginas dos manuais on-line. Contm arquivos de log administrativos gerados por vrios programas do sistema e demons. Possui a mesma finalidade do diretrio /tmp. A diferena reside no fato deste diretrio poder ser montados em outras parties (discos)

/home

/tmp

/usr/etc

/usr/bin

/usr/lib

/usr/include /usr/src /usr/man /usr/adm /usr/tmp

Tabela 2 - Diretrios

5.2.

Formato do Sistema de Arquivos

Como visto anteriormente um disco pode ter vrias divises, chamadas de parties. Cada partio pode conter um sistema de arquivos.

Figura 6 - Representao Interna do Sistema de Arquivos Para cada sistema de arquivos tem-se um setor de boot (boot block), que contm o cdigo encarregado de, entre outras coisas, realizar a carga do cdigo do kernel para a memria e iniciar sua execuo. Posterior ao setor de boot, encontra-se o superblock, onde so armazenados vrias

13

informaes a respeito de seu sistema de arquivos. As informaes mais importantes armazenadas no superblock so: o tamanho do sistema de arquivos; o nmero de blocos livres no sistema de arquivos; uma lista de blocos livres disponveis no sistema de arquivos; o tamanho da lista de i-nodes, ou seja, o nmero de i-nodes para o sistema de arquivos; o nmero de i-nodes livres no sistema de arquivos; uma lista de i-nodes livres no sistema de arquivos; outras informaes. Devido importncia do superblock, o UNIX sempre faz uma cpia do superblock na memria RAM. O superblock atualizado no disco quando o comando sync executado. Por questes de segurana existe uma cpia do superblock em cada grupo de cilindros, para que caso seja perdido, danificado ou corrompido o mesmo possa ser recuperado a partir de um grupo de cilindros. Em seguida tem-se a lista de i-nodes do sistema (i-list), e posteriormente a regio onde so armazenados os contedos dos arquivos e diretrios.

5.3.

I-nodes

I-node uma estrutura que contm vrias informaes a respeito do arquivo e a identificao do(s) bloco(s) de disco que contm os dados do arquivo. Alguns campos de informao que esto presentes em um i-node so: o identificador do dono do arquivo (composto por um UID e um GID); o tipo de arquivo; permisses de acesso ao arquivo; data e hora da ltima modificao nos dados do arquivo; data e hora do ltimo acesso ao arquivo; data e hora da ltima modificao do i-node; nmero de links do arquivo; tamanho do arquivo em bytes; endereos do disco ou ponteiros de endereo no disco onde os dados do arquivo esto armazenados; outras informaes.

Figura 7 - Representao de um Inode


14

Os i-nodes apontam para blocos de dados no disco, os quais no precisam estar necessariamente localizados fisicamente um aps o outro. O i-node o nico elemento que sabe onde os dados do arquivo esto.

5.4.

Entrada de Diretrio

A entrada de diretrio de um arquivo composta de 4 partes: O nmero do i-node, o comprimento desta entrada de diretrio, o comprimento do nome de arquivo e o nome de arquivo. A entrada de diretrio mapeia um nome de arquivo particular para um nmero de i-node. O nmero de i-node mapeia para um i-node. Um diretrio comporta-se como um arquivo no filesystem, exceto que um usurio no pode escrever dados no diretrio. A funo do diretrio localizar todos os arquivos em um nvel definido na rvore do filesystem. Para executar, o diretrio contm uma entrada para cada arquivo que deve localizar. A entrada contm o nome do arquivo e seu nmero de i-node. No exemplo da figura 8, na entrada de diretrio existe um arquivo chamado produto que possui o i-number #173, dentre outras informaes. O i-number aponta para um determinado inode de #173, na lista de i-nodes (i-lists), que por sua vez aponta para os blocos de dados que armazenam o contedo do arquivo produtos no diretrio. Uma entrada de diretrios pode ter um i-number referenciando um i-node que aponta para um outro diretrio. Nesse caso, tem-se o conceito de sub-diretrios.

Figura 8 - Exemplo de Entrada de Diretrios

5.5.

Caminhos

A maioria dos comandos do sistema UNIX opera sobre arquivos e/ou diretrios. Um caminho (path) representa os diretrios e subdiretrios que so passados para alcanar um arquivo ou diretrio especificado. O diretrio inicial chamado diretrio raiz, representado por uma barra ( / ). Um path pode ser especificado de duas formas: absoluto; relativo.

15

Paths absolutos so aqueles que comeam com uma barra ( / ). Paths relativos, ao contrrio, sempre tomam o diretrio atual como referncia. Por exemplo: /dev absoluto /home/joao/texto absoluto .. relativo (diretrio imediatamente acima) . relativo (diretrio corrente) usr/lib relativo ../home/joao relativo

Figura 9 - Caminho no UNIX Quando um diretrio criado, duas entradas so automaticamente criadas, chamadas ponto (.) e ponto-ponto (..). Geralmente so utilizadas para designar caminhos relativos. A entrada ponto (.) representa sua posio no diretrio corrente. Se voc est no diretrio /home/joo ento temos: . representa o diretrio corrente /home/joo ./texto representa /home/joo/texto A entrada ponto-ponto (..) representa o diretrio imediatamente acima do seu diretrio corrente, tambm chamado de diretrio-pai. Se voc est no diretrio /home/joo ento temos: .. representa o diretrio / (raiz) ../.. tambm representa o diretrio / (raiz) ../bin representa o diretrio /bin 6. DIRETRIO DE LOGIN

Quando um usurio includo no sistema receber um username e opcionalmente uma password, e um diretrio ser criado para o seu prprio uso. O diretrio criado sob o diretrio /home (ou /users) e tem o mesmo nome da identificao do usurio no login. A partir deste diretrio, o usurio tem acesso livre para criar quantos arquivos e diretrios quiser. Quando o usurio entrar no sistema, o UNIX automaticamente o colocar sob este diretrio, ou seja, este ser o diretrio corrente logo aps o login. Este diretrio denominado de diretrio login ou diretrio HOME. A figura abaixo mostra o diretrio de login do usurio joo.

16

Figura 10 - Diretrio HOME 7. COMANDOS DE MANIPULAO DE DIRETRIOS

Um diretrio uma maneira de organizar os arquivos. Os diretrios tambm so considerados como sendo arquivos com formato pr-definido. Podem conter os nomes dos arquivos e diretrios e seus nmeros inode associados. A seguir apresentamos os comandos bsicos para manipulao de diretrios. PWD Nome: Sinopse: pwd - ecoa o nome do diretrio corrente (formato absoluto) na sada padro. pwd

Descrio: pesquisa a rvore de diretrio, em direo a raiz para informar o path. Exemplo: $ cd /home/antonio $ pwd /home/antonio LS Nome: Sinopse: ls - lista o contedo de um diretrio ls [-a ] [-i ] [-C | -l ] [-t] [arquivo]

Descrio: o comando ls usado para listar arquivos. Na ausncia do parmetro arquivo representando o nome de um arquivo ou diretrio, o comando ls lista o diretrio corrente. Opes: -a -i -C -l -t lista todas as entradas, incluindo as que iniciam com . (ocultos); inclui o nmero do i-node de cada arquivo; fora sada com mltiplas colunas; listagem com formato longo; ordena por data de alterao.

Exemplos: $ ls -l total 2 -rw-r--r-drwx-----$ ls -la

1 antonio users 32 Jun 17 22:40 arquivo.txt 3 antonio users 512 Jun 17 21:05 teste/

17

total 15 drwxr-xr-x drwx------rw-r--r-drwx-----... CD Nome: Sinopse: Descrio:

4 29 1 3

antonio antonio antonio antonio

users 512 Jun 05 users 1024 Jun 05 users 32 Jun 17 users 35 Jun 17

22:40 22:40 22:40 21:05

./ ../ arquivo.txt teste/

cd - muda o diretrio corrente cd [diretrio] diretrio torna-se o novo diretrio corrente. Na execuo do comando o sistema verifica a permisso de acesso ao diretrio especificado. Sem argumento, o comando cd retorna ao diretrio home do usurio. $ cd /home/antonio $ cd .. $ cd ./../home/ana

Exemplo:

MKDIR Nome: Sinopse: Descrio: Opes: Exemplos: RMDIR Nome: Sinopse: Descrio: Exemplos:

mkdir - cria diretrio mkdir [-p] nome_diretrio cria um diretrio na rvore de diretrios. -p permite a criao do diretrio sob um diretrio pai que no existe, que foi especificado no caminho para o nome_diretrio. $ mkdir ../textos

rmdir - remove diretrio rmdir nome_diretorio remove diretrios (somente se estes estiverem vazios). $ rmdir /usr/ana/textos $ rmdir arquivo.txt

8.

TRABALHANDO COM ARQUIVOS

Um arquivo simplesmente um nome com dados associados a ele, armazenados num perifrico qualquer (disco rgido ou flexvel). O sistema UNIX no impem restries ao formato de um arquivo. Um arquivo visto pelo sistema como uma sequncia no formatada de bytes, onde um byte segue o outro at que o fim do arquivo seja encontrado. Os programas de aplicao impem formatos a essas sequncias de bytes. Como exemplo, um editor de textos marca o fim de cada linha de texto com um caracter de nova-linha; um programa de banco de dados organiza os dados em registros, sendo que cada registro est dividido em campos. Para o sistema UNIX tudo considerado arquivo onde inclumos:

18

Arquivos Comuns - geralmente contm caracteres de texto ASCII. Programas - arquivos comum que contm instrues executveis. Pode conter um cdigo compilado (date, mkdir, ls) ou pode conter comandos shell do sistema UNIX (.profile, .logout). Diretrio - arquivo especial contendo os nomes dos arquivos e diretrios que ele mantm. O diretrio guarda um nmero de inodo para cada item, que identifica aonde as informaes de arquivo e os endereos de armazenamento de dados podem ser encontrados no sistema de arquivos. Dispositivo - arquivo que garante o interfaceamento entre o kernel e o hardware de um perifrico (disco, terminal, impressora, memria). Como estes arquivos tm por finalidade o interfaceamento, eles nunca contm dados verdadeiros. Estes arquivos so geralmente guardados no diretrio /dev, e existe um arquivo para cada dispositivo com o qual o computador precisa se comunicar. Caractersticas

8.1.

Um arquivo possui muitas caractersticas que podem ser visualizadas com o comando ls la, dentre as quais destacamos: $ ls -la -rw-r--r--rwxr-xr-drwxr-xr-x

1 1 2

ricardo ricardo ricardo

computacao computacao computacao

37 Ago 127 Ago 1024 Ago

15 15 15

12:10 12:20 12:34

readme.txt .profile aula nome

permisses proprietrio tamanho tipo de links grupo data e hora arquivo Tipo de Arquivo - normal ou especial Permisso - definio do modo de acesso ao arquivo Links - nmero de nomes de arquivos associados ao mesmo conjunto de dados Proprietrio - identificao do usurio proprietrio do arquivo Grupo identificao do grupo para acesso ao arquivo Tamanho - nmero de bytes que o arquivo contm Data - data e hora da ltima alterao do arquivo Nome - nome do arquivo

Um ponto muito importante a saber a respeito dos nomes de arquivos no UNIX que letras maisculas e minsculas so interpretadas diferentemente. Geralmente os nomes de arquivos so formados por letras minsculas. As regras para a criao de arquivos so: mximo de 14 caracteres; mximo de 255 caracteres se o sistema suporta nomes longos; normalmente contm caracteres alfa (a-z, A-z), numricos (0 - 9), ponto (.), trao (-) e subscrito (_).

19

Ponto (.) - por ser considerado um caracter normal, o ponto pode aparecer em qualquer lugar num nome de arquivo e vrias vezes. Quando aparece no incio do nome do arquivo (.profile) indica que este oculto. Existem caracteres especiais que no podem ser utilizados como parte de um nome de arquivo pois frequentemente produziro resultados inesperados, so eles: ?, @, #, [, ], *, <, >, \, $ e |.

8.2.

Tipos de Arquivos

Os tipos de arquivos no sistema UNIX so identificados atravs do primeiro caracter de sada do comando ls -l. Os arquivos geralmente so tratados de duas formas: Regulares - arquivos de dados ou programas; Diretrios - arquivo que contm nome de outros arquivos, juntamente com ponteiros para seus i-nodes. Alm desses dois tipos, o UNIX possui mais alguns: arquivos dispositivos de caracteres - um tipo de arquivo utilizado por dispositivo de caracteres (ex.: modem); arquivos dispositivos de blocos - um tipo de arquivo utilizado por dispositivo de blocos (ex.: discos); FIFO - um tipo especial de arquivo utilizado para comunicao entre processos (tambm chamado named pipe); Socket - um tipo de arquivo utilizado para comunicao em rede, servindo tambm para a comunicao entre processos num mesmo sistema; symbolic link - um tipo de arquivo que aponta para outro arquivo. Smbolo d c b p s l Tipo do Arquivo regular diretrio dispositivo de caracter dispositivo de bloco FIFO socket symbolic link

Tabela 3 - Tipos de Arquivos

8.3.

Comandos de Manipulao de Arquivos

O sistema UNIX disponibiliza vrios comandos para manipulao de arquivos. Os principais so destacados a seguir: CAT Nome: Sinopse: cat - imprime o contedo de arquivos cat [ -n -v ] [arquivo ... ]
20

Descrio:

o comando cat permite ler dados da entrada padro e escrever dados na sada padro, permitindo uma grande flexibilidade em sua utilizao. Pode-se utilizlo associado aos smbolos de redirecionamento de fluxo (>,>>) para criar, listar e/ou estender o contedo de arquivos. -n -v numera linhas de sada apresenta caracteres no imprimveis usando a notao ^X. (cria o arquivo arq.dat)

Opes:

Exemplos:

$ cat > arq.dat Linha 1 Linha 2 ^Z $ cat arq.dat Linha 1 Linha 2

$ cat -n arq.dat 1 Linha 1 2 Linha 2

MORE Nome: Sinopse: Descrio:

more - visualiza um arquivo no terminal more [ +n -n ] [arquivo ... ] more o paginador de arquivos padres para UNIX. Aps cada tela cheia, o comando apresenta uma mensagem solicitando ao usurio para continuar a apresentao do arquivo. Existem vrias opes para o comando. freqentemente utilizadas. Abaixo tem-se as duas mais

Opes:

+n -n

apresenta a partir da linha n; o nmero n ser usado como tamanho da janela. O default varia de 22 a 25.

Exemplo:

$ more arq.dat Linha 1 Linha 2

TAIL Nome: Sinopse: Descrio:

tail - escreve o contedo de um arquivo para uma sada padro, iniciando em uma posio especificada. tail [-f] [-r] [-b [+] D | -c [+] D ! -l [+] D ] [arquivo] onde, D=deslocamento o comando tail escreve o contedo do arquivo especificado para a sada padro, iniciando no ponto (deslocamento) definido pelo usurio. Se nenhum arquivo definido a entrada padro utilizada. O tipo de unidade (b,c,l) associado ao deslocamento, juntamente com o ponto de referncia para o deslocamento, identificam o incio da impresso. Se o deslocamento precedido do sinal - significa que o ponto de referncia para o deslocamento o final do arquivo. O sinal + indica como ponto de referncia o incio do arquivo. -b -c -l o arquivo interpretado como blocos de 512-bytes; o arquivo interpretado como uma seqncia de bytes; o arquivo interpretado como linhas, que devem terminar com <CR>.

Opes:

21

Exemplo:

$ tail -8c arq.dat Linha 2 $ tail +4c arq.dat ha 1 Linha 2 $ tail +2l arq.dat Linha 2

CP Nome: Sinopse: cp - copia arquivos cp [-ipr] arquivo(s)... diretrio - copia um ou mais arquivos para diretrio cp [-ip] arq1 arq2 - copia contedo de arq1 para arq2. cp -r [-ip] dir1 dir2 - copia recursivamente o contedo de dir1 para dir2. o comando cp copia o contedo de um arquivo/diretrio para outro. No segundo caso se arq2 j existe sobrescrito, mas seu modo e dono so preservados. No terceiro, cp copia recursivamente o contedo de dir1 (arquivos e sub-diretrios) para dir2. -i -p -r Exemplos: execuo no modo interativo (pede confirmao caso o arquivo destino exista); duplica tambm as permisses juntamente com data/hora; duplica recursivamente se nomearq for um diretrio.

Descrio:

Opes:

$ cp -r /usr/src /usr/src/bkp $ cp /usr/src/* /tmp

MV Nome: Sinopse: mv - move ou renomeia arquivos mv [-f ] [-i ] arquivo(s)... diretrio - move um ou mais arquivos para diretrio mv [-f ] [-i ] arq1 arq2 - altera nome de arq1 para arq2 mv [-f ] [-i ] dir1 dir2 - altera nome de dir1 para dir2 o comando mv move arquivos e diretrios pelo sistema de arquivos. Permite tambm renomear um arquivo ou diretrio, caso o nome destino seja diferente da origem. -f -i Exemplos: suprime todas as mensagens (force) modo interativo (confirma mudanas).

Descrio: Opes:

$ mv /home/antonio* /home/antonio/bkp $ mv teste.txt teste1.txt

RM Nome: Sinopse: Descrio: rm - remove arquivos ou diretrios rm [-f ] [-r ] [-R ] [-i ] arquivo o comando rm usado para remover arquivos e diretrios (inclusive aqueles no vazios). Para apagar um arquivo ou diretrio, o usurio no precisa ter direitos de leitura ou escrita sobre ele, mas precisa ter direito de escrita no diretrio onde ele se encontra. -i -f pede confirmao antes de apagar cada arquivo/diretrio; no pede confirmao para remover um arquivo protegido contra escrita, nem mostra mensagem quando o arquivo no existe;

Opes:

22

-r -R Exemplos:

a opo para apagar um diretrio, removendo todos os arquivos e subdiretrios que ele tenha; equivalente a opo -r.

$ rm teste.txt $ rm -r teste

FIND Nome: Sinopse: Descrio:

find - procura arquivos por nomes ou por outras caractersticas. find [caminho ... ] [expresso ] o comando find procura arquivos recursivamente em cada diretrio especificado em caminho, confrontando-os com a expresso booleana expresso. verdadeiro se arquivo confronta com o nome do arquivo corrente; verdadeiro se a permisso de acesso ao arquivo corrente igual a num; verdadeiro se o tipo do arquivo corrente c, onde c pode ser, por exemplo, igual a d (diretrio); sempre verdadeiro, causa a impresso do path corrente. -perm num -type c -print

Expresses: -name arquivo

Exemplos:

$ find -name arq -print ./arq

O UNIX permite que um arquivo tenha uma ou mais entradas de diretrio apontando para o seu i-node na i-list. Isso chamado de hardlink ou apenas link (ligao). Um link pode apontar para arquivos ou diretrios (nesse caso, o processo criador deve possuir direitos de superusurio). Arquivos ou diretrios s podem ser deletados quando todos os seus links forem removidos. Nome: Sinopse: Descrio: ln - cria um link ou symbolic link ln [-f ] [-s ] arquivo ... nome_do_link cria um link ou symbolic link para um arquivo. O comando ln sem a opo -s, cria hardlinks. Atravs do ln no permitido criar hardlinks para diretrios. Se o nome_do_link for um diretrio, vrios nomes de arquivos podem ser especificados. -f -s Exemplos: fora a sobreposio de um arquivo, caso o nome do link seja o mesmo do arquivo existente; cria um symbolic link. $ ln -s arq symlink $ ls -l arq link arq symlink@

Opes:

$ ln arq link $ ls -l arq link arq link

9.

PERMISSES E ACESSO A ARQUIVOS

O UNIX permite que mltiplos usurios armazenem e tenham acesso s informaes do disco ao mesmo tempo. Desta forma, fundamental proteger seus arquivos de outros usurios. Para isto faz-se uso de mecanismos para acesso de arquivos e diretrios. Para acessar arquivos e executar programas, o sistema UNIX tem que saber suas identificaes. Para cada arquivo ou diretrio, tem-se trs categorias de comunidade:
23

Nome Usurio (user/owner) grupo (group)

Categoria u g Usurio que criou o arquivo

Descrio

Membros de grupos. Grupos so usurios que concordam em partilhar certos arquivos e diretrios e so geralmente formados no decorrer de um projeto ou por sees/departamentos de uma empresa. Outros usurios do sistema (o usurio e os membros do grupo esto fora desse conjunto de usurios.

outros (others)

Tabela 4 - Propriedade de Arquivos O computador mantm identificadores numricos para usurio (UID) e grupo (GID). Esta identificao definida inicialmente quando voc entra no sistema. Para consultar os identificadores ativos, utilize o comando id diretamente no prompt do UNIX. Todas as identificaes de usurios reconhecidas pelo computador so armazenadas no arquivo /etc/passwd, e todas as identificaes de grupo so armazenadas no arquivo /etc/group. Usurios a serem includos num grupo especfico so definidos pelo administrador do sistema, e cada usurio pode ser um membro de um ou mais grupos. Grupos so normalmente formados a partir dos grupos de trabalho j definidos numa organizao.

9.1.

TIPOS DE ACESSOS

O sistema de arquivos do UNIX permite que se defina para cada arquivo ou diretrio, trs tipos bsicos de controle de acesso.
Tipo de Acesso r w x Aplicado em Arquivos permite ler o contedo do arquivo permite alterar o contedo do arquivo permite executar um arquivo (programa) Aplicado em Diretrios permite listar o contedo do diretrio permite alterar o contedo do diretrio permite pesquisar o diretrio

Tabela 5 - Tipos de Acesso para Arquivos/Diretrios Diferentes comandos do sistema UNIX requerem algumas permisses para acessar um programa ou arquivo. Por exemplo, para executar o comando cat num arquivo a permisso read necessria, porque este comando deve ser capaz de ler o contedo do arquivo para mostr-lo na tela. Da mesma forma um diretrio requer a permisso read para listar seu contedo com o comando ls. A utilizao de tipos de acesso para cada arquivo e diretrio depende da poltica adotada no gerenciamento desses recursos. Permisses de acesso de escrita para diretrios liberam seu contedo para alterao, permitindo a remoo de seus arquivos e sub-diretrios.A cada classe de usurios, so aplicadas as trs permisses de acesso: - rwx rwx rwx Permisso de acesso para OUTROS Permisso de acesso para GRUPO Permisso de acesso para USURIO (user) Tipo do arquivo (Tabela 1)
24

A combinao entre os trs tipos de permisso (r,w,x) com cada classe de usurios denominado modo do arquivo. A configurao do modo, de arquivo e diretrios realizada pelo usurio atravs do comando chmod. Os valores de permisso de arquivos podem ser expressos em vrios formatos. Uma outra forma a representao como nmeros octais.

Modo ----x -w-wx r-r-x rwrwx

Valor Octal 0 1 2 3 4 5 6 7

9.2.

Permisses

O acesso a um arquivo definido por sua identificao de usurio, sua identificao de grupo e as permisses associadas ao arquivo. As permisses para um arquivo esto especificadas no modo de acesso. O modo de um arquivo um campo de 9 caracteres que define as permisses para o proprietrio do arquivo, para o grupo ao qual pertence e para todos os outros usurios do sistema. - r w- r - - r wx r - x d rwx r-x r-r-r-x 1 1 2 ricardo computacao 37 Ago ricardo computacao 127 Ago ricardo computacao 1024 Ago proprietrio grupo
Permisso de Acesso leitura e escrita leitura leitura leitura, escrita e execuo leitura e execuo leitura leitura, escrita e execuo leitura e execuo leitura e execuo

15 15 15

12:10 12:20 12:34

readme.txt .profile aula

Usurio Grupo Outros


Arquivo readme.txt

.profile

aula

Categoria usurio grupo outros usurio grupo outros usurio grupo outros

Tabela 6 - Exemplo de permisses de acesso

10.

COMANDOS DE MANIPULAO DE PERMISSO DE ACESSO

Apresentamos a seguir os principais comandos para a manipulao de permisso de acesso a arquivos. CHMOD Nome: Sinopse: Descrio:

chmod - muda o modo de permisso de arquivos. chmod [ugoa] [+-=] [rwx] arquivo ... o modo pode ser descrito de uma forma absoluta ou simblica. Absoluta: nmero octal construdo de um OR dos modos abaixo: 400,040,004 - leitura para o dono, grupo e outros 200,020,002 - escrita para o dono, grupo e outros 100,010,001 - execuo para o dono, grupo e outros

25

Simblica: classe de acesso (u, g, o, a) u: dono (user) g: grupo o: outros a: todos (all)

+ operador + tipo de acesso (+, -, =) (r, w, x) +: adiciona permisso r: leitura (read) - : remove permisso w: escrita (write) =: troca as permisses x: executar

No modo simblico, a maneira de trocar os tipos de acesso existentes do arquivo, para nenhum tipo de acesso (---) utilizado o sinal de = sem nenhum valor sendo atribudo. Exemplos: $ ls -l total 2 -rw-r--r-drwx------

1 antonio users 32 3 antonio users 512

Jun 17 22:40 arquivo.txt Jun 17 21:05 teste/

$ chmod 000 * $ ls -l total 2 ---------1 antonio users 32 d--------3 antonio users 512

Jun 17 22:40 arquivo.txt Jun 17 21:05 teste/

$ chmod u=r, g=w, o=x arquivo.txt $ ls -l total 2 -r---w---x 1 antonio users 32 Jun 17 22:40 arquivo.txt d --------3 antonio users 512 Jun 17 21:05 teste/ $ chmod 421 teste $ ls -l total 2 -r---w---x 1 antonio users 32 dr---w---x 3 antonio users 512 $ chmod 221 teste $ ls -l total 2 -r---w---x 1 antonio users 32 d-ww---x 3 antonio users 512

Jun 17 22:40 arquivo.txt Jun 17 21:05 teste/

Jun 17 22:40 arquivo.txt Jun 17 21:05 teste/

$ chmod u= ,g= ,o= arquivo.txt teste $ ls -l total 2 ---------1 antonio users 32 Jun 17 22:40 arquivo.txt d--------3 antonio users 512 Jun 17 21:05 teste/ UMASK Nome: Sinopse: Descrio:

umask - muda a mscara de modo para criao de arquivos do usurio umask [modo] o comando umask muda a mscara de modo para criao de arquivos de usurio bd d d ifi d O d df l l d i
26

obedecendo o modo especificado. O modo default usual de permisses num arquivo recm criado rw-rw-rw (qualquer usurio do sistema pode modificar o arquivo) e num diretrio recm criado rwxrwxrwx (qualquer usurio pode mudar este diretrio e apagar qualquer coisa deste diretrio). Utilize o comando umask para proteger os arquivos que sero criados durante sua sesso, desabilitando as permies default designadas em qualquer arquivo ou diretrio a ser criado. O acesso de escrever para grupo e outros so as permisses mais importantes de serem desativadas. A mscara designada fica ativa at o fim da sesso. Para desabilitar a mscara e retornar ao modo default, digite o comando umask 000. Utilizar o comando touch para criar um arquivo vazio. Se o arquivo j existe, somente ser atualizada a hora e dia de criao do mesmo, sem afetar o contedo do arquivo. Exemplos: $ touch arquivo1.txt $ ls -l arquivo1.txt -rw-rw-rw- 1 antonio $ umask 026 $ umask 026 026 $ touch arquivo2.txt $ ls -l arquivo2.txt -rw-r----- 1 antonio

users

32

Jun 17 22:40 arquivo1.txt

users

32

Jun 17 22:43 arquivo2.txt

CHOWN Nome: Sinopse: Descrio:

chown - muda o dono de um arquivo chown [-f ] [-R ] novo_dono arquivo o comando chown muda o dono de um arquivo para o novo_dono especificado. O novo_dono pode ser um UID vlido ou um nome de login vlido. Somente o superusurio (root) pode usar o comando chown -f -R fora a mudana, no reportando os erros; aplica o comando recursivamente aos sub-diretrios, mudando seus donos.

Opes:

Exemplos: CHGRP Nome: Sinopse: Descrio: Opes: Exemplos:

$ chown antonio /home

chgrp - muda o grupo associado com o arquivo chgrp [-f ] [-R ] grupo arquivo o comando chgrp muda o grupo associado a um determinado arquivo. -f -R fora a mudana, no mostrando os erros; executa o comando recursivamente, aplicando a todos os sub-diretrios.

$ chown -R users arquivo.txt

27

NEWGRP Nome: Sinopse: Descrio:

newgrp - muda a identificao do grupo newgrp [group_name ] o comando newgrp muda a identificao de grupo para o usurio chamador. O usurio permanece conectado ao sistema e o diretrio corrente permanece o mesmo, porm as permisses de acesso aos arquivos passam a ser executadas respeitando-se o novo GID (identificador de grupo). Quando o comando newgrp usado sem parmetro, o GID alterado para o GID de login.

Exemplos:

$ ls -l arquivo1.txt -rw-rw-rw- 1 antonio users1 arquivo1.txt $ id uid=303 (antonio), gid=100 (users1) $ newgrp users2 $ id uid=303 (antonio), gid=130 (users2)

32 Jun

17

22:40

SU Nome: Sinopse: Descrio: su - muda a designao de Id de usurio su [nome_usurio] o comando su permite a um usurio tornar-se temporariamente outro usurio, ou seja, cria uma subsesso com um novo Id de usurio e concede acesso a todos os arquivos que pertencem ao usurio designado por Id. Por questo de segurana ser solicitado a senha da conta para que a troca de usurio ocorra. Sem argumentos, o comando su assume o usurio root (administrador do sistema). Para retornar ao user inicial digite o comando exit. Este comando vai fechar a subsesso. Exemplos: $ id uid=303 (antonio), gid=100 (users1) $ su marcelo Password: $ id uid=345 (marcelo), gid=100 (users1) $ exit

28

11.

EDITOR

Os editores de texto permitem a criao, edio e visualizao de arquivos no formato texto.

11.1. Alguns Editores


Existem vrios editores de texto para o UNIX. O vi o editor de textos padro do UNIX. No existe um UNIX que no tenha o vi. O joe um editor de texto que foi lanado no Linux, para fazer companhia ao vi e oferecer um pouco das interfaces amigveis dos editores do DOS. O joe semelhante ao WordStar. Todos os comandos para manipulao de textos so idnticos aos deste editor para DOS. Outro editor de textos o pico um editor de texto simples, fcil de usar, com o layout bem parecido ao editor de mail pine. Ambos foram desenvolvidos na Universidade de Washington.

11.2. vi
O editor vi inicializa em Modo de Comando. A inicializao do vi da forma: $ vi [-R -r [arquivo] ] [arquivo]

-R entra no vi em modo de leitura, no permitindo modificar o arquivo. -r [arquivo] recupera a ltima edio salva de um arquivo antes de um crash. Comandos Gerais Esc N :set termina o modo de insero muitos comandos permitem que se digite um inteiro n antes dele, de modo que o comando seja executado n vezes permite definir: nu numerao ts= tabs prefixando um atributo com no ir desativ-lo Movimento do Cursor h l k j w move o cursor uma posio a esquerda move o cursor uma posio a direita move o cursor uma linha acima move o cursor uma linha abaixo move o cursor uma palavra para frente
29

b ) ( H M L G nG

move o cursor uma palavra para trs move o cursor uma pargrafo para frente move o cursor uma pargrafo para trs move o cursor uma para o topo da tela move o cursor uma para o meio da tela move o cursor uma para o final da tela move o cursor uma para o final do arquivo move o cursor uma para a linha n Controle de Pginas

^E ^D ^F ^Y ^U ^B obs.:

rola a tela para baixo linha a linha rola a tela para baixo meia tela rola a tela para baixo uma tela inteira rola a tela para cima por uma linha rola a tela para cima meia tela rola a tela para cima uma tela inteira ^ = Ctrl

Modificao de Texto rx dd dw X U substitui o caracter sobre o cursor por x apaga a linha corrente apaga a palavra sob o cursor apaga o caracter sobre o cursor desfaz a ltima modificao Gravando e Saindo w: [arquivo] grava o arquivo editado (grava com arquivo, se especificado) ZZ :wq :q :q! grava o arquivo e sai grava o arquivo e sai sai (se o arquivo foi modificado mostra mensagem de advertncia) sai sem salvar as modificaes

30

Modo de Insero A entrada no modo de insero ocorre atravs dos seguintes caracteres: a, A, i, I, o, O. A A I I O O obs.: entra no modo de insero e posiciona o cursor uma posio na frente da atual entra no modo de insero e posiciona o cursor no final da linha entra no modo de insero e no altera a posio do cursor entra no modo de insero e posiciona o cursor no incio da linha entra no modo de insero e adiciona uma linha em branco abaixo da linha atual entra no modo de insero e adiciona uma linha em branco acima da linha atual a tecla Esc sai do modo de insero e entra no modo de comando

11.3. joe
A inicializao do joe da forma: $ joe [arquivo] Movimento do Cursor ^B ^F ^P ^N ^Z ^X ^KF ^L uma posio esquerda uma posio direita uma linha acima uma linha abaixo palavra anterior prxima palavra encontra texto encontra o prximo Movimento de Tela ^U ^V ^A ^E ^KU ^KV tela anterior prxima tela comeo da linha fim da linha incio do arquivo fim do arquivo

31

^KL

ir para a linha nmero ... Comandos de Bloco

^KB ^KK ^KM ^KC ^KW ^KY

incio do bloco fim do bloco move o bloco para a posio do cursor copia o bloco para a posio do cursor salva o bloco em arquivo apaga o bloco Comandos de Remoo apaga caracter apaga linha apaga palavra direita apaga palavra esquerda apaga at o final da linha desfaz o ltimo comando refaz o ltimo comando ^ ^ = Ctrl ^ ^ = Ctrl Diversos

^D ^Y ^W ^O ^J ^_ ^^ obs.:

^KJ ^T ^R

reformata pargrafo opes redesenha a tela Comandos de Sada

^KX ^C ^KZ

salva arquivo e sai do editor aborta edio executa o shell (interpretador de comandos) Comandos de Arquivos

^KE ^KR

editar arquivo inserir arquivo


32

^KD

salvar arquivo

33

11.4. pico
A inicializao do pico da forma: $ pico [arquivo] Quando arquivo no informado, abre tela para edio de novo arquivo. Caso contrrio, edita o arquivo indicado. A linha de status no topo da tela mostra a verso do pico, o arquivo que est sendo editado e uma mensagem que diz se h ou no modificaes em relao ao arquivo original. A terceira linha, a partir do final da tela, utilizada para exibir mensagens e para entradas adicionais dos comandos. As duas ltimas linhas da tela exibe os comandos de edio disponveis. Cada caracter digitado automaticamente inserido na posio onde se encontra o cursor. Comandos de edio e movimento de cursor (alm das teclas de seta) so dados pela combinao de teclas. A descrio dessas funes feita a seguir, onde o smbolo ' ^ ' representa a tecla ' Ctrl ' . Comandos Gerais ^G (F1) exibem um texto de ajuda (em ingls)

^T (F12) executa o verificador de ortografia (para lngua inglesa). ^C (F11) exibe relatrio da posio atual do cursor. Movimento do Cursor ^F ^B ^N ^P ^A ^E ^V (F8) ^Y (F7) avana um carter. retorna um carter. avana uma linha retorna uma linha. retorna ao incio da linha corrente. avana ao fim da linha corrente avanam uma pgina. retornam uma pgina.

Comandos de Edio ^W (F6) ^L ^D ^^ procuram pelo texto informado, sem diferenciar minsculas/maisculas. atualiza a tela. deleta o caracter na posio do cursor. marca o incio de uma seleo na posio do cursor. obs.: j existindo texto selecionado, ' ^ ^ ' desmarca a seleo.
34

^K (F9)

recortam texto selecionado ou linha onde est o cursor (quando no h texto selecionado).

^U (F10) retornam o texto recortado, inserindo na posio corrente do cursor. ^I ^J (F4) insere uma marca de pargrafo (tab) na posio corrente do cursor. formatam (justifique) o pargrafo atual. obs: pargrafos so delimitados por linhas em branco ou espaos em branco no incio de linhas.

Comando de Arquvos ^R (F5) insere um arquivo externo na posio corrente do cursor. ^O (F3) ^X (F2) salva o texto da tela em um arquivo. sai do pico, salvando o arquivo.

12.

PROCESSOS

Um processo um programa de execuo independente que tem seu prprio conjunto de recursos. Para um mesmo programa (entidade esttica), podem existir vrios processos (entidades dinmicas). O UNIX, como sistema operacional multitarefa, permite a existncia de vrios processos ao mesmo tempo. Em mquinas monoprocessadas, o kernel do UNIX se encarrega de escalonar os recursos de execuo do nico processador, para os vrios processos do sistema. J em mquinas multiprocessadas, pode-se ter processos executando em paralelo, e no concorrentemente como nas mquinas monoprocessadas. Quando for digitado algum comando no ambiente do UNIX, este comando executado como um processo subordinado (chamado processo filho) do processo corrente (chamado processo pai). Todos os processos criados pelo usurio so filhos do processo de login.

Processo PAI

Processo A

Processos FILHO

Processo B

Processo C

Processo D

Processo E

35

Figura 12 - processo e subprocessos O sistema operacional tem muitos recursos que devem ser gerenciados, inclundo recursos de hardware e software. Um dos recursos de software que deve ser gerenciado um programa em execuo. As caractersticas do processo so: um programa que pode ser executado concorrentemente. Pode ser criado e destruido Possui recursos alocados para ele Possui um ambiente associado a ele que: herdado do processo pai, consiste de todas as informaes relativas ao processo e pode ser alterado atravs de comandos no ambiente de shell Pode criar outros processos Pode se comunicar com outros processos

No UNIX cada processo possui o seu prprio ambiente onde existem todas as informaes relativas ao processo e que afetam a sua execuo: Dados Arquivos abertos Diretrio corrente User ID Process ID Parente Process ID Conjunto de variveis

12.1. Executando Processos em Background e Foreground


Quando voc executa um comando shell ou um script, por default executado em foreground (primeiro plano). Quando termina a execuo do comando s ento possvel executar outro pelo prompt do UNIX.. Isto ocorre porque quando um comando est sendo executado em foreground o shell no pode aceitar outra entrada at que a execuo seja concluda. Para permitir mais do que um comando sendo executado ao mesmo tempo, os comandos precisam ser executados em background que no possui controle direto da entrada e sada de dados do terminal. Este mtodo aconselhvel quando o comando a ser executado consome tempo de CPU e no requer entrada de dados interativa. Como exemplo citamos programas de classificao de dados, compilao, clculos matemticos complexos. Para que um programa seja executado em background acrescente o caracter & aps o comando no prompt do UNIX: $ ls -la & Quando um processo colocado em background, o shell informa o nmero do job e a identificao do processo (process-ID se a opo monitor estiver ligada: set -o monitor). O nmero do job identifica o nmero do pedido do job na sua sesso do terminal, e process-ID identifica o nmero que o sistema UNIX associa a cada processo executado. A opo monitor tambm envia uma mensagem quando exibida quando o processo em background concludo.

36

Outra caracterstica que os comandos executados em background no podem ser interrompidos com a tecla Ctrl-c que suspende o job corrente em foreground, e um prompt do Shell fornecido ao usurio para a execuo de novas tarefas. Ao pressionar ^Z, um sinal de suspenso (SIGTSTP) enviado para o processo ou grupo de processos que esto executando, fazendo com que estes parem sua execuo e fiquem suspensos. Esse sinal pode ser tratado pelo programa, de modo que ele no seja aceito, no suspendendo os processos disparados por aquele programa. O login Shell o lder da sesso, e todos os processos criados na sesso so filhos deles. Quando processos em background de uma sesso tem seu processo pai finalizado, eles passam automaticamente a serem filhos diretos do processo init e continuam sua execuo at o seu trmino. O processo init criado no momento da inicializao do sistema (boot) com PID igual a 1, e somente termina quando o sistema desligado (shutdown).

12.2. Comandos de Controle de Processos


O UNIX disponibiliza alguns comandos para a manipulao de processos conforme apresentados a seguir: PS Nome: Sinopse: Opes: ps - permite ao usurio visualizar os processos do sistema. ps [-a] [-l ] [-u ] [-e] [-f] -a -l -u -e -f inclui informaes sobre todos os processos do sistema; apresenta sada em formato longo; apresenta informaes do usurio e hora de incio dos processos. apresenta uma lista completa dos processos, com exceo dos proc. do kernel apresenta uma lista completa dos processos

Descrio: Exemplo:

sem nenhum parmetro, apresenta somente os processos do usurio na sesso, em formato resumido. $ ps PID TTY 1058 pp0 1071 pp0 STAT TIME CMD S 21:09 -bash R 21:09 ps SIZE RSS WCHAN 368 532 11cac5 57 188 0 STAT TTY TIME CMD S pp0 21:09 -bash R pp0 21:09 ps -l

$ ps -l UID PID PPID PRI NI 525 1118 1117 5 0 525 1171 1118 24 0 BG Nome: Sinopse: Descrio:

bg - permite ao usurio enviar um processo/grupo de processos para execuo em segundo plano (background) bg [% nmero_do_job ] sem nenhum parmetro, o comando bg assume o job corrente. O nmero do job apresentado no terminal no momento em que esse foi suspenso, ou pode ser listado com o comando jobs, o qual apresentar a lista de jobs do Shell corrente.

37

Exemplo:

$ man ps ^Z Stopped $ jobs [1] + Stopped $ bg %1 [1] man ps & $ jobs [1] + Stopped (tty output) man ps man ps

FG Nome: fg - permite ao usurio trazer um processo/grupo de processos para execuo em primeiro plano (foreground) Sinopse: Descrio: fg [% nmero_do_job ] sem nenhum parmetro, o comando fg assume o job corrente. O nome do job pode ser referenciado pelo nmero do job quando precedido pelo sinal de percentual (%) ou o PID. $ jobs [1] + Stopped (tty output) $ fg %1 man ps KILL Nome: Sinopse: Opes: Descrio: man ps

Exemplo:

kill - objetiva enviar sinais (interrupes de software) para processos kill [-sinal ] pid kill [-l ] -sinal -l envia o sinal especificado ao(s) processo(s) (pid); apresenta lista de sinais que podem ser utilizados com o comando kill.

Cada sinal tem um nmero e um nome de identificao. Os mais utilizados so o SIGKILL(9) e SIGTSTP(20). O sinal SIGKILL, quando enviado a um processo, termina sua execuo, desde que o usurio seja o dono do processo ou seja o superusurio. O SIGTSTP pode ser enviado a um processo ou grupo de processos em foreground, provocando sua suspenso. Esse sinal tambm enviado quando se aciona as teclas Ctrl+Z (^Z). Quando o comando kill executado sem parmetros, o sinal enviado o SIGTERM (15) ou terminate, que provoca o trmino do(s) processo(s) especificado(s). Os programas podem desabilitar a recepo do terminate para seus processos. O parmetro pid pode ser obtido listando os processos, atravs do comando ps. $ kill -l 1) SIGHUP 5) SIGTRAP 9) SIGKILL 13) SIGPIPE SIGCHLD 18) SIGCONT SIGTTIN 22) SIGTTOU 2) SIGINT 6) SIGIOT 10) SIGUSR1 14) SIGALRM 19) SIGSTOP 23) SIGURG 3) SIGQUIT 4) SIGILL 7) SIGBUS 8) SIGFPE 11) SIGSEGV 12) SIGUSR2 15) SIGTERM 17) 20) SIGTSTP 24) SIGXCPU 21) 25) SIGXFSZ
38

Exemplo:

26) SIGVTALRM 30) SIGPWR

27) SIGPROF

28) SIGWINCH

29) SIGIO

$ kill -9 1234 $ kill -SIGKILL 1234 NICE Nome: Sinopse: Descrio:

nice - executa um processo estabelecendo sua prioridade. nice [-incremento ] comando_linha Comando de prefixo que permite executar um programa estabelecendo sua prioridade. Programas com baixa prioridade ganham menos acessos aos recursos do sistema. O incremento um nmero inteiro com valor entre -20 a +20. O default do incremento 10. Um processo com valor de nice maior o que tem menor prioridade relativa no sistema. O valor nice no um modificador absoluto de prioridade. Para ver as prioridades dos processos utlize o comando ps -l. As prioridades so exibidas sob a coluna intitulada PRI. Jobs que tm maior prioridade tero o valor de prioridade mais baixo. O valor nice exibido sob a coluna intitulada NI $ nice -20 cc myprog.c -o myprog (dispara o processo cc com alta priorid. $ nice 5 sort * > sort.out

Exemplo:

CRONTAB Nome: Sinopse:

crontab - executa comandos periodicamente na data e hora programada crontab [-l | -v ] [-r] [arquivo] -l -r -v arquivo exibe o contedo do arquivo crontab remove o arquivo crontab do diretrio crontab exibe o nome do seu arquivo crontab e a data e a hora que voc submeteu-o com o crontab coloca o arquivo (comandos) na fila para execuo

Descrio:

O comando crontab coloca comandos na fila do daemon cron para serem processados. O arquivo que contm informaes sobre os comandos a serem executados com as respectivas datas, serve como entrada de dados para o comando crontab. O UNIX possui um daemon chamado cron que executa comandos shell na data e hora especificada e de forma peridica. O daemon cron: - inicializado quando o sistema operacional inicializado at que ocorra uma falha no sistema ou seja executado um shutdown. - cria um log de atividades - checa o arquivo crontab no diretrio /usr/spool/cron/crotabs periodicamente em busca de jobs. O formato do arquivo crontab mostrado a seguir. Crie o arquivo com um editor de textos e ento submeta o arquivo usando o comando crontab. Cada usurio pode ter apenas 1 arquivo crontab ativo num determinado tempo. O arquivo crontab pode conter mais que uma linha de comando. Cada linha no arquivo consiste de seis campos que so separados por espaos ou tabs. Exemplo de um arquivo crontab:

20 *

* 1-5 /usr/adm/cleanup

39

comando a ser executado (diretrio deve ser informado) dias da semana (0 a 6, onde 0 = domingo) meses (1 a 12, onde * = todos) dias do ms (1 a 31, onde * = todos) hora (0 s 23 hs) minuto (0 59 min.) Exemplo: $ crontab limpeza_semanal $ crontab -l 30 13 * 1 1-15 $ crontab -v crontab file: your submission time: Thu Jan 02 13:00:29 1992

13.

TAREFAS ADMINISTRATIVAS

13.1. Iniciando o Sistema


A inicializao do sistema feita ligando-se o computador. Ser carregado o sistema operacional e o sistema ficar em estado de funcionamento para voc poder abrir uma sesso e trabalhar. Normalmente, quando voc liga o sistema, o boot ser feito com o primeiro sistema operacional que for encontrado: o disco rgido ou um disquete. Este mtodo conhecido como unattended boot. H mtodos de interrupo automtica no processo de boot, permitindo um boot interativo do sistema. Este mtodo, que deve ser executado na console do sistema, conhecido como attended boot e normalmente usado pelo administrador do sistema para dar boot a partir de uma mdia (kernel) alternativa. Se voc precisar saber o nome e a verso do sistema operacional que est carregado no seu computador utilize o comando uname -a.

13.2. Finalizando o Sistema


Muitas vezes o sistema UNIX est em um modo que permite vrios usurios conectados ao mesmo tempo. Consequentemente existiro vrios processos de usurios sendo executando no sistema num dado momento. A primeira regra : NUNCA DESLIGUE A ENERGIA DO COMPUTADOR. Se o sistema UNIX for parado indevidamente, podem-se perder informaes e o sistema de arquivo pode ficar corrompido. Existem muitas razes para parar o sistema. Se um processo est ativo de modo estranho, tente usar o comando kill. Se este comando no resolver o problema, o sistema precisa ser parado e reinicializado. Vrios mtodos podem ser utilizados para parar o sistema e o comando shutdown o mais utilizado. S aps que o equipamento deve ser desligado.

40

O administrador do sistema que tem a autorizao para desligar o sistema e dever estar no diretrio raiz (/) para executar o comando. Nome: Sinopse: Opes: shutdown - finaliza a operao do sistema shutdown[ [-r | -h] [tempo] -r reboot automtico aps o shutdown -h pra o sistema aps o shutdown tempo nmero de segundos opcionais de espera antes de terminar todos os processos $ shutdown -h 300

Exemplo: 14.

REFERNCIAS BIBLIOGRFICAS

http://www.linux.org - Home page da Linux Organization, site oficial do Linux http://sunsite.unc.edu/mdw/linux.html - Site com projeto de documentao do Linux em Ingls http://www.conectiva.com.br/cpub/pt/principal/index.php Site da Conectiva
http://br.tldp.org/documentos/livros/html/gas/ - Guia do administrador de sistemas em portugus http://www.ciagri.usp.br/linux.html Linux Page do projeto CIAGRI da USP http://www.linuxsecurity.com.br/article.php?sid=961 Linux Security Brasil htthttp://tux.cprm.net/.disk2/www.poli.org/rh/indice.html Manual de Instalao do Red Hat da Poli USP

41

Vous aimerez peut-être aussi