Referências Debian
Referências Debian
Referências Debian
Osamu Aoki
Este Debian Reference (v2) (2011-04-15 08:14:11 UTC) destina-se a disponibilizar uma viso geral ampla do sistema Debian como um guia de utilizador ps-instalao. Cobre muitos aspectos da administrao do sistema atravs de exemplos de comandos de consola para no-programadores.
Resumo
Este livro livre: voc pode redistribu-lo e/ou modific-lo sob os termos da licena GNU General Public License de qualquer verso respeitante das directivas Debian Free Software Guidelines (DFSG).
ndice
Prefcio
3.1. Regras de guia 3.2. Pr-requisitos 3.3. Convenes 3.4. BTS da Debian 3.5. A popcon 3.6. O tamanho do pacote 3.7. Relatrios de bugs neste documento
1. Manuais de GNU/Linux
1.1.1. A linha de comandos shell 1.1.2. A linha de comandos shell sob X 1.1.3. A conta root 1.1.4. A linha de comandos shell do root 1.1.5. GUIs de ferramentas de administrao do sistema 1.1.6. Consolas virtuais 1.1.7. Como abandonar a linha de comandos 1.1.8. Como desligar o sistema 1.1.9. Recuperar uma consola s 1.1.10. Sugestes de pacote adicionais para o novato 1.1.11. Uma conta de utilizador extra 1.1.12. Configurao do sudo 1.1.13. Hora de brincar
1.2.1. Noes bsicas de ficheiros Unix. 1.2.2. Internos do sistema de ficheiros 1.2.3. Permisses do sistema de ficheiros 1.2.4. Control de permisses para ficheiros acabados de criar: umask 1.2.5. Permisses para grupos de utilizadores (group) 1.2.6. Marcas temporais (Timestamps) 1.2.7. Links (ligaes) 1.2.8. Pipes nomeados (FIFOs) 1.2.9. Sockets 1.2.10. Ficheiros de dispositivo 1.2.11. Ficheiros de dispositivos especiais 1.2.12. procfs e sysfs
1.3.1. Personalizao do MC 1.3.2. Arrancar o MC 1.3.3. Gestor de ficheiros em MC 1.3.4. Truques de linha de comandos no MC 1.3.5. O editor interno em MC 1.3.6. O visualizador interno no MC 1.3.7. Funcionalidades de auto-arranque do MC 1.3.8. Sistema de ficheiros FTP virtual no MC
1.4.1. A shell de login 1.4.2. Personalizar o bash 1.4.3. Teclas especiais 1.4.4. Operaes do rato ao estilo Unix 1.4.5. O pager 1.4.6. O editor de texto 1.4.7. Definir um editor de texto predefinido 1.4.8. Personalizar o vim 1.4.9. Gravar as actividades da shell 1.4.10. Comandos Unix bsicos
1.5.1. Execuo de comando e varivel de ambiente 1.5.2. varivel "$LANG" 1.5.3. varivel "$PATH" 1.5.4. varivel "$HOME" 1.5.5. Opes de linha de comandos 1.5.6. Glob da shell 1.5.7. Valor de retorno do comando 1.5.8. Sequncias de comandos tpicas e redireccionamento da shell 1.5.9. Command alias
1.6.1. Ferramentas de texto de Unix 1.6.2. Expresses regulares 1.6.3. Expresses de substituio
1.6.4. Substituio global com expresses regulares 1.6.5. Extrair dados de tabela de ficheiro de texto 1.6.6. Script snippets for piping commands
2.1.1. Configurao de pacotes 2.1.2. Precaues bsicas 2.1.3. A vida com actualizaes eternas 2.1.4. Bases de arquivos Debian 2.1.5. Dependncias de pacote 2.1.6. O fluxo de eventos da gesto de pacotes 2.1.7. Primeira resposta a problemas com a gesto do pacote
2.2.1. apt-get / apt-cache contra o aptitude 2.2.2. Operaes bsicas de gesto de pacotes com a linha de comandos 2.2.3. Uso interactivo do aptitude 2.2.4. Teclas de atalho do aptitude 2.2.5. Vistas de pacote sob o aptitude 2.2.6. Opes do mtodo de pesquisa com o aptitude 2.2.7. A frmula regex do aptitude 2.2.8. Resoluo de dependncias do aptitude 2.2.9. Logs de actividade de pacotes
2.3.1. Listagem de pacotes com correspondncia por expresso regular nos nomes de pacotes 2.3.2. Explorar com a correspondncia de expresso regular 2.3.3. Purgar pacotes removidos definitivamente 2.3.4. Tidying auto/manual install status 2.3.5. Actualizao total ao sistema
2.4.1. Operaes de gesto avanada de pacotes com linha de comandos 2.4.2. Verificao dos ficheiros pacotes instalados 2.4.3. Salvaguardar para problemas de pacotes. 2.4.4. Procurar nos meta dados do pacote
2.5.1. Meta dados do arquivo 2.5.2. Ficheiro "Release" de nvel de topo e autenticidade: 2.5.3. Archive level "Release" files 2.5.4. Obter os meta dados do pacote 2.5.5. O estado do pacote para o APT 2.5.6. O estado do pacote para o aptitude 2.5.7. Copias locais dos pacotes obtidos
2.5.8. Nomes de ficheiros de pacotes Debian 2.5.9. O comando dpkg 2.5.10. O comando update-alternative 2.5.11. O comando dpkg-statoverride 2.5.12. O comando dpkg-divert
2.6.1. Incompatibilidade com configurao antiga de utilizador 2.6.2. Pacotes diferentes com ficheiros sobrepostos 2.6.3. Corrigir script de pacote danificado 2.6.4. Recuperao com o comando dpkg 2.6.5. Recuperar dados de seleco de pacotes
2.7.1. Como escolher os pacotes Debian 2.7.2. Pacotes de fontes de arquivos misturados 2.7.3. Tweaking candidate version 2.7.4. Updates and Backports 2.7.5. Descarga e actualizao automtica de pacotes 2.7.6. Limitar a largura de banda de descarga para o APT 2.7.7. Downgrade de emergncia 2.7.8. Quem enviou o pacote? 2.7.9. O pacote equivs 2.7.10. Portando um pacote para o sistema stable 2.7.11. Servidor proxy para o APT 2.7.12. Pequeno arquivo de pacotes pblico
2.7.13. Gravar e copiar a configurao do sistema 2.7.14. Converter e instalar um pacote binrio aliengena 2.7.15. Extrair um pacote sem o dpkg 2.7.16. Mais leituras para a gesto de pacotes
3. A inicializao do sistema
3.1. Uma viso geral do processo de boot strap 3.2. Estgio 1: a BIOS 3.3. Estgio 2: o gestor de arranque 3.4. Estgio 3: o sistema Debian mini 3.5. Estgio 4: o sistema Debian normal
3.5.1. O significado do runlevel 3.5.2. A configurao do runlevel 3.5.3. O exemplo de gesto do runlevel 3.5.4. O parmetro predefinido para cada script de init 3.5.5. O nome da mquina 3.5.6. O sistema de ficheiros 3.5.7. Inicializao da interface de rede 3.5.8. Inicializao do servio de rede 3.5.9. A mensagem do sistema 3.5.10. A mensagem do kernel 3.5.11. O sistema udev 3.5.12. A inicializao de mdulos do kernel
4. Autenticao
4.1. Autenticao Unix normal 4.2. Gerir informao de conta e palavra-passe 4.3. Boa palavra-passe 4.4. Criando palavra-passe encriptada 4.5. PAM e NSS
4.5.1. Ficheiros de configurao acedidos pelo PAM e NSS 4.5.2. O moderno sistema de gesto centralizado 4.5.3. "Porque o su do GNU no suporta o grupo wheel" 4.5.4. Regras de palavra-passe rigorosas
4.6.1. sudo 4.6.2. SELinux 4.6.3. Restringindo acesso a alguns servios de servidor
4.7.1. Palavra-passe segura sobre a Internet 4.7.2. Shell Segura 4.7.3. Medidas de segurana extra para a Internet 4.7.4. Tornar a palavra-passe do root segura
5. Configurao de rede
5.1.2. A resoluo de nome de mquina 5.1.3. O nome da interface de rede 5.1.4. O alcance de endereos de rede para a LAN 5.1.5. O suporte a dispositivos de rede
5.3. A ligao e configurao legacy de rede 5.4. O mtodo de ligao de rede (legacy)
5.4.1. A ligao DHCP com a Ethernet 5.4.2. A ligao de IP esttico com a Ethernet 5.4.3. A ligao PPP com o pppconfig 5.4.4. A ligao PPP alternativa com o wvdialconf 5.4.5. A ligao PPPoE com o pppoeconf
5.5.1. A sintaxe de comando simplificada 5.5.2. A sintaxe bsica de "/etc/network/interfaces" 5.5.3. A interface de rede loopback 5.5.4. A interface de rede servida por DHCP 5.5.5. A interface de rede com IP esttico 5.5.6. A base da interface LAN wireless 5.5.7. A interface LAN wireless com WPA/WPA2 5.5.8. A interface LAN wireless com WEP 5.5.9. A ligao PPP
5.5.10. A ligao PPP alternativa 5.5.11. A ligao PPPoE 5.5.12. O estado de configurao de rede do ifupdown 5.5.13. A base da configurao de rede 5.5.14. O pacote ifupdown-extra
5.6.1. O pacote ifplugd 5.6.2. O pacote ifmetric 5.6.3. A interface virtual 5.6.4. A sintaxe de comando avanada 5.6.5. A estrofe de mapeamento 5.6.6. A configurao de rede comutvel manualmente 5.6.7. Usar scripts com o sistema ifupdown 5.6.8. Mapeando com guessnet
5.8.1. Encontrar o MTU ptimo 5.8.2. Definir o MTU 5.8.3. Optimizao WAN TCP
6. Aplicaes de rede
6.2.1. Bases dos servios de mail modernos 6.2.2. A estratgia de configurao de mail para estao de trabalho
6.3.1. A configurao do exim4 6.3.2. A configurao do postfix com SASL 6.3.3. A configurao do endereo de mail 6.3.4. Operaes MTA bsicas
6.6.1. configurao do maildrop 6.6.2. configurao do procmail 6.6.3. Re-entregar o contedo da mbox
6.7. Servidor POP3/IMAP4 6.8. O servidor de impresso e utilitrio 6.9. O servidor de acesso remoto e utilitrio (SSH)
6.9.1. Bases do SSH 6.9.2. Reencaminhamento de portos para SMTP/POP3 em tnel 6.9.3. Ligar sem palavras-passe remotas 6.9.4. Lidar com clientes SSH aliengenas 6.9.5. Configurar o ssh-agent 6.9.6. Como desligar o sistema remoto em SSH 6.9.7. Depurar problemas no SSH
6.10. Outras aplicaes de servidor de rede 6.11. Outros clientes de aplicao de rede 6.12. Os diagnsticos dos daemons do sistema
7. O Sistema X Window
7.2.1. Menu Debian 7.2.2. Menu Freedesktop.org 7.2.3. Menu Debian sob o ambiente de trabalho GNOME
7.5.1. Iniciar uma sesso X com o gdm 7.5.2. Personalizar a sesso X (mtodo clssico) 7.5.3. Personalizar a sesso X (mtodo novo) 7.5.4. Ligar um cliente X remoto via SSH 7.5.5. Terminal X seguro via Internet
7.6.1. Fonts (tipos de letra) bsicas 7.6.2. Fonts (tipos de letra) adicionais 7.6.3. fonts CJK
7.7. Aplicaes do X
7.8.1. Mapas de teclas e mapas de botes do apontador (rato) no X 7.8.2. Clientes X Clssicos 7.8.3. O emulador de terminal X - xterm 7.8.4. Correr clientes X como root
8. I18N e L10N
8.1.1. O suporte a mtodo de entrada com IBus 8.1.2. Um exemplo para Japons 8.1.3. Desactivar o mtodo de entrada
8.3.1. Bases de codificao 8.3.2. Rationale for UTF-8 locale 8.3.3. A reconfigurao do locale 8.3.4. O valor da varivel de ambiente "$LANG" 8.3.5. O locale especfico apenas sob X Window 8.3.6. Codificao de nomes de ficheiros 8.3.7. Mensagens localizadas e documentao traduzida 8.3.8. Efeitos do locale
9. Dicas do sistema
9.1.1. O cenrio de utilizao para o screen(1) 9.1.2. ligaes de teclas para o comando screen
9.2.1. O daemon de log 9.2.2. Analizador de log 9.2.3. Gravar as actividades da shell de modo limpo 9.2.4. Amostragem personalizada de dados em texto 9.2.5. Amostragem personalizada de hora e data 9.2.6. Echo de shell colorido 9.2.7. Comandos coloridos 9.2.8. Recordando as actividades do editor para repeties complexas 9.2.9. Gravar a imagem grfica de uma aplicao X 9.2.10. Gravar alteraes em ficheiros de configurao
9.3.1. Configurao das parties do disco 9.3.2. Aceder a partio usando UUID 9.3.3. Configurao do sistema de ficheiros 9.3.4. Criao do sistema de ficheiros e verificao de integridade 9.3.5. Optimizao do sistema de ficheiros por opes de montagem
9.3.6. Optimizao do sistema de ficheiros atravs do superblock 9.3.7. Optimizao do disco rijo 9.3.8. Usar SMART para prever falhas no disco rijo 9.3.9. Expandir o espao de armazenamento utilizvel via LVM 9.3.10. Expandir o espao de armazenamento utilizvel ao montar outra partio 9.3.11. Expandir o espao de armazenamento utilizvel usando links simblicos 9.3.12. Expandir o espao de armazenamento utilizvel usando aufs
9.4.1. Encriptao de discos amovveis com dm-crypt/LUKS 9.4.2. Partio swap encriptada com dm-crypt 9.4.3. Encriptar ficheiro automaticamente com eCryptfs 9.4.4. Montar eCryptfs automaticamente
9.5.1. Temporizando um processo 9.5.2. A prioridade de agendamento 9.5.3. O comando ps 9.5.4. O comando top 9.5.5. Listar ficheiros abertos por um processo 9.5.6. Rastear as actividades de programas
9.5.7. Identificao de um processo usando ficheiros ou sockets 9.5.8. Repetir um comando com um intervalo constante 9.5.9. Repeating a command looping over files 9.5.10. Arrancar um programa a partir da GUI 9.5.11. Personalizar o programa a ser arrancado 9.5.12. Matar um processo 9.5.13. Scheduling tasks once 9.5.14. Scheduling tasks regularly 9.5.15. Tecla Alt-SysRq
9.6.1. Quem est no sistema? 9.6.2. Avisar todos 9.6.3. Identificao do hardware 9.6.4. Configurao do hardware 9.6.5. Hora do sistema e do hardware 9.6.6. A configurao do terminal 9.6.7. A infraestrutura de som 9.6.8. Desactivar o protector de cran (screensaver) 9.6.9. Desactivar os sons de beep 9.6.10. Utilizao da memria 9.6.11. Segurana do sistema e verificao de integridade
9.7. O kernel
9.7.2. Parmetros do kernel 9.7.3. Cabealhos do kernel 9.7.4. Compilar o kernel e mdulos relacionados 9.7.5. Compilar a fonte do kernel: O mtodo standard da Debian 9.7.6. Compilar o mdulo fontes: O mtodo standard da Debian 9.7.7. Compilar a fonte do kernel: O mtodo clssico 9.7.8. Drivers de hardware no-livres
9.8.1. Ferramentas de virtualizao 9.8.2. Fluxo de trabalho da virtualizao 9.8.3. Montar o ficheiro de imagem de disco virtual 9.8.4. Sistema chroot 9.8.5. Sistemas de mltiplos ambientes de trabalho
10.1.1. Ferramentas de arquivo e compresso 10.1.2. Ferramentas de cpia de sincronizao 10.1.3. Idiomas para o arquivo 10.1.4. Idiomas para a cpia 10.1.5. Idiomas para a seleco de ficheiros 10.1.6. Salvaguarda (backup) e recuperao 10.1.7. Suites de utilitrios de salvaguardas (backup)
10.1.8. Um script de exemplo para salvaguarda ao sistema 10.1.9. Um script de cpia para a salvaguarda de dados 10.1.10. Dispositivo de armazenamento amovvel 10.1.11. Partilhando dados via rede 10.1.12. Media de arquivo
10.2.1. Criando o ficheiro de imagem de disco 10.2.2. Escrever directamente no disco 10.2.3. Montar o ficheiro de imagem de disco 10.2.4. Limpar um ficheiro de imagem de disco 10.2.5. Criar um ficheiro de imagem de disco vazio 10.2.6. Criar o ficheiro de imagem ISO9660 10.2.7. Escrever directamente para o CD/DVD-R/RW 10.2.8. Montar o ficheiro de imagem ISO9660
10.3.1. Ver e editar dados binrios 10.3.2. Manipular ficheiros sem montar o disco 10.3.3. Redundncia de dados 10.3.4. Recuperao de ficheiros e dados e anlise forense 10.3.5. Dividir um ficheiro grande em ficheiros pequenos 10.3.6. Limpar contedo de ficheiro 10.3.7. Ficheiros dummy 10.3.8. apagar um disco rijo inteiro 10.3.9. Apagar uma rea no utilizada do disco rijo
10.3.10. Recuperar ficheiros apagados mas ainda abertos 10.3.11. Procurar todos os hardlinks 10.3.12. Consumo invisvel do espao do disco
10.4.1. Gesto de chaves para GnuPG 10.4.2. Usa GnuPG em ficheiros 10.4.3. Usar GnuPG com o Mutt 10.4.4. Usar GnuPG com o Vim 10.4.5. O sumrio MD5
10.5.1. Extrair as diferenas para ficheiros fonte 10.5.2. Fundir actualizaes para ficheiros de fonte 10.5.3. Actualizar via fuso-de-3-vias
10.7. CVS
10.7.1. Configurao de repositrio CVS 10.7.2. Acesso local ao CVS 10.7.3. Acesso remoto ao CVS com pserver 10.7.4. Acesso remoto ao CVS com ssh 10.7.5. Importar uma nova fonte para o CVS
10.7.6. Permisses de ficheiros no repositrio CVS 10.7.7. Fluxo de trabalho do CVS 10.7.8. Ficheiros mais recentes do CVS 10.7.9. Administrao do CVS 10.7.10. Execution bit for CVS checkout
10.8. Subversion
10.8.1. Configuration of Subversion repository 10.8.2. Access to Subversion via Apache2 server 10.8.3. Acesso local ao Subversion pelo grupo 10.8.4. Acesso remoto ao Subversion via SSH 10.8.5. Estrutura de directrios do Subversion 10.8.6. importar uma nova fonte para o Subversion 10.8.7. Fluxo de trabalho do Subversion
10.9. Git
10.9.1. Configurao do cliente Git 10.9.2. Referncias do Git 10.9.3. Comandos do Git 10.9.4. Git para o repositrio Subversion 10.9.5. Git para gravar o histrico de configurao
11.1.2. Verifica ficheiro se UTF-8 com o iconv 11.1.3. Converter os nomes dos ficheiros com o iconv 11.1.4. converso EOL 11.1.5. Converso de TAB 11.1.6. Editores com auto-converso 11.1.7. Extraco de texto simples 11.1.8. Highlighting and formatting plain text data
11.2.1. Dicas bsicas para XML 11.2.2. Processamento de XML 11.2.3. A extraco de dados de XML
11.3.1. Ghostscript 11.3.2. Fundir dois ficheiros PS ou PDF 11.3.3. Utilitrios de dados imprimveis 11.3.4. Imprimir com o CUPS
11.4.1. roff typesetting 11.4.2. TeX/LaTeX 11.4.3. Impresso bonita de um manual 11.4.4. Criar um manual
12. Programao
12.1.1. Compatibilidade da shell do POSIX 12.1.2. Parmetros da shell 12.1.3. Condicionais da shell 12.1.4. Ciclos da shell 12.1.5. A sequncia de processamento da linha de comandos da shell 12.1.6. Programas utilitrios para script de shell 12.1.7. Dilogo do script de shell 12.1.8. Shell script example with zenity
12.4. Depurao
12.4.3. Obtaining backtrace 12.4.4. Comandos gdb avanados 12.4.5. Depurar Erros do X 12.4.6. Verificar a dependncia em bibliotecas 12.4.7. Ferramentas de deteco de fugas de memria 12.4.8. Ferramentas de anlise de cdigo esttico 12.4.9. Disassemble binary
12.5. Flex um Lex melhor. 12.6. Bison um Yacc melhor 12.7. Autoconf
12.8. Perl short script madness 12.9. Web 12.10. A traduo do cdigo fonte 12.11. Criando um pacote Debian
A. Apndice
Lista de Tabelas
interessantes 1.2. Lista de pacotes de documentao informativa 1.3. Lista de utilizao de directrios chave 1.4. Lista do primeiro caractere da sada de "ls -l" 1.5. O modo numrico para permisses de ficheiros em comandos chmod(1) 1.6. Exemplos do valor umask 1.7. Lista de grupos notveis disponibilizados pelo sistema para acesso a ficheiros 1.8. Lista de grupos notveis disponibilizados pelo sistema para execues de comandos particulares 1.9. Lista dos tipos de marcas temporais 1.10. Lista de ficheiros de dispositivos especiais 1.11. As teclas de atalho do MC 1.12. A reaco tecla enter no MC 1.13. Lista de programas da shell 1.14. Lista de teclas de atalho para bash 1.15. Lista de operaes de rato ao estilo Unix 1.16. lista dos comandos Unix bsicos 1.17. 3 partes do valor locale 1.18. Lista de recomendaes de locale 1.19. Lista de valores "$HOME" 1.20. Padres glob da shell 1.21. Cdigos de sada do comando 1.22. Idiomas de comandos de shell 1.23. Predefined file descriptors 1.24. Meta-caracteres para BRE e ERE 1.25. A expresso de substituio 1.26. List of script snippets for piping commands
2.1. Lista de ferramentas de gesto de pacotes Debian 2.2. Lista de sites de arquivos Debian 2.3. Lista de rea de arquivo Debian 2.4. A relao entre suite e nome de cdigo 2.5. Lista de sites web chave para resolver problemas com um pacote especfico. 2.6. Operaes bsicas de gesto de pacotes com a linha de comandos usando aptitude(8) e apt-get(8) / apt-cache(8). 2.7. Opes de comando notveis para o aptitude(8) 2.8. Lista de teclas de atalho do aptitude 2.9. Lista de vistas para o aptitude 2.10. A categorizao das vista de pacotes standard 2.11. Lista da frmula regex do aptitude 2.12. Os ficheiros log para actividades de pacotes 2.13. Lista de operaes de gesto avanada de pacotes 2.14. O contedo dos meta dados do arquivo Debian 2.15. A estrutura de nomes dos pacotes Debian 2.16. Os caracteres utilizveis para cada componente nos nomes de pacotes Debian 2.17. Os ficheiros notveis criados pelo dpkg 2.18. List of the default Pin-Priority value for each package source type 2.19. Lista de ferramentas proxy especiais para arquivos Debian 3.1. Lista de gestores de arranque 3.2. O significado dos parmetros do GRUB 3.3. Lista de utilitrios de arranque para o sistema Debian 3.4. Lista de runlevels e descrio da sua utilizao 3.5. Lista de nveis de erro do kernel 4.1. 3 ficheiros de configurao importantes para pam_unix(8)
4.2. A segunda entrada no contedo de "/etc/passwd" 4.3. Lista de comandos para gerir informao de conta 4.4. Lista de ferramentas para gerar palavras-passe 4.5. Lista de sistemas PAM e NSS notveis 4.6. Lista de ficheiros de configurao acedidos pelo PAM 4.7. Lista de servios e portos inseguros e seguros 4.8. Lista de ferramentas para disponibilizar medidas de segurana extra 5.1. Lista de ferramentas de configurao de rede 5.2. Lista de alcances de endereos de rede 5.3. Lista de mtodos de ligao de rede e caminhos de ligao 5.4. Lista de configuraes de ligao de rede 5.5. Lista de ligaes de rede annimas 5.6. Lista de ficheiros de configurao para a ligao PPP com pppconfig 5.7. Lista de ficheiros de configurao para a ligao PPP com wvdialconf 5.8. Lista de ficheiros de configurao para a ligao PPPoE com pppoeconf 5.9. Lista de comandos de configurao de rede bsicos com ifupdown 5.10. Lista de estrofes em "/etc/network/interfaces" 5.11. Lista de siglas para WLAN 5.12. Lista de terminologia para dispositivos de rede 5.13. Lista de comandos avanados de configurao de rede com ifupdown 5.14. Lista de variveis de ambiente passadas pelo sistema ifupdown 5.15. Tabela de traduo dos comandos obsoletos net-tools para
os novos comandos iproute2 5.16. Lista de comandos de rede de baixo nvel 5.17. Lista de ferramentas de optimizao de rede 5.18. Regras bsicas para o valor MTU ptimo 5.19. Lista de ferramentas de firewall 6.1. Lista de exploradores web 6.2. Lista de pacotes plugin de exploradores 6.3. Lista de pacotes bsicos relacionados com agente de transporte de mail para estao de trabalho 6.4. Lista de escolhas para pacotes de agente de transporte de mail (MTA) no arquivo Debian. 6.5. Lista dos manuais importantes do postfix 6.6. Lista de ficheiros de configurao relacionados com endereos de mail 6.7. Lista de operaes MTA bsicas 6.8. Lista de agentes utilizador de mail (MUA) 6.9. Lista de adquiridores de mail remoto e utilitrios de reencaminhamento 6.10. Lista de MDA com filtro 6.11. Lista de Servidores POP3/IMAP4 6.12. Lista de servidores de impressoras e utilitrios 6.13. Lista de servidores de acesso remoto e utilitrios 6.14. Lista de protocolos e mtodos de autenticao do SSH 6.15. Lista de ficheiros de configurao do SSH 6.16. Lista de exemplos de arranque do cliente SSH 6.17. Lista de clientes SSH para outras plataformas 6.18. Lista de outras aplicaes de servidor de rede 6.19. Lista de clientes de aplicao de rede 6.20. Lista de RFCs populares
7.1. Lista de (meta)pacotes chave para o X Window 7.2. Lista de terminologia de servidor/cliente 7.3. Lista de mtodos de ligao ao servidor X 7.4. Tabela de pacotes para suportar fonts do sistema X Window 7.5. Tabela de fonts PostScript Type 1 correspondentes 7.6. Tabela de fonts correspondentes a TrueType 7.7. Tabela de palavras chave usadas em nomes de fonts CJK para indicar os tipos de fonts. 7.8. lista de aplicaes X de escritrio bsicas 7.9. Lista de aplicaes X utilitrias bsicas 8.1. Lista de mtodos de configurao do teclado 8.2. Lista de suportes a mtodo de entrada com IBus 9.1. Lista de programas para suportar ligaes rede interrompidas 9.2. Lista de ligaes de teclas para o cran 9.3. Lista de analisadores de log do sistema 9.4. Mostra exemplos de hora e data para o comando "ls -l" para lenny 9.5. Lista de ferramentas grficas de manipulao de imagens 9.6. Lista de pacotes para gravar histrico de configurao em VCS 9.7. Lista de pacotes de gesto de parties do disco 9.8. Lista de pacotes de gesto de sistemas de ficheiros 9.9. Lista de utilitrios de encriptao de dados 9.10. Lista de ferramentas para monitorizar e controlar as actividades de programas 9.11. Lista de valores nice para a prioridade de agendamento 9.12. Lista dos estilos do comando ps 9.13. Lista de comandos para o top
9.14. Lista dos sinais frequentemente usados para matar comandos 9.15. Lista de teclas de comando SAK 9.16. Lista de ferramenta de identificao de hardware 9.17. Lista de ferramentas de configurao do hardware 9.18. Lista de pacotes de som 9.19. Lista de comandos para desactivar o protector de cran 9.20. Lista dos tamanhos de memria relatados 9.21. Lista de ferramentas para segurana do sistema e verificao de integridade 9.22. Lista de pacotes chave a serem instalados para a recompilao do kernel no sistema Debian. 9.23. Lista de ferramentas de virtualizao 10.1. Lista de ferramentas de arquivo e compresso 10.2. Lista de ferramentas de cpia e sincronizao 10.3. Lista de suites utilitrias de salvaguarda 10.4. Lista de pacotes que permitem aos utilizadores normais montarem dispositivos amovveis sem uma entrada correspondente no "/etc/fstab" 10.5. Lista de hipteses de sistemas de ficheiros para dispositivos de armazenamento amovveis com cenrios de utilizao tpica 10.6. Lista de servios de rede para escolher com o cenrio de utilizao tpico 10.7. Lista de pacote para ver e editar dados binrios 10.8. Lista de pacotes para ler e escrever ficheiros sem montar o disco. 10.9. Lista de ferramentas para adicionar redundncia de dados a ficheiros 10.10. Lista de pacotes para recuperao de ficheiros e dados e
anlise forense 10.11. Lista de ferramentas de infraestrutura da segurana de dados 10.12. Lista de comandos do GNU Privacy Guard para gesto de chaves 10.13. Lista do significado do cdigo de confiana 10.14. Lista de comandos do GNU Privacy Guard em ficheiros 10.15. Lista de ferramentas de fuso de cdigo fonte 10.16. lista de ferramentas de sistemas de controle de verso 10.17. Comparao dos comandos VCS nativos 10.18. Notable options for CVS commands (use as first argument (s) to cvs(1)) 10.19. Notable options for Subversion commands (use as first argument(s) to svn(1)) 10.20. Lista de pacotes e comandos relacionados com o git 11.1. Lista de ferramentas de converso de dados em texto 11.2. Lista de valores de codificao e a sua utilizao 11.3. Lista de estilos EOL para diferentes plataformas 11.4. List of TAB conversion commands from bsdmainutils and coreutils packages 11.5. Lista de ferramentas para extraco de dados de texto simples 11.6. List of tools to highlight plain text data 11.7. Lista de entidades predefinidas para XML 11.8. Lista de ferramentas XML 11.9. Lista de ferramentas DSSL 11.10. Lista de ferramentas de extraco de dados de XML 11.11. Lista de ferramentas de impresso bonita de XML 11.12. List of Ghostscript PostScript interpreters
11.13. Lista de utilitrios de dados imprimveis 11.14. List of type setting tools 11.15. Lista de pacotes para ajudar a criar o manual (manpage) 11.16. Lista de pacotes para ajudar na converso de dados de mail 11.17. Lista de ferramentas de dados grficos 11.18. Lista de ferramentas de converso de dados variados 12.1. Lista de pacotes para ajudar a programar 12.2. Lista dos bashisms tpicos 12.3. Lista de parmetros da shel 12.4. Lista de expanses de parmetros de shell 12.5. Lista de substituies de parmetros de shell chave 12.6. Lista de operadores de comparao de ficheiros na expresso condicional 12.7. Lista de operadores de comparao de strings na expresso condicional 12.8. List of packages containing small utility programs for shell scripts 12.9. Lista de programas de interface de utilizador 12.10. Lista de variveis automticas do make 12.11. Lista de expanses da varivel do make 12.12. Lista de comandos gdb avanados 12.13. Lista de ferramentas de deteco de fugas de memria 12.14. Lista de ferramentas para anlise de cdigo esttico 12.15. List of Yacc-compatible LALR parser generators 12.16. Lista de ferramentas de traduo de cdigo fonte
Prefcio
Este Debian Reference (version 2) (2011-04-15 08:14:11 UTC) destina-se a disponibilizar uma viso geral ampla da administrao do sistema Debian como um guia de utilizador ps-instalao.
Destina-se ao leitor que algum disposto a aprender scripts de consola mas no est pronto para ler todas as fontes C para descobrir como o sistema GNU/Linux funciona.
1. Renncia
Todas as garantias so renunciadas. Todas as marcas so propriedade dos seus donos de marca respectivos.
O prprio sistema Debian um alvo em movimento. Isto torna difcil manter a sua documentao actualizada e correcta. Apesar de ter sido usada a verso instvel actual do sistema Debian como base para escrever isto, alguns contedos podem j estar ultrapassados quando os estiver a ler.
Por favor veja este documento como uma referncia secundria. Este documento no substitui nenhuns guias oficiais. O autor e contribuintes no toma responsabilidade pelas consequncias de erros, omisses ou ambiguidade neste documento.
2. O que a Debian
O Projecto Debian uma associao de indivduos que tm como causa comum a criao de um sistema operativo livre. A sua
Compromisso com a liberdade do software: Debian Social Contract e Debian Free Software Guidelines (DFSG) Esforo distribudo no-remunerado de voluntrios baseado na Internet: http://www.debian.org Grande nmero de softwares pr-compilados de alta qualidade Focado em estabilidade e segurana com acesso fcil a actualizaes de segurana Focado na actualizao suave aos softwares mais recentes com os arquivos unstable e testing Grande nmero de arquitecturas de hardware suportadas
As peas de Free Software em Debian vm de GNU, Linux, BSD, X, ISC, Apache, Ghostscript, Common Unix Printing System , Samba, GNOME, KDE, Mozilla, OpenOffice.org, Vim, TeX, LaTeX, DocBook, Perl, Python, Tcl, Java, Ruby, PHP, Berkeley DB, MySQL, PostgreSQL, Exim, Postfix, Mutt, FreeBSD, OpenBSD, Plan 9 e muitos mais projectos de software livre independentes. Debian integra esta diversidade de Software Livre em um sistema.
Fornecer uma viso geral e saltar casos no comuns. (Big Picture) Keep It Short and Simple. (KISS) No reinvente a roda. (Use apontadores para as referncias existentes) Foco nas ferramentas no-GUI e consolas. (Use exemplos de shell) Seja objectivo. (Use popcon etc.)
Dica
3.2. Pr-requisitos
Ateno
Espera-se que voc se esforce a procurar respostas por si prprio para alm deste documento. Este documento apenas oferece pontos de arranque eficientes.
O site Debian em http://www.debian.org para informao geral A documentao sob o directrio "/usr/share/doc/ <nome_do_pacote>"
O manual estilo Unix: "dpkg -L <nome_de_pacote> |grep '/man/ man.*/'" A pgina info estilo GNU: "dpkg -L <nome_do_pacote> |grep '/ info/'" O relatrio de bugs http://bugs.debian.org/<package_name> O Debian Wiki em http://wiki.debian.org/ para os tpicos em movimento e especficos Os HOWTOs do The Linux Documentation Project (TLDP) em http: //tldp.org/ A Especificao UNIX Singular da Pgina Oficial do Sistema UNIX do Open Group em http://www.unix.org/ A enciclopdia livre de Wikipedia em http:// www.wikipedia.org/
Nota
Para informao detalhada, voc pode precisar de instalar o pacote de documentao correspondente chamado com um sufixo "-doc".
3.3. Convenes
Este documento fornece informao atravs do seguinte estilo de apresentao simplificado com exemplos de comandos de shell bash (1).
Estes avisos de shell distinguem a conta usada e corresponde a definir variveis de ambiente como: "PS1='\$'" e "PS2=' '". Estes valores so escolhidos para bem da legibilidade deste documento e no so tpicos do sistema instalado actual.
Nota
A Aco requerida pelo administrador do sistema escrita em sentido imperativo, ex. "Carregue na tecla Enter aps escrever cada string de comando na shell."
The description column and similar ones in the table may contain a noun phrase following the package short description convention which drops leading articles such as "a" and "the". They may alternatively contain an infinitive phrase as a noun phrase without leading "to" following the short command description convention in manpages. These may look funny to some people but are my intentional choices of style to keep this documentation as simple as possible. These Noun phrases do not capitalize their starting nor end with periods following these short description convention.
Nota
A command snippet quoted in a text paragraph is referred by the typewriter font between double quotation marks, such as "aptitude safe-upgrade".
Os dados em texto de um ficheiro de configurao citados num pargrafo de texto so referidos em font de mquina de escrever entre aspas, tal como "deb-src".
Um comando referenciado pelo seu nome em font de mquina de escrever seguido opcionalmente pelo nmero de seco do seu manual em parnteses, tal como bash(1). Voc encorajado a obter informao ao escrever o seguinte.
$ man 1 bash
Um manual referido pelo seu nome em font de mquina de escrever seguido pelo seu nmero de seco do manual em parnteses, tal como sources.list(5). Voc encorajado a obter informao ao escrever o seguinte.
$ man 5 sources.list
Uma pgina info referenciada pelo recorte do seu comando em font de mquina de escrever entre aspas, tal como "info make". Voc encorajado a obter informao ao escrever o seguinte.
$ info make
Um nome de ficheiro referenciado em font de mquina de escrever entre aspas, tal como "/etc/passwd". Para os ficheiros de configurao, voc encorajado a obter informao ao escrever o seguinte.
$ sensible-pager "/etc/passwd"
Um nome de directrio referenciado em font de mquina de escrever entre aspas, tal como "/etc/init.d/". Voc encorajado a explorar o seu contedo ao escrever o seguinte.
$ mc "/etc/init.d/"
Um nome de pacote referenciado pelo seu nome em font de mquina de escrever, tal como vim. Voc encorajado a obter informao ao escrever o seguinte.
A documentation may indicate its location by the filename in the typewriter font between double quotation marks, such as "/usr/ share/doc/sysv-rc/README.runlevels.gz" and "/usr/share/doc/ base-passwd/users-and-groups.html"; or by its URL, such as http: //www.debian.org. You are encouraged to read the documentation by typing the following.
Uma varivel de ambiente referenciada pelo seu nome com um "$" inicial em font de mquina de escrever entre aspas, tal como "$TERM". Voc encorajado a obter o seu valor actual ao escrever o seguinte.
$ echo "$TERM"
O asterisco "*" colocado logo aps cada nome de pacote est ligado ao Sistema de acompanhamento de bugs da Debian (BTS) de cada pacote
3.5. A popcon
Os dados popcon so apresentados como a medida objectiva da popularidade de cada pacote. Foi descarregado em 2010-12-08 14:47:18 UTC e contm a submisso total de 95150 relatrios sobre 109197 pacotes binrios e 19 arquitecturas.
Nota
Por favor note que o arquivo amd64 unstable contm actualmente apenas 30552 pacotes. Os dados popcon contm relatrios de muitas instalaes de sistemas antigos.
O nmero de popcon precedido de "V:" para "votos" calculado por "100 * (as submisses popcon para o pacote executado recentemente no PC) / (o total de submisses de popcon)".
O nmero de popcon precedido de "I:" para "instalaes" calculado por "100 * (as submisses popcon para o pacote instalado no PC) / (o total de submisses de popcon)".
Nota
As figuras do popcon no devem ser consideradas como medidas absolutas da importncia dos pacotes. Existem muitos factores que podem aldrabar as estatsticas. Por exemplo, um sistema que participa no popcon pode ter directrios montados como o "/bin" com a opo "noatime" para melhoria da performance do sistema e efectivamente desactivar os "votos" de tal sistema.
The package size data is also presented as the objective measure for each package. It is based on the "Installed-Size:" reported by "apt-cache show" or "aptitude show" command (currently on amd64 architecture for the unstable release). The reported size is in KiB (Kibibyte = unit for 1024 bytes).
Nota
the package in the unstable release is a dummy package which installs other packages with significant contents by the dependency. The dummy package enables a smooth transition or split of the package.
Nota
A package size followed by "(*)" indicates that the package in the unstable release is missing and the package size for the experimental release is used instead.
Please file bug reports on the debian-reference package using reportbug(1) if you find any issues on this document. Please include correction suggestion by "diff -u" to the plain text version or to the source.
Aqui esto algumas citaes interessantes da lista de mails de Debian que podem ajudar a elucidar novos utilizadores.
"Isto Unix. D-lhe corda suficiente para voc se enforcar." --- Miquel van Smoorenburg <miquels em cistron.nl> "Unix amigo do utilizador... Apenas selectivo sobre quem so os seus amigos." --- Tollef Fog Heen <tollef at add.no>
I think learning a computer system is like learning a new foreign language. Although tutorial books and documentation are helpful, you have to practice it yourself. In order to help you get started smoothly, I elaborate a few basic points.
The powerful design of Debian GNU/Linux comes from the Unix operating system, i.e., a multiuser, multitasking operating system. You must learn to take advantage of the power of these features and similarities between Unix and GNU/Linux.
Don't shy away from Unix oriented texts and don't rely solely on GNU/Linux texts, as this robs you of much useful information.
Nota
If you have been using any Unix-like system for a while with command line tools, you probably know everything I explain here. Please use this as a reality check and refresher.
Upon starting the system, you are presented with the character based login screen if you did not install X Window System with the display manager such as gdm. Suppose your hostname is foo, the login prompt looks as follows.
login de foo:
If you did install a GUI environment such as GNOME or KDE, then you can get to a login prompt by Ctrl-Alt-F1, and you can return to the GUI environment via Alt-F7 (see Seco 1.1.6, Consolas virtuais below for more).
No aviso de login, voc escreve o seu nome de utilizador, ex pinguim, e carrega na tecla Enter, depois escreve a sua palavra-passe e carrega na tecla Enter mais uma vez.
Nota
Seguindo a tradio do Unix, o nome de utilizador e palavra-passe do sistema Debian so sensveis a maisculas/ minsculas. O nome de utilizador geralmente escolhido apenas em minsculas. A primeira conta de utilizador geralmente criada durante a instalao. Podem ser criadas contas de utilizador adicionais com adduser(8) pelo root.
O sistema inicia com a mensagem de boas vindas armazenada em "/ etc/motd" (Mensagem do Dia) e apresenta um aviso de comando.
Debian GNU/Linux lenny/sid foo tty1 foo login: pinguim Password: Last login: Sun Apr 22 09:29:34 2007 on tty1 Linux snoopy 2.6.20-1-amd64 #1 SMP Sun Apr 15 20:25:49 UTC 2007 x86_64
The programs included with the Debian GNU/Linux system are free software; 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. foo:~$
Aqui, a parte principal da mensagem de boas vindas pode ser personalizada ao editar o ficheiro "/etc/motd.tail". A primeira linha gerada a partir de informao do sistema usando "uname -snrvm".
If you installed X Window System with a display manager such as GNOME's gdm by selecting "Desktop environment" task during the installation, you are presented with the graphical login screen upon starting your system. You type your username and your password to login to the non-privileged user account. Use tab to navigate between username and password, or use the mouse and primary click.
You can gain the shell prompt under X by starting a x-terminal-emulator program such as gnome-terminal(1), rxvt(1) or xterm(1). Under the GNOME Desktop environment, clicking
Under some other Desktop systems (like fluxbox), there may be no obvious starting point for the menu. If this happens, just try (right) clicking the center of the screen and hope for a menu to pop-up.
The root account is also called superuser or privileged user. From this account, you can perform the following system administration tasks.
L, escreve e remove quaisquer ficheiros no sistema independentemente das suas permisses Define o dono e permisses de quaisquer ficheiros no sistema Define a palavra-passe de quaisquer utilizadores no privilegiados do sistema. Login em quaisquer contas sem as suas palavras-passe
Este poder ilimitado da conta root querer que voc seja atencioso e responsvel quando a usa.
Ateno
Nota
File permissions of a file (including hardware devices such as CD-ROM etc. which are just another file for the Debian system) may render it unusable or inaccessible by non-root users. Although the use of root account is a quick way to test this kind of situation, its resolution should be done through proper setting of file permissions and user's group membership (see Seco 1.2.3, Permisses do sistema de ficheiros).
Aqui esto alguns mtodos bsicos de ganhar o aviso de shell de root ao usar a palavra-passe do root.
Escreva root no aviso de login baseado em caracteres. Clique "Aplicaes" "Acessrios" "Terminal de Root", sob o ambiente de trabalho GNOME. Escreva "su -l" no aviso de shell de qualquer utilizador.
Isto no preserva o ambiente do utilizador actual. Escreva "su" no aviso de shell de qualquer utilizador.
When your desktop menu does not start GUI system administration
tools automatically with the appropriate privilege, you can start them from the root shell prompt of the X terminal emulator, such as gnome-terminal(1), rxvt(1), or xterm(1). See Seco 1.1.4, A linha de comandos shell do root and Seco 7.8.4, Correr clientes X como root.
Ateno
Never start the X display/session manager under the root account by typing in root to the prompt of the display manager such as gdm(1).
Ateno
Never run untrusted remote GUI program under X Window when critical information is displayed since it may eavesdrop your X screen.
In the default Debian system, there are six switchable VT100-like character consoles available to start the command shell directly on the Linux host. Unless you are in a GUI environment, you can switch between the virtual consoles by pressing the Left-Alt-key and one of the F1 F6 keys simultaneously. Each character console allows independent login to the account and offers the multiuser environment. This multiuser environment is a great Unix feature, and very addictive.
If you are under the X Window System, you gain access to the character console 1 by pressing Ctrl-Alt-F1 key, i.e., the left-Ctrl-key, the left-Alt-key, and the F1-key are pressed together. You can get back to the X Window System, normally running on the virtual console 7, by pressing Alt-F7.
Voc pode alternativamente mudar para outra consola virtual, por exemplo para a consola 1, a partir da linha de comandos.
# chvt 1
You type Ctrl-D, i.e., the left-Ctrl-key and the d-key pressed together, at the command prompt to close the shell activity. If you are at the character console, you return to the login prompt with this. Even though these control characters are referred as "control D" with the upper case, you do not need to press the Shift-key. The short hand expression, ^D, is also used for Ctrl-D. Alternately, you can type "exit".
Se voc est no emulador-terminal-x(1), voc pode fechar a janela do emulador-terminal-x com isto.
Just like any other modern OS where the file operation involves caching data in memory for improved performance, the Debian
system needs the proper shutdown procedure before power can safely be turned off. This is to maintain the integrity of files, by forcing all changes in memory to be written to disk. If the software power control is available, the shutdown procedure automatically turns off power of the system. (Otherwise, you may have to press power button for few seconds after the shutdown procedure.)
Voc pode desligar o sistema sob o modo normal de multi-utilizador a partir da linha de comandos.
# shutdown -h now
Voc pode desligar o sistema sob o modo nico-utilizador a partir da linha de comandos.
# poweroff -i -f
Alternatively, you may type Ctrl-Alt-Delete (The left-Ctrl-key, the left-Alt-Key, and the Delete are pressed together) to shutdown if "/etc/inittab" contains "ca:12345:ctrlaltdel:/sbin/ shutdown -t1 -a -h now" in it. See inittab(5) for details.
When the screen goes berserk after doing some funny things such as "cat <some-binary-file>", type "reset" at the command prompt.
You may not be able to see the command echoed as you type. You may also issue "clear" to clean up the screen.
Although even the minimal installation of the Debian system without any desktop environment tasks provides the basic Unix functionality, it is a good idea to install few additional commandline and curses based character terminal packages such as mc and vim with apt-get(8) for beginners to get started by the following.
pacote popcontamanhodescrio
I:28
sudo * V:42, 668 Um programa que permite privilgios de I:71 root limitados aos utilizadores
gpm * V:3, 484 O cortar-e-colar estilo Unix na I:4 consola de texto (daemon)
pacote popcontamanhodescrio
Documentao do Projecto
doc-debian *
Se voc no deseja usar a sua conta de utilizador principal para as seguintes actividades de treino, voc pode criar uma conta de utilizador para treinos, por exemplo fish fazendo o seguinte.
# adduser fish
Isto cria uma nova conta chamada fish. Aps praticar, voc pode remover esta conta de utilizador e o seu directrio home fazendo o seguinte.
For the typical single user workstation such as the desktop Debian system on the laptop PC, it is common to deploy simple configuration of sudo(8) as follows to let the non-privileged user, e.g. penguin, to gain administrative privilege just with his user password but without the root password.
Alternativamente, tambm comum fazer como se segue para permitir a um utilizador no privilegiado, ex. penguin, ganhar privilgios administrativos sem qualquer palavra-passe.
Este truque s deve ser usado na estao de trabalho de um nico utilizador o qual voc administra e onde voc o nico utilizador.
Ateno
No configure assim as contas de utilizadores normais numa estao de trabalho de multi-utilizadores porque seria muito mau para a segurana do sistema.
Cuidado
The password and the account of the penguin in the above example requires as much protection as the root password and the root account.
Cuidado
Administrative privilege in this context belongs to someone authorized to perform the system administration task on the workstation. Never give some manager in the Admin department of your company or your boss such privilege unless they are authorized and capable.
Nota
For providing access privilege to limited devices and limited files, you should consider to use group to provide limited access instead of using the root privilege via sudo(8).
Nota
grant limited administrative privileges to other users on a shared system without sharing the root password. This can help with accountability with hosts with multiple administrators so you can tell who did what. On the other hand, you might not want anyone else to have such privileges.
Agora voc est pronto para brincar com o sistema Debian sem riscos desde que use a conta de utilizador sem-privilgios.
This is because the Debian system is, even after the default installation, configured with proper file permissions which prevent non-privileged users from damaging the system. Of course, there may still be some holes which can be exploited but those who worry about these issues should not be reading this section but should be reading Securing Debian Manual.
Seco 1.2, Sistema de ficheiros tipo Unix (conceitos bsicos) Seco 1.3, Midnight Commander (MC) (mtodo de sobrevivncia) Seco 1.4, O ambiente de trabalho estilo Unix bsico (mtodo bsico) Seco 1.5, O simples comando de shell (mecanismo da shell)
In GNU/Linux and other Unix-like operating systems, files are organized into directories. All files and directories are arranged in one big tree rooted at "/". It's called a tree because if you draw the filesystem, it looks like a tree but it is upside down.
These files and directories can be spread out over several devices. mount(8) serves to attach the filesystem found on some device to the big file tree. Conversely, umount(8) detaches it again. On recent Linux kernels, mount(8) with some options can bind part of a file tree somewhere else or can mount filesystem as shared, private, slave, or unbindable. Supported mount options for each filesystem are available in "/share/doc/ linux-doc-2.6.*/Documentation/filesystems/".
Directories on Unix systems are called folders on some other systems. Please also note that there is no concept for drive such as "A:" on any Unix system. There is one filesystem, and everything is included. This is a huge advantage compared to Windows.
Os nomes de ficheiro so sensveis a maisculas/minsculas. Isto , "MEUFICHEIRO" e "MeuFicheiro" so ficheiros diferentes. The root directory means root of the filesystem referred as simply "/". Don't confuse this with the home directory for the root user: "/root". Every directory has a name which can contain any letters or symbols except "/". The root directory is an exception; its name is "/" (pronounced "slash" or "the root directory") and it cannot be renamed. Each file or directory is designated by a fully-qualified filename, absolute filename, or path, giving the sequence of directories which must be passed through to reach it. The three terms are synonymous. All fully-qualified filenames begin with the "/" directory, and there's a "/" between each directory or file in the filename. The first "/" is the top level directory, and the other "/"'s separate successive subdirectories, until we reach the last entry which is the name of the actual file. The words used here can be confusing. Take the following fully-qualified filename as an example: "/usr/share/ keytables/us.map.gz". However, people also refers to its basename "us.map.gz" alone as a filename. The root directory has a number of branches, such as "/etc/" and "/usr/". These subdirectories in turn branch into still more subdirectories, such as "/etc/init.d/" and "/usr/local/ ". The whole thing viewed collectively is called the directory tree. You can think of an absolute filename as a
route from the base of the tree ("/") to the end of some branch (a file). You also hear people talk about the directory tree as if it were a family tree: thus subdirectories have parents, and a path shows the complete ancestry of a file. There are also relative paths that begin somewhere other than the root directory. You should remember that the directory "../" refers to the parent directory. This terminology also applies to other directory like structures, such as hierarchical data structures. There's no special directory path name component that corresponds to a physical device, such as your hard disk. This differs from RT-11, CP/M, OpenVMS, MS-DOS, AmigaOS, and Microsoft Windows, where the path contains a device name such as "C:\". (However, directory entries do exist that refer to physical devices as a part of the normal filesystem. See Seco 1.2.2, Internos do sistema de ficheiros.)
Nota
While you can use almost any letters or symbols in a file name, in practice it is a bad idea to do so. It is better to avoid any characters that often have special meanings on the command line, including spaces, tabs, newlines, and other special characters: { } ( ) [ ] ' ` " \ / > < | ; ! # & ^ * % @ $ . If you want to separate words in a name, good choices are the period, hyphen, and underscore. You could also capitalize each word, "LikeThis". Experienced Linux users tend to avoid spaces in filenames.
Nota
A palavra "root" pode significar o "utilizador root" ou o "directrio raiz (root)". O contexto da sua utilizao deve torn-lo claro.
Nota
The word path is used not only for fully-qualified filename as above but also for the command search path. The intended meaning is usually clear from the context.
The detailed best practices for the file hierarchy are described in the Filesystem Hierarchy Standard ("/usr/share/doc/ debian-policy/fhs/fhs-2.3.txt.gz" and hier(7)). You should remember the following facts as the starter.
directrioutilizao do directrio
/ o directrio raiz
Following the Unix tradition, the Debian GNU/Linux system provides the filesystem under which physical data on hard disks and other storage devices reside, and the interaction with the hardware devices such as console screens and remote serial consoles are represented in an unified manner under "/dev/".
Each file, directory, named pipe (a way two programs can share data), or physical device on a Debian GNU/Linux system has a data structure called an inode which describes its associated attributes such as the user who owns it (owner), the group that it belongs to, the time last accessed, etc. If you are really interested, see "/usr/include/linux/fs.h" for the exact definition of "struct inode" in the Debian GNU/Linux system. The idea of representing just about everything in the filesystem was a Unix innovation, and modern Linux kernels have developed this idea ever further. Now, even information about processes running in the computer can be found in the filesystem.
This abstract and unified representation of physical entities and internal processes is very powerful since this allows us to use the same command for the same kind of operation on many totally different devices. It is even possible to change the way the kernel works by writing data to special files that are linked to running processes.
Dica
Se precisar de identificar a correspondncia entre a rvore de ficheiros e a entrada fsica, execute mount(8) sem argumentos.
Filesystem permissions of Unix-like system are defined for three categories of affected users.
O utilizador que dono do ficheiro (u) Other users in the group which the file belongs to (g) All other users (o) also referred to as "world" and "everyone"
A permisso read (r) permite ao dono examinar o contedo do ficheiro. A permisso write (w) permite ao dono modificar o ficheiro. A permisso execute (x) permite ao dono correr o ficheiro
como um comando.
A permisso read (r) permite ao dono listar o contedo do directrio. A permisso write (w) permite ao dono adicionar ou remover ficheiros no directrio. A permisso execute (x) permite ao dono aceder aos ficheiro no directrio.
Here, the execute permission on a directory means not only to allow reading of files in that directory but also to allow viewing their attributes, such as the size and the modification time.
ls(1) is used to display permission information (and more) for files and directories. When it is invoked with the "-l" option, it displays the following information in the order given.
Tipo de ficheiro (primeiro caractere) Permisso de acesso do ficheiro (nove caracteres, consistindo de trs caracteres cada para utilizador, grupo, e os outros por esta ordem) Nmero de hard links para o ficheiro Nome do utilizador que dono do ficheiro Nome do grupo ao qual o ficheiro pertence
Tamanho do ficheiro em caracteres (bytes) Data e hora do ficheiro (mtime) Nome do ficheiro
caracteresignificado
ficheiro normal
d directrio
l link simblico
c n de dispositivo de caractere
b n de dispositivo de bloco
p pipe nomeado
s socket
chown(1) is used from the root account to change the owner of the file. chgrp(1) is used from the file's owner or root account to change the group of the file. chmod(1) is used from the file's owner or root account to change file and directory access permissions. Basic syntax to manipulate a foo file is the following.
For example, you can make a directory tree to be owned by a user foo and shared by a group bar by the following.
The set user ID bit (s or S instead of user's x) The set group ID bit (s or S instead of group's x) The sticky bit (t or T instead of other's x)
Setting set user ID on an executable file allows a user to execute the executable file with the owner ID of the file (for example root). Similarly, setting set group ID on an executable file allows a user to execute the executable file with the group ID of the file (for example root). Because these settings can cause security risks, enabling them requires extra caution.
Setting set group ID on a directory enables the BSD-like file creation scheme where all files created in the directory belong to the group of the directory.
Setting the sticky bit on a directory prevents a file in the directory from being removed by a user who is not the owner of the file. In order to secure contents of a file in world-writable directories such as "/tmp" or in group-writable directories, one must not only reset the write permission for the file but also set the sticky bit on the directory. Otherwise, the file can be removed and a new file can be created with the same name by any user who has write access to the directory.
$ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/exim4 crw------- 1 root root 108, 0 2007-04-29 07:00 /dev/ppp -rw-r--r-- 1 root root 1427 2007-04-16 00:19 /etc/passwd
-rw-r----- 1 root shadow 943 2007-04-16 00:19 /etc/shadow -rwsr-xr-x 1 root root 700056 2007-04-22 05:29 /usr/sbin/exim4 $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src drwxrwxrwt 10 root root 4096 2007-04-29 07:59 /tmp drwxrwsr-x 10 root staff 4096 2007-03-24 18:48 /usr/local drwxrwsr-x 4 root src 4096 2007-04-27 00:31 /usr/src drwxrwsr-x 2 root mail 4096 2007-03-28 23:33 /var/mail drwxrwxrwt 2 root root 4096 2007-04-29 07:11 /var/tmp
There is an alternative numeric mode to describe file permissions with chmod(1). This numeric mode uses 3 to 4 digit wide octal (radix=8) numbers.
digito significado
1 digito sum of set user ID (=4), set group ID (=2), and opcional sticky bit (=1)
2 digito sum of read (=4), write (=2), and execute (=1) permissions for user
Isto parece complicado mas na verdade bastante simples. Se observar as primeiras colunas (2-10) do resultado do comando "ls -l" e l-las como uma representao binria (radix=2) das permisses do ficheiros ("-" sendo "0" e "rwx" sendo "1"), os ltimos trs dgitos do valor de modo numrico para si devero fazer sentido como uma representao octal (radix=8) das permisses do ficheiro.
$ touch foo bar $ chmod u=rw,go=r foo $ chmod 644 bar $ ls -l foo bar -rw-r--r-- 1 penguin penguin 17 2007-04-29 08:22 bar -rw-r--r-- 1 penguin penguin 12 2007-04-29 08:22 foo
Dica
If you need to access information displayed by "ls -l" in shell script, you should use pertinent commands such as test(1), stat (1) and readlink(1). The shell builtin such as "[" or "test" may
be used too.
As permisses que so aplicadas ao criar ficheiros e directrios novos restringida pelo comando embutido da shell umask. Veja dash(1), bash(1), e builtins(7).
0022 -rw-r--r-
escrito pelo
The Debian system uses a user private group (UPG) scheme as its default. A UPG is created whenever a new user is added to the system. A UPG has the same name as the user for which it was created and that user is the only member of the UPG. UPG scheme makes it is safe to set umask to 0002 since every user has their own private group. (In some Unix variants, it is quite common to setup all normal users belonging to a single users group and is good idea to set umask to 0022 for security in such cases.)
De modo a fazer com que as permisses de um grupo sejam aplicadas a um determinado utilizador, esse utilizador precisa de se tornar um membro do grupo usando "sudo vigr".
Nota
Alternatively, you may dynamically add users to groups during the authentication process by adding "auth optional pam_group.so" line to "/etc/pam.d/common-auth" and setting "/etc /security/group.conf". (See Captulo 4, Autenticao.)
Os dispositivos de hardware so apenas outro tipo de ficheiros no sistema Debian. Se tiver problemas a aceder a dispositivos como o CD-ROM e memrias USB a partir de uma conta de utilizador, voc deve tornar esse utilizador um membro do grupo relevante.
Alguns grupos notveis disponibilizados pelo sistema permitem aos seus membros aceder a ficheiros e dispositivos particulares sem privilgios de root.
Tabela 1.7. Lista de grupos notveis disponibilizados pelo sistema para acesso a ficheiros
grupo descrio para ficheiros e dispositivos acessveis dialoutacesso completo e directo a portas srie ("/dev/ttyS [0-3]")
dip Acesso limitado a portas srie para ligao Dialup IP a peers de confiana
scannerscanner(s)
Dica
You need to belong to the dialout group to reconfigure modem, dial anywhere, etc. But if root creates pre-defined configuration files for trusted peers in "/etc/ppp/peers/", you only need to belong to the dip group to create Dialup IP connection to those trusted peers using pppd(8), pon(1), and poff(1) commands.
Alguns grupos notveis disponibilizados pelo sistema permitem aos seus membros executar comandos particulares sem privilgios de root.
Tabela 1.8. Lista de grupos notveis disponibilizados pelo sistema para execues de comandos particulares
lpadminexecuta comandos para adicionar, modificar e remover impressoras das bases de dados de impressoras
For the full listing of the system provided users and groups, see the recent version of the "Users and Groups" document in "/ usr/share/doc/base-passwd/users-and-groups.html" provided by the base-passwd package.
Veja passwd(5), group(5), shadow(5), newgrp(1), vipw(8), vigr (8), and pam_group(8) para comandos de gesto para o sistema de utilizador e grupo.
tipo significado
ctimea hora de alterao de estado do ficheiro (ls -lc) atimea hora do ltimo acesso ao ficheiro (ls -lu)
Nota
Sobrescrever um ficheiro altera todos os atributos mtime, ctime, and atime do ficheiro. Alterar o dono ou as permisses de um ficheiro altera os atributos ctime e atime do ficheiro. Ler um ficheiro altera o atime do ficheiro.
Nota
a file write operation to update atime information in the inode. Mounting a filesystem with "noatime" or "relatime" option makes the system skip this operation and results in faster file access for the read. This is often recommended for laptops, because it reduces hard drive activity and saves power. See mount(8).
For timestamps, the ls command outputs different strings under the modern English locale ("en_US.UTF-8") from under the old one ("C").
$ LANG=en_US.UTF-8 ls -l foo -rw-r--r-- 1 penguin penguin 3 2008-03-05 00:47 foo $ LANG=C ls -l foo -rw-r--r-- 1 penguin penguin 3 Mar 5 00:47 foo
Dica
Veja Seco 9.2.5, Amostragem personalizada de hora e data para personalizar a sada do "ls -l".
Existem dois mtodos de associar um ficheiro "foo" com um nome de ficheiro diferente "bar".
Hard link
Duplica o nome para um ficheiro existente "ln foo bar" Link Simblico ou symlink
Ficheiro especial que aponta para outro ficheiro pelo nome "ln -s foo bar"
Veja o seguinte exemplo para alteraes nas contagens do link e as diferenas subtis nos resultados do comando rm.
$ echo "Contedo Original" > foo $ ls -li foo 2398521 -rw-r--r-- 1 penguin penguin 17 2007-04-29 08:15 foo $ ln foo bar # hard link
$ ln -s foo baz # symlink $ ls -li foo bar baz 2398521 -rw-r--r-- 2 penguin penguin 17 2007-04-29 08:15 bar 2398538 lrwxrwxrwx 1 penguin penguin 3 2007-04-29 08:16 baz -> foo 2398521 -rw-r--r-- 2 penguin penguin 17 2007-04-29 08:15 foo $ rm foo $ echo "Novo Contedo" > foo $ ls -li foo bar baz 2398521 -rw-r--r-- 1 penguin penguin 17 2007-04-29 08:15 bar 2398538 lrwxrwxrwx 1 penguin penguin 3 2007-04-29 08:16 baz -> foo 2398540 -rw-r--r-- 1 penguin penguin 12 2007-04-29 08:17 foo $ cat bar Contedo Original
O hardlink pode ser feito dentro do mesmo sistema de ficheiros e partilhar o mesmo nmero de inode que o ls(1) com a opo "-i" revela.
O link simblico tem sempre permisses nominais de acesso ao ficheiro "rwxrwxrwx", como mostrado no exemplo em cima, com as permisses de acesso efectivas ditadas pelas permisses do ficheiro para o qual aponta.
Cuidado
Geralmente boa ideia no criar links simblicos complicados ou hardlinks de todo a menos que tenha uma boa razo. Podem causar pesadelos onde a combinao lgica dos links simblicos resulta em ciclos viciosos no sistema de ficheiros.
Nota
Geralmente prefervel usar links simblicos em vez de hard links, a menos que tenha boas razes para usar um hardlink.
O directrio "." liga ao directrio onde ele aparece, assim a contagem de link de qualquer novo directrio comea em 2. O directrio ".." liga ao directrio pai, assim a contagem de link do directrio aumenta com a adio de novos sub-directrios.
If you are just moving to Linux from Windows, it soon becomes clear how well-designed the filename linking of Unix is, compared with the nearest Windows equivalent of "shortcuts". Because it is implemented in the filesystem, applications can't see any difference between a linked file and the original. In the case of hardlinks, there really is no difference.
A named pipe is a file that acts like a pipe. You put something into the file, and it comes out the other end. Thus it's called a FIFO, or First-In-First-Out: the first thing you put in the pipe is the first thing to come out the other end.
If you write to a named pipe, the process which is writing to the pipe doesn't terminate until the information being written is read from the pipe. If you read from a named pipe, the reading process waits until there is nothing to read before terminating. The size of the pipe is always zero --- it does not store data, it just links two processes like the shell "|". However, since this pipe has a name, the two processes don't have to be on the same command line or even be run by the same user. Pipes were a very influential innovation of Unix.
$ cd; mkfifo mypipe $ echo "hello" >mypipe & # put into background [1] 8022
$ ls -l mypipe prw-r--r-- 1 penguin penguin 0 2007-04-29 08:25 mypipe $ cat mypipe hello [1]+ Done $ ls mypipe mypipe $ rm mypipe echo "hello" >mypipe
1.2.9. Sockets
Sockets are used extensively by all the Internet communication, databases, and the operating system itself. It is similar to the named pipe (FIFO) and allows processes to exchange information even between different computers. For the socket, those processes do not need to be running at the same time nor to be running as the children of the same ancestor process. This is the endpoint for the inter process communication (IPC). The exchange of information may occur over the network between different hosts. The two most common ones are the Internet socket and the Unix domain socket.
Dica
"netstat -an" disponibiliza uma viso geral muito til dos sockets que esto abertos num determinado sistema.
Device files refer to physical or virtual devices on your system, such as your hard disk, video card, screen, or keyboard. An example of a virtual device is the console, represented by "/ dev/console".
Dispositivo de Caractere
Acedido a um caractere de cada vez 1 caractere = 1 byte Ex, teclado, porta srie, ... Dispositivo de Bloco
acedido em unidades maiores chamadas blocos 1 bloco > 1 byte Ex, o disco rijo, ...
You can read and write device files, though the file may well contain binary data which may be an incomprehensible-to-humans gibberish. Writing data directly to these files is sometimes useful for the troubleshooting of hardware connections. For example, you can dump a text file to the printer device "/dev/ lp0" or send modem commands to the appropriate serial port "/dev /ttyS0". But, unless this is done carefully, it may cause a major disaster. So be cautious.
Nota
$ ls -l /dev/hda /dev/ttyS0 /dev/zero brw-rw---- 1 root cdrom 3, 0 2007-04-29 07:00 /dev/hda crw-rw---- 1 root dialout 4, 64 2007-04-29 07:00 /dev/ttyS0 crw-rw-rw- 1 root root 1, 5 2007-04-29 07:00 /dev/zero
"/dev/hda" has the major device number 3 and the minor device number 0. This is read/write accessible by the user who belongs to cdrom group. "/dev/ttyS0" has the major device number 4 and the minor device number 64. This is read/write accessible by the user who belongs to dialout group. "/dev/zero" tem o nmero 1 no maior dispositivo e o nmero 5 no menor dispositivo. Isto acessvel para leitura/escrita por todos.
No sistema Linux 2.6, o sistema de ficheiro sob "/dev/" povoado automaticamente pelo mecanismo udev(7).
(EOF)"
/dev/randomler
entropy (slow)
urandom ler
number generator
Estes so usados frequentemente em conjunto com o redireccionamento da shell (veja Seco 1.5.8, Sequncias de comandos tpicas e redireccionamento da shell).
The procfs and sysfs mounted on "/proc" and "/sys" are the pseudo-filesystem and expose internal data structures of the kernel to the userspace. In other word, these entries are virtual, meaning that they act as a convenient window into the operation of the operating system.
The directory "/proc" contains (among other things) one subdirectory for each process running on the system, which is named after the process ID (PID). System utilities that access process information, such as ps(1), get their information from this directory structure.
The directories under "/proc/sys/" contain interface to change certain kernel parameters at run time. (You may do the same through specialized sysctl(8) command or its preload/ configuration file "/etc/sysctrl.conf".)
Nota
The Linux kernel may complain "Too many open files". You can fix this by increasing "file-max" value to a larger value from the root shell, e.g., "echo "65536" > /proc/sys/fs/file-max" (This was needed on older kernels).
As pessoas entram em pnico frequentemente quando notam num ficheiro em particular - "/proc/kcore" - o qual geralmente enorme. Isto (mais ou menos) uma cpia do contedo da memria do seu computador. usado para depurar o kernel. um ficheiro virtual que aponta para a memria do computador, portanto no se preocupe com o seu tamanho.
The directory under "/sys" contains exported kernel data structures, their attributes, and their linkages between them. It also contains interface to change certain kernel parameters at run time.
See "proc.txt(.gz)", "sysfs.txt(.gz)" and other related documents in the Linux kernel documentation ("/usr/share/doc/ linux-doc-2.6.*/Documentation/filesystems/*") provided by the linux-doc-2.6.* package.
Midnight Commander (MC) um "Canivete Suo" do GNU para a consola Linux e outros ambientes de terminal. Isto oferece a novatos uma experincia de consola movida a menus o que mais fcil de aprender que os comandos standard do Unix.
Voc deve precisar de instalar o pacote Midnight Commander que intitulado de "mc" com o seguinte.
use o comando mc(1) para explorar o sistema Debian. Esta a melhor maneira de aprender. Por favor explore algumas localizaes interessantes apenas usando as teclas do cursor e Enter.
"/etc" e os seus sub-directrios e"/var/log" os seus sub-directrios "/usr/share/doc" os seus sub-directrios "/sbin" e "/bin"
1.3.1. Personalizao do MC
De modo a fazer o MC mudar o directrio de trabalho ao sair e cd para o directrio, eu sugiro modificar o "~/.bashrc" para incluir um script disponibilizado pelo pacote mc.
. /usr/share/mc/bin/mc.sh
Veja mc(1) (sob a opo "-P") para a razo. (Se voc no compreende exactamente o que estou a falar aqui, pode fazer isto mais tarde.)
1.3.2. Arrancar o MC
$ mc
MC takes care of all file operations through its menu, requiring minimal user effort. Just press F1 to get the help screen. You can play with MC just by pressing cursor-keys and function-keys.
Nota
In some consoles such as gnome-terminal(1), key strokes of function-keys may be stolen by the console program. You can disable these features by "Edit" "Keyboard Shortcuts" for gnome-terminal.
Se encontrar problemas com a codificao de caracteres que mostram caracteres de lixo, adicionar "-a" linha de comandos do MC pode ajudar a prevenir problemas.
Se isto no limpar os seus problemas de cran com o MC, veja Seco 9.6.6, A configurao do terminal.
The default is two directory panels containing file lists. Another useful mode is to set the right window to "information" to see file access privilege information, etc. Following are some essential keystrokes. With the gpm(8) daemon running, one can use a mouse on Linux character consoles, too. (Make sure to
press the shift-key to obtain the normal behavior of cut and paste in MC.)
F1 menu de ajuda
F4 editor interno
Insert ou marca o ficheiro para uma operao de mltiplos Ctrl-T ficheiros como uma cpia
Del apaga o ficheiro (tenha cuidado -- configure o MC para modo de apagar seguro)
O comando cd altera o directrio mostrado no ecr seleccionado. Ctrl-Enter ou Alt-Enter copia um nome de ficheiro para a linha de comandos, Use isto com os comandos cp(1) e mv(1) em conjunto com a edio de linha de comandos. Alt-Tab mostra escolhas de expanso de nomes de ficheiros da shell. Pode-se especificar os directrios de inicio para ambas janelas como argumentos ao MC; por exemplo, "mc /etc /root". Esc + n-key Fn (i.e., Esc + 1 F1, etc.; Esc + 0 F10) Pressing Esc before the key has the same effect as pressing the Alt and the key together.; i.e., type Esc + c for Alt-C. Esc is called meta-key and sometimes noted as "M-".
The internal editor has an interesting cut-and-paste scheme. Pressing F3 marks the start of a selection, a second F3 marks the end of selection and highlights the selection. Then you can move your cursor. If you press F6, the selected area is moved to the cursor location. If you press F5, the selected area is copied and inserted at the cursor location. F2 saves the file. F10 gets you out. Most cursor keys work intuitively.
Este editor pode ser iniciado directamente num ficheiro usando um dos seguintes comandos.
$ mc -e ficheiro_a_editar
$ mcedit ficheiro_a_editar
This is not a multi-window editor, but one can use multiple Linux consoles to achieve the same effect. To copy between windows, use Alt-F<n> keys to switch virtual consoles and use "FileInsert file" or "FileCopy to file" to move a portion of a file to another file.
Este editor interno pode ser substitudo por qualquer editor externo escolha.
Also, many programs use the environment variables "$EDITOR" or "$VISUAL" to decide which editor to use. If you are uncomfortable with vim(1) or nano(1) initially, you may set these to "mcedit" by adding the following lines to "~/.bashrc".
Se voc fica desconfortvel com o vim(1), voc pode continuar a usar o mcedit(1) para a maioria das tarefas de manuteno do sistema.
MC is a very smart viewer. This is a great tool for searching words in documents. I always use this for files in the "/usr/ share/doc" directory. This is the fastest way to browse through masses of Linux information. This viewer can be directly started using one of the following commands.
$ mc -v caminho/para/nome_de_ficheiro_a_visualizar
$ mcview caminho/para/nome_de_ficheiro_a_visualizar
Carregue em Enter num ficheiro, e o programa apropriado lida com o contedo do ficheiro (veja Seco 9.5.11, Personalizar o programa a ser arrancado). Esta uma funcionalidade muito conveniente do MC.
visualizao
web
In order to allow these viewer and virtual file features to function, viewable files should not be set as executable. Change their status using chmod(1) or via the MC file menu.
MC can be used to access files over the Internet using FTP. Go to the menu by pressing F9, then type "p" to activate the FTP virtual filesystem. Enter a URL in the form "username:[email protected]", which retrieves a remote directory that appears like a local one.
Apesar do MC lhe permitir fazer quase tudo, muito importante aprender a usar as ferramentas de linha de comandos invocadas do aviso de shell e torna-se familiarizado com o ambiente de trabalho estilo Unix.
Shell
bash *V:91, 3536 Sim Bash: a GNU Bourne Again SHell I:99 (o standard de facto)
tcsh *V:4, 768 No Shell TENEX C: uma verso I:27 melhorada de Berkeley csh
dash *V:25, 248 Sim Shell Alquimista da Debian. bom I:32 para script de shell
zsh * V:3, 12784 Sim Z shell: a shell standard com I:6 muitos melhoramentos
pdksh V:0.2, 468 Sim verso de domnio pblico da * I:1.1 Korn shell
csh * V:0.6, 404 No OpenBSD shell C, uma verso do I:2 Berkeley csh
sash *I:1.0 856 Sim embutidos (No destinado para "/ bin/sh" standard)
I:1.6
# CD ao MC existente . /usr/share/mc/bin/mc.sh
PATH="${PATH}":/usr/sbin:/sbin # define PATH para incluir binrios privados do utilizador, caso existam if [ -d ~/bin ] ; then PATH=~/bin:"${PATH}" fi export PATH
Dica
Voc pode encontrar mais dicas de personalizao da bash, como os Seco 9.2.7, Comandos coloridos, em Captulo 9, Dicas do sistema.
In the Unix-like environment, there are few key strokes which have special meanings. Please note that on a normal Linux character console, only the left-hand Ctrl and Alt keys work as expected. Here are few notable key strokes to remember.
(opcionalmente, tecla-do-Windows)
semelhante
Tab complete input of the filename to the command line under bash
Ctrl-V Tab input Tab without expansion to the command line under bash
Dica
aco resposta
cursor
The center wheel on the modern wheel mouse is considered middle mouse button and can be used for middle-click. Clicking left and right mouse buttons together serves as the middle-click under the 2 button mouse system situation. In order to use a mouse in Linux character consoles, you need to have gpm(8) running as
daemon.
1.4.5. O pager
less(1) is the enhanced pager (file content browser). Hit "h" for help. It can do much more than more(1) and can be supercharged by executing "eval $(lesspipe)" or "eval $ (lessfile)" in the shell startup script. See more in "/usr/share /doc/lessf/LESSOPEN". The "-R" option allows raw character output and enables ANSI color escape sequences. See less(1).
You should become proficient in one of variants of Vim or Emacs programs which are popular in the Unix-like system.
I think getting used to Vim commands is the right thing to do, since Vi-editor is always there in the Linux/Unix world. (Actually, original vi or new nvi are programs you find everywhere. I chose Vim instead for newbie since it offers you help through F1 key while it is similar enough and more powerful.)
If you chose either Emacs or XEmacs instead as your choice of the editor, that is another good choice indeed, particularly for programming. Emacs has a plethora of other features as well, including functioning as a newsreader, directory editor, mail program, etc. When used for programming or editing shell scripts, it intelligently recognizes the format of what you are
working on, and tries to provide assistance. Some people maintain that the only program they need on Linux is Emacs. Ten minutes learning Emacs now can save hours later. Having the GNU Emacs manual for reference when learning Emacs is highly recommended.
All these programs usually come with tutoring program for you to learn them by practice. Start Vim by typing "vim" and press F1-key. You should at least read the first 35 lines. Then do the online training course by moving cursor to "|tutor|" and pressing Ctrl-].
Nota
Good editors, such as Vim and Emacs, can be used to handle UTF-8 and other exotic encoding texts correctly with proper option in the x-terminal-emulator on X under UTF-8 locale with proper font settings. Please refer to their documentation on multibyte text.
Debian vem com um nmero de editores diferentes. Ns recomendamos instalar o pacote vim, como mencionado em cima.
Debian provides unified access to the system default editor via command "/usr/bin/editor" so other programs (e.g., reportbug(1)) can invoke it. You can change it by the following.
A escolha de "/usr/bin/vim.basic" sobre "/usr/bin/vim.tiny" recomendao minha para novatos porque suporta destaque de sintaxe.
Dica
Many programs use the environment variables "$EDITOR" or "$VISUAL" to decide which editor to use (see Seco 1.3.5, O editor interno em MC and Seco 9.5.11, Personalizar o programa a ser arrancado). For the consistency on Debian system, set these to "/usr/bin/editor". (Historically, "$EDITOR" was "ed" and "$VISUAL" was "vi".)
" ------------------------------" Local configuration " set nocompatible set nopaste set pastetoggle=<f2> syn on if $USER == "root" set nomodeline
set noswapfile else set modeline set swapfile endif " filler to avoid the line above being recognized as a modeline " filler " filler
The output of the shell command may roll off your screen and may be lost forever. It is good practice to log shell activities into the file for you to review them later. This kind of record is essential when you perform any system administration tasks.
$ vim typescript
Let's learn basic Unix commands. Here I use "Unix" in its generic sense. Any Unix clone OSs usually offer equivalent commands. The Debian system is no exception. Do not worry if some commands do not work as you wish now. If alias is used in the shell, its corresponding command outputs are different. These examples are not meant to be executed in this order.
comando descrio
<foo>"
<nome_do_comando>comando "<nome_do_comando>"
which , ,
<nome_do_comando>
<nome_do_comando><nome_do_comando>"
<palavra_chave> <palavra_chave>"
man -k , ,
<palavra_chave>
<nome_do_comando><commandname>"
ls -A lista o contedo do directrio (quase todos os ficheiros e directrios, isto , salta o ".." e ".")
ls -lai lista todo o contedo do directrio com nmero de inode e informao detalhada
directory
actual
cd <foo> change directory to the directory "<foo>" in the current directory or in the directory listed in the variable "$CDPATH"
utilizador "<foo>"
cp <foo> <bar> copia um ficheiro "<foo>" existente para um novo ficheiro "<bar>"
mv <foo> <bar> rename an existing file "<foo>" to a new name "<bar>" ("<bar>" must not exist)
mv <foo> <bar> location "<bar>/<foo>" (the directory "<bar> " must exist)
mv <foo> <bar>/ location with a new name "<bar>/<baz>" (the <baz> directory "<bar>" must exist but the directory "<bar>/<baz>" must not exist)
chmod 600 <foo> non-readable and non-writable by the other people (non-executable for all)
chmod 644 <foo> but non-writable by the other people (non-executable for all)
find . -name <padro> find matching filenames using shell " <pattern>" (slower)
locate -d . <padro> find matching filenames using shell " <pattern>" (quicker using regularly
generated database)
grep -e "<padro>find a "<pattern>" in all files ending with " *.html ".html" in current directory and display them all
top mostra informao de processos usando ecr completo, carregue em "q" para sair
ps aux | pager mostra informao dos processos a correr usando sada ao estilo BSD
ps -ef | pager mostra informao dos processos a correr usando sada ao estilo Unix system-V
"[e]xim4*"
e "exim4"
ps axf | pager mostra informao de todos os processos a correr com sada em arte de ACSII
ID de processo: "<1234>"
gunzip <foo>.gz descomprime "<foo>.gz" para criar "<foo>" comprime "<foo>" para criar "<foo>.bz2"
bzip2 <foo>
bunzip2 <foo>.bz2descomprime "<foo>.bz2" para criar "<foo>" xz <foo> comprime "<foo>" para criar "<foo>.xz" usando o algoritmo de cadeia
unxz <foo>.xz descomprime "<foo>.xz" para criar "<foo>" tar -xvf <foo>.tar extrai ficheiros do arquivo "<foo>.tar"
<foo>.tar.bz2
tar -cvzf <foo>.tar.gz <bar>/ arquiva o contedo da pasta "<bar>/" no arquivo comprimido "<foo>.tar.gz"
tar -cvJf <foo>.tar.xz <bar>/ arquiva o contedo da pasta "<bar>/" no arquivo "<foo>.tar.xz"
zcat README.gz | mostra o contedo do "README.gz" comprimido pager usando o paginador predefinido
zcat README.gz > cria o ficheiro "foo" com o contedo foo descomprimido de "README.gz"
zcat README.gz >>acrescenta o contedo descomprimido de foo "README.gz" ao final do ficheiro "foo" (se ele no existir, primeiro criado)
Nota
comeam com ".". Eles so tradicionalmente ficheiros que contm informao de configurao e preferncias do utilizador.
Nota
Nota
O paginador predefinido da vastido do sistema Debian o more (1), o qual no pode deslocar para trs. A instalar o pacote less usando o comando "apt-get install less", o less(1) torna-se o paginador predefinido e voc pode deslocar para trs com as teclas do cursor.
Nota
The "[" and "]" in the regular expression of the "ps aux | grep -e "[e]xim4*"" command above enable grep to avoid matching itself. The "4*" in the regular expression means 0 or more repeats of character "4" thus enables grep to match both "exim" and "exim4". Although "*" is used in the shell filename glob and the regular expression, their meanings are different. Learn the regular expression from grep(1).
Please traverse directories and peek into the system using the above commands as training. If you have questions on any of console commands, please make sure to read the manual page.
The style of man pages may be a little hard to get used to, because they are rather terse, particularly the older, very traditional ones. But once you get used to it, you come to appreciate their succinctness.
Please note that many Unix-like commands including ones from GNU and BSD display brief help information if you invoke them in one of the following ways (or without any arguments in some cases).
Now you have some feel on how to use the Debian system. Let's look deep into the mechanism of the command execution in the Debian system. Here, I have simplified reality for the newbie. See bash(1) for the exact explanation.
1. Variable assignments (optional) 2. Nome do comando 3. Argumentos (opcional) 4. Re-direces (opcional: > , >> , < , << , etc.) 5. Control operator (optional: && , || , <newline> , ; , & , ( ,))
Values of some environment variables change the behavior of some Unix commands.
Default values of environment variables are initially set by the PAM system and then some of them may be reset by some application programs.
The display manager such as gdm resets environment variables. The shell in its start up codes resets environment variables in "~/bash_profile" and "~/.bashrc".
The full locale value given to "$LANG" variable consists of 3 parts: "xx_YY.ZZZZ".
valor localesignificado
For language codes and country codes, see pertinent description in the "info gettext".
For the codeset on the modern Debian system, you should always set it to UTF-8 unless you specifically want to use the historic one with good reason and background knowledge.
Para mais detalhes sobre configurao do locale, veja Seco 8.3, O locale.
Nota
The "LANG=en_US" is not "LANG=C" nor "LANG=en_US.UTF-8". It is "LANG=en_US.ISO-8859-1" (see Seco 8.3.1, Bases de
codificao).
en_US.UTF-8 Ingls(EUA)
en_GB.UTF-8 Ingls(Gr-Bretanha)
fr_FR.UTF-8 Francs(Frana)
de_DE.UTF-8 Alemo(Alemanha)
it_IT.UTF-8 Italiano(Itlia)
es_ES.UTF-8 Espanhol(Espanha)
ca_ES.UTF-8 Catalo(Espanha)
sv_SE.UTF-8 Sueco(Sucia)
pt_BR.UTF-8 Portugus(Brasil)
ru_RU.UTF-8 Russo(Rssia)
zh_CN.UTF-8 Chins(Rep._Popular_da_China)
zh_TW.UTF-8 Chins(Taiwan_R.O.C.)
ja_JP.UTF-8 Japons(Japo)
ko_KR.UTF-8 Coreano(Repblica_da_Coreia)
vi_VN.UTF-8 Vietnamita(Vietname)
Aqui, o programa date(1) executado com diferentes valores da varivel de ambiente "$LANG".
For the first command, "$LANG" is set to the system default locale value "en_US.UTF-8". For the second command, "$LANG" is set to the French UTF-8 locale value "fr_FR.UTF-8".
Most command executions usually do not have preceding environment variable definition. For the above example, you can alternatively execute as the following.
As you can see here, the output of command is affected by the environment variable to produce French output. If you want the environment variable to be inherited to subprocesses (e.g., when calling shell script), you need to export it instead by the following.
$ export LANG
Dica
When filing a bug report, running and checking the command under
See locale(5) and locale(7) for "$LANG" and related environment variables.
Nota
I recommend you to configure the system environment just by the "$LANG" variable and to stay away from "$LC_*" variables unless it is absolutely needed.
When you type a command into the shell, the shell searches the command in the list of directories contained in the "$PATH" environment variable. The value of the "$PATH" environment variable is also called the shell's search path.
In the default Debian installation, the "$PATH" environment variable of user accounts may not include "/sbin" and "/usr/ sbin". For example, the ifconfig command needs to be issued with full path as "/sbin/ifconfig". (Similar ip command is located in "/bin".)
You can change the "$PATH" environment variable of Bash shell by "~/.bash_profile" or "~/.bashrc" files.
Many commands stores user specific configuration in the home directory and changes their behavior by their contents. The home directory is identified by the environment variable "$HOME".
<utilizador_normal>utilizador normal
<utilizador_normal>desktop menu
<utilizador_normal>
Dica
Shell expands "~/" to current user's home directory, i.e., "$HOME/". Shell expands "~foo/" to foo's home directory, i.e., " /home/foo/".
Some commands take arguments. Arguments starting with "-" or "--" are called options and control the behavior of the command.
$ 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 comandos "-R" altera o comportamento de date(1) para gerar uma string da data compatvel com RFC2822
Often you want a command to work with a group of files without typing all of them. The filename expansion pattern using the shell glob, (sometimes referred as wildcards), facilitate this need.
? exactamente um caractere
[^]
exactamente um caractere que no seja qualquer caractere envolvido em colchetes (excluindo "^")
$ mkdir junk; cd junk; touch 1.txt 2.txt 3.c 4.h .5.txt ..6.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 ..6.txt $ echo .*[^.]* .5.txt ..6.txt $ echo [^1-3]* 4.h $ cd ..; rm -rf junk
Veja glob(7).
Nota
Unlike normal filename expansion by the shell, the shell pattern "*" tested in find(1) with "-name" test etc., matches the
Nota
BASH can be tweaked to change its glob behavior with its shopt builtin options such as "dotglob", "noglob", "nocaseglob", "nullglob", "nocaseglob", "extglob", etc. See bash(1).
Each command returns its exit status (variable: "$?") as the return value.
$ [ 1 = 1 ] ; echo $? 0 $ [ 1 = 2 ] ; echo $? 1
Nota
Please note that, in the logical context for the shell, success is treated as the logical TRUE which has 0 (zero) as its value. This is somewhat non-intuitive and needs to be reminded here.
Let's try to remember following shell command idioms typed in one line as a part of shell command.
command & background execution of command in the subshell comando1 |pipe the standard output of command1 to the
comando2 standard input of command2 (concurrent execution) comando1 pipe both standard output and standard error of 2>&1 | command1 to the standard input of command2 ( comando2 concurrent execution)
comando1 &execute command1; if successful, execute command2 & comando2sequentially (return success if both command1 and command2 are successful)
comando > redirect standard output of command to a file foo foo (overwrite)
command redirect standard error of command to a file foo 2>> foo (append)
command > redirect both standard output and standard error of foo 2>&1 command to a file "foo"
command <<redirect standard input of command to the following delimiter lines until "delimiter" is met (here document)
command redirect standard input of command to the following <<lines until "delimiter" is met (here document, the
The Debian system is a multi-tasking system. Background jobs allow users to run multiple programs in a single shell. The
management of the background process involves the shell builtins: jobs, fg, bg, and kill. Please read sections of bash (1) under "SIGNALS", and "JOB CONTROL", and builtins(1).
$ </etc/motd pager
$ pager </etc/motd
$ pager /etc/motd
Although all 4 examples of shell redirections display the same thing, the last example runs an extra cat command and wastes resources with no reason.
The shell allows you to open files using the exec builtin with an arbitrary file descriptor.
$ echo Hello >foo $ exec 3<foo 4>bar # abrir ficheiros $ cat <&3 >&4 # redireccionar stdin para 3, stdout para 4
Here, "n<&-" and "n>&-" mean to close the file descriptor "n".
Now, "la" works as a short hand for "ls -la" which lists all
You can list any existing aliases by alias (see bash(1) under "SHELL BUILTIN COMMANDS").
You can identity exact path or identity of the command by type (see bash(1) under "SHELL BUILTIN COMMANDS").
$ 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
Here ls was recently searched while "file" was not, thus "ls" is "hashed", i.e., the shell has an internal record for the quick access to the location of the "ls" command.
Dica
In Unix-like work environment, text processing is done by piping text through chains of standard text processing tools. This was another crucial Unix innovation.
Existem algumas ferramentas standard de processamento de texto que so muito usadas nos sistemas tipo Unix.
cat(1) concatena ficheiros e escreve o contedo inteiro. tac(1) concatena ficheiros e escreve-os em reverso. cut(1) selecciona partes de linhas e escreve-as. head(1) escreve a parte inicial de ficheiros. tail(1) escreve a parte final de ficheiros. sort(1) organiza as linhas de ficheiros de texto. uniq(1) remove linhas duplicadas de um ficheiro organizado. tr(1) traduz ou apaga caracteres. diff(1) compara ficheiros linha a linha. usada uma expresso regular bsica (BRE):
ed(1) um editor de linhas primitivo. sed(1) um editor de fluxos. vim(1) um editor de cran. emacs(1) um editor de cran. (BRE de certo modo extensa) usada expresso regular extensa (ERE):
egrep(1) faz coincidir texto com padres. awk(1) faz processamento de texto simples. tcl(3tcl) pode fazer todo o processamento de texto concebvel: re_syntax(3). Bastante usado com tk(3tk). perl(1) pode fazer todo o processamento de texto concebvel. perlre(1). pcregrep(1) from the pcregrep package matches text with Perl Compatible Regular Expressions (PCRE) pattern. python(1) com o mdulo re pode fazer todo o processamento de texto concebvel. Veja "/usr/share/doc/ python/html/index.html".
Se voc no ter a certeza do que estes comandos fazem, por favor use "man comando" para descobri-lo por si.
Nota
Sort order and range expression are locale dependent. If you wish to obtain traditional behavior for a command, use C locale instead of UTF-8 ones by prepnding command with "LANG=C" (see Seco 1.5.2, varivel "$LANG" and Seco 8.3, O locale).
Nota
Perl regular expressions (perlre(1)), Perl Compatible Regular Expressions (PCRE), and Python regular expressions offered by the re module have many common extensions to the normal ERE.
Regular expressions are used in many text processing tools. They are analogous to the shell globs, but they are more complicated and powerful.
The regular expression describes the matching pattern and is made up of text characters and metacharacters.
The metacharacter is just a character with a special meaning. There are 2 major styles, BRE and ERE, depending on the text tools as described above.
\ . [ ] ^\ . [ $ *
] ^ $ common metacharacters
\+ \? \( \) \{ \} \|
+ ? (
r1\|r2 r1|r2 match one of the regular expressions identified by "r1" or "r2"
\(r1\|r2 (r1| match one of the regular expressions \) r2) identified by "r1" or "r2" and treat it as a
The regular expression of emacs is basically BRE but has been extended to treat "+"and "?" as the metacharacters as in ERE. Thus, there are no needs to escape them with "\" in the regular expression of emacs.
grep(1) pode ser usado para executar a pesquisa de texto usando a expresso 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
Dica
\n what the n-th bracketed regular expression matched ("n" being number)
For Perl replacement string, "$n" is used instead of "\n" and "& " has no special meaning.
$ 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=&=
Here please pay extra attention to the style of the bracketed regular expression and how the matched strings are used in the text replacement process on different tools.
These regular expressions can be used for cursor movements and text replacement actions in some editors too.
The back slash "\" at the end of line in the shell commandline escapes newline as a white space character and continues shell command line input to the next line.
Por favor leia todos os manuais relacionados para aprender estes comandos.
The ed(1) command can replace all instances of "FROM_REGEX" with "TO_TEXT" in "file".
EOF
The sed(1) command can replace all instances of "FROM_REGEX" with "TO_TEXT" in "file".
Dica
The sponge(8) command is a non-standard Unix tool offered by the moreutils package. This is quite useful when you wish to overwrite original file.
The vim(1) command can replace all instances of "FROM_REGEX" with "TO_TEXT" in "file" by using ex(1) commands.
Dica
The "c" flag in the above ensures interactive confirmation for each substitution.
Mltiplos ficheiros ("ficheiro1", "ficheiro2",e "ficheiro3") podem ser processados com expresses regulares semelhana com vim(1) ou perl(1).
Dica
The "e" flag in the above prevents the "No match" error from breaking a mapping.
In the perl(1) example, "-i" is for in-place editing, "-p" is for implicit loop over files.
Dica
Use of argument "-i.bak" instead of "-i" keeps each original file by adding ".bak" to its filename. This makes recovery from errors easier for complex substitutions.
Nota
Let's consider a text file called "DPL" in which some pre-2004 Debian project leader's names and their initiation days are listed in a space-separated format.
Ian
Ian
Dica
See "A Brief History of Debian" for the latest Debian leadership history.
$ awk '{ print $3 }' <DPL August April January January April April March $ awk '($1=="Ian") { print }' <DPL Ian Ian Murdock August 1993 Jackson January 1998
# month started
$ awk '($2=="Perens") { print $3,$4 }' <DPL # When Perens started April 1996
Shells such as Bash can be also used to parse this kind of file.
$ while read first last month year; do echo $month done <DPL ... same output as the first Awk example
Here, the read builtin command uses characters in "$IFS" (internal field separators) to split lines into words.
If you change "$IFS" to ":", you can parse "/etc/passwd" with shell nicely.
$ oldIFS="$IFS" # guarda o valor antigo $ IFS=':' $ while read user password uid gid rest_of_line; do if [ "$user" = "bozo" ]; then echo "$user's ID is $uid" fi done < /etc/passwd bozo's ID is 1000 $ IFS="$oldIFS" # restaura o valor antigo
(If Awk is used to do the equivalent, use "FS=':'" to set the field separator.)
IFS is also used by the shell to split results of parameter expansion, command substitution, and arithmetic expansion. These do not occur within double or single quoted words. The default value of IFS is <space>, <tab>, and <newline> combined.
Be careful about using this shell IFS tricks. Strange things may happen, when shell interprets some parts of the script as its input.
$ IFS=":,"
Sat, 23 Aug 2003 08:30:15 +0200 $ echo $(date -R) # sub shell --> input to main shell
Sat 23 Aug 2003 08 30 36 +0200 $ unset IFS $ echo $(date -R) Sat, 23 Aug 2003 08:30:50 +0200 # reset IFS to the default
in one line)
| xargs -n 1 <command> run command repeatedly with each item from pipe as its argument
<regex_pattern>
<regex_pattern>
| awk '{ print $3 }' extract third field from pipe separated by whitespaces
| awk -F'\t' '{ printextract third field from pipe separated $3 }' by tab
| tr -d '\r' remove CR
One-line shell script can loop over many files using find(1) and xargs(1) to perform quite complicated tasks. See Seco 10.1.5, Idiomas para a seleco de ficheiros and Seco 9.5.9, Repeating a command looping over files.
Quando a utilizao dos modos interactivos da shell se torna muito complicada, por favor considere escrever um script de shell (veja Seco 12.1, O script shell).
Nota
Debian is a volunteer organization which builds consistent distributions of pre-compiled binary packages of free software and distributes them from its archive.
The Debian archive is offered by many remote mirror sites for access through HTTP and FTP methods. It is also available as CD-ROM/DVD.
The Debian package management system, when used properly, offers the user to install consistent sets of binary packages to the system from the archive. Currently, there are 30552 packages available for the amd64 architecture.
The Debian package management system has a rich history and many choices for the front end user program and back end archive access method to be used. Currently, we recommend the following.
apt-get(8) para todas as operaes de linha de comandos, incluindo a instalao e remoo de pacotes, e os dist-upgrades. aptitude(8) para uma interface de texto interactiva para gerir os pacotes instalados e procurar os pacotes disponveis. update-manager(8) para manter o seu sistema actualizado se voc estiver a correr o ambiente de trabalho GNOME predefinido.
apt * Advanced Packaging Tool (APT), front-end for dpkg providing "http", "ftp",
V:90,
I:99 5600 and "file" archive access methods (apt-get/ apt-cache commands included)
ferramenta para
V:5,
tasksel *
unattended-upgrades V:4, *
V:2,
I:30 2404 anterior, frontend para o APT e outros mtodos de acesso antigos)
Programas utilitrios do
apt-utils *
apt-listbugs * V:1.4, 508 lista bugs crticos antes de cada instalao do APT
I:2
I:0.9
pacote recursivamente
Aqui esto alguns pontos chave para configurao de pacotes no sistema Debian.
A configurao manual feita pelo administrador do sistema respeitada. Por outras palavras, o sistema de configurao de pacotes no faz configuraes intrusivas por convenincia. Cada pacote vem com o seu prprio script de configurao com a interface de utilizador standard chamada debconf(7) para ajudar no processo inicial de instalao do pacote. Os Programadores da Debian do o seu melhor para tornar a sua experincia de actualizao isenta de falhas com scripts de configurao de pacotes. As funcionalidades totais do software empacotado esto disponveis ao administrador do sistema. Mas aquelas com riscos de segurana esto desactivadas na instalao predefinida. Se voc activou manualmente um servio com alguns riscos de segurana voc o responsvel pelo confinamento de risco. A configurao esotrica pode ser activada manualmente pelo administrador do sistema. Isto pode criar interferncias com programas de ajuda genricos populares para a configurao do sistema.
Ateno
probably breaks the package consistency which requires deep system management knowledge, such as compiler ABI, library version, interpreter features, etc.
The newbie Debian system administrator should stay with the stable release of Debian while applying only security updates. I mean that some of the following valid actions are better avoided, as a precaution, until you understand the Debian system very well. Here are some reminders.
Do not include testing or unstable in "/etc/apt/ sources.list". No misture Debian standard com outros arquivos no Debian como o Ubuntu em "/etc/apt/sources.list". No crie o "/etc/apt/preferences". No altere o comportamento predefinido das ferramentas de gesto de pacotes atravs de ficheiros de configurao sem conhecer os seus impactos totais. No instale pacotes aleatrios por "dpkg -i <qualquer_pacote>". Nunca instale pacotes aleatrios por "dpkg --force-all -i <qualquer_pacote>". No apague ou altere os ficheiros em "/var/lib/dpkg/". No sobrescreva ficheiros do sistema ao instalar programas de software directamente compilados da fonte.
Os efeitos no-compatveis causados pelas aces em cima ao sistema de gesto de pacotes da Debian podem deixar o seu sistema inutilizado.
O administrador de sistema Debian srio que corre servidores de misses crticas, deve tomar precaues extra.
No instale nenhuns pacotes incluindo as actualizaes de segurana da Debian sem os testar completamente com as suas configuraes particulares sob condies seguras.
Voc como o administrador do sistema o responsvel final pelo seu sistema. A longa histria de estabilidade do sistema Debian no uma garantia s por si.
Despite my warnings above, I know many readers of this document wish to run the testing or unstable suites of Debian as their main system for self-administered Desktop environments. This is because they work very well, are updated frequently, and offer the latest features.
Cuidado
For your production server, the stable suite with the security updates is recommended. The same can be said for desktop PCs on which you can spend limited administration efforts, e.g. for
It takes no more than simply setting the distribution string in the "/etc/apt/sources.list" to the suite name: "testing" or "unstable"; or the codename: "wheezy" or "sid". This makes you live the life of eternal upgrades.
The use of testing or unstable is a lot of fun but comes with some risks. Even though the unstable suite of Debian system looks very stable for most of the times, there have been some package problems on the testing and unstable suite of Debian system and a few of them were not so trivial to resolve. It may be quite painful for you. Sometimes, you may have a broken package or missing functionality for a few weeks.
Aqui esto algumas ideias para assegurar recuperao fcil e rpida de bugs nos pacotes Debian.
Make the system dual bootable by installing the stable suite of Debian system to another partition Make the installation CD handy for the rescue boot Considere instalar o apt-listbugs para verificar informao do Debian Bug Tracking System (BTS) antes da actualizao. Conhea o suficiente da infraestrutura do sistema de pacotes para contornar o problema Crie um chroot ou ambiente semelhante para antecipadamente correr o sistema mais recente nele (veja Seco 9.8, Sistema virtualizado)
(If you can not do any one of these precautionary actions, you are probably not ready for the testing and unstable suites.)
Enlightenment with the following saves a person from the eternal karmic struggle of upgrade hell and let him reach Debian nirvana .
Dica
Official policy of the Debian archive is defined at Debian Policy Manual, Chapter 2 - The Debian Archive.
For the typical HTTP access, the archive is specified in the "/ etc/apt/sources.list" file as the following, e.g. for the current stable = squeeze system.
deb http://ftp.XX.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.XX.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib deb-src http://security.debian.org/ squeeze/updates main contrib
Please note "ftp.XX.debian.org" must be replaced with appropriate mirror site URL for your location, for USA
"ftp.us.debian.org", which can be found in the list of Debian worldwide mirror sites. The status of these servers can be checked at Debian Mirror Checker site.
Here, I tend to use codename "squeeze" instead of suite name "stable" to avoid surprises when the next stable is released.
A linha "deb" define os pacotes binrios. A linha "deb-src" define os pacotes fonte. O 1 argumento o URL raiz do arquivo Debian. O 2 argumento o nome da distribuio: seja o nome de suite ou o nome de cdigo. O 3 argumento e seguintes so a lista de nomes de rea de arquivo vlidos do arquivo Debian.
The "deb-src" lines can safely be omitted (or commented out by placing "#" at the start of the line) if it is just for aptitude which does not access source related meta data. It speeds up the updates of the archive meta data. The URL can be "http://", "ftp://", "file://", .
Dica
If "sid" is used in the above example instead of "squeeze", the "deb: http://security.debian.org/ " line for security updates in the "/etc/apt/sources.list" is not required. This is because
Aqui est uma lista de URLs de sites de arquivo Debian e nomes das suites ou nomes de cdigo usados no ficheiro de configurao.
cdigo)
http:// lanamento
(squeeze) stable
http:// pr-lanamento
experimental
security.debian.org/
security.debian.org/testing/updates testing
(importante)
http:// compatible
squeeze
backports.debian.orgsqueeze-backports /debian-backports/
squeeze (optional)
Cuidado
Only pure stable release with security updates provides the best stability. Running mostly stable release mixed with some packages from testing or unstable release is riskier than running pure unstable release for library version mismatch etc. If you really need the latest version of some programs under stable release, please use packages from squeeze-updates and http://backports.debian.org (see Seco 2.7.4, Updates and Backports) services. These services must be used with extra care.
Cuidado
You should basically list only one of stable, testing, or unstable suites in the "deb" line. If you list any combination of stable, testing, and unstable suites in the "deb" line, APT programs slow down while only the latest archive is effective.
Multiple listing makes sense for these when the "/etc/apt/ preferences" file is used with clear objectives (see Seco 2.7.3, Tweaking candidate version).
Dica
For the Debian system with the stable and testing suites, it is a good idea to include lines with "http://security.debian.org/" in the "/etc/apt/sources.list" to enable security updates as in the example above.
Nota
The security bugs for the stable archive are fixed by the Debian security team. This activity has been quite rigorous and reliable. Those for the testing archive may be fixed by the Debian testing security team. For several reasons, this activity is not as rigorous as that for stable and you may need to wait for the migration of fixed unstable packages. Those for the unstable archive are fixed by the individual maintainer. Actively maintained unstable packages are usually in a fairly good shape by leveraging latest upstream security fixes. See Debian security FAQ for how Debian handles security bugs.
pacotes
dependncia a non-free
dependncias a non-free
Here the number of packages in the above is for the amd64 architecture. Strictly speaking, only the main area archive shall be considered as the Debian system.
The Debian archive organization can be studied best by pointing your browser to the each archive URL appended with dists or pool.
The distribution is referred by two ways, the suite or codename. The word distribution is alternatively used as the synonym to the suite in many documentations. The relationship between the suite and the codename can be summarized as the following.
aps o nome de cdigo nome de cdigo =nome de = squeeze wheezy cdigo = sid
lanamento squeeze
aps o nome de cdigo nome de cdigo =nome de = wheezy wheezy+1 cdigo = sid
lanamento wheezy
A histria dos nomes de cdigo est descrita em Debian FAQ: 6.3.1 Que outros nomes de cdigo foram usados no passado?
In the stricter Debian archive terminology, the word "section" is specifically used for the categorization of packages by the application area. (Although, the word "main section" may sometimes be used to describe the Debian archive area named as "main".)
Every time a new upload is done by the Debian developer (DD) to the unstable archive (via incoming processing), DD is required
to ensure uploaded packages to be compatible with the latest set of packages in the latest unstable archive.
If DD breaks this compatibility intentionally for important library upgrade etc, there is usually announcement to the debian-devel mailing list etc.
Before a set of packages are moved by the Debian archive maintenance script from the unstable archive to the testing archive, the archive maintenance script not only checks the maturity (about 10 days old) and the status of the RC bug reports for the packages but also tries to ensure them to be compatible with the latest set of packages in the testing archive. This process makes the testing archive very current and usable.
Through the gradual archive freeze process led by the release team, the testing archive is matured to make it completely consistent and bug free with some manual interventions. Then the new stable release is created by assigning the codename for the old testing archive to the new stable archive and creating the new codename for the new testing archive. The initial contents of the new testing archive is exactly the same as that of the newly released stable archive.
Both the unstable and the testing archives may suffer temporary glitches due to several factors.
Delay of accepting the new packages to the archive (mostly for unstable) Archive synchronization timing issue (both for testing and unstable) Interveno manual no arquivo tal como remoo de pacotes (mais para testing) etc.
Se alguma vez voc decidir usar estes arquivos, dever ser capaz de corrigir ou contornar este tipo de problemas.
Cuidado
For about few months after a new stable release, most desktop users should use the stable archive with its security updates even if they usually use unstable or testing archives. For this transition period, both unstable and testing archives are not good for most people. Your system is difficult to keep in good working condition with the unstable archive since it suffers surges of major upgrades for core packages. The testing archive is not useful either since it contains mostly the same content as the stable archive without its security support (Debian testing-security-announce 2008-12). After a month or so, the unstable archive may be usable if you are careful.
Dica
When tracking the testing archive, problem caused by a removed package is usually worked around by installing corresponding package from the unstable archive which is uploaded for bug fix.
O sistema Debian oferece um conjunto consistente de pacotes binrios atravs do seu mecanismo de declarao de dependncias binrias versionadas nos campos do ficheiro de controle. Aqui est uma definio deles um pouco simplificada.
"Depends"
Isto declara uma dependncia absoluta e todos os pacotes listados neste campo tm de ser instalados ao mesmo tempo ou com antecedncia. "Pre-Depends"
Isto como o Depends, excepto que requer a instalao completa de todos os pacotes listados com antecedncia. "Recommends"
Isto declara uma dependncia forte mas no absoluta. A maioria dos utilizadores no iriam querer o pacote a
menos que todos os pacotes listados neste campo estejam instalados. "Suggests"
Isto declara uma dependncia fraca. Muitos utilizadores deste pacote podem beneficiar ao instalar os pacotes listados neste campo mas podem ter as funes razoveis sem eles. "Enhances"
Isto declara uma dependncia fraca como o Suggests mas funciona na direco oposta. "Breaks"
Isto declara uma incompatibilidade do pacote normalmente com alguma especificao de verso. Geralmente a resoluo actualizar todos os pacotes listados neste campo. "Conflicts"
Isto declara uma incompatibilidade absoluta. Todos os pacotes listados neste campo tm de ser removidos para instalar este pacote. "Replaces"
Isto declarado quando os ficheiros instalados por este pacote substituem ficheiros nos pacotes listados. "Provides"
Isto declarado quando este pacote disponibiliza todos os ficheiros e funcionalidades dos pacotes listados.
Nota
Por favor note que definir "Provides", "Conflicts" e "Replaces" em simultneo a um pacote virtual a configurao s. Isto assegura que apenas um pacote real que disponibilize este pacote virtual possa ser instalado de cada vez.
A definio oficial incluindo dependncias de fonte pode ser encontrada em O Manual de Polticas: Captulo 7 - Declarar relaes entre pacotes.
Aqui est um resumo do fluxo de eventos simplificado da gesto de pacotes pelo APT.
1. Obtm meta-dados do arquivo a partir do arquivo remoto 2. Reconstri e actualiza os meta-dados locais para uso pelo APT Upgrade ("aptitude safe-upgrade" e "aptitude full-upgrade", ou "apt-get upgrade" e "apt-get dist-upgrade"):
mais recente disponvel para todos os pacotes instalados (veja Seco 2.7.3, Tweaking candidate version para excepes). 2. Resolve a dependncia do pacote 3. Obtm os pacotes binrios seleccionados do arquivo remoto se a verso candidata diferente da verso instalada. 4. Desempacota os pacotes binrios obtidos 5. Correr o script preinst 6. Instala os ficheiros binrios 7. Correr o script postinst Install ("aptitude install " ou "apt-get install "):
1. Escolhe os pacotes listados na linha de comandos 2. Resolve a dependncia do pacote 3. Obtm os pacotes binrios seleccionados a partir do arquivo remoto 4. Desempacota os pacotes binrios obtidos 5. Correr o script preinst 6. Instala os ficheiros binrios 7. Correr o script postinst Remove ("aptitude remove " ou "apt-get remove "):
1. Escolhe os pacotes listados na linha de comandos 2. Resolve a dependncia do pacote 3. Correr o script prerm 4. Remove os ficheiros instalados excepto os ficheiros de configurao 5. Correr o script postrm
1. Escolhe os pacotes listados na linha de comandos 2. Resolve a dependncia do pacote 3. Correr o script prerm 4. Remove os ficheiros instalados incluindo os ficheiros de configurao 5. Correr o script postrm
You should read the fine official documentation. The first document to read is the Debian specific "/usr/share/doc/ <package_name>/README.Debian". Other documentation in "/usr/ share/doc/<package_name>/" should be consulted too. If you set shell as Seco 1.4.2, Personalizar o bash, type the following.
Voc pode precisar de instalar o pacote de documentao correspondente com o sufixo "-doc" no nome, para informaes mais detalhadas.
Se voc est a ter problemas com um pacote especfico , certifique-se de verificar o Sistema de acompanhamento de bugs Debian (BTS) primeiro.
Tabela 2.5. Lista de sites web chave para resolver problemas com um pacote especfico.
Pgina inicial do Sistema de sensible-browser "http:// acompanhamento de bugs Debian bugs.debian.org/" (BTS)
<nome_do_pacote>"
<nmero_do_bug>"
Quando voc criar um relatrio de bug, por favor use o comando reportbug(1).
As operaes bsicas de gesto de pacotes no sistema Debian podem ser executas por qualquer ferramenta de gesto de pacotes disponvel no sistema Debian. Aqui vamos explicar as ferramentas de gesto bsica de pacotes: apt-get / apt-cache e aptitude.
Para as operaes de gesto de pacotes que envolvam a instalao ou actualizao de metadados do pacote, voc precisa de ter privilgios de root.
O apt-get e o apt-cache oferecem apenas a interface de linha de comandos. O apt-get mais apropriado para a actualizao maior ao sistema entre lanamentos, etc. O apt-get oferece um resolvedor de pacotes robusto e estvel que usa dados de estado dos pacotes comuns. O apt-get foi actualizado para suportar a auto-instalao e
auto-remoo de pacotes recomendados. O apt-get foi actualizado para suportar o registo em log das actividades de pacotes. O apt-cache oferece uma busca baseada em expresses regulares standard no nome do pacote e na descrio. O apt-get e o apt-cache podem gerir mltiplas verses de pacotes usando o /etc/apt/preferences mas fica bastante pesado.
O aptitude oferece a interface de utilizador de texto interactiva de cran completo. O aptitude tambm oferece uma interface de utilizador de linha de comandos. O aptitude mais apropriado para a gesto de pacotes interactiva diria como o inspeccionar os pacotes instalados e procurar pacotes disponveis. O aptitude oferece um resolvedor de pacotes avanado que tambm usa uns dados de estado de pacotes extra usados apenas pelo aptitude. O aptitude suporta auto-instalao e auto-remoo de pacotes recomendados. O aptitude suporta registo em log das actividades de pacotes. O aptitude oferece um busca baseada em expresses regulares avanada em todos os metadados dos pacotes.
O aptitude pode gerir mltiplas verses de pacotes sem usar o /etc/apt/preferences e bastante intuitivo.
Nota
Although the aptitude command comes with rich features such as its enhanced package resolver, this complexity has caused (or may still causes) some regressions such as Bug #411123, Bug # 514930, and Bug #570377. In case of doubt, please use the apt-get and apt-cache commands over the aptitude command.
Aqui esto algumas operaes bsicas de gesto de pacotes com a linha de comandos usando aptitude(8) e apt-get(8) / apt-cache (8).
Tabela 2.6. Operaes bsicas de gesto de pacotes com a linha de comandos usando aptitude(8) e apt-get(8) / apt-cache(8).
update
update
pacotes
aptitude apt-get instala as verses candidatas dos pacotes instalados sem remover
safe-upgradeupgrade
autoremove j no so necessrios
clean
clean
obtidos
aptitude apt-cache mostra informao detalhada acerca show foo show do pacote "foo"
<package>
aptitude why <regex> N/D explain the reason why <regex> matching packages should be
installed
aptitude why-not <regex> N/D explain the reason why <regex> matching packages can not be installed
Nota
Since apt-get and aptitude share auto-installed package status (see Seco 2.5.5, O estado do pacote para o APT) after lenny, you can mix these tools without major troubles (see Bug #594490 ).
The difference between "safe-upgrade"/"upgrade" and "full-upgrade"/"dist-upgrade" only appears when new versions of packages stand in different dependency relationships from old versions of those packages. The "aptitude safe-upgrade" command does not install new packages nor remove installed packages.
The "aptitude why <regex>" can list more information by "aptitude -v why <regex>". Similar information can be obtained by "apt-cache rdepends <package>".
When aptitude command is started in the commandline mode and faces some issues such as package conflicts, you can switch to the full screen interactive mode by pressing "e"-key later at the prompt.
Dica
The dselect package is still available and was the preferred full screen interactive package management tool in previous releases.
For the interactive package management, you start aptitude in interactive mode from the console shell prompt as follows.
This updates the local copy of the archive information and display the package list in the full screen with menu. Aptitude places its configuration at "~/.aptitude/config".
Dica
If you want to use root's configuration instead of user's one, use "sudo -H aptitude " instead of "sudo aptitude " in the above expression.
Dica
Aptitude automatically sets pending actions as it is started interactively. If you do not like it, you can reset it from menu: "Action" "Cancel pending actions".
Notable key strokes to browse status of packages and to set "planned action" on them in this full screen mode are the following.
tecla
tecla de atalho
The file name specification of the command line and the menu prompt after pressing "l" and "//" take the aptitude regex as described below. Aptitude regex can explicitly match a package name using a string started by "~n and followed by the package name.
Dica
You need to press "U" to get all the installed packages upgraded to the candidate version in the visual interface. Otherwise only the selected packages and certain packages with versioned dependency to them are upgraded to the candidate version.
No modo de cran completo interactivo do aptitude(8), os pacotes na lista de pacotes so mostrados como no prximo exemplo.
idA libsmbclient
A bandeira "estado actual" (a primeira letra) A bandeira "aco planeada" (a segunda letra) A bandeira "automtico" ( a terceira letra) O nome do Pacote A alterao na utilizao do espao do disco atribuda a "aco planeada" A verso actual do pacote A verso candidata do pacote
Dica
The full list of flags are given at the bottom of Help screen shown by pressing "?".
The candidate version is chosen according to the current local preferences (see apt_preferences(5) and Seco 2.7.3, Tweaking candidate version).
Pacote
Bom
(predefinio)
lista pacotes que so recomendados por alguns pacotes instalados mas ainda no esto listados como
instalados
Lista de Bom lista pacotes sem categorizao (para usar com expresses regulares)
Pacotes Lisa
Categorias
Nota
A "Vista de Pacotes standard categoriza os pacotes de certo modo como o dselect com algumas funcionalidades extra.
Pacotes Novos , ,
Pacotes Instalados , ,
Pacotes No Instalados , ,
Tarefas
lista pacotes com diferentes funes geralmente necessrias para uma tarefa
Dica
A vista Tarefas pode ser usada para escolher pacotes para a sua tarefa.
O aptitude oferece vrias opes para voc procurar pacotes usando a sua frmula de expresses regulares.
"aptitude search '<aptitude_regex>'" to list installation status, package name and short description of matching packages "aptitude show '<package_name>'" to list detailed description of the package modo de cran total interactivo:
"l" para limitar a vista de pacotes aos pacotes correspondentes "/" para procurar um pacote correspondente "\" para procurar um pacote correspondente voltando para
trs "n" para procurar o prximo "N" para procurar o prximo (andando para trs)
Dica
The string for <package_name> is treated as the exact string match to the package name unless it is started explicitly with "~" to be the regex formula.
The aptitude regex formula is mutt-like extended ERE (see Seco 1.6.2, Expresses regulares) and the meanings of the aptitude specific special match rule extensions are as follows.
descrio da regra
prioridade da ~p{extra,important,optional,required,standard}
correspondncia
corresponde com ~a
automaticamente)
relaes quebradas
which relation
~D[<type>:]<term>
match packages to which the <term> ~R[<type>:]<term> package defines relation <type>
match packages to which the <term> package defines ~RB[<type>:]<term> broken relation <type>
corresponde com
~R~i
corresponde o
The regex part is the same ERE as the one used in typical Unix-like text tools using "^", ".*", "$" etc. as in egrep (1), awk(1) and perl(1). A relao <type> uma de (dependncias, pr-dependncias, recomendaes, sugestes, conflitos, substituies, fornecimentos). O tipo de relao predefinido "depends".
Dica
Quando <regex_pattern> uma string nula, coloca "~T" imediatamente aps o comando.
"~P<term>" == "~Dprovides:<term>"
Users familiar with mutt pick up quickly, as mutt was the inspiration for the expression syntax. See "SEARCHING, LIMITING, AND EXPRESSIONS" in the "User's Manual" "/usr/share/doc/aptitude /README".
Nota
With the lenny version of aptitude(8), the new long form syntax such as "?broken" may be used for regex matching in place for its old short form equivalent "~b". Now space character " " is considered as one of the regex terminating character in addition to tilde character "~". See "User's Manual" for the new long form syntax.
The selection of a package in aptitude not only pulls in packages which are defined in its "Depends:" list but also defined in the "Recommends:" list if the menu "F10 Options Dependency handling" is set accordingly. These auto installed packages are removed automatically if they are no longer needed under aptitude.
Nota
ficheiro contedo
/var/log/ dpkg.log Log da actividade de nvel do dpkg para as actividades de todos os pacotes
Na realidade, no muito fcil obter uma compreenso significativa rapidamente a partir destes logs. Veja
Seco 9.2.10, Gravar alteraes em ficheiros de configurao para um modo mais fcil.
2.3.1. Listagem de pacotes com correspondncia por expresso regular nos nomes de pacotes
O seguinte comando lista pacotes com o regex a condizer com nomes de pacotes.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
The regex "~dipv6" in the "New Flat Package List" view with "l" prompt, limits view to packages with the matching description and let you browse their information interactively.
Se voc acha que os pacotes listados esto OK para serem purgados, execute o seguinte comando.
Voc pode querer fazer semelhante no modo interactivo para um controle mais preciso.
You provide the regex "~c" in the "New Flat Package List" view with "l" prompt. This limits the package view only to regex matched packages, i.e., "removed but not purged". All these regex matched packages can be shown by pressing "[" at top level headings.
Then you press "_" at top level headings such as "Installed Packages". Only regex matched packages under the heading are marked to be purged by this. You can exclude some packages to be purged by pressing "=" interactively for each of them.
Esta tcnica muito jeitosa e funciona com muitas outras teclas de comando.
Here is how I tidy auto/manual install status for packages (after using non-aptitude package installer etc.).
1. Arranque o aptitude em modo interactivo como root. 2. Type "u", "U", "f" and "g" to update and upgrade package list and packages. 3. Type "l" to enter the package display limit as "~i(~R~i| ~Rrecommends:~i)" and type "M" over "Installed Packages" as auto installed. 4. Type "l" to enter the package display limit as "~prequired| ~pimportant|~pstandard|~E" and type "m" over "Installed Packages" as manual installed. 5. Type "l" to enter the package display limit as "~i!~M" and remove unused package by typing "-" over each of them after exposing them by typing "[" over "Installed Packages". 6. Type "l" to enter the package display limit as "~i" and type "m" over "Tasks" as manual installed. 7. Termina o aptitude. 8. Start "apt-get -s autoremove|less" as root to check what are not used. 9. Restart aptitude in interactive mode and mark needed packages as "m". 10. Restart "apt-get -s autoremove|less" as root to recheck REMOVED contain only expected packages. 11. Arranque "apt-get autoremove|less" como root para auto-remover os pacotes no usados.
Nota
When moving to a new release etc, you should consider to perform a clean installation of new system even though Debian is upgradable as described below. This provides you a chance to remove garbages collected and exposes you to the best combination of latest packages. Of course, you should make a full backup of system to a safe place (see Seco 10.1.6, Salvaguarda (backup) e recuperao) before doing this. I recommend to make a dual boot configuration using different partition to have the smoothest transition.
You can perform system wide upgrade to a newer release by changing contents of the "/etc/apt/sources.list" file pointing to a new release and running the "apt-get update; apt-get dist-upgrade" command.
To upgrade from stable to testing or unstable, you replace "squeeze" in the "/etc/apt/sources.list" example of Seco 2.1.4, Bases de arquivos Debian with "wheezy" or "sid".
In reality, you may face some complications due to some package transition issues, mostly due to package dependencies. The larger the difference of the upgrade, the more likely you face larger troubles. For the transition from the old stable to the
new stable after its release, you can read its new Release Notes and follow the exact procedure described in it to minimize troubles.
When you decide to move from stable to testing before its formal release, there are no Release Notes to help you. The difference between stable and testing could have grown quite large after the previous stable release and makes upgrade situation complicated.
You should make precautionary moves for the full upgrade while gathering latest information from mailing list and using common senses.
1. Leia as "Notas de Lanamento" anteriores. 2. Faa salvaguarda ao sistema completo (especialmente dados e informao de configurao). 3. Tenha uma media de arranque mo para o caso do gestor de arranque ficar danificado. 4. Informe os utilizadores do sistema com bastante antecedncia. 5. Grave a actividade de actualizao com o script(1). 6. Apply "unmarkauto" to required packages, e.g., "aptitude unmarkauto vim", to prevent removal. 7. Minimize installed packages to reduce chance of package conflicts, e.g., remove desktop task packages. 8. Remova o ficheiro "/etc/apt/preferences" (desactiva o apt-pinning). 9. Try to upgrade step wise: oldstable stable testing
unstable. 10. Actualize o ficheiro "/etc/apt/sources.list" para apontar apenas para o novo arquivo e corra "aptitude update". 11. Install, optionally, new core packages first, e.g., "aptitude install perl". 12. Corra o comando "apt-get -s dist-upgrade" para aceder ao impacto. 13. Corra o comando "apt-get dist-upgrade" em ltimo lugar.
Cuidado
It is not wise to skip major Debian release when upgrading between stable releases.
Cuidado
In previous "Release Notes", GCC, Linux Kernel, initrd-tools, Glibc, Perl, APT tool chain, etc. have required some special attention for system wide upgrade.
For daily upgrade in unstable, see Seco 2.4.3, Salvaguardar para problemas de pacotes..
comando aco
<padro_do_nome_de_pacote> instalado para o relatrio de bug dpkg -L <nome_do_pacote> lista o contedo de um pacote instalado
dpkg -L <nome_do_pacote> | lista os manuais para um pacote egrep '/usr/share/man/man.* instalado /.+'
<padro_do_nome_de_ficheiro>condizem com o nome de ficheiro apt-file search lista pacotes no arquivo que
apt-file list
dpkg-reconfigure -p=low <nome_do_pacote> reconfigura o pacote exacto com as questes mais detalhadas
parcialmente instalados
<nome_do_pacote> pacote
informao de arquivo de um
dget <URL para ficheiro dsc>descarrega um pacote fonte (de outro arquivo)
"*.debian.tar.gz"/"*.diff.gz")
make-kpkg --initrd imagem_de_kernel compila um pacote de kernel a partir de uma rvore fonte de
dpkg --get-selections '*' > guarda a informao de estado de selection.txt seleco a nvel de pacotes do dpkg
echo <package_name> hold | state for a package to hold dpkg --set-selections (equivalent to "aptitude hold
<package_name>")
Cuidado
Lower level package tools such as "dpkg -i " and "debi " should be carefully used by the system administrator. It does not automatically take care required package dependencies. Dpkg's commandline options "--force-all" and similar (see dpkg (1)) are intended to be used by experts only. Using them without fully understanding their effects may break your whole system.
Toda a configurao do sistema e comandos de instalao requerem serem executados pelo root. A contrrio do aptitude que usa regex (veja Seco 1.6.2, Expresses regulares), os outros comandos de gesto de pacotes usam padres como a shell glob (veja Seco 1.5.6, Glob da shell). O apt-file(1) disponibilizado pelo pacote apt-file tem de correr "apt-file update" com antecedncia. O configure-debian(8) disponibilizado pelo pacote configure-debian corre o dpkg-reconfigure(8) como seu
backend. O dpkg-reconfigure(8) corre scripts de pacote usando o debconf(1) como o seu backend. Os comandos "apt-get build-dep", "apt-get source" e "apt-cache showsrc" requerem entrada "deb-src" em "/etc/apt/ sources.list". Os dget(1), debuild(1), e debi(1) requerem o pacote devscripts. Veja o procedimento de (re)empacotamento usando "apt-get source" em Seco 2.7.10, Portando um pacote para o sistema stable. O comando make-kpkg requer o pacote kernel-package (veja Seco 9.7, O kernel). Veja Seco 12.11, Criando um pacote Debian para empacotamento geral.
A instalao de debsums permite a verificao dos ficheiros dos pacotes instalados contra valores MD5sum no ficheiro "/var/lib/ dpkg/info/*.md5sums" com debsums(1). Veja Seco 10.4.5, O sumrio MD5 para saber como o MD5sum funciona.
Nota
Porque a base de dados MD%sum pode ser adulterada por um intruso, o debsums(1) de uso limitado como ferramenta de segurana. bom apenas para verificar modificaes locais pelo administrador ou danos devido a erros de media.
Muito utilizadores preferem seguir o lanamento unstable do sistema Debian pelas suas novas funcionalidades e pacotes. Isto torna o sistema para inclinado a ser atingido por bugs crticos dos pacotes.
A instalao do pacote apt-listbugs salvaguarda o seu sistema contra bugs crticos ao verificar automaticamente o Debian BTS por bugs crticos quando se actualiza com o sistema APT.
The installation of the apt-listchanges package provides important news in "NEWS.Debian" when upgrading with APT system.
Although visiting Debian site http://packages.debian.org/ facilitates easy ways to search on the package meta data these days, let's look into more traditional ways.
The grep-dctrl(1), grep-status(1), and grep-available(1) commands can be used to search any file which has the general format of a Debian package control file.
The "dpkg -S <file_name_pattern>" can be used search package names which contain files with the matching name installed by dpkg. But this overlooks files created by the maintainer scripts.
If you need to make more elaborate search on the dpkg meta data, you need to run "grep -e regex_pattern *" command in the "/var/ lib/dpkg/info/" directory. This makes you search words mentioned in package scripts and installation query texts.
If you wish to look up package dependency recursively, you should use apt-rdepends(8).
Vamos aprender como o sistema de gesto de pacotes Debian funciona internamente. Isto dever ajud-lo a criar a sua prpria soluo para alguns problemas com pacotes.
Meta data files for each distribution are stored under "dist/ <codename>" on each Debian mirror sites, e.g., "http:// ftp.us.debian.org/debian/". Its archive structure can be browsed by the web browser. There are 6 types of key meta data.
Release
ficheiro de assinatura
Release.gpg topo da distribuio para o ficheiro "Release" assinado com a chave do arquivo
lista de todos os
Contents-
<architecture>
Release
combinao de
Packages
combinao de
Sources
combinao de
In the recent archive, these meta data are stored as the compressed and differential files to reduce network traffic.
Dica
The top level "Release" file is used for signing the archive under the secure APT system.
Each suite of the Debian archive has a top level "Release" file, e.g., "http://ftp.us.debian.org/debian/dists/unstable/Release", as follows.
Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 26 Jan 2008 20:13:58 UTC Architectures: alpha amd64 arm hppa hurd-i386 i386 ia64 m68k mips mipsel powerpc s390 sparc Components: main contrib non-free
Description: Debian x.y Unstable - Not Released MD5Sum: e9f11bc50b12af7927d6583de0a3bd06 22788722 main/binary-alpha/Packages 43524d07f7fa21b10f472c426db66168 6561398 main/binaryalpha/Packages.gz ...
Nota
Here, you can find my rationale to use the "suite", and "codeneme" in Seco 2.1.4, Bases de arquivos Debian. The "distribution" is used when referring to both "suite" and "codeneme". All archive "area" names offered by the archive are listed under "Component".
The integrity of the top level "Release" file is verified by cryptographic infrastructure called the secure apt.
The cryptographic signature file "Release.gpg" is created from the authentic top level "Release" file and the secret Debian archive key. The public Debian archive key can be seeded into "/etc/apt/ trusted.gpg";
automatically by installing the keyring with the latest base-files package, or manually by gpg or apt-key tool with the latest public archive key posted on the ftp-master.debian.org . The secure APT system verifies the integrity of the
downloaded top level "Release" file cryptographically by this "Release.gpg" file and the public Debian archive key in "/etc/apt/trusted.gpg".
The integrity of all the "Packages" and "Sources" files are verified by using MD5sum values in its top level "Release" file. The integrity of all package files are verified by using MD5sum values in the "Packages" and "Sources" files. See debsums(1) and Seco 2.4.2, Verificao dos ficheiros pacotes instalados.
Since the cryptographic signature verification is very CPU intensive process than the MD5sum value calculation, use of MD5sum value for each package while using cryptographic signature for the top level "Release" file provides the good security with the performance (see Seco 10.4, Infraestrutura da segurana de dados).
Dica
The archive level "Release" files are used for the rule of apt_preferences(5).
There are archive level "Release" files for all archive locations specified by "deb" line in "/etc/apt/sources.list", such as "http://ftp.us.debian.org/debian/dists/unstable/main/ binary-amd64/Release" or "http://ftp.us.debian.org/debian/dists/ sid/main/binary-amd64/Release" as follows.
Archive: unstable Component: main Origin: Debian Label: Debian Architecture: amd64
Cuidado
For "Archive:" stanza, suite names ("stable", "testing", "unstable", ) are used in the Debian archive while codenames ("dapper", "feisty", "gutsy", "hardy", "intrepid", ) are used in the Ubuntu archive.
For some archives, such as experimental, and squeeze-backports, which contain packages which should not be installed automatically, there is an extra line, e.g., "http:// ftp.us.debian.org/debian/dists/experimental/main/binary-amd64/ Release" as follows.
Archive: experimental Component: main Origin: Debian Label: Debian NotAutomatic: yes Architecture: amd64
Please note that for normal archives without "NotAutomatic: yes", the default Pin-Priority value is 500, while for special
archives with "NotAutomatic: yes", the default Pin-Priority value is 1 (see apt_preferences(5) and Seco 2.7.3, Tweaking candidate version).
When APT tools, such as aptitude, apt-get, synaptic, apt-file, auto-apt, are used, we need to update the local copies of the meta data containing the Debian archive information. These local copies have following file names corresponding to the specified distribution, area, and architecture names in the "/etc/apt/ sources.list" (see Seco 2.1.4, Bases de arquivos Debian).
"/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribuio>_Release" "/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribuio>_Release.gpg" "/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribution>_<area>_binary-<architecture>_Packages" "/var/lib/apt/lists/ftp.us.debian.org_debian_dists_ <distribution>_<area>_source_Sources" "/var/cache/apt/apt-file/ftp.us.debian.org_debian_dists_ <distribution>_Contents-<architecture>.gz" (for apt-file)
First 4 types of files are shared by all the pertinent APT commands and updated from command line by "apt-get update" and "aptitude update". The "Packages" meta data are updated if there is the "deb" line in "/etc/apt/sources.list". The "Sources" meta data are updated if there is the "deb-src" line in "/etc/apt/
sources.list".
The "Packages" and "Sources" meta data contain "Filename:" stanza pointing to the file location of the binary and source packages. Currently, these packages are located under the "pool/ " directory tree for the improved transition over the releases.
Local copies of "Packages" meta data can be interactively searched with the help of aptitude. The specialized search command grep-dctrl(1) can search local copies of "Packages" and "Sources" meta data.
Local copy of "Contents-<architecture>" meta data can be updated by "apt-file update" and its location is different from other 4 ones. See apt-file(1). (The auto-apt uses different location for local copy of "Contents-<architecture>.gz" as default.)
In addition to the remotely fetched meta data, the APT tool after lenny stores its locally generated installation state information in the "/var/lib/apt/extended_states" which is used by all APT tools to track all auto installed packages.
In addition to the remotely fetched meta data, the aptitude command stores its locally generated installation state information in the "/var/lib/aptitude/pkgstates" which is used
only by it.
Todos os pacotes obtidos remotamente via mecanismo APT so armazenados em "/var/cache/apt/packages" at que sejam limpos.
origem)
<verso_upstream><verso.debian>.orig.tar.gz
<verso_upstream>-<verso.debian>.dsc
Dica
Aqui apenas so descritos formatos de pacote fonte bsicos. Veja mais em dpkg-source(1).
Tabela 2.16. Os caracteres utilizveis para cada componente nos nomes de pacotes Debian
Nota
Voc pode verificar a ordem de verso de pacotes pelo dpkg(1), ex., "dpkg --compare-versions 7.0 gt 7.~pre1 ; echo $?" .
Nota
The debian-installer (d-i) uses udeb as the file extension for its binary package instead of normal deb. An udeb package is a stripped down deb package which removes few non-essential contents such as documentation to save space while relaxing the package policy requirements. Both deb and udeb packages share the same package structure. The "u" stands for micro.
dpkg(1) a ferramenta de nvel mais baixo para a gesto de pacotes Debian. muito poderosa e tem que ser usada com cuidado.
1. Desempacotar o ficheiro deb ("ar -x" equivalente) 2. Executa "<nome_de_pacote>.preinst" usando o debconf(1) 3. Instala o contedo do pacote no sistema (equivalente a "tar -x") 4. Execute "<nome_de_pacote>.postinst" usando o debconf(1)
O sistema debconf disponibiliza interaco standard com o utilizador com suporte a I18N e L10N (Captulo 8, I18N e L10N).
/var/lib/dpkg/info/ <nome_do_pacote>.list
<nome_do_pacote>.md5sums os ficheiros instalados pelo pacote /var/lib/dpkg/info/ script de pacote executado antes da
<nome_do_pacote>.config debconf
a informao de estado de
os pacotes
O ficheiro "status" tambm usado por ferramentas como o dpkg (1), o "dselect update" e o "apt-get -u dselect-upgrade".
O comando especializado de busca grep-dctrl(1) pode procurar as cpias locais dos meta dados "status" e "available"
Dica
In the debian-installer environment, the udpkg command is used to open udeb packages. The udpkg command is a stripped down version of the dpkg command.
The Debian system has mechanism to install somewhat overlapping programs peacefully using update-alternatives(8). For example, you can make the vi command select to run vim while installing both vim and nvi packages.
$ ls -l $(type -p vi) lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi $ sudo update-alternatives --display vi ... $ sudo update-alternatives --config vi Selection Command ----------------------------------------------
1 *+ 2
/usr/bin/vim /usr/bin/nvi
O sistema de alternativas da Debian mantm a sua seleco como links simblicos em "/etc/alternatives/". O processo de seleco usa um ficheiro correspondente em "/var/lib/dpkg/alternatives/".
Stat overrides provided by the dpkg-statoverride(8) command are a way to tell dpkg(1) to use a different owner or mode for a file when a package is installed. If "--update" is specified and file exists, it is immediately set to the new owner and mode.
Cuidado
The direct alteration of owner or mode for a file owned by the package using chmod or chown commands by the system administrator is reset by the next upgrade of the package.
Nota
I use the word file here, but in reality this can be any filesystem object that dpkg handles, including directories, devices, etc.
File diversions provided by the dpkg-divert(8) command are a way of forcing dpkg(1) not to install a file into its default location, but to a diverted location. The use of dpkg-divert is meant for the package maintenance scripts. Its casual use by the system administrator is deprecated.
Quando corre o sistema unstable, espera-se que o administrador saiba recuperar o sistema de situaes de gesto quebrada de pacotes.
Cuidado
Alguns mtodos descritos aqui so aces de alto risco. Voc foi avisado!
If a desktop GUI program experienced instability after significant upstream version upgrade, you should suspect interferences with old local configuration files created by it. If it is stable under newly created user account, this hypothesis is confirmed. (This is a bug of packaging and usually avoided by the packager.)
To recover stability, you should move corresponding local configuration files and restart the GUI program. You may need to
read old configuration file contents to recover configuration information later. (Do not erase them too quickly.)
Archive level package management systems, such as aptitude(8) or apt-get(1), do not even try to install packages with overlapped files using package dependencies (see Seco 2.1.5, Dependncias de pacote).
Errors by the package maintainer or deployment of inconsistently mixed source of archives (see Seco 2.7.2, Pacotes de fontes de arquivos misturados) by the system administrator may create situation with incorrectly defined package dependencies. When you install a package with overlapped files using aptitude(8) or apt-get(1) under such situation, dpkg(1) which unpacks package ensures to return error to the calling program without overwriting existing files.
Cuidado
The use of third party packages introduces significant system risks via maintainer scripts which are run with root privilege and can do anything to your system. The dpkg(1) command only protects against overwriting by the unpacking.
Voc pode contornar tal problema de instalao ao remover primeiro o pacote antigo , <pacote_antigo>, e ofensivo.
When a command in the package script returns error for some reason and the script exits with error, the package management system aborts their action and ends up with partially installed packages. When a package contains bugs in its removal scripts, the package may become impossible to remove and quite nasty.
Para o problema do script de pacote de "<nome_do_pacote>", voc deve observar os seguintes scripts do pacote.
desactivar a linha ofensiva ao preceder um "#" fora um retorno com sucesso ao acrescentar a linha ofensiva com "|| true"
# dpkg --configure -a
Como o dpkg uma ferramenta de pacotes de muito baixo nvel, pode funcionar sob situaes muito ms como um sistema que no arranca sem ligao a rede. Vamos assumir que o pacote foo est danificado e precisa de ser substitudo.
Voc pode ainda encontrar cpias em cache de uma verso antiga livre de bugs do pacote foo no directrio de cache de pacotes: " /var/cache/apt/archives/". (se no, voc pode descarreg-lo a partir do arquivo http://snapshot.debian.net/ ou copi-lo da cache de pacotes de uma mquina funcional.)
# dpkg -i /caminho/para/foo_<verso_antiga>_<arquitectura>.deb
Dica
Se os danos no sistema forem menores, voc pode alternativamente fazer downgrade (regredir a verso) ao sistema completo como Seco 2.7.7, Downgrade de emergncia usando o sistema APt de alto nvel.
Se o seu sistema no puder arrancar pelo disco rijo, voc precisa procurar outras maneiras de arranc-lo.
1. Arranque o sistema usando o CD de instalao de Debian (debian-installer) em modo de recuperao. 2. Monte o sistema danificado no disco rijo em "/target 3. Instale uma verso antiga do pacote foo com o seguinte.
Este exemplo funciona mesmo se o comando dpkg no disco rijo estiver danificado.
Dica
Any GNU/Linux system started by another system on hard disk, live GNU/Linux CD, bootable USB-key drive, or netboot can be used similarly to rescue broken system.
If attempting to install a package this way fails due to some dependency violations and you really need to do this as the last resort, you can override dependency using dpkg's "--ignore-depends", "--force-depends" and other options. If you do this, you need to make serious effort to restore proper dependency later. See dpkg(8) for details.
Nota
When your system is seriously broken, you should make a full backup of system to a safe place (see Seco 10.1.6, Salvaguarda (backup) e recuperao) and should perform a clean
installation. This is less time consuming and produces better results in the end.
If "/var/lib/dpkg/status" becomes corrupt for any reason, the Debian system loses package selection data and suffers severely. Look for the old "/var/lib/dpkg/status" file at "/var/lib/dpkg/ status-old" or "/var/backups/dpkg.status.*".
Manter "/var/backups/" numa partio separada pode ser uma boa ideia porque este directrio contm muitos dados importantes do sistema .
For serious breakage, I recommend to make fresh re-install after making backup of the system. Even if everything in "/var/" is gone, you can still recover some information from directories in "/usr/share/doc/" to guide your new installation.
# mkdir -p /caminho/para/sistema/antigo
Ento so-lhe apresentados nomes de pacotes para instalar. (Podem existir alguns nomes no de pacotes como "texmf".)
Voc pode procurar os pacotes que satisfaam as suas necessidades com o aptitude a partir da descrio do pacote ou a partir da lista "Tarefas".
When you encounter more than 2 similar packages and wonder which one to install without "trial and error" efforts, you should use some common sense. I consider following points are good indications of preferred packages.
Essencial: yes > no Componente: main > contrib > non-free Prioridade: required > important > standard > optional > extra Tasks: pacotes listados em tarefas como "Ambiente de Trabalho" Pacotes seleccionados pela dependncia de pacote (ex., python2.4 por python) Popcon: higher in the vote and install number
Changelog: actualizaes regulares feitas pelo responsvel do pacote BTS: No RC bugs (no critical, no grave, and no serious bugs) BTS: responsive maintainer to bug reports BTS: higher number of the recently fixed bugs BTS: lower number of remaining non-wishlist bugs
Debian being a volunteer project with distributed development model, its archive contains many packages with different focus and quality. You must make your own decision what to do with them.
Cuidado
Installing packages from mixed source of archives is not supported by the official Debian distribution except for officially supported particular combinations of archives such as stable with security updates and squeeze-updates.
Here is an example of operations to include specific newer upstream version packages found in unstable while tracking testing for single occasion.
1. Altere o ficheiro "/etc/apt/sources.list" temporariamente para entrada nica "unstable". 2. Correr "aptitude update". 3. Correr "aptitude install <nome-do-pacote>".
You do not create the "/etc/apt/preferences" file nor need to worry about apt-pinning with this manual approach. But this is very cumbersome.
Cuidado
When using mixed source of archives, you must ensure compatibility of packages by yourself since the Debian does not guarantee it. If package incompatibility exists, you may break system. You must be able to judge these technical requirements. The use of mixed source of random archives is completely optional operation and its use is not something I encourage you to use.
pacotes de documentao: nenhum requisito especial pacotes de programa interpretador: interpretador compatvel tem de estar disponvel Binary packages (non "Architecture: all") usually face many road blocks and unsafe to install.
compatibilidade de verso de biblioteca (incluindo a "libc") related utility program version compatibility compatibilidade da ABI do Kernel Compatibilidade C++ ABI
Nota
In order to make a package to be safer to install, some commercial non-free binary program packages may be provided with completely statically linked libraries. You should still check ABI compatibility issues etc. for them.
Nota
Except to avoid broken package for a short term, installing binary packages from officially unsupported archives is generally bad idea. This is true even if you use apt-pinning (see Seco 2.7.3, Tweaking candidate version). You should consider chroot or similar techniques (see Seco 9.8, Sistema virtualizado) to run programs from different archives.
Without the "/etc/apt/preferences" file, APT system choses the latest available version as the candidate version using the version string. This is the normal state and most recommended
usage of APT system. All officially supported combinations of archives do not require the "/etc/apt/preferences" file since some archives which should not be used as the automatic source of upgrades are marked as NotAutomatic and dealt properly.
Dica
The version string comparison rule can be verified with, e.g., "dpkg --compare-versions ver1.1 gt ver1.1~1; echo $?" (see dpkg (1)).
When you install packages from mixed source of archives (see Seco 2.7.2, Pacotes de fontes de arquivos misturados) regularly, you can automate these complicated operations by creating the "/etc/apt/preferences" file with proper entries and tweaking the package selection rule for candidate version as described in apt_preferences(5). This is called apt-pinning.
Ateno
Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it.
Cuidado
When using apt-pinning, you must ensure compatibility of packages by yourself since the Debian does not guarantee it. The apt-pinning is completely optional operation and its use is not
Cuidado
Archive level Release files (see Seco 2.5.3, Archive level "Release" files) are used for the rule of apt_preferences(5). Thus apt-pinning works only with "suite" name for normal Debian archives and security Debian archives. (This is different from Ubuntu archives). For example, you can do "Pin: release a= unstable" but can not do "Pin: release a=sid" in the "/etc/apt/ preferences" file.
Cuidado
When you use non-Debian archive as a part of apt-pinning, you should check what they are intended for and also check their credibility. For example, Ubuntu and Debian are not meant to be mixed.
Nota
Even if you do not create the "/etc/apt/preferences" file, you can do fairly complex system operations (see Seco 2.6.4, Recuperao com o comando dpkg and Seco 2.7.2, Pacotes de fontes de arquivos misturados) without apt-pinning.
available package sources defined in the "/etc/apt/sources.list" file as the candidate version package. If the Pin-Priority of the package is larger than 1000, this version restriction for upgrading is dropped to enable downgrading (see Seco 2.7.7, Downgrade de emergncia).
Pin-Priority value of each package is defined by "Pin-Priority" entries in the "/etc/apt/preferences" file or uses its default value.
Tabela 2.18. List of the default Pin-Priority value for each package source type
1 arquivo No Automtico
"/etc/apt/apt.conf" configuration file with "APT::Default-Release "stable";" line command line option, e.g., "apt-get install -t testing some-package"
The NotAutomatic archive is set by archive server having its archive level Release file (see Seco 2.5.3, Archive level "Release" files) containing "NotAutomatic: yes".
The apt-pinning situation of <package> from multiple archive sources is displayed by "apt-cache policy <package>".
A line started with "Package pin:" lists the package version of pin if association just with <package> is defined, e.g., "Package pin: 0.190". No line with "Package pin:" exists if no association just with <package> is defined. The Pin-Priority value associated just with <package> is listed right side of all version strings, e.g., "0.181 700". "0" is listed right side of all version strings if no association just with <package> is defined, e.g., "0.181 0". The Pin-Priority values of archives (defined as "Package: *" in the "/etc/apt/preferences" file) are listed left side of all archive paths, e.g., "200 http://backports.debian.org/
Here is an example of apt-pinning technique to include specific newer upstream version packages found in unstable regularly upgraded while tracking testing. You list all required archives in the "/etc/apt/sources.list" file as the following.
deb http://ftp.us.debian.org/debian/ testing main contrib non-free deb http://ftp.us.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/ testing/updates main contrib
When you wish to install a package named "<package-name>" with its dependencies from unstable archive under this configuration, you issue the following command which switches target release with "-t" option (Pin-Priority of unstable becomes 990.).
and "apt-get dist-upgrade" (or "aptitude safe-upgrade" and "aptitude full-upgrade") upgrades packages which were installed from testing archive using current testing archive and packages which were installed from unstable archive using current unstable archive.
Cuidado
Tenha cuidado para no remover a entrada "testing" do ficheiro " /etc/apt/sources.list". Sem a entrada "testing" l, o sistema APT actualiza pacotes usando o arquivo unstable mais recente.
Dica
I usually edit the "/etc/apt/sources.list" file to comment out "unstable" archive entry right after above operation. This avoids slow update process of having too many entries in the "/ etc/apt/sources.list" file although this prevents upgrading packages which were installed from unstable archive using current unstable archive.
Dica
If "Pin-Priority: 20" is used instead of "Pin-Priority: 200" for the "/etc/apt/preferences" file, already installed packages having Pin-Priority value of 100 are not upgraded by unstable archive even if "testing" entry in the "/etc/apt/sources.list" file is removed.
If you wish to track particular packages in unstable automatically without initial "-t unstable" installation, you must create the "/etc/apt/preferences" file and explicitly list all those packages at the top of it as the following.
These set Pin-Priority value for each specific package. For example, in order to track the latest unstable version of this "Debian Reference" in English, you should have following entries in the "/etc/apt/preferences" file.
Dica
stable archive. Documentation packages have been always safe to install from unstable archive in my experience, so far.
Here is another example of apt-pinning technique to include specific newer upstream version packages found in experimental while tracking unstable. You list all required archives in the " /etc/apt/sources.list" file as the following.
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free deb http://ftp.us.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing/updates main contrib
The default Pin-Priority value for experimental archive is always 1 (<<100) since it is NotAutomatic archive (see Seco 2.5.3, Archive level "Release" files). There is no need to set Pin-Priority value explicitly in the "/etc/apt/ preferences" file just to use experimental archive unless you wish to track particular packages in it automatically for next upgrading.
There are squeeze-updates and backports.debian.org archives which provide updgrade packages for stable (squeeze).
Ateno
Do not use all packages available in the NotAutomatic archives such as squeeze-backports. Use only selected packages which fits
your needs.
Here is an example of apt-pinning technique to include specific newer upstream version packages found in squeeze-backports while tracking squeeze and squeeze-updates. You list all required archives in the "/etc/apt/sources.list" file as the following.
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib deb http://ftp.us.debian.org/debian/ squeeze-updates main contrib non-free deb http://backports.debian.org/debian-backports/ squeeze-backports main contrib non-free
The default Pin-Priority value for backports.debian.org archive is always 1 (<<100) since it is NotAutomatic archive (see Seco 2.5.3, Archive level "Release" files). There is no need to set Pin-Priority value explicitly in the "/etc/apt/ preferences" file just to use backports.debian.org archive unless you wish to track particular packages in it automatically for next upgrading.
So whenever you wish to install a package named "<package-name>" with its dependency from squeeze-backports archive, you use following command while switching target release with "-t" option.
Execution of "apt-get upgrade" and "apt-get dist-upgrade" (or "aptitude safe-upgrade" and "aptitude full-upgrade") upgrades packages which were installed from stable archive using current stable archive and packages which were installed from other archives using current corresponding archive for all archives in the "/etc/apt/sources.list" file.
The apt package comes with its own cron script "/etc/cron.daily/ apt" to support the automatic download of packages. This script can be enhanced to perform the automatic upgrade of packages by installing the unattended-upgrades package. These can be customized by parameters in "/etc/apt/apt.conf.d/02backup" and " /etc/apt/apt.conf.d/50unattended-upgrades" as described in "/usr /share/doc/unattended-upgrades/README".
The unattended-upgrades package is mainly intended for the security upgrade for the stable system. If the risk of breaking an existing stable system by the automatic upgrade is smaller than that of the system broken by the intruder using its security hole which has been closed by the security update, you should consider using this automatic upgrade with configuration parameters as the following.
If you are running an unstable system, you do not want to use the automatic upgrade since it certainly breaks system some day. Even for such unstable case, you may still want to download packages in advance to save time for the interactive upgrade with configuration parameters as the following.
APT::Periodic::Update-Package-Lists "1";
Se desejar limitar a largura de banda para o APT para por exemplo 800Kib/sec (=100kiB/sec), deve configurar o APT com o seu parmetro de configurao como o seguinte.
APT::Acquire::http::Dl-Limit "800";
Cuidado
Downgrading is not officially supported by the Debian by design. It should be done only as a part of emergency recovery process. Despite of this situation, it is known to work well in many incidents. For critical systems, You should backup all important data on the system after the recovery operation and re-install the new system from the scratch.
You may be lucky to downgrade from newer archive to older archive to recover from broken system upgrade by manipulating candidate version (see Seco 2.7.3, Tweaking candidate version). This is lazy alternative to tedious actions of many "dpkg -i <broken-package>_<old-version>.deb" commands (see Seco 2.6.4, Recuperao com o comando dpkg).
Dica
It is good idea to remove (not purge!) as much packages to minimize dependency problems. You may need to manually remove and install some packages to get system downgraded. Linux kernel, bootloader, udev, PAM, APT, and networking related packages and their configuration files require special attention.
Although the maintainer name listed in "/var/lib/dpkg/available" and "/usr/share/doc/package_name/changelog" provide some information on "who is behind the packaging activity", the actual uploader of the package is somewhat obscure. who-uploads (1) in the devscripts package identifies the actual uploader of Debian source packages.
If you are to compile a program from source to replace the Debian package, it is best to make it into a real local debianized package (*.deb) and use private archive.
If you chose to compile a program from source and to install them under "/usr/local" instead, you may need to use equivs as a last resort to satisfy the missing package dependency.
Package: equivs Priority: extra Section: admin Description: Circumventing Debian package dependencies This is a dummy package which can be used to create Debian packages, which only contain dependency information.
For partial upgrades of the stable system, rebuilding a package within its environment using the source package is desirable. This avoids massive package upgrades due to their dependencies.
Instale os pacotes necessrios para a compilao e descarregue o pacote fonte como se segue.
# apt-get update # apt-get dist-upgrade # apt-get install fakeroot devscripts build-essential $ apt-get build-dep foo $ apt-get source foo $ cd foo*
Execute o seguinte.
$ dch -i
Bump package version, e.g. one appended with "+bp1" in "debian/ changelog"
Since mirroring whole subsection of Debian archive wastes disk space and network bandwidth, deployment of a local proxy server for APT is desirable consideration when you administer many systems on LAN. APT can be configure to use generic web (http) proxy servers such as squid (see Seco 6.10, Outras aplicaes de servidor de rede) as described in apt.conf(5) and in "/usr/ share/doc/apt/examples/configure-index.gz". The "$http_proxy" environment variable can be used to override proxy server setting in the "/etc/apt/apt.conf" file.
There are proxy tools specially for Debian archive. You should check BTS before using them.
approx *
apt-cacher * V:0.3, 308 Caching proxy for Debian package I:0.4 and source files (Perl program)
Cuidado
When Debian reorganizes its archive structure, these specialized proxy tools tend to require code rewrites by the package maintainer and may not be functional for a while. On the other hand, generic web (http) proxy servers are more robust and easier to cope with such changes.
Here is an example for creating a small public package archive compatible with the modern secure APT system (see Seco 2.5.2, Ficheiro "Release" de nvel de topo e autenticidade:). Let's assume few things.
nome da conta: "foo" Nome da mquina: "www.example.com" Pacotes requeridos: apt-utils, gnupg, e outros pacotes URL: "http://www.example.com/~foo/" ( "/home/foo/ public_html/index.html") Arquitectura de pacotes: "amd64"
Crie uma chave de arquivo APT de Foo no seu sistema servidor como o seguinte.
$ ssh [email protected] $ gpg --gen-key ... $ gpg -K ... sec 1024D/3A3CB5A6 2008-08-14 uid Foo (ARCHIVE KEY) <[email protected]>
Publica o ficheiro de chave de arquivo "foo.public.key" com o ID de chave "3A3CB5A6" para Foo
$ umask 022 $ mkdir -p ~/public_html/debian/pool/main $ mkdir -p ~/public_html/debian/dists/unstable/main/binary-amd64 $ mkdir -p ~/public_html/debian/dists/unstable/main/source $ cd ~/public_html/debian $ cat > dists/unstable/main/binary-amd64/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo Label: Foo Architecture: amd64 EOF $ cat > dists/unstable/main/source/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo Label: Foo Architecture: source EOF $ cat >aptftp.conf <<EOF APT::FTPArchive::Release { Origin "Foo"; Label "Foo"; Suite "unstable"; Codename "sid";
Architectures "amd64"; Components "main"; Description "Public archive for Foo"; }; EOF $ cat >aptgenerate.conf <<EOF Dir::ArchiveDir "."; Dir::CacheDir "."; TreeDefault::Directory "pool/"; TreeDefault::SrcDirectory "pool/"; Default::Packages::Extensions ".deb"; Default::Packages::Compress ". gzip bzip2"; Default::Sources::Compress "gzip bzip2"; Default::Contents::Compress "gzip bzip2";
Voc pode automatizar actualizaes repetitivas do contedo do arquivo APT no seu sistema servidor ao configurar o dupload.
Coloca todos os ficheiros de pacotes em "~foo/public_html/debian /pool/main/" ao executar "dupload -t foo changes_file" no cliente enquanto o "~/.dupload.conf" contm o seguinte.
$cfg{'foo'} = { fqdn => "www.example.com", method => "scpb", incoming => "/home/foo/public_html/debian/pool/main", # The dinstall on ftp-master sends emails itself dinstall_runs => 1, };
$cfg{'foo'}{postupload}{'changes'} = " echo 'cd public_html/debian ; apt-ftparchive generate -c=aptftp.conf aptgenerate.conf; apt-ftparchive release -c=aptftp.conf dists/unstable >dists/unstable/Release ; rm -f dists/unstable/Release.gpg ; gpg -u 3A3CB5A6 -bao dists/unstable/Release.gpg dists/unstable/Release'| ssh [email protected] 2>/dev/null ; echo 'Package archive created!'";
O script hook postupload inicializado pelo dupload(1) cria ficheiros de arquivo actualizados para cada upload.
Voc pode adicionar este pequeno arquivo pblico linha de apt do sistema cliente com o seguinte.
$ sudo bash
# echo "deb http://www.example.com/~foo/debian/ unstable main" \ >> /etc/apt/sources.list # apt-key add foo.public.key
Dica
Se o arquivo est localizado no sistema de ficheiros local, ento voc pode usar antes o "deb file:///home/foo/debian/ "
Voc pode criar um cpia local do estado de seleco de pacotes e debconf com o seguinte.
Aqui, "*" faz com que "selection.dpkg" tambm inclua entradas de pacotes para "purgar".
Voc pode transferir estes 2 ficheiros para outro computador e instal-los l com o seguinte.
# dselect update # debconf-set-selections < minha_seleco.debconf # dpkg --set-selections < minha_seleco.dpkg # apt-get -u dselect-upgrade # ou dselect install
praticamente a mesma configurao, voc deve considerar usar um pacote especializado como o fai para gerir o sistema completo.
alien(1) enables the conversion of binary packages provided in Red Hat rpm, Stampede slp, Slackware tgz, and Solaris pkg file formats into a Debian deb package. If you want to use a package from another Linux distribution than the one you have installed on your system, you can use alien to convert it from your preferred package format and install it. alien also supports LSB packages.
Ateno
alien(1) should not be used to replace essential system packages, such as sysvinit, libc6, libpam-modules, etc. Practically, alien(1) should only used for non-free binary-only packages which are LSB compliant or statically linked. For free softwares, you should use their source packages to make real Debian packages.
Os contedos dos pacotes "*.deb" actuais podem ser extrados sem usar o dpkg(1) em qualquer ambiente estilo Unix usando os standard ar(1) e tar(1).
# ar x /path/to/dpkg_<version>_<arch>.deb
# ls total 24 -rw-r--r-- 1 bozo bozo 1320 2007-05-07 00:11 control.tar.gz -rw-r--r-- 1 bozo bozo 12837 2007-05-07 00:11 data.tar.gz -rw-r--r-- 1 bozo bozo # mkdir control # mkdir data # tar xvzf control.tar.gz -C control # tar xvzf data.tar.gz -C data 4 2007-05-07 00:11 debian-binary
Voc pode aprender mais sobre a gesto de pacotes a partir das seguintes documentaes.
aptitude(8), dpkg(1), tasksel(8), apt-get(8), apt-config (8), apt-key(8), sources.list(5), apt.conf(5), e apt_preferences(5); "/usr/share/doc/apt-doc/guide.html/index.html" e "/usr/ share/doc/apt-doc/offline.html/index.html" do pacote apt-doc; e "/usr/share/doc/aptitude/html/en/index.html" do pacote aptitude-doc-en. Documentaes oficiais e detalhadas no arquivo Debian:
"Manual de Poltica Debian Captulo 2 - O Arquivo Debian", "Referncia dos Programadores de Debian, Captulo 4 Recursos para Programadores de Debian 4.6 O Arquivo Debian", e "A FAQ de Debian GNU/Linux, Captulo 5 - Os arquivos FTP de Debian". Tutorial para construir um pacote Debian para utilizadores da Debian:
It is wise for you as the system administrator to know roughly how the Debian system is started and configured. Although the exact details are in the source files of the packages installed and their documentations, it is a bit overwhelming for most of us.
I did my best to provide a quick overview of the key points of the Debian system and their configuration for your reference, based on the current and previous knowledge of mine and others. Since the Debian system is a moving target, the situation over the system may have been changed. Before making any changes to the system, you should refer to the latest documentation for each package.
O sistema do computador passa por vrias fases de processos de boot strap desde o ligar da energia at que oferece o sistema operativo (OS) totalmente funcional ao utilizador.
O processo de boot strap tpico como um foguete de quatro etapas. Cada etapa do foguete entrega o controle do sistema prxima etapa.
Seco 3.2, Estgio 1: a BIOS Seco 3.3, Estgio 2: o gestor de arranque Seco 3.4, Estgio 3: o sistema Debian mini Seco 3.5, Estgio 4: o sistema Debian normal
Of course, these can be configured differently. For example, if you compiled your own kernel, you may be skipping the step with the mini-Debian system. So please do not assume this is the case for your system until you check it yourself.
Nota
For non-legacy PC platform such as the SUN or the Macintosh system, the BIOS on ROM and the partition on the disk may be quite different (Seco 9.3.1, Configurao das parties do disco). Please seek the platform specific documentations
A BIOS o 1 etapa do processo de boot que iniciado com o evento de ligar a energia. A BIOS que reside na read only memory (ROM) executada a partir de um endereo de memria particular no qual o contador de programa da CPU inicializado pelo evento de ligar a energia.
Esta BIOS executa a inicializao bsica do hardware (POST: power on self test) e entrega o controle do sistema ao prximo passo que voc disponibiliza. A BIOS normalmente disponibilizada com o hardware.
The BIOS startup screen usually indicates what key(s) to press to enter the BIOS setup screen to configure the BIOS behavior. Popular keys used are F1, F2, F10, Esc, Ins, and Del. If your BIOS startup screen is hidden by a nice graphics screen, you may press some keys such as Esc to disable this. These keys are highly dependent on the hardware.
A localizao do hardware e prioridade do cdigo iniciado pela BIOS pode ser seleccionado no cran de configurao da BIOS. Tipicamente, os primeiros poucos sectores do primeiro dispositivo seleccionado encontrado (disco rijo, disquete, CD-ROM, ...) so carregados para a memria e este cdigo inicial executado. Este cdigo inicial pode ser um dos seguintes.
O cdigo do gestor de arranque The kernel code of the stepping stone OS such as FreeDOS The kernel code of the target OS if it fits in this small space
Typically, the system is booted from the specified partition of the primary hard disk partition. First 2 sectors of the hard disk on legacy PC contain the master boot record (MBR). The disk partition information including the boot selection is recorded at the end of this MBR. The first boot loader code executed from the BIOS occupies the rest of this MBR.
The boot loader is the 2nd stage of the boot process which is started by the BIOS. It loads the system kernel image and the initrd image to the memory and hands control over to them. This initrd image is the root filesystem image and its support depends on the bootloader used.
O sistema Debian normalmente usa o kernel Linux como kernel predefinido do sistema. A imagem initrd para o kernel Linux 2.6 actual tecnicamente a initramfs (sistema de ficheiros de RAM inicial). A imagem initramfs um arquivo cpio gzipado de ficheiros no sistema de ficheiros raiz.
A instalao predefinida do sistema Debian coloca cdigo da primeira etapa do gestor de arranque GRUB no MBR para a plataforma PC. Existem muitos gestores de arranque e opes de
configurao disponveis.
gestor de pacote
arranque
Isto
compreender
Isto
GRUB 2 grub-pc *
I:25
Isto so imagens de
arranque de
Lilo lilo *
Syslinuxsyslinux * V:1.3, 204 Suportadoficheiros MSDOS I:8 (FAT). usado pela disquete de arranque.
V:0.03,
Loadlin loadlin *
V:0.8, 96 I:5
suportadoapenas compreende
parties de
disco.
Ateno
Do not play with boot loaders without having bootable rescue media (CD or floppy) created from images in the grub-rescue-pc package. It makes you boot your system even without functioning bootloader on the hard disk.
Para o GRUB Legacy, o ficheiro de configurao do menu est localizado em "/boot/grub/menu.lst". Por exemplo, tem entradas como a seguinte.
For GRUB 2, the menu configuration file is located at "/boot/ grub/grub.cfg". It is automatically generated by "/usr/sbin/ update-grub" using templates from "/etc/grub.d/*" and settings from "/etc/default/grub". For example, it has entries as the following.
Parmetrosignificado do GRUB
root usa a 3 partio no disco primrio a defini-la como "(hd0,2)" no GRUB Legacy ou como "(hd0,3)" no GRUB 2
kernel usa o kernel localizado em "/vmlinuz" com parmetro de kernel: "root=/dev/hda3 ro"
Nota
O valor do nmero de partio usado pelo programa GRUB legacy menos um que o normal usado pelo kernel Linux e ferramentas utilitrias. O programa GRUB 2 corrige este problema.
Dica
UUID (see Seco 9.3.2, Aceder a partio usando UUID) may be used to identify a block special device instead of its file name such as "/dev/hda3", e.g."root=UUID= 81b289d5-4341-4003-9602-e254a17ac232 ro".
Dica
Voc pode iniciar um gestor de arranque a partir de outro gestor de arranque usando tcnicas chamadas chain loading.
The mini-Debian system is the 3rd stage of the boot process which is started by the boot loader. It runs the system kernel with its root filesystem on the memory. This is an optional preparatory stage of the boot process.
Nota
describe this 3rd stage boot process for this document. This system is commonly referred as the initrd or initramfs system. Similar system on the memory is used by the Debian Installer.
The "/init" script is executed as the first program in this root filesystem on the memory. It is a shell script program which initializes the kernel in user space and hands control over to the next stage. This mini-Debian system offers flexibility to the boot process such as adding kernel modules before the main boot process or mounting the root filesystem as an encrypted one.
You can interrupt this part of the boot process to gain root shell by providing "break=init" etc. to the kernel boot parameter. See the "/init" script for more break conditions. This shell environment is sophisticated enough to make a good inspection of your machine's hardware.
Commands available in this mini-Debian system are stripped down ones and mainly provided by a GNU tool called busybox(1).
Cuidado
Voc precisa de usar a opo "-n" para o comando mount quando est no sistema de ficheiros raiz apenas de leitura.
Debian
I:99
I:99
lsb-base *
I:99 36
funcionalidade de script de
init 3.2
insserv *
I:26
upstart *
uswsusp *
I:14
kexec-tools * V:0.17,320 kexec tool for kexec(8) I:0.5 reboots (warm reboot)
I:0.7
(visualizao)
I:0.5
I:0.6
Nota
This section describes classical System V style boot system on lenny. Debian is moving to the event driven boot system. See The future of the boot system in Debian and Dependency based boot sequence.
Dica
All boot mechanisms are compatible through "/etc/init.d/rc", "/ etc/init.d/rcS", "/usr/sbin/update-rc.d", and "/usr/sbin/ invoke-rc.d" scripts.
Dica
The normal Debian system is the 4th stage of the boot process which is started by the mini-Debian system. The system kernel for the mini-Debian system continues to run in this environment. The root filesystem is switched from the one on the memory to the one on the real hard disk filesystem.
The "/sbin/init" program is executed as the first program and performs the main boot process. The Debian normally uses the traditional sysvinit scheme with the sysv-rc package. See init (8), inittab(5), and "/usr/share/doc/sysv-rc/ README.runlevels.gz" for the exact explanation. This main boot process essentially goes through the following.
1. The Debian system goes into runlevel N (none) to initialize the system by following the "/etc/inittab" description. 2. The Debian system goes into runlevel S to initialize the system under the single-user mode to complete hardware initialization etc. 3. O sistema Debian vai para um dos runlevels de multi-utilizador (2 a 5) especificado para arrancar os servios do sistema.
The initial runlevel used for multi-user mode is specified with the "init=" kernel boot parameter or in the "initdefault" line of the "/etc/inittab". The Debian system as installed starts at the runlevel 2.
Todos os ficheiros script actuais executados pelo sistema init esto localizados no directrio "/etc/init.d/".
Cada runlevel usa um directrio para a sua configurao e tem um significado especfico como o seguinte.
0 /etc/rc0.dparar o sistema /
2 /etc/rc2.dmodo de multi-utilizador /
3 /etc/rc3.d,, /
4 /etc/rc4.d,, /
5 /etc/rc5.d,, /
6 /etc/rc6.dreiniciar o sistema /
8 /etc/rc8.d,, /
/etc/rc9.d,, /
Voc pode mudar o runlevel a partir da consola para, por exemplo 4, com o seguinte.
$ sudo telinit 4
Cuidado
The Debian system does not pre-assign any special meaning differences among the runlevels between 2 and 5. The system administrator on the Debian system may change this. (I.e., Debian is not Red Hat Linux nor Solaris by Sun Microsystems nor HP-UX by Hewlett Packard nor AIX by IBM nor )
Cuidado
The Debian system does not populate directories for the runlevels between 7 and 9 when the package is installed. Traditional Unix variants don't use these runlevels.
Nota
In Debian squeeze, dependency based boot order provided by the insserv package is used instead of classical alphabetical one. The "CONCURRENCY" value in "/etc/default/rcS" controls its concurrency: "none" for no concurrency, "startpar" for concurrency within the same sequence number, or "makefile" for full concurrency. See "/usr/share/doc/insserv/README.Debian".
The name of the symlink in each runlevel directory has the form "S<2-digit-number><original-name>" or "K<2-digit-number> <original-name>". The 2-digit-number is used to determine the order in which to run the scripts. "S" is for "Start" and "K" is for "Kill".
For "CONCURRENCY=none", when init(8) or telinit(8) commands goes into the runlevel to "<n>", it execute following scripts.
1. The script names starting with a "K" in "/etc/rc<n>.d/" are executed in alphabetical order with the single argument "stop". (killing services) 2. The script names starting with an "S" in "/etc/rc<n>.d/" are executed in alphabetical order with the single argument "start". (starting services)
For example, if you had the links "S10sysklogd" and "S20exim4" in a runlevel directory, "S10sysklogd" which is symlinked to ".. /init.d/sysklogd" would run before "S20exim4" which is symlinked to "../init.d/exim4".
Ateno
It is not advisable to make any changes to symlinks in "/etc/ rcS.d/" unless you know better than the maintainer.
Por exemplo, vamos configurar o sistema runleve algo como o Red Hat Linux com o seguinte.
init arranca o sistema em runlevel=3 por predefinio O init no arranca o gdm(1) nos runlevel (0,1,2,6). init arranca o gdm(1) em runlevel=(3,4,5).
This can be done by using editor on the "/etc/inittab" file to change starting runlevel and using user friendly runlevel management tools such as sysv-rc-conf or bum to edit the runlevel. If you are to use command line only instead, here is how you do it (after the default installation of the gdm package and selecting it to be the choice of display manager).
Please note the "/etc/X11/default-display-manager" file is checked when starting the display manager daemons: xdm, gdm, kdm, and wdm.
Nota
Voc ainda pode arrancar o X a partir de qualquer consola de shell com o comando startx(1).
The default parameter for each init script in "/etc/init.d/" is given by the corresponding file in "/etc/default/" which contains environment variable assignments only. This choice of directory name is specific to the Debian system. It is roughly the equivalent of the "/etc/sysconfig" directory found in Red Hat Linux and other distributions. For example, "/etc/default/ cron" can be used to control how "/etc/init.d/cron" works.
O ficheiro "/etc/default/rcS" pode ser usado para personalizar as predefinies no momento de arranque para motd(5), sulogin (8), etc.
Se no consegue obter o comportamento que deseja ao alterar tais variveis ento voc pode modificar os scripts de init. Estes so ficheiros de configurao editveis por administradores de sistemas.
The kernel maintains the system hostname. The init script in runlevel S which is symlinked to "/etc/init.d/hostname.sh" sets
the system hostname at boot time (using the hostname command) to the name stored in "/etc/hostname". This file should contain only the system hostname, not a fully qualified domain name.
Apesar do sistema de ficheiros raiz ser montado pelo kernel quando arranca, outros sistemas de ficheiros so montados no runlevel S pelos seguintes scripts de init.
"`/etc/init.d/mountkernfs.sh" para sistemas de ficheiros do kernel em "/proc", "/sys", etc. "`/etc/init.d/mountdevsubfs.sh" para sistemas de ficheiros virtuais em "/dev" "`/etc/init.d/mountall.sh" para sistemas de ficheiros normais usando o "/etc/fstab" "`/etc/init.d/mountnfs.sh" para sistemas de ficheiros de rede usando o "/etc/fstab"
As opes de montagem do sistema de ficheiros so definidas em " /etc/fstab". Veja Seco 9.3.5, Optimizao do sistema de ficheiros por opes de montagem.
Nota
Ateno
Aps montar todos os sistemas de ficheiros, os ficheiros temporrios em "/tmp", "/var/lock", e "/var/run" so limpos para cada arranque.
As interfaces de rede so iniciadas no runlevel 5 pelo script de init simbolicamente ligado a "/etc/init.d/ifupdown-clean" e "/ etc/init.d/ifupdown". Veja Captulo 5, Configurao de rede para como os configurar.
Muitos servios de rede (veja Captulo 6, Aplicaes de rede) so iniciados sob modo de multi-utilizador directamente como processos daemon durante o arranque pelo script de init, ex., "/ etc/rc2.d/S20exim4" (para RUNLEVEL=2) o que um link simblico para "/etc/init.d/exim4".
Some network services can be started on demand using the super-server inetd (or its equivalents). The inetd is started at boot time by "/etc/rc2.d/S20inetd" (for RUNLEVEL=2) which is a symlink to "/etc/init.d/inetd". Essentially, inetd allows one running daemon to invoke several others, reducing load on the system.
Whenever a request for service arrives at super-server inetd , its protocol and service are identified by looking them up in the databases in "/etc/protocols" and "/etc/services". inetd then looks up a normal Internet service in the "/etc/inetd.conf" database, or a Open Network Computing Remote Procedure Call (ONC RPC)/Sun RPC based service in "/etc/rpc.conf".
Sometimes, inetd does not start the intended server directly but starts the TCP wrapper program, tcpd(8), with the intended server name as its argument in "/etc/inetd.conf". In this case, tcpd runs the appropriate server program after logging the request and doing some additional checks using "/etc/hosts.deny" and "/etc/hosts.allow".
Para segurana do sistema, desactive o mximo possvel de programas de servio de rede. Veja Seco 4.6.3, Restringindo acesso a alguns servios de servidor.
Veja inetd(8), inetd.conf(5), protocols(5), services(5), tcpd (8), hosts_access(5), hosts_options(5), rpcinfo(8), portmap(8), e "/usr/share/doc/portmap/portmapper.txt.gz".
The system message can be customized by "/etc/default/syslogd" and "/etc/syslog.conf" for both the log file and on-screen display. See syslogd(8) and syslog.conf(5). See also Seco 9.2.2, Analizador de log.
The kernel message can be customized by "/etc/default/klogd" for both the log file and on-screen display. Set "KLOGD='-c 3'" in this file and run "/etc/init.d/klogd restart". See klogd(8).
# dmesg -n3
imediatamente
KERN_ERR
condies de erro
significante
6 KERN_INFO informativa
depurao
For Linux kernel 2.6, the udev system provides mechanism for the automatic hardware discovery and initialization (see udev(7)). Upon discovery of each device by the kernel, the udev system starts a user process which uses information from the sysfs filesystem (see Seco 1.2.12, procfs e sysfs), loads required kernel modules supporting it using the modprobe(8) program (see Seco 3.5.12, A inicializao de mdulos do kernel), and creates corresponding device nodes.
Dica
If "/lib/modules/<kernel-version>/modules.dep" was not generated properly by depmod(8) for some reason, modules may not be loaded as expected by the udev system. Execute "depmod -a" to fix it.
The name of device nodes can be configured by udev rule files in "/etc/udev/rules.d/". Current default rules tend to create dynamically generated names resulting non-static device names except for cd and network devices. By adding your custom rules similar to what cd and network devices do, you can generate static device names for other devices such as USB memory sticks, too. See "Writing udev rules" or "/usr/share/doc/udev/ writing_udev_rules/index.html".
Como o sistema udev de certa maneira um alvo em movimento, eu deixo os detalhes para outras documentaes e descrevo a informao mnima aqui.
Dica
Para regras de montagem em "/etc/fstab", os ns de dispositivo no precisam de ser os estticos. Voc pode usar o UUID para montar os dispositivos em vez dos nomes de dispositivo como "/ dev/sda". Veja Seco 9.3.2, Aceder a partio usando UUID.
kernel from user process by adding and removing kernel modules. The udev system (see Seco 3.5.11, O sistema udev) automates its invocation to help the kernel module initialization.
There are non-hardware modules and special hardware driver modules as the following which need to be pre-loaded by listing them in the "/etc/modules" file (see modules(5)).
Mdulos TUN/TAP que disponibilizam dispositivos de rede Point-to-Point virtuais (TUN) e dispositivos de rede Ethernet virtuais (TAP). Mdulos netfilter que disponibilizam capacidades de firewall netfilter (iptables(8), Seco 5.9, Infraestrutura do netfilter), e mdulos de driver watchdog timer
The configuration files for the modprobe(8) program are located under the "/etc/modprobes.d/" directory as explained in modprobe.conf(5). (If you want to avoid some kernel modules to be auto-loaded, consider to blacklist them in the "/etc/ modprobes.d/blacklist" file.)
O ficheiro "/lib/modules/<version>/modules.dep" gerado pelo programa depmod(8) descreve as dependncias dos mdulos usados pelo programa modprobe(8).
Nota
loading or with modprobe(8), "depmod -a" may resolve these issues by reconstructing "modules.dep".
O programa lsmod(8) formata lindamente o contedo de "/proc/ modules", e mostra que mdulos do kernel esto actualmente carregados.
Dica
Voc pode identificar o hardware exacto no seu sistema. Veja Seco 9.6.3, Identificao do hardware.
Dica
Voc pode configurar o hardware durante o arranque par activar as funcionalidades esperadas do hardware. Veja Seco 9.6.4, Configurao do hardware.
Dica
Voc pode adicionar suporta para o seu dispositivo ao recompilar o kernel. Veja Seco 9.7, O kernel.
Captulo 4. Autenticao
Ateno
Configuration errors of PAM may lock you out of your own system. You must have a rescue CD handy or setup an alternative boot partition. To recover, boot the system with them and correct things from there.
Normal Unix authentication is provided by the pam_unix(8) module under the PAM (Pluggable Authentication Modules). Its 3 important configuration files, with ":" separated entries, are the following.
shadow
conta do utilizador
Como explicado em passwd(5), cada entrada ":" separada neste ficheiro significa o seguinte.
Nome de login Entrada de especificao de palavra-passe ID numrico do utilizador ID numrico do grupo Nome de utilizador ou campo de comentrios Directrio home do utilizador Interpretador de comandos opcional do utilizador
A segunda entrada de "/etc/passwd" foi usada para a entrada de palavra-passe encriptada. Aps a introduo de "/etc/shadow",
contedosignificado
Como explicado em shadow(5), cada entrada ":" separada neste ficheiro significa o seguinte.
Nome de login Palavra-passe encriptada (O "$1$" inicial indica o uso de encriptao MD5. O "*" indica nenhum login.) Dias desde Jan 1, 1970 que essa palavra-passe foi alterada Dias antes da palavra-passe poder ser alterada Dias aps os quais a palavra-passe tem de ser alterada Dias de aviso ao utilizador antes da palavra-passe expirar
grupo1:x:20:utilizador1,utilizador2
Como explicado em grupo(5), cada entrada ":" separada neste ficheiro significa o seguinte.
Nome do grupo Palavra-passe encriptada (no usada na realidade) ID numrico do grupo lista separada por "," de nomes de utilizadores
Nota
Nota
The actual group membership of a user may be dynamically added if "auth optional pam_group.so" line is added to "/etc/pam.d/ common-auth" and set it in "/etc/security/group.conf". See pam_group(8).
Nota
The base-passwd package contains an authoritative list of the user and the group: "/usr/share/doc/base-passwd/ users-and-groups.html".
comando funo
<nome_de_utilizador> <nome_de_utilizador>"
<unome_de_utilizador> "<user_name>"
You may need to have the root privilege for some functions to work. See crypt(3) for the password and data encryption.
Nota
On the system set up with PAM and NSS as the Debian alioth machine, the content of local "/etc/passwd", "/etc/group" and "/
etc/shadow" may not be actively used by the system. Above commands are valid even under such environment.
When creating an account during your system installation or with the passwd(1) command, you should choose a good password which consists of 6 to 8 characters including one or more characters from each of the following sets according to passwd(1).
Ateno
opensslV:56, 2380 openssl compute password hashes * I:91 passwd (OpenSSL). passwd(1ssl)
Modern Unix-like systems such as the Debian system provide PAM (Pluggable Authentication Modules) and NSS (Name Service Switch) mechanism to the local system administrator to configure his system. The role of these can be summarizes as the following.
PAM offers a flexible authentication mechanism used by the application software thus involves password data exchange. NSS offers a flexible name service mechanism which is frequently used by the C standard library to obtain the user and group name for programs such as ls(1) and id(1).
libpam-ldap *
Pluggable Authentication
libpam-doc *
Switch" service
libnss-mdns * I:49 116 Mdulo NSS para resoluo de nomes Multicast DNS
libnss-ldap * I:4 268 NSS module for using LDAP as a naming service
libnss-ldapd *
"The Linux-PAM System Administrators' Guide" in libpam-doc is essential for learning PAM configuration. "System Databases and Name Service Switch" section in
Nota
You can see more extensive and current list by "aptitude search 'libpam-|libnss-'" command. The acronym NSS may also mean "Network Security Service" which is different from "Name Service Switch".
Nota
PAM a maneira mais bsica de inicializar variveis de ambiente para cada programa com o valor predefinido de todo o sistema.
/etc/nsswitch.confset up NSS configuration with the entry for each service. See nsswitch.conf(5)
pam_nologin(8)
"readenv=1"
/etc/security/ set resource restraint (ulimit, core, ) by limits.conf the pam_linits(8) module
The limitation of the password selection is implemented by the PAM modules, pam_unix(8) and pam_cracklib(8). They can be configured by their arguments.
Dica
the centralized Lightweight Directory Access Protocol (LDAP) server to administer many Unix-like and non-Unix-like systems on the network. The open source implementation of the Lightweight Directory Access Protocol is OpenLDAP Software.
The LDAP server provides the account information through the use of PAM and NSS with libpam-ldap and libnss-ldap packages for the Debian system. Several actions are required to enable this (I have not used this setup and the following is purely secondary information. Please read this in this context.).
You set up a centralized LDAP server by running program such as stand-alone LDAP daemon, slapd(8). Voc altera os ficheiros de configurao do PAM no directrio "/etc/pam.d/" para usar "pam_ldap.so" em vez do predefinido "pam_unix.so".
Debian usa "/etc/pam_ldap.conf" como ficheiro de configurao para libpam-ldap e "/etc/pam_ldap.secret" como ficheiro para armazenar a palavra-passe do root. Voc altera a configurao do NSS no ficheiro "/etc/ nsswitch.conf" para usar "ldap" em vez da predefinio ("compat" ou "file").
Debian usa o "/etc/libnss-ldap.conf" como o ficheiro de configurao para libnss-ldap. Voc tem de fazer libpam-ldap para usar a ligao SSL (ou TLS) para a segurana da palavra-passe.
You may make libnss-ldap to use SSL (or TLS) connection to ensure integrity of data at the cost of the LDAP network overhead. Voc deve correr o nscd(8) localmente para colocar em cache quaisquer resultados de busca LDAP de modo a reduzir o trfego de rede do LDAP.
Veja as documentaes em pam_ldap.conf(5) e "/usr/share/doc/ libpam-doc/html/" oferecidas pelo pacote libpam-doc e "info libc 'Name Service Switch'" oferecida pelo pacote glibc-doc.
De modo semelhante, voc pode configurar sistemas centralizados alternativos com outros mtodos.
NIS (originalmente chamado YP) ou NIS+ com sistemas tipo Unix mais antigos Winbind com Windows NT e SAMBA
This is the famous phrase at the bottom of the old "info su" page by Richard M. Stallman. Not to worry: the current su command in Debian uses PAM, so that one can restrict the ability to use su to the root group by enabling the line with "pam_wheel.so" in "/etc/pam.d/su".
palavra-passe rigorosas, por exemplo, ao ter linhas activas em " /etc/pam.d/common-password" como se segue.
Para lenny:
password required pam_cracklib.so retry=3 minlen=9 difok=3 password required pam_unix.so use_authtok nullok md5
Para squeeze:
password required pam_cracklib.so retry=3 minlen=9 difok=3 password [success=1 default=ignore] pam_unix.so use_authtok nullok md5 password requisite pam_deny.so password required pam_permit.so
Nota
Veja Seco 9.5.15, Tecla Alt-SysRq para restringir a funcionalidade do kernel chave de ateno segura (SAK).
4.6.1. sudo
sudo(8) is a program designed to allow a sysadmin to give limited root privileges to users and log root activity. sudo requires only an ordinary user's password. Install sudo package and activate it by setting options in "/etc/sudoers". See configuration example at "/usr/share/doc/sudo/examples/sudoers".
My usage of sudo for the single user system (see Seco 1.1.12, Configurao do sudo) is aimed to protect myself from my own stupidity. Personally, I consider using sudo a better alternative to using the system from the root account all the time. For example, the following changes the owner of " <some_file>" to "<my_name>".
Claro que se voc conhecer a palavra-passe de root (como os utilizadores de sistemas Debian auto-instalados conhecem), qualquer comando pode ser executado sob root a partir da conta de qualquer utilizador usando "su -c".
4.6.2. SELinux
Security-Enhanced Linux (SELinux) is a framework to tighten privilege model tighter than the ordinary Unix-like security model with the mandatory access control (MAC) policies. The root power may be restricted under some conditions.
For system security, It is a good idea to disable as much server programs as possible. This becomes critical for network servers. Having unused servers, activated either directly as daemon or via super-server program, are considered security risks.
Muito programas, como o sshd(8), usam controles de acesso baseados no PAM. Existem muitas maneiras de restringir o acesso a alguns servios de servidor.
ficheiros de configurao: "/etc/default/<nome_do_programa>" configurao de runlevel para daemon PAM (Pluggable Authentication Modules) "/etc/inetd.conf" para super-server "/etc/hosts.deny" e "/etc/hosts.allow" para wrapper de TCP, tcpd(8) "/etc/rpc.conf" para RPC da Sun "/etc/at.allow" e "/etc/at.deny" para atd(8) "/etc/cron.allow" e "/etc/cron.deny" para crontab(1) Firewall de Rede da infraestrutura netfilter
Veja Seco 3.5.3, O exemplo de gesto do runlevel, Seco 3.5.4, O parmetro predefinido para cada script de init , Seco 4.5.1, Ficheiros de configurao acedidos pelo PAM e NSS, Seco 3.5.8, Inicializao do servio de rede, e Seco 5.9, Infraestrutura do netfilter.
Dica
os servios Sun RPC precisam de estar activos para NFS e outros programas baseados em RPC.
Dica
If you have problems with remote access in a recent Debian system, comment out offending configuration such as "ALL: PARANOID" in "/etc/hosts.deny" if it exists. (But you must be careful on security risks involved with this kind of action.)
A informao aqui pode no ser suficiente para as suas necessidades de segurana, mas dever ser um bom comeo.
Many popular transportation layer services communicate messages including password authentication in the plain text. It is very bad idea to transmit password in the plain text over the wild Internet where it can be intercepted. You can run these services over "Transport Layer Security" (TLS) or its predecessor, "Secure Sockets Layer" (SSL) to secure entire communication including password by the encryption.
smtp (mail)
25 ssmtp (smtps)
465
The encryption costs CPU time. As a CPU friendly alternative, you can keep communication in plain text while securing just password with the secure authentication protocol such as "Authenticated Post Office Protocol" (APOP) for POP and "Challenge-Response Authentication Mechanism MD5" (CRAM-MD5) for SMTP and IMAP. (For sending mail messages over the Internet to your mail server from your mail client, it is recently popular to use new message submission port 587 instead of traditional
SMTP port 25 to avoid port 25 blocking by the network provider while authenticating yourself with CRAM-MD5.)
The Secure Shell (SSH) program provides secure encrypted communications between two untrusted hosts over an insecure network with the secure authentication. It consists of the OpenSSH client, ssh(1), and the OpenSSH daemon, sshd(8). This SSH can be used to tunnel the insecure protocol communication such as POP and X securely over the Internet with the port forwarding feature.
The client tries to authenticate itself using host-based authentication, public key authentication, challenge-response authentication, or password authentication. The use of public key authentication enables the remote password-less login. See Seco 6.9, O servidor de acesso remoto e utilitrio (SSH).
Even when you run secure services such as Secure Shell (SSH) and Point-to-point tunneling protocol (PPTP) servers, there are still chances for the break-ins using brute force password guessing attack etc. from the Internet. Use of the firewall policy (see Seco 5.9, Infraestrutura do netfilter) together with the following secure tools may improve the security situation.
I:0.3
denyhosts * V:2, 356 utility to help sysadmins thwart I:2 ssh hackers
fail2ban * V:4, 660 banir IPs que causam erros de I:5 autenticao mltipla
Para prevenir que pessoas acedam sua mquina com privilgios de root, voc precisa de tomar as seguintes aces.
Prevenir acesso fsico ao disco rijo Bloquear a BIOS e prevenir o arranque a partir de medias amovveis Define palavra-passe para sesso interactiva do GRUB Bloquear o menu do GRUB de ser editado
With physical access to hard disk, resetting the password is relatively easy with following steps.
1. Mover o disco rijo para um PC com uma BIOS com arranque a partir de CD. 2. Arrancar o sistema com uma media de recuperao (disco de arranque Debian, CD Knoppix, CD GRUB, ...) 3. Montar a partio raiz com acesso de leitura/escrita. 4. Edit "/etc/passwd" in the root partition and make the second entry for the root account empty.
If you have the edit access to the GRUB menu entry (see Seco 3.3, Estgio 2: o gestor de arranque) for grub-rescue-pc at the boot time, it is even easier with following steps.
1. Boot system with the kernel parameter changed to something like "root=/dev/hda6 rw init=/bin/sh". 2. Edit "/etc/passwd" and make the second entry for the root account empty. 3. Reiniciar o sistema.
Nota
Once one has root shell access, he can access everything on the system and reset any passwords on the system. Further more, he may compromise password for all user accounts using brute force password cracking tools such as john and crack packages (see Seco 9.6.11, Segurana do sistema e verificao de integridade). This cracked password may lead to compromise other systems.
The only reasonable software solution to avoid all these concerns is to use software encrypted root partition (or "/etc" partition) using dm-crypt and initramfs (see Seco 9.4, Dicas de encriptao de dados). You always need password to boot the system, though.
Dica
For general guide to the GNU/Linux networking, read the Linux Network Administrators Guide.
moderno.
ferramenta
V:60,
ifupdown *
(especificao da Debian)
I:0.9 244 , ,
automaticamente
V:0.04,
ifupdown-extra *
"ifupdown"
V:0.02,100 , , I:0.10
V:0.07,
I:0.3 516 , ,
"ifupdown" via
ifscheme * scripts de
V:0.03,
"ifupdown"
scripts da
interface
automaticamente
(frontend do GNOME)
NetworkManager (cliente de
V:0.5, 88 I:2
(metapacote)
V:0.04,
I:0.2 128 , ,
linha de comandos)
wicd-curses *
V:0.15,236 , ,
I:0.4
wicd-daemon *
I:2 1780 , ,
fios (daemon)
wicd-gtk *
iptables * ferramentas
V:27,
administrativas
V:41, 1044 config::iproute2 configurao de I:88 rede avanada: ip(8), tc(8), etc
ifrename * renomear
iputils-ping *
V:36, 96
I:99
V:0.6,
iputils-arping *
I:6 36
at uma mquina
remota
net-tools * conjunto de
V:70,
ifconfig(8) etc.
inetutils-ping *
I:0.12
rastreia o
V:13,
traceroute *
I:99 192 , ,
I:92
wpasupplicant *
V:28, 828 , ,
I:39
V:7,
wireless-tools *
I:22 420 , ,
Extenses
Wireless do Linux
ppp *
ajudante de
pppoeconf *
I:3
ajudante de
pppconfig *
V:0.2, 964 , ,
configurao
I:2
wvdial * ajudante de
configurao
mtr-tiny * rastreia o
V:2, 120 test::low-level caminho de rede I:26 at uma mquina remota (curses)
mtr * rastreia o
V:0.7,
I:3 180 , ,
gnome-nettool *
V:2, 2848 , ,
I:33
I:1.3 2400 , ,
de portos (GTK+)
knmap *
V:0.10,
I:0.6 712 , ,
de portos (KDE)
(Tcpdump, consola)
wireshark *
V:1.4, 2052 , ,
I:9
(Wireshark, GTK+)
I:3 276 , ,
nagios3 * sistema de
V:1.0, 32 I:1.8
tcptrace * produz um
V:0.05,
sumrio das
I:0.4 436 , ,
ligaes a
ntop * mostra a
utilizao da
rede num
navegador web
V:14, 412 , ,
I:90
V:0.4, 96 I:6
dnstracer *
V:0.11,92
I:0.5
The naming for the domain name is a tricky one for the normal PC workstation users. The PC workstation may be mobile one hopping around the network or located behind the NAT firewall inaccessible from the Internet. For such case, you may not want the domain name to be a valid domain name to avoid name collision.
Dica
When you use an invalid domain name, you need to spoof the domain name used by some programs such as MTA for their proper operation. See Seco 6.3.3, A configurao do endereo de mail.
According to rfc2606, "invalid" seems to be a choice for the top level domain (TLD) to construct domain names that are sure to be invalid from the Internet.
The mDNS network discovery protocol (Apple Bonjour / Apple Rendezvous, Avahi on Debian) uses "local" as the pseudo-top-level domain. Microsoft also seems to promote "local" for the TLD of local area network.
Ateno
If the DNS service on your LAN uses "local" as TLD for your LAN, it may interfare with mDNS.
Other popular choices for the invalid TLD seem to be "localdomain", "lan", "localnet", or "home" according to my incoming mail analysis.
Service Switch) mechanism too. The flow of this resolution is the following.
1. The "/etc/nsswitch.conf" file with stanza like "hosts: files dns" dictates the hostname resolution order. (This replaces the old functionality of the "order" stanza in "/etc/ host.conf".) 2. The files method is invoked first. If the hostname is found in the "/etc/hosts" file, it returns all valid addresses for it and exits. (The "/etc/host.conf" file contains "multi on".) 3. The dns method is invoked. If the hostname is found by the query to the Internet Domain Name System (DNS) identified by the "/etc/resolv.conf" file, it returns all valid addresses for it and exits.
O ficheiro "/etc/hosts" que associa endereos IP com nomes de mquinas contm o seguinte.
# As linhas seguintes so desejveis para mquinas capazes de IPv6 ::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Here the <host_name> in this matches the own hostname defined in the "/etc/hostname". The <domain_name> in this is the fully qualified domain name (FQDN) of this host.
Dica
For <domain_name> of the mobile PC without the real FQDN, you may pick a bogus and safe TLD such as "lan", "home", "invalid", "localdomain", "none", and "private".
The "/etc/resolv.conf" is a static file if the resolvconf package is not installed. If installed, it is a symbolic link. Either way, it contains information that initialize the resolver routines. If the DNS is found at IP="192.168.11.1", it contains the following.
nameserver 192.168.11.1
The resolvconf package makes this "/etc/resolv.conf" into a symbolic link and manages its contents by the hook scripts automatically.
The hostname resolution via Multicast DNS (using Zeroconf, aka Apple Bonjour / Apple Rendezvous) which effectively allows name resolution by common Unix/Linux programs in the ad-hoc mDNS domain "local", can be provided by installing the libnss-mdns package. The "/etc/nsswitch.conf" file should have stanza like "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4" to
The network interface name, e.g. eth0, is assigned to each hardware in the Linux kernel through the user space configuration mechanism, udev (see Seco 3.5.11, O sistema udev), as it is found. The network interface name is referred as physical interface in ifup(8) and interfaces(5).
In order to ensure each network interface to be named persistently for each reboot using MAC address etc., there is a record file "/etc/udev/rules.d/70-persistent-net.rules". This file is automatically generated by the "/lib/udev/ write_net_rules" program, probably run by the "persistent-net-generator.rules" rules file. You can modify it to change naming rule.
Cuidado
When editing the "/etc/udev/rules.d/70-persistent-net.rules" rules file, you must keep each rule on a single line and the MAC address in lowercase. For example, if you find "Firewire device" and "PCI device" in this file, you probably want to name "PCI device" as eth0 and configure it as the primary network interface.
Let us be reminded of the IPv4 32 bit address ranges in each class reserved for use on the local area networks (LANs) by rfc1918. These addresses are guaranteed not to conflict with any addresses on the Internet proper.
A 10.x.x.x 255.0.0.0 /8 1
Nota
If one of these addresses is assigned to a host, then that host must not access the Internet directly but must access it through
a gateway that acts as a proxy for individual services or else does Network Address Translation(NAT). The broadband router usually performs NAT for the consumer LAN environment.
Although most hardware devices are supported by the Debian system, there are some network devices which require DSFG non-free external hardware drivers to support them. Please see Seco 9.7.8, Drivers de hardware no-livres.
Debian squeeze systems can manage the network connection via management daemon software such as NetworkManager (NM) (network-manager and associated packages) or Wicd (wicd and associated packages).
Vm com as suas prprias GUIs e programas de linha de comandos como as suas interfaces de utilizador. Vm com os seus prprios daemons como os seus sistemas de backend. Permitem ligao fcil do seu sistema Internet. Permitem gesto fcil de configurao de redes com fio e sem fios. Permitem-nos configurar a rede independentemente do pacote legacy ifupdown.
Nota
No use estas ferramentas de configurao de rede automticas em servidores. Estas so destinadas principalmente para os utilizadores mveis em portteis.
Estas ferramentas de configurao de rede modernas precisam de ser configuradas correctamente para evitar entrarem em conflito com o pacote legacy ifupdown e o seu ficheiro de configurao "/ etc/network/interfaces".
Nota
Some features of these automatic network configuration tools may suffer regressions. These are not as robust as the legacy ifupdown package. Check BTS of network-manager and BTS of wicd for current issues and limitations.
Official documentations for NM and Wicd on Debian are provided in "/usr/share/doc/network-manager/README.Debian" and "/usr/ share/doc/wicd/README.Debian", respectively.
1. Make desktop user, e.g. foo, belong to group "netdev" by the following (Alternatively, do it automatically via D-bus under modern desktop environments such as GNOME and KDE).
Nota
Only interfaces which are not listed in "/etc/network/ interfaces" or which have been configured with "auto " or "allow-hotplug " and "iface inet dhcp" (with no other options) are managed by NM to avoid conflict with ifupdown.
Dica
If you wish to extend network configuration capabilities of NM, please seek appropriate plug-in modules and supplemental packages such as network-manager-openconnect,
network-manager-openvpn-gnome, network-manager-pptp-gnome, mobile-broadband-provider-info, gnome-bluetooth, etc. The same goes for those of Wicd.
Cuidado
These automatic network configuration tools may not be compatible with esoteric configurations of legacy ifupdown in "/ etc/network/interfaces" such as ones in Seco 5.5, A configurao de rede bsica com ifupdown (legacy) and Seco 5.6, A configurao de rede avanada com ifupdown (legacy). Check BTS of network-manager and BTS of wicd for current issues and limitations.
When the method described in Seco 5.2, A configurao de rede moderna para desktop does not suffice your needs, you should use the legacy network connection and configuration method which combines many simpler tools.
A ligao de rede legacy especfica para cada mtodo (veja Seco 5.4, O mtodo de ligao de rede (legacy)).
Existem 2 tipos de programas para a configurao de rede de baixo nvel em Linux (veja Seco 5.7.1, Comandos iproute2).
Old net-tools programs (ifconfig(8), ) are from the Linux NET-3 networking system. Most of these are obsolete now.
New Linux iproute2 programs (ip(8), ) are the current Linux networking system.
Although these low level networking programs are powerful, they are cumbersome to use. So high level network configuration systems have been created.
The ifupdown package is the de facto standard for such high level network configuration system on Debian. It enables you to bring up network simply by doing , e.g., "ifup eth0". Its configuration file is the "/etc/network/interfaces" file and its typical contents are the following.
The resolvconf package was created to supplement ifupdown system to support smooth reconfiguration of network address resolution by automating rewrite of resolver configuration file "/etc/ resolv.conf". Now, most Debian network configuration packages are modified to use resolvconf package (see "/usr/share/doc/ resolvconf/README.Debian").
Helper scripts to the ifupdown package such as ifplugd, guessnet, ifscheme, etc. are created to automate dynamic configuration of network environment such as one for mobile PC
on wired LAN. These are relatively difficult to use but play well with existing ifupdown system.
These are explained in detail with examples (see Seco 5.5, A configurao de rede bsica com ifupdown (legacy) and Seco 5.6, A configurao de rede avanada com ifupdown (legacy)).
Cuidado
The connection test method described in this section are meant for testing purposes. It is not meant to be used directly for the daily network connection. You are advised to use them via NM, Wicd, or the ifupdown package (see Seco 5.2, A configurao de rede moderna para desktop and Seco 5.5, A configurao de rede bsica com ifupdown (legacy)).
The typical network connection method and connection path for a PC can be summarized as the following.
dial-up ISP
determinista
ppp
(alternativa) heurstica
acrnimosignificado
BB broadband
servio e.g., the digital subscriber line (DSL), the cable BB TV, or the fiber to the premises (FTTP)
modem BBe.g., the DSL modem, the cable modem, or the optical network terminal (ONT)
Nota
The WAN connection services via cable TV are generally served by DHCP or PPPoE. The ones by ADSL and FTTP are generally served by PPPoE. You have to consult your ISP for exact configuration requirements of the WAN connection.
Nota
When BB-router is used to create home LAN environment, PCs on LAN are connected to the WAN via BB-router with network address translation (NAT). For such case, PC's network interfaces on the LAN are served by static IP or DHCP from the BB-router. BB-router must be configured to connect the WAN following the instruction by your ISP.
The typical modern home and small business network, i.e. LAN, are connected to the WAN(Internet) using some consumer grade broadband router. The LAN behind this router is usually served
by the dynamic host configuration protocol (DHCP) server running on the router.
Just install the dhcp3-client package for the Ethernet served by the dynamic host configuration protocol (DHCP).
O nmero de telefone O nome de utilizador do ISP A palavra-passe do ISP A velocidade da porta A porta de comunicao do modem O mtodo de autenticao
Tabela 5.6. Lista de ficheiros de configurao para a ligao PPP com pppconfig
ficheiro funo
/etc/ppp/peers/ O ficheiro de configurao gerado pelo <nome_do_isp> pppconfig para um pppd especfico para <nome_de_isp>
/etc/chatscriptsO ficheiro de configurao gerado pelo /<nome_do_isp> pppconfig para conversa especifica com <nome_de_isp>
/etc/ppp/optionsO parmetro de execuo geral para o pppd /etc/ppp/ pap-secret Dados de autenticao para PAP (risco de segurana)
Cuidado
The "<isp_name>" value of "provider" is assumed if pon and poff commands are invoked without arguments.
Voc pode testar a configurao usando ferramentas de configurao de baixo nvel como as seguintes.
Veja "/usr/share/doc/ppp/README.Debian.gz".
A different approach to using pppd(8) is to run it from wvdial (1) which comes in the wvdial package. Instead of pppd running chat(8) to dial in and negotiate the connection, wvdial does the dialing and initial negotiating and then starts pppd to do the rest.
O script de configurao wvdialconf configura a ligao PPP interactivamente apenas ao seleccionar o seguinte.
wvdial tem sucesso a criar a ligao na maioria dos casos e mantm uma lista de dados de autenticao automaticamente.
Tabela 5.7. Lista de ficheiros de configurao para a ligao PPP com wvdialconf
ficheiro funo
/etc/ppp/ O ficheiro de configurao gerado pelo wvdialconf peers/wvdialpara o pppd especfico para wvdial
wvdial.conf
Voc pode testar a configurao usando ferramentas de configurao de baixo nvel como as seguintes.
When your ISP serves you with PPPoE connection and you decide to connect your PC directly to the WAN, the network of your PC must be configured with the PPPoE. The PPPoE stand for PPP over Ethernet. The configuration script pppoeconf configures the PPPoE connection interactively.
Tabela 5.8. Lista de ficheiros de configurao para a ligao PPPoE com pppoeconf
ficheiro funo
dsl-provider pppoeconf para o pppd especfico para pppoe /etc/ppp/ O parmetro de execuo geral para o pppd
options
chap-secret
Voc pode testar a configurao usando ferramentas de configurao de baixo nvel como as seguintes.
$ sudo /sbin/ifconfig eth0 up $ sudo pon dsl-provider ... $ sudo poff dsl-provider $ sudo /sbin/ifconfig eth0 down
Veja "/usr/share/doc/pppoeconf/README.Debian".
The traditional TCP/IP network setup on Debian system uses ifupdown package as a high level tool. There are 2 typical cases.
For dynamic IP system such as mobile PCs, you should setup TCP/IP network with the resolvconf package and enable you to switch your network configuration easily (see Seco 5.5.4, A interface de rede servida por DHCP). For static IP system such as servers, you should setup TCP/ IP network without the resolvconf package and keep your system simple (see Seco 5.5.5, A interface de rede com IP esttico).
These traditional setup methods are quite useful if you wish to set up advanced configuration (see Seco 5.5, A configurao de rede bsica com ifupdown (legacy)).
The ifupdown package provides the standardized framework for the high level network configuration in the Debian system. In this section, we learn the basic network configuration with ifupdown with simplified introduction and many typical examples.
The ifupdown package contains 2 commands: ifup(8) and ifdown(8). They offer high level network configuration dictated by the configuration file "/etc/network/interfaces".
comandoaco
ifup bring up a network interface eth0 with the eth0 configuration eth0 if "iface eth0" stanza exists
ifdown bring down a network interface eth0 with the eth0 configuration eth0 if "iface eth0" stanza exists
Ateno
Do not use low level configuration tools such as ifconfig(8) and ip(8) commands to configure an interface in up state.
Nota
The key syntax of "/etc/network/interfaces" as explained in interfaces(5) can be summarized as the following.
estrofe significado
inicia a interface
"allow-auto , ,
<nome_de_interface>"
<nome_de_interface>"
<nome_de_configurao>
<nome_de_configurao> "
<nome_da_interface_global><interface_name> "
A linha comeada com um ignore as comments (end-of-line cardinal "#" comments are not supported)
Uma linha terminada com estende a configurao para a uma barra inversa "\" prxima linha
For the basic configuration, the mapping stanza is not used and you use the network interface name as the network configuration name (See Seco 5.6.5, A estrofe de mapeamento).
Ateno
Do not define duplicates of the "iface" stanza for a network interface in "/etc/network/interfaces".
The following configuration entry in the "/etc/network/ interfaces" file brings up the loopback network interface lo upon booting the system (via auto stanza).
After prepairing the system by Seco 5.4.1, A ligao DHCP com a Ethernet, the network interface served by the DHCP is configured by creating the configuration entry in the "/etc/ network/interfaces" file as the following.
When the Linux kernel detects the physical interface eth0, the allow-hotplug stanza causes ifup to bring up the interface and the iface stanza causes ifup to use DHCP to configure the interface.
The network interface served by the static IP is configured by creating the configuration entry in the "/etc/network/
allow-hotplug eth0 iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 broadcast 192.168.11.255 gateway 192.168.11.1 dns-domain lan dns-nameservers 192.168.11.1
When the Linux kernel detects the physical interface eth0, the allow-hotplug stanza causes ifup to bring up the interface and the iface stanza causes ifup to use the static IP to configure the interface.
Alcance de endereos IP da rede LAN: 192.168.11.0 192.168.11.255 Endereo IP da gateway: 192.168.11.1 Endereo IP do PC: 192.168.11.100 O pacote resolvconf: instalado O nome de domnio: "lan" Endereo IP do servidor DNS: 192.168.11.1
When the resolvconf package is not installed, DNS related configuration needs to be done manually by editing the "/etc/ resolv.conf" as the following.
Cuidado
The IP addresses used in the above example are not meant to be copied literally. You have to adjust IP numbers to your actual network configuration.
The wireless LAN (WLAN for short) provides the fast wireless connectivity through the spread-spectrum communication of unlicensed radio bands based on the set of standards called IEEE 802.11.
The WLAN interfaces are almost like normal Ethernet interfaces but require some network ID and encryption key data to be provided when they are initialized. Their high level network tools are exactly the same as that of Ethernet interfaces except interface names are a bit different like eth1, wlan0, ath0, wifi0, depending on the kernel drivers used.
Dica
The wmaster0 device is the master device which is an internal device used only by SoftMAC with new mac80211 API of Linux.
NWID ID de rede 16 bit network ID used by pre-802.11 WaveLAN network (very deprecated)
(E)SSID Service Set Points (APs) interconnected to form an Identifier integrated 802.11 wireless LAN, Domain ID
(WEP2) Equivalent wireless encryption standard with Privacy 40-bit key (deprecated)
WPA
Access
Wi-Fi
The actual choice of protocol is usually limited by the wireless router you deploy.
You need to install the wpasupplicant package to support the WLAN with the new WPA/WPA2.
In case of the DHCP served IP on WLAN connection, the "/etc/ network/interfaces" file entry should be as the following.
allow-hotplug ath0 iface ath0 inet dhcp wpa-ssid homezone # hexadecimal psk is encoded from a plaintext passphrase wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
Veja "/usr/share/doc/wpasupplicant/README.modes.gz".
You need to install the wireless-tools package to support the WLAN with the old WEP. (Your consumer grade router may still be using this insecure infrastructure but this is better than nothing.)
Cuidado
Please note that your network traffic on WLAN with WEP may be sniffed by others.
In case of the DHCP served IP on WLAN connection, the "/etc/ network/interfaces" file entry should be as the following.
allow-hotplug eth0 iface eth0 inet dhcp wireless-essid Home wireless-key1 0123-4567-89ab-cdef wireless-key2 12345678 wireless-key3 s:password wireless-defaultkey 2 wireless-keymode open
Veja "/usr/share/doc/wireless-tools/README.Debian".
You need to configure the PPP connection first as described before (see Seco 5.4.3, A ligao PPP com o pppconfig). Then, add the "/etc/network/interfaces" file entry for the
You need to configure the alternative PPP connection with wvdial first as described before (see Seco 5.4.4, A ligao PPP alternativa com o wvdialconf). Then, add the "/etc/network/ interfaces" file entry for the primary PPP device ppp0 as the following.
For PC connected directly to the WAN served by the PPPoE, you need to configure system with the PPPoE connection as described before (see Seco 5.4.5, A ligao PPPoE com o pppoeconf). Then, add the "/etc/network/interfaces" file entry for the primary PPPoE device eth0 as the following.
allow-hotplug eth0 iface eth0 inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down
# O seguinte usado apenas internamente iface dsl inet ppp provider dsl-provider
The "/etc/network/run/ifstate" file stores the intended network configuration states for all the currently active network interfaces managed by the ifupdown package are listed. Unfortunately, even if the ifupdown system fails to bring up the interface as intended, the "/etc/network/run/ifstate" file lists it active.
Unless the output of the ifconfig(8) command for an interface does not have a line like following example, it can not be used as a part of IPV4 network.
Nota
Para o dispositivo Ethernet ligado a PPPoE, ao resultado do comando ifconfig(8) falta uma linha que se parece com o exemplo em cima.
When you try to reconfigure the interface, e.g. eth0, you must disable it first with the "sudo ifdown eth0" command. This
removes the entry of eth0 from the "/etc/network/run/ifstate" file. (This may result in some error message if eth0 is not active or it is configured improperly previously. So far, it seems to be safe to do this for the simple single user work station at any time.)
Agora voc livre de rescrever o contedo de "/etc/network/ interfaces" como necessitar para reconfigurar a interface de rede eth0.
Ento, voc pode reactivar eth0 com o comando "sudo ifup eth0".
Dica
You can (re)initialize the network interface simply by "sudo ifdown eth0;sudo ifup eth0".
O pacote ifupdown-extra disponibiliza testes de ligao de rede fceis para usar com o pacote ifupdown.
O comando network-test(1) pode ser usado a partir da shell. Os scripts automticos so corridos para cada execuo do comando ifup.
O comando network-test poupa-lhe a trabalheira de executar comandos de baixo nvel para analisar o problema de rede.
Verificar a ligao de cabo de rede Verificar o uso duplicado de endereo IP Configura rotas estticas do sistema baseadas na definio " /etc/network/routes" Verificar se a gateway de rede est ao alcance Grava os resultados no ficheiro "/var/log/syslog"
Este registo do syslog bastante til para administrao de problemas de rede no sistema remoto.
Dica
The automatic behavior of the ifupdown-extra package is configurable with the "/etc/default/network-test". Some of these automatic checks slow down the system boot-up a little bit since it takes some time to listen for ARP replies.
A funcionalidade do pacote ifupdown pode ser melhorada para alm do que foi descrito em Seco 5.5, A configurao de rede bsica com ifupdown (legacy) com conhecimentos avanados.
As funcionalidades descritas aqui so completamente opcionais. Estou a ser preguioso e minimalista, raramente me incomodo a usar isto.
Cuidado
If you could not set up network connection by information in Seco 5.5, A configurao de rede bsica com ifupdown (legacy) , you make situation worse by using information below.
The ifplugd package is older automatic network configuration tool which can manage only Ethernet connections. This solves unplugged/replugged Ethernet cable issues for mobile PC etc. If you have NetworkManager or Wicd (see Seco 5.2, A configurao de rede moderna para desktop) installed, you do not need this package.
This package runs daemon and replaces auto or allow-hotplug functionalities (see Tabela 5.10, Lista de estrofes em "/etc/ network/interfaces") and starts interfaces upon their connection to the network.
Aqui est como usar o pacote ifplugd para o porto Ethernet interno, ex. eth0.
1. Remova a estrofe em "/etc/network/interfaces": "auto eth0" ou "allow-hotplug eth0". 2. Mantenha a estrofe em "/etc/network/interfaces": "iface eth0 inet " e "mapping ". 3. instale o pacote ifplugd.
4. Corra "sudo dpkg-reconfigure ifplugd". 5. Coloque eth0 como a "interface esttica para ser correspondida pelo ifplugd".
Aps o ligar da mquina ou aps a descoberta do hardware, a interface no activada por si prpria.
Processo de arranque rpido sem o longo tempo limite do DHCP. No funny activated interface without proper IPv4 address (see Seco 5.5.12, O estado de configurao de rede do ifupdown). Aps encontrar o cabo Ethernet, a interface activada. Aps algum tempo depois de desligar o cabo Ethernet, a interface desactivada automaticamente. Aps ligar outro cabo Ethernet, a interface activada sob o novo ambiente de rede.
Dica
Os argumentos para o comando ifplugd(8) podem definir o seu comportamento tal como o atraso para reconfigurar interfaces.
O pacote ifmetric permite-nos manipular mtricas de rotas posteriori mesmo para DHCP.
O seguinte configura a interface eth0 para ser preferida sobre a interface wlan0.
1. Instale o pacote ifmetric. 2. Adicione uma linha de opo com "metric 0" logo por baixo da linha "iface eth0 inet dhcp". 3. Adicione uma linha de opo com "metric 1" logo por baixo da linha "iface wlan0 inet dhcp".
The metric 0 means the highest priority route and is the default one. The larger metric value means lower priority routes. The IP address of the active interface with the lowest metric value becomes the originating one. See ifmetric(8).
A single physical Ethernet interface can be configured as multiple virtual interfaces with different IP addresses. Usually the purpose is to connect an interface to several IP subnetworks. For example, IP address based virtual web hosting by a single network interface is one such application.
A single Ethernet interface on your host is connected to a Ethernet hub (not to the broadband router). O hub Ethernet esta ligado a ambos; Internet e rede LAN. A rede LAN usa a sub-rede 192.168.0.x/24.
A sua mquina usa endereo IP servido por DHCP com a interface fsica eth0 para a Internet. A sua mquina usa 192.168.0.1 com a interface virtual eth0:0 para a LAN.
iface eth0 inet dhcp metric 0 iface eth0:0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 metric 1
Cuidado
Although this configuration example with network address translation (NAT) using netfilter/iptables (see Seco 5.9, Infraestrutura do netfilter) can provide cheap router for the LAN with only single interface, there is no real firewall capability with such set up. You should use 2 physical interfaces with NAT to secure the local network from the Internet.
The ifupdown package offers advanced network configuration using the network configuration name and the network interface name. I use slightly different terminology from one used in ifup(8) and interfaces(5).
do manual terminologiaseguinte
nome da
nome da
Basic network configuration commands in Seco 5.5.1, A sintaxe de comando simplificada require the network configuration name token of the iface stanza to match the network interface name in the "/etc/network/interfaces".
Advanced network configuration commands enables separation of the network configuration name and the network interface name in the "/etc/network/interfaces" as the following.
comando aco
ifup eth0= torna activa a interface de rede eth0 com a config1 configurao config1
ifdown eth0torna inactiva a interface de rede eth0 com a =config1 configurao config1
ifup eth0 bring up a network interface eth0 with the configuration selected by mapping stanza
We skipped explaining the mapping stanza in the "/etc/network/ interfaces" in Seco 5.5.2, A sintaxe bsica de "/etc/network/ interfaces" to avoid complication. This stanza has the following syntax.
mapping <interface_name_glob> script <script_name> map <script_input1> map <script_input2> map ...
This provides advanced feature to the "/etc/network/interfaces" file by automating the choice of the configuration with the mapping script specified by <script_name>.
When the "<interface_name_glob>" matches "eth0", this execution produces the execution of the following command to configure
eth0 automatically.
Aqui, as linhas de entrada do script com "map" so opcionais e pode ser repetidas.
Nota
The glob for mapping stanza works like shell filename glob (see Seco 1.5.6, Glob da shell).
Here is how to switch manually among several network configurations without rewriting the "/etc/network/interfaces" file as in Seco 5.5.13, A base da configurao de rede .
Para todas as configuraes de rede que precisa aceder, voc cria um nico ficheiro "/etc/network/interfaces" como o seguinte.
iface config2 inet static address 192.168.11.100 netmask 255.255.255.0 broadcast 192.168.11.255 gateway 192.168.11.1 dns-domain lan dns-nameservers 192.168.11.1
iface pppoe inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down
# O seguinte usado apenas internamente iface dsl inet ppp provider dsl-provider
Please note the network configuration name which is the token after iface does not use the token for the network interface name. Also, there are no auto stanza nor allow-hotplug stanza to start the network interface eth0 automatically upon events.
Let's move your PC to a LAN served by the DHCP. You bring up the
network interface (the physical interface) eth0 by assigning the network configuration name (the logical interface name) config1 to it by the following.
Vamos mover o seu PC para uma LAN servida por IP esttico. Voc activa a interface de rede eth0 ao atribuir-lhe o nome de configurao de rede config2 para ela com o seguinte.
The interface eth0 is up, configured with static IP and connected to LAN. The additional parameters given as dns-* configures "/etc/resolv.conf" contents. This "/etc/resolv.conf" is better manged if the resolvconf package is installed.
...
Let's move your PC to a port on BB-modem connected to the PPPoE served service. You bring up the network interface eth0 by assigning the network configuration name pppoe to it by the following.
A interface eth0 est activa, configurada com ligao PPPoE directamente ao ISP.
Let's move your PC to a location without LAN or BB-modem but with POTS and modem. You bring up the network interface ppp0 by assigning the network configuration name pots to it by the following.
Voc deve verificar o ficheiro "/etc/network/run/ifstate" para o estado actual da configurao de rede do sistema ifupdown.
Ateno
Talvez precise de ajustar os nmeros no final de eth*, ppp*, etc. se possuir vrias interfaces de rede.
O sistema ifupdown corre automaticamente scripts instalados em " /etc/network/*/" enquanto exporta variveis de ambiente para os scripts.
"$METHOD" <nome_de_mtodo> da interface. (ex., "static") "$MODE" "start" if run from ifup, "stop" if run from
ifdown
bin:/usr/sbin:/usr/bin:/sbin:/bin"
Here, each environment variable, "$IF_<OPTION>", is created from the name for the corresponding option such as <option1> and <option2> by prepending "$IF_", converting the case to the upper case, replacing hyphens to underscores, and discarding non-alphanumeric characters.
Dica
Veja Seco 5.5.2, A sintaxe bsica de "/etc/network/ interfaces" para <famlia_de_endereos>, <nome_de_mtodo>, <opo1> e <opo2>
The ifupdown-extra package (see Seco 5.5.14, O pacote ifupdown-extra) uses these environment variables to extend the functionality of the ifupdown package. The ifmetric package (see Seco 5.6.2, O pacote ifmetric) installs the "/etc/network/ if-up.d/ifmetric" script which sets the metric via the "$IF_METRIC" variable. The guessnet package (see Seco 5.6.8, Mapeando com guessnet), which provides simple and powerful framework for the auto-selection of the network configuration via the mapping mechanism, also uses these.
Nota
For more specific examples of custom network configuration scripts using these environment variables, you should check example scripts in "/usr/share/doc/ifupdown/examples/*" and scripts used in ifscheme and ifupdown-scripts-zg2 packages. These additional scripts have some overlaps of functionalities with basic ifupdown-extra and guessnet packages. If you install these additional scripts, you should customize these scripts to avoid interferences.
Instead of manually choosing configuration as described in Seco 5.6.6, A configurao de rede comutvel manualmente, you can use the mapping mechanism described in Seco 5.6.5, A estrofe de mapeamento to select network configuration automatically with custom scripts.
The guessnet-ifupdown(8) command provided by the guessnet package is designed to be used as a mapping script and provides powerful framework to enhance the ifupdown system.
You list test condition as the value for guessnet options for each network configuration under iface stanza. Mapping choses the iface with first non-ERROR result as the network configuration.
This dual usage of the "/etc/network/interfaces" file by the mapping script, guessnet-ifupdown, and the original network configuration infrastructure, ifupdown, does not cause negative impacts since guessnet options only export extra environment variables to scripts run by the ifupdown system. See details in guessnet-ifupdown(8).
Nota
When multiple guessnet option lines are required in "/etc/ network/interfaces", use option lines started with guessnet1, guessnet2, and so on, since the ifupdown package does not allow starting strings of option lines to be repeated.
Iproute2 commands offer complete low-level network configuration capabilities. Here is a translation table from obsolete net-tools commands to new iproute2 etc. commands.
Tabela 5.15. Tabela de traduo dos comandos obsoletos net-tools para os novos comandos iproute2
ferramentas de novo
etc.
Voc pode usar comandos de rede de baixo nvel como se segue em segurana pois eles no mudam a configurao de rede.
comando descrio
endereos numricos
"yahoo.com"
"yahoo.com" (repetidamente)
"exemplo.com"
Dica
Some of these low level network configuration tools reside in "/ sbin/". You may need to issue full command path such as "/sbin/ ifconfig" or add "/sbin" to the "$PATH" list in your "~ /.bashrc".
A optimizao de rede genrica est para alm do objectivo desta documentao. Eu apenas toco em assuntos pertinentes s ligaes de grau de consumidor.
iftop * I:7 72
rede
iperf * V:0.5, 200 ferramenta de medio da largura de I:3 banda do Protocolo Internet
bmon * V:0.2, 188 monitor de largura de banda portvel I:0.9 e estimador de taxas
transferncia efectiva de um
dispositivo de rede
emprica estocstica
bwm-ng * V:0.2, 152 monitor de largura de banda pequeno I:1.2 e simples baseado em consola
baseado em consola
experimentally with ping(8) with "-M do" option which sends ICMP packets with data size starting from 1500 (with offset of 28 bytes for the IP+ICMP header) and finding the largest size without IP fragmentation.
$ ping -c 1 -s $((1500-28)) -M do www.debian.org PING www.debian.org (194.109.137.218) 1472(1500) bytes of data. From 192.168.11.2 icmp_seq=1 Frag needed and DF set (mtu = 1454)
This process is Path MTU (PMTU) discovery (RFC1191) and the tracepath(8) command can automate this.
Dica
The above example with PMTU value of 1454 is for my previous FTTP provider which used Asynchronous Transfer Mode (ATM) as its backbone network and served its clients with the PPPoE. The actual PMTU value depends on your environment, e.g., 1500 for the my new FTTP provider.
Ligao Ethernet 1492 (= (IP: PPPoE) 1500-8) 2 bytes para o cabealho PPP e 6 bytes para o
cabealho PPPoE
backbone: ATM, IP: 48*31-18-8) for Ethernet header, 8 for DHCP or fixed) SAR trailer
Any use of tunneling methods (VPN etc.) may reduce optimal MTU further by their overheads. O valor MTU no deve exceder o valor PMTU determinado experimentalmente. O maior valor MTU geralmente melhor quando so conhecidas outras limitaes.
Aqui esto exemplos para definir o valor MTU desde a sua predefinio 1500 at 1454.
For the DHCP (see Seco 5.5.4, A interface de rede servida por DHCP), you can replace pertinent iface stanza lines in the "/ etc/network/interfaces" with the following.
iface eth0 inet dhcp hostname "minhamaquina" pre-up /sbin/ifconfig $IFACE mtu 1454
For the static IP (see Seco 5.5.5, A interface de rede com IP esttico), you can replace pertinent 'iface' stanza lines in
iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 broadcast 192.168.11.255 gateway 192.168.11.1 mtu 1454 dns-domain lan dns-nameservers 192.168.11.1
Para o PPPoE directo (veja Seco 5.4.5, A ligao PPPoE com o pppoeconf), voc pode substituir a linha "mtu" pertinente no "/ etc/ppp/peers/dsl-provider" com o seguinte.
mtu 1454
O tamanho de segmento mximo (MSS) usado como uma alternativa ao tamanho do pacote. As relaes entre MSS e MTU so as seguintes.
Nota
The iptables(8) (see Seco 5.9, Infraestrutura do netfilter) based optimization can clamp packet size by the MSS and is useful for the router. See "TCPMSS" in iptables(8).
The TCP throughput can be maximized by adjusting TCP buffer size parameters as described in "TCP Tuning Guide" and "TCP tuning" for the modern high-bandwidth and high-latency WAN. So far, the current Debian default settings serve well even for my LAN connected by the fast 1G bps FTTP service.
Netfilter provides infrastructure for stateful firewall and network address translation (NAT) with Linux kernel modules (see Seco 3.5.12, A inicializao de mdulos do kernel).
I:99
I:0.9
shorewall-shellI:1.9 76 *
Main user space program of netfilter is iptables(8). You can manually configure netfilter interactively from shell, save its state with iptables-save(8), and restore it via init script with iptables-restore(8) upon system reboot.
Manual de Conceitos de Rede em Linux Manual do Packet Filtering em Linux 2.4 Como Fazer NAT em Linux 2.4
Dica
Apesar destes terem sido escritos para o Linux 2.4, ambos comando iptables(8) e funo de kernel netfilter aplicam-se ao Linux 2.6 actual.
Aps estabelecer a ligao de rede (veja Captulo 5, Configurao de rede), voc pode correr varias aplicaes de rede.
Existem muitos pacotes de exploradores web para aceder a contedos remotos com Hypertext Transfer Protocol (HTTP).
I:48
I:1.4 1776 , ,
substitudo pelo
Epiphany
I:15
links *
Voc poder ser capaz de usar os seguintes strings especiais de URL para alguns exploradores para confirmar as suas definies.
Debian offers many free browser plugin packages in the main archive area which can handle not only Java (software platform) and Flash but also MPEG, MPEG2, MPEG4, DivX, Windows Media Video (.wmv), QuickTime (.mov), MP3 (.mp3), Ogg/Vorbis files, DVDs, VCDs, etc. Debian also offers helper programs to install non-free browser plugin packages as contrib or non-free archive area.
plugin de Java
baseado no Gnash
Ajudante de
flashplugin-nonfree V:1.3, *
Plugin de
V:3,
multimdia
Plugin de multimdia
totem-mozilla *
I:34
Plugin de
MPlayer (GNOME)
V:1.8,
Dica
Although use of above Debian packages are much easier, browser plugins can be still manually enabled by installing "*.so" into plugin directories (e.g., "/usr/lib/iceweasel/plugins/") and restarting browsers.
Some web sites refuse to be connected based on the user-agent string of your browser. You can work around this situation by spoofing the user-agent string. For example, you can do this by adding following line into user configuration files such as "~ /.gnome2/epiphany/mozilla/epiphany/user.js" or "~/.mozilla/ firefox/*.default/user.js".
Alternativamente, voc pode adicionar ou reiniciar esta varivel ao escrever "about:config" no URL e clicar com o boto direito no contedo mostrado.
Cuidado
Spoofed user-agent string may cause bad side effects with Java.
Cuidado
Se voc est a configurar um servidor de mail para trocar mail directamente com a Internet, dever fazer melhor do que ler esta documentao elementar.
Nota
Os exemplos seguintes de configurao so vlidos apenas para a estao de trabalho mvel tpica em ligaes de consumidor de Internet.
De modo a conter problemas de spam (correio no desejado nem solicitado), muitos ISPs que disponibilizam as ligaes Internet dos consumidores, esto a implementar contra medidas.
O servio smarthost para os seus clientes enviarem mensagens usa o porto submisso de mensagem (587) especificado em rfc4409 com a palavra-passe (servio SMTP AUTH) especificada em rfc4954. As ligaes SMTP no porto 25 a partir das suas mquinas de rede internas (excepto o servidor de sada de mail do prprio ISP) para a Internet esto bloqueadas. As ligaes SMTP no porto 25 ao servidor de mail chegado do ISP a partir de algumas mquinas de redes externas suspeitas esto bloqueadas. (As ligaes a partir de mquinas na gama de endereos IP dinmicos usados pelo dial-up e outras ligaes de consumidores de Internet so as primeiras a serem bloqueadas.)
Quando configurar o seu sistema de mail ou resolver problemas de entrega de mail, voc deve considerar estas novas limitaes.
In light of these hostile Internet situation and limitations, some independent Internet mail ISPs such as Yahoo.com and Gmail.com offer the secure mail service which can be connected from anywhere on the Internet using Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL).
The smarthost service for their customers to send message uses the SMTP/SSL port (465) or the message submission port (587) with the password (SMTP AUTH service). O mail de chegada est acessvel no porto 995 TLS/POP3 com POP3.
Cuidado
It is not realistic to run SMTP server on consumer grade network to send mail directly to the remote host reliably. They are very likely to be rejected. You must use some smarthost services offered by your connection ISP or independent mail ISPs. For the simplicity, I assume that the smarthost is located at "smtp.hostname.dom", requires SMTP AUTH, and uses the message submission port (587) in the following text.
The most simple mail configuration is that the mail is sent to the ISP's smarthost and received from ISP's POP3 server by the MUA (see Seco 6.4, Agente utilizador de mail (MUA)) itself. This type of configuration is popular with full featured GUI based MUA such as icedove(1), evolution(1), etc. If you need to filter mail by their types, you use MUA's filtering function. For this case, the local MTA (see Seco 6.3, Agente de transporte de mail (MTA)) need to do local delivery only.
The alternative mail configuration is that the mail is sent via local MTA to the ISP's smarthost and received from ISP's POP3 by the mail retriever (see Seco 6.5, O adquiridor de mail remoto e utilitrio de reencaminhamento) to the local mailbox. If you need to filter mail by their types, you use MDA with filter (see Seco 6.6, Agente de entrega de mail (MDA) com filtro) to filter mail into separate mailboxes. This type of configuration is popular with simple console based MUA such as mutt(1), gnus (1), etc., although this is possible with any MUAs (see Seco 6.4, Agente utilizador de mail (MUA)). For this case, the local MTA (see Seco 6.3, Agente de transporte de mail (MTA)) need to do both smarthost delivery and local delivery. Since mobile workstation does not have valid FQDN, you must configure the local MTA to hide and spoof the real local mail name in outgoing mail to avoid mail delivery errors (see Seco 6.3.3, A configurao do endereo de mail).
Dica
Para uma estao de trabalho normal, a escolha popular para Agente de Transporte de Mail (MTA) ou o pacote exim4-* ou o postfix. A escolha sua.
Tabela 6.3. Lista de pacotes bsicos relacionados com agente de transporte de mail para estao de trabalho
pacote popcontamanhodescrio
I:68
exim4-doc-html * I:0.6 3440 Documentao do Exim4 (html) exim4-doc-info * I:0.3 556 Documentao do Exim4 (info)
postfix * V:18, 3492 Agente de transporte de mail I:20 Postfix (MTA: alternativo)
sasl2-bin *
Although the popcon vote count of exim4-* looks several times popular than that of postfix, this does not mean postfix is not popular with Debian developers. The Debian server system uses both exim4 and postfix. The mail header analysis of mailing list postings from prominent Debian developers also indicate both of these MTAs are as popular.
The exim4-* packages are known to have very small memory consumption and very flexible for its configuration. The postfix package is known to be compact, fast, simple, and secure. Both
come with ample documentation and are as good in quality and license.
Existem muitas escolhas para pacotes de agente de transporte de mail (MTA) com capacidades e objectivos diferentes no arquivo Debian.
Tabela 6.4. Lista de escolhas para pacotes de agente de transporte de mail (MTA) no arquivo Debian.
I:0.8
I:0.15
I:0.05
esmtp-run *
I:0.11 64
compatibilidade do sendmail
para esmtp)
msmtp-mta *
I:0.15 32
compatibilidade do sendmail
para msmtp)
Para mail de Internet com smarthost, voc (re)configura o pacote exim4-* como o seguinte.
Select "mail sent by smarthost; received via SMTP or fetchmail" for "General type of mail configuration".
Set "System mail name:" to its default as the FQDN (see Seco 5.1.2, A resoluo de nome de mquina).
Set "IP-addresses to listen on for incoming SMTP connections:" to its default as "127.0.0.1 ; ::1".
Select "<No>" for "Hide local mail name in outgoing mail?". (Use "/etc/email-addresses" as in Seco 6.3.3, A configurao do endereo de mail, instead.)
"No" se o sistema est ligado Internet enquanto arranca. "Sim" se o sistema no est ligado Internet enquanto arranca.
Defina o "Mtodo de entrega para mail local:" para "formato mbox em /var/mail".
o nome de mquina em "/etc/exim4/passwd.client" no deve ser o alias. Voc verifica o nome de mquina real com o seguinte.
$ host smtp.hostname.dom smtp.hostname.dom um alias para smtp99.hostname.dom. smtp99.hostname.dom possui o endereo 123.234.123.89
Eu uso expresses regulares em "/etc/exim4/passwd.client" para contornar o problema do alias. Provavelmente o SMTP AUTH funciona mesmo que o ISP mova a mquina apontada pelo alias.
Cuidado
Voc tem de executar update-exim4.conf(8) aps actualizar manualmente os ficheiros de configurao do exim4 em "/etc/exim4 /".
Cuidado
Starting exim4 takes long time if "No" (default value) was chosen for the debconf query of "Keep number of DNS-queries minimal (Dial-on-Demand)?" and the system is not connected to the Internet while booting.
Nota
Dica
O ficheiro de personalizao local "/etc/exim4/ exim4.conf.localmacros" pode ser criado para definir MACROs. Por exemplo, o servio de mail do Yahoo diz-se requerer "MAIN_TLS_ENABLE = true" e "AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS = yes" nele.
Dica
If you are looking for a light weight MTA that respects "/etc/ aliases" for your laptop PC, you should consider to configure exim4(8) with "QUEUERUNNER='queueonly'", "QUEUERUNNER= 'nodaemon'", etc. in "/etc/default/exim4".
For the Internet mail via smarthost, you should first read postfix documentation and key manual pages.
comando funo
Defina "SMTP relay host (blank for none):" para " [smtp.hostname.dom]:587" e configure-o como o seguinte.
$ sudo postconf -e 'smtp_sender_dependent_authentication = yes' $ sudo postconf -e 'smtp_sasl_auth_enable = yes' $ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd' $ sudo postconf -e 'smtp_sasl_type = cyrus' $ sudo vim /etc/postfix/sasl_passwd
Here the use of "[" and "]" in the dpkg-reconfigure dialog and " /etc/postfix/sasl_passwd" ensures not to check MX record but directly use exact hostname specified. See "Enabling SASL authentication in the Postfix SMTP client" in "usr/share/doc/ postfix/html/SASL_README.html".
nome de mquina
mail recebido
O mailname no ficheiro "/etc/mailname" normalmente um nome de domnio totalmente qualificado (FQDN) que resolve para um dos endereos IP do anfitrio. Para a estao de trabalho mvel que no tem um nome de mquina com endereo IP resolvvel, regule este mailname para o valor de "hostname -f". (Esta uma escolha segura e funciona para ambos exim4-* e postfix.)
Dica
O contedo de "/etc/mailname" usado por muitos programas no-MTA para o seu comportamento predefinido. Para o mutt, defina as variveis "hostname" e "from" no ficheiro ~/muttrc para sobrepor o valor mailname. Para programas no pacote devscripts, como o bts(1) e dch(1), exporte as variveis de ambiente "$DEBFULLNAME" e "$DEBEMAIL" para o sobrepor.
Dica
The popularity-contest package normally send mail from root account with FQDN. You need to set MAILFROM in /etc/ popularity-contest.conf as described in the /usr/share/ popularity-contest/default.conf file. Otherwise, your mail will be rejected by the smarthost SMTP server. Although this is tedious, this approach is safer than rewriting the source
address for all mails from root by MTA and should be used for other daemons and cron scripts.
Ao definir o mailname para "hostname -f", o spoofing do endereo de mail da fonte via MTA pode ser realizado com o seguinte.
ficheiro "/etc/email-addresses" para exim4(8) como explicado em exim4-config_files(5) ficheiro "/etc/postfix/generic" para postfix(1) como explicado no generic(5)
exim(8) com as opes -brw, -bf, -bF, -bV, postmap(1) com a opo -q
Dica
O exim vem com vrios programas utilitrios como o exiqgrep(8) e exipick(8). Veja "dpkg -L exim4-base|grep man8/" para os comandos disponveis.
Existem vrias operaes MTA bsicas. Algumas podem ser executadas via interface de compatibilidade do sendmail(1).
mailq lista a lista de espera de mail com estado e ID de lista de espera (-bp)
mailq
postsuper -r ALL
exim4 -Mg postsuper -h queue_id queue_id congela uma mensagem pelo seu ID de lista de espera
de lista de espera
Dica
Poder ser uma boa ideia enxaguar todos os mails por um script em "/etc/ppp/ip-up.d/*".
If you subscribe to Debian related mailing list, it may be a good idea to use such MUA as mutt and gnus which are the de
icedove *V:8, 38864 Programa GUI X (sem marca Mozilla I:12 Thunderbird)
mutt * V:26, 6004 programa de terminal de caracteres I:83 provavelmente usado com o vim
Personalize "~/.muttrc" como se segue para usar o mutt como agente de utilizador de mail (MUA) em combinao com o vim.
# # User configuration file to override /etc/Muttrc # # spoof source mail address set use_from set hostname=example.dom set from="Name Surname <[email protected]>" set signature="~/.signature"
# "mutt" goes to Inbox, while "mutt -y" lists mailboxes set mbox_type=Maildir set mbox=~/Mail set spoolfile=+Inbox set record=+Outbox # use qmail Maildir format for creating mbox # keep all mail boxes in $HOME/Mail/ # mail delivered to $HOME/Mail/Inbox # save fcc mail to $HOME/Mail/Outbox # keep postponed in $HOME/Mail/postponed
set postponed=+Postponed set move=no set quit=ask-yes set delete=yes set fcc_clear
# do not move Inbox items to mbox # do not quit by "q" only # always delete w/o asking while exiting # store fcc as non encrypted
# Mailboxes in Maildir (automatic update) mailboxes `cd ~/Mail; /bin/ls -1|sed -e 's/^/+/' | tr "\n" " "` unmailboxes Maillog *.ev-summary
## Default #set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s" ## Thread index with senders (collapse) set index_format="%4C %Z %{%b %d} %-15.15n %?M?(#%03M)&(%4l)? %s"
## Default #set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f" ## just folder names set folder_format="%2C %t %N %f"
Adicione o seguinte ao "/etc/mailcap" or "~/.mailcap" para mostrar mail em HTML e anexos do MS Word 'inline'.
text/html; lynx -force_html %s; needsterminal; application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
Dica
O Mutt pode ser usado como o cliente IMAP e o conversor de formato de mailbox. Voc pode etiquetar as mensagens com "t", "T", etc. Estas mensagens etiquetadas podem ser copiadas com "; C" entre diferentes mailboxes e apagadas com ";d" numa aco nica.
Apesar do fetchmail(1) ter sido o standard de facto para adquiridor de mail remoto em GNU/Linux, o autor agora gosta do getmail(1). Se voc deseja rejeitar mail antes de o descarregar para poupar largura de banda, o mailfilter ou o mpop podem ser teis. Independentemente de quais utilitrios de adquirir mails sejam usados, boa ideia configurar o sistema para entregar os mails adquiridos a um MDA, como o maildrop, via pipe.
fetchmail V:2, 2588 adquiridor de mail (POP3, APOP, * I:5 IMAP) (antigo)
mpop * V:0.01,324 adquiridor de mail (POP3) e MDA com I:0.08 capacidade de filtragem
A configurao do getmail(1) est descrita em documentao do getmail.Aqui esto as minhas definies para aceder a mltiplas contas POP3 como utilizador.
#!/bin/sh set -e if [ -f $HOME/.getmail/running ]; then echo "getmail j est a correr ... (se no, remova $HOME/.getmail/running)" >&2 pgrep -l "getmai[l]" exit 1 else echo "getmail no est a correr ... " >&2 fi if [ -f $HOME/.getmail/stop ]; then echo "no correr o getmail ... (se no, remova $HOME/.getmail/stop)" >&2
exit fi if [ "x$1" = "x-l" ]; then exit fi rcfiles="/usr/bin/getmail" for file in $HOME/.getmail/config/* ; do rcfiles="$rcfiles --rcfile $file" done date -u > $HOME/.getmail/running eval "$rcfiles $@" rm $HOME/.getmail/running
$ sudo chmod 755 /usr/local/bin/getmails $ mkdir -m 0700 $HOME/.getmail $ mkdir -m 0700 $HOME/.getmail/config $ mkdir -m 0700 $HOME/.getmail/log
Crie ficheiros de configurao "$HOME/.getmail/config/pop3_name" para cada conta POP3 como o seguinte.
Agenda o "/usr/local/bin/getmails" para correr a cada 15 minutos com o cron(8) ao executar "sudo crontab -e -u <nome_de_utilizador>" e adicionando o seguinte entrada cron do utilizador.
Dica
Problems of POP3 access may not come from getmail. Some popular free POP3 services may be violating the POP3 protocol and their SPAM filter may not be perfect. For example, they may delete messages just after receiving RETR command before receiving DELE command and may quarantined messages into Spam mailbox. You
should minimize damages by configuring them to archive accessed messages and not to delete them. See also "Some mail was not downloaded".
fetchmail(1) configuration is set by "/etc/default/fetchmail", " /etc/fetchmailrc" and "$HOME/.fetchmailrc". See its example in " /usr/share/doc/fetchmail/examples/fetchmailrc.example".
A maioria dos programas MTA, como o postfix e exim4, funcionam como MDA (mail delivery agent). Eles so MDAs especializados com capacidades de filtragem.
Although procmail(1) has been de facto standard for MDA with filter on GNU/Linux, author likes maildrop(1) now. Whichever filtering utilities are used, it is good idea to configure system to deliver filtered mails to a qmail-style Maildir.
A configurao do maildrop(1) est descrita em documentao do maildropfilter. Aqui est um exemplo de configurao para "$HOME /.mailfilter".
# Local configuration MAILROOT="$HOME/Mail" # set this to /etc/mailname contents MAILHOST="example.dom" logfile $HOME/.maildroplog
# rules are made to override the earlier value by the later one.
{ # rules for mailing list mails # default mailbox for mails from mailing list MAILBOX="Inbox-list" # default mailbox for mails from debian.org if ( /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ) { MAILBOX="service.debian.org" } # default mailbox for mails from bugs.debian.org (BTS) if ( /^(Sender|Resent-From|Resent-sender): .*@bugs.debian.org/:h ) { MAILBOX="bugs.debian.org" } # mailbox for each properly maintained mailing list with "List-Id: foo" or "ListId: ...<foo.bar>" if ( /^List-Id: ([^<]*<)?([^<>]*)>?/:h ) { MAILBOX="$MATCH2" } } else { # rules for non-mailing list mails # default incoming box MAILBOX="Inbox-unusual" # local mails if ( /Envelope-to: .*@$MAILHOST/:h ) {
MAILBOX="Inbox-local" } # html mails (99% spams) if ( /DOCTYPE html/:b ||\ /^Content-Type: text\/html/ ) { MAILBOX="Inbox-html" } # blacklist rule for spams if ( /^X-Advertisement/:h ||\ /^Subject:.*BUSINESS PROPOSAL/:h ||\ /^Subject:.*URGENT.*ASISSTANCE/:h ||\ /^Subject: *I NEED YOUR ASSISTANCE/:h ) { MAILBOX="Inbox-trash" } # whitelist rule for normal mails if ( /^From: .*@debian.org/:h ||\ /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ||\ /^Subject: .*(debian|bug|PATCH)/:h ) { MAILBOX="Inbox" } # whiltelist rule for BTS related mails if ( /^Subject: .*Bug#.*/:h ||\ /^(To|Cc): .*@bugs.debian.org/:h ) { MAILBOX="bugs.debian.org" }
# whitelist rule for getmails cron mails if ( /^Subject: Cron .*getmails/:h ) { MAILBOX="Inbox-getmails" } }
# check existance of $MAILBOX `test -d $MAILROOT/$MAILBOX` if ( $RETURNCODE == 1 ) { # create maildir mailbox for $MAILBOX `maildirmake $MAILROOT/$MAILBOX` } # deliver to maildir $MAILBOX to "$MAILROOT/$MAILBOX/" exit
Ateno
Ao contrrio do procmail, o maildrop no cria automaticamente os directrios maildir em falta. Voc tem de os criar manualmente com antecedncia usando o maildirmake(1) como no exemplo "$HOME /.mailfilter".
MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/Inbox/ LOGFILE=$MAILDIR/Maillog # sem dvida mails com mau aspecto: despeja-os no lixo e termina :0 * 1^0 ^X-Advertisement * 1^0 ^Subject:.*BUSINESS PROPOSAL * 1^0 ^Subject:.*URGENT.*ASISSTANCE * 1^0 ^Subject: *I NEED YOUR ASSISTANCE X-trash/
# Entrega de mensagens da lista de mail :0 * 1^0 ^Precedence:.*list * 1^0 ^Precedence:.*bulk * 1^0 ^List* 1^0 ^X-Distribution:.*bulk { :0 * 1^0 ^Return-path:.*[email protected] jp-debian-devel/
:0 * ^Resent-Sender.*[email protected] debian-user/
:0 * ^Resent-Sender.*[email protected]
debian-devel/
:0 * ^Resent-Sender.*[email protected] debian-announce
:0 mailing-list/ }
:0 Inbox/
Voc precisa de entregar manualmente os mails s caixas de correio organizadas no seu directrio home a partir de "/var/ mail/<nome_de_utilizador>" se o seu directrio home ficar cheio e o procmail(1) falhar. Aps regular o espao do disco no directrio home, corra o seguinte.
Se voc vai correr um servidor privado numa LAN, deve considerar correr um servidor POP3 / IMAP4 para entregar mail aos clientes
da LAN.
I:4
uw-imapd *
No antigo sistema tipo Unix, o Line printer daemon do BSD era o standard. Como o formato de impresso standard do software livre o PostScript nos sistemas tipo Unix, um sistema de filtragem foi usado juntamente com o Ghostscript para activar a impresso em impressoras no-PostScript.
Recentemente, o Common UNIX Printing System (CUPS) o novo standard de facto. O CUPS usa Internet Printing Protocol (IPP). O IPP agora suportado por outros SOs como o Windows XP e o Mac OS X e tornou-se no novo standard de facto para vrias
O formato de dados de impresso standard para a aplicao no sistema Debian o PostScript (PS) o qual uma linguagem de descrio de pgina. Os dados em formato PS so fornecidos ao interpretador de PostScript Ghostscript para produzir os dados de impresso especficos da impressora. Veja Seco 11.3.1, Ghostscript.
Graas funcionalidade de auto-converso dependente do formato de ficheiro do sistema CUPS, simplesmente fornecer quaisquer dados ao comando lpr dever gerar a sada de impresso esperada. (No CUPS, o lpr pode ser activado ao instalar o pacote cups-bsd.)
O sistema Debian tem alguns pacotes notveis para os servidores e utilitrios de impresso.
linha)
(Avanado)
V:17,
cups-client *
I:46 908 , ,
lpr(1), lpq
cups-driver-gutenprintV:12, * No Drivers de
Dica
Voc pode configurar o sistema CUPS ao apontar o seu explorador web para "http://localhost:631/" .
O Secure SHell (SSH) o modo seguro de efectuar ligaes na Internet. Uma verso livre do SSH chamada OpenSSH est disponvel nos pacotes openssh-client e openssh-server em Debian.
openssh-client *
openssh-server *
ssh-askpass *
I:5
Cuidado
Veja Seco 4.7.3, Medidas de segurana extra para a Internet se o seu SSH for acessvel a partir da Internet.
Dica
Por favor use o programa screen(1) para activar a sobrevivncia do processo de shell remota interrupo da ligao (veja Seco 9.1, O programa screen).
Ateno
descrio
SSH-1 "RSAAuthentication"
em chave de
identificao RSA
, , autenticao baseada em
"RhostsAuthentication"
".rhosts"
(insegura, desactivada)
"RhostsRSAAuthentication"
combinada com
, , autenticao
"ChallengeResponseAuthentication"challenge-response RSA
, , autenticao
"PasswordAuthentication"
baseada em
palavra-passe
SSH-2 "PubkeyAuthentication"
em chave pblica
"HostbasedAuthentication"
, , "ChallengeResponseAuthentication"autenticao challenge-response
, , autenticao
"PasswordAuthentication"
baseada em
palavra-passe
Cuidado
Tenha cuidado com estas diferenas se voc no estiver a usar um sistema Debian.
sshd_config (5)
Dica
Veja ssh-keygen(1), ssh-add(1) e ssh-agent(1) para como usar chaves SSH secretas e pblicas.
Dica
Certifique-se de verificar as configuraes ao testar a ligao. Em caso de problemas, use "ssh -v".
Dica
Voc pode mudar a frase-passe para encriptar chaves SSH secretas locais mais tarde com "ssh-keygen -p".
Dica
Voc pode adicionar opes s entradas em "~/.ssh/ authorized_keys" para limitar mquinas e correr comandos especficos. Veja sshd(8) para mais detalhes.
comando descrio
[email protected] verso 1
If you use the same user name on the local and the remote host, you can eliminate typing "username@". Even if you use different user name on the local and the remote host, you can eliminate it using "~/.ssh/config". For Debian Alioth service with account name "foo-guest", you set "~/.ssh/config" to contain the following.
For the user, ssh(1) functions as a smarter and more secure telnet(1). Unlike telnet command, ssh command does not bomb on the telnet escape character (initial default CTRL-]).
To establish a pipe to connect to port 25 of remote-server from port 4025 of localhost, and to port 110 of remote-server from port 4110 of localhost through ssh, execute on the local host as the following.
This is a secure way to make connections to SMTP/POP3 servers over the Internet. Set the "AllowTcpForwarding" entry to "yes" in "/etc/ssh/sshd_config" of the remote host.
One can avoid having to remember passwords for remote systems by using "RSAAuthentication" (SSH-1 protocol) or "PubkeyAuthentication" (SSH-2 protocol).
On the remote system, set the respective entries, "RSAAuthentication yes" or "PubkeyAuthentication yes", in "/etc/ ssh/sshd_config".
Crie chaves de autenticao localmente e instale a chave pblica no sistema remoto como o seguinte.
Dica
Use of DSA key for SSH-2 is deprecated because key is smaller and slow. There are no more reasons to work around RSA patent using DSA since it has been expired. DSA stands for Digital Signature Algorithm and slow. Also see DSA-1571-1.
Nota
For "HostbasedAuthentication" to work in SSH-2, you must adjust the settings of "HostbasedAuthentication" to "yes" in both "/etc /ssh/sshd_config" on the server host and "/etc/ssh/ssh_config" or "~/.ssh/config" on the client host.
~sgtatham/putty/) (GPL)
mais seguro proteger as suas chaves secretas de autenticao SSH com uma frase-passe. Se nenhuma frase-passe foi definida, use "ssh-keygen -p" para a definir.
Coloque a sua chave SSH pblica (ex. "~/.ssh/id_rsa.pub") em "~ /.ssh/authorized_keys" numa mquina remota usando uma ligao mquina remota baseada em palavra-passe como descrito em cima.
$ ssh-agent bash $ ssh-add ~/.ssh/id_rsa Insira frase-passe para /home/<nome_de_utilizador>/.ssh/id_rsa: Identidade adicionada: /home/<nome_de_utilizador>/.ssh/id_rsa (/home/<nome_de_utilizador>/.ssh/id_rsa)
For the X server, the normal Debian startup script executes ssh-agent as the parent process. So you only need to execute ssh-add once. For more, read ssh-agent(1)and ssh-add(1).
You need to protect the process doing "shutdown -h now" (see Seco 1.1.8, Como desligar o sistema) from the termination of
SSH using the at(1) command (see Seco 9.5.13, Scheduling tasks once) by the following.
Correr "shutdown -h now" numa sesso do screen(1) (veja Seco 9.1, O programa screen) outro modo de fazer o mesmo.
Se estiver com problemas, verifique as permisses dos ficheiros de configurao e corra o ssh com a opo "-v".
Use a opo "-P" se voc for o root e esteja a ter problemas com a firewall; isto evita o uso dos portos de servidor 1 -- 1023.
If ssh connections to a remote site suddenly stop working, it may be the result of tinkering by the sysadmin, most likely a change in "host_key" during system maintenance. After making sure this is the case and nobody is trying to fake the remote host by some clever hack, one can regain a connection by removing the "host_key" entry from "~/.ssh/known_hosts" on the local host.
I:0.3
impressoras do Windows
V:5,
impressoras do
Apple/Mac (AppleTalk)
ficheiros geral
web geral
outras mquinas
I:10
prprio cliente
Common Internet File System Protocol (CIFS) o mesmo protocolo que Server Message Block (SMB) e bastante usado pelo Microsoft Windows.
Dica
Use of proxy server such as squid is much more efficient for saving bandwidth than use of local mirror server with the full Debian archive contents.
pacote
popcontamanhoprotocolodescrio
V:56,
ferramentas
criptogrficas relacionadas
ficheiros e impressoras
do MS Windows
smbfs *
I:24 56
remotos do MS Windows
I:7
completo
I:99
I:91
"Prioridade: standard"
"Prioridade: standard"
servidor LDAP
O programa telnet activa ligao manual aos daemons do sistema e aos seus diagnsticos.
Para testar o servio POP3 com TLS/SSL activo de alguns ISPs, voc precisa do cliente telnet com TLS/SSL activo pelos pacotes telnet-ssl or openssl.
RFC descrio
O Sistema X Window no sistema Debian baseado na fonte do X.Org . At Julho de 2009, eles so X11R7.1(etch), X11R7.3(lenny), X11R7.3(squeeze) e X11R7.4(sid).
(meta)pacote popcontamanhodescrio
xorg *
bibliotecas do X, um servidor X, um
I:43 80
xserver-xorg *
I:47
x11-common *
I:92
menu *
I:47 76
V:16,
integrar o ambiente
GNOME standard
(meta-pacote)
ncleo do ambiente de
kde-standard *
I:3 36
trabalho KDE
(metapacote)
I:4 40
(meta-pacote)
I:2 36
trabalho leve
(meta-pacote)
V:0.9,
Voc pode configurar um ambiente de trabalho completo como o GNOME, KDE, Xfce, ou LXDE, a partir do aptitude sob o menu de tarefas.
Dica
Task menu may be out of sync with the latest package transition state under Debian unstable/testing environment. In such situation, you need to deselect some (meta)packages listed under aptitude(8) task menu to avoid package conflicts. When deselecting (meta)packages, you must select certain packages providing their dependencies manually to avoid them deleted automatically.
You may alternatively setup a simple environment manually just with a X window manager such as Fluxbox.
Veja Window Managers for X para o guia do gestor do X window e do ambiente de trabalho.
Debian menu system provides a general interface for both textand X-oriented programs with update-menus(1) from the menu package. Each package installs its menu data in the "/usr/share/ menu/" directory. See "/usr/share/menu/README".
Each package which is compliant to Freedesktop.org's xdg menu system installs its menu data provided by "*.desktop" under "/ usr/share/applications/". Modern desktop environments which are compliant to Freedesktop.org standard use these data to generate their menu using the xdg-utils package. See "/usr/share/doc/ xdg-utils/README".
In order to obtain access to the traditional Debian menu under GNOME desktop environment, you must install the menu-xdg package, click "System" "Preference" "Main Menu", and check the box for "Debian".
Dica
Voc pode precisar de fazer semelhante para outros ambientes de desktop modernos que so compatveis com o standard Freedesktop.org.
The X Window System is activated as a combination of the server and client programs. The meaning for the words server and client with respect to the words local and remote requires attention here.
tipo descrio
Servidor Xum programa que corre numa mquina local ligado ao mostrador e dispositivos de entrada do utilizador.
cliente X um programa que corre numa mquina remota que processa dados e fala com o servidor X.
aplicao um programa que corre numa mquina remota que servidor processa dados e fala com os clientes.
aplicao um programa que corre numa mquina local ligado ao cliente mostrador e dispositivos de entrada do utilizador.
7.4. O servidor X
Nota
X server (post-lenny) is rewritten to use more information from standardized OS services such as HAL and D-bus, for its configuration than that from "/etc/X11/xorg.conf". So contents in "/etc/X11/xorg.conf" are getting less. You may need to work around transitional problems of X server.
Se editou manualmente este ficheiro "/etc/X11/xorg.conf" mas deseja que ele seja actualizado automaticamente outra vez, corra o seguinte comando.
Please check your X configuration with respect to the specification of your monitor carefully. For the large high resolution CRT monitor, it is a good idea to set the refresh rate as high as your monitor can handle (85 Hz is great, 75 Hz is OK) to reduce flicker. For the LCD monitor, slower standard refresh rate (60Hz) is usually fine due to its slow response.
Nota
Tenha cuidado para no usar uma taxa de refrescamento muito alta que possa causar falha fatal do hardware do seu monitor.
Existem vrias maneiras de fazer um "servidor X" (lado do monitor) aceitar ligaes de um "cliente X" (lado da aplicao).
remota
WindowMaker
pipe
V:0.02,
Ateno
Do not use remote TCP/IP connection over unsecured network for X connection unless you have very good reason such as use of encryption. A remote TCP/IP socket connection without encryption is prone to the eavesdropping attack and is disabled by default on the Debian system. Use "ssh -X".
Ateno
Do not use XDMCP connection over unsecured network either. It sends data via UDP/IP without encryption and is prone to the eavesdropping attack.
Dica
You can dare to enable remote TCP/IP connection by setting "DisallowTCP=false" in "/etc/gdm/gdm.conf" to override "/usr/ share/gdm/defaults.conf" and by removing "-nolisten" from lines found by "find /etc/X11 -type f -print0 | xargs -0 grep nolisten", if you are in the fully secured environment.
Dica
The X Window System is usually started as an X session which is the combination of an X server and connecting X clients. For the normal desktop system, both of them are executed on a workstation.
comando startx iniciado a partir da linha de comandos One of the X display manager daemon programs *dm started from the end of the start up script in "/etc/rc?.d/" ("?" corresponding to the runlevel) directory
Dica
The start up script for the display manager daemons checks the content of the "/etc/X11/default-display-manager" file before actually executing themselves. This ensures to have only one X
Dica
Veja Seco 8.3.5, O locale especfico apenas sob X Window para as variveis de ambiente iniciais do gestor de cran X.
Essentially, all these programs execute the "/etc/X11/Xsession" script. Then the "/etc/X11/Xsession" script performs run-parts (8) like action to execute scripts in the "/etc/X11/Xsession.d/" directory. This is essentially an execution of a first program which is found in the following order with the exec builtin command.
1. O script especificado como o argumento de /etc/X11/Xsession" pelo gestor de display X, se estiver definido. 2. O script "~/.xsession" ou "~/.Xsession", se estiver definido. 3. O comando "/usr/bin/x-session-manager", se estiver definido. 4. O comando "/usr/bin/x-window-manager". se estiver definido. 5. O comando "/usr/bin/x-terminal-emulator", se estiver definido.
This process is affected by the content of "/etc/X11/ Xsession.options". The exact programs to which these "/usr/bin/ x-*" commands point, are determined by the Debian alternative system and changed by "update-alternatives --config x-session-manager", etc.
gdm(1) lets you select the session type (or desktop environment: Seco 7.2, Definir o ambiente de trabalho), and language (or locale: Seco 8.3, O locale) of the X session from its menu. It keeps the selected default value in "~/.dmrc" as the following.
On a system where "/etc/X11/Xsession.options" contains a line "allow-user-xsession" without preceding "#" characters, any user who defines "~/.xsession" or "~/.Xsession" is able to customize the action of "/etc/X11/Xsession" by completely overriding the system code. The last command in the "~/.xsession" file should use form of "exec some-window/session-manager" to start your favorite X window/session managers.
Aqui esto alguns mtodos de personalizar a sesso X sem sobrepor completamente o cdigo do sistema como em cima.
O gestor de cran gdm pode seleccionar uma sesso especfica e defini-la como o argumento de "/etc/X11/Xsession".
O ficheiro "~/.xsessionrc" executado como parte do processo de arranque. (independente do ambiente de trabalho) O ficheiro "~/.gnomerc" executado como parte do processo de arranque. (apenas ambiente GNOME) O software de gesto de sesso baseado em GUI pode usar o ficheiro "~/.gnome2/session", etc.
A utilizao de "ssh -X" activa uma ligao segura de um servidor X local a um servidor de aplicaes remoto.
Set "X11Forwarding" entries to "yes" in "/etc/ssh/sshd_config" of the remote host, if you want to avoid "-X" command-line option.
Correr o ssh(1) para estabelecer ligao com um site remoto com o seguinte.
Este mtodo pode mostrar o resultado de um cliente X remoto como se ele estivesse ligado localmente atravs de um socket de domnio UNIX local.
Secure X terminal via the Internet, which displays remotely run entire X desktop environment, can easily achieved by using specialized package such as ldm. Your local machine becomes a secure thin client to the remote application server connected via SSH.
Se voc deseja adicionar uma funcionalidade semelhante ao seu gestor de cran gdm normal, crie um script de shell executvel em "/usr/local/bin/ssh-session" como o seguinte.
#!/bin/sh -e # Based on gdm-ssh-session in gdm source (GPL) ZENITY=$(type -p zenity) TARGETHOST=$($ZENITY --width=600 \ --title "Host to connect to" --entry \ --text "Enter the name of the host you want to log in to as [email protected]:") TARGETSESSION=$($ZENITY --width=600 --height=400 \ --title "Remote session name" --list --radiolist --text "Select one" \ --column " " --column "Session" --column "description" --print-column 2 \ TRUE "/etc/X11/Xsession" "Debian" \ FALSE "/etc/X11/xinit/Xclients" "RH variants" \
FALSE "gnome-session" "GNOME session" \ FALSE "xterm" "Safe choice" \ FALSE "rxvt" "Safe choice" \ FALSE "gnome-terminal" "Safe choice") echo "Connecting to "$TARGETHOST" with $TARGETSESSION" /usr/bin/ssh -A -X -T -n "$TARGETHOST" "$TARGETSESSION" #SSH_ASKPASS=/usr/bin/ssh-askpass /usr/bin/ssh -A -X -T -n "$TARGETHOST" "$TARGETSESSION"
[Desktop Entry] Encoding=UTF-8 Name=SSH Comment=Esta sesso regista-o numa mquina remota usando ssh Exec=/usr/local/bin/ssh-session Type=Application
Fontconfig 2.0 was created to provide a distribution independent library for configuring and customizing font access in 2002. Debian after squeeze uses Fontconfig 2.0 for its font configuration.
O sistema de font do ncleo original do X11 disponibiliza compatibilidade para trs para aplicaes cliente X de verses mais antigas. As fonts de ncleo original X11 esto instaladas no servidor X. Sistema de suporte a font de tamanho de cliente X moderno
Modern X system supports all fonts listed below ( Seco 7.6.1, Fonts (tipos de letra) bsicas, Seco 7.6.2, Fonts (tipos de letra) adicionais, and Seco 7.6.3, fonts CJK) with advanced features such as anti-aliasing. Xft 2.0 connects modern X applications such as ones from GNOME, KDE, and OpenOffice.org with FreeType 2.0 library. FreeType 2.0 disponibiliza uma biblioteca de rasterizao de fonts. Fontconfig disponibiliza resoluo da especificao de font para Xft 2.0. Veja fonts.conf(5) para a sua configurao. All modern X applications using Xft 2.0 can talk to modern X server using the X Rendering Extension. The X Rendering Extension moves font access and glyph image generation from the X server to the X client.
pacote popcontamanhodescrio
fontconfig *
I:73
"xset q" para caminho das fonts do ncleo do X11 "fc-match" para a font predefinida do fontconfig "fc-list" para fonts disponveis do fontconfig
Dica
"The Penguin and Unicode" is a good overview of modern X Window System. Other documentations at http://unifont.org/ should provide good information on Unicode fonts, Unicode-enabled software, internationalization, and Unicode usability issues on free/libre/open source (FLOSS) operating systems.
Fonts bitmap (boas para rasterizao de baixa resoluo) Fonts outline/stroke (boas para rasterizao de alta resoluo)
While scaling of bitmap fonts causes jugged image, scaling of outline/stroke fonts produces smooth image.
Bitmap fonts on the Debian system are usually provided by compressed X11 pcf bitmap font files having their file extension ".pcf.gz".
Ficheiros de font Type 1 PostScript tendo a sua extenso de ficheiro ".pfb" (ficheiro de font binrio) e ".afm" (ficheiro de font mtrica). Ficheiros font TrueType (ou OpenType) geralmente tendo a sua extenso de ficheiro ".ttf".
Dica
Nimbus URW
gsfonts * V:18, 4632 Nimbus Roman Nimbus Mono L (tamanho I:66 Sans L No9 L compatvel
com Adobe)
gsfonts-x11 *
Nimbus Nimbus
I:30 116 Sans L Roman Nimbus Mono Lfonts No9 L PostScript Type 1.
t1-cyrillic *
Free
I:1.9 5008 Helvetian Times Free Courier (tamanho compatvel com Adobe)
fonts
V:2,
monospace
Microsoft (tamanho
New
Liberation Fonts
ttf-liberation * I:43 1724 LiberationLiberationLiberation project (tamanho Sans Serif Mono compatvel com
Microsoft)
GNU freefont
ttf-freefont * ((tamanho
I:26
DejaVu,
DejaVu,
DejaVu DejaVu DejaVu Unicode (sans, Serif serif. Sans Mono sans
ttf-dejavu-core * negrito,
serif-negrito, mono,
mono-negrito)
DejaVu,
ttf-dejavu-extra * (oblquo,
unifont
Dica
A lista de pacotes curta sob "Tarefas" "Localizao" A lista de pacotes lisa filtrada de dados de fonts com regex em debtag: "~Gmade-of::data:font" A lista de pacotes lisa filtrada de pacotes de fonts BDF (bitmap) com regex no nome do pacote: "~nxfonts-" A lista de pacotes lisa filtrada de pacotes de fonts TrueType (contorno) com regex no nome do pacote: "~nttf-"
Since Free fonts are sometimes limited, installing or sharing some commercial TrueType fonts is an option for a Debian users. In order to make this process easy for the user, some convenience packages have been created.
ttf-mathematica4.1 ttf-mscorefonts-installer
You'll have a really good selection of TrueType fonts at the expense of contaminating your Free system with non-Free fonts.
Aqui esto alguns pontos chave que focam em fonts de caracteres CJK.
Tabela 7.7. Tabela de palavras chave usadas em nomes de fonts CJK para indicar os tipos de fonts.
tipo de nome de font font Japonesa nome de font nome de font Coreana
Chinesa
Font name such as "VL PGothic" with "P" is a proportional font which corresponds to the fixed width "VL Gothic" font.
For example, Shift_JIS code table comprises 7070 characters. They can be grouped as the following.
JIS X 0201 single-byte characters (191 characters, a.k.a. half-width characters) JIS X 0208 double-byte characters (6879 characters, a.k.a. full-width characters)
Double-byte characters occupy double width on console terminals which uses CJK fixed width fonts. In order to cope with such situation, Hanzi Bitmap Font (HBF) File with file extension ".hbf" may be deployed for fonts containing single-byte and double-byte characters.
In order to save space for TrueType font files, TrueType font collection file with file extension ".ttc" may be used.
In order to cover complicated code space of characters, CID keyed PostScript Type 1 font is used with CMap files starting themselves with "%!PS-Adobe-3.0 Resource-CMap". This is rarely used for normal X display but used for PDF rendering etc. (see Seco 7.7.2, aplicaes utilitrias do X).
Dica
The multiple glyphs are expected for some Unicode code points due to Han unification. One of the most annoying ones are "U+3001 IDEOGRAPHIC COMMA" and "U+3002 IDEOGRAPHIC FULL STOP" whose character positions differ among CJK countries.
Configuring priority of Japanese centric fonts over Chinese ones using "~/.fonts.conf" should give peace of minds to Japanese.
7.7. Aplicaes do X
tipo descrio
editor de
V:17, editor de
inkscape *
editor de
V:1.4, editor de
dia-gnome *
I:1.3
karbon * editor de
Aqui est uma lista de aplicaes utilitrias bsicas que me chamaram a ateno.
(pdf)
(pdf)
trabalho
Cuidado
The poppler-data package (previously non-free, see Seco 11.3.1, Ghostscript) needs to be installed for evince and okular to display CJK PDF documents using Cmap data ( Seco 7.6.3, fonts CJK).
Nota
Installing softwares such as scribus (KDE) on GNOME desktop environment are quite acceptable since corresponding functionality is not available under GNOME desktop environment. But installing too many packages with duplicated functionalities clutter your menu.
xmodmap(1) is a utility for modifying keymaps and pointer button mappings in the X Window System. To get the keycode, run xev(1) in the X and press keys. To get the meaning of keysym, look into the MACRO definition in "/usr/include/X11/keysymdef.h" file (x11proto-core-dev package). All "#define" statements in this file are named as "XK_" prepended to keysym names.
Most traditional X client programs, such as xterm(1), can be started with a set of standard command line options to specify geometry, font, and display.
They also use the X resource database to configure their appearance. The system-wide defaults of X resources are stored in "/etc/X11/Xresources/*" and application defaults of them are stored in "/etc/X11/app-defaults/*". Use these settings as the starting points.
The "~/.Xresources" file is used to store user resource specifications. This file is automatically merged into the default X resources upon login. To make changes to these settings and make them effective immediately, merge them into the database using the following command.
Ateno
Never start the X display/session manager under the root account by typing in root to the prompt of the display manager such as gdm because it is considered unsafe (insecure), even when you plan to perform administrative activities. The entire X architecture is considered insecure if run as root. You must always use the lowest privilege level possible, like a regular user account.
Maneiras fceis de correr um cliente X particular, ex. "foo" como root usar sudo(8) etc. como o seguinte.
Cuidado
Values of the old user's "$XAUTHORITY" and "$DISPLAY" environment variables must be copied to the new user's ones. O ficheiro apontado pelo valor da varivel de ambiente "$XAUTHORITY" tem de ser legvel pelo novo utilizador.
The gksu package (popcon: V:23, I:46) is a specialized GTK+ GUI package for gaining the root privileges. It can be configured to use su(1) or sudo(8) as its backend depending on the "/apps/gksu /sudo-mode" gconf key. You can edit gconf key using gconf-editor (1) (menu: "Applications" "System Tools" "Configuration Editor").
Multilingualization (M17N) or Native Language Support for an application software is done in 2 steps.
Internationalization (I18N): To make a software potentially handle multiple locales. Localization (L10N): Tornar o software til num locale especfico.
Dica
There are 17, 18, or 10 letters between "m" and "n", "i" and "n", or "l" and "n" in multilingualization, internationalization, and localization which correspond to M17N, I18N, and L10N.
The modern software such as GNOME and KDE are multilingualized. They are internationalized by making them handle UTF-8 data and localized by providing their translated messages through the gettext(1) infrastructure. Translated messages may be provided as separate localization packages. They can be selected simply by setting pertinent environment variables to the appropriate locale.
The simplest representation of the text data is ASCII which is sufficient for English and uses less than 127 characters (representable with 7 bits). In order to support much more characters for the international support, many character encoding systems have been invented. The modern and sensible encoding system is UTF-8 which can handle practically all the characters known to the human (see Seco 8.3.1, Bases de codificao).
O sistema Debian pode ser configurado para funcionar com muitas disposies internacionais de teclado.
ambiente comando
This supports keyboard input for accented characters of many European languages with its dead-key function. For Asian languages, you need more complicated input method support such as IBus discussed next.
Setup of multilingual input for the Debian system is simplified by using the IBus family of packages with the im-config package. The list of IBus packages are the following.
ibus * V:0.2, 4220 estrutura de mtodo de I:0.2 entrada que usa dbus
I:0.03
The kinput2 method and other locale dependent Asian classic input methods still exist but are not recommended for the modern UTF-8 X environment. The SCIM and uim tool chains are an slightly older approach for the international input method for the modern UTF-8 X environment.
I find the Japanese input method started under English environment ("en_US.UTF-8") very useful. Here is how I did this with IBus.
1. Install the Japanese input tool package ibus-anthy with its recommended packages such as im-config. 2. Execute "im-config" a partir da shell de utilizador e
seleccione "ibus". 3. Select "System" "Preferences" "IBus Preferences" "Input Method" "Select an input method" "Japanese" "Anthy" and click "Add". 4. Relogin to user's account. 5. Verificar definio por "im-config". 6. Setup input method and mode by right clicking GUI toolbar. (You can reduce menu choice of input method.) 7. Arrancar o mtodo de entrada IBus por CTRL-ESPAO.
im-config(8) behaves differently if command is executed from root or not. im-config(8) activa o melhor mtodo de entrada do sistema e predefinido sem qualquer aco do utilizador. The GUI menu entry for im-config(8) is disable as default to prevent cluttering.
If you wish to input without going through XIM, set "$XMODIFIERS" value to "none" while starting a program. This may be the case if you use Japanese input infrastructure egg on emacs(1). From shell, execute as the following.
$ XMODIFIERS=none emacs
A consola do Linux apenas pode mostrar caracteres limitados. (Voc precisa usar programas de terminal especiais como o jfbterm(1) para mostrar linguagens no-Europeias numa consola no-X.)
X Window can display any characters in the UTF-8 as long as required font data exists. (The encoding of the original font data is taken care by the X Window System and transparent to the user.)
8.3. O locale
O seguinte foca-se no locale para aplicaes que correm sob ambiente X Window iniciado a partir do gdm(1).
A varivel de ambiente "LANG=xx_YY.ZZZZ" define o locale para o cdigo de linguagem "xx", cdigo de pas "yy", e codificao "ZZZZ" (veja Seco 1.5.2, varivel "$LANG").
Current Debian system normally sets the locale as "LANG= xx_YY.UTF-8". This uses the UTF-8 encoding with the Unicode character set. This UTF-8 encoding system is a multibyte code
system and uses code points smartly. The ASCII data, which consist only with 7-bit range codes, are always valid UTF-8 data consisting only with 1 byte per character.
Previous Debian system used to set the locale as "LANG=C" or "LANG=xx_YY" (without ".UTF-8").
The ASCII character set is used for "LANG=C" or "LANG= POSIX". The traditional encoding system in Unix is used for "LANG= xx_YY".
Actual traditional encoding system used for "LANG=xx_YY" can be identified by checking "/usr/share/i18n/SUPPORTED". For example, "en_US" uses "ISO-8859-1" encoding and "fr_FR@euro" uses "ISO-8859-15" encoding.
Dica
For meaning of encoding values, see Tabela 11.2, Lista de valores de codificao e a sua utilizao.
The UTF-8 encoding is the modern and sensible text encoding system for I18N and enables to represent Unicode characters, i.e., practically all characters known to human. UTF stands for Unicode Transformation Format (UTF) schemes.
I recommend to use UTF-8 locale for your desktop, e.g., "LANG= en_US.UTF-8". The first part of the locale determines messages presented by applications. For example, gedit(1) (text editor for the GNOME Desktop) under "LANG=fr_FR.UTF-8" locale can display and edit Chinese character text data while presenting menus in French, as long as required fonts and input methods are installed.
I also recommend to set the locale only using the "$LANG" environment variable. I do not see much benefit of setting a complicated combination of "LC_*" variables (see locale(1)) under UTF-8 locale.
Even plain English text may contain non-ASCII characters, e.g. left and right quotation marks are not available in ASCII.
When ASCII plain text data is converted to UTF-8 one, it has exactly the same content and size as the original ASCII one. So you loose nothing by deploying UTF-8 locale.
Some programs consume more memory after supporting I18N. This is because they are coded to use UTF-32(UCS4) internally to support Unicode for speed optimization and consume 4 bytes per each ASCII character data independent of locale selected. Again, you loose nothing by deploying UTF-8 locale.
The vendor specific old non-UTF-8 encoding systems tend to have minor but annoying differences on some characters such as graphic ones for many countries. The deployment of the UTF-8 system by the modern OSs practically solved these conflicting encoding issues.
In order for the system to access a particular locale, the locale data must be compiled from the locale database. (The Debian system does not come with all available locales pre-compiled unless you installed the locales-all package.) The full list of supported locales available for compiling are listed in "/usr/share/i18n/SUPPORTED". This lists all the proper locale names. The following lists all the available UTF-8 locales already compiled to the binary form.
# dpkg-reconfigure locales
1. Actualizar a lista de locales disponveis 2. Compil-los num formato binrio 3. Definir o locale predefinido de todo o sistema em "/etc/ defaults/locale" para usar com o PAM (veja Seco 4.5, PAM
e NSS)
A lista dos locale disponveis deve incluir "en_US.UTF-8" e todas as linguagens de interesse com "UTF-8".
O locale predefinido recomendado "en_US.UTF-8" para Ingls dos Estados Unidos. Para outras linguagens, por favor certifique-se de escolher um locale com "UTF-8". Qualquer uma destas definies consegue lidar com quaisquer caracteres internacionais.
Nota
Apesar da definio de locale para "C" usar mensagens em Ingls dos Estados Unidos, apenas lida com caracteres ASCII.
Definido inicialmente pelo mecanismo de login(1) PAM para os programas de consola local do Linux Definido inicialmente pelo mecanismo PAM do gestor de ecr para todos os programas do X Definido inicialmente pelo mecanismo PAM do ssh(1) para os programas de consola remota. Alterado por algum gestor de ecr como o gdm(1) para todos os programas do X
Alterado pelo cdigo de arranque da sesso X via "~ /.xsessionrc" para todos os programas do X (funcionalidade do lenny) Alterado pelo cdigo de arranque da shell, ex. "~/.bashrc", para todos os programas de consola
Dica
uma boa ideia instalar um locale predefinido para todo o sistema como "en_US.UTF-8" para o mximo de compatibilidade.
Voc pode escolher um locale especfico apenas sob X Window no relacionado com o seu locale predefinido de todo o sistema usando personalizao do PAM (veja xref linkend="_pam_and_nss" />) como se segue.
Este ambiente dever disponibilizar-lhe a melhor experincia de ambiente de trabalho com estabilidade. Voc tem acesso ao terminal de caracteres funcional com mensagens legveis mesmo quando o Sistema X Window no est a funcionar. Isto torna-se essencial para linguagens que usam caracteres no-romanos como o Chins, Japons e Coreano.
Nota
There may be another way available as the improvement of X session manager package but please read following as the generic
and basic method of setting the locale. For gdm(1), I know you can select the locale of X session via its memu.
A seguinte linha define a localizao do ficheiro do ambiente de linguagem no ficheiro do configurao do PAM, como o "/etc/pam.d /gdm.
auth required
auth required
Para Japons, crie um ficheiro "/etc/defaults/locale-gdm" com permisses "-rw-r--r-- 1 root root" contendo o seguinte.
LANG="ja_JP.UTF-8"
LANG="en_US.UTF-8"
Esta a tcnica mais genrica para personalizar o locale e faz com que o dilogo de seleco de menu do prprio gdm(1) fique localizado (traduzido).
Alternativamente para este caso, voc pode simplesmente alterar o locale usando o ficheiro "~/.xsessionrc".
For cross platform data exchanges (see Seco 10.1.10, Dispositivo de armazenamento amovvel), you may need to mount some filesystem with particular encodings. For example, mount(8) for vfat filesystem assumes CP437 if used without option. You need to provide explicit mount option to use UTF-8 or CP932 for filenames.
Nota
When auto-mounting a hot-pluggable USB memory stick under modern desktop environment such as GNOME, you may provide such mount option by right clicking the icon on the desktop, click "Drive" tab, click to expand "Setting", and entering "utf8" to "Mount options:". The next time this memory stick is mounted, mount with UTF-8 is enabled.
Nota
If you are upgrading system or moving disk drives from older non-UTF-8 system, file names with non-ASCII characters may be encoded in the historic and deprecated encodings such as ISO-8859-1 or eucJP. Please seek help of text conversion tools to convert them to UTF-8. See Seco 11.1, Ferramentas de converso de dados em texto.
Samba uses Unicode for newer clients (Windows NT, 200x, XP) but
uses CP850 for older clients (DOS and Windows 9x/Me) as default. This default for older clients can be changed using "dos charset" in the "/etc/samba/smb.conf" file, e.g., to CP932 for Japanese.
Translations exist for many of the text messages and documents that are displayed in the Debian system, such as error messages, standard program output, menus, and manual pages. GNU gettext(1) command tool chain is used as the backend tool for most translation activities.
aptitude(8) lists under "Tasks" "Localization" provide extensive list of useful binary packages which add localized messages to applications and provide translated documentation.
For example, you can obtain the localized message for manpage by installing the manpages-<LANG> package. To read the Italian-language manpage for <programname> from "/usr/share/man/ it/", execute as the following.
The sort order of characters with sort(1) is affected by the language choice of the locale. Spanish and English locale sort differently.
The date format of ls(1) is affected by the locale. The date format of "LANG=C ls -l" and "LANG=en_US.UTF-8" are different (see Seco 9.2.5, Amostragem personalizada de hora e data).
Number punctuation are different for locales. For example, in English locale, one thousand one point one is displayed as "1,000.1" while in German locale, it is displayed as "1.000,1". You may see this difference in spreadsheet program.
Aqui, eu descrevo dicas bsicas para configurar e gerir sistemas, a maioria a partir da consola.
O screen(1) uma ferramenta muito til para se aceder a sites remotos via ligaes no confiveis e intermitentes porque suporta interrupes nas ligaes de rede.
pacotepopcon tamanhodescrio
screen(1) not only allows one terminal window to work with multiple processes, but also allows remote shell process to survive interrupted connections. Here is a typical use scenario of screen(1).
1. Voc faz login numa mquina remota. 2. Voc arranca o screen numa consola nica. 3. Voc executa mltiplos programas na janela criada do screen com ^A c ("Ctrl-A" seguido de "c"). 4. Voc muda entre as mltiplas janelas do screen com ^A n ("Ctrl-A" seguido de "n"). 5. Suddenly you need to leave your terminal, but you don't want to lose your active work by keeping the connection. 6. You may detach the screen session by any methods.
Desligar a sua ligao de rede bruta Type ^A d ("Control-A" followed by "d") and manually logging out from the remote connection Type ^A DD ("Control-A" followed by "DD") to have screen detach and log you out 7. You log in again to the same remote machine (even from a
different terminal). 8. Voc inicia o screen como "screen -r". 9. screen magically reattaches all previous screen windows with all actively running programs.
Dica
You can save connection fees with screen for metered network connections such as dial-up and packet ones, because you can leave a process active while disconnected, and then re-attach it later when you connect again.
In a screen session, all keyboard inputs are sent to your current window except for the command keystroke. All screen command keystrokes are entered by typing ^A ("Control-A") plus a single key [plus any parameters]. Here are important ones to remember.
atalho)
^A ^X
logwatch * V:3, 2592 analisador de log com sada I:3 bonita escrito em Perl
fail2ban * V:4, 660 banir IPs que causam erros de I:5 autenticao mltipla
I:16
awstats *
swatch *
I:0.18
Nota
CRM114 provides language infrastructure to write fuzzy filters with the TRE regex library. Its popular use is spam mail filter but it can be used as log analyzer.
O uso simples de script(1) (veja Seco 1.4.9, Gravar as actividades da shell) para gravar a actividade da shell produz um ficheiro com caracteres de controle. Isto pode ser evitado ao usar o col(1) como o seguinte.
Faa o que tem a fazer ... e carregue em Ctrl-D para terminar o script.
Se voc no tem o script (por exemplo, durante o processo de arranque no initramfs), ento use antes o seguinte.
Dica
Some x-terminal-emulator such as gnome-terminal can record. You may wish to extend line buffer for scrollback.
Dica
You may use screen(1) with "^A H" (see Seco 9.1.2, ligaes de teclas para o comando screen) to perform recording of console.
Dica
You may use emacs(1) with "M-x shell", "M-x eshell", or "M-x term" to perform recording of console. You may later use "C-x C-w" to write the buffer to a file.
Seco 1.4.5, O pager) and custom tools for highlighting and formatting (see Seco 11.1.8, Highlighting and formatting plain text data) can display text data nicely, general purpose editors (see Seco 1.4.6, O editor de texto) are most versatile and customizable.
Dica
For vim(1) and its pager mode alias view(1), ":set hls" enables highlighted search.
The default display format of time and date by the "ls -l" command depends on the locale (see Seco 1.2.6, Marcas temporais (Timestamps) for value). The "$LANG" variable is referred first and it can be overridden by the "$LC_TIME" variable.
The actual default display format for each locale depends on the version of the standard C library (the libc6 package) used. I.e., different releases of Debian had different defaults.
If you really wish to customize this display format of time and date beyond the locale, you should set the time style value by the "--time-style" argument or by the "$TIME_STYLE" value (see ls(1), date(1), "info coreutils 'ls invocation'").
00:15:16.000000000 +0900
en_US.UTF-8
Dica
You can eliminate typing long option on commandline using command alias, e.g. "alias ls='ls --time-style=+%d.%m.%y\ %H:%M'" (see Seco 1.5.9, Command alias).
Dica
Shell echo to most modern terminals can be colorized using ANSI escape code (see "/usr/share/doc/xterm/ctlseqs.txt.gz").
Comandos coloridos so teis para inspeccionar os seus resultados no ambiente interactivo. Eu inclu o seguinte no meu "~/.bashrc".
if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" alias ls='ls --color=always' alias ll='ls --color=always -l' alias la='ls --color=always -A' alias less='less -R' alias ls='ls --color=always' alias grep='grep --color=always' alias egrep='egrep --color=always' alias fgrep='fgrep --color=always' alias zgrep='zgrep --color=always' else alias ll='ls -l' alias la='ls -A' fi
The use of alias limits color effects to the interactive command usage. It has advantage over exporting environment variable "export GREP_OPTIONS='--color=auto'" since color can be seen under pager programs such as less(1). If you wish to suppress color when piping to other programs, use "--color=auto" instead in the above example for "~/.bashrc".
Dica
You can turn off these colorizing aliases in the interactive environment by invoking shell with "TERM=dumb bash".
"qa": inicia a gravao de caracteres teclados no registo nomeado "a". ... actividades do editor "q": termina a gravao de caracteres escritos "@a": executa o contedo do registo "a".
"C-x (": comea a definir uma macro de teclado. ... actividades do editor "C-x )": termina de definir uma macro de teclado. "C-x e": executa uma macro de teclado.
There are few ways to record the graphic image of an X application, including an xterm display.
xbase-clients *V:3, I:47 132 xwd(1) gimp * V:12, I:44 13560 Menu GUI
Existem ferramentas especializadas para gravar alteraes em ficheiros de configurao com a ajuda do sistema DVCS.
etckeeper *I:1.5 376 their metadata with Git (default), Mercurial, or Bazaar (new)
I recommend to use the etckeeper package with git(1) which put entire "/etc" under VCS control. Its installation guide and tutorial are found in "/usr/share/doc/etckeeper/README.gz".
Essentially, running "sudo etckeeper init" initializes the git repository for "/etc" just like the process explained in Seco 10.9.5, Git para gravar o histrico de configurao but with special hook scripts for more thorough setups.
record them. It automatically records changes nicely every time you run package management commands, too.
Dica
You can browse the change history of "/etc" by executing "sudo GIT_DIR=/etc/.git gitk" with clear view for new installed packages, removed packages, and version changes of packages.
Booting your system with Linux live CDs or debian-installer CDs in rescue mode make it easy for you to reconfigure data storage on your boot device. See also Seco 10.3, Os dados binrios.
For disk partition configuration, although fdisk(8) has been considered standard, parted(8) deserves some attention. "Disk partitioning data", "partition table", "partition map", and "disk label" are all synonyms.
Most PCs use the classic Master Boot Record (MBR) scheme to hold disk partitioning data in the first sector, i.e., LBA sector 0 (512 bytes).
Nota
Intel-based Macs, use GUID Partition Table (GPT) scheme to hold disk partitioning data not in the first sector.
Apesar do fdisk(8) ter sido o standard como ferramenta de particionamento de disco, o parted(8) est a substitu-lo.
libparted
libparted
gptsync * I:0.18 72
Cuidado
Although parted(8) claims to create and to resize filesystem too, it is safer to do such things using best maintained specialized tools such as mkfs(8) (mkfs.msdos(8), mkfs.ext2(8), mkfs.ext3(8), ) and resize2fs(8).
Nota
In order to switch between GPT and MBR, you need to erase first few blocks of disk contents directly (see Seco 10.3.6, Limpar contedo de ficheiro) and use "parted /dev/sdx mklabel gpt" or "parted /dev/sdx mklabel msdos" to set it. Please note "msdos"
Although reconfiguration of your partition or activation order of removable storage media may yield different names for partitions, you can access them consistently. This is also helpful if you have multiple disks and your BIOS doesn't give them consistent device names.
mount(8) com a opo "-U" pode montar um dispositivo de bloco usando o UUID, em vez de usar o seu nome de ficheiro tal como "/dev/sda3". "/etc/fstab" (veja fstab(5)) pode usar UUID. Os gestores de arranque (Seco 3.3, Estgio 2: o gestor de arranque) tambm podem usar UUID.
Dica
Dica
Device nodes of devices such as removable storage media can be made static by using udev rules, if needed. See Seco 3.5.11, O sistema udev.
mkfs.ext3(8) para criar um novo sistema de ficheiros ext3 fsck.ext3(8) para verificar e reparar um sistema de ficheiros ext3 existente tune2fs(8) para configurar o super-bloco do sistema de ficheiros ext3
Os comandos mkfs(8) e fsck(8) so disponibilizados pelo pacote e2fsprogs como frontends para vrios programas dependentes do sistema de ficheiros (mkfs.fstype e fsck.fstype). Para o sistema de ficheiros ext3 existem o mkfs.ext3(8) e o fsck.ext3(8) (esto ligados por hardlink aos mke2fs(8) and e2fsck(8)).
Esto disponveis comandos semelhantes para cada sistema de ficheiros suportado pelo Linux.
xfsprogs * V:2, 3272 utilitrios para o sistema de I:10 ficheiros XFS. (SGI: IRIX)
jfsutils * V:0.5, 1112 utilitrios para o sistema de I:2 ficheiros JFS. (IBM: AIX, OS/2)
zerofree * I:0.7 56
ext2/3
Dica
Ext3 filesystem is the default filesystem for the Linux system and strongly recommended to use it unless you have some specific reasons not to. After Linux kernel 2.6.30 (Debian squeeze), ext4 filesystem is available and expected to be the default filesystem for the Linux system. btrfs filesystem is expected to be the next default filesystem after ext4 filesystem for the Linux system.
Ateno
You might face some limitations with ext4 since it is new. For example, you must have Linux kernel 2.6.30 or later if you wish to resize an ext4 partition.
Dica
Algumas ferramentas permitem acesso a sistemas de ficheiros sem suporte do kernel do Linux (veja Seco 10.3.2, Manipular ficheiros sem montar o disco).
The mkfs(8) command creates the filesystem on a Linux system. The fsck(8) command provides the filesystem integrity check and repair on a Linux system.
Cuidado
Dica
Verifique os ficheiros em "/var/log/fsck/" para os resultados do comando fsck(8) executado a partir do script de arranque.
Dica
Use "shutdown -F -r now" para forar a execuo do comando fsck (8) em segurana em todos os sistemas de ficheiros incluindo o sistema de ficheiros raiz ao reiniciar a mquina. Veja o manual
A performance e caractersticas de um sistema de ficheiros pode ser optimizada pelas opes de montagem usadas (veja fstab(5) e mount(8)). As mais notveis so as seguintes.
A opo "defaults" implica opes predefinidas: "rw,suid,dev,exec,auto,nouser,async". (geral) A opo "noatime" ou "relatime" muito eficaz para acelerar o acesso de leitura. (geral) A opo "user" permite que um utilizador normal monte o sistema de ficheiros. Esta opo implica a combinao com a opo "noexec,nosuid,nodev". (geral, usada para CDs e disquetes) A combinao de opes "noexec,nodev,nosuid" usada para melhorar a segurana. (geral) A opo "noauto" limita a montagem apenas por operao explcita. (geral) A opo "data=journal" para ext3fs pode melhorar a integridade dos dados contra falhas de energia com alguma perda na velocidade de gravao.
Dica
You need to provide kernel boot parameter (see Seco 3.3, Estgio 2: o gestor de arranque), e.g. "rootflags=data=
journal" to deploy a non-default journaling mode for the root filesystem. For lenny, the default jounaling mode is "rootflags= data=ordered". For squeeze, it is "rootflags=data=writeback".
As caractersticas de um sistema de ficheiros podem ser optimizadas via o seu super-bloco usando o comando tune2fs(8).
A execuo de "sudo tune2fs -l /dev/hda1" mostra o contedo do super-bloco do sistema de ficheiros em "/dev/hda1". A execuo de "sudo tune2fs -c 50 /dev/hda1" muda a frequncia das verificaes do sistema de ficheiros (execuo do fsck durante o arranque) para cada 50 arranques em "/dev/hda1". Execution of "sudo tune2fs -j /dev/hda1" adds journaling capability to the filesystem, i.e. filesystem conversion from ext2 to ext3 on "/dev/hda1". (Do this on the unmounted filesystem.) Execution of "sudo tune2fs -O extents,uninit_bg,dir_index / dev/hda1 && fsck -pf /dev/hda1" converts it from ext3 to ext4 on "/dev/hda1". (Do this on the unmounted filesystem.)
Ateno
Filesystem conversion for the boot device to the ext4 filesystem should be avoided until GRUB boot loader supports the ext4 filesystem well and installed Linux Kernel version is newer than 2.6.30.
Dica
Apesar do seu nome, o tune2fs(8) no funciona apenas no sistema de ficheiros ext2, mas tambm nos sistemas de ficheiros ext3 e ext4.
Ateno
Please check your hardware and read manpage of hdparam(8) before playing with hard disk configuration because this may be quite dangerous for the data integrity.
You can test disk access speed of a hard disk, e.g. "/dev/hda", by "hdparm -tT /dev/hda". For some hard disk connected with (E) IDE, you can speed it up with "hdparm -q -c3 -d1 -u1 -m16 /dev/ hda" by enabling the "(E)IDE 32-bit I/O support", enabling the "using_dma flag", setting "interrupt-unmask flag", and setting the "multiple 16 sector I/O" (dangerous!).
Voc pode testar a funcionalidade de cache de escrita de um disco rijo, por exemplo "/dev/sda", com "hdparm -W /dev/sda". Voc pode desactivar a sua funcionalidade de cache de escrita com "hdparm -W 0 /dev/sda".
You may be able to read badly pressed CDROMs on modern high speed CD-ROM drive by slowing it down with "setcd -x 2".
You can monitor and log your hard disk which is compliant to SMART with the smartd(8) daemon.
1. Activar a funo SMART na BIOS. 2. instalar o pacote smartmontools 3. Identificar os seus discos rijos al list-los com df(1).
Vamos assumir uma drive de disco rijo a ser monitorizada como "/dev/hda". 4. Verifique o resultado de "smartctl -a /dev/hda" para ver se a funcionalidade SMART est ligada actualmente.
Se no, active-o com "smartctl -s on -a /dev/hda". 5. Active o daemon smartd(8) a correr com o seguinte.
retire a marca de comentrio na linha "start_smartd=yes" no ficheiro "/etc/default/smartmontools" reinicie o daemon smartd(8) com "sudo /etc/init.d/ smartmontools restart".
Dica
O daemon smartd(8) pode ser personalizado com o ficheiro /etc/ smartd.conf incluindo em como ser notificado de avisos.
For partitions created on Logical Volume Manager (LVM) (Linux feature) at install time, they can be resized easily by concatenating extents onto them or truncating extents from them over multiple storage devices without major system reconfiguration.
Cuidado
Deployment of the current LVM system may degrade guarantee against filesystem corruption offered by journaled filesystems such as ext3fs unless their system performance is sacrificed by disabling write cache of hard disk.
If you have an empty partition (e.g., "/dev/sdx"), you can format it with mkfs.ext3(1) and mount(8) it to a directory where you need more space. (You need to copy original data contents.)
$ sudo mv work-dir old-dir $ sudo mkfs.ext3 /dev/sdx $ sudo mount -t ext3 /dev/sdx work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
Dica
You may alternatively mount an empty disk image file (see Seco 10.2.5, Criar um ficheiro de imagem de disco vazio) as a loop device (see Seco 10.2.3, Montar o ficheiro de imagem de disco). The actual disk usage grows with the actual data stored.
If you have an empty directory (e.g., "/path/to/emp-dir") in another partition with usable space, you can create a symlink to the directory with ln(8).
$ sudo mv work-dir old-dir $ sudo mkdir -p /path/to/emp-dir $ sudo ln -sf /path/to/emp-dir work-dir $ sudo cp -a old-dir/* work-dir $ sudo rm -rf old-dir
Cuidado
Alguns softwares podem no funcionar bem com "links simblicos para directrios".
If you have usable space in another partition (e.g., "/path/to/ "), you can create a directory in it and stack that on to a
$ sudo mv work-dir old-dir $ sudo mkdir work-dir $ sudo mkdir -p /path/to/emp-dir $ sudo mount -t aufs -o br:/path/to/emp-dir:old-dir none work-dir
Cuidado
Use of aufs for long term data storage is not good idea since it is under development and its design change may introduce issues.
Dica
In order to use aufs, its utility package aufs-tools and kernel module package for aufs such as aufs-modules-2.6-amd64 need to be installed.
Dica
aufs is used to provide writable root filesystem by many modern live CD projects.
With physical access to your PC, anyone can easily gain root privilege and access all the files on your PC (see Seco 4.7.4, Tornar a palavra-passe do root segura). This means that login password system can not secure your private and sensitive data
against possible theft of your PC. You must deploy data encryption technology to do it. Although GNU privacy guard (see Seco 10.4, Infraestrutura da segurana de dados) can encrypt files, it takes some user efforts.
dm-crypt and eCryptfs facilitates automatic data encryption natively via Linux kernel modules with minimal user efforts.
pacote popcontamanhodescrio
cryptsetup * V:3, 1172 utilities for encrypted block I:5 device (dm-crypt / LUKS)
cryptmount * V:0.2,360 device (dm-crypt / LUKS) with I:0.5 focus on mount/unmount by normal users
Dm-crypt is a cryptographic filesystem using device-mapper. Device-mapper maps one block device to another.
eCryptfs is another cryptographic filesystem using stacked filesystem. Stacked filesystem stacks itself on top of an existing directory of a mounted filesystem.
Cuidado
A encriptao de dados custa tempo da CPU e etc. Por favor pese os seus benefcios e custos.
Nota
Entire Debian system can be installed on a encrypted disk by the debian-installer (lenny or newer) using dm-crypt/LUKS and initramfs.
Dica
Veja Seco 10.4, Infraestrutura da segurana de dados para utilitrio de encriptao do espao de utilizador: GNU Privacy Guard.
You can encrypt contents of removable mass devices, e.g. USB memory stick on "/dev/sdx", using dm-crypt/LUKS. You simply
# badblocks -c 10240 -s -w -t random -v /dev/sdx # shred -v -n 1 /dev/sdx # fdisk /dev/sdx ... "n" "p" "1" "return" "return" "w" # cryptsetup luksFormat /dev/sdx1 ... # cryptsetup luksOpen /dev/sdx1 sdx1 ... # ls -l /dev/mapper/ total 0 crw-rw---- 1 root root 10, 60 2008-10-04 18:44 control brw-rw---- 1 root disk 254, 0 2008-10-04 23:55 sdx1 # mkfs.vfat /dev/mapper/sdx1 ... # cryptsetup luksClose sdx1
Then, it can be mounted just like normal one on to "/media/ <disk_label>", except for asking password (see Seco 10.1.10, Dispositivo de armazenamento amovvel) under modern desktop environment, such as GNOME using gnome-mount(1). The difference is that every data written to it is encrypted. You may alternatively format media in different file format, e.g., ext3 with "mkfs.ext3 /dev/sdx1".
Nota
precisar de sobrescrever vrias vezes no exemplo em cima. No entanto esta operao ir consumir muito tempo.
/dev/sda7 swap sw 0 0
Voc pode activar a encriptao da partio swap usando o dm-crypt com o seguinte.
# aptitude install cryptsetup # swapoff -a # echo "cswap /dev/sda7 /dev/urandom swap" >> /etc/crypttab # perl -i -p -e "s/\/dev\/sda7/\/dev\/mapper\/cswap/" /etc/fstab # /etc/init.d/cryptdisks restart ... # swapon -a
Voc pode encriptar ficheiros escritos sob "~/Private/" automaticamente usando eCryptfs e o pacote ecryptfs-utils.
Execute ecryptfs-setup-private(1) e configure "~/Private/" pelos seguintes avisos. Active "~/Private/" ao executar ecryptfs-mount-private(1). Move ficheiros de dados sensitivos para "~/Private/" e cria
Candidatos: "~/.fetchmailrc", "~/.ssh/identity", "~/.ssh /id_rsa", "~/.ssh/id_dsa" e outros ficheiros com "go-rwx" Move directrios de dados sensitivos para um sub-directrio em "~/Private/" e cria os links simblicos necessrios.
Candidatos: "~/.gnupg" e outros directrios com "go-rwx" Crie um link simblico de "~/Desktop/Private/" para "~/ Private/" para facilitar as operaes do ambiente de trabalho. Desactive "~/Private/" ao executar ecryptfs-umount-private (1). Active "~/Private/" ao emitir "ecryptfs-mount-private" quando necessitar de dados encriptados.
Dica
Since eCryptfs selectively encrypt only the sensitive files, its system cost is much less than using dm-crypt on the entire root or "/home" device. It does not require any special on-disk storage allocation effort but cannot keep all filesystem metadata confidential.
If you use your login password for wrapping encryption keys, you can automate mounting eCryptfs via PAM (Pluggable Authentication
Modules).
Ateno
Erros de configurao do PAM podem bloque-lo fora do seu prprio sistema. Veja Captulo 4, Autenticao.
Cuidado
If you use your login password for wrapping encryption keys, your encrypted data are as secure as your user login password (see Seco 4.3, Boa palavra-passe). Unless you are careful to
set up a strong password, your data is at risk when someone runs password cracking software after stealing your laptop (see Seco 4.7.4, Tornar a palavra-passe do root segura).
coreutilsV:92, 13828 nice(1): correr um programa com * I:99 prioridade de agendamento modificada
xtrace * V:0.02,372 xtrace(1): rastreia a comunicao I:0.18 entre cliente X11 e servidor
Dica
Os pacotes procps disponibilizam as bases de monitorizar, controlar e iniciar actividades de programas. Voc deve aprend-las todas.
# time some_command >/dev/null real 0m0.035s user 0m0.000s sys 0m0.020s # time on wall clock (elapsed real time) # time in user mode # time in kernel mode
19
# muito bom
Sometimes an extreme nice value does more harm than good to the system. Use this command carefully.
9.5.3. O comando ps
The ps(1) command on the Debian support both BSD and SystemV features and helps to identify the process activity statically.
For the zombie (defunct) children process, you can kill them by the parent process ID identified in the "PPID" field.
top(1) on the Debian has rich features and helps to identify what process is acting funny dynamically.
h ou ? mostrar ajuda
k mata um processo
You can list all files opened by a process with a process ID (PID), e.g. 1, by the following.
$ sudo lsof -p 1
You can trace program activity with strace(1), ltrace(1), or xtrace(1) for system calls and signals, library calls, or communication between X11 client and server.
$ sudo strace ls
You can also identify processes using files by fuser(1), e.g. for "/var/log/mail.log" by the following.
$ sudo fuser -v /var/log/mail.log USER PID ACCESS COMMAND 2946 F.... syslogd
/var/log/mail.log: root
You see that file "/var/log/mail.log" is open for writing by the syslogd(8) command.
You can also identify processes using sockets by fuser(1), e.g. for "smtp/tcp" by the following.
Now you know your system runs exim4(8) to handle TCP connections
watch(1) executes a program repeatedly with a constant interval while showing its output in fullscreen.
$ watch w
There are several ways to repeat a command looping over files matching some condition, e.g. matching glob pattern "*.ext".
find . -type f -maxdepth 1 -name '*.ext' -exec sh -c "command '{}' && echo 'successful'" \;
The above examples are written to ensure proper handling of funny file names such as ones containing spaces. See Seco 10.1.5, Idiomas para a seleco de ficheiros for more advance uses of find(1).
You can set up to start a process from graphical user interface (GUI).
Under GNOME desktop environment, a program can be started with proper argument by double-clicking the launcher icon, by drag-and-drop of a file icon to the launcher icon, or by "Open with " menu via right clicking a file icon. KDE can do the equivalent, too.
Here is an example under GNOME to create a launcher icon for mc (1) started in gnome-terminal(1).
1. Right click desktop space to select "Create Launcher ". 2. Defina "Tipo" para "Aplicao". 3. Defina "Nome" para "mc". 4. Defina "Comando" para "mc-term %f" 5. Clique "OK".
1. Right click folder to select "Open with Other Application ". 2. Click open "Use a custom command" dialog and enter "mc-term %f". 3. Clique "Abrir"
Dica
Some programs start another program automatically. Here are check points for customizing this process.
Ambiente GNOME: "Sistema" "Preferncias" "Aplicao Preferida" KDE desktop: "K" "Control Center" "KDE Components" "Component Chooser" Navegador Iceweasel: "Editar" "Preferncias" "Aplicaes" mc(1): "/etc/mc/mc.ext" Environment variables such as "$BROWSER", "$EDITOR", "$VISUAL", and "$PAGER" (see eviron(7)) The update-alternatives(8) system for programs such as "editor", "view", "x-www-browser", "gnome-www-browser", and "www-browser" (see Seco 1.4.7, Definir um editor de texto predefinido) the "~/.mailcap" and "/etc/mailcap" file contents which associate MIME type with program (see mailcap(5)) The "~/.mime.types" and "/etc/mime.types" file contents which associate file name extension with MIME type (see run-mailcap(1))
Dica
update-mime(8) updates the "/etc/mailcap" file using "/etc/ mailcap.order" file (see mailcap.order(5)).
Dica
The debianutils package provides sensible-browser(1), sensible-editor(1), and sensible-pager(1) which make sensible decisions on which editor, pager, and web browser to call, respectively. I recommend you to read these shell scripts.
Dica
In order to run a console application such as mutt under X as your preferred application, you should create an X application as following and set "/usr/local/bin/mutt-term" as your preferred application to be started as described.
# cat /usr/local/bin/mutt-term <<EOF #!/bin/sh gnome-terminal -e "mutt \$@" EOF chmod 755 /usr/local/bin/mutt-term
Use kill(1) to kill (or send a signal to) a process by the process ID.
Use killall(1) or pkill(1) to do the same by the process command name and other attributes.
Tabela 9.14. Lista dos sinais frequentemente usados para matar comandos
processes as a normal user, e.g. foo by creating a crontab(5) file as "/var/spool/cron/crontabs/foo" with "crontab -e" command.
# use /bin/sh to run commands, no matter what /etc/passwd says SHELL=/bin/sh # mail any output to paul, no matter whose crontab this is MAILTO=paul # Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed) # run at 00:05, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # run at 14:15 on the first of every month -- output mailed to paul 15 14 1 * * $HOME/bin/monthly # run at 22:00 on weekdays(1-5), annoy Joe. % for newline, last % for cc: 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%% 23 */2 1 2 * echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1" 5 4 * * sun echo "run at 04:05 every Sunday" # run at 03:40 on the first Monday of each month 40 3 1-7 * * [ "$(date +%a)" == "Mon" ] && command -args
Dica
For the system not running continuously, install the anacron package to schedule periodic commands at the specified intervals as closely as machine-uptime permits. See anacron(8) and anacrontab(5).
Dica
For scheduled system maintenance scripts, you can run them periodically from root account by placing such scripts in "/etc/ cron.hourly/", "/etc/cron.daily/", "/etc/cron.weekly/", or "/etc /cron.monthly/". Execution timings of these scripts can be customized by "/etc/crontab" and "/etc/anacrontab".
Insurance against system malfunction is provided by the kernel compile option "Magic SysRq key" (SAK key) which is now the default for the Debian kernel. Pressing Alt-SysRq followed by one of the following keys does the magic of rescuing control of the system.
error messages
The combination of "Alt-SysRq s", "Alt-SysRq u", and "Alt-SysRq r" is good for getting out of really bad situations.
See "/usr/share/doc/linux-doc-2.6.*/Documentation/sysrq.txt.gz".
Cuidado
The Alt-SysRq feature may be considered a security risk by allowing users access to root-privileged functions. Placing "echo 0 >/proc/sys/kernel/sysrq" in "/etc/rc.local" or "kernel.sysrq = 0" in "/etc/sysctl.conf" disables the Alt-SysRq feature.
Dica
From SSH terminal etc., you can use the Alt-SysRq feature by writing to the "/proc/sysrq-trigger". For example, "echo s > / proc/sysrq-trigger; echo u > /proc/sysrq-trigger" from the root shell prompt syncs and umounts all mounted filesystems.
who(1) mostra quem tem sesso iniciada. w(1) mostra quem tem sesso iniciada e o que esto a fazer. last(1) mostra listagem do ltimo utilizador a iniciar sesso. lastb(1 )mostra listagem dos ltimos utilizadores a falharem
o inicio de sesso.
Dica
"/var/run/utmp", "/var/log/wtmp", e "/var/run/utmp" detm tal informao do utilizador. Veja login(1) e utmp(5).
Voc pode mandar uma mensagem para todos os que tm sesso iniciada no sistema com wall(1) com o seguinte.
For the PCI-like devices (AGP, PCI-Express, CardBus, ExpressCard , etc.), lspci(8) (probably with "-nn" option) is a good start for the hardware identification
Alternatively, you can identify the hardware by reading contents of "/proc/bus/pci/devices" or browsing directory tree under "/ sys/bus/pci" (see Seco 1.2.12, procfs e sysfs).
pnputils * V:0.01, 108 Utilitrios Plug and Play da I:0.16 BIOS: lspnp(8)
procinfo * V:0.3, 164 informao do sistema obtida de " I:3 /proc": lsdev(8)
I:7
Although most of the hardware configuration on modern GUI desktop systems such as GNOME and KDE can be managed through accompanying GUI configuration tools, it is a good idea to know some basics methods to configure them.
console-tools * V:47, 956 Linux console font and I:84 keytable utilities
V:51, 208 delivered by the Advanced I:91 Configuration and Power Interface (ACPI)
I:35 92
informao em dispositivos
ACPI
noflushd *
hdparm *
I:38
smartmontools * V:7, 1076 control and monitor storage I:23 systems using S.M.A.R.T.
I:3
memtest86+ *
I:1.1
I:0.5
I:0.3
para o X
Aqui, o ACPI uma estrutura mais recente para o sistema de gesto de energia que o APM.
Dica
O escalar de frequncias da CPU em sistemas modernos governado por mdulos do kernel como o acpi_cpufreq.
Times are normally displayed in the local time on the Debian system but the hardware and system time usually use UT(GMT).
If the hardware (BIOS) time is set to UT, change the setting to "UTC=yes" in the "/etc/default/rcS".
If you wish to update system time via network, consider to use the NTP service with the packages such as ntp, ntpdate, and chrony.
Veja o seguinte.
Como Gerir a Data e Hora com Preciso NTP Public Services Project O pacote ntp-doc
Dica
O ntptrace(8) no pacote ntp pode rastrear uma cadeia de servidores NTP at sua fonte principal.
There are several components to configure character console and ncurses(3) system features.
The "/etc/terminfo/*/*" file (terminfo(5)) The "$TERM" environment variable (term(7)) setterm(1), stty(1), tic(1), and toe(1)
If the terminfo entry for xterm doesn't work with a non-Debian xterm, change your terminal type, "$TERM", from "xterm" to one
of the feature-limited versions such as "xterm-r6" when you log in to a Debian system remotely. See "/usr/share/doc/libncurses5/ FAQ" for more. "dumb" is the lowest common denominator for "$TERM".
Device drivers for sound cards for current Linux 2.6 are provided by Advanced Linux Sound Architecture (ALSA). ALSA provides emulation mode for previous Open Sound System (OSS) for compatibility.
Run "dpkg-reconfigure linux-sound-base" to select the sound system to use ALSA via blacklisting of kernel modules. Unless you have very new sound hardware, udev infrastructure should configure your sound system.
Dica
Use "cat /dev/urandom > /dev/audio" or speaker-test(1) to test speaker. (^C to stop)
Dica
If you can not get sound, your speaker may be connected to a muted output. Modern sound system has many outputs. alsamixer(1) in the alsa-utils package is useful to configure volume and mute settings.
Application softwares may be configured not only to access sound devices directly but also to access them via some standardized sound server system.
linux-sound-base *V:39, 132 pacote base para sistemas I:49 de som ALSA e OSS
I:48
I:48
oss-compat *
I:33 60
"/dev/dsp no encontrado"
e GNOME)
I:6 80
(Enlightenment e GNOME)
I:55 84
(Enlightenment e GNOME)
I:23
I:32
jackd *
I:3 32
latncia)
libjack0 *
I:46
I:5
libpulse0 *
libxine1 *
V:5, 36
I:27
do KDE
Existe normalmente um motor de som comum para cada ambiente de trabalho popular. Cada motor de som usado pela aplicao pode escolher ligar a diferentes servidores de som.
ambiente comando
One can always unplug the PC speaker to disable beep sounds. Removing pcspkr kernel module does this for you.
The following prevents the readline(3) program used by bash(1) to beep when encountering "\a" (ASCII=7).
The kernel boot message in the "/var/log/dmesg" contains the total exact size of available memory.
$ grep '\] Memory' /var/log/dmesg [ 0.004000] Memory: 990528k/1016784k available (1975k kernel code, 25868k reserved, 931k data, 296k init) $ free -k total Mem: used free 976928 675404 shared buffers 20256 321780 0 cached 129592 171932
997184
4 4545572
Dica
Do not worry about the large size of "used" and the small size of "free" in the "Mem:" line, but read the one under them (675404 and 321780 in the example below) and relax.
For my MacBook with 1GB=1048576k DRAM (video system steals some of this), I see the following.
relato tamanho
Livre no dmesg
990528k
Uma manuteno pobre do sistema pode expor o seu sistema a explorao externa.
Para segurana do sistema e verificao de integridade, voc deve comear com o seguinte.
O pacote debsums. Veja debsums(1) e Seco 2.5.2, Ficheiro "Release" de nvel de topo e autenticidade:. O pacote chkrootkit. Veja chkrootkit(1). A famlia de pacotes clamav. Veja clamscan(1) e freahclam (1). FAQ de Segurana Debian. Manual de Segurana Debian.
clamav * V:2, 616 anti-virus utility for Unix I:11 command-line interface
aide * V:0.2, 1213 Advanced Intrusion Detection I:0.4 Environment - static binary
Here is a simple script to check for typical world writable incorrect file permissions.
Cuidado
Since the debsums package uses MD5 checksums stored locally, it can not be fully trusted as the system security audit tool against malicious attacks.
9.7. O kernel
Os dispositivos so criados pelo sistema udev (veja Seco 3.5.11, O sistema udev). Read/write accesses to IDE CD/DVD devices do not use the ide-scsi module. Network packet filtering functions use iptable kernel modules.
Kernel parameters initialized by the bootloader (see Seco 3.3, Estgio 2: o gestor de arranque)
Kernel parameters changed by syscrl(8) at runtime for ones accessible via sysfs (see Seco 1.2.12, procfs e sysfs) Module parameters set by arguments of modprobe(8) when a module is activated (see Seco 10.2.3, Montar o ficheiro de imagem de disco)
See "kernel-parameters.txt(.gz)" and other related documents in the Linux kernel documentation ("/usr/share/doc/linux-doc-2.6.*/ Documentation/filesystems/*") provided by the linux-doc-2.6.* package.
Most normal programs don't need kernel headers and in fact may break if you use them directly for compiling. They should be compiled against the headers in "/usr/include/linux" and "/usr/ include/asm" provided by the libc6-dev package (created from the glibc source package) on the Debian system.
Nota
For compiling some kernel-specific programs such as the kernel modules from the external source and the automounter daemon (amd), you must include path to the corresponding kernel headers, e.g. "-I/usr/src/linux-particular-version/include/", to your command line. module-assistant(8) (or its short form m-a) helps users to build and install module package(s) easily for one or more custom kernels.
Tabela 9.22. Lista de pacotes chave a serem instalados para a recompilao do kernel no sistema Debian.
pacote popcontamanhodescrio
I:47 48
make, gcc,
fakeroot *
kernel-package *V:1.5,2316 tool to build Linux kernel I:14 packages (Debian specific)
module-assistantV:2, 568 tool to help build module * I:18 packages (Debian specific)
dkms * V:6, 468 dynamic kernel module support I:9 (DKMS) (generic)
If you use initrd in Seco 3.3, Estgio 2: o gestor de arranque, make sure to read the related information in initramfs-tools(8), update-initramfs(8), mkinitramfs(8) and initramfs.conf(5).
Ateno
Do not put symlinks to the directories in the source tree (e.g. "/usr/src/linux*") from "/usr/include/linux" and "/usr/include/ asm" when compiling the Linux kernel source. (Some outdated documents suggest this.)
Nota
When compiling the latest Linux kernel on the Debian stable system, the use of backported latest tools from the Debian unstable may be needed.
Nota
The dynamic kernel module support (DKMS) is a new distribution independent framework designed to allow individual kernel modules to be upgraded without changing the whole kernel. This will be endorsed for the maintenance of out-of-tree modules for
squeeze. This also makes it very easy to rebuild modules as you upgrade kernels.
The Debian standard method for compiling kernel source to create a custom kernel package uses make-kpkg(1). The official documentation is in (the bottom of) "/usr/share/doc/ kernel-package/README.gz". See kernel-pkg.conf(5) and kernel-img.conf(5) for customization.
# aptitude install linux-tree-<verso> $ cd /usr/src $ tar -xjvf linux-source-<verso>.tar.bz2 $ cd linux-source-<verso> $ cp /boot/config-<verso-antiga> .config $ make menuconfig ... $ make-kpkg clean $ fakeroot make-kpkg --append_to_version -amd64 --initrd --revision=rev.01 kernel_image modules_image $ cd .. # dpkg -i linux-image*.deb
Cuidado
When you intend to create a non-modularized kernel compiled only for one machine, invoke make-kpkg without "--initrd" option since initrd is not used. Invocation of "make oldconfig" and "make dep" are not required since "make-kpkg kernel_image" invokes them.
The Debian standard method for creating and installing a custom module package for a custom kernel package uses module-assistant (8) and module-source packages. For example, the following builds the unionfs kernel module package and installs it.
$ sudo aptitude install module-assistant ... $ sudo aptitude install unionfs-source unionfs-tools unionfs-utils $ sudo m-a update $ sudo m-a prepare $ sudo m-a auto-install unionfs ... $ sudo apt-get autoremove
You can still build Linux kernel from the pristine sources with the classic method. You must take care the details of the system configuration manually.
$ cd /usr/src $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-<version>.tar.bz2 $ tar -xjvf linux-<version>.tar.bz2 $ cd linux-<version> $ cp /boot/config-<version> .config $ make menuconfig ... $ make dep; make bzImage $ make modules # cp ./arch/x86_64/boot/bzImage /boot/vmlinuz-<version> # make modules_install # depmod -a # update-initramfs -c -k <version>
Edite o "/etc/lilo.conf" e corra "/sbin/lilo", se voc usar o lilo. Edite o "/boot/grub/menu.lst", se voc usar o grub.
Although most of hardware drivers are available as free software and as a part of the Debian system, you may need to load some non-free external drivers to support some hardwares, such as Winmodem, on your system.
http://en.wikipedia.org/wiki/Softmodem http://en.wikipedia.org/wiki/ Comparison_of_open_source_wireless_drivers Google ou outros motores de busca com a palavra "Linmodem". http://ndiswrapper.sourceforge.net http://linuxwireless.org http://madwifi-project.org (existe o ath5k que contm drivers livres)
Use of virtualized system enables us to run multiple instances of system simultaneously on a single hardware.
Dica
Veja http://wiki.debian.org/SystemVirtualization .
There are several system virtualization and emulation related packages in Debian beyond simple chroot. Some packages also help you to setup such system.
schroot *
I:2
debootstrap * V:1.6, 268 bootstrap a basic Debian I:12 system (written in sh)
virt-manager * V:0.5, 5908 aplicao de ambiente de I:1.6 trabalho para gerir mquinas virtuais
qemu-kvm *
I:2
virtualbox-ose V:2, 31728 VirtualBox: x86 virtualization * I:4 solution on i386 and amd64
xen-tools * V:0.2, 1236 ferramentas para gerir o I:1.9 servidor virtual XEN da debian
I:13 96
Implementation (standard
suite)
dosbox *
dosemu *
I:1.2
vzctl * V:0.7, 1056 OpenVZ server virtualization I:1.1 solution - control tools
I:1.2
See Wikipedia article Comparison of platform virtual machines for detail comparison of different platform virtualization solutions.
Nota
Nota
Criar um sistema de ficheiros vazio (uma rvore de ficheiros ou uma imagem de disco).
A rvore de ficheiros pode ser criada por "mkdir -p / path/to/chroot". The raw disk image file can be created with dd(1) (see Seco 10.2.1, Criando o ficheiro de imagem de disco and Seco 10.2.5, Criar um ficheiro de imagem de disco vazio). qemu-img(1) pode ser usado para criar e converter ficheiros de imagem de disco suportados pelo QEMU. The raw and VMDK file format can be used as common format among virtualization tools. Montar a imagem de disco com mount(8) no sistema de ficheiros (opcional).
For the raw disk image file, mount it as loop device or device mapper devices (see Seco 10.2.3, Montar o ficheiro de imagem de disco). For disk images supported by QEMU, mount them as network block device (see Seco 9.8.3, Montar o ficheiro de imagem de disco virtual). Povoar o sistema de ficheiros alvo com os dados de sistema
necessrios.
Usar programas como o debootstrap e o cdebootstrap ajudam neste processo (veja Seco 9.8.4, Sistema chroot). Use instaladores de SOs sob o emulador de sistema completo. Correr um programa sob um ambiente virtualizado
chroot provides basic virtualized environment enough to compile programs, run console applications, and run daemons in it. QEMU oferece emulao de CPU de vrias plataformas. QEMU com KVM oferece emulao de sistema completo pela virtualizao assistida a hardware. VirtualBox oferece emulao de sistema completo em i386 ou amd64 com ou sem a virtualizao assistida a hardware .
Para o ficheiro de imagem de disco raw, veja Seco 10.2, A imagem de disco.
Para outros ficheiros de imagem de disco virtual, voc pode usar o qemu-nbd para export-los usando o protocolo dispositivo de bloco de rede e mont-los usando o mdulo de kernel nbd.
qemu-nbd(8) supports disk formats supported by QEMU: QEMU supports following disk formats: raw, qcow2, qcow, vmdk, vdi, bochs, cow (user-mode Linux copy-on-write), parallels, dmg, cloop, vpc, vvfat (virtual VFAT), and host_device.
The network block device can support partitions in the same way as the loop device (see Seco 10.2.3, Montar o ficheiro de imagem de disco). You can mount the first partition of "disk.img" as follows.
# modprobe nbd max_part=16 # qemu-nbd -v -c /dev/nbd0 disk.img ... # mkdir /mnt/part1 # mount /dev/nbd0p1 /mnt/part1
Dica
Voc pode exportar apenas a primeira partio de "disk.img" usando a opo "-P 1" para qemu-nbd(8).
chroot(8) oferece a maneira mais bsica de correr diferentes instncias do ambiente GNU/Linux num nico sistema em simultneo sem reiniciar.
Cuidado
Os exemplos em baixo assumem que ambos os sistemas pai e chroot partilham a mesma arquitectura de CPU.
Voc pode aprender a como configurar e usar chroot(8) ao correr o programa pbuilder(8) sob script(1) como se segue.
$ sudo mkdir /sid-root $ sudo pbuilder --create --no-targz --debug --buildplace /sid-root
Voc v como debootstrap(8) ou cdebootstrap(1) povoam dados do sistema para ambiente sid sob "/sid-root".
Dica
Estes debootstrap(8) ou cdebootstrap(1) so usados para instalar Debian pelo instalador Debian Installer. Estes tambm podem ser usados para instalar Debian num sistema sem usar um disco de instalao de Debian, mas em vez disso, a partir de outra distribuio de GNU/Linux.
Voc pode ver como uma shell de sistema a correr sob ambiente sid criada como o seguinte.
1. Copiar configurao local ("/etc/hosts", "/etc/hostname", "/ etc/resolv.conf") 2. Montar o sistema de ficheiros "/proc" 3. Montar o sistema de ficheiros "/dev/pts"
4. Criar "/usr/sbin/policy-rc.d" o qual sempre existe com 101 5. Corra "chroot /sid-root bin/bash -c 'exec -a -bash bin/ bash'"
Nota
Some programs under chroot may require access to more files from the parent system to function than pbuilder provides. For example, "/sys", "/etc/passwd", "/etc/group", "/var/run/utmp", " /var/log/wtmp", etc. may need to be bind-mounted or copied.
Nota
The "/usr/sbin/policy-rc.d" file prevents daemon programs to be started automatically on Debian system. See "/usr/share/doc/ sysv-rc/README.policy-rc.d.gz".
Dica
The original purpose of the specialized chroot package, pbuilder is to construct a chroot system and builds a package inside the chroot. It is an ideal system to use to check that a package's build-dependencies are correct, and to be sure that unnecessary and wrong build dependencies do not exist in the resulting package.
Dica
Similar schroot package may give you an idea to run i386 chroot
I recommend you to use QEMU or VirtualBox on a Debian stable system to run multiple desktop systems safely using virtualization. These enable you to run desktop applications of Debian unstable and testing without usual risks associated with them.
Since pure QEMU is very slow, it is recommended to accelerate it with KVM when the host system support it.
The virtual disk image "virtdisk.qcow2" containing Debian system for QEMU can be created using debian-installer: Small CDs as follows.
$ wget http://cdimage.debian.org/debian-cd/5.0.3/amd64/iso-cd/debian-503amd64-netinst.iso $ qemu-img create -f qcow2 virtdisk.qcow2 5G $ qemu -hda virtdisk.qcow2 -cdrom debian-503-amd64-netinst.iso -boot d -m 256 ...
VirtualBox comes with Qt GUI tools and quite intuitive. Its GUI and command line tools are explained in VirtualBox User Manual and VirtualBox User Manual (PDF).
Dica
Running other GNU/Linux distributions such as Ubuntu and Fedra under virtualization is a great way to learn configuration tips. Other proprietary OSs may be run nicely under this GNU/Linux virtualization, too.
So descritas ferramentas e dicas para gerir dados binrios e de texto no sistema Debian.
Ateno
The uncoordinated write access to actively accessed devices and files from multiple processes must not be done to avoid the race condition. File locking mechanisms using flock(1) may be used to avoid it.
A criao de um arquivo de dados O acesso a armazenamento remoto A duplicao O acompanhar do histrico de modificao A facilitao da partilha de dados
Ferramentas de arquivo e compresso Ferramentas de cpia de sincronizao Sistemas de ficheiros de rede Media de armazenamento amovvel A shell segura O sistema de autenticao Ferramentas de sistema de controle de verso Ferramentas de hash e encriptao criptogrfica
Aqui est um sumrio das ferramentas de arquivo e compresso disponveis no sistema Debian.
pacote popcontamanhocomandoextensocomentrio
standard)
bibliotecas estticas
fastjar * V:7, 216 fastjar.jar arquivador para I:31 (1) Java (estilo zip)
V:1.5,172 pax(1) .pax standard do POSIX, I:6 um compromisso entre tar e cpio
compression utility
Burrows-Wheeler block-sorting
bzip2 (1),
V:51,
bzip2 * I:79 132 bzcat .bz2 compression ratio (1), than gzip(1)
V:8,
XZ compression
xz(1),
I:26
(1),
p7zip-fullV:14, *
7z(1),
compression ratio (
lzop * V:0.7,144 lzop(1).lzo decompression speed I:6 than gzip(1) (lower compression ratio than gzip with
similar syntax)
InfoZIP: ferramenta
unzip * V:24, 408 unzip .zip de descompresso e I:69 (1) de desarquivar do DOS
Ateno
No defina a varivel "$TAPE" a menos que saiba com o que esperar. Altera o comportamento do tar(1).
Nota
Nota
Nota
Popular compression method in FOSS tools such as tar(1) has been moving as follows: gzip bzip2 xz
Nota
cp(1), scp(1) e tar(1) podem ter algumas limitaes para ficheiros especiais. cpio(1) e afio(1) so mais versteis.
Nota
cpio(1) and afio(1) are designed to be used with find(1) and other commands and suitable for creating backup scripts since the file selection part of the script can be tested independently.
Nota
afio(1) compresses each file in the archive. This makes afio to be much safer for the file corruption than the globally compressed tar or cpio archives and to be the best archive engine for the backup script.
Nota
Aqui est um sumrio de ferramentas de cpia simples e salvaguarda disponveis no sistema Debian.
pacote popcontamanhoferramentafuno
copia localmente
coreutils * V:92, 13828 GNU cp ficheiros e I:99 directrios ("-a" para ser recursivo)
openssh-clientV:52, *
directrios (cliente,
remotamente (servidor
remoto)
unison *
Copiar ficheiros com o rsync(8) oferece funcionalidades mais ricas que os outros.
algoritmo de transferncia delta que envia apenas as diferenas entre os ficheiros da fonte e os ficheiros existentes no destino algoritmo de verificao rpida (predefinido) que procura ficheiros que alteraram no tamanho ou ha hora da ltima modificao opes "--exclude" e "--exclude-from" semelhantes ao tar(1) "a trailing slash on the source directory" syntax that avoids creating an additional directory level at the destination.
Dica
Execution of the bkup script mentioned in Seco 10.1.9, Um script de cpia para a salvaguarda de dados with the "-gl" option under cron(8) should provide very similar functionality as Plan9's dumpfs for the static data archive.
Dica
Ferramentas de sistema de controlo de verso (VCS) em Tabela 10.16, lista de ferramentas de sistemas de controle de verso podem funcionar como a copia de multi-modos e ferramentas de sincronizao.
Aqui esto vrias maneiras de arquivar e "desarquivar" o contedo completo do directrio "./source" usando diferentes ferramentas.
GNU tar(1):
cpio(1):
$ find ./source -xdev -print0 | cpio -ov --null > archive.cpio; gzip archive.cpio $ zcat archive.cpio.gz | cpio -i
afio(1):
$ find ./source -xdev -print0 | afio -ovZ0 archive.afio $ afio -ivZ archive.afio
Aqui esto algumas maneiras de copiar o contedo inteiro do directrio "./source" usando diferentes ferramentas.
Cpia local: directrio "./source" directrio "/dest" Cpia remota: directrio "./source" em mquina local directrio "/dest" na mquina "[email protected]"
rsync(8):
You can alternatively use "a trailing slash on the source directory" syntax.
# cd ./source; cp -a . /dest
GNU tar(1):
# (cd ./source && tar cf - . ) | (cd /dest && tar xvfp - ) # (cd ./source && tar cf - . ) | ssh [email protected] '(cd /dest && tar xvfp - )'
cpio(1):
afio(1):
Voc pode substituir "." por "foo" para todos os exemplos que contm "." para copiar ficheiros do directrio "./source/foo" para o directrio "/dest/foo".
Voc pode substituir "." pelo caminho absoluto "/caminho/para/ fonte/foo" para todos os exemplor que contm "." para abandonar "cd ./source;". Estes copiam ficheiros para localizaes diferentes dependendo das ferramentas usadas como se segue.
"/dest/foo": rsync(8), cp(1) do GNU, e scp(1) "/dest/path/to/source/foo": tar(1) do GNU, cpio(1), e afio (1)
Dica
rsync(8) e cp(1) do GNU tm a opo "-u" para saltar ficheiros que so mais recentes no receptor.
find(1) is used to select files for archive and copy commands (see Seco 10.1.3, Idiomas para o arquivo and Seco 10.1.4, Idiomas para a cpia) or for xargs(1) (see Seco 9.5.9, Repeating a command looping over files). This can be enhanced by using its command arguments.
Os seus argumentos condicionais so avaliados da esquerda para a direita. Esta avaliao pra assim que o seu resultado determinado. O "OU lgico" (especificado por "-o" entre condicionais) tem precedncia mais baixa que o "E lgico" (especificado por "-a" ou nada entre condicionais). O "NO lgico" (especificado por "!" antes duma condicional) tem precedncia mas alta que o "E lgico". "-prune" always returns logical TRUE and, if it is a directory, searching of file is stopped beyond this point. "-name" matches the base of the filename with shell glob (see Seco 1.5.6, Glob da shell) but it also matches its initial "." with metacharacters such as "*" and "?". (New
POSIX feature) "-regex" corresponde ao caminho completo com estilo emacs BRE (veja Seco 1.6.2, Expresses regulares) como predefinio. "-size" corresponde ao ficheiro baseado no tamanho do ficheiro (valor precedido de "+" para maior, precedido de "-" para menor) "-newer" corresponde ao ficheiro mais recente que aquele especificado no seu argumento. "-print0" retorna sempre o TRUE lgico e escreve o nome de ficheiro completo (terminado em nulo) na sada standard.
# procura /caminho/para \ -xdev -regextype posix-extended \ -type f -regex ".*\.afio|.*~" -prune -o \ -type d -regex ".*/\.git" -prune -o \ -type f -size +99M -prune -o \ -type f -newer /caminho/para/timestamp -print0
1. Procura todos os ficheiros comeando em "/caminho/para" 2. limita globalmente a sua busca dentro do sistema de ficheiros inicial e usa ERE (veja antes Seco 1.6.2, Expresses regulares) 3. Exclui da busca os ficheiros que correspondem expresso
regular ".*\.afio" ou ".*~" ao parar o processamento 4. Exclui da busca os directrios que correspondem expresso regular ".*/\.git" ao parar o processamento 5. Exclui da busca os ficheiros maiores que 99 Mb (unidades de 1048576 bytes) ao parar o processamento 6. Escreve os nomes de ficheiros que satisfazem as condies de busca em cima e so mais recentes que "/caminho/para/ timestamp"
Por favor note a utilizao idiomtica de "-prune -o" para excluir ficheiros no exemplo em cima.
Nota
For non-Debian Unix-like system, some options may not be supported by find(1). In such a case, please consider to adjust matching methods and replace "-print0" with "-print". You may need to adjust related commands too.
Todos ns sabemos que os computadores avaria ou que erros humanos causam danos no sistema e nos dados. As operaes de salvaguarda e recuperao so a parte essencial sucesso do administrador de sistemas. Todos os modos de falha possveis iro atingi-lo um dia.
Dica
Mantenha o seu sistema de backup simples e faa backups peridicos. Ter cpias de segurana dos dados mais importante do que quo bom tecnicamente o seu mtodo de backup.
Ficheiros de dados criados directamente por si: dados em "~/" Ficheiros de dados criados por aplicaes usadas por si: dados em "/var/" (excepto "/var/cache/", "/var/run/", e "/var/tmp/") Ficheiros de configurao do sistema: dados em "/etc/" Softwares locais: dados em "/usr/local/" ou "/opt/" Informao da instalao do sistema: um memo em texto simples em passos chave (partio, ...) Conjunto de dados de prova: confirmado com antecedncia por operaes de recuperao experimentais 2. Saber como salvaguardar e recuperar
Armazenamento de dados seguro: proteco contra re-escrita e falha do sistema Salvaguarda frequente: salvaguarda agendada Backup redundante: usar mirror de dados Processo prova de tolos: backup fcil de comando nico 3. Avaliar os riscos e custos envolvidos.
O valor dos dados quando perdidos Recursos necessrios para o backup: humano, hardware, software, ... Modo de falha e a sua possibilidade
As for secure storage of data, data should be at least on different disk partitions preferably on different disks and machines to withstand the filesystem corruption. Important data are best stored on a write-once media such as CD/DVD-R to prevent overwrite accidents. (See Seco 10.3, Os dados binrios for how to write to the storage media from the shell commandline. GNOME desktop GUI environment gives you easy access via menu: "PlacesCD/DVD Creator".)
Nota
Voc pode desejar parar alguns daemons de aplicao como o MTA (veja Seco 6.3, Agente de transporte de mail (MTA)) enquanto faz cpias de segurana (backups) dos dados.
Nota
You should pay extra care to the backup and restoration of identity related data files such as "/etc/ssh/ssh_host_dsa_key", "/etc/ssh/ssh_host_rsa_key", "~/.gnupg/*", "~/.ssh/*", "/etc/ passwd", "/etc/shadow", "/etc/fetchmailrc", "popularity-contest.conf", "/etc/ppp/pap-secrets", and "/etc/ exim4/passwd.client". Some of these data can not be regenerated
Nota
If you run a cron job as a user process, you must restore files in "/var/spool/cron/crontabs" directory and restart cron(8). See Seco 9.5.14, Scheduling tasks regularly for cron(8) and crontab(1).
Aqui est uma lista seleccionada de suites de utilitrios de backup notveis disponveis no sistema Debian.
dump *
xfsdump *
I:1.9
I:0.5
I:0.16
Bacula: salvaguarda,
bacula-common V:1.3, 1404 recuperao e verificao em * I:2 rede - ficheiros de suporte comum
I:0.9 84
recuperao e verificao em
I:0.5 84
recuperao e verificao em
I:1.0
backup2l * V:0.2, 152 para salvaguarda/restauro para I:0.3 medias montveis (baseado em disco)
Mondo Rescue um sistema de backup para facilitar o restauro de um sistema completo rapidamente a partir de CD/ DVD, etc de backup, sem se passar por todo o processo normal de instalao do sistema. sbackup and keep packages provide easy GUI frontend for desktop users to make regular backups of user data. An equivalent function can be realized by a simple script ( Seco 10.1.8, Um script de exemplo para salvaguarda ao sistema) and cron(8). Bacula, Amanda, e BackupPC so suites utilitrias de
Ferramentas bsicas descritas em Seco 10.1.1, Ferramentas de arquivo e compresso e Seco 10.1.2, Ferramentas de cpia de sincronizao podem ser usadas facilitar o backup do sistema via scripts personalizados. Tal script pode ser melhorado com o seguinte.
O pacote rdiff-backup permite salvaguardas incrementais (remotas). O pacote dump ajuda a arquivar e restaurar o sistema de ficheiros completo de modo incremental e eficiente.
Dica
Veja os ficheiros em "/usr/share/doc/dump/" e "est o dump mesmo obsoleto?" para aprender acerca do oacote dump.
For a personal Debian desktop system running unstable suite, I only need to protect personal and critical data. I reinstall system once a year anyway. Thus I see no reason to backup the whole system or to install a full featured backup utility.
Eu uso um script simples para fazer um arquivo salvaguarda e grav-lo em CD/DVD usando uma GUI. Aqui est um script exemplo para tal.
#!/bin/sh -e # Copyright (C) 2007-2008 Osamu Aoki <[email protected]>, Public Domain BUUID=1000; USER=osamu # UID and name of a user who accesses backup files BUDIR="/var/backups" XDIR0=".+/Mail|.+/Desktop" XDIR1=".+/\.thumbnails|.+/\.?Trash|.+/\.?[cC]ache|.+/\.gvfs|.+/sessions" XDIR2=".+/CVS|.+/\.git|.+/\.svn|.+/Downloads|.+/Archive|.+/Checkout|.+/tmp" XSFX=".+\.iso|.+\.tgz|.+\.tar\.gz|.+\.tar\.bz2|.+\.afio|.+\.tmp|.+\.swp|.+~" SIZE="+99M" DATE=$(date --utc +"%Y%m%d-%H%M") [ -d "$BUDIR" ] || mkdir -p "BUDIR" umask 077 dpkg --get-selections \* > /var/lib/dpkg/dpkg-selections.list debconf-get-selections > /var/cache/debconf/debconf-selections
{ find /etc /usr/local /opt /var/lib/dpkg/dpkg-selections.list \ /var/cache/debconf/debconf-selections -xdev -print0 find /home/$USER /root -xdev -regextype posix-extended \ -type d -regex "$XDIR0|$XDIR1" -prune -o -type f -regex "$XSFX" -prune -o \ -type f -size "$SIZE" -prune -o -print0 find /home/$USER/Mail/Inbox /home/$USER/Mail/Outbox -print0 find /home/$USER/Desktop -xdev -regextype posix-extended \ -type d -regex "$XDIR2" -prune -o -type f -regex "$XSFX" -prune -o \ -type f -size "$SIZE" -prune -o -print0 } | cpio -ov --null -O $BUDIR/BU$DATE.cpio chown $BUUID $BUDIR/BU$DATE.cpio touch $BUDIR/backup.stamp
Edite este script para cobrir todos os seus dados importantes (veja Seco 10.1.5, Idiomas para a seleco de ficheiros e Seco 10.1.6, Salvaguarda (backup) e recuperao). Substitua "find -print0" por "find -newer $BUDIR/ backup.stamp -print0" para fazer uma salvaguarda incremental. Transfira os ficheiros de backup para a mquina remota usando scp(1) ou rsync(1) ou grave-os em CD/DVD para segurana extra dos dados. (Eu uso a GUI do ambiente GNOME para gravar CD/DVD. Veja See Seco 12.1.8, Shell script example with zenity para redundncia extra.)
Dica
Voc pode recuperar dados configurao debconf com "debconf-set-selections debconf-selections" e dados de seleco do dpkg com "dpkg --set-selection <dpkg-selections.list".
For the set of large non-overwritten static data under a directory tree such as the one under the "/var/cache/apt/ packages/" directory, hardlinks with "cp -al" provide an alternative to the normal backup with efficient use of the disk space.
Aqui est um script de cpia, que Eu chamei de bkup, para o backup de dados. O script copia todos os ficheiro (no-VCS) sob o directrio actual para o directrio datado no directrio pai ou numa mquina remota.
#!/bin/sh -e # Copyright (C) 2007-2008 Osamu Aoki <[email protected]>, Public Domain fdot(){ find . -type d \( -iname ".?*" -o -iname "CVS" \) -prune -o -print0;} fall(){ find . -print0;} mkdircd(){ mkdir -p "$1";chmod 700 "$1";cd "$1">/dev/null;} FIND="fdot";OPT="-a";MODE="CPIOP";HOST="localhost";EXTP="$(hostname f)" BKUP="$(basename $(pwd)).bkup";TIME="$(date +%Y%m%d%H%M%S)";BU="$BKUP/$TIME" while getopts gcCsStrlLaAxe:h:T f; do case $f in g) MODE="GNUCP";; # cp (GNU) c) MODE="CPIOP";; # cpio -p C) MODE="CPIOI";; # cpio -i s) MODE="CPIOSSH";; # cpio/ssh S) MODE="AFIOSSH";; # afio/ssh t) MODE="TARSSH";; # tar/ssh r) MODE="RSYNCSSH";; # rsync/ssh
l) OPT="-alv";; # hardlink (GNU cp) L) OPT="-av";; # copia (GNU cp) a) FIND="fall";; # procura todos A) FIND="fdot";; # procura no CVS/ .???/ x) set -x;; # trace e) EXTP="${OPTARG}";; # hostname -f h) HOST="${OPTARG}";; # [email protected] T) MODE="TEST";; # teste ao modo de procura \?) echo "use -x para trace." esac; done shift $(expr $OPTIND - 1) if [ $# -gt 0 ]; then for x in $@; do cp $OPT $x $x.$TIME; done elif [ $MODE = GNUCP ]; then mkdir -p "../$BU";chmod 700 "../$BU";cp $OPT . "../$BU/" elif [ $MODE = CPIOP ]; then mkdir -p "../$BU";chmod 700 "../$BU" $FIND|cpio --null --sparse -pvd ../$BU elif [ $MODE = CPIOI ]; then $FIND|cpio -ov --null | ( mkdircd "../$BU"&&cpio -i ) elif [ $MODE = CPIOSSH ]; then $FIND|cpio -ov --null|ssh -C $HOST "( mkdircd \"$EXTP/$BU\"&&cpio -i )" elif [ $MODE = AFIOSSH ]; then $FIND|afio -ov -0 -|ssh -C $HOST "( mkdircd \"$EXTP/$BU\"&&afio -i - )" elif [ $MODE = TARSSH ]; then (tar cvf - . )|ssh -C $HOST "( mkdircd \"$EXTP/$BU\"&& tar xvfp - )" elif [ $MODE = RSYNCSSH ]; then rsync -rlpt ./ "${HOST}:${EXTP}-${BKUP}-${TIME}" else
Isto suposto ser exemplos de comandos. Por favor, leia o script e edite-o sua necessidade antes de o usar.
Dica
Eu tenho este bkup no meu directrio "/usr/local/bin/". Eu chamo este comando bkup sem nenhuma opo no directrio de trabalho sempre que preciso duma imagem de backup temporria.
Dica
For making snapshot history of a source file tree or a configuration file tree, it is easier and space efficient to use git(7) (see Seco 10.9.5, Git para gravar o histrico de configurao).
Disco rijo Qualquer formato de dispositivos de memria flash Cmara Digital que est ligada via USB, IEEE 1394 / Firewire , PC Card, etc.
Estes dispositivos de armazenamento amovveis pode ser montados automaticamente como utilizador sob ambientes de trabalho modernos, como o GNOME usando o gnome-mount(1).
O ponto de montagem sob GNOME escolhido como "/media/ <etiqueta_do_disco>" o que pode ser personalizado.
mlabel(1) para o sistema de ficheiros FAT genisoimage(1) com a opo "-V" para o sistema de ficheiros ISO9660 tune2fs(1) com a opo "-L" para sistemas de ficheiros ext2/ext3 A escolha de codificao pode necessitar de ser disponibilizada como opo de montagem (veja Seco 8.3.6, Codificao de nomes de ficheiros). O 'dono' do sistema de ficheiros montado pode necessitar de ser ajustado para utilizao pelo utilizador normal.
Nota
A auto-montagem em ambientes de trabalho modernos apenas acontece quando esses dispositivos amovveis no esto listados em "/etc/fstab".
Dica
Quando o fornecimento de opes de montagem erradas causar problemas, apague as suas definies correspondentes sob "/
Tabela 10.4. Lista de pacotes que permitem aos utilizadores normais montarem dispositivos amovveis sem uma entrada correspondente no "/etc/fstab"
pelo KDE)
ficheiros encriptados
automaticamente dispositivos de
armazenamento USB
Quando partilha dados com outros sistemas via dispositivos de armazenamento amovvel, voc deve format-lo num sistema de ficheiros comum que seja suportado pelos dois sistemas. Aqui est uma lista de escolhas de sistemas de ficheiros.
Tabela 10.5. Lista de hipteses de sistemas de ficheiros para dispositivos de armazenamento amovveis com cenrios de utilizao tpica
disquetes (<32MiB)
FAT32
NTFS
nativamente no MS Windows NT e verses posteriores, e suportado pelo NTFS-3G via FUSE em Linux)
sistema dearmazenamento de dados em ficheiros unix eficiente ficheiros em espao em disquetes MINIX
sistema departilha de dados em dispositivos tipo disco rijo ficheiros com sistemas Linux mais antigos ext2
sistema departilha de dados em dispositivos tipo disco rijo ficheiros com sistemas Linux actuais (sistema de ficheiros ext3 com journal)
Dica
Veja Seco 9.4.1, Encriptao de discos amovveis com dm-crypt /LUKS para partilha de dados em vrias plataformas usando encriptao ao nvel do dispositivo.
O sistema de ficheiros FAT suportado pela maioria dos sistemas operativos modernos e bastante til para objectivos de trocas de dados via dispositivos tipo disco rijo.
When formatting removable hard disk like devices for cross platform sharing of data with the FAT filesystem, the following should be safe choices.
Partitioning them with fdisk(8), cfdisk(8) or parted(8) (see Seco 9.3.1, Configurao das parties do disco) into a single primary partition and to mark it as the following.
Tipo "6" para FAT16 para mdias inferiores a 2GB Tipo "c" para FAT32 (LBA) para mdias maiores Formatar a partio primria com o mkfs.vfat(8) com o seguinte.
A opo explcita e o seu nome de dispositivo, ex. "-F 32 /dev/sda1" para FAT32
Quando se usa sistemas de ficheiros FAT ou ISO9660 para partilhar dados, as consideraes de segurana devero ser as seguintes.
Archiving files into an archive file first using tar(1), cpio(1), or afio(1) to retain the long filename, the symbolic link, the original Unix file permission and the owner information. Splitting the archive file into less than 2 GiB chunks with the split(1) command to protect it from the file size limitation. Encriptar o ficheiro de arquivo para tornar seguro o seu contedo contra acesso no autorizado.
Nota
For FAT filesystems by its design, the maximum file size is (2^ 32 - 1) bytes = (4GiB - 1 byte). For some applications on the older 32 bit OS, the maximum file size was even smaller (2^31 1) bytes = (2GiB - 1 byte). Debian does not suffer the latter problem.
Nota
Microsoft itself does not recommend to use FAT for drives or partitions of over 200 MB. Microsoft highlights its short
comings such as inefficient disk space usage in their "Overview of FAT, HPFS, and NTFS File Systems". Of course, we should normally use the ext3 filesystem for Linux.
Dica
Para mais sistemas de ficheiros e acesso a sistemas de ficheiros, por favor leia "HOWTO dos Sistemas de Ficheiros".
Quando se partilha dados com outro sistema via rede, voc deve usar servios comuns. Aqui esto algumas dicas.
Tabela 10.6. Lista de servios de rede para escolher com o cenrio de utilizao tpico
tpico
SMB/CIFS sistema de sharing files via "Microsoft Windows ficheiros montado em Network", see smb.conf(5) and The rede com o Samba
NFS sistema de
ficheiros montado em Linux", veja exports(5) e Linux rede com o kernel do NFS-HOWTO Linux.
cliente web
sharing file between the web server/ client with encrypted Secure Sockets
servio HTTPS
cliente FTP
Although these filesystems mounted over network and file transfer methods over network are quite convenient for sharing data, these may be insecure. Their network connection must be secured by the following.
Veja tambm Seco 6.10, Outras aplicaes de servidor de rede e Seco 6.11, Outros clientes de aplicao de rede.
When choosing computer data storage media for important data archive, you should be careful about their limitations. For small personal data backup, I use CD-R and DVD-R by the brand name company and store in a cool, shaded, dry, clean environment. (Tape archive media seem to be popular for professional use.)
Nota
A fire-resistant safe are meant for paper documents. Most of the computer data storage media have less temperature tolerance than paper. I usually rely on multiple secure encrypted copies stored in multiple secure locations.
Optimistic storage life of archive media seen on the net (mostly from vendor info).
+ de 100 anos : Papel livre de cidos com tinta 100 anos : Armazenamento ptico (CD/DVD, CD/DVD-R) 30 anos : Armazenamento magntico (fita, disquete) 20 anos : Armazenamento ptico de mudana de fase (CD-RW)
Optimistic write cycle of archive media seen on the net (mostly from vendor info).
+ de 250,000 ciclos : Disco rijo + de 10,000 ciclos : Memria Flash 1,000 ciclos : CD/DVD-RW 1 ciclo : CD/DVD-R, papel
Cuidado
Figures of storage life and write cycle here should not be used for decisions on any critical data storage. Please consult the specific product information provided by the manufacture.
Dica
Since CD/DVD-R and paper have only 1 write cycle, they inherently prevent accidental data loss by overwriting. This is advantage!
Dica
If you need fast and frequent backup of large amount of data, a hard disk on a remote host linked by a fast network connection, may be the only realistic option.
Aqui discutimos manipulaes da imagem do disco. Veja tambm Seco 9.3, Dicas de armazenamento de dados.
O ficheiro de imagem de disco, "disco.img", de um dispositivo no montado, ex., a segunda drive SCSI "/dev/sdb", pode ser feito usando o cp(1) ou o dd(1) com o seguinte.
The disk image of the traditional PC's master boot record (MBR) (see Seco 9.3.1, Configurao das parties do disco) which reside on the first sector on the primary IDE disk can be made by using dd(1) by the following.
# dd if=/dev/hda of=mbr.img bs=512 count=1 # dd if=/dev/hda of=mbr-nopart.img bs=446 count=1 # dd if=/dev/hda of=mbr-part.img skip=446 bs=1 count=66
"mbr.img": O MBR com a tabela de parties "mbr-nopart.img": O MBR sem a tabela de parties "part.img": A tabela de parties apenas do MBR
If you have a SCSI device (including the new serial ATA drive)
Se voc est a criar uma imagem de uma partio de disco do disco original, substitua "/dev/hda" por "/dev/hda1" etc.
O ficheiro de imagem de disco "disk.img" pode ser escrito para um dispositivo desmontado, ex. a segunda drive SCSI "/dev/sdb" como tamanho correspondente, com o seguinte.
# dd if=disk.img of=/dev/sdb
Similarly, the disk partition image file, "partition.img" can be written to an unmounted partition, e.g., the first partition of the second SCSI drive "/dev/sdb1" with matching size, by the following.
# dd if=partition.img of=/dev/sdb1
The disk image "partition.img" containing a single partition image can be mounted and unmounted by using the loop device as follows.
# mkdir -p /mnt/loop0 # mount -t auto -o loop partition.img /mnt/loop0 ...hack...hack...hack # umount partition.img
Each partition of the disk image "disk.img" containing multiple partitions can be mounted by using the loop device. Since the loop device does not manage partitions by default, we need to reset it as follows.
# modinfo -p loop # verify kernel capability max_part:Maximum number of partitions per loop device max_loop:Maximum number of loop devices # losetup -a # verify nothing using the loop device # rmmod loop # modprobe loop max_part=16
Disk /dev/loop0: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x452b6464
Start 1 601
# mkdir -p /mnt/loop0p1 # mount -t ext3 /dev/loop0p1 /mnt/loop0p1 # mkdir -p /mnt/loop0p2 # mount -t ext3 /dev/loop0p2 /mnt/loop0p2 ...hack...hack...hack # umount /dev/loop0p1 # umount /dev/loop0p2 # losetup -d /dev/loop0
Alternatively, similar effects can be done by using the device mapper devices created by kpartx(8) from the kpartx package as follows.
# kpartx -a -v disk.img ... # mkdir -p /mnt/loop0p2 # mount -t ext3 /dev/mapper/loop0p2 /mnt/loop0p2 ... ...hack...hack...hack # umount /dev/mapper/loop0p2
Nota
You can mount a single partition of such disk image with loop device using offset to skip MBR etc., too. But this is more error prone.
Um ficheiro de imagem de disco, "disk.img" pode ser limpo de todos os ficheiros removidos em uma imagem limpa "new.img" com o seguinte.
# mkdir old; mkdir new # mount -t auto -o loop disk.img old # dd bs=1 count=0 if=/dev/zero of=new.img seek=5G # mount -t auto -o loop new.img new # cd old # cp -a --sparse=always ./ ../new/ # cd .. # umount new.img # umount disk.img
Se o "disk.img" est em ext2 ou ext3, voc tambm pode usar o zerofree(8) do pacote zerofree como se segue.
# losetup -f -v disk.img
A imagem de disco vazia "disk.img" que pode crescer at aos 5GiB pode ser feita usando o dd(1) como se segue.
Voc pode criar um sistema de ficheiros ext3 nesta imagem de disco "disk.img" usando o dispositivo loop como se segue.
# losetup -f -v disk.img Loop device is /dev/loop1 # mkfs.ext3 /dev/loop1 ...hack...hack...hack # losetup -d /dev/loop1 $ du --apparent-size -h disk.img 5.0G disk.img $ du -h disk.img 83M disk.img
For "disk.img", its file size is 5.0 GiB and its actual disk usage is mere 83MiB. This discrepancy is possible since ext2fs can hold sparse file.
Dica
The actual disk usage of sparse file grows with data which are written to it.
Using similar operation on devices created by the loop device or the device mapper devices as Seco 10.2.3, Montar o ficheiro de imagem de disco, you can partition this disk image "disk.img" using parted(8) or fdisk(8), and can create filesystem on it using mkfs.ext3(8), mkswap(8), etc.
The ISO9660 image file, "cd.iso", from the source directory tree at "source_directory" can be made using genisoimage(1) provided by cdrkit by the following.
Similarly, the bootable ISO9660 image file, "cdboot.iso", can be made from debian-installer like directory tree at "source_directory" by the following.
Here Isolinux boot loader (see Seco 3.3, Estgio 2: o gestor de arranque) is used for booting.
Voc pode calcular o valor md5sum e fazer a imagem ISO9660 directamente a partir do dispositivo CD-ROM como se segue.
$ isoinfo -d -i /dev/cdrom CD-ROM is in ISO 9660 format ... Logical block size is: 2048 Volume size is: 23150592 ... # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror | md5sum # dd if=/dev/cdrom bs=2048 count=23150592 conv=notrunc,noerror > cd.iso
Ateno
You must carefully avoid ISO9660 filesystem read ahead bug of Linux as above to get the right result.
Dica
# wodim --devices
imagem ISO9660, "cd.iso" escrito neste dispositivo, ex. "/dev/ hda", usando o wodim(1) com o seguinte.
Dica
Se o seu ambiente montar CDs automaticamente, desmonte-o com "sudo unmount /dev/hda" antes de usar o wodim(1).
Se "cd.iso" conter uma imagem ISO9660, ento o seguinte monta-o manualmente em "/cdrom".
Dica
Modern desktop system mounts removable media automatically (see Seco 10.1.10, Dispositivo de armazenamento amovvel).
The most basic viewing method of binary data is to use "od -t x1" command.
I:1.9
I:0.3
funcionalidades (GNOME)
I:3
beav * V:0.03,164 editor binrio e visualizador I:0.3 (HEX, ASCII, EBCDIC, OCTAL, )
I:0.09 84
codes)
Dica
HEX is used as an acronym for hexadecimal format with radix 16. OCTAL is for octal format with radix 8. ASCII is for American
Standard Code for Information Interchange, i.e., normal English text code. EBCDIC is for Extended Binary Coded Decimal Interchange Code used on IBM mainframe operating systems.
Tabela 10.8. Lista de pacotes para ler e escrever ficheiros sem montar o disco.
mtools *V:4, 408 utilitrios para sistemas de I:42 ficheiros MSDOS sem os montar
redundancy in the kernel filesystem level to achieve high levels of storage reliability.
There are tools to add data redundancy to files in application program level to achieve high levels of storage reliability, too.
par2 * V:0.5, 272 Parity Archive Volume Set, for I:1.7 checking and repair of files
I:0.02
Tabela 10.10. Lista de pacotes para recuperao de ficheiros e dados e anlise forense
danificados
recuperao gzip
I:0.7
forense. (Sleuthkit)
I:0.2
When a data is too big to backup as a single file, you can backup its content after splitting it into, e.g. 2000MiB chunks and merge those chunks back into the original file later.
Cuidado
Por favor certifique-se que no tem nenhuns ficheiros que comeam com "x" para evitar crashes com nomes.
In order to clear the contents of a file such as a log file, do not use rm(1) to delete the file and then create a new empty file, because the file may still be accessed in the interval between commands. The following is the safe way to clear the contents of the file.
$ :>ficheiro_a_ser_limpo
"5kb.file" 5KB de zeros. "7mb.file" so 7MB de dados aleatrios. "zero.file" pode ser um ficheiro de 0 bytes. Se existir, o seu mtime actualizado enquanto o seu contedo e tamanho so mantidos. "alwayszero.file" sempre um ficheiro de 0 bytes. Se existir, o seu mtime actualizado e o seu contedo reposto.
Existem vrias maneiras de apagar completamente os dados de um dispositivo inteiro tipo disco rijo, ex., stick de memria USB em "/dev/sda".
Cuidado
Check your USB memory stick location with mount(8) first before executing commands here. The device pointed by "/dev/sda" may be SCSI hard disk or serial-ATA hard disk where your entire system resides.
# dd if=/dev/zero of=/dev/sda
# dd if=/dev/urandom of=/dev/sda
# shred -v -n 1 /dev/sda
Since dd(1) is available from the shell of many bootable Linux CDs such as Debian installer CD, you can erase your installed system completely by running an erase command from such media on the system hard disk, e.g., "/dev/hda", "/dev/sda", etc.
Unused area on an hard disk (or USB memory stick), e.g. "/dev/ sdb1" may still contain erased data themselves since they are only unlinked from the filesystem. These can be cleaned by overwriting them.
# mount -t auto /dev/sdb1 /mnt/foo # cd /mnt/foo # dd if=/dev/zero of=junk dd: writing to `junk': No space left on device ...
Ateno
Normalmente isto suficientemente bom para o seu stick de memria USB. Mas no perfeito. A maioria das partes dos nomes de ficheiros apagados e os seus atributos podem ficar escondidos e permanecerem no sistema de ficheiros.
Mesmo que tenha acidentalmente apagado um ficheiro, desde que esse ficheiro esteja ainda a ser usado por alguma aplicao (em modo de leitura ou escrita), possvel recuperar tal ficheiro.
$ echo foo > bar $ less bar $ ps aux | grep ' less[ ]' bozo 4775 0.0 0.0 92200 884 pts/8 S+ 00:18 0:00 less bar $ rm bar $ ls -l /proc/4775/fd | grep bar lr-x------ 1 bozo bozo 64 2008-05-09 00:19 4 -> /home/bozo/bar (apagado) $ cat /proc/4775/fd/4 >bar $ ls -l -rw-r--r-- 1 bozo bozo 4 2008-05-09 00:25 bar $ cat bar
foo
$ ls -li bar 2228329 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:02 bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar $ rm bar $ lsof |grep bar|grep less less 4775 bozo 4r REG 8,3 4 2228329 /home/bozo/bar (apagado) $ cat /proc/4775/fd/4 >bar $ ls -li bar 2228302 -rw-r--r-- 1 bozo bozo 4 2008-05-11 11:05 bar $ cat bar foo
$ ls -li total 0 2738405 -rw-r--r-- 1 root root 0 2008-09-15 20:21 bar 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 baz 2738404 -rw-r--r-- 2 root root 0 2008-09-15 20:21 foo
que tm hardlinks. Os nmeros de inode deles so comuns "2738404". Isto significa que eles so o mesmo ficheiro em hardlink. Se voc no encontrar todos os ficheiros em hardlink por acaso, pode procur-los pelo inode, ex., "2738404" com o seguinte.
Todos os ficheiros apagadas mas abertos consomem espao no disco apesar de no estarem visveis ao du(1) normal. Eles podem ser listados com o seu tamanho com o seguinte.
The data security infrastructure is provided by the combination of data encryption tool, message digest tool, and signature tool.
gpg(1) gnupg *
I:99
assinatura OpenPGP
gpgv(1) gpgv *
I:99
extrai apenas a
informao secreta
de chaves secretas
OpenPGP
utilities for
supporting LUKS
utilities for
encryption
I:91
(OpenSSL)
See Seco 9.4, Dicas de encriptao de dados on dm-crypto and ecryptfs which implement automatic data encryption infrastructure via Linux kernel modules.
Aqui esto comandos do GNU Privacy Guard para gesto de chaves bsica.
Tabela 10.12. Lista de comandos do GNU Privacy Guard para gesto de chaves
comando descrio
cdigodescrio de confiana
m marginalmente confivel
f totalmente confivel
u de confiana absoluta
O seguinte envia a minha chave "1DD8D791" para o popular servidor de chaves "hkp://keys.gnupg.net".
A good default keyserver set up in "~/.gnupg/gpg.conf" (or old location "~/.gnupg/options") contains the following.
keyserver hkp://keys.gnupg.net
$ gpg --list-sigs --with-colons | grep '^sig.*\[User ID not found\]' |\ cut -d ':' -f 5| sort | uniq | xargs gpg --recv-keys
There was a bug in OpenPGP Public Key Server (pre version 0.9.6) which corrupted key with more than 2 sub-keys. The newer gnupg (>1.2.1-2) package can handle these corrupted subkeys. See gpg (1) under "--repair-pks-subkey-bug" option.
Aqui esto exemplos para usar comandos do GNU Privacy Guard em ficheiros.
comando descrio
file.asc
gpg --clearsign file|mail envia por mail uma mensagem com [email protected] assinatura clara para
gpg -o crypt_file.gpg -r public-key encryption intended for nome -e ficheiro name from file to binary
crypt_file.gpg
gpg -o crypt_file.gpg
gpg -o crypt_file.asc -a public-key encryption intended for -r nome -e ficheiro name from file to ASCII armored
crypt_file.asc
gpg -o crypt_file.asc -a symmetric encryption intended for -c ficheiro name from file to ASCII armored crypt_file.asc
crypt_file.gpg -r nome
Add the following to "~/.muttrc" to keep a slow GnuPG from automatically starting, while allowing it to be used by typing "S" at the index menu.
The gnupg plugin let you run GnuPG transparently for files with extension ".gpg", ".asc", and ".ppg".
md5sum(1) provides utility to make a digest file using the method in rfc1321 and verifying each file with it.
$ md5sum foo bar >baz.md5 $ cat baz.md5 d3b07384d113edec49eaa6238ad5ff00 foo c157a79031e1c40f85931829bc5fc552 bar $ md5sum -c baz.md5 foo: OK bar: OK
Nota
The computation for the MD5 sum is less CPU intensive than the one for the cryptographic signature by GNU Privacy Guard (GnuPG) . Usually, only the top level digest file is cryptographically signed to ensure data integrity.
Existem muitas ferramentas de fuso para cdigo fonte. Os seguinte comandos chamaram a minha ateno.
a linha
vimdiff(1) vim * V:15, 1792 compara dois ficheiros lado a lado no vim
I:33
dpatch(1) dpatch * V:1.4, 344 gere sries de patches I:11 para pacote Debian
dehtmldiff patchutilsV:1.8, 292 extrai um diff de uma (1) * I:14 pgina HTML
filterdiff patchutilsV:1.8, 292 extrai ou executa diffs (1) * I:14 de um ficheiro diff
grepdiff(1)patchutilsV:1.8, 292 so modificados por uma * I:14 patch que corresponde a um regex
lsdiff(1) *
rediff(1) patchutilsV:1.8, 292 fix offsets and counts * I:14 of a hand-edited diff
unwrapdiff patchutilsV:1.8, 292 demangle patches that (1) * I:14 have been word-wrapped
imediff2(1)imediff2 *I:0.10 76
cran completo
One of following procedures extract differences between two source files and create unified diff files "file.patch0" or "file.patch1" depending on the file location.
$ diff -u ficheiro.antigo ficheiro.novo > ficheiro.patch0 $ diff -u antigo/ficheiro novo/ficheiro > ficheiro.patch1
a program update. The receiving party applies this update to another file by the following.
$ patch -p0 ficheiro < ficheiro.patch0 $ patch -p1 ficheiro < ficheiro.patch1
If you have three versions of a source code, you can perform 3-way-merge effectively using diff3(1) by the following.
Aqui est um sumrio dos sistemas de controle de verso (VCS) no sistema Debian.
Nota
Se voc novato nos sistemas VCS, dever comear a aprender com o Git, o qual est a crescer rapidamente na popularidade.
(descontinuado)
bem feito"
standard
"CVS bem
subversionV:10, *
I:6
e algum C
bzr * DVCS
influenciado
DVCS com
distribudoalgebra
tla * DVCS
repositrio VCS
Subversion, RCS)
VCS is sometimes known as revision control system (RCS), or software configuration management (SCM).
Distributed VCS such as Git is the tool of choice these days. CVS and Subversion may still be useful to join some existing open source program activities.
Debian provides free VCS services via Debian Alioth service. It supports practically all VCSs. Its documentation can be found at http://wiki.debian.org/Alioth .
Cuidado
O pacote git era "GNU Interactive Tools" e o pacote git-core era DVCS em lenny.
There are few basics for creating a shared access VCS archive.
Use "umask 002" (see Seco 1.2.4, Control de permisses para ficheiros acabados de criar: umask) Make all VCS archive files belonging to a pertinent group Enable set group ID on all VCS archive directories (BSD-like file creation scheme, see Seco 1.2.3, Permisses do sistema de ficheiros) Make user sharing the VCS archive belonging to the group
Here is an oversimplified comparison of native VCS commands to provide the big picture. The typical command sequence may require options and arguments.
login
de trabalho do VCS
cvs svn statusgit status mostra o estado da rvore de status trabalho do VCS
<working_tree>
git repack -a re-empacota o repositrio -d; git prune local em um nico pacote
repositrio VCS
Cuidado
Invoking a git subcommand directly as "git-xyz" from the command line has been deprecated since early 2006.
Dica
GUI tools such as tkcvs(1) and gitk(1) really help you with tracking revision history of files. The web interface provided by many public archives for browsing their repositories is also
Dica
Git can work directly with different VCS repositories such as ones provided by CVS and Subversion, and provides the local repository for local changes with git-cvs and git-svn packages. See git for CVS users, and Seco 10.9.4, Git para o repositrio Subversion.
Dica
Git has commands which have no equivalents in CVS and Subversion: "fetch", "rebase", "cherry-pick",
10.7. CVS
Veja o seguinte.
The following configuration allows commits to the CVS repository only by a member of the "src" group, and administration of CVS
only by a member of the "staff" group, thus reducing the chance of shooting oneself.
# cd /var/lib; umask 002; mkdir cvs # export CVSROOT=/srv/cvs/project # cd $CVSROOT # chown root:src . # chmod 2775 . # cvs -d $CVSROOT init # cd CVSROOT # chown -R root:staff . # chmod 2775 . # touch val-tags # chmod 664 history val-tags # chown root:src history val-tags
Dica
You may restrict creation of new project by changing the owner of "$CVSROOT" directory to "root:staff" and its permission to "3775".
The default CVS repository is pointed by "$CVSROOT". The following sets up "$CVSROOT" for the local access.
$ export CVSROOT=/srv/cvs/project
Many public CVS servers provide read-only remote access to them with account name "anonymous" via pserver service. For example, Debian web site contents are maintained by webwml project via CVS at Debian alioth service. The following sets up "$CVSROOT" for the remote access to this CVS repository.
Nota
Since pserver is prone to eavesdropping attack and insecure, write access is usually disable by server administrators.
The following sets up "$CVS_RSH" and "$CVSROOT" for the remote access to the CVS repository by webwml project with SSH.
Voc tambm pode usar autenticao de chave pblica para SSH o que elimina o pedido remoto de palavra-passe.
Crie uma nova localizao de rvore fonte local em "~/caminho/ para/module1" com o seguinte.
Module name: "module1" Vendor tag: "Main-branch" (etiqueta para o branch completo) Release tag: "Release-initial" (etiqueta para um lanamento especfico)
$ cd ~/caminho/para/module1 $ cvs import -m "Start module1" module1 Main-branch Release-initial $ rm -Rf . # opcional
CVS does not overwrite the current repository file but replaces it with another one. Thus, write permission to the repository directory is critical. For every new module for "module1" in repository at "/srv/cvs/project", run the following to ensure this condition if needed.
# cd /srv/cvs/project
Check all available modules from CVS project pointed by "$CVSROOT" by the following.
$ cvs diff -u
You find that you broke some file "file_to_undo" severely but other files are fine.
Overwrite "file_to_undo" file with the clean copy from CVS by the following.
$ cvs up -C file_to_undo
$ cvs up -d
Watch out for lines starting with "C filename" which indicates conflicting changes.
Continuar a editar.
Re-add the release tag "Release-1" to updated CVS HEAD of main by the following.
Create a branch with a sticky branch tag "Release-initial-bugfixes" from the original version pointed by the tag "Release-initial" and check it out to "~/path/to/old" directory by the following.
$ cvs rtag -b -r Release-initial Release-initial-bugfixes module1 $ cd ~/path/to $ cvs co -r Release-initial-bugfixes -d old module1 $ cd old
Dica
Use "-D 2005-12-20" (ISO 8601 date format) instead of "-r Release-initial" to specify particular date as the branch point.
Work on this local source tree having the sticky tag "Release-initial-bugfixes" which is based on the original version.
Work on this branch by yourself until someone else joins to this "Release-initial-bugfixes" branch.
Sync with files modified by others on this branch while creating new directories as needed by the following.
$ cvs up -d
Update the local tree by HEAD of main while removing sticky tag ("-A") and without keyword expansion ("-kk") by the following.
$ cvs up -d -kk -A
Update the local tree (content = HEAD of main) by merging from the "Release-initial-bugfixes" branch and without keyword expansion by the following.
Dica
"cvs up" command can take "-d" option to create new directories and "-P" option to prune empty directories.
Dica
You can checkout only a sub directory of "module1" by providing its name as "cvs co module1/subdir".
Tabela 10.18. Notable options for CVS commands (use as first argument(s) to cvs(1))
oposignificado
To get the latest files from CVS, use "tomorrow" by the following.
Add module alias "mx" to a CVS project (local server) by the following.
$ export CVSROOT=/srv/cvs/project $ cvs co CVSROOT/modules $ cd CVSROOT $ echo "mx -a module1" >>modules $ cvs ci -m "Now mx is an alias for module1" $ cvs release -d .
Now, you can check out "module1" (alias: "mx") from CVS to "new" directory by the following.
Nota
In order to perform above procedure, you should have appropriate file permissions.
When you checkout files from CVS, their execution permission bit is retained.
Whenever you see execution permission problems in a checked out file, e.g. "filename", change its permission in the corresponding CVS repository by the following to fix it.
10.8. Subversion
Subversion is a recent-generation version control system replacing older CVS. It has most of CVS's features except tags and branches.
You need to install subversion, libapache2-svn and subversion-tools packages to set up a Subversion server.
Currently, the subversion package does not set up a repository, so one must set it up manually. One possible location for a repository is in "/srv/svn/project".
# mkdir -p
/srv/svn/project
just need to make the repository only writable by the WWW server by the following.
Add (or uncomment) the following in "/etc/apache2/mods-available /dav_svn.conf" to allow access to the repository via user authentication.
<Location /project> DAV svn SVNPath /srv/svn/project AuthType Basic AuthName "Subversion repository" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
Reiniciar o Apache2
Your new Subversion repository is accessible at URL "http:// localhost/project" and "http://example.com/project" from svn(1)
The following sets up Subversion repository for the local access by a group, e.g. project.
# chmod 2775
/srv/svn/project
Your new Subversion repository is group accessible at URL "file: ///localhost/srv/svn/project" or "file:///srv/svn/project" from svn(1) for local users belonging to project group. You must run commands, such as svn, svnserve, svnlook, and svnadmin under "umask 002" to ensure group access.
A group accessible Subversion repository is at URL "example.com: /srv/svn/project" for SSH, you can access it from svn(1) at URL "svn+ssh://example.com:/srv/svn/project".
Many projects uses directory tree similar to the following for Subversion to compensate its lack of branches and tags.
----- module1
| |-- branches | |-- tags | | |-- release-1.0 | | `-- release-2.0 | | | `-- trunk | | | | `-- module2 |-- file1 |-- file2 `-- file3
Dica
You must use "svn copy " command to mark branches and tags. This ensures Subversion to record modification history of files properly and saves storage spaces.
Crie uma nova localizao de rvore fonte local em "~/caminho/ para/module1" com o seguinte.
Module name: "module1" Subversion site URL: "file:///srv/svn/project" Subversion directory: "module1/trunk" Subversion tag: "module1/tags/Release-initial"
Dica
You can replace URLs such as "file:///" by any other URL formats such as "http://" and "svn+ssh://".
Here is an example of typical work flow using Subversion with its native client.
Dica
Client commands offered by the git-svn package may offer alternative work flow of Subversion using the git command. See Seco 10.9.4, Git para o repositrio Subversion.
Check all available modules from Subversion project pointed by URL "file:///srv/svn/project" by the following.
$ svn diff
You find that you broke some file "file_to_undo" severely but other files are fine.
Overwrite "file_to_undo" file with the clean copy from Subversion by the following.
$ svn up
Watch out for lines starting with "C filename" which indicates conflicting changes.
Look for unmodified code in, e.g., "filename.r6", "filename.r9", and "filename.mine".
Continuar a editar.
$ svn rm file:///srv/svn/project/module1/tags/Release-1
Re-add the release tag "Release-1" from updated Subversion HEAD of trunk by the following.
Create a branch with a path "module1/branches/ Release-initial-bugfixes" from the original version pointed by the path "module1/tags/Release-initial" and check it out to "~/ path/to/old" directory by the following.
Dica
Use "module1/trunk@{2005-12-20}" (ISO 8601 date format) instead of "module1/tags/Release-initial" to specify particular date as the branch point.
Work on this local source tree pointing to branch "Release-initial-bugfixes" which is based on the original version.
Work on this branch by yourself until someone else joins to this "Release-initial-bugfixes" branch.
$ svn up
Update the local tree (content = HEAD of trunk) by merging from the "Release-initial-bugfixes" branch by the following.
Dica
You can replace URLs such as "file:///" by any other URL formats such as "http://" and "svn+ssh://".
Dica
You can checkout only a sub directory of "module1" by providing its name as "svn co file:///srv/svn/project/module1/trunk/subdir module1/subdir", etc.
Tabela 10.19. Notable options for Subversion commands (use as first argument(s) to svn(1))
opo significado
10.9. Git
Git can do everything for both local and remote source code management. This means that you can record the source code changes without needing network connectivity to the remote repository.
You may wish to set several global configuration in "~ /.gitconfig" such as your name and email address used by Git by the following.
$ git config --global user.name "Name Surname" $ git config --global user.email [email protected]
If you are too used to CVS or Subversion commands, you may wish to set several command aliases by the following.
$ git config --global alias.ci "commit -a" $ git config --global alias.co checkout
Veja o seguinte.
manpage: git(1) (/usr/share/doc/git-doc/git.html) Git User's Manual (/usr/share/doc/git-doc/user-manual.html) A tutorial introduction to git (/usr/share/doc/git-doc/ gittutorial.html) A tutorial introduction to git: part two (/usr/share/doc/ git-doc/gittutorial-2.html) Everyday GIT With 20 Commands Or So (/usr/share/doc/git-doc/ everyday.html)
This also describes how to set up server like CVS and extract old data from CVS into Git. Other git resources available on the web
Ateno
Do not use the tag string with spaces in it even if some tools such as gitk(1) allow you to use it. It may choke some other git commands.
Even if your upstream uses different VCS, it may be good idea to use git(1) for local activity since you can manage your local copy of source tree without the network connection to the upstream. Here are some packages and commands used with git(1).
comando
pacote
popcon tamanhodescrio
V:5,
scalable,
I:4
git-gui(1)
git-gui *
I:2
git-svn * provide
git-svn(1)
I:3
V:0.17, import the I:1.6 676 data out of CVS into Git
git-cvsimport(1) git-cvs *
export a
V:0.17,
CVS server
git-cvsserver(1) git-cvs *
send a
V:0.12,
git-send-email(1) git-email *
automate the
Dica
With git(1), you work on a local branch with many commits and use something like "git rebase -i master" to reorganize change history later. This enables you to make clean change history. See git-rebase(1) and git-cherry-pick(1).
Dica
When you want to go back to a clean working directory without loosing the current state of the working directory, you can use "git stash". See git-stash(1).
You can check out a Subversion repository at "svn+ssh:// svn.example.org/project/module/trunk" to a local Git repository at "./dest" and commit back to the Subversion repository. E.g.:
$ git svn clone -s -rHEAD svn+ssh://svn.example.org/project dest $ cd dest ... make changes $ git commit -a ... keep working locally with git $ git svn dcommit
Dica
The use of "-rHEAD" enables us to avoid cloning entire historical contents from the Subversion repository.
You can manually record chronological history of configuration using Git tools. Here is a simple example for your practice to record "/etc/apt/" contents.
$ cd /etc/apt/ $ sudo git init $ sudo chmod 700 .git $ sudo git add . $ sudo git commit -a
Nota
sudo(8) is needed to work with any file permissions of configuration data. For user configuration data, you may skip sudo.
Nota
The "chmod 700 .git" command in the above example is needed to protect archive data from unauthorized read access.
Dica
For more complete setup for recording configuration history, please look for the etckeeper package: Seco 9.2.10, Gravar alteraes em ficheiros de configurao.
Tools and tips for converting data formats on the Debian system are described.
Standard based tools are in very good shape but support for proprietary data formats are limited.
libc6 * I:99 10012 caracteres texto entre locales por (charset) iconv(1) (fundamental)
recode *V:1.5, 772 charset+eolbetween locales I:7 (versatile, more aliases and features)
V:0.02,
eol
Dica
iconv(1) disponibilizado como parte do pacote libc6 e est sempre disponvel em praticamente todos os sistemas para
Voc pode converter a codificao de um ficheiro de texto com o iconv(1) com o seguinte.
Os valores de codificao so sensveis a maisculas/minsculas e ignoram "-" e "_" para correspondncia. As codificaes suportadas podem ser verificadas pelo comando "iconv -l"
operativos modernos
ISO-8859-1 antigo standard para linguagens da Europa ocidental, ASCII + caracteres acentuados
ISO-8859-2 antigo standard para linguagens da Europa oriental, ASCII + caracteres acentuados
ISO-8859-15antigo standard para linguagens da Europa ocidental, o ISO-8859-1 com o smbolo do euro
code page 850, Microsoft DOS characters with graphics for western European languages,
CP850
ISO-8859-1 variant
alphabet
ISO-2022-JPstandard encoding for Japanese email which uses only 7 bit codes
eucJP old Japanese UNIX standard 8 bit code and completely different from Shift-JIS
Nota
Some encodings are only supported for the data conversion and are not used as locale values (Seco 8.3.1, Bases de codificao).
For character sets which fit in single byte such as ASCII and ISO-8859 character sets, the character encoding means almost the same thing as the character set.
For character sets with many characters such as JIS X 0213 for Japanese or Universal Character Set (UCS, Unicode, ISO-10646-1) for practically all languages, there are many encoding schemes to fit them into the sequence of the byte data.
EUC and ISO/IEC 2022 (also known as JIS X 0202) for Japanese UTF-8, UTF-16/UCS-2 and UTF-32/UCS-4 for Unicode
For these, there are clear differentiations between the character set and the character encoding.
The code page is used as the synonym to the character encoding tables for some vendor specific ones.
Nota
Please note most encoding systems share the same code with ASCII for the 7 bit characters. But there are some exceptions. If you are converting old Japanese C programs and URLs data from the casually-called shift-JIS encoding format to UTF-8 format, use "CP932" as the encoding name instead of "shift-JIS" to get the
expected results: 0x5C "\" and 0x7E "~" . Otherwise, these are converted to wrong characters.
Dica
recode(1) may be used too and offers more than the combined functionality of iconv(1), fromdos(1), todos(1), frommac(1), and tomac(1). For more, see "info recode".
You can check if a text file is encoded in UTF-8 with iconv(1) by the following.
Dica
Use "--verbose" option in the above example to find the first non-UTF-8 character.
Aqui est um script exemplo para converter a codificao dos nomes de ficheiros daqueles criados sob sistemas operativos antigos para os modernos de UTF-8 num nico directrio.
#!/bin/sh ENCDN=iso-8859-1
The "$ENCDN" variable should be set by the encoding value in Tabela 11.2, Lista de valores de codificao e a sua utilizao.
For more complicated case, please mount a filesystem (e.g. a partition on a disk drive) containing such file names with proper encoding as the mount(8) option (see Seco 8.3.6, Codificao de nomes de ficheiros) and copy its entire contents to another filesystem mounted as UTF-8 with "cp -a" command.
The text file format, specifically the end-of-line (EOL) code, is dependent on the platform.
Debian (unix) LF ^J 10 0A
Macintosh da AppleCR ^M 13 0D
The EOL format conversion programs, fromdos(1), todos(1), frommac(1), and tomac(1), are quite handy. recode(1) is also useful.
Nota
Some data on the Debian system, such as the wiki page data for the python-moinmoin package, use MSDOS style CR-LF as the EOL code. So the above rule is just a general rule.
Nota
Most editors (eg. vim, emacs, gedit, ) can handle files in MSDOS style EOL transparently.
Dica
The use of "sed -e '/\r$/!s/$/\r/'" instead of todos(1) is better when you want to unify the EOL style to the MSDOS style from the mixed MSDOS and Unix style. (e.g., after merging 2
MSDOS style files with diff3(1).) This is because todos adds CR to all lines.
Tabela 11.4. List of TAB conversion commands from bsdmainutils and coreutils packages
funo bsdmainutilscoreutils
indent(1) from the indent package completely reformats whitespaces in the C program.
Editor programs such as vim and emacs can be used for TAB conversion, too. For example with vim, you can expand TAB with ":set expandtab" and ":%retab" command sequence. You can revert
Intelligent modern editors such as the vim program are quite smart and copes well with any encoding systems and any file formats. You should use these editors under the UTF-8 locale in the UTF-8 capable console for the best compatibility.
An old western European Unix text file, "u-file.txt", stored in the latin1 (iso-8859-1) encoding can be edited simply with vim by the following.
$ vim u-file.txt
This is possible since the auto detection mechanism of the file encoding in vim assumes the UTF-8 encoding first and, if it fails, assumes it to be latin1.
An old Polish Unix text file, "pu-file.txt", stored in the latin2 (iso-8859-2) encoding can be edited with vim by the following.
An old Japanese unix text file, "ju-file.txt", stored in the eucJP encoding can be edited with vim by the following.
An old Japanese MS-Windows text file, "jw-file.txt", stored in the so called shift-JIS encoding (more precisely: CP932) can be edited with vim by the following.
When a file is opened with "++enc" and "++ff" options, ":w" in the Vim command line stores it in the original format and overwrite the original file. You can also specify the saving format and the file name in the Vim command line, e.g., ":w ++enc=utf8 new.txt".
Please refer to the mbyte.txt "multi-byte text support" in vim on-line help and Tabela 11.2, Lista de valores de codificao e a sua utilizao for locale values used with "++enc".
The following reads a web page into a text file. This is very useful when copying configurations off the Web or applying basic Unix text tools such as grep(1) on the web page.
Similarly, you can extract plain text data from other formats
(ISO 8859-1)
comando "elinks
-dump"
converte ficheiros
catdoc * V:1.0, 2580 MSWordtexto,TeXdo MSWord para I:2 texto simples ou TeX
unhtml * I:0.14 76
ficheiro HTML
WordPerfect to
You can highlight and format plain text data by the following.
V:3,
V:0.05,
src2tex *
I:0.2
source-highlightV:0.14,2164 destaque
I:1.1
highlight *
I:1.3
everything (Python)
txt2html *
markdown text
markdown *
V:0.07,96
I:0.4
(X)HTML (Perl)
V:0.15,
asciidoc *
ReStructured
document
txt2tags *
I:0.3
udo * universal
document -
document
converter from
stx2any *
I:0.04
document
V:0.01,
converter from
rest2web *
V:0.01,
sisu * document
structuring,
The Extensible Markup Language (XML) is a markup language for documents containing structured information.
"O que XML?" "O que XSLT?" "O que XSL-FO?" "O que XLink?"
XML text looks somewhat like HTML. It enables us to manage multiple formats of output for a document. One easy XML system is the docbook-xsl package, which is used here.
Cada ficheiro XML comea com a declarao XML standard como o seguinte.
The basic syntax for one XML element is marked up as the following.
<name attribute="value">content</name>
XML element with empty content is marked up in the following short form.
<name attribute="value"/>
Other than adding markups, XML requires minor conversion to the content using predefined entities for following characters.
Cuidado
Nota
When SGML style user defined entities, e.g. "&some-tag:", are used, the first definition wins over others. The entity definition is expressed in "<!ENTITY some-tag "entity value">".
Nota
As long as the XML markup are done consistently with certain set of the tag name (either some data as content or attribute value), conversion to another XML is trivial task using Extensible Stylesheet Language Transformations (XSLT).
There are many tools available to process XML files such as the Extensible Stylesheet Language (XSL).
Basically, once you create well formed XML file, you can convert it to any format using Extensible Stylesheet Language Transformations (XSLT).
The Extensible Stylesheet Language for Formatting Object (XSL-FO) is supposed to be solution for formatting. The fop
package is in the Debian contrib (not main) archive still. So the LaTeX code is usually generated from XML using XSLT and the LaTeX system is used to create printable file such as DVI, PostScript, and PDF.
xsltproc * I:46 152 xslt (XML XML, HTML, plain text, etc.)
docbook-xslV:0.5,12792 xml/ processing DocBook XML to * I:7 xslt various output formats with XSLT
I:2
xslt XSLT
dblatex * I:2 7340 xslt DVI, PostScript, PDF documents with XSLT
fop * V:0.3,2280 xml/ converter ficheiros Docbook I:2 xsl-fo XML para PDF
Since XML is subset of Standard Generalized Markup Language (SGML), it can be processed by the extensive tools available for SGML, such as Document Style Semantics and Specification Language (DSSSL).
docbook-dssslV:0.5, 3100 xml/ processing DocBook XML * I:4 dsssl to various output formats with DSSSL
docbook-utilsV:0.2, 440 xml/ conversion to other * I:2 dsssl formats (HTML, RTF, PS, man, PDF) with docbook2* commands with DSSSL
sgml2x *
Dica
GNOME's yelp is sometimes handy to read DocBook XML files directly since it renders decently on X.
You can extract HTML or XML data from other formats using followings.
wv * document
V:1.3,
HTML
conversor de manual
man2html V:0.2, *
(manpage) para
(La)TeX e HTML
V:0.5, conversor de
V:0.01,
wp2x * I:0.07 240 WordPerfectqualquere 5.1 para TeX, LaTeX, troff, GML e HTML
DocBook XML
For non-XML HTML files, you can convert them to XHTML which is an instance of well formed XML. XHTML can be processed by XML tools.
libxml2-utilsV:3, 160 xmlhtmlxhtmltool with xmllint * I:49 (1) (syntax check, reformat, lint, )
Once proper XML is generated, you can use XSLT technology to extract data based on the mark-up context etc.
Printable data is expressed in the PostScript format on the Debian system. Common Unix Printing System (CUPS) uses Ghostscript as its rasterizer backend program for non-PostScript printers.
11.3.1. Ghostscript
The core of printable data manipulation is the Ghostscript PostScript (PS) interpreter which generates raster image.
The latest upstream Ghostscript from Artifex was re-licensed from AFPL to GPL and merged all the latest ESP version changes such as CUPS related ones at 8.60 release as unified release.
cmap-adobe-cns1 *V:0.03,1572 CMaps for Adobe-CNS1 (for I:0.3 traditional Chinese support)
cmap-adobe-gb1 * V:0.03,1552 CMaps for Adobe-GB1 (for I:0.3 simplified Chinese support)
libpoppler-glib4 V:7, 504 PDF rendering library * I:19 (GLib-based shared library)
Dica
You can merge two PostScript (PS) or Portable Document Format (PDF) files using gs(1) of Ghostscript.
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=bla.ps -f foo1.ps foo2.ps $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f foo1.pdf foo2.pdf
Nota
The PDF, which is widely used cross-platform printable data format, is essentially the compressed PS format with few additional features and extensions.
Dica
For command line, psmerge(1) and other commands from the psutils package are useful for manipulating PostScript documents. Commands in the pdfjam package work similarly for manipulating PDF documents. pdftk(1) from the pdftk package is useful for manipulating PDF documents, too.
The following packages for the printable data utilities caught my eyes.
poppler-utilsV:8, *
V:3, PostScript
document
conversion tools
poster *
I:9 80
posters out of
PostScript pages
V:0.9,
xpdf-utils * I:4 76
a2ps * 'Anything to
PostScript'
converter and
pretty-printer
pdftk *
conversion tool:
I:1.5
para PostScript
PDF document
pdfjam *
conversion tools:
I:1.8
convert documents
latex2rtf * V:0.14,508 latexrtf from LaTeX to RTF I:1.0 which can be read by MS Word
ps2eps *
I:12
(Encapsulated PostScript)
pretty print many source codes (C, C++, Java, Pascal, Perl, Pike, Sh,
V:0.02,
pdf2svg * I:0.5 60
graphics format
pdftoipe * I:0.16 88
Both lp(1) and lpr(1) commands offered by Common Unix Printing System (CUPS) provides options for customized printing the printable data.
You can print 3 copies of a file collated using one of the following commands.
$ lp -n 3 -o Collate=True nome_do_ficheiro
You can further customize printer operation by using printer option such as "-o number-up=2", "-o page-set=even", "-o page-set=odd", "-o scaling=200", "-o natural-scaling=200", etc., documented at Command-Line Printing and Options.
The Unix troff program originally developed by AT&T can be used for simple typesetting. It is usually used to create manpages.
TeX created by Donald Knuth is very powerful type setting tool and is the de facto standard. LaTeX originally written by Leslie
texliveV:0.5,124 (La)TeX TeX system for typesetting, * I:9 previewing and printing
Traditionally, roff is the main Unix text processing system. See roff(7), groff(7), groff(1), grotty(1), troff(1), groff_mdoc(7), groff_man(7), groff_ms(7), groff_me(7), groff_mm(7), and "info groff".
You can read or print a good tutorial and reference on "-me" macro in "/usr/share/doc/groff/" by installing the groff package.
Dica
"groff -Tascii -me -" produces plain text output with ANSI escape code. If you wish to get manpage like output with many "^ H" and "_", use "GROFF_NO_SGR=1 groff -Tascii -me -" instead.
Dica
To remove "^H" and "_" from a text file generated by groff, filter it by "col -b -x".
11.4.2. TeX/LaTeX
The TeX Live software distribution offers a complete TeX system. The texlive metapackage provides a decent selection of the TeX Live packages which should suffice for the most common tasks.
The teTeX HOWTO: The Linux-teTeX Local Guide tex(1) latex(1) "The TeXbook", por Donald E. Knuth, (Addison-Wesley) "LaTeX - A Document Preparation System", por Leslie Lamport, (Addison-Wesley) "The LaTeX Companion", por Goossens, Mittelbach, Samarin, (Addison-Wesley)
This is the most powerful typesetting environment. Many SGML processors use this as their back end text processor. Lyx provided by the lyx package and GNU TeXmacs provided by the texmacs package offer nice WYSIWYG editing environment for LaTeX while many use Emacs and Vim as the choice for the source editor.
The TEX Live Guide - TEX Live 2007 ("/usr/share/doc/ texlive-doc-base/english/texlive-en/live.html") (texlive-doc-base package) Um Guia Simples para o Latex/Lyx Processamento de Texto Usando o LaTeX Guia do Utilizador Local para o teTeX/LaTeX
When documents become bigger, sometimes TeX may cause errors. You must increase pool size in "/etc/texmf/texmf.cnf" (or more appropriately edit "/etc/texmf/texmf.d/95NonPath" and run update-texmf(8)) to fix this.
Nota
This file contains most of the required macros. I heard that you can process this document with tex(1) after commenting lines 7 to 10 and adding "\input manmac \proofmodefalse". It's strongly
recommended to buy this book (and all other books from Donald E. Knuth) instead of using the online version but the source is a great example of TeX input!
Voc consegue uma impresso bonita dum manual em PostScript com um dos seguintes comandos.
Apesar de escrever um manual (manpage) no formato troff simples ser possvel, existem alguns programas que ajudam a cri-lo.
docbook-to-manV:0.3, conversor de
gerao
txt2man *
V:0.02,88
I:0.2
de mail
mpack * I:23 84
tnef * V:0.8, 164 ms-tneftipo "application/ms-tnef" o I:1.5 qual um formato apenas da Microsoft
uudeview V:0.17,132 mail following formats: uuencode, * I:1.6 xxencode, BASE64, quoted printable, and BinHex
Dica
The Internet Message Access Protocol version 4 (IMAP4) server (see Seco 6.7, Servidor POP3/IMAP4) may be used to move mails out from proprietary mail systems if the mail client software can be configured to use IMAP4 server too.
Mail (SMTP) data should be limited to 7 bit. So binary data and 8 bit text data are encoded into 7 bit format with the Multipurpose Internet Mail Extensions (MIME) and the selection of the charset (see Seco 8.3.1, Bases de codificao).
The standard mail storage format is mbox formatted according to RFC2822 (updated RFC822). See mbox(5) (provided by the mutt package).
For European languages, "Content-Transfer-Encoding: quoted-printable" with the ISO-8859-1 charset is usually used for mail since there are not much 8 bit characters. If European text is encoded in UTF-8, "Content-Transfer-Encoding: quoted-printable" is likely to be used since it is mostly 7 bit
data.
For Japanese, traditionally "Content-Type: text/plain; charset= ISO-2022-JP" is usually used for mail to keep text in 7 bits. But older Microsoft systems may send mail data in Shift-JIS without proper declaration. If Japanese text is encoded in UTF-8, Base64 is likely to be used since it contains many 8 bit data. The situation of other Asian languages is similar.
Nota
If your non-Unix mail data is accessible by a non-Debian client software which can talk to the IMAP4 server, you may be able to move them out by running your own IMAP4 server (see Seco 6.7, Servidor POP3/IMAP4).
Nota
If you use other mail storage formats, moving them to mbox format is the good first step. The versatile client program such as mutt(1) may be handy for this.
You can split mailbox contents to each message using procmail(1) and formail(1).
Each mail message can be unpacked using munpack(1) from the mpack package (or other specialized tools) to obtain the MIME encoded contents.
Os seguintes pacotes para converso de dados grficos, edio e ferramentas de organizao chamaram a minha ateno.
V:13, programas de
imagemagick *
programas de manipulao de
V:1.6,
graphicsmagick *
V:5,
icoutils * convert MS
Windows icons
V:0.3, 200 pngico(bitmap) and cursors to I:1.3 and from PNG formats (
favicon.ico)
suite de
V:2,
V:1.9,
editveis (SVG)
Windows metafile
libwmf-bin *
V:1.4, 68
I:13
(vector)
conversion tools
post-processing
unpaper *
V:0.2, 736 imagemimagem tool for I:1.7 scanned pages for OCR
free OCR
V:0.7,
tesseract-ocr *
tesseract-ocr-eng *
I:2
gtkam * manipular
ficheiros de fotos de
(GNOME) - GUI
gphoto2 * manipular
V:0.3,
kamera * manipular
V:0.7,
ficheiros de fotos de
digitais (KDE)
jhead *
V:0.2,
V:0.14,
V:0.4, 56 I:3
digitais
encontra imagens
V:0.06,
findimagedupes *
V:0.03,
generate static
imageindex *
V:0.02,
V:0.2,
V:0.02, ferramenta de
outguess *
Esteganografia
CAD (KDE)
para animao e
mm3d * editor de
ttf, ps,
font aberta
editor de tipo
fontforge *
V:0.2,
hinting
TrueType fonts
Dica
Search more image tools using regex "~Gworks-with::image" in aptitude(8) (see Seco 2.2.6, Opes do mtodo de pesquisa com o aptitude).
Although GUI programs such as gimp(1) are very powerful, command line tools such as imagemagick(1) are quite useful for automating image manipulation with the script.
The de facto image file format of the digital camera is the Exchangeable Image File Format (EXIF) which is the JPEG image file format with additional metadata tags. It can hold information such as date, time, and camera settings.
The Lempel-Ziv-Welch (LZW) lossless data compression patent has been expired. Graphics Interchange Format (GIF) utilities which use the LZW compression method are now freely available on the Debian system.
Dica
Any digital camera or scanner with removable recording media works with Linux through USB storage readers since it follows the Design rule for Camera Filesystem and uses FAT filesystem. See Seco 10.1.10, Dispositivo de armazenamento amovvel.
There are many other programs for converting data. Following packages caught my eyes using regex "~Guse::converting" in aptitude(8) (see Seco 2.2.6, Opes do mtodo de pesquisa com o aptitude).
freepwingV:0.00, *
I:0.03 568 EBEPWINGto a single JIS X 4081 format (a subset of the EPWING V1)
You can also extract data from RPM format with the following.
I provide some pointers for people to learn programming on the Debian system enough to trace the packaged source code. Here are notable packages and corresponding documentation packages for
programing.
autoconf *
automake *
cpp-doc
gcc-doc
I:46
V:0.9,
"info gfortran"
gfortran *
I:6 8
disponibilizado por
gpc-doc (Pascal)
(Pascal)
glade * V:0.3, 1652 ajuda disponibilizada via menu I:2 (UI Builder)
python *
tcl8.4 * V:8, 3332 tcl(3) and detail manual pages I:46 provided by tcl8.4-doc
tk8.4 * V:5, 2712 tk(3) and detail manual pages I:34 provided by tk8.4-doc
vim *
Specifications v2"
Specifications v3"
Online references are available by typing "man name" after installing manpages and manpages-dev packages. Online references for the GNU tools are available by typing "info program_name" after installing the pertinent documentation packages. You may need to include the contrib and non-free archives in addition to the main archive since some GFDL documentations are not considered to be DSFG compliant.
Ateno
Do not use "test" as the name of an executable test file. "test" is a shell builtin.
Cuidado
You should install software programs directly compiled from source into "/usr/local" or "/opt" to avoid collision with system programs.
Dica
Code examples of creating "Song 99 Bottles of Beer" should give you good idea of practically all the programming languages.
The shell script is a text file with the execution bit set and contains the commands in the following format.
The first line specifies the shell interpreter which read and execute this file contents.
Reading shell scripts is the best way to understand how a Unix-like system works. Here, I give some pointers and reminders for shell programming. See "Shell Mistakes" (http:// www.greenend.org.uk/rjk/2001/04/shell.html) to learn from mistakes.
Unlike shell interactive mode (see Seco 1.5, O simples comando de shell and Seco 1.6, Processamento de texto estilo Unix), shell scripts frequently use parameters, conditionals,
and loops.
Many system scripts may be interpreted by any one of POSIX shells (see Tabela 1.13, Lista de programas da shell). The default shell for the system is "/bin/sh" which is a symlink pointing to the actual program.
bash(1) para lenny ou mais antigo dash(1) para squeeze ou mais recente
Avoid writing a shell script with bashisms or zshisms to make it portable among all POSIX shells. You can check it using checkbashisms(1).
mkdir /foo{bar,baz}
The "echo" command must be used with following cares since its implementation differs among shell builtin and external commands.
Avoid using command option "-e" and "-E". Evite usar quaisquer opes de comando excepto "-n". Avoid using escape sequences in the string since their handling varies.
Nota
Dica
Use the "printf" command instead of the "echo" command if you need to embed escape sequences in the output string.
parmetro da shellvalor
$?
formato da expresso do parmetro valor se var valor se var no estiver estiver definidodefinido
Aqui, os o caractere dois pontos ":" em todas estas operaes na realidade opcional.
with ":" = operator test for exist and not null without ":" = operator test for exist only
${var#prefix}
Each command returns an exit status which can be used for conditional expressions.
Nota
"0" in the shell conditional context means "True", while "0" in the C conditional context means "False".
Nota
"[" is the equivalent of the test command, which evaluates its arguments up to "]" as a conditional expression.
"<command> && <if_success_run_this_command_too> || true" "<command> || <if_not_success_run_this_command_too> || true" A multi-line script snippet as the following
Here trailing "|| true" was needed to ensure this shell script does not exit at this line accidentally when shell is invoked with "-e" flag.
-w <ficheiro> <ficheiro> existe e pode-se escrever nele -x <ficheiro> <ficheiro> existe e executvel
<ficheiro1> -ef <ficheiro1> e <ficheiro2> esto no mesmo <ficheiro2> dispositivo e no mesmo nmero de inode
<str1> < <str2> <str1> sorts before <str2> (locale dependent) <str1> > <str2> <str1> sorts after <str2> (locale dependent)
Arithmetic integer comparison operators in the conditional expression are "-eq", "-ne", "-lt", "-le", "-gt", and "-ge".
"for x in foo1 foo2 ; do command ; done" loops by assigning items from the list "foo1 foo2 " to variable "x" and executing "command". "while condition ; do command ; done" repeats "command"
while "condition" is true. "until condition ; do command ; done" repeats "command" while "condition" is not true. "break" permite sair do ciclo. "continue" enables to resume the next iteration of the loop.
Dica
The C-language like numeric iteration can be realized by using seq(1) as the "foo1 foo2 " generator.
Dica
A shell l uma linha. The shell groups a part of the line as one token if it is within "" or ''. The shell splits other part of a line into tokens by the following.
The shell checks the reserved word for each token to adjust its behavior if not within "" or ''.
reserved word: if then elif else fi for in while unless do done case esac The shell expands alias if not within "" or ''. The shell expands tilde if not within "" or ''.
"~" current user's home directory "~<user>" <user>'s home directory The shell expands parameter to its value if not within ''.
parameter: "$PARAMETER" or "${PARAMETER}" The shell expands command substitution if not within ''.
"$( command )" the output of "command" "` command `" the output of "command" The shell expands pathname glob to matching file names if not within "" or ''.
* quaisquer caracteres ? um caractere [] any one of the characters in "" The shell looks up command from the following and execute it.
executable file in "$PATH" The shell goes to the next line and repeats this process again from the top of this sequence.
Executing "set -x" in the shell or invoking the shell with "-x" option make the shell to print all of commands executed. This is quite handy for debugging.
In order to make your shell program as portable as possible across Debian system, it is good idea to limit utility programs to ones provided by essential packages.
"aptitude search ~E" lists essential packages. "dpkg -L <package_name> |grep '/man/man.*/'" lists manpages for commands offered by <package_name> package.
Tabela 12.8. List of packages containing small utility programs for shell scripts
I:99
Dica
Although moreutils may not exist ouside of Debian, it offers interesting small programs. Most notable one is sponge(8). See Seco 1.6.4, Substituio global com expresses regulares.
from dull interaction by echo and read commands to more interactive one by using one of the so-called dialog program etc.
whiptail V:42, 104 displays user-friendly dialog boxes * I:99 from shell scripts (newt)
dialog * V:4, 1592 displays user-friendly dialog boxes I:25 from shell scripts (ncurses)
zenity * V:8, 4992 display graphical dialog boxes from I:41 shell scripts (gtk2.0)
ssft * I:0.11 152 for zenity, kdialog, and dialog with gettext)
Here is a simple script which creates ISO image with RS02 data supplemented by dvdisaster(1).
#!/bin/sh -e # gmkrs02 : Copyright (C) 2007 Osamu Aoki <[email protected]>, Public Domain #set -x error_exit() { echo "$1" >&2 exit 1 } # Initialize variables DATA_ISO="$HOME/Desktop/iso-$$.img" LABEL=$(date +%Y%m%d-%H%M%S-%Z) if [ $# != 0 ] && [ -d "$1" ]; then DATA_SRC="$1" else # Select directory for creating ISO image from folder on desktop DATA_SRC=$(zenity --file-selection --directory \
--title="Select the directory tree root to create ISO image") \ || error_exit "Exit on directory selection" fi # Check size of archive xterm -T "Check size $DATA_SRC" -e du -s $DATA_SRC/* SIZE=$(($(du -s $DATA_SRC | awk '{print $1}')/1024)) if [ $SIZE -le 520 ] ; then zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="The data size is good for CD backup:\\n $SIZE MB" elif [ $SIZE -le 3500 ]; then zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="The data size is good for DVD backup :\\n $SIZE MB" else zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="The data size is too big to backup : $SIZE MB" error_exit "The data size is too big to backup :\\n $SIZE MB" fi # only xterm is sure to have working -e option # Create raw ISO image rm -f "$DATA_ISO" || true xterm -T "genisoimage $DATA_ISO" \ -e genisoimage -r -J -V "$LABEL" -o "$DATA_ISO" "$DATA_SRC" # Create RS02 supplemental redundancy xterm -T "dvdisaster $DATA_ISO" -e dvdisaster -i "$DATA_ISO" -mRS02 -c zenity --info --title="Dvdisaster RS02" --width 640 --height 400 \ --text="ISO/RS02 data ($SIZE MB) \\n created at: $DATA_ISO" # EOF
You may wish to create launcher on the desktop with command set
12.2. Make
Make is a utility to maintain groups of programs. Upon execution of make(1), make read the rule file, "Makefile", and updates a target if it depends on prerequisite files that have been modified since the target was last modified, or if the target does not exist. The execution of these updates may occur concurrently.
target: [ prerequisites ... ] [TAB] command1 [TAB] -command2 # ignore errors [TAB] @command3 # suppress echoing
Here " [TAB] " is a TAB code. Each line is interpreted by the shell after make variable substitution. Use "\" at the end of a line to continue the script. Use "$$" to enter "$" for environment values for a shell script.
Implicit rules for the target and prerequisites can be written, for example, by the following.
them). The "%" can match any nonempty substring in the actual target filenames. The prerequisites likewise use "%" to show how their names relate to the actual target name.
varivel automticavalor
$@ alvo
$^ todos os pre-requisitos
expanso da variveldescrio
12.3. C
You can set up proper environment to compile programs written in the C programming language by the following.
The libc6-dev package, i.e., GNU C Library, provides C standard library which is collection of header files and library routines used by the C programming language.
"info libc" (Referncia de funes da biblioteca C) gcc(1) e "info gcc" each_C_library_function_name(3) Kernighan & Ritchie, "The C Programming Language", 2nd edition (Prentice Hall)
A simple example "example.c" can compiled with a library "libm" into an executable "run_example" by the following.
$ cat > example.c << EOF #include <stdio.h> #include <math.h> #include <string.h>
int main(int argc, char **argv, char **envp){ double x; char y[11]; x=sqrt(argc+7.5); strncpy(y, argv[0], 10); /* prevent buffer overflow */ y[10] = '\0'; /* fill to make sure string ends with '\0' */ printf("%5i, %5.3f, %10s, %10s\n", argc, x, y, argv[1]); return 0; } EOF $ gcc -Wall -g -o run_example example.c -lm $ ./run_example
1, 2.915, ./run_exam,
(null)
Here, "-lm" is needed to link library "/usr/lib/libm.so" from the libc6 package for sqrt(3). The actual library is in "/lib/" with filename "libm.so.6", which is a symlink to "libm-2.7.so".
Look at the last parameter in the output text. There are more than 10 characters even though "%10s" is specified.
The use of pointer memory operation functions without boundary checks, such as sprintf(3) and strcpy(3), is deprecated to prevent buffer overflow exploits that leverage the above overrun effects. Instead, use snprintf(3) and strncpy(3).
12.4. Depurao
Debug is important part of programing activities. Knowing how to debug programs makes you a good Debian user who can produce meaningful bug reports.
O depurador principal em Debian o gdb(1) que lhe permite inspeccionar um programa enquanto ele executado.
Good tutorial of gdb is provided by "info gdb" or found elsewhere on the web. Here is a simple example of using gdb(1) on a "program" compiled with the "-g" option to produce debugging information.
$ gdb program (gdb) b 1 (gdb) run args (gdb) next ... (gdb) step ... (gdb) p parm ... (gdb) p parm=12 ... (gdb) quit # set value to 12 # print parm # step forward # set break point at line 1 # run program with args # next line
Dica
Many gdb(1) commands can be abbreviated. Tab expansion works as in the shell.
Since all installed binaries should be stripped on the Debian system by default, most debugging symbols are removed in the
normal package. In order to debug Debian packages with gdb(1), corresponding *-dbg packages need to be installed (e.g. libc6-dbg in the case of libc6).
If a package to be debugged does not provide its *-dbg package, you need to install it after rebuilding it by the following.
$ mkdir /path/new ; cd /path/new $ sudo apt-get update $ sudo apt-get dist-upgrade $ sudo apt-get install fakeroot devscripts build-essential $ sudo apt-get build-dep nome_do_pacote_fonte $ apt-get source nome_do_pacote $ cd nome_do_pacote*
Bump package version to one which does not collide with official Debian versions, e.g. one appended with "+debug1" when recompiling existing package version, or one appended with "~pre1" when compiling unreleased package version by the following.
$ dch -i
$ export DEB_BUILD_OPTIONS=nostrip,noopt
You need to check build scripts of the package and ensure to use "CFLAGS=-g -Wall" for compiling binaries.
When you encounter program crash, reporting bug report with cut-and-pasted backtrace information is a good idea.
It causes you to be dropped back to the gdb prompt. Type "bt" at the gdb prompt.
In case of program freeze, you can crash the program by pressing Ctrl-C in the terminal running gdb to obtain gdb prompt.
Dica
Often, you see a backtrace where one or more of the top lines are in "malloc()" or "g_malloc()". When this happens, chances are your backtrace isn't very useful. The easiest way to find some useful information is to set the environment variable
"$MALLOC_CHECK_" to a value of 2 (malloc(3)). You can do this while running gdb by doing the following.
(gdb) thread apply get a backtrace for all threads for all bt multi-threaded program
function calls
(gdb) thread apply get a backtrace and parameters as the all bt full combination of the preceding options
(gdb) thread apply get a backtrace and parameters for top 10 all bt full 10 calls to cut off irrelevant output
(gdb) set logging write log of gdb output to a file (the on default is "gdb.txt")
If a GNOME program preview1 has received an X error, you should see a message as follows.
If this is the case, you can try running the program with "--sync", and break on the "gdk_x_error" function in order to obtain a backtrace.
$ ldd /bin/ls librt.so.1 => /lib/librt.so.1 (0x4001e000) libc.so.6 => /lib/libc.so.6 (0x40030000) libpthread.so.0 => /lib/libpthread.so.0 (0x40153000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
kmtrace *
splint *
perl * V:88, 18528 interpreter with internal static I:99 code checker: B::Lint(3perl)
I:0.7
linklint * V:0.05,432 fast link checker and web site I:0.3 maintenance tool
Nota
You need to provide your own "main()" and "yywrap()". Otherwise, your flex program should look like this to compile without a library. This is because that "yywrap" is a macro and "%option main" turns on "%option noyywrap" implicitly.
Alternatively, you may compile with the "-lfl" linker option at the end of your cc(1) command line (like AT&T-Lex with "-ll"). No "%option" is needed in this case.
Several packages provide a Yacc-compatible lookahead LR parser or LALR parser generator in Debian.
pacotepopcon tamanhodescrio
You need to provide your own "main()" and "yyerror()". "main()" calls "yyparse()" which calls "yylex()", usually created with Flex.
%%
%%
12.7. Autoconf
Autoconf is a tool for producing shell scripts that automatically configure software source code packages to adapt to many kinds of Unix-like systems using the entire GNU build
system.
autoconf(1) produces the configuration script "configure". "configure" automatically creates a customized "Makefile" using the "Makefile.in" template.
Ateno
Debian does not touch files in "/usr/local/" or "/opt". So if you compile a program from source, install it into "/usr/local/" so it does not interfere with Debian.
$ cd src $ ./configure --prefix=/usr/local $ make $ make install # this puts the files in the system
If you have the original source and if it uses autoconf(1)/ automake(1) and if you can remember how you configured it, execute as follows to uninstall the program.
$ ./configure "todas-as-opes-que-fornecer"
# make uninstall
Alternatively, if you are absolutely sure that the install process puts files only under "/usr/local/" and there is nothing important there, you can erase all its contents by the following.
If you are not sure where files are installed, you should consider using checkinstall(8) from the checkinstall package, which provides a clean path for the uninstall. It now supports to create a Debian package with "-D" option.
Although any AWK scripts can be automatically rewritten in Perl using a2p(1), one-liner AWK scripts are best converted to one-liner Perl scripts manually.
See perlrun(1) for the command-line options. For more crazy Perl scripts, Perl Golf may be interesting.
12.9. Web
Queries are presented to the browser user using HTML forms. Filling and clicking on the form entries sends one of the following URL string with encoded parameters from the browser to the web server.
"http://www.foo.dom/program.php?VAR1=VAL1&VAR2=VAL2&VAR3 =VAL3" "%nn" in URL is replaced with a character with hexadecimal nn value. A varivel de ambiente est definida como: "QUERY_STRING= "VAR1=VAL1 VAR2=VAL2 VAR3=VAL3"". CGI program (any one of "program.*") on the web server executes itself with the environment variable "$QUERY_STRING". stdout of CGI program is sent to the web browser and is presented as an interactive dynamic web page.
For security reasons it is better not to hand craft new hacks for parsing CGI parameters. There are established modules for them in Perl and Python. PHP comes with these functionalities. When client data storage is needed, HTTP cookies are used. When client side data processing is needed, Javascript is frequently used.
For more, see the Common Gateway Interface, The Apache Software Foundation, and JavaScript.
Searching "CGI tutorial" on Google by typing encoded URL http:// www.google.com/search?hl=en&ie=UTF-8&q=CGI+tutorial directly to the browser address is a good way to see the CGI script in action on the Google server.
perl * V:88, 18528 AWKPERL convert source codes from I:99 AWK to PERL: a2p(1)
Captulo 2, Gesto de pacotes Debian para compreender o sistema bsico de pacotes Seco 2.7.10, Portando um pacote para o sistema stable para compreender o processo de portar bsico Seco 9.8.4, Sistema chroot para compreender as tcnicas de chroot bsicas debuild(1), pbuilder(1) e pdebuild(1) Seco 12.4.2, Depurar o pacote Debian para recompilar para depurao Guia dos Novos Maintainers da Debian como tutorial (o pacote maint-guide) Referncia de Programadores da Debian (o pacote developers-reference) Manual de Polticas Debian (o pacote debian-policy)
Existem pacotes como os dh-make, dh-make-perl, etc., que ajudam no processo em empacotamento.
Apndice A. Apndice
The Linux system is a very powerful computing platform for a networked computer. However, learning how to use all its capabilities is not easy. Setting up the LPR printer with non-PostScript printer was a good example of stumble points. (There are no issues anymore since newer installations use new CUPS system.)
There is a complete, detailed map called the "SOURCE CODE". This is very accurate but very hard to understand. There are also references called HOWTO and mini-HOWTO. They are easier to understand but tend to give too much detail and lose the big picture. I sometimes have a problem finding the right section in a long HOWTO when I need a few commands to invoke.
I hope this "Debian Reference (version 2)" provides a good starting direction for people in the Debian maze.
Debian Reference was initiated by Osamu Aoki <osamu at debian dot org> as a personal system administration memo. Many contents came from the knowledge I gained from the debian-user mailing list and other Debian resources.
Following a suggestion from Josip Rodin, who was very active with the Debian Documentation Project (DDP), "Debian Reference (version 1, 2001-2007)" was created as a part of DDP documents.
estava ultrapassada e comeo a reescrever muitos contedos. A nova "Debian Reference (verso 2)" lanada em 2008.
Os contedos do tutorial pode ser rastreados at sua origem e inspirao com o seguinte.
tornado obsoleto pelo "Debian Tutorial" "Debian Tutorial" by Havoc Pennington. (11 December, 1998)
parcialmente escrito por Oliver Elphick, Ole Tetlie, James Treacy, Craig Sawyer, e Ivan E. Moore II tornado obsoleto por "Debian GNU/Linux: Guia de Instalao e Utilizao" "Debian GNU/Linux: Guide to Installation and Usage" by John Goerzen and Ossama Othman (1999)
The package and archive description can trace some of their origin and their inspiration in following.
"FAQ da Debian" (verso de Maro 2002, quando isto era mantido por Josip Rodin)
The other contents can trace some of their origin and their inspiration in following.
A "Debian Reference (verso 1)" anterior foi criada com muitos contribuintes.
a maior contribuio de contedos em tpicos de configurao de rede por Thomas Hood contribuio significante de contedos em tpicos relacionados com X e VCS por Brian Nelson a ajuda na construo de scripts e muitas correces no contedo por Jens Seidel extensive proofreading by David Sewell muitas contribuies pelos tradutores, contribuintes, e relatrios de bugs
Many manual pages and info pages on the Debian system were used as the primary references to write this document. To the extent Osamu Aoki considered within the fair use, many parts of them, especially command definitions, were used as phrase pieces after careful editorial efforts to fit them into the style and the objective of this document.
A descrio do depurador gdb foi expandida usando Contedos wiki Debian em backtrace com consentimento por Ari Pollak, Loc
O contedo do "Debian Reference (verso 2)" maioritariamente trabalho meu com excepo do descrito acima. Este foi tambm actualizado pelos contribuintes.
O Documento "Debian Reference (verso 2)" foi traduzido por Amrico Monteiro a_monteiro_AT_netcabo.pt.
O autor, Osamu Aoki, agradece a todos os que ajudaram a tornar possvel este documento.
The source of the English original document is currently written in AsciiDoc text files. AsciiDoc is used as convenience only since it is less typing than straight XML and supports table in the very intuitive format. You should think XML and PO files as real source files. Via build script, it is converted to DocBook XML format and automatically generated data are inserted to form a final Docbook XML source. This final Docbook XML source can be converted to HTML, plain text, PostScript, and PDF. Currently, only HTML and plain text conversions are enabled.