<< Back to man.lupaworld.com


[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ próximo ]

Referência Debian
Capítulo 4 - Tutoriais do Debian


Essa seção fornece uma orientação básica para o mundo Debian para o verdadeiro novato. Se você tiver usado algum sistema semelhante ao Unix por algum tempo, provavelmente sabe tudo que expliquei aqui. Por favor, use isso como uma verificação da realidade.


4.1 Começando

Depois da instalação do sistema Debian em seu PC, você precisa aprender algumas coisas para torná-lo útil. Vamos dar-lhe um treinamento expresso.


4.1.1 Login em um prompt shell como root

Após reiniciar o sistema, será apresentado a você uma tela de login gráfica ou baseada em caracteres dependendo de sua seleção inicial de pacotes. Para simplificar, se lhe for apresentada uma tela de login gráfica, pressione Ctrl-Alt-F1 [2] para obter a tela de login baseada em caracteres.

Suponha que o nome de seu sistema é foo, o prompt de login parece assim:

     foo login:

Digite root, pressione a tecla Enter e digite a senha que você selecionou durante o processo de instalação. No sistema Debian, seguindo a tradição Unix, a senha é sensível a maiúsculas/minúsculas. Então o sistema começa com uma mensagem de saudação e lhe apresenta o prompt de comando root aguardando sua entrada. [3]

     foo login: root
     Password: 
     Last login: Sun Oct 26 19:04:09 2003 on tty3
     Linux foo 2.4.22-1-686 #6 Sat Oct 4 14:09:08 EST 2003 i686 GNU/Linux
     
     Most of the programs included with the Debian GNU/Linux system are
     freely redistributable; the exact distribution terms for each program
     are described in the individual files in /usr/share/doc/*/copyright
     
     Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
     permitted by applicable law.
     
     root@foo:root#

Você está pronto para fazer a administração do sistema a partir desse prompt de comando root. Essa conta root também é chamada de super-usuário ou usuário privilegiado. A partir dessa conta, você pode fazer qualquer coisa:

É uma idéia extremamente ruim compartilhar o acesso para a conta root compartilhando a senha. O uso de um programa como o sudo(8) é a maneira certa de compartilhar privilégios administrativos.

Por favor note que considera-se um bom hábito de Unix fazer login para a conta de usuário não privilegiado mesmo quando você planeja fazer atividades administrativas. Use os comandos sudo, super, ou su -c para obter o privilégio de root limitado quando necessário. Veja Trabalhando de forma mais segura – sudo, Seção 9.2.4. [4]


4.1.2 Configurar um ambiente mínimo para novato

Eu acho que aprender um sistema de computador é como aprender um idioma estrangeiro novo. Apesar de livros tutoriais ajudarem, você tem que praticá-lo com ferramentas de ajuda. Nesse contexto, acho que é uma boa idéia instalar alguns pacotes adicionais tais como mc, vim, lynx, doc-linux-text e debian-policy. [5]

     # apt-get update
      ...
     # apt-get install mc vim lynx doc-linux-text debian-policy 
      ...

Se você já tiver esses pacotes instalados, nada será instalado.


4.1.3 Adicionar uma conta de usuário

Durante a instalação, normalmente se cria uma conta de usuário não privilegiado que recebe e-mails destinados à conta root. [6] Já que você não quer usar essa conta de usuário especial para as atividades de treinamento seguintes, você deve criar outra conta de usuário nova.

Supondo que você deseje que esse novo nome de usuário seja pinguim, digitar:

     root@foo:root# adduser pinguim
     ... responda todas as questões

irá criá-la. [7] Antes de ir adiante, vamos aprender algumas coisas primeiro.


4.1.4 Alternar entre consoles virtuais

No sistema Debian padrão, há seis pseudo-terminais independentes disponíveis, isto é, você pode usar a tela de console de caracter VGA do PC como 6 terminais VT-100 comutáveis. Mude de um para outro pressionando a telcla Alt esquerdo e uma das teclas F1–F6 simultaneamente. Cada pseudo-terminal permite login independente para contas. O ambiente multi-usuário é uma grande característica do Unix, e muito importante.

Se você acidentalmente pressionou Alt-F7 em um sistema executando o Sistema X Window e a tela de console mostrar uma tela gráfica, obtenha o acesso ao console de caracter novamente pressionando Ctrl-Alt-F1. Tente mudar para um console diferente e volte ao original para exercitar isso.


4.1.5 Como desligar

Como quaisquer outros SOs modernos onde a operação de arquivos envolve cache de dados na memória, o sistema Debian precisa de um procedimento de desligamento apropriado antes que a energia possa ser desligada de forma segura para manter a integridade dos arquivos. Use o comando seguinte a partir do prompt root para desligar o sistema:

     # shutdown -h now

Isso é para o modo multi-usuário normal. Se você estiver no modo usuário único, use o seguinte a partir do prompt de comando root:

     # poweroff -i -f

Alternativamente, você pode pressionar Ctrl-Alt-Delete para desligar. [8]

Espere até que o sistema mostre "System halted" e então desligue a energia. Se a função APM ou ACPI tiver sido ativada pelo Linux e BIOS apropriadamente, o sistema se desligará sozinho. Veja Memória grande e autodesligamento, Seção 3.7.4 para maiores detalhes.


4.1.6 Hora do jogo

Agora você está pronto para brincar com seu sistema Debian sem riscos desde que você use essa conta de usuário não privilegiado pinguim. [9]

Vamos fazer login para o pinguim. Se você estiver no prompt shell root, pressione Ctrl-D [10] no prompt de comando root para fechar a atividade shell root e retornar ao prompt de login. Entre seu nome de usuário recém criado pinguim e a senha correspondente. [11] Será apresentado a você o seguinte prompt de comando.

     pinguim@foo:pinguim$

A partir daqui, o exemplo dado usará o prompt de comando simplificado por facilidade. Eu usarei:

Nós começaremos aprendendo o sistema Debian primeiro da maneira fácil, Midnight Commander (MC), Seção 4.2 e mais tarde da maneira apropriada, Ambiente de trabalho semelhante ao Unix, Seção 4.3.


4.2 Midnight Commander (MC)

O Midnight Commander (MC) é um "canivete suíço" do GNU para o console Linux e outros ambientes de terminal. Isso dá ao novato uma experiência com o console baseada em menu que é muito mais fácil de aprender que os comandos Unix padrões.

Use esse comando para explorar o sistema Debian. Essa é a melhor maneira de aprender. Por favor, explore alguns locais chave simplesmente usando as teclas de cursor e a tecla Enter:


4.2.1 Melhorar o MC

Para fazer com que o MC mude o diretório de trabalho ao sair, você precisa modificar seu arquivo ~/.bashrc (ou /etc/bash.bashrc, chamado a partir do .bashrc), como detalhado em sua página de manual, mc(1), sob a opção -P. [12]


4.2.2 Iniciar o MC

     $ mc

O MC cuida de todas as operações de arquivo através de seu menu, requerendo esforço mínimo do usuário. Simplesmente pressione a F1 para obter a tela de ajuda. Você pode brincar com o MC simplesmente pressionando as teclas de cursor e as teclas de função. [13]


4.2.3 Gerenciador de arquivos no MC

O padrão são dois painéis de diretórios contendo listas de arquivos. Outro modo útil é definir a janela direita para "info" para ver a informação de privilégio de acesso dos arquivos, etc. A seguir estão alguns comandos de teclado essenciais. Com o daemon gpm sendo executado, pode-se usar o mouse também. (Não esqueça de pressionar a tecla shift para ter o comportamento normal de cortar e colar no MC.)


4.2.4 Truques de linha de comando no MC


4.2.5 Editor no MC

O editor interno tem um interessante esquema de cortar-e-colar. Pressionando F3, marca-se o início da seleção, um segundo F3 marca o fim e destaca a seleção. Você pode então mover seu cursor. Se você pressionar F6, a área selecionada será movida para o local do cursor. Se pressionar F5, a área selecionada será copiada e inserida no local do cursor. Para salvar o arquivo, tecle F2. Para sair, use o F10. Muitas teclas de cursor funcionam intuitivamente.

Esse editor pode ser iniciado diretamente em um arquivo:

     $ mc -e nome_do_arquivo_a_editar
     $ mcedit nome_do_arquivo_a_editar

Esse editor não é multi janela, mas pode-se usar vários consoles Linux para obter o mesmo efeito. Para copiar entre janelas, use as teclas Alt-Fn para alternar entre os consoles virtuais e use "Arquivo->Inserir arquivo" ou "Arquivo->copiar para Arquivo" para mover uma parte de um arquivo para outro.

Esse editor interno pode ser substituído por qualquer editor externo de sua escolha.

Além disso, muitos programas usam as variáveis de ambiente EDITOR ou VISUAL para decidir qual editor a ser usado. Se você não se sentir confortável com o vim, defina essas variáveis para o mcedit adicionando essas linhas ao arquivo ~/.bashrc:

     ...
     export EDITOR=mcedit
     export VISUAL=mcedit
     ...

Eu recomendo que elas sejam definidas para vim se possível. Aprender os comandos do vim é a coisa certa a fazer, já que o editor Vi está sempre lá no mundo Linux/Unix. [14]


4.2.6 Visualizador no MC

Esse é um visualizador muito esperto. É uma grande ferramenta para procurar palavras em documentos. Eu o uso sempre para os arquivos no diretório /usr/share/doc. Essa é a maneira mais rápida de navegar entre as massas de informação do Linux. Esse visualizador pode ser iniciado diretamente assim:

     $ mc -v nome_do_arquivo_a_visualizar

4.2.7 Recursos de auto início no MC

Pressione Enter em um arquivo, e o programa apropriado manipulará seu conteúdo. Esse é um recurso muito conveniente do MC.

     arquivo executável:   Executa o comando
     arquivo man, html:    Direciona o conteúdo para o programa visualizador
     arquivo tar.gz, deb:  Navega em seu conteúdo com se fosse um subdiretório

Para permitir que esses recursos de visualizador e arquivo virtual funcionem, os arquivos visualizáveis não devem estar definidos como executáveis. Mude seus estados usando o comando chmod através do menu de arquivo do MC.


4.2.8 Sistema de arquivo virtual FTP no MC

O MC pode ser usado para acessar arquivos na Internet usando FTP. Vá para o menu pressionando F9, e então tecle `p' para ativar o sistema de arquivos virtual FTP. Entre uma URL na forma nomeusuario:senha@nomemaquina.nomedominio, e será obtido um diretório remoto, que parecerá como um local.

Tente http.us.debian.org/debian como URL e navegue o repositório de arquivos do Debian. Veja Os repositórios Debian, Seção 2.1 para detalhes sobre como eles são organizados.


4.3 Ambiente de trabalho semelhante ao Unix

Apesar de o MC possibilitar que você possa fazer quase tudo, é muito importante para você que aprenda como usar as ferramentas de linha de comando invocadas a partir do prompt shell e se torne familiar com o ambiente de trabalho semelhante ao Unix. [15]


4.3.1 Comandos de teclado especiais

No ambiente similar ao Unix, há alguns comandos de teclado que tem significados especiais. [16]

O shell padrão, bash, tem capacidades de edição de histórico e tab-completar para ajudar o uso interativo.

Outros comandos de teclado importantes a lembrar:

Aqui, para usar um mouse no console de caracter do Linux, você precisa ter instalado o gpm como daemon. [18] Veja Configuração do mouse, Seção 3.3.


4.3.2 Comandos Unix básicos

Vamos aprender os comandos Unix básicos. [19] Teste todos os comandos seguintes a partir da conta de usuário não privilegiado pinguim:

Por favor cruze diretórios e mergulhe no sistema usando os comandos acima como um treinamento. Se você tiver questões sobre qualquer um dos comandos de console, por favor, certifique-se de ler a página de manual. Por exemplo, esses comandos são um bom começo:

     $ man man
     $ man bash
     $ man ls

Também é uma boa hora para iniciar o vim e pressionar a tecla F1. Você deve ler pelo menos as primeiras 35 linhas. Então faça o curso de treinamento online movendo o cursor para |tutor| e pressionando Ctrl-]. Veja Editores, Capítulo 11 para aprender mais sobre editores.

Por favor note que muitos comandos similares a Unix incluindo os do GNU e BSD mostrarão uma breve informação de ajuda se você invocá-los em uma das seguintes maneiras (ou sem nenhum argumento em alguns casos):

     $ nomedecomando --help
     $ nomedecomando -h

Teste também exemplos em Dicas Debian, Capítulo 8 como seu auto treinamento.


4.3.3 A execução de comando

Agora você tem alguma idéia de como usar o sistema Debian. Vamos olhar com mais profundidade o mecanismo da execução de comando no sistema Debian. [24]


4.3.4 Comando simples

Um comando simples é uma seqüência de

  1. atribuições de variáveis (opcional)
  2. nome de comando
  3. argumentos (opcional)
  4. redireções (opcional:> , >> , < , << , etc.)
  5. operador de controle (opcional: && , || ; <newline> , ; , & , ( , ) )

Para comandos mais complexos com aspas e substituições, veja Processamento de linha de comando, Seção 13.2.6.


4.3.5 Execução de comando e variável de ambiente

A execução de comando típica usa uma seqüência de linha shell como a seguinte: [25]

     $ date
     Sun Oct 26 08:17:20 CET 2003
     $ LC_ALL=fr_FR date
     dim oct 26 08:17:39 CET 2003

Aqui, o programa date é executado como o trabalho em primeiro plano (foreground). A variável de ambiente LC_ALL é:

Muitas execuções de comandos geralmente não têm uma definição de variável de ambiente precedendo. Para o exemplo acima, você pode executar alternativamente:

     $ LC_ALL=fr_FR
     $ date
     dim oct 26 08:17:39 CET 2003

Como você pode ver aqui, a saída do comando é afetada pela variável de ambiente para produzir saída em francês. Se você quiser que a variável de ambiente seja transmitida aos subprocessos (por exemplo, quando chamando um script shell), você precisa ao invés "export"á-la usando:

     $ export LC_ALL

4.3.6 Caminho de busca de comando

Quando você digita um comando no shell, o shell procura o comando na lista de diretórios contida pela variável de ambiente PATH. O valor da variável de ambiente PATH também é chamado de caminho de busca do shell.

Na instalação Debian padrão, a variável de ambiente PATH de uma conta de usuário não deve incluir /sbin. Então se você quiser executar quaisquer comandos como ifconfig de /sbin, você precisa mudar a variável de ambiente PATH para incluí-lo. A variável de ambiente PATH geralmente é definida pelo arquivo de inicialização ~/.bash_profile, veja Configuração do bash, Seção 3.2.


4.3.7 Opções de linha de comando

Alguns comandos levam argumentos. Os argumentos começando com - ou -- são chamados de opções e controlam o comportamento do comando.

     $ date
     Mon Oct 27 23:02:09 CET 2003
     $ date -R
     Mon, 27 Oct 2003 23:02:40 +0100

Aqui o argumento de linha de comando -R muda o comportamento do comando date para saída com data em conformidade com a RFC-2822.


4.3.8 Curingas (wildcards) de shell

Freqüentemente se deseja que um comando funcione com um grupo de arquivos sem digitar todos eles. O padrão de expansão de nome de arquivo usando os curingas do shell facilitam essas necessidades.

Por exemplo, teste o seguinte e pense por si mesmo:

     $ mkdir lixo; cd lixo; $ touch 1.txt 2.txt 3.c 4.h .5.txt
     $ echo *.txt
     1.txt 2.txt
     $ echo *
     1.txt 2.txt 3.c 4.h
     $ echo *.[hc]
     3.c 4.h
     $ echo .*
     . .. .5.txt
     $ echo .[^.]*
     .5.txt
     $ echo [^1-3]*
     4.h
     $ cd ..; rm -rf lixo

4.3.9 Valor de retorno do comando

Cada comando retorna seu estado de saída como o valor de retorno.

O valor de retorno pode ser acessado pela variável shell $? imediatamente após a execução.

Por favor note que, quando o valor de retorno é usado no contexto lógico para o shell, sucesso é tratado como o TRUE (VERDADEIRO) lógico. Isso é um pouco não intuitivo já que sucesso produz valor zero.

Veja Condicionais de shell, Seção 13.2.5.


4.3.10 Seqüências de comando típicas

Vamos tentar lembrar as seguintes expressões de comandos shell. Veja Parâmetros shell, Seção 13.2.3, Redirecionamento shell, Seção 13.2.4, Condicionais de shell, Seção 13.2.5, e Processamento de linha de comando, Seção 13.2.6 depois de ler essas expressões.


4.3.10.1 comando &

O comando é executado na subshell no plano de fundo (background). Tarefas em plano de fundo permitem que usuários executem vários programas em um único shell.

O gerenciamento de processos em plano de fundo envolve os comandos embutidos do shell: jobs, fg, bg, e kill. Por favor leia as seções da página de manual bash(1) em "SIGNALS", "JOB CONTROL", e "SHELL BUILTIN COMMANDS". [26]


4.3.10.2 comando1 | comando2

A saída padrão do comando1 é transmitida à entrada padrão do comando2. Ambos os comandos podem estar sendo executados ao mesmo tempo. Isso é chamado de pipeline.


4.3.10.3 comando1 ; comando2

O comando1 e o comando2 são executados seqüencialmente.


4.3.10.4 comando1 && comando2

O comando1 é executado. Se tiver sucesso, o comando2 também é executado seqüencialmente. Retorna sucesso se o comando1 ou o comando2 tiverem sucesso.


4.3.10.5 comando > foo

Redireciona a saída padrão do comando para um arquivo foo. (sobrescreve)


4.3.10.6 comando >> foo

Redireciona a saída padrão do comando para um arquivo foo (acrescenta (append))


4.3.10.7 comando > foo 2>&1

Redireciona tanto a saída padrão quanto a saída padrão de erro do comando para um arquivo foo.


4.3.10.8 comando < foo

Redireciona a entrada padrão do comando para um arquivo foo. Teste:

     $ </etc/motd pager
      ... (as saudações)
     $ pager </etc/motd
      ... (as saudações)
     $ pager /etc/motd
      ... (as saudações)
     $ cat /etc/motd | pager
      ... (as saudações)

Apesar de as 4 sintaxes mostrarem a mesma coisa, o último exemplo executa um comando cat extra e desperdiça recursos sem motivo.


4.3.11 Apelido (alias) de comando

Você pode definir um apelido (alias) para o comando usado freqüentemente. Por exemplo:

     $ alias la='ls -la'

Agora, la funciona como um atalho para ls -la que lista todos os arquivos em formato de listagem longa.

Você pode identificar o caminho (path) exato ou identidade do comando usando o comando type. Por exemplo:

     $ type ls
     ls is hashed (/bin/ls)
     $ type la
     la is aliased to `ls -la'
     $ type echo
     echo is a shell builtin
     $ type file
     file is /usr/bin/file

Aqui o ls foi procurado recentemente enquanto file não foi, então o ls está "hashed", isto é, o shell tem um registro interno para o acesso rápido da localização do comando ls.


4.4 Processamento de texto em similares a Unix

Há algumas ferramentas de processamento de texto que são usadas muito freqüentemente no sistema similar ao Unix.

Veja Substituição de expressões regulares, Seção 8.6.12, Pequenos scripts para ligar comandos, Seção 8.6.17, e Loucura de script Perl curto, Seção 8.6.19 para ter alguns exemplos de script.


4.4.1 Expressões regulares

Expressões regulares são usadas em muitas ferramentas de processamento de texto. Elas são análogas aos curingas de shell (veja Curingas (wildcards) de shell, Seção 4.3.8), mas são também mais complicadas e mais poderosas.

A expressão regular descreve um padrão de combinação e é feita de caracteres de texto e metacaracteres. O metacaracter é apenas um caracter com um significado especial. Há 2 estilos principais, ERB e ERE, dependendo das ferramentas de texto como descrito em Processamento de texto em similares a Unix, Seção 4.4.

Para as EREs, os metacaracteres incluem "\ . [ ] ^ $ * + ? ( ) { } |". A expressão regular significa:

Em ERBs os metacaracteres "+ ? ( ) { } |" perdem seu significado especial; ao invés disso use as versões com barra invertida "\+ \? \( \) \{ \} \|". Assim a construção de agrupamento (r1|r2) precisa ser colocada como \(r1|r2\) em ERBs. No emacs, apesar de ser basicamente ERB, "+ ?" são tratados como os metacaracteres. Então não há necessidade de usar barra invertida para eles. Veja Expressões de substituição, Seção 4.4.2 para saber como a construção de agrupamento é usada.

Por exemplo, o grep pode ser usado para fazedr a busca de texto usando a expressão regular:

     $ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL
                         GNU GENERAL PUBLIC LICENSE
                         GNU GENERAL PUBLIC LICENSE
       Yoyodyne, Inc., hereby disclaims all copyright interest in the program

4.4.2 Expressões de substituição

Para a expressão de substituição, os seguintes caracteres têm significados especiais:

Para string de substituição Perl, usa-se $n ao invés de \n e & não tem significado especial.

Por exemplo:

     $ echo zzz1abc2efg3hij4 | \
       sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/'
     zzz=1abc2efg3hij4=
     $ echo zzz1abc2efg3hij4 | \
       sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/'
     zzzefg3hij4===1abc
     $ echo zzz1abc2efg3hij4 | \
       perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/'
     zzzefg3hij4===1abc
     $ echo zzz1abc2efg3hij4 | \
       perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=&=/'
     zzz=&=

Aqui por favor preste uma atenção extra ao estilo da expressão regular entre parênteses e como as strings casadas são usadas no processo de substituição de texto em ferramentas diferentes.

Essas expressões regulares podem ser usadas para os movimentos de cursor e as ações de substituições de texto nos editores também.

Por favor leia todas as páginas de manual relacionadas para aprender esses comandos.


4.5 Sistema de arquivos em similares ao Unix

No GNU/Linux e outros SOs similares ao Unix, os arquivos são organizados em diretórios. [27] Todos os arquivos e diretórios são arranjados em uma grande árvore, a hierarquia de arquivos, com raiz em /.

Esses arquivos e diretórios podem ser distribuídos entre vários dispositivos. O comando mount(8) serve para anexar o sistema de arquivos encontrado em um dispositivo à grande árvore de arquivos. Inversamente, o comando unmount(8) desconecta o dispositivo novamente.


4.5.1 Básico de arquivos Unix

Aqui está o básico:

As melhores práticas detalhadas para a hierarquia de arquivos estão descritas no Padrão de Hierarquia de Sistema de Arquivos. Você deve se lembrar dos seguintes fatos como iniciante:


4.5.2 O conceito de sistema de arquivos no Debian

Seguindo a tradição Unix, o sistema Debian fornece o sistema de arquivos sob o qual os dados físicos em discos rígidos e outros dispositivos de armazenamento, e a interação com os dispositivos de hardware como telas de console e consoles seriais remotos são representados em uma forma unificada.

Cada arquivo, diretório, pipe nomeada, ou dispositivo físico em um sistema Debian tem uma estrutura de dado chamada inode que descreve seus atributos associados como o usuário que é seu dono, o grupo ao qual pertence, a hora do último acesso, etc.. Veja /usr/include/linux/fs.h para ter a definição exata da estrutura inode no sistema Debian GNU/Linux.

Essa representação unificada de entidades físicas é muito poderosa já que nos permite usar o mesmo comando para o mesmo tipo de operação em muitos dispositivos totalmente diferentes.

Todos os seus arquivos poderiam estar em um disco --- ou você poderia ter 20 discos, alguns deles conectados a computadores diferentes em algum lugar na rede. Você não pode dizer simplesmente olhando pela árvore de diretórios, e praticamente todos os comandos funcionam da mesma forma independentemente do tipo de dispositivo(s) físico(s) em que seus arquivos realmente estão.


4.5.3 Permissões de acesso de arquivos e diretórios

As permissões de acesso a arquivo e diretório são definidas separadamente para as três seguintes categorias de usuários afetados:

Para um arquivo, cada permissão correspondente possibilita:

Para um diretório, cada permissão correspondente possibilita:

Aqui, permissão de executar no diretório não significa apenas permitir a leitura dos arquivos em seu diretório, mas também permitir a visualização de seus atributos, como o tamanho e o tempo de modificação.

Para obter as informações de permissão (e outras) de arquivos e diretórios, usa-se o ls. Consulte ls(1). Quando o ls é invocado com a opção -l, exibe essas informações na seguinte ordem:

Para mudar o dono do arquivo, usa-se o chown a partir da conta root. Para mudar o grupo do arquivo, usa-se o chgrp a partir da conta do dono do arquivo ou da conta root. Para mudar as permissões de acesso de arquivo e diretório, usa-se o chmod a partir da conta do dono do arquivo ou da conta root. A sintaxe básica para manipular o arquivo foo é:

     # chown novodono foo
     # chgrp novogrupo foo 
     # chmod  [ugoa][+-=][rwx][,...] foo

Veja chown(1), chgrp(1), e chmod(1) para os detalhes.

Por exemplo, para fazer uma árvore de diretórios ser de propriedade de um usuário foo e compartilhada por um grupo bar, execute os seguintes comandos a partir da conta root:

     # cd /algum/local/
     # chown -R foo:bar .
     # chmod -R ug+rwX,o=rX .

Há mais três bits de permissão especiais:

Aqui a saída de ls -l para esses bits é transformada em maiúsculas se os bits de execução estiverem ocultos devido a essas saídas estarem desabilitadas.

Habilitar set user ID para um arquivo executável permite que um usuário execute o arquivo executável com ID do dono do arquivo (por exemplo root). Similarmente, definir set group ID em um arquivo executável permite que um usuário execute o arquivo executável com o group ID do arquivo (por exemplo root). Devido a esses ajustes poderem causar sérios riscos de segurança, suas habilitações requerem cuidado extra.

Habilitar set group ID para um diretório permite o esquema de criação de arquivo no estilo BSD, onde todos os arquivos criados no diretório pertencem ao grupo do diretório.

Habilitar sticky bit em um diretório impede que um arquivo no diretório seja removido por um usuário que não é dono do arquivo. Para assegurar o conteúdo de um arquivo em diretórios globalmente graváveis como /tmp ou em diretórios graváveis por grupo, é necessário não apenas que a permissão de escrita (write) esteja desativada para o arquivo, mas também ativar o sticky bit no diretório. Caso contrário, o arquivo pode ser removido e um novo arquivo pode ser criado com o mesmo nome por qualquer usuário que tenha permissão de escrita no diretório.

Aqui estão alguns exemplos interessantes das permissões de arquivo.

     $ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
     crw-rw----    1 root     dip      108,   0 Jan 18 13:32 /dev/ppp
     -rw-r--r--    1 root     root         1051 Jan 26 08:29 /etc/passwd
     -rw-r-----    1 root     shadow        746 Jan 26 08:29 /etc/shadow
     -rwsr-xr--    1 root     dip        234504 Nov 24 03:58 /usr/sbin/pppd
     $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
     drwxrwxrwt    4 root     root         4096 Feb  9 16:35 /tmp
     drwxrwsr-x   10 root     staff        4096 Jan 18 13:31 /usr/local
     drwxrwsr-x    3 root     src          4096 Jan 19 08:36 /usr/src
     drwxrwsr-x    2 root     mail         4096 Feb  2 22:19 /var/mail
     drwxrwxrwt    3 root     root         4096 Jan 25 02:48 /var/tmp

Há um modo numérico alternativo para descrever permissões de arquivo em comandos chmod(1). Esse modo numérico usa de 3 a 4 dígitos de números octais (base=8). Cada dígito corresponde a:

Isso parece complicado mas na verdade é muito simples. Se você olhar para as primeiras (2-10) colunas da saída do comando ls -l e lê-las como uma representação binária (base=2) de permissões de arquivo ("-" sendo "0" e "rwx" sendo "1"), esse valor de modo numérico deve fazer sentido como uma representação octal (base=8) das permissões de arquivo para você. [30] Por exemplo, teste:

     $ touch foo bar
     $ chmod u=rw,go=r foo
     $ chmod 644 bar
     $ ls -l foo bar
     -rw-r--r--    1 pinguim  pinguim  0 Nov  3 23:30  foo
     -rw-r--r--    1 pinguim  pinguim  0 Nov  3 23:30  bar

A máscara de permissão de arquivo padrão pode ser definida usando o comando interno de shell umask. Consulte builtins(7).


4.5.4 Marcas de tempo

Há três tipos de marcas de tempo para um arquivo GNU/Linux:

Note que ctime não é a hora de criação do arquivo.

Note que até uma simples leitura de um arquivo no sistema Debian normalmente causará uma operação de escrita de arquivo para atualizar a informação de atime no inode. Montar um sistema de arquivos com a opção noatime fará com que o sistema pule essa operação e resultará em acesso para leitura mais rápido. Veja mount(8).

Use o comando touch(1) para mudar as marcas de tempo de arquivos existentes.


4.5.5 Ligações (links)

Há dois métodos para associar um arquivo foo a um nome de arquivo diferente bar.

Veja no seguinte exemplo as mudanças no contador de ligações e as sutis diferenças no resultado do comando rm.

     $ echo "Conteúdo Original" > foo
     $ ls -l foo
     -rw-r--r--    1 osamu    osamu           4 Feb  9 22:26 foo
     $ ln foo bar     # ligação direta (hard link)
     $ ln -s foo baz  # ligação simbólica (symlink)
     $ ls -l foo bar baz
     -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 bar
     lrwxrwxrwx    1 osamu    osamu           3 Feb  9 22:28 baz -> foo
     -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 foo
     $ rm foo
     $ echo "Novo Conteúdo" > foo
     $ cat bar
     Conteúdo Original
     $ cat baz
     Novo Conteúdo

A ligação simbólica tem as permissões nominais de acesso de arquivo como "rwxrwxrwx", como mostrado no exemplo acima, com as permissões de acesso efetivas ditadas pelas permissões do arquivo apontado por elas.

O diretório . liga ao diretório em que aparece, então o contador de ligações de qualquer diretório novo começa com 2. O diretório .. liga ao diretório superior, então o contador de ligações do diretório aumenta com a adição de novos subdiretórios.


4.5.6 Pipes nomeados (FIFOs)

Um pipe nomeado é um arquivo que age como um pipe. Você coloca alguma coisa no arquivo e isso sai do outro lado. Então é chamado de FIFO, ou First-In-First-Out (Primeiro-Entra-Primeiro-Sai): a primeira coisa que você coloca no pipe é a primeira coisa que sai do outro lado.

Se você escrever em um pipe nomeado, o processo que está escrevendo no pipe não termina até que a informação que está sendo escrita seja lida pelo pipe. Se você ler de um pipe nomeado, o processo de leitura espera até que haja algo para ler antes de terminar. O tamanho do pipe é sempre zero --- ele não grava dados, apenas liga dois processos como o | do shell. Entretanto, como o pipe tem um nome, os dois processos não precisam estar na mesma linha de comando ou mesmo serem executados pelo mesmo usuário.

Você pode testar isso fazendo o seguinte:

     $ cd; mkfifo meupipe
     $ echo "olá" >meupipe & # põe em plano de fundo (background)
     [1] 5952
     $ ls -l meupipe
     prw-r--r--    1 pinguim pinguim  0 2003-11-06 23:18 meupipe
     $ cat meupipe
     hello
     [1]+  Done                    echo olá >meupipe
     $ ls meupipe
     prw-r--r--    1 pinguim pinguim  0 2003-11-06 23:20 meupipe
     $ rm mypipe

4.5.7 Soquetes

O soquete é similar ao pipe nomeado (FIFO) e possibilita que processos troquem informações. Para o soquete, esses processos não precisam ser executados ao mesmo tempo nem ser filhos do mesmo processo pai. Esse é o ponto final para a comunicação entre processos. A troca de informação pode ocorrer pela rede entre diferentes sistemas.


4.5.8 Arquivos de dispositivos

Arquivos de dispositivos se referem a dispositivos físicos ou virtuais em seu sistema, tais como seu disco rígido, sua placa de vídeo, monitor, ou teclado. Um exemplo de dispositivo virtual é o teclado, representado pelo /dev/console.

Há dois tipos de dispositivos:

Você pode ler ou escrever em arquivos de dispositivos, embora o arquivo possa conter dados binários que podem ser algo sem nexo, incompreensível para humanos. Escrever dados diretamente nesses arquivos algumas vezes é útil para resolução de problemas de conexões de hardware. Por exemplo, você pode enviar um arquivo texto para o dispositivo de impressora /dev/lp0 ou enviar comandos de modem para a porta serial apropriada /dev/ttyS0. Mas, a menos que isso seja feito com cautela, isso pode causar um grande desastre. Então seja cuidadoso.


4.5.8.1 /dev/null etc.

/dev/null é um arquivo de dispositivo especial que descarta qualquer coisa quq você escrever nele. Se você não quiser alguma coisa, envie para /dev/null. É essencialmente um poço sem fundo. Se você ler de /dev/null, obterá um caracter fim-de-arquivo (EOF) imediatamente.

/dev/zero é similar, mas se você ler a partir dele obtém o caracter \0 (não o mesmo que o número zero ASCII). Veja Arquivos Falsos, Seção 8.6.33.


4.5.8.2 Número de nó de dispositivo

O número de nó de dispositivo é mostrado executando ls assim:

     $ ls -l /dev/hda /dev/ttyS0 /dev/zero
     brw-rw----    1 root     disk       3,   0 Mar 14  2002 /dev/hda
     crw-rw----    1 root     dialout    4,  64 Nov 15 09:51 /dev/ttyS0
     crw-rw-rw-    1 root     root       1,   5 Aug 31 03:03 /dev/zero

Aqui,

No sistema mais antigo, o processo de instalação cria os nós de dispositivos usando o comando /sbin/MAKEDEV. Veja a página de manual MAKEDEV(8).

No sistema mais novo, o sistema de arquivos sob o /dev é povoado automaticamente pelo sistema de arquivos de dispositivos de forma similar ao sistema de arquivos /proc.


4.5.9 Sistema de arquivo /proc

O sistema de arquivos /proc é um pseudo sistema de arquivos e contém informações sobre o sistema e processos que estão sendo executados.

As pessoas freqüentemente se apavoram quando notam um arquivo em particular - /proc/kcore - que é geralmente enorme. Ele é (mais ou menos) uma cópia do conteúdo da memória de seu computador. É usado para depurar (debug) o kernel. Ele não existe realmente em lugar nenhum, então não se preocupe com seu tamanho.

Veja Ajustando o kernel pelo sistema de arquivos proc, Seção 7.3 e a página de manual proc(5).


4.6 Sistema X Window

Veja X, Seção 9.4.


4.6.1 Iniciar o Sistema X Window

O Sistema X Window pode ser iniciado automaticamente com um daemon de login gráfico similar ao xdm ou digitando o seguinte a partir do console.

     $ exec startx

4.6.2 Menu no Sistema X Window

Como o ambiente X pode acomodar muitos gerenciadores de janelas, suas interfaces de usuário variam bastante. Por favor, lembre-se de que clicando com o botão direito no plano de fundo (root window), obtem-se um menu de seleções. Isso está sempre disponível.

Se você não encontrar a entrada de menu, instale os pacotes pertinentes. Veja Básico do gerenciamento de pacotes Debian, Seção 6.2.


4.6.3 Seqüência de teclado para o Sistema X Window

A seguir são apresentados os comandos de teclado importantes a lembrar ao executar o Sistema X Window.


4.7 Estudos adicionais

Nesse momento, recomendo que você leia os livros guia chaves a partir de O Projeto de Documentação Linux: Guias:

Veja Suporte para o Debian, Capítulo 15 para maiores recursos de aprendizado.


[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ próximo ]

Referência Debian

CVS, Seg Abr 3 22:58:08 UTC 2005

Osamu Aoki osamu@debian.org
Paulo Rogério Ormenese (líder: pt-br) pormenese@uol.com.br
Autores, Seção A.1