Essa seção fornece uma orientação básica sobre o mundo Linux para o verdadeiro novato. Se você já tiver usado o Linux por algum tempo, use-a como uma verificação da realidade.
Procure no Projeto de Documentação
do Debian (DDP)
, que tem as referências de maior autoridade sobre o
Debian. Muitos desses documentos geralmente são instalados em
/usr/share/doc/
. Procure também no diretório
/usr/share/doc-base/
, que fornece apontamentos para os documentos
no sistema. Adicione export
CDPATH=.:/usr/share/doc:/usr/src/local ao arquivo
~/.bash_profile
para ter um acesso mais fácil aos diretórios de
documentação.
O Projeto de Documentação do Linux
(LDP)
tem a maior autoridade sobre referências gerais sobre o Linux.
Os conteúdos do LDP geralmente são instalados em
/usr/share/doc/HOWTO/
.
Navegue através dos documentos locais e em sites FTP remotos usando F9 no Midnight Commander (veja Midnight Commander (MC), Seção 4.3).
Em um sistema Linux comum, há seis pseudo-terminais independentes. Alterne de um para outro pressionando a tecla Alt-Esquerdo e as teclas F1–F6 simultaneamente. Cada pseudo-terminal permite logins indepentes para contas. O ambiente multi-usuário é um grande recurso do Unix, e muito importante.
É considerado um bom hábito de Unix efetuar login em uma conta de usuário regular para muitos propósitos. Eu tenho que admitir que já usei a conta do super-usuário (root) mais do que o necessário apenas porque isso é fácil e sou descuidado.
Agora eu geralmente uso uma conta regular com comandos sudo, super, ou su -c para obter acesso root limitado.
Depois da instalação do sistema, eu geralmente crio uma conta de usuário regular. Se o nome de usuário for "pinguim",
# adduser pinguim
criará a conta.
Eu uso o comando vigr para editar o arquivo
/etc/group
como a seguir:
adm:x:4:admin src:x:40:admin, debian, ... ...
No sistema de instalação padrão, os membros do grupo adm podem ler
muitos arquivos de log em /var/log/
, e podem usar o
xconsole
. O grupo staff é dono de
/home
, tornando seus membros adequados para manter contas de
usuários. O grupo src é dono de /usr/src/
, usado
para compilação de kernel, etc. Para ver o significado oficial de grupo e
usuário, veja uma versão recente do documento users-and-groups
.
Eu pessoalmente uso o grupo adm para usuários que executam tarefas
administrativas e têm o privilégio su
exclusivo (veja "Por que o GNU su
não
suporta o grupo wheel", Seção 9.2.2) e src
para CVS (veja CVS, Seção 12.1).
Verifique o adduser
, addgroup
, vipw
,
vipw -s, vigr
, e o vigr -s para
configurar os grupos e os usuários apropriadamente.
Como qualquer SO moderno onde os arquivos são armazenados temporariamente na memória, o Linux precisa de um procedimento especial de desligamento antes que possa ser seguramente desligado. Aqui está o comando em modo multi-usuário:
# shutdown -h now
Aqui está o comando em modo usuário único:
# poweroff -i -f
Aguarde até que o sistema exiba "System halted" e então desligue. Se o APM for ativado pela BIOS e o Linux, o sistema se desligará sozinho. Veja Memória grande e autodesligamento, Seção 3.7.4 para obter mais detalhes.
O shell padrão, bash
, tem capacidade de edição de histórico. Use
simplesmente a tecla da seta para cima para entrar no histórico e então use as
teclas de cursor como você esperaria. Outros atalhos de teclas importantes a
serem lembrados:
Ctrl-U: Apaga linha antes do cursor Ctrl-D: Termina a entrada Click-esq-e-arrasta-mouse: Seleciona e copia para o clipboard (gpm) Click botão meio mouse: Cola o clipboard no cursor (gpm) Ctrl-V TAB: Entra TAB sem expansão.
Em um console Linux normal, apenas as teclas Ctrl e Alt esquerdas funcionam como esperado.
Execução de comando típica usa a seguinte linha de seqüência shell:
$ LC_ALL=fr ls -la
Aqui, o programa ls
é executado como o trabalho em primeiro plano
(foreground) com a variável de ambiente LC_ALL definida para
fr para locale francês e o argumento de linha de comando definido
como -la para listar tudo em detalhes. Se a linha de comando for
sufixada por sinal & então o comando é executado como trabalho
em plano de fundo (background). Trabalhos em plano de fundo (background job)
permitem ao usuário executar múltiplos programas em um único shell.
A execução de comando pode ser gerenciada pelos seguintes comandos de teclado.
Ctrl-C: Termina o programa Ctrl-Z: Pára o programa temporariamente Ctrl-S: Trava saída para tela Ctrl-Q: Reativa saída para tela Ctrl-Alt-Del: Reinicia/halt sistema (veja /etc/inittab)
Para detalhes sobre o gerenciamento da execução de programa, procure por
jobs, fg, bg e stop em
bash(1)
.
Os comandos seguintes são muito básicos do Unix:
ls, ls -al, ls -d, pwd, cd, cd ~user, cd -, cat /etc/passwd, less, bg, fg, kill, killall, uname -a, type nomedecomando, sync, netstat, ping, traceroute, top, vi, ps aux, tar, zcat, grep, ifconfig, ...
Verifique seus significados usando-os em um prompt de comando ou digitando man ou info mais o nome do comando. Muitos comandos Linux exibirão uma breve informação de ajuda se você chamá-los de uma dessas maneiras:
$ nomedocomando --help $ nomedocomando -h
whatis nomedocomando dá um resumo de qualquer comando no sistema para o qual exista uma entrada de manual.
Para iniciar o Sistema X Window a partir do console:
# exec startx
Clicando com o botão direito no plano de fundo abre-se um menu de seleções.
Há alguns comandos de teclado importantes para o console Linux a serem lembrados ("mais" e "menos" referem-se às teclas no bloco numérico):
Alt-F1 até F6: Alterna para outros pseudo-terminais Ctrl-Alt-F1 até F6: Alterna para outros pseudo-terminais (a partir do X window, DOSEMU, etc.) Alt-F7: Volta para o X window Ctrl-Alt-menos: Muda a resolução da tela no X window Ctrl-Alt-mais: Muda a resolução da tela no X window no sentido oposto Ctrl-Alt-Backspace: Finaliza o programa servidor X11 Alt-X, Alt-C, Alt-V: Combinações de tecla para Cortar, Copiar, Colar com Ctrl- comuns do Windows/Mac são substituídas por essas combinações Alt- em alguns programas como o Netscape Composer.
O Midnight Commander (MC) é um "canivete suíço" do GNU para o console Linux e outros ambientes de terminal.
# apt-get install mc
Então modifique o arquivo ~/.bashrc
(ou
/etc/bash.bashrc
, chamado a partir de .bashrc
), como
descrito em sua página de manual, mc(1)
, sob a opção
-P. Isso permite que o MC mude o diretório de trabalho após
finalizar.
Se você estiver em um terminal, como kon
e Kterm
para
os japoneses, que usam alguns caracteres gráficos, acrescentar um
-a à linha de comando do MC pode ajudar a prevenir problemas.
$ mc
O MC executa todas as operações com arquivos através de seu menu, necessitando de um esforço mínimo do usuário.
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.)
cd
mudará o diretório exibido na janela
selecionada.
cp
ou mv
junto com edição de
linha de comando.
O editor interno tem um interessante esquema de cortar-e-colar. Pressionando F3, marca-se o início da seleção e 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 vi(m) é a coisa certa a fazer, já que eles sempre estão lá no mundo Linux/Unix.
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
(Note que alguns pacotes violam a política e ainda guardam seus documentos no
diretório /usr/doc
.)
Pressione Enter em um arquivo, e o programa apropriado manipulará seu conteúdo. Esse é um recurso muito conveniente do MC.
executável: Executa o comando arquivo man, html: Direciona o conteúdo para o programa visualizador arquivo tar, gz, rpm: Navega em seu conteúdo com se fosse um subdiretório
Para permitir que esses recursos de visualizador/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.
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. Digitando uma URL na forma nomeusuario:senha@nomemaquina.nomedominio, será obtido seu diretório remoto, que parecerá como um local.
Cada arquivo e diretório no sistema GNU/Linux é associado a um usuário que é seu dono (owner) e um grupo que pertence a ele. Todas as informações de arquivo são gravadas em uma estrutura de dados chamada inode.
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 permite que se veja seus atributos como o tamanho e o tempo de modificação.
Para obter as informações de permissão (e outras) sobre 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. Veja chown(1)
. Para mudar o grupo do arquivo, usa-se o
chgrp
a partir da conta do dono do arquivo ou da conta root. Veja
chgrp(1)
. 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. Consulte chmod(1)
.
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.
Definir 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.
Definir 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.
Definir 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á três tipos de marcas de tempo para o 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 GNU/Linux 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)
.
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 # hardlink $ ln -s foo baz # 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
Uma ligação simbólica tem as permissões de acesso de arquivo como "rwxrwxrwx" como mostrado no exemplo acima, com as permissões de acesso 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.
Há muitas referências boas de Unix para o nível iniciante por aí. Os livros da
O'Reilly geralmente são escolhas seguras de bons guias em qualquer campo dos
temas de computadores. O documento O HOWTO de Dicas
Linux
do LDP é outro recurso a ser verificado. Veja Suporte para o Debian, Capítulo 15 para obter
mais recursos.
Referência Debian
1.06-16, Sáb Jan 3 21:37:21 UTC 2004osamu@debian.org
pormenese@uol.com.br