Perguntas e Respostas sobre o Linux

Um White Paper Sobre o Linux

Prefácio

Para alguém novo (ou até mesmo não tão novo) no Linux®, existem centenas de perguntas, problemas e preocupações que surgem durante o processo de aprendizado, especialmente para alguém que vem do mundo do Microsoft® Windows®. Outros white papers sobre o Linux tratam de tópicos individuais, geralmente de forma mais extensa. Este paper trata um número de questões, tanto freqüente quanto raramente perguntadas, agrupadas por tópico. O foco é ajudar usuários Windows a fazerem a transição para o Linux, mas aqueles que estão mudando de outros sistemas operacionais também irão encontrar informações úteis.

Nota: Devido às diferenças entre as "distribuições" Linux, algumas informações abaixo podem aplicar-se a uma distribuição e não a outra. Isto será apontado onde for conhecido, entretanto, com todas as distribuições disponíveis é impossível identificar todas as situações deste tipo aqui. Se o problema é que um comando ou programa descrito não existir em uma dada distribuição, é geralmente possível copiar o mesmo de um site Web, se necessário. Por outro lado, pode haver um utilitário de funcionalidade similar fornecido com a distribuição. Para descobrir isto, consulte o manual do usuário ou contacte o fabricante da distribuição. Se tudo isto falhar, existe uma lista de sites Web na seção Miscelânea, abaixo, que pode ser de alguma ajuda.

Para questões de terminologia geral, refira-se ao white paper chamado A Brief Linux Glossary for Windows Users, disponível na mesma fonte em que este paper foi obtido.

Nota Especial: Se você está lendo este documento online com o Adobe Acrobat Reader, clique nos endereços Web destacados para ir a estes sites Web via seu Web browser.

Conteúdo

Instalação

Estas questões tratam de alguns aspectos da instalação de um sistema operacional.

P. Durante a instalação o Linux cria uma partição de troca. Por que eu preciso isto e qual a diferença para um arquivo de troca do Windows?

Da mesma forma que o Windows, o Linux usa um certo espaço para armazenar temporariamente programas, quando não há RAM (memória de acesso randômico) suficiente para manter todos os programas que estão em execução. Geralmente, o programa usado menos recentemente (ou parte de programa) é copiado da memória para um arquivo em seu disco rígido até ser necessário novamente, até que o último programa utilizado seja trocado de lugar e o primeiro programa é carregado novametne na memória (esta é uma explicação bastante simplificada, existe mais coisas, mas esta explicação deve servir para esta questão). Este arquivo é chamado de arquivo de troca (swap file) no Windows ou OS/2, e "espaço de troca" ("swap space") no Linux, mas em qualquer dos casos é um tipo de arquivos de dados que é lido e escrito enquanto o sistema está rodando.

O Windows coloca o arquivo de troca (um arquivo de sistema e oculto com diferentes nomes para diferentes versões do Windows) na partição de dados botável por padrão. O OS/2 faz o mesmo, mas um usuário pode mudar o arquivo CONFIG.SYS e colocar o arquivo de troca em qualquer partição, em qualquer drive que ele queira. O Linux, por padrão, pede uma partição de troca especial na qual ele armazena o arquivo de troca (na verdade, o Linux permite que arquivo de troca sejam colocados em partições de dados, mas com alguns problemas -- veja mais adiante mais informações sobre isto).

P. Durante a instalação, eu tenho a escolha de criar o swap em uma partição Primária ou Extendida. Qual eu devo escolher?

Qualquer uma irá funcionar. Não existe vantagem técnica em escolher uma ou outra forma, mas existe um número limitado de partições primárias que podem ser criadas, de forma que se você está planejando instalar mais de um sistema operacional você provavelmente vai querer colocar o espaço de troca em uma partição Extendida, economizando uma partição Primária para outros usos.

Nota: Se você tem o Microsoft Windows instalado, ele pode não inicializar se você tiver mais de uma partição primária instalada no disco botável (que o Windows vê como C:). neste caso, o Linux terá que ser instalado em uma partição Extendida, ou em uma partição Primária em um segundo disco rígido. Para mais informações, veja a documentação do lilo (LInux LOaer) em um sistema Linux, usando o comando: man lilo (não, man não é um comando politicamente incorreto -- é apenas a abreviação de manual). Se você não tiver um sistema Linux configurado onde você possa ler a documentação do lilo, existem duas opções disponíveis: 1) se você está instalando a partir de um conjunto de CDs, procure por um diretório ou CD em separado (como no Red Hat 6.2) contendo documentação, possivelmente em formato HTML. 2) Visite sites Web sobre o Linux, como http://linux.ctyme.com e http://www.linuxdoc.org para encontrar documentação online.

P. Qual o tamanho que eu devo criar a partição de troca?

Apesar de ela poder ser menor, para melhores resultados o tamanho da partição deve ser pelo menos igual ao tamanho da memória instalada no sistema -- de preferência o dobro da memória física. Em outras palavras, se você tem 64MB de RAM instalada, use o dobro daquela quantia para sua partição de espaço de troca (64MB * 2 = 128MB).

Se você precisa mais de 128MB de espaço de troca, mas está usando uma distribuição mais antiga que não suporta aqruivso de troca maiores que 128MB, existem formas de contornar a limitação de 128MB do arquivo de troca: 1) O Linux permite o uso de mais de uma partição de troca em um disco rígido e 2) o Linux também permite que arquivos de troca sejam colocados em partições de dados (ou seja, nas mesmas partições que seus programas e arquivos de dados).

Se você criar uma partição de troca e depois decidir que ela não é grande o suficiente para suas necessidades, você pode apagar a partição original e trocar ela por uma partição de troca maior se você tem espaço contíguo o suficiente para isto -- em outras palavras, se não houver outra partição seguindo imediatamente a partição original de troca. Se não houver espaço suficiente para criar a partição de troca maior, você ainda pode criar uma segunda partição em qualquer outro lugar do drive. Elas não precisa ficar encostadas (ou você pode usar um programa de particionamento de discos, como o Partition Magic, para realocar o espaço das partições já existentes, sem perder dados). O Linux suporta até oito partições de troca.

Alternativamente, se você tem vários discos físicos, divir o espaço de troca entre os diferentes discos pode melhorar a performance do sistema, por que os vários drives podem ser usados concorrentemente para trocas (este aumento da performance é mais aparente em um ssiteam com drives SCSI, por que os dispositivos SCSI rodam em paralelo -- ao mesmo tempo -- enquanto dispositivos IDE padrão executam em série -- eles se alternam). Mesmo assim, em um dispositivo com múltiplos dispositivos IDE, pode ser mais rápido trocar entre discos físicos (uma operação eletrônica) que fazer as cabeças de leitura/gravação de um disco dançarem pelo disco inteiro, dividindo seu tempo entre partições no mesmo disco). Além disto, drives acrescentados ao sistema mais tarde podem ser mais rápidos que o drive original que vem com o sistema. Usando estes novos drives você terá leituras/gravações mais rápidas quando estiver fazendo trocas.

Ao dividir o espaço de troca em vários discos você também pode aumentar a confiabilidade do sistema. Como qualquer dispositivo, os discos rígidos tem uma expectativa de vida finita, de forma qu dividir a carga de trabalho entre múltiplos discos significa que o disco primário não precisa trabalhar tanto, o que, por sua vez, pode (nenhuma garantia, aqui) aumentar sua vida útil (para instruções sobre como fazer isto, veja a pergunta Como posso criar múltiplas partições de troca em um ou mais drives? mais adiante).

P. Como posso aumentar a performance usando múltiplas partições de troca?

Se seu sistema (especialmente um servidor) possui múltiplos drives configurados como um array RAID 0 (data striping), ele irá automaticamente dividir os dados por todos os drives em paralelo, auemntando bastnte a velocidade de gravações de discos versus uma configuração não-RAID, onde a partição de troca está em somente um drive. Obviamente nem todo mundo pode ter uma configuração RAID. Felizmente há um alaternativa que oferece muitos dos benefícios de performance em um um ambiente multidiscos, pelos menos no que tange à performance do espaço de troca.

Se for este o caso, existe uma forma de paralelizar leituras/escritas de arquivos de troca pelo uso da configuração de prioridade no arquivo /etc/fstab (Nota: é possível usar um editor de textos simples como o vi, mas se você não conseguir que as colunas fiquem alinhadas corretamente, ou usar tabs em vez de espaços, ou vice-versa, você pode corromper seu sistema -- assim, se você escolher este caminho, ao invés de usar uma ferramenta especificamente projetada para a edição do fstab, como o kfstab, certifique-se de ter uma cópia de segurança do fstab primeiro, de forma que você possa se recuperar de problemas com o sistema).

Quando você abrir o fstab, se você tem múltiplos drivers SCSI com uma partição de troca em cada um, você pode ver algo assim (sem os cabeçalhos):

<nome da partição> <ponto de montagem> <tipo da partição> <opções de montagem> <backup dump> <passo>
/dev/sda2 none swap sw 0 0
/dev/sdb2 none swap sw 0 0
/dev/sdc2 none swap sw 0 0
/dev/sdd2 none swap sw 0 0

Sob circunstâncias normais, o Linux irá usar a partição de troca /dev/sda2 primeiro, depois /dev/sdb2, e assim por diante, uma por vez, até que ele tenha espaço suficiente para atender suas necessidades atuais de espaço de troca.

Por outro lado, se você mudar as configurações para:

<nome da partição> <ponto de montagem> <tipo da partição> <opções de montagem> <backup dump> <passo>
/dev/sda2 none swap sw,pri=3 0 0
/dev/sdb2 none swap sw,pri=3 0 0
/dev/sdc2 none swap sw,pri=3 0 0
/dev/sdd2 none swap sw,pri=1 0 0

você estará atribuindo às três primeiras partições o mesmo nível de prioridade -- um nível maior que o da quarta partição (partições de troca são usdas na ordem da maior prioridade para a menor -- onde o nível de prioridade 32767 é o maior e 0 o menor). Esta configuração tem o efeito de forçar o Linux a escrever as três primeiras partições em paralelo, aumentando bastante o fluxo de leitura/escrita do espaço de troca. A quarta partição só será usada se as três primeiras forem preenchidas.

Além de paralelizar a troca, esta técnica também permite que se priorize o acesso aos drives mais rápidos primeiro. Assim, você pode configurar uma partição de troca de emergência em um disco velho e lento, usando uma prioridade mais baixa, de foram que ele será usado somente quando todo o espaço de troca de alta velocidade seja exaurido.

P. Como posso criar múltiplas partições de troca em um ou mais drives?

Para criar múltiplas partições:

  1. Primeiro, use o comando su - para entrar no modo de superusuário (se você não fizer isto, não vai poder usar o comando fdisk).
  2. entre o comando: fdiskd /dev/hda se seu disco de boot é IDE, ou use fdisk /dev/sda se seu disco de boot é SCSI (se você não está certo sobre o tipo de disco que seu sistema usa e chutar errado, o pior que pode acontecer é o Linux apresentar uma mensagem de erro dizendo "Unable to open xda". Você não vai estragar nada). Este é um programa de modo teto, por isto não é bonito. Onde ele diz "The number of cylinders for this disk is set to xxx" ("O número de cilidros deste disco está configurado para xxx") anote o número mostrado no lugar do xxx (por exemplo, 1024).
  3. No prompt "Command (m for help)"
    1. Escreva d (e aperte o ENTER) para ver as partições atuais. Verifique o número mostrado na coluna end para ver o último cilindro listado. Se ele for menor que o número de cilindros obtido no passo 2 acima, existe espaço para outra partição (isto só é necessário para criar outra partição no mesmo drive se sua distribuição Linux não permite partições de troca maiores que 128MB e você quer partições de troca adicionais). A diferença entre os dois números determina quanto espaço está disponível para ser usado.
    2. (Se já existe uma partição de troca, mas não é grande o suficiente, use o comando d (delete) para remover ela. Crie então uma nova, maior)
    3. Entre n para criar uma nova partição.
    4. Se você estiver criando uma partição Primária:
      1. Entre p para criar a partição. Quando perguntado pelo número da partição, use o número seguinte ao maior número de partição já existente (em outras palavras, se a última descrição de dispositivo na esquerda mostra /dev/hda1, use 2 como o novo número de partição).
      2. Escreva o número sugerido para o primeiro cilindro (que deve ser o número seguinte ao cilindro final da partição precedente, ou tecle Enter para usar o valor default.
      3. Entre o tamanho da partição em megabytes, como +128M (certifique-se de incluir tanto o + quanto o M ou você vai receber uma mensagem de erro "Value out of range").
      4. Entre p novamente para verificar se a nova partição foi criada. Ela deve mostrar um Id de tipo 83 e System type deve ser Linux.
      5. Entre t para mudar o tipo da partição, e entre o número da partição que você usou no passo 1) acima. Finalmente, quando perguntado pelo "Hex code", informe o código de tipo de partição de troca: 82. Se tudo funcionar corretamente, você deve ver uma mensagem como "Changed system type of partition [x] to 82 (Linux swap)" (onde [x] é o número da partição do passo 1).
    5. Se você está criando uma partição Extendida:
      1. Entre e para criar a partição. Quando perguntado pelo número de partição, use o sucessor do maior número de partição existente (em outras palavras, se a última descrição de Dispositivo mostra /dev/hda1, use 2 como novo número de partição).
      2. Escreva o número sugerido para o primeiro cilindro (que deve ser um a mais que o cilindro final da partição precedente), ou tecle Enter para usar o valor default.
      3. Pressione Enter para reservar todo o espaço disponível
      4. Entre p novamente para verificar se a nova partição Extendida foi criada. Ela deve ter um Id de tipo 5 e o tipo de System deve ser Extended.
      5. Entre t para mudar o tipo de partição, seguido do número da partição que você usou no passo 1 acima. Então, quando solicitado pelo "Hex code", entre o código de tipo de partição Linux Extended: 85. Se tudo funcionar corretametne, você deve ver uma mensagem tipo "Changed system type of partition [x] to 85 (Linux extended)" (onde [x] é o número da partição do passo 2). Nota: Este passo não é estritamente necessário. Você pode criar partições de troca Linux em uma partição extendida "regular", mas mudando o tipo de partição para Linux Extended leva só alguns segundos e torna clara a estrutura da partição para futuros usuários do fdisk neste sistema.
      6. Entre n para criar uma nova partição. Quando perguntado pelo número do primeiro cilindro, aperte Enter. Entre o tamanho desejado da partição de troca em megabytes, como: +128M. Entre p novamente para verificar se uma partição tipo 83 foi criada com o mesmo bloco de início da partição Linux extended que você informou no passo 1.
      7. Entre t para mudar o tipo da partição, e entre o número da partição recém criada. Quando perguntado pelo "Hex code", entre o código do tipo de partição de troca: 82. Se tudo funcionar corretamente, você deve ver a mensagem "Changed system type of partition [x] to 82 (Linux swap)".
      8. Se você não usar todo o espaço disponível para particionamento no passo 6, crie uma ou mais partições adicionais para armazenar dados, mas desta vez não troque o tipo de partição default de 83.
    6. Para escrever suas alterações no disco rígido e sair do programa, escreva w e aperte Enter.
  4. Quando você retornar ao painel Hard Disk Selection, selecione No further hard disk changes e tecle Enter.
  5. Repita os passos 2-4 para cada disco rígido adicional no qual você deseje acrescentar uma partição de troca, mudando o comando fdisk de fdisk /dev/hda para fdisk /dev/hdb, ou de fdisk /dev/sda para fdisk /dev/sdb, dependendo do tipo de disco rígido que você está usando. Quando estiver pronto, pressione q para sair do fdisk (para mais informações sobre as convenções de nomenclatura do Linux, veja a questão Espera aí! Você está dizendo que não existem letras de drives no Linux?).

Nota: Para ver a lista completa de tipos de partição disponíveis para sua distribuição Linux, no prompt "Command (m for help)", entre l (para "listar tipos de partições").

Por razões de performance, se você tem mais de um disco rígido sua primeira escolha deve ser criar múltiplas partições de troca, , ao invés de mútiplas partições no mesmo drive ou uma partição de troca e um arquivo de troca em uma partição de dados. Entretanto, se você ficar com poucas partições Primárias disponíveis,(ou não houver mais espaço de disco não-alocado que possa ser usado para criar novas partições), você pode criar arquivos de troca em partições de dados existentes. Para isto, veja a questão Como eu crio um arquivo de troca em uma partição de dados do Linux?, abaixo.

P. Como eu crio um arquivo de troca em uma partição de dados do Linux?

Se por alguma razão você não pode, ou não quer, criar partições de troca Linux -- ou se você não tem mais espaço disponível no disco para usar para uma nova partição de troca -- é possível criar arquivos de troca em partições que guardam programas e/ou arquivos de dados. Entretanto, sua primeira escolha deve ser por uma ou mais partições de troca Linux.

Nota Importante: Existem duas desvantagens na colocação de arquivos de troca fora de partições de troca: 1) a performance de arquivos de trocas que são localizados em partições de dados é mais lenta que que arquivos de troca em partições de troca (devido ao overhead do sistema de arquivos e blocos de dados não-contíguos), e 2) é possível que se o arquivo de troca vier a ser danificado ele possa corromper o sistema de arquivos daquela partição, resultando em perda de dados. Por estas razões eu recomendo fortemente que você use partições de troca quando possível, deixando arquivos de troca em partições de dados apenas como último recurso. Arquivos de troca podem ser apropriados se você precisa temporariamente de um espaço de troca extra.

Podem ser criados até 8 arquivos de troca, se necessário. O Linux irá distribuir a troca de dados entre os arquivos conforme for apropriado.

Para criar um arquivo de troca em uma partição de dados, use um comando como o abaixo:

dd if=/dev/zero of=<swap path> bs=<size> count=<size>

Por exemplo:

dd if=/dev/zero of=/Swapdir/Swapfile bs=1024 count=56636

(Nota: Se /Swapdir não existe ainda, ele deve ser criado antes de executar o comando dd. Por exemplo: mkdir /Swapdir ou mkdir /home/Swapdir. Para criar o diretório, é preciso estar como root.)

O comando dd (algumas vezes chamado de "data duplicator" -- "duplicador de dados", apesar do significado original do acrônimo dd ter se perdido nas brumas do tempo) é usado para criar o arquivo de troca. O parâmetro if= identifica o arquivo de entrada (input file) para criar o arquivo de troca (o dispositivo "zero"), of= é usado para especificar o arquivo que será criado (arquivo de saída -- output file), bs= especifica o tamanho de bloco a ser usado e count= é onde você define o tamanho do arquivo de troca, em incrementos do tamanho do bloco. No exemplo anterior, estamos criando um arquivo de troca de 64MB (65.536 * 1024 [1K] é igual a 65.536K, ou 64MB), chamado de Swapfile (use o nome que você quiser), em um diretório chamado Swapdir.

A seguir, para inicializar (ou deixar pronto para o uso) o arquivo de troca, use o seguinte comando:

mkswap /Swapdir/Swapfile 65536

(Use o mesmo nome de arquivo e diretório do comando dd, e o tamanho de arquivo especificado no parâmetro count=. Se você receber uma mensagem de erro "No such file or directory" -- "Arquivo ou diretório não existe", verifique se você escreveu as maiúsculas/minúsculas corretamente e não omitiu o / inicial).

Após inicializar o arquivo, "sincronize" ele para garantir que foi gravado corretamente no disco:

sync

E, finalmente, informe o Linux para começar a usar o novo arquivo de troca:

swapon /Swapdir/Swapfile

Este comando irá ativar o arquivo de troca temporariamente (até a próxima vez que você fizer um reboot ou logout). Para tornar a mesma permanente, use uma ferramenta apropriada (como o kfstab [veja a questão anterior, Como posso aumentar a performance usando múltiplas partições de troca?, para maiores detalhes], que conhece o leiaute exato de arquivo que o fstab exige) para abrir o arquivo /etc/fstab.

Quando você abrir o fstab, verá algo parecido com isto (sem os cabeçalhos):

<nome da partição> <ponto de montagem> <tipo de partição> <opções de montagem> <backup dump> <passo>
/dev/hda1 / ext2 defaults 0 1
/dev/hda2 /usr ext2 defaults 0 1
/dev/hda3 none swap sw 0 0

(Podem haver outras partições de disco listadas se você possue outras partições de dados ou troca). Para ativar seu novo arquivo de partição, acrescente uma linha semelhante à seguinte seguindo imediatamente a última partição listada. A seguir, salve e feche o arquivo /etc/fstab.

<nome da partição> <ponto de montagem> <tipo de partição> <opções de montagem> <backup dump> <passo>
/Swapdir/Swapfile none swap sw 0 0

Se você decidir mais tarde que não precisa mais do arquivo de troca, é fácil removê-lo. Primeiro, use o comando swapoff para desabilitar o uso do arquivo:

swapoff /Swapdir/Swapfile

A seguir, basta deletar o arquivo:

rm /Swapdir/Swapfile

P. Eu já tenho um enorme arquivo de troca na minha partição Windows. Existe uma forma do Linux usar aquele espaço de troca em vez de criar outro arquivo?

Sim, apesar do Linux ser um pouco meticuloso em relação ao formato dos dados que vão para o arquivo de troca. Assim, é preciso fazer mais que simplesmente apontar para o Linux o diretório do arquivo de troca do Windows.

Eu encontrei várias descrições de como fazer isto (e todas elas foram apontadas como funcionando), mas eu não preciso testar qualquer uma delas eu mesmo. Todas elas parecem terrivelmente complicadas, a menos que você se considere bem versado em Linux, é melhor evitar este tópico inteiramente até que alguém crie um utilitário para simplificar este processo. Se você quer examinar o processo para decidir por si próprio se quer ou não tentar, leia o documento em http://www.linuxdoc.org/HOWTO/mini/Swap-Space-1.html. Ele parece ser bastante direto (use a seta direita e esquerda para avançar e retroceder pelo documento, e a seta para cima para ir à tabela de conteúdos do mesmo documento).

(Se você já tem uma partição de troca Linux antes de decidir tentar usar esta técnica para usar o arquivo de troca do Windows, você pode mais tarde apagar ela usando o fdisk, para liberar o espaço usado pela partição. Para dicas de como usar o fdisk para checar a tabela de partições, e para apagar uma partição, veja a questão Qual o tamanho que eu devo criar a partição de troca?, acima).

Outra forma possível de compartilhar espaço de troca é compartilhar uma partição de troca com os dois sistmas operacionais. Esta também não é uma tarefa simples, mas se você estiver interessado faça uma pesquisa sobre "Linux swap space" na Internet e você deverá encontrar vários documentos sobre o assunto.

P. Se eu instalar o Linux em um IBM® ThinkPad® com um TrackPoint® II ou II, que tipo de mouse eu seleciono?

O programa de instalação deve reconhecer corretamente o mouse TrackPoint II/III como um mouse tipo PS/2. A maior parte dos notebooks ThinkPad possui dois botões de "mouse", mas alguns sistemas novos tem um terceiro botão. Quando estiver instalando em um ThinkPad com dois botões, selecione a opção Emulate 3 Buttons na tela Mouse Configuration. Se seu ThinkPad tiver três botões, não selecione esta opção, ou ela irá causar problemas. Para usar o "terceiro botão" em um ThinkPad de dois botões (ou outro sistema com um mouse de dois botões), pressione os dois botões ao mesmo tempo (isto é chamado de "chording") (estas instruções aplicam-se igualmente a outros tipos de notebooks usando a tecnologia "palito ponteiro" da IBM, identificados como uma pequena borrachinha -- geralmente vermelha, verde ou preta -- entre as teclas G, H e B, mas para ter certeza, contate o fabricante do notebook).

Migração do Windows

Se você está no processo de troca do Windows para o Linux, ou está configurando um sistema Linux para coexistir com computadores Windows e talvez trocar dados entre os dois sistemas, estas questões podem economizar algum tempo e esforço para você.

P. Como faço para o Netscape para Linux reconhecer o arquivo de bookmarks do Netscape para Windows?

Para conseguir os melhores resultados, tente usar a mesma versão do Netscape nos dois sistemas, ou o mais próximo possivel (por exemplo, 4.72 e 4.7, mas não 3.0) para minimizar as chances de inconsistências no formato de arquivo de bookmark.

Use o Linux Kfind, ou similar, para determinar onde o arquivo default de bookmark é mantido. Ele deve estar em um diretório com nome parecido com /home/username/.netscape (substitua username pelo nome de sua conta). Se você simplesmente copiar o arquivo bookmark.htm do seu PC Windows para um disquete e colocar o mesmo no diretório apropriado do Linux, quando reiniciar o Netsaep e abrir os bookmarks, você irá ver os bookmarks default, em vez da sua lista particular de links. O problema está no nome do arquivo. A versão Linux é chamada de bookmarks.html (note as duas letras extras). Portanto, você deve renomear o arquivo bookmark.htm para bookmarks.html para que o Netscape para Linux reconheça o mesmo (reverta o processo para copiar um arquivo atualizado de volta para seu sistema Windows).

Primeiro, copie o arquivo bookmark.htm do seu sistema Windows. Se você estiver usando um disquete, disco Zip ou outra mídia removível, você pode renomear o arquivo na mídia removível antes de copiar para o sistema Linux (o arquivo deve estar armazenado em um diretório com nome parecido com \Arquivos de Programas\Netscape\Communicator\Users\seuusername, mas você pode usar o Localizar do Windows no menu Iniciar para encontrar o arquivo). Uma vez que o arquivo seja copiado para o disco removível, use o Gerenciador de Arquivos do Windows para renomeá-lo para bookmarks.html.

No computador Linux, usuários da interface gráfica KDE podem copiar o arquivo para o diretório /home/username/.netscape usando o K File Manager (basta clicar no ícone na barra de tarefas, ou Painel, que parece um uma casa em frente de uma pasta de arquivo). Usuários do Gnome podem usar o Gnome File Manager (clique no ícone do Gnome -- parecido com uma pegada -- no Painel, selecione Programas e então Gerenciador de Arquivos). Se você preferir trabalhar com um interface de linha de comando, use o seguinte comando:

cp /dev/fd0/bookmarks.html /home/yourusername/.netscape

(Note o uso de barras normais, e que /dev/fd0 é usado no lugar do a:. O Linux e o UNIX® não usam letras de drives, diferente do DOS, Windows ou OS/2).

Alternativamente, você pode combinar os passos de renomear e copiar em um só, usando o comando abaixo:

mv /dev/fd0/bookmark.htm /home/yourusername/.netscape/bookmarks.html

(Nota: O disquete pode estar "montado" como /dev/floppy ou /mnt/floppy na sua distribuição Linux. Se for este o caso, use aquele ponto de montagem em vez de /dev/fd0).

Se você transferir o arquivo diretamente para o sistema Linux (via conexão de rede, por exemplo), ou preferir renomear o arquivo uma vez ele esteja no sistema Linux, vá ao diretório /home/username/.netscape (cd /home/username/.netscape) e use um gerenciador de arquivos ou o comando move (mv) para mudar o nome: mv bookmark.htm bookmarks.html (se você usar o comando mv sem um diretório de destino, ele simplesmente renomeia os arquivos).

Nota: Além do arquivo de bookmarks, você pode também querer copiar os seguintes arquivos do mesmo diretório Netscape do seu sistema Windows, para seu sistema Linux: liprefs.js, prefs.js e proxy.cfg. Eles contém as informações de preferência de usuário (seleções de fontes, proxies, servidores, e assim por diante). Além disto, se voc^não tiver os "cookies" desabilitados no seu sistema Windows, copie cookies.txt também (algum sites Web armazenam informações sobre sua conta de usuário neste arquivo). Isto vai evitar que você precise reentrar manualmente as suas preferências no seu sistema Linux (provavelmente você terá de sobrescrever os arquivos default de mesmo nome em seu sistema Linux).

Se o Netscape estiver sendo executado, feche e reinicie o mesmo para que ele leia o novo arquivo bookmarks (bem como os outros arquivos que você copiou). Se isto não funcionar, verifique se você colocou o arquivo no diretório correto e escreveu corretametne o nome do arquivo -- ele deve estar todo em minúsculas.

P. Existe algum programa Linux que lê e escreve arquivos do Microsoft Office?

Sim, existe. Para uma lista de programas deste tipo e do quão compatíveis eles são, veja o documento intitulado What Good is a Linux Client?, disponível no mesmo site em que este documento (N. T.: o original deste documento pode ser encontrado em http://www-106.ibm.com/developerworks/library/l-faq/index.html).

Configuração

Estão aqui algumas dicas para adequação do Linux ou configuração de dispositivos.

P. Como eu consigo que meu "winmodem" funcione no Linux?

winmodem é na verdade uma marca registrada da 3Com Corporation, mas é usada geralmente para descrever uma classe de modems de baixo custo baseados em software, projetados para serem baratos pela substituição de algumas funções de hardware por software. Este software tipicamente incorpora algumas funções de baixo nível do Windows que não pdoem ser duplicadas no Linux. A maioria destes modems não funciona no Linux, entretanto alguns podem ser tornados compatíveis. Estes são chamados geralmente de "Linmodems". Vá para http://www.o2.net/~gromitkc/winmodem.html para obter mais informações sobre este tópico. Na maioria dos casos, a "correção" mais simples é desabilitar o soft-modem e instalar um adaptador de modem tradicional, ou adaptar um modem externo a uma porta serial ou USB. Muitos modems de 56K são bem baratos atualmente (para informações sobre como desabilitar o modem interno, consulte o guia do usuário do seu computador, ou contate a organização de suporte técnico do fabricante do seu computador).

P. Como eu descubro quanta memória o Linux está usando?

Na linha de comando, use o comando "concatenate": cat /proc/meminfo para informações sobre o uso da memória. você verá uma linha começando com algo tipo Mem: 64655360, etc. Esta é a memória total que o Linux pensa estar disponível para seu uso. Se você tiver mais que 64MB de RAM instalado e vê um número próximo ao acima, o Linux não está usando o resto. Para ver quanta memória está disponível, use o comando free.

P. Se o Linux não está usando toda a memória instalada, como eu faço que ele use o resto?

Para forçar o Linux a reconhecer e usar toda a memória que você tem instalado, abra uma janela de shell e faça logon temporariamente como "root", com o comando su (para instruções sobre como fazer isto, veja a seção Contas Root/Usuário, Grupos e Permissões, abaixo). Quando perguntado, informe a senha de root. No prompt de comando, use um editor para abrir o arquivo /etc/lilo.conf, como pico /etc/lilo.conf. A primeira linha do arquivo deve começar com boot=, seguida por outras linhas com map=, install= e assim por diante. Posicione o cursor em frente ao "b" de boot= e insira o seguinte: append="mem=128M" e pressione Enter para mover o boot= para a próxima linha. Finalmente, feche o arquivo e saia do editor (Ctrl-X no Pico, Q em vários outros editores). Salve as alterações se for solicitado. Na linha de comando, escreva /sbin/lilo para reinstalar o LILO, e então exit para terminar a sessão como root, e novamente exit para fechar a sessão shell. Na próxima vez que você reiniciar o Linux ele deve estar usando toda a memória instalada (use o comando cat /proc/meminfo para verificar).

Atenção: É possível fazer com que o Linux não possa ser mais inicializado especificando um tamanho de memória maior que o que está instalado fisicamente ou que está fisicamente disponível. Se seu computador reserva alguma memória, o que a torna indisponível ao Linux, você deve especificar menos memória. Por exemplo, durante a inicialização (POST) sua contagem de memória apresentar algo como 130496 (kilobytes) ao invés do total de 131072 KB que correspondem aos 128MB de RAM (128 * 1024), isto significa que parte da memória está reservada pelo hardware. Neste caso, não use mem=128M do exemplo acima. Ao invés disto, use o total exato apresentado de 130496K (append="mem=130896K"), ou haja de forma mais segura diminuindo o valor para 127MB, como em append="mem=127M". Se o seu Linux não puder mais ser inicializado corretamente (ou seja, ele trava quando tenta usar a memória reservada), o remédio é editar o arquivo /etc/lilo.conf para corrigir o tamanho da memória.

P. Eu tenho uma impressora conetada na porta paralela. Como é chamada esta porta no Linux?

Quando perguntado pelo nome de uma porta paralela no Linux, em vez de LPT1, LPT2, ou LPT3, use /dev/lp0, /dev/lp1, ou /dev/lp2, respectivamente.

P. Eu tenho um dispositivo conectado a uma porta serial. Como esta porta é chamada no Linux?

Quando perguntado pelo nome de uma porta serial no Linux, em vez de COM1 a COM8, use /dev/ttyS0 a /dev/ttyS7, respectivamente.

P. Como é chamado o drive de disquete no Linux?

Quando perguntado por algum drive de disquete no Linux, em vez de "a:", use /dev/fd0, /dev/floppy, ou /mnt/floppy, dependendo da distribuição Linux que você estiver usando. Diferente do mundo DOS/Windows, o UNIX/Linux não usa letras de drives. Os dispositivos são atribuidos a "pontos de montagem" (ou locais de montagem). Para determinar qual o ponto de montagem está atribuído à unidade de disquetes no seu sistema, escreva mount na linha de comando. Você deve ver algo do tipo:

/dev/hda1 on / type ext2 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/fd0 on /mnt/floppy type vfat (rw,nosuid,nodev,user=username)

Examine a parte que começa com /dev/fd0 on... Esta parte informa qual o ponto de montagem a ser usado, em vez de /dev/fd0: "/mnt/floppy", neste caso em particular.

P. Espera aí! Você está dizendo que não existem letras de drives no Linux?

Exatamente. Discos rígidos, disquetes, unidades de CD-ROM, discos Iomega Zip e Jaz, e outros dispositivos que recebem letras de drives no DOS/Windows recebem pontos de montagens no Linux. Dependendo do dispositivo envolvido, estas são algumas das designações usadas no Linux, seguidas das letras de drive Windows típicas:

Unidades de disquetes

unidade A: (no Windows) = /dev/fd0 (ou /dev/floppy ou /mnt/floppy no Linux, conforme foi explicado acima)
unidade B: = /dev/fd1 (veja a nota abaixo)

Unidades de discos IDE/EIDE

unidade C: (unidade de boot, primeira unidade/unidade primária na primeira controladora de discos) = /dev/hda
unidade D: (segunda unidade/unidade escrava na primeira controladora de discos) = /dev/hdb
unidade E: (primeira unidade/unidade primária da segunda controladora) = /dev/hdc
unidade F: (segunda unidade/unidade escrava da segunda controladora) = /dev/hdd
(unidades de CD-ROM geralmente são colocadas como o disco primário na segunda controladora, ou /dev/hdc. Unidades IDE/ATA Zip geralmente usam a próxima letra disponível após os discos rígidos e/ou unidades de CD-ROM)

Unidades SCSI

unidade C: (unidade de boot, unidade com o menor número na controladora primária) = /dev/sda
unidade D: (unidade com o segundo menor número na controladora primária) = /dev/sdb
unidade E: (unidade com o terceiro menor número da controladora primária) = /dev/sdc
(E assim por diante. Podem haver muitas unidades SCSI, em uma ou mais controladoras. A designaçaõ do ponto de montagem vai crescendo até /dev/sdz. Se houverem mais de 26 unidades físicas, elas serão nomeadas incrementalmente de /dev/sdaa a /dev/sdzz).

Nota: Diferente da unidade de disquetes primária (/dev/fd0), o Linux não mapeia automaticamente uma segunda unidade de disquetes (/sev/fd1) para algo como /dev/floppy ou /mnt/floppy. Entretanto, se você quiser pode configurar seu próprio alias, como /mnt/floppy2. As entradas mapeadas que são usadas para isto ficam localizadas no diretório /etc, em um arquivo chamado fstab. Para acrescentar um alias para fd1, use um edito para abrir /etc/fstab e procure a entradad para fd0, que deve parecer com isto:

/dev/fd0	/mnt/floppy	auto	noauto,owner	0 0

Esta linha mapeia /dev/fd0 para o diretório /mnt/floppy. Para criar um alias para fd1, crie um subdiretório no diretório /mnt chamado floppy2. Então acrescente uma nova entrada (usando qualquer editor que queira) para o arquivo fstab para mapear o segundo drive de disquete para um ponto de montagem, como abaixo:

/dev/fd1	/mnt/floppy2	auto	noauto,owner	0 0

Salve o arquivo e feche o editor. Agora, quando você usar o comando mount, dele deve incluir algo do tipo:

/dev/fd1 on /mnt/floppy2 type vfat (rw,nosuid,nodev,user=username)

P. E sobre partições de disco? Elas também não tem letras de drives no Linux?

Nope. O Linux só faz colocar números no fim do identificador do drive. Por exemplo, se o primeiro disco IDE tem três partições primárias, elas serão nomeadas/numeradas /dev/hda1, /dev/hda2, e /dev/hda3. Se um segundo disco rígido tem duas partições primárias, elas serão chamadas /dev/hdb1 e /dev/hdb2. De forma similar, um disco rígido SCSI com três partições primárias será nomeado /dev/sda1, /dev/sda2, e /dev/sda3.

Isto para partições primárias. Se você tiver também partições extendidas, elas começam a ser numeradas a partir de 5 e continuam daí. Se, por exemplo, você possui um disco IDE com duas partições primárias e duas partições secundárias, as partições serão chamadas /dev/hda1, /dev/hda2, /dev/hda5 e /dev/hda6.

P. Uau, que confusão! Não existe uma forma mais simples de acessar drives?

Sim. A maior parte das distribuições linux fornece ícones de desktop para alguns dispositivos, como disquetes e unidades de CD-ROM, que podem ser clicadas para acesso direto. Se você instalar software que forneça acesso a um disco Iomega Zip, ele também deve fornecer um ícone para uso. E, obviamente, os programas gráficos gerenciadores de arquivo, como o K File Manager e o Gnome File Manager permitem que os arquivos em vários drives sejam acessados sem se preocupar com letras de drive (quando você abre o KFM, procure por um ícone chamado mnt/. Quando clicado, o KFM irá mostrar todos os dispositivos que estão prontos para uso. Clique no ícone chamado cdrom/ para ver o conteúdo do CD que está inserido atualmente, ou clique no ícone chamado floppy/ para ver o que está no disquete).

P. Existe uma forma simples de ver quais dispositivos, como os drives, estão montados?

Sim. Usuários do Red Hat, que estejam rodando o KDE, podem clicar no menu KDE e selecionar Red Hat, a seguir System e, finalmente, Disk Management. Isto irá apresentar um painel que mosta os dipositivos montados, e fornece botões Mount e/ou Umount (assim você pode desmontar um dispositivo e remontar o mesmo). Os botões Mount/Umount mudam de uma para outra das opções sendo usadas. Também existem botões que permitem que você formate os drives.

Usuários do Gnome (de qualquer distribuições) podem selecionar File Manager no ícone Gnome, no Painel (a "barra de tarefas" do Linux) e então clicar no ícone /mnt para ver os vários dispositivos.

Eu não encontrei um equivalente KDE para a ferramenta Red Hat Disk Management em outras distribuições. Como uma alternativa, o comando Mount pode ser usado, como descrito anteriormente, na pergunta Como é chamado o drive de disquete no Linux?. Além disto, para uma visão menos poluída dos drives montados, com o espço total e espaço disponível, tente o comando disk filespace (use df -h para ver as medidas em formatos "legíveis por humanos" -- gigabytes, megabytes, etc.). Ele não irá mostrar dispositivos não-disco, entretanto (veja as páginas de manual info: info df, para mais informações).

P. Existe uma forma de mudar a linguagem default usada pelo sistema operacional e as aplicações?

A resposta curta é "sim". Obviamente, como muitas coisas no Linux, como depende da distribuição que você está usando, a interface de usuário (desktop environment) que está usando, suas aplicações e talvez outros fatores. A linguagem padrão é configurada durante a instalação, entretanto existem formas de mudar isto depois que o sistema esteja rodando.

Se, como muitos usuários, você está usando o ambiente KDE, a forma de alterar a linguagem é bastante simples. No menu KDE:

  1. Escolha Settings, então Desktop e depois Language.
  2. Especifique sua primeira escolha de cera de três dúzias de linguagens (incluindo Catalão, Eslovaco e Macedônio). Você pode escolher até três linguagens (quando você inicia um programa, o KDE irá tentar encontrar uma tradução para os menus, caixas de diálogo e mensagens na primeira linguagem. Se falhar, ele tentará a segunda escolha e, se necessário, a terceira. Se todas as três falharem -- ou você não selecionar três linguagens --, ele irá usar a linguagem padrão especificada durante a instalação).
  3. Clique em OK para salvar suas alterações e sair (o botão Apply irá salvar suas alterações mas não sairá. O botão Default irá retornar todas as três configurações de linguagem para a escolha original de "Default language").
  4. Faça logout e login novamente para ver as alterações.

Este procedimento somente afeta alguns utilitários de sistema, arquivos de ajuda, mensagens de erro e assim por diante. Suas aplicações podem ou não ser afetadas, dependendo de qual suporte para outras linguagens foi programado nelas. Assim, você pode acabar terminando com uma mistura de duas ou mais linguagens dependendo dos vários programas que você está rodando a qualquer momento. Você talvez possa configurar a linguagem da aplicação internamente também.

Se, após fazer o logout e login, você descobrir para seu horror que você selecionou a linguagem errada e não pode ler muitos ícones, menus e outras funções do sistema, tente seguir as intruções acima. Se você consegue retornar ao painel de configurações de linguagens, mas não pode ler os nomes das linguagens, os ícones de bandeiras devem permitir que você escolha a linguagem que quer, ou você pode apertar o botão Default na parte inferior da janela -- o segundo a partir da esquerada, se você não puder ler ele. Se você não consegue descobrir como voltar à configuração de linguagem, você pode ter que reinstalar o Linux para especificar a linguagem padrão novamente.

Usuários do Gnomepodem usar a mesma ferramenta KDE, se quiserem. O único passo extra é ir ao menu gnome, selecionar a opção KDE menus, e proceder como informado acima.

Se você usa outro ambiente de desktop que não o KDE ou o Gnome, veja o manual ou tutorial que vemc om o ambiente para encontrar informações sobre como mudar a linguagem.

Uso Geral

Como executar várias tarefas usando o Linux

P. Como eu formato um floppy (disquete)?

Se você está usando a interface de usuário KDE, a forma mais simples é usar o utilitário fornecido, de nome KDE Floppy Formatter. Basta clicar no ícone KDE no Panel, selecionar Utilities, e em seguida KFloppy. A opção File System dá à você a escolha do filesystem Dos (FAT - para DOS/Windows ou OS/2) ou o filesystem nativo do Linux, o ext2fs.

Se você está usando o Gnome, clique no ícone Gnome (a pegada com formato de G) no Panel e selecione Utilities, então GFFloppy.

Na linha de comando, para formatar um disquete com o filesystem nativo do Linux, use o comando mke2fs. Você pode usar o utilitário mtools para acessar disquetes formatados no DOS/Windows. Usse os comandos mformat, mcopy e mdel sem parâmetros para ver uma lista de opções (usando o mtools, para mudar de um diretório do floppy para outro, use o seguinte comando: mcd a:subdir, onde subdir é o nome do diretório para o qual você quer mudar).

P. Existe documentação online para a maioria dos programas?

Sim. A ferramenta oficial de ajuda do Linux é chamada man (abreviação de manual). Para ler o manual de vários programas (inclusive muitos comandos), escreva man <something> (onde <something> é o nome de um programa para o qual você quer ajuda) na linha de comando. Por exmplo, para ler o manual online do próprio programa man, use man man. Você pode também usar um visualizador chamado less para visualizar o manual: man man | less (onde o | é o símbolo de piping/encanamento -- Shift-Backslash -- localizado sobre a tecla Enter em um teclado de 101 teclas) (N. T.: no teclado ABNT2, está à direita do Shift da esquerda). Usando o less, aperte a tecla de espaços para avançar uma página por vez; para voltar use a tecla B. Quando estiver pronto, aperte a tecla Q para sair.

Muitos programas novos mudaram para a ferramenta info em vez de usar o man. Como com o man, você pode visualizar páginas info usando o comando infor <something>. Alguns programas agora fornecem páginas HTML ou XML, mantidas no diretório /usr/doc/<programname>, em vez de páginas man ou info. Estes documentos podem ser visualizados com um browser Web ou outro programa capaz de visualizar HTML/XML.

Outra opção é redirecionar o manual para um arquivo texto, para visualizar com um editor. Por exemplo: man mv | col -b >move.txt (para redirecionar o texto do comando mv) irá retirar todos os códigos de formatação detela que não tem equivalente impresso e copiar a saída para um arquivo chamado move.txt (col é o nome de um utilitário de formatação de textos). Uma vez gravado em um arquivo texto, ele pode ser lido com o Emacs, Pico, Vi, ou qualquer outro editor de texto (Nota: Substituir o > por >> no exemplo acima irá anexar o texto ao fim de um arquivo existente, enquanto que usar um > uma segunda vez irá sobrescrever o arquivo man.txt com novos dados).

De forma semelhante, para imprimir um manual você precisará enviar (pipe) o documento para um programa de formatação que irá retirar os códigos de formatação de tela antes de imprimir. Para fazer isto com páginas info, escreva info mv | col -b | lpr (lpr é o programa que envia o documento para a fila de impressão).

Outra fonte de informação útil "quick and dirty" (rápida e suja, ou seja, sem muita sofisticação) é o comando whatis. O comando whatis fornece uma breve sinopse de muitos comandos. Por exemplo, tente whatis man. Você verá várias "definições" do que o comando man faz. O mesmo para whatis whereis, para descobrir o que o comando whereis faz. Se não houver informações disponíveis para um comando em particular, você verá uma mensagem dizendo "nothing appropriate". Nota: Se o comando whatis não funcionar, isto significa que o banco de dados whatis não foi construído. Para criar o mesmo, primeiro use o comando su - para fazer o login como root, então entre o comando /usr/sbin/makewhatis. Este comando pode demorar vários minutos. Quando o processo terminar, tente o comando whatis novamente.

P. Como eu mato um programa que está travado?

Se você não é o dono do programa (a conta de usuário que iniciou o programa), você deve fazer o login como root (para instruções sobre como fazer isto, veja a sessão Contas Root/Usuário, Grupos e Permissões, abaixo). A seguir, na linha de comando, escreva o comando ps (process status -- status dos processos) para ver quais programas estão sendo executados. À direita do nome do processo existe um número de Process ID (PID), como, por exemplo, 506. Este é o número que você usa para matar o programa. Na linha de comando, digite kill pid (por exemplo, kill 506). Este comando informa ao programa que este deve se acertar (responder normalmente) ou cair fora (fechar a si mesmo). Geralmente isto resolve o programa, mas ocasionalmente são necessárias medidas mais drásticas. Precedendo o PID com um -9 (como em kill -9 506) irá matar o programa (este processo é chamado às vezes de fazer um "signal 9", para não ser confundido com "Plan 9 from Outer Space", um filme classe B).

Uma forma alternativa de matar um processo em background, ou daemon, é usar o parâmetro -HUP, como em kill -HUP 506. Este comando essencialmente sinaliza ao programa para fechar a si mesmo, então reiniciar e reler seu arquivo de configuração. Novamente, se o comando kill não funcionar da primeira vez, você pode ter que recorrer ao parâmetro -9 em vez do -HUP.

P. Existe uma forma de aumentar a prioridade de um programa para que ele rode mais rápido?

Sim. Se você tem um programa que normalmente demora um pouco para ser executado, e você realmente necessita que ele seja executado mais rápido, você pode aumentar sua prioridade de execução de forma que utilize mais ciclos do processador. Obviamente isto significa que todos os outros programas em execução irão rodar mais vagarosamente. Mas se isto é o que você quer, o comando nice fará isto por você.

O Linux suporta níveis de prioridade do 19 (menor) ao -20 (maior), com o nível de prioridade padrão sendo 0. Para mudar a prioridade para um número negativo, você primeiro deve fazer o logon como root. A seguir, para iniciar um programa com um nível de alta prioridade de -10, use o comando nice -n -10 myprog. Se você quiser aumentar a prioridade de um programa em execução, use o comando renice, identificando o programa pelo seu PID: renice -10 506 (o argumento -n não é usado).

De forma semelhante, se você tem um programa que demora bastante, e que é uma atividade de baixa prioridade, e que está tornando o sistema inteiro mais lento, você pode diminuir sua prioridade usando as mesmas técnicas, usando números positivos -- como 8 -- em vez de números negativos. Por padrão, o nice irá reduzir a prioridade por 10. Em outras palavras, o comando nice myprog é o mesmo que nice -n 10 myprog.

Pode ser necessário algum experimento ou teste para encontrar os níveis de prioridade para atribuir a programas específicos. Aumentar demais a prioridade pode derrubar o resto do sistema, diminuir demais e o programa pode levar uma eternidade para terminar. Via de regra, a menos que você tenha uma razão para mudar as prioridades, deixe-as como estão. A configuração padrão é a melhor na maior parte das vezes.

P. Existe um programa de verificação ortográfica que eu posso usar fora do editor?

Sim. O Linux inclui um programa chamado ispell, que pode ler qualquer arquivo texto, destacar palavras questionáveis, oferecer alternativas, e permite que você acrescente palavras ao dicionário ispell se desejado. Ele é executado na linha de comando, com uma interface de modo texto (ou seja, não gráfico), mas é bem fácil de usar. Existem vários parâmetros que podem ser usados (escreva ispell --? para uma lista delas ou então info ispell para explicações mais detalhadas). A maneira mais simples de usar o programa para verificar um arquivo chamado memo.txt seria ispell memo.txt. Ele pode checar até mesmo uma série de arquivos em ordem, como em ispell memo.txt mydata.txt ou mesmo ispell *.txt (para checar todos os arquivos no diretório atual que tem a extensão .txt).

Quando o programa é executado ele irá aprseentar uma palavra "questionável" junto com o contexto da linha do text que contém a palavra, e irá oferecer algumas sugestões para troca em uma lista numerada. Para selecionar uma das sugestões da lista para substituir a palavra original, basta escrever o número da palavra escolhida. Existem também várias outras opções de menu apresentadas na parte de baixo da tela do programa. Para substituir a palavra por algo que você vai escrever, use o R (ou r, o ispell não é sensível a maiúsculas/minúsculas) seguido da palavra que você quer que substitua a palavra destacada (você também pode escrever o número de uma palavra da lista. É o mesmo que escrever o número diretamente, mas caso você esquecer a opção está aí). Use o A para aceitar a palavra destacada como está (ou seja, ignorar a palavra) para o resto da sessão de correção ortográfica (a barra de espaços pode ser usada para informar ao ispell para aceitar/ignorar a palavra apenas desta vez). O I permite inserir (ou acrescentar) a palavra existente ao dicionário do ispell. Informando um L, você pode procurar outras palavras no dicionário (talvez você queira encontrar outra palavra que não esteja na lista de sugestões). Se a palavra está correta, mas as maiúsculas/minúsculas estão erradas, escolha o U para passar tudo para minúsculas ("uncapitalize"). Tanto o Q quanto o X irão terminar o programa. Se você especificou uma lista de arquivos para verificar a ortografia, o X irá parar a verificação do arquivo atual, e passar para o próximo. Essencialmente é um comando "salvar e sair". A opção Q, por outro lado, irá perguntar se você realmente quer sair imediatamente sem salvar as alterações (responda com um Y ou N, dependendo de sua preferência).

Certifique-se de conferir o arquivo de ajuda online associado ao programa entrando um ?. Além das opções explicadas acima, existem outras opções listadas que pode não saber oulembrar, incluindo a opção de reescrever a tela (^L).

Atenção: o ispell não faz nenhuma discriminação sobre o arquivo que está checando. É perfeitamente possível fazer a verificação ortográfica de um arquivo de um processador de textos ou de um arquivo binário. Salvar as alterações em um documento criado por um processador de texto pode (ou não) corromper o mesmo, mas o processador de textos provavelmente prossui seu próprio verificador ortográfico, por quê se preocupar com o ispell? Por outro lado, você irá corromper um programa se você alterar qualquer coisa e então salvar as alterações com a opção X. Se você acidentalmente abrir um arquivo binário (facilmente identificável pelo lixo apresentado que o ispell vai tentar corrigir), certifique-se de fechar o programa imediatamente com a opção Q.

GUI/Desktop

As seguintes questões envolvem window manager/desktop e outras questões sobre interface gráfica com o usuário.

P. Minha cópia do Linux veio com o KDE e o Gnome. Por que eu preciso de ambos?

Falando tecnicamente, você provavelmente não precisa dos dois. Entretanto, os dois ambientes de desktop são populares, assim, isto lhe dá a chance de decidir qual você gosta mais. Além disto, alguns programas irão funcionar comente com um ou outro, permitindo que você use os dois tipos de programas, mudando entre os dois desktops quando necessário.

P. Eu tenho tanto o KDE quanto o Gnome instalado. Como eu passo de um para o outro?

Na interface gráfica, basta fazer o logout. A seguir, na tela de Log in, escreva seu login ID e senha, e escolha qual desktop você deseja carregar (Session Type, ou tipo de sessão). Esta escolha vai ficar como padrão até que você mude ela para outra coisa.

P. Posso acrescentar mais temas de desktop para usar com o Gnome e KDE?

Sim. Uma fonte para mais temas Gnome é http://gtk.themes.org/. Para instalar um novo tema no Gnome, após fazer o download, inicie o Gnome Control Center clicando no ícone da "caixa de ferramentas" no Painel. Clique então em Theme Selector (sob Desktop) no painel à esquerda. Aperte o botão Install new theme (no centro do painel à direita), e quando a caixa de diálogo se abrir, role até o nome do arquivo que foi baixado (o nome deve ser algo tipo new_theme.tar.gz e provavelmente deve estar no seu diretório de login). Clique no nome do tema que você baixou e aperte o botão OK. Quando o tema aparecer na caixa Available Themes, você pode clicar no botão Preview (se Auto Preview não estiver selecionado) para ver como ele se parece antes de aplicar o tema. Se você achar que vai gostar, clique no botão Try para aplicar condicionalmente o tema ao seu desktop. Se você gostar dos resultados, clique em OK para salvar as alterações. Se você decidir que não gostou do novo tema, use o botão Revert para retirar o tema e voltar à configuração anterior.

Os temas para o KDE podem ser encontrados em http://kde.themes.org/. Para instalar um novo tema KDE, inicie o KDE Control Center no ícone "home" (parece com uma pequena casa em frente a uma pasta de documentos) no Painel. A seguir, clique em Theme Manager (sob Desktop) no painel da esquerda. Clique o botão Add (na parte superior do painel da direita). Quando a caixa de diálogo se abre, encontre o nome do tema que foi baixado. Dê um duplo clique no mesmo para instalar. Então clique no nome do tema na caixa de diálogo Installer. A janela no meio mostra como será a aparência do desktop. Se você gostar da aparência, clique no botão Apply na parte de baixo do painel para mudar seu tema de desktop. se você não gostar da aparência, clique em Cancel para sair do KDE Control Center.

Outras fontes de temas incluem muitos sites Web que oferecem downloads de software. Para uma lista destes sites, veja o white paper What Good is a Linux Client?, disponível no mesmo local que este Q&A.

P. Como posso acrescentar programas ao Panel/Painel?

Usuários do KDE podem clicar no ícone KDE, selecionar Panel, seguido de Add Application e então escolher o programa desejado a partir dos vários menus apresentados. Uma vez que a aplicação tenha sido acrescentada ao painel, você pode rearranjar a ordem dos ícones clicando com o botão direito sobre um ícone e selecionando Move, e então arrastando o ícone para onde você quer.

Usuários do Gnome devem primeiro fazer o logon como root, então clicar no ícone do menu Gnome, a seguir Programs e Settings, e então selecionar Menu editor. Quando o menu popup aparecer você pode criar um submenu ou acrescentar opções a um menu existente.

P. O que é um desktop virtual?

Quando se está rodando um número de programas concorrentes, a tela às vezes fica carregada com várias janelas abertas ao mesmo tempo, umas cobrindo as outras. Uma solução, obviamente, é minimizar algumas das janelas até serem necessárias. Entretanto, isto obriga a minimizar e restaurar janelas repetidamente, conforme diferentes janelas são acessadas. Este processo pode ser bastante tedioso com o passar do dia.

Uma alternativa é usar um programa que crie "desktops virtuais". Cada desktop é uma área limpa onde você pode abrir um ou mais programas. Ao invés de minimizar/restaurar todos os programas conforme necessários, você pode simplesmente trocar os desktops virtuais, com os programas rodando intactos nos mesmos (se isto parece um melhoramento muito pequeno, considere que com oito programas abertos um usuário terá de minimizar e restaurar cada um destes oito programas por vez. Com oito desktops virtuais, cada programa pode ficar aberto o tempo inteiro, sendo necessário apenas um clique para passar para o próximo, em vez de dois). Desktops virtuais podem reduzir a bagunça de janelas no desktop.

Existem váriso programas deste tipo disponíveis para compra ou download dos usuários do Microsoft Windows, mas os usuários Linux sequer precisam procurar por este tipo de programa. Tanto o KDE quanto o Gnome incluem suporte a desktops virtuais por padrão e os usuários podem especificar quantos desktops eles querem usar -- ou desabilitar completamente eles. Para trocar entre os desktops, clique nos botões no painel ("One", "Two", "Three", etc.), inicie um ou mais programas, e então selecione outro desktop virtual, inicie outros programas, e assim por diante. Para trocar entre os desktops em ordem, use o Ctrl+Tab.

P. Você disse que eu posso ter oito desktops virtuais, mas eu vejo somente quatro. Onde estão os outros?

A configuração padrão é quatro, mas você pode facilmente mudar o número em incrementos de dois (ou seja, 2, 4, 6 ou 8). Para fazer isto no KDE, clique no ícone KDE no Painel, então selecione Panel e Configure. Isto irá apresentar a janela KPanel Configuration. Use o controle deslizante Visible para mudar o número de desktops virtuais (o controle deslizante Width permite que você controle o tamanho dos ícones que estão no Painel).

Se você está usando o Gnome, no ícone Gnome, no Painel, vá para Program e selecione Setting, e então Gnome Control Center. Quando o painel do Gnome Control Center aparecer, clique em Desktop, então Windows Manager, e finalmente Workspaces. Selecione o número desejado de colunas virtuais ou desktops e clique em OK para fechar o painel.

P. É possível compartilhar um programa pelos desktops virtuais?

Sim. No canto superior esquerdo de uma janela de programa há um ícone que se parece com um alfinete, ou pino. Clicando nele você vai "prender" o aplicativo naquele lugar, fazendo com que apareça em todos os desktops virtuais, na mesma posição na tela. Para remover o programa de outros desktops, clique no botão novamente e ele irá ficar somente no desktop em que foi "desprendido".

P. Como eu posso trocar a cor de fundo do meu desktop?

Usuários do KDE pdoem clicar no ícone KDE no Painel e selecionar Settings, então Desktop e finalmente Background. Na caixa de diálogo Display Settings você pode escolher qual desktop (entre todos os desktops virtuais) você quer modificar, e então escolher uma ou duas cores, e/ou um papel de parede para usar. Quando você tiver terminado, clique em OK para salvar suas alterações, ou Default para voltar às cores padrão originais do sistema (o Cancel não irá abortar as alterações se você já tiver clicado em Apply, ele irá somente fechar o painel).

P. Existe uma forma mais rápida de copiar/cortar e colar texto em vez de usar o menu?

Sim. Existe uma maneira bem rápida de copiar texto com o mouse. Se você está usando um mouse de três botões, primeiro posicione o cursor onde voc~e quer colocar o texto, então selecione (destaque) o texto a ser copiado como você faria normalmente com o mouse. Finalmente clique o botão do meio do mouse (se você tem um mouse de dois botões configurado para emular um de três botões, pressione os dois botões simultaneamente para obter o mesmo efeito). O texto destacado será copiado para a posição do cursor. Este processo deve funcionar para a maioria dos editores e em sessões de linha de comando, bem como processadores de texto e outros programas gráficos. Alternativamente, você pode colar o texto com Shift-Insert (mantenha pressionada a tecla Shift ao mesmo tempo que tecla o Ins), ao invés de usar o terceiro botão do mouse.

Para um método com teclado, você pdoe destacar o texto (usando o mouse ou mantendo o Shift pressionado em quanto usa as teclas de movimento para destacar o texto) e então usando o Ctrl-C para copiar (ou Crtl+X para recortar) o texto, e usando o Shift-Insert (ou o terceiro botão do mouse) para colar (de forma similar ao trio Ctrl-C/Ctrl-X/Ctrl-V usado no Windows).

Nota: Devido a todas as diferentes interfaces de usuários, editores e aplicações usadas no Linux, nem todas estas técnicas irão funcionar com todos os programas, assim você vai precisar experimentar para ver quais funcionam onde.

Shell de Comandos

A próxima série de perguntas são específicas ao uso de comandos e shells de comandos.

P. Se eu quiser executar um comando, como eu abro um prompt de comando?

Na linguagem Linux, este processo é geralmente referido como um "command shell", ou simplesmente um shell. Cada distribuição Linux inclui pelo menos um shell. O mais comum é o bash (abreviação de Bourne Again SHell), uma versão melhorada do velho Bourne shell. Para abrir o shell padrão de sua distribuição, usuários do KDE podem clicar o ícone Kvt no Painel (o ícone que parece com um terminal de computador), ou pressionar Ctrl-Alt-F1. Isto irá fornecer uma interface de linha de comando (CLI) no qual você poderá rodar comandos.

Usuários do Gnome podem clicar no ícone do Gnome no painel, selecionar System e abrir ou uma sessão normal do Xterm (terminal), ou uma sessão com cores, colcando nos ícones que se parecem com um terminal de computador com um X vermelho ou multicolorido na frente, respectivamente. Alternativamente, você pode clicar com o botão direito em qualquer lugar e abrir um novo terminal seleciionando New, e então Terminal.

Se você só precisa de uma linha de comando para uma "rapidinha", longa o suficiente para executar um comando e então se fechar, pressione Alt-F2. Quando a janela aparecer, escreva o comando e pressione Enter. Em vez de um comando, você pode entrar o nome de um arquivo de dados (com o caminho necessário para encontrar o mesmo) e o Linux irá lançar o programa apropriado, baseado na associação de arquivos (por exemplo, escrevendo /home/username/.netscape/bookmarks.html irá fazer com que o browser default seja iniciado). Se você usa um caminho a um diretório em vez de um arquivo, o Linux irá abrir o diretório usando o gerenciador de arquivos padrão, como o KFM.

P. Quais são os equivalentes Linux dos comandos do DOS/Windows?

Existem vários comandos no Linxu que tem função ou nome similar ou mesmo idêntico a algum comando DOS. Aqui estão alguns comandos DOS comuns com suas contrapartes Linux:

Objetivo do comando Comando DOS Comando Linux
Ir ao diretório pai cd.. ou cd .. (abreviação de change directory) cd ..
Ir ao diretório raiz cd\ ou cd \ cd / (note que é a barra normal)
Limpar a tela cls clear
Fechar uma janela de comando exit exit
Compara o conteúdo de dois arquivos fc (file compare) diff (difference)
Copiar um arquivo copy cp (copy)
Criar um diretório mkdir ou md (make direcotry) mkdir
Apagar arquivos del ou erase rm (remove)
Apagar diretórios rmdir ou rd (remove dir) rmdir
Mostrar o conteúdo de um arquivo, uma tela de cada vez more more ou less
Mostrar a memória RAM disponível mem free
Mostrar/alterar a data date date
Mostrar/alterar a hora time date
Apresentar saída na tela echo echo
Encontrar um arquivo pelo nome dir ou attrib locate
Encontrar um arquivo pela data ou outro atributo do arquivo dir (não por data) find
Encontrar uma string de texto em um arquivo find grep
Formatar um disquete format mke2fs (ou mformat, para um disquete DOS/Windows)
Listar os arquivos de um diretório dir (directory) ls (list) ou dir
Mover arquivos move mv (move)
Renomear arquivos ren (abreviação de rename) mv
Mostrar o caminho atual cd pwd (print working directory)

Mesmo que alguns dos comandos sejam os mesmos, os parâmetros para estse comandos podem diferir entre o DOS/Windows e o Linux. Por exemplo, vamos dar uma olhada nas diferenças entre alterar a data e hora no Linux versus Windows.

No Windows, no prompt de comando você escreveria date 31-12-2000 para mudar a data para 31 de Dezembro de 2000.

Para mudar a hora para 2:00 p.m., você usaria time 14:00:00 (ou simplesmente time 14:00).

No Linux, por outro lado, primeiro você tem que estar logado como superusuário (ou usar o comando su - para obter privilégios de superusuário temporariamente), então deve usar o comando date 123114002000. Note que o 14:00 está no meio da string de data, entre o dia e o ano. Esta é a forma que o Linux quer esta informação. Você não pode especificar os segundos usando este comando -- apenas horas e minutos.

Entretanto, se você quer mudar apenas a hora -- mas não a data -- use o seguinte comando:

	date -s 1400

ou, se você quer especificar os segundos:

	date -s 14:00:00

(Os dois-pontos são exigidos quando especificar os segundos). Em ambos os exemplos, o parâmetro -s informa ao Linux que você quer acertar a hora.

Para mais informações sobre o comando su, veja a sessão Contas Root/Usuário, Grupos e Permissões, abaixo.

P. Como eu encontro ajuda sobre os parâmetros dos comandos?

Existem várias opções disponíveis. Primeiro, muitos comandos tem pequenas páginas "manual" no Linux. Você pode acessar as mesmas escrevendo man, seguido pelo nome do comando, com em man mv para ver os parâmetros do comando mv (move). Alguns utilitários possuem ajuda mais detalhada (e algumas vezes mais recente) usando a ferramenta info. Por exemplo, info mv Se estas ferramentas não produzirem resultados, tente seguir o comando com uma opção --help ou -h como único parâmetro (como mount -h ou mv --help). Alguns comandos, como o mformat irão apresentara lista de argumentos disponíveis se o comando for usado sem parâmetros, ou com parâmetros inválidos. Quando em dúvida, tente todos até descobrir um que funciona.

Para aprender como usar o comando info, use info info (a ferramenta usa a si mesma para apresentar o tutorial). Para aprender mais sobre o man, use man man e/ou info man (os tutoriais são diferentes, não é má idéia consultar ambos). Quando você tiver terminado de ler o help apresentado pelo man ou info, pressione a tecla Q para sair e retornar ao shell de comando.

P. Como eu repito um comando?

Se você tende a usar os mesmos comandos repetidamente, ou recentemente usou uma lista de parâmetros longa que quer repetir, existem várias maneiras de repetir um comando sem precisar reescrever o mesmo. O Linux armazena os últimos 500 comandos em um arquivo (chamado .bash_history para rápida recuperação. A forma mais simples de encontrar um comando recente é usar as setas para cima e para baixo para rolar para trás e para diante na lista até encontrar o comando que você quer usar. Se você quer alterar um comando recentemente usado, use as setas para cima e para baixo para encontrar o comando, e então use as setas esquerda/direita para ir a parte que quer alterar. Escreva o que quiser acrescentar e use a tecla Del para apagar texto desnecessário.

Alternamente, escrever !! (pronunciado "bang, bang") seguido de Enter irá executar o último comando informado.

Se o comando está muito para trás na lista para rolamento, pdoe ser conveniente e se você souber o nome do comando, pode saltar diretamente para ele, usando um atalho: ! string (onde string representa o comando). Por exemplo, ! mcopy irá encontrar o comando mcopy entrado por último: mcopy -tnm something.txt c:/mydir e executar ele diretamente.

Se você não tem certeza do nome do comando ou usou muitas variações do comando e não tem certeza de qual quer, pode visualizar todo o arquivo history usando o comando history (sem parâmetros). Os comandos serão numerados na ordem em que foram executados. Quando encontrar o comando que quer, pode executar ele simplesmente escrevendo ! 452 (use o número correto). Se você não quiser ver todas as 500 linhas do histórico, você pode escolher ver apenas os x últimos comandos, como history 50 (para ver os últimos 50).

Se você precisa procurar toda a lista de 500 itens mas não quer ler todas as linhas para procurar por um comando, você pode usar o comando grep para pesquisar o conteúdo. Por exemplo, para encontrar os comandos mcopy recentemente usados, escreva history | grep mcopy (onde o |, o símbolo de piping, é o caracter sobre a contra-barra). Você pode até mesmo usar pesquisas com palavras parciais com o grep, como em history | grep m (para encontrar os comandos mformat, mdel e outros comandos que iniciam com "m" que foram executados previamente, ou mesmo pesquisas com caracteres coringa (history | grep m*y). Se nenhum destes métodos encontra o comando que você está procurando, então provavelmente ele foi executado mais de 500 comandos atrás e "caiu fora" do arquivo .bash_history.

P. O que eu posso fazer se eu não lembrar o nome de um comando que preciso?

Você pode paginar pelo manual procurando pelo comando que quer, mas uma maneira mais rápida é usando o comando apropos. Ele permite que você pesquise um banco de dados de comandos disponíveis, usando palavras-chave. Por exemplo se você quer trabalhar com um disquete, mas não lembra qual comando usou da última vez (ou talvez é sua primeira vez e não sabe onde começar), escreva apropos floppy. Você deverá ver um resultado como o abaixo:

fd (4)		- floppy disk device
fdformat (8)	- Low-lecvel formats a floppy disk
mbadblocks (1)	- tests a floppy disk and marks the bad blocks in the FAT
mformat (1)	- add an MSDOS filesystem to a low-level formatted floppy disk
mkbootdisk (8)	- creates a stand-alone boot floppy for the running system
setfdprm (8)	- sets user-provided floppy disk parameters

(Os números em parêntesis indicam a seção nas páginas man onde esta informação pode ser encontrada, como em man mformat para procurar na seção 1 -- a padrão -- nas páginas man pelo comando mformat, ou man 8 mkbootdisk para direto à sessão 8 para ver o comando mkbootdisk).

e você usar o comando apropos diskette, ao invés, o Linux vai retornar uma mensagem "nothing appropriate". Isto indica que o apropos não reconhece o termo "diskette". Se isto acontece em uma pesquisa, simplesmente tente outro termo na pesquisa, como "floppy". Também é possível que o apropos não encontre todos os comandos relacionados posssíveis. Por exemplo, se você pesquisar por informações sobre unidades de fita usando apropos tape, ele irá listar um número de comandos relacionados à operação de unidades de tape, incluindo o mt e rmt, mas ele pode não incluir o tar, que pode ser usado para backup em fita, assim você precisa ser criativo para encontrar o que está procurando.

Note: Se o comando apropos não funcionar, pode significar que o banco de dados whatis (que é acessado pelo comando apropos) não foi montado. Para criar este banco de dados, primeiro use o comando su - (e escreva sua senha quando perguntado) para fazer o login como root, então entre o comando /usr/sbin/makewhatis. Este processo deve levar vários minutos. Quando terminar, tente o comando apropos novametne. Para mais informações sobre o whatis, veja a questão Existe documentação online para a maioria dos programas?.

P. Eu acabei de usar um comando e obtive resultados completamente diferentes da última vez que eu usei ele. Por quê?

Lembre-se que o Linux é sensível à diferença entre maiúsculas e minúsculas. Verifique se os parâmetros estão em maiúsculas ou minúsculas. Por exemplo, se você digitar tar -xvf filename.tar uma vez, e TAR -XVF FILENAME.TAR em outra ocasião, você vai ter resultados diferentes, por que x e X, v e V, f e F são parâmetros válidos, embora diferentes, para o comando tar. De fato, como os comandos também são sensíveis a maiúsculas e minúsculas, você pode ter dois comandos completamente diferentes, chamados tar e TAR, com diferente sintaxe e parâmetros, no mesmo sistema.

P. Diretórios longos são chatos de digitar. Tem uma forma mais rápida de digitar que eu possa usar?

Sim, em alguns casos. Se você está usando o shell Bash, ou outro shell com funcionalidade similar, você pode aproveitar-sede uma funcionalidade chamada expansão de nome de arquivo, usando a tecla Tab. Você pode escrever a primeira parte de um nome de diretório, e apertar o Tab e o shell irá completar o nome para você (desde que não hajam outros nomes de arquivo começando com as mesmas letras).

Por exemplo, se você quer listar o diretório /home/johnson/projects/2000, você pode escrever: ls /ho[Tab]/jo[Tab]/pr[Tab]/2[Tab] e o shell irá expandir o nome de diretório para você. Mas o que acontece se houverem dois diretórios sob /home/johnson, chamados /projects e previews? Se você sabe isto previamente, você pode simplesmente trocar /ho/jo/pr/2 por /ho/jo/pro/2, para eliminar o conflito. Alternativamente, se após pressionar o Tab depois de /pr não produz a expansão de nome, apertar o Tab uma segunda vez irá dar uma lista de todos os nomes que começam com "pr" (em outras palavras, ls /ho[Tab]/jo[Tab]/pr[Tab][Tab]). Complete então com o "o", ou qualquer outro caracter necessário para eliminar a redundância, e completando com um Tab, seguido de /2[Tab].

P. Existe uma forma de usar um comando para iniciar mais de um programa por vez?

Sim. O shell de comando permite que comandos sejam "emplilhados" em uma linha de comando, para serem executados em ordem. Por exemplo, se você escrever ls -l; cd ..; ls -a, o Linux irá listar o diretório atual na forma "longa" (ls -l), então mudar para o diretório pai do diretório atual (cd ..), e finalmente listar todos os arquivos naquele diretório (ls -a). O "ponto-e-vírgula espaço" que separa os comanos é como o Linux reconhece onde termina um comando e começa o próximo. Se você quer copiar um arquivo de um diretório para outro e então para um disquete (ao mesmo tempo que muda seu nome), e então mostrar o conteúdo do disquete, poderia usar:

cd /dir1/myfile.dat /dir2; cp /dir1/myfile.dat /dev/fd0/myfile2.dat; ls -a /dev/fd0

O empilhamento de comandos pode ser uma forma eficiente de começar váriso programas que devem ser executados em seqüência, sem ter que ficar em frente ao computador esperando que cada um termine para iniciar o próximo. Simplesmente escreva os comandos empilhados e vá passear até que o último seja executado. Obviamente, se você precisar executar várias tarefas de ponta a ponta em uma base recorrente, faz mais sentido criar um arquivo "script" (como um arquivo batch, para quem é usuário DOS/Windows), contendo os comandos em questão. Então tudo que você precisa fazer é escrever o nome do arquivo de script, em vez de um comando multilinhas.

Aviso: Como muitas ferramentas poderosas, o empilhamento de comandos pode ser uma espada de dois gumes. Ele pode prejudicar você tão fácil quanto pode ajudar, se você não for cuidadoso. Como um exemplo do que pode acontecer se você não for cuidadoso, alguns anos atrás eu estava usando o sistema operacional OS/2 para escrever um livro sobre o OS/2, que também suporta o empilhamento de comandos (apesar de não exigir o ponto-e-vírgula entre os comandos). Eu decidi apagar os arquivos existentes em um velho disquete de forma que eu pudesse vazer uma cópia dos capítulos do meu livro (um arquivo por capítulo) para ele. Eu queria escrever o seguinte comando del a:\*.*, que apagaria todos os arquivos do diretório root do drive a:. Infelizmente, o que eu realmente escrevi foi del a: *.* (um espaço onde deveria estar a contra-barra). O OS/2 interpretou o comando como "apague todos os arquivos de a: (del a:) e então apague todos os arquivos do diretório atual (del *.*)" -- todos meus arquivos originais! Eu percebi o que estava acontecendo quando metade dos arquivos do disco rígido haviam sido apagados, e pude cancelar o comando antes que o resto fosse apagado. Felizmente, eu possuía um backup da noite anterior, assim eu perdi apenas algumas horas de trabalho, mas poderia ser muito mais sério. A moral desta história é ser bastante cuidadoso com empilhamento de comandos (ou arquivos script), por que muita coisa pode acontecer quando você executa programas sem ficar cuidando. Se você está para executar um comando que primeiro copie um arquivo para disquete, e depois apague o original, e a cópia para disquete falhar (o disco estava cheio, ou não formatado, ou com problemas), é possível que o arquivo seja apagado sem que o backup tenha sido feito.

P. Existe uma forma de empilhar comandos e fazer com que sejam executados de forma concorrente em outras sessões?

Sim. A execução dos comandos empilhados nos exemplos da questão anterior fará com que sejam executados um após o outro na mesma janela de sessão, fazendo com que a mesma fique indisponível enquanto so comandos não tiverem terminado. Se você quiser ao invés que os comandos lancem uma nova sessão e executem os comandos lá, acrescente um ampersand (&) no fim do primeiro comando, como em:

cp /dir1/myfile.dat /dir2&; cp/dir1/myfile.dat /dev/fd0/myfile2.dat&; ls -a /dev/fd0&;

Obviamente, se você está fazendo isto apenas para liberar a sessão original para poder continuar trabalhando enquanto as outras sessões estão ocupadas executando estes comandos, uma solução mais simples pode ser manualmente lançar uma segunda sessão de comando para trabalhar naquela enquanto a primeira está ocupada.

Lançar váriso programas em diferentes sessões oferece algumas vantagens possíveis. Se, por exemplo, um programa está fazendo uma atualização de bancos de dados pesada, enquanto um segundo está executando recálculos em uma planilha e um terceiro está apresentando gráficos complexos na tela, cada um está consumindo uma parte diferente do seu computador (a atualização de banco de dados está usando o disco rígido, a planilha está consumindo muitos ciclos de processador para calcular números e o programa gráfico está usando principalmente o controlador de vídeo). Executar todos ao mesmo tempo pode aumentar bastante a performance do seu computador pelo uso de recursos que de outra forma estariam desocupados até o programa atual terminar o processamento.

Tenha em mente, entretanto, que a utilidade disto irá depender em grande parte do tipo de programa que você está executando e o tipo de hardware que seu computador tem instalado. Por exemplo, se você roda dois programas ao mesmo tempo, e os dois fazem uso extensivo dos discos rígidos, pessoas com múltiplos drives IDE (ou um drive SCSI) provavelmente verão pouca ou nenhuma melhora na performance fazendo isto. Isto por que o tempo gasto passando de um para outro disco rígido, ou mesmo entre áreas no mesmo disco rígido, é muito maior que qualquer economia de tempo obtida rodando os dois programas juntos. Dispositivos IDE são "burros", confiando no precessador da controladora IDE para tratar todas as intruções de disco, mas a controladora pode acessar somente um drive por vez, assim ela tem que parar de trabalhar em um drive, trocar para ooutro, trabalhar um pouco, parar e retornar para o primeiro. Isto é bastante disruptivo. Por outro lado, para computadores com drives SCSI, a situação é bastante diferente. Dispositivos SCSI são inteligentes (o que explica por que são mais caros que dispositivos IDE) e as controladoras SCSI podem multiprocessar, permitindo que todos os dispositivos SCSI executem concorrentemente e independentemente uns dos outros. Se você tem dois programas acessando dados em dois drives SCSI diferentes, eles podem rodar ambos com a máxima velocidade o tempo inteiro. Obviamente, não importa o tipo de disco, se você não tiver memória o suficiente para rodar os dois programas ao mesmo tempo, o Linux terá de alternar entre elas na memória, alternando ambas na memória, trocando todo ou parte de um programa para o disco rígido temporáriamente. Esta atividade e disco extra irá reduzir a quantidade de tempo que pode ser gasta na leitura/gravação de arquivos de dados, prejudicando a performance.

De forma similar, se um programa está fazendo uso pesado do procesador e outro é um programa orientado a gráficos, ainda assim pode não ser tão vantajoso quanto você pensa rodar os dois concorrentemente. Se você tem uma placa de vídeo de último tipo, com bastante memória, pode ser possível rodar todos os comandos gráficos usando o processador e memória onboard da controladora de vídeo. Entretanto, muitos computadores -- especialmente aqueles que são mais baratos -- usam controladoras de vídeo baratas com pouca ou nenhuma memória de víeo (algumas compartilham a memória do computador, usando o que é chamado de Uniform Memory Architecture, ou UMA). Isto significa que o processador do computador pode ter que processar todos os cálculos da planilha e o processamento gráfico ao mesmo tempo, reduzindo a performance de ambos os programas. Mais ainda, o uso da memória principal do computador para as duas atividades pode resultar em trocas, a menos que você tenha bastante RAM no sistema.

Ainda assim, não faz mal nenhum tentar rodar comandos empilhados concorrentemente. Se todos completarem mais ráido que uma execução sequencial, ótimo. Caso contrário, você sempre pode voltar a rodar os programas do jeito "antigo".

Fazendo Login/Logout e Desligando

Esta seção contém questões ou problemas que envolvem o desligamento do Linux, ou o logout de uma conta.

P. Eu não consigo fazer o login, mesmo usando a senha correta. O que está errado?

O Linux é sensível à diferença entre maiúsculas e minúsculas, o que significa que uma senha a1b2c3 não é a mesma coisa que A1B2C3. Certifique-se que a tecla Caps Lock esteja desligada antesde escrever sua senha (a menos, é claro, que sua senha seja toda ela em maiúsculas).

P. Por que eu preciso usar o Shutdown? Não posso simplesmente desligar o computador?

Da mesma forma que no Windows, usar o Shutdown permite que o sistema salve arquivos abertos, esvazie o cache do sistema e faça outras manutenções de sistema necessárias. Desligar a máquina abruptamente impede esta manutenção e pode resultar em perda de dados e outros problemas. Além disto, como o sistema de arquivos é deixado em um estado "sujo", ele deve ser examinado na próxima vez que o sistema inicializar, tornando o boot consideravelmente mais lento.

P. Eu consegui encontrar a opção Logout, mas onde está o Shutdown?

Usando a interface KDE, clique no ícone KDE (o K grande e estilizado) em Panel e selecione Logout. Quando a tela de login aparecer, clique em Shutdown e então em uma das três opções: Shutdown (desligar), Shutdown and restart (desligar e reinicializar) e Restart X Server (reiniciar o servidor X). Shutdown desliga o sistema operacional e o computador, Shutdown and restart faz uma reinicialização, e Restart X Server somente reinicializa o processo do Servidor X, sem reinicializar o sistema.

No Gnome desktop, clique no ícone Gnome (o G grande e estilizado que se parece com uma pegada engraçada) no Panel e selecione Log out. Quando a janela Log Out Confirmation aparecer, selecione uma das três escolhas: Logout, Halt ou Reboot e pressione o botão Yes. A opção Logout faz o logout e coloca na tela a janela de Login. Halt faz o logout e desliga o sistema. Reboot faz o logout e reinicializa o sistema (as opções Halt e Reboot exigem a senha para prosseguir). O pressionar do botão No fará com que você retorne à sessão Gnome.

De uma linha de comando, use um dos seguintes comandos: shutdown -r now (para reiniciar imediatamente), ou shutdown -h now (para desligar o sistema). Para configurar um intervalo antes dedesligar, substitua "now" por "+número", como shutdown -r +5 (para um intervalo de 5 minutos). Será solicitada a senha da sua conta antes do sistema desligar.

P. Existe uma forma mais rápida de reiniciar o Linux, sem ser usando o Shutdown?

Sim. Como no Windows, você pode usar a combinação de teclas Ctrl+Alt+Del para reiniciar o sistema, mas você primeiro precisa abrir uma sessão de console virtual em full-screen. Uma forma simples de fazer isto é teclando Ctrl+Alt+F1. Uma vez que a tela de modo texto tenha aparecido, você pode pressionar o Ctrl+Alt+Del. Você não será perguntado se tem certeza, o reboot é imediato. Certifique-se que você não tenha nenhum arquivo aberto antes de fazer isto, caso contrário poderá perder dados. Se, após abrir um console virtual você mudar de idéia, tecle Ctrl+Alt+F7 para fechar o console e retornar ao desktop gráfico.

P. Eu preciso usar o Shutdown se eu estou apenas passando o sistema para outro usuário?

Não. Nesta situação, a preferência é simplesmente usar o Lougout, permitindo que o próximo usuário faça o login sem consumo de tempo e energia de reinicializar o sistema.

P. Eu cliquei no Logout e agora a sessão está travada. Como eu faço o logout?

Basta teclar Ctrl-Alt-Backspace para matar a sessão e retornar à tela de login.

P. Dá para fazer com que o Linux reinicialize automaticamente aplicações que estejam rodando quando eu usar o Shutdown ou o Logout?

Tanto no painel Logout do KDE quanto no painel Log Out Confirmation do Gnome há uma opção chamada Save current setup (salvar configuração atual). Certifique-se de marcar esta opção quando fizer o logout destes ambientes.

Arquivos e Diretórios

As seguintes questões são relacionadas a arquivos e diretórios.

P. O que é o diretório root?

A raiz de uma árvore é a fundação da árvore inteira. O tronco possui poucos galhos grossos, e estes galhos possuem outros galhos semelhantes, que por sua vez possuem galhos cada vez menores, até chegar às folhas.

Usando esta analogia, o diretório raiz (root directory) é a base (raiz e troncos) do qual todos os diretórios (galhos principais) e subdiretórios (galhos menores) derivam. Dentro destes diretórios existem arquivos de dados e programas (as folhas). Este tipo de arranjo (usado pelo UNIX/Linux, DOS/Windows, OS/2 e outros sistemas operacionais) é geralmente referido como "estrutura de árvore" ("tree-structured").

P. Você pode explicar mais como a estrutura de diretórios do Linux funciona?

A principal diferença entre como isto funciona no Linux versus o Windows, é que o Windows usa a contra-barra (\) em vez da barra (/) nos nomes de diretórios. Como ilustração, aqui está a hierarquia de uma série de diretórios que se ramificam do diretório root:

/
/home
/home/mark
/home/mark/.netscape
/home/mark/.netscape/cache
/home/mark/StarOffice51
/home/mark/StarOffice51/database
/home/mark/StarOffice51/gallery
/home/mark/StarOffice51/gallery/clipart
/home/susan
/home/susan/.netscape
/home/susan/.netscape/cache
/usr
/usr/etc

Para mostrar de outra forma, é assim que ele se parece se alinhamos os mesmos diretórios em níveis equivalentes de "profundidade":

/
 /home
      /mark
            /.netscape
	                 /cache
            /StarOffice51
	                 /database
	 		 /gallery
			         /clipart
      /susan
            /.netscape
	                 /cache
 /usr
      /etc

O / indica o diretório raiz, ou base. /home é um diretório saindo do raiz, e /home/mark e /home/susan são diretórios que same de /home (estes subdiretórios contém arquivos relacionados às contas dos user IDs "mark" e "susan"). Dentro de /home/mark estão os diretórios chamados .netscape e StarOffice51, que por sua vez possuem subdiretórios partindo deles. Susam tem uma estrutura de diretórios similar para os arquivos de dados do Netscape. Fora da estrutura de diretórios /home, existe também um diretório chamado /usr, que ramifica-se diretamente do diretório raiz. Para trocar as analogias por um momento, se /mark (e seus subdiretórios) e /susan (e seus diretórios) são cada um deles filhos (e netos) do diretório /home, então o diretório /usr é irmão (ou par) do diretório /home. Ambos são galhos do diretório raiz (esta convenção de nomes inteira é referida como sendo "file namespace").

A partir do diretório raiz, para descer nos diretórios e subdiretórios, use o comando cd (change directory). Por exemplo, cd /home/mark/StarOffice51 irá mover você para baixo no caminho do diretório da raiz ao conteúdo do subdiretório StarOffice51 (o comando ls -a neste ponto irá mostrar os arquivos e subdiretórios armazenados em StarOffice51). Se você quisesse mudar para o diretório cache a partir do diretório .netscape, você tem duas formas de fazer isto. Você pode escrever um caminho "absoluto": cd /home/mark/.netscape/cache (que significa "começando no root, desça estes diretórios") para chegar ali, ou simplesmente usar o caminho relativo: cd cache, para chegar ao mesmo lugar. Um caminho relativo significa "a partir de onde estou, vá ao próximo nível, chamado cache" (se houvesse outro diretório abaixo de cache, chamado etc, poderíamos ir para lá a partir do diretório .netscape com o comando cd cache/etc).

Lembre-se, preceder um diretório com uma barra normal (/) informa ao Linux para iniciar a partir do diretório raiz. Assim, um comando cd /cache/etc iria falhar no exemplo anterior (a menos que você tenha um diretório cache partindo do root, com seu próprio subdiretório etc). Por quê? Por que estará procurando um diretório cache começando no diretório root ao invés do diretório .netscape.

Revertendo nossa direção, se usamos um comando cd .. a partir de um diretório ele irá colocar você acima um nível de diretórios (como de /home/mark/StarOffice51 para /home/mark). Você pode repetir este comando o quanto for necessário para retornar ao diretório root (/). Alternativametne, para ir direto ao diretório root, use o comando cd / (este comando é o equivalente a cd\ ou cd \ no DOS/Windows).

P. Existem alguns diretórios que eu não reconheço no diretório root. O que eles são?

Estes diretórios armazenam arquivos e programas essenciais do sistema. Por exemplo, o diretório /etc (et cetera) contém arquivos de configuração, onde as configurações do sistema e dos aplicativos são armazenadas. Abaixo dele, o diretório /etc/skel contém arquivos shell, ou "esqueleto" usados para criar contas de usuários. O diretório /usr (user) armazena outros arquivos importantes, incluindo bibliotecas de programas (módulos de programa que são compartilhados com o sistema) em /usr/lib, páginas de manual para o utilitário man em /usr/man, e outras documentações nos diretórios /usr/doc e /usr/info. Outros diretórios do sistema incluem o /lib (bibliotecas: arquivos de segurança, módulos do sistema e bibliotecas contendo bibliotecas de software e bancos de dados de informações), /opt (opcional: pacotes de software pre-loaded são geralmente armazenados aqui) e /var (variáveis: spooling, logs e todos os arquivos de mensagens). A menos que você tenha uma razão específica, e sabe o que está fazendo, é uma boa idéia deixar estes diretórios em paz.

P. Existe um atalho de teclado para o diretório de login?

Sim. Em qualquer prompt de shell escreva cd e tecle Enter.

P. Alguns nomes de arquivos começam com um ponto. O que isto significa?

Um nome de arquivo que inicia com um ponto -- como .bashrc ou .netscape -- é um arquivo oculto. Ele são geralmente usados para guardar configurações de preferências de usuário, e outras informações de onfiguração. Estes arquivos ficam ocultos para que seja mais improvavel que sejam apagados acidentalmente. Esconder arquivos também torna uma listagem de arquivos mais curta e menos bagunçada com arquivos que o usuário raramente estará interessado. Existem diferentes formas de ver estes arquivos. Por exmplo, o comando ls (list) sem parâmetro algum não irá mostrar estes arquivos, mas o comando ls -a (liste todos) irá.

Por outro lado, se você está usando o K File Manager (KFM) no KDE, simplesmente selecione View, e então Show Hidden Files no menu que aparece para ver estes arquivos (para iniciar o KFM, clique no ícone do Painel que parece com uma casa em frente a uma pasta de documentos).

Usuários do Gnome podem clicar no ícone do Gnome (a pegada que se parece com a letra G) no Painel, selecionar Programs, e então File Manager. No Gnome File Manager, escolha Settings, então Preferences, e, finalmente, Show hidden files.

P. Quando eu olho uma lista de arquivos e diretórios, os nomes são seguidos por algo como -rw-rw-r- ou lrwxrwxrwx. O que isto significa?

Esta notação críptica na verdade descreve as "permissões", ou níveis de acesso, atribuídos a três grupos: o dono do arquivo, grupos e outros usuários. primeira posição identifica que tipo de objeto o item é. Entre os tipos possíveis incluem-se um Diretório/pasta físico (real), um arquivo físico (-), um mero Link/alias (ponteiro) para um arquivo ou pasta (l) -- semelhante a um atalho do Windows, um Soquet (s), um pipe (=), ou um dispositivo (b é para dispositivos de "Bloco", como unidades de discos, que tratam os dados um bloco por vez; e c é para dispositivos "Caracter", como portas seriais e paralelas, que tratam os dads um byte, ou caracter, por vez). As nove posições restantes são compostas de três grupos de três caracteres cada.

Os primeiros três aplicam-se ao dono do arquivo (geralmente o criador). O trio seguinte descreve as permissões dadas a qualquer grupo autorizado de usuários, e os três caracteres finais denotam qualquer acesso disponível para outros usuários não especificados. Cada tríade de posições revela se o usuário tem permissão de Leitura (r), Escrita (w) -- ou seja, criar/modificar/excluir, ou Execução (x), ou sem permissão para execução de uma destas ações (-).

Usando o primeiro exemplo da questão, -rw-rw-r-- informa que o objeto é um arquivo (por que o primeiro caracter é -). O primeiro rw- indica que o proprietário tem acesso de leitura/escrita ao arquivo, mas não de execução (logo, ele não pode ser um programa, caso contrário o proprietário deveria poder rodar ele). De forma semelhante, qualquer grupo que tenha permissão de acesso ao arquivo pode ler e escrever no mesmo (o segundo rw-). Entretanto, qualquer "outro" usuário (aqueles não explicitamente incluídos no grupo autorizado) tem somente acesso de leitura ao arquivo, evidenciado pelo r-- no final. Se as permissões fossem drw-rw-r--, a única diferença seria que o objeto é uuma pasta/diretório em vez de um arquivo.

No outro exemplo da questão, lrwxrwxrwx significa que o objeto é um link para um arquivo ou pasta e todos os três grupos tem permissão de leitura, escrita e execução para acessar o objeto. Permissão de execução significa que, se se trata de um programa, script ou outro arquivo executável, um usuário autorizado (no caso, qualquer um) pode executar o mesmo, e se é uma pasta, então o usuário pode ler seu conteúdo.

P. O comando ls não mostra tudo que tem no diretório. O que está errado?

O utilitário ls (L minúsculo, não i maiúsculo) possui muitos parâmetros para deixar você visualizar o conteúdo dos diretórios de diferentes formas. Por exemplo, o comando ls -a mostra todos os arquivos e ls -al mostra todos os arquivos no formato "longo" (com detalhes adicionais), enquanto o ls -a --color acrescenta várias cores para diferenciar os vários tipos de arquivos (para uma lista de parâmetros, use ls --help ou man ls para uma descrição completa).

P. Posso usar caracteres coringa no comando ls, como no comando Dir do DOS/Windows?

Certamente. Você pode pesquisar pro todos os arquivos com extensão .txt usando ls *.txt, ou todos os arquivos iniciando com "mc" e qualquer extensão usando ls mc*.*. Se você está procurando por um arquivo em uma lista de arquivos com nomes similares, você pode limitar a máscara a apenas um caracter, usando o símbolo ?. Por exemplo, ls hello?5.c irá encontrar os arquivos hello05.c, hello95.c, e helloj5.c, e assim por diante, mas não irá mostrar hello105.c ou hello7q5.c. Você pode até mesmo combinar caracteres coringa com pesquisas bastante específicas, como ls hello?5.* (coringas também podem ser usados com outros comandos, incluindo cp -- copy --, mv -- move --, rm -- remove --, etc.).

P. Eu quero usar caracteres coringa para encontrar arquivos que tenham um ? ou um * no nome. Como eu faço isto?

Diferente do DOS/Windows, o UNIX/Linux permite que estes caracteres, bem como o ) e (, e | e outros caracteres especiais sejam usados em nomes de arquivos e diretórios. Para distinguir entre uma pesquisa usando coringas ? e *, e uma procura por estes caracteres particulares, só é preciso inserir uma contra-barra (\) em frente ao caracter especial. Por exemplo, ls hello\?.txt ou ls myfile\*.c ou ls \)127.h irá encontrar os arquivos hello?.txt, myfile*.c e mc)127.h, respectivamente. Você pode também combinar estas "expressões regulares" com caracteres coringas em pesquisas, como em ls hello\?.t?t (que irá listar hello?.txt e hello?.tst), ou ls mc\)127.* (que irá listar mc)127.h e mc)127.c, por exemplo).

P. Como eu faço para criar ou renomear um arquivo com caracteres especiais no nome?

Como na questão anterior, você só precisa inserir uma contra-barra antes do caracter especial. Por exemplo touch hello\?.txt irá produzir um arquivo vazio chamado hello?.txt, touch myfile\*.c irá resultar em um arquivo myfile*.c, e touch mc\)127.h irá criar mc)127.h. De forma similar, mv hello.txt hello\?.txt irá acrescentar um ? ao nome, imediatamente antes do ponto. Para usar múltiplos caracteres especiais, simplesmente insira um \ antes de cada um. Por exemplo, touch myfile\(\*\*\).txt irá produzir um arquivo myfile(**).txt. O procedimento é o mesmo para qualquer outro caracter especial. Se você não tem certeza quais caracteres precisam do tratamento com \, simplesmente tenet o comando sem o mesmo antes. Se você receber uma mensagem como "sh: syntax error near unexpected token 'yourfilename'" (onde 'yourfilename' é o nome que você estava tentando criar), então você precisa de uma contra-barra.

Nota Importante: Apesar de você poder incluir muitos caracteres especiais desta forma, o uso de alguns caracteres especiais, incluindo o asterisco (*), a interrogação (?), o hífen (-), a barra vertical/símbolo de piping (|), o circunflexo (^), apóstrofo ou plica ('), e o ampersand (&) em um nome de arquivo geralmente não é uma boa idéia, por que pode ser confundido com caracter coringa, parâmetro (argumento), e outros símbolos por vários comandos. Além disso, o uso de espaços em nomes de arquivos (como em my file.txt) pode fazer com que alguns comandos tratem o nome como dois nomes de arquivos, ou um parâmetro e um nome de arquivo (para evitar este problema, coloque o nome entre aspas, como em "my file.txt"). Qualquer uma destas condiçõe pode causar efeitos indesejados. No mínimo, estes símbolos podem tornar os nomes de arquivos mais difíceis de ler. A menos que você tenha uma boa razão pra fazer isto, provavelmente é melhor não usá-los.

P. Qual o maior comprimento para um nome de arquivo?

Um nome de arquivo pode ter até 255 caracteres, incluindo números, letras e símbolos especiais, bem como uma combinação de letras maiúsculas e minúsculas (que são tratadas como letras diferentes pelo UNIX/Linux). Entretanto, para manter a legibilidade e tornar mais fácil escrever linhas de comando, nomes mais curtos são preferíveis. Este limite de 255 caractres não inclui o diretório. Em outras palavras, se houver um arquivo chamado ThisIsMyVeryLongFilename.txt no diretório /home/mark/garbage/files, só o nome de arquivo pode ter 255 caracters, excluindo os caracteres do diretório. Para ilustrar, no seguinte diretório:

/user/mark/garbage/files/ThisIsMyVeryLongFilename.txt

Somente os 28 caracteres em negrito que seguem a última barra são o nome do arquivo (incluindo o ponto antes do "txt").

P. A listagem de diretório é muito longa e rola para fora da tela. Existe uma forma de visualizar uma página de cada vez?

Sim. Existem programas chamados "paginadores" para isto. Como no DOS/Windows, onde você pode usar dir c:\ | more para listar os conteúdos do diretório raiz, no Linux você pode escrever:

ls -a / | more

Ou, usando um utilitário alternativo:

ls -a / | less

Usando o less, use a barra de espaços para avançar uma página por vez. Para retornar, use a tecla B. Quando terminar, use o Q para sair.

P. Existe uma forma de encontrar arquivos no shell de comando?

Da mesma forma que o Windows tem a funcionalidade Find, o Linux possui o comando locate. Ele irá encontrar arquivos de dados, programas, diretórios e outros objetos cujos nomes combinem com o argumento de pesquisa. Por exemplo, locate myfile irá encontrar myfile.txt, /myfile e outros arquivos que combinarem (para saber mais sobre o comando locate, incluindo parâmetros de pesquisa, use man locate). O locate pesquisa um banco de dados (de nome slocate.db) em seu disco rígido usado para este objetivo, que é atualizado à noite. Se você está procurando por um novo arquivo que o locate não é capaz de encontrar (ou você normalmente desliga o sistema à noite, de forma que o banco de dados não é atualizado frequentemente), você pode forçar uma atualização manual do banco de dados. Para isto, use o comando su para fazer um login como root, e no prompt do shell escreva updatedb. Aguarde alguns minutos até a atualização da base de dados ficar completa, e tente o comando locate novamente.

Nota: O Linux também tem um comando find, mas por razões de performance o comando locate é melhor para pesquisar nomes de arquivos. Se você precisa procurar arquivos pela data ou outros atributos, ou quer executar automaticamente um programa usando o arquivo encontrado como parâmetro, ou qualquer um de outros usos interessantes, o comando find deve ser usado. Para mais informações sobre o find, use info find.

Como alternativa, se você está apenas procurando pelo arquivo binário, código fonte e páginas de manual para um comando, você pode tentar o comando whereis. Para ilustrar a diferença entre os comandos whereis e locate, tente os seguintes comandos: whereis passwd e locate passwd. Como você pode ver, o comando whereis localizou apenas alguns poucos arquivos, enquanto o comando locate listou dúzias. Isto por que o whereis estava procurando por alguns arquivos específicos (todos de nome passwd.*), enquanto o locate estava ocupado procurando qualquer arquivo ou diretório cujo nome contenha "passwd" (incluindo gpasswd.1.gz, autopasswd, passwd-1.html, etc.). Para outro exemplo, tente whereis *.doc e locate *.doc. Como antes, o comando locate retornou com muitos arquivos que apresentavam uma extensão .doc. O comando whereis, entretanto, não retornou nada. Por quê? Por que não há no Linux um comando de nome "*.doc" ou mesmo "doc". Lembre-se, o whereis funciona somente com arquivos associados a comandos, não qualquer arquivo de dados ou programa.

P. Existe uma forma de visualizar um arquivo texto na linha de comando?

Sim. Talvez a melhor maneira é abrir o arquivo com um editor de texto, como o Pico, Emacs, Vi, ou outros, e rolar ou paginar pelo arquivo. Entretanto, se você está tentando fazer a navegação sem abrir o arquivo, você pode usar os utilitário head e tail, ou os comandos more ou less. Por exemplo, head myfile.txt irá mostrar as primeiras 10 linhas do arquivo na tela, por padrão. O comando head -40 myfile.txt irá mostrar as primeiras 40 linhas (você pode substituir o "40" por números maiores ou menores). De forma semelhante, o comando tail mostra as últimas 10 linhas de um arquivo, como em tail myfile.txt (se o arquivo é curto, mas você não tem certeza de quantas linhas ele tem, use o comando cat -- abreviação de concatenar -- para mostrar o arquivo inteiro na tela, como em cat myfile.txt).

Obviamente você pode usar estes comandos se souber aproximadamente o quão próximo do início ou fim do arquivo a string de texto está, mas não se ela está no meio de um arquivo enorme. Nesta situação o more ou o less serão mais produtivos (veja a questão A listagem de diretório é muito longa e rola para fora da tela. Existe uma forma de visualizar uma página de cada vez? nesta seção para obter mais informações sobre estes comandos).

P. Existe um comando para procurar em arquivos texto por uma string específica?

Sim. Naturalmente, você pode abrir um arquivo com um editor de textos e usa sua função de pesquisa. Entretanto, se você prefere fazer a busca na linha de comando, pode utilizar o utilitário grep. Este é uma poderosa ferramenta de pesquisa de texto. Pode-se fazer pesquisas com caracteres coringa sobre um arquivo específico, mas mais imoprtante, pode-se pesquisar muitos arquivos ao mesmo tempo, também com coringas. Por exemplo, digamos que você tenha um diretório cheio de arquivos textos e você sabe que um deles contém a frase "Mary had a litle lamb", mas não sabe qual deles é. Usando o comando grep "Mary had a little lamb" *.txt você vai obter a seguinte saída:

myfile.txt: Mary had a little lamb. Its fleece was white as snow. And everywhere that Mary

(Note o uso de apóstrofos em torno da frase para identificar a string de pesquisa quando múltiplas palavras estão envolvidas). O comando grep mostra toda a linha de texto que contém a string procurada para facilitar a determinação se é o texto correto (podem haver vários textos contendo a string).

Nota: O utilitário grep é, por padrão, sensível a diferença entre maiúsculas e minúsculas, assim, se for feita a procura por "Mary", não será encontrada mary ou MARY. Se você quer fazer uma pesquisa que não seja sensível a maiúsculas/minúsculas, acrescente o parâmetro -i no exemplo anterior. Será então encontrada Mary mary MARY, mARy, ou qualquer outra mistura de maiúsculas e minúsculas.

Por exemplo, uma pesquisa não sensível a maiúsculas/minúsculas como grep -i mar* *.txt dará como resultados:

myfile.txt: Mary had a little lamb. Its fleece was white as snow. And everywhere that Mary
personnel.txt: Candidates for a pay increase this year include Johnson, Martin and Littlefield.
personnel.txt: Due to Smith's impending marriage, she wil be taking a two-week honeymoon in

Não somente há ocorrências em dois arquivos diferentes, mas também há duas ocorrências separadas de "mar" no arquivo personnel.txt.

Os resultados de uma pesquisa podem ser copiados para outro arquivo texto ou impressos, usando o símbolo de piping (|) (veja a questão A listagem de diretório é muito longa e rola para fora da tela. Existe uma forma de visualizar uma página de cada vez? nesta seção para obter mais informações sobre o piping). Os resultados da pesquisa podem também ser redirecionados para um arquivo usando os símbolos de redireção e append (> e >>) (veja a questão P. Existe documentação online para a maioria dos programas? na seção Uso Geral, para ver informações sobre redireção).

Existe muito mais coisas que podem ser feitas com o comando grep. Por exemplo, o parâmetro -c informa ao grep para somente mostrar a contagem do número de linhas em que a string aparece no arquivo, em vez do texto em a combinação aparece (como, por exemplo, personnel.txt:2). Para mais informações, leia a página de manual (comando: man grep).

P. O que são links "simbólicos" e hard links, e como eu posso identificar eles?

Links simbólicos (soft) funcionam como os "atalhos" no Windows, como ponteiros para programas, arquivos de dados ou diretórios localizados em outra parte do disco. Os links permitem que você inicie um programa de mais de uma pasta (ou Desktop) sem ter que duplicar os arquivos em múltiplos lugares. Os links são arquivos independentes -- com apenas alguns bytes de tamanho -- que podem ser renomeados ou movidos sem afetar os programas originais ou arquivos que apontam. Entretanto, se o arquivo original é movido, apagado ou renomeado, o link será "quebrado", por que ele não mais combina com o nome de arquivo e diretório armazenado no link (se um link é "quebrado" desta forma, ele deve ser apagado -- já que não é mais útil -- e um novo link criado, se necessário, para o novo nome de arquivo e/ou localização. Por outro lado, se você renomear o arquivo original de volta para o que o link está esperando, ou retornar o mesmo para seu local original, o link irá "magicamente" funcionar novamente).

Links simbólicos podem ser identificados, usando o K File Manager (KFM) ou outro gerenciador de arquivos gráfico, por uma pequena seta no canto inferior direito de um ícone, apontando para o ícone. Na linha de comando, um comando que pode ser usado é ls -F ("F" maiúsculo, não minúsculo). Quando os nomes de arquivos são listados, os links simbólicos serão seguidos por um símbolo @. Por exemplo, se você listar os arquivos no diretório /bin, poderá ver:

arch*
ash*
ash.static*
aumix-minimal*
awk@
basename*
bash*
bash2*
bsh@

e assim por diante, onde awk@ e bsh@ são links simbólicos para arquivos em outros diretórios (o * que acompanha outros nomes indica que são arquivos "originais"). Alternativamente, você pode usar o comando ls -il (veja abaixo).

Links específicos à interface de usuário KDE tem a extensão .kdelnk, como Autorun.kdelnk.

Outro tipo de link é o "hard" link. Este é similar em função a um link simbólico, ou soft, exceto que renomear, apagar ou mover o arquivo original não irá quebrar o link (por que este aponta para o arquivo físico no disco, não para o nome de arquivo/diretório na estrutura de diretórios do disco). Hard links aplicam-se somente a arquivos de dados ou programas, não a diretórios.

Todos os arquivos tem pelo menos um hard link (o nome do arquivo na listagem de diretório). Acerscentar um hard link irá aumentar a contagem de hard links, que você pode ver usando o comando ls -il. Por exemplo:

619880	-rw-rw-rw-	2 ownerid  groupid     428 Apr 14 19:42  myfile.txt
145389  -rw-rw-rw-      1 ownerid  groupid    7285 Sep 30 10:17  coffee.txt
268394  -rw-rw-rw-	1 ownerid  groupid    8912 Nov  4 19:42  tea.txt
619880  -rw-rw-rw-      2 ownerid  groupid     428 Apr 14 19:42  person.txt

(O parâmetro -i pede para mostrar número "inode" -- explicado abaixo, e o argumento l diz ao Linux para mostrar a listagem de arquivos no formato longo, incluindo as permissões, ID de proprietário e grupo, tamanhos de arquivo e data/hora de criação). Existem quatro diferentes arquivos listados, mas note as similaridades entre dois deles: os arquivos myfile.txt e person.txt possuem exatamente a mesma data/hora, tamanho e propriedades. Além disto, ambos tem "2" para o número de hard links, mas todas estas similariedades podem ser apenas uma coincidência (afinal, dois arquivos não relacionados de mesmo tipo e tamanho podem ser criados a um minuto um do outro). A conexão real, entretanto, é o conjunto de números que precede as listas de permissões de arquivo (para uma explicação das permissões de arquivos/diretórios, veja a questão Como eu vejo as permissões de um arquivo ou diretório?). O número "619880" é o inode, ou endereço físico de disco do arquivo. Somente um arquivo pode ocupar um dado bloco de armazenamento de disco (da mesma forma que somente um car pode ocupar um determinado espaço de estacionamento em dado momento). Assim, estes "dois" arquivos devem de fato ser um arquivo físico com dois hard links (nomes).

Novamente, diferente de soft links (simbólicos), apagando um destes arquivos não irá afetar o outro. Outra diferença entre os dois tipos de links é que hard links não podem ser feitos entre discos. Em outras palavras, um hard link não pode ser criado em /dev/hdb, linkando para um arquivo em /dev/hda.

P. Como criar links (simbólicos ou hard links)?

O comando ln (link) pode ser usado para criar os dois tipos de links. Por exemplo, para criar um hard link chamado myfile2.txt a um arquivo myfile.txt, escreva ln myfile.txt myfile2.txt. Isto irá criar o link no mesmo diretório do arquivo original. Para criar um link simbólico myfile3.txt para o mesmo arquivo original, use ln -s myfile.txt myfile3.txt (o parâmetro -s é o que informa ao Linux para criar um link simbólico).

Se você usar o comando ls -il para listar o conteúdo do diretório, verá algo como o seguinte:

619880  -rw-rw-rw-   2 ownerid  groupid     428 Apr 14 19:42  myfile.txt
619880  -rw-rw-rw-   2 ownerid  groupid     428 Oct  2 10:18  myfile2.txt
224516  lrwxrwxrwx   1 ownerid  groupid       6 Oct  2 10:18  myfile3.txt -> myfile.txt

Note que todos os detalhes sobre o hard link (myfile2.txt), incluindo o endereço de inode (619880), são idênticos aos do arquivo original (myfile.txt), exceto pela data/hora de criação. Ele é tratado como um arquivo físico (o que pode ser verificado pelo tamanho e as permissões marcando tipo como sendo -), mas no mesmo local do arquivo original (mesmo endereço de inode), com as mesmas permissões de leitura/escrita. O 2 que segue as permissões reflete o número de hard links ao arquivo físico (a listagem de diretório para o arquivo original sendo o primeiro hard link). Entretanto, virtualmente todos os aspectos do link simbólico (myfile3.txt) são diferentes. O endereço de inode é diferenet por que existe um arquivo físico criado em algum lugar do disco que contém um ponteiro para o arquivo original. De forma semelhante, as permissões são diferentes, com o link simbólico apresentando um tipo de arquivo link (o l iniciando as permissões), e incluindo a pemrissão de ex para todos os tipos de usuários. O 1 que segue as permissões demonstra que este não é um hard link. Finalmente, o nome do arquivo é seguido por "-> myfile.txt", que revela o nome do arquivo original para o qual o link aponta.

Note que a criação de um hard link para este arquivo no mesmo diretório provavelmente não é o uso normal de hard links. Provavelmente você irá criá-lo em outro diretório de forma que ele possa ser acesado de outro lugar (ou vários lugares, se você tem múltiplos links). Por exemplo, ln myfile.txt /user/mark/myfile2.txt irá colocar o novo link no diretório /user/mark.

O Linux mesmo faz uso de hard links. Em muitos casos o Linux continua a usar programas e arquivos que foram usados pela primeira vez em versões antigas do Linux, o que pode causar problemas. Por exemplo, se o X Window System foi primeiro instalado em um diretório chamado /usr/X11R4, o software Linux irá procurar por estes arquivos naquele diretório. Mas quando sai uma nova versão do Linux que usa uma versão mais nova do X Window, os arquivos podem ser armazenados em /usr/X11R5 ou /usr/X11R7 ou /usr/X11R10. Como evitar que todos aqueles programas que esperam arquivos em /usr/X11R4 tenham problemas? Simples. Coloque hard links de um diretório no outro. Desta forma, seja qual for o diretório que o software procure, ele irá encontrar o que precisa.

Como uma alternativa à interface de linha de comando, alguns gerenciadores gráficos de arquivos (como o GNU Midnight Commander) oferecem opções para criar qualquer um dos tipos de links ao se clicar com o botão direito do mouse sobre o ícone de um arquivo.

P. Você pode resumir as diferenças entre links simbólicos e hard links e mostrar a diferença entre fazer um link e simplesmente duplicar um arquivo?

Claro. Se você simplesmente copiar um arquivo de um diretório para outro, você duplicou o espaço usado pelo arquivo, e a edição de um arquivo não irá afetar o outro (por que eles não são conectados de forma alguma). Isto está bem se é o que você quer (assim você pode manter uma cópia do original enquanto modifica outra cópia, ou se você faz uma cópia de backup por segurança). Se você copiar um diretório em vez de um arquivo, você também copia todo o conteúdo do diretório, o que pode resultar em muito espaço de disco usado. Uma cópia de arquivo ou diretório pode ser colocada em qualquer parte de qualquer disco, ou conectado diretamente no sistema ou em um drive de rede ou mesmo em um lugar completamente diferente da Internet/Intranet.

Por outro lado, se você criar um link simbólico ele somente ocupa alguns poucos bytes de espaço e pode ser localizado em qualquer dispositivo montado que você possa escrever o path. Se você deletar, renomear ou mover o arquivo original, você "quebra" o link (apesar que recriando o arquivo original no mesmo lugar irá restaurar o link). Usando o link para acessar o arquivo ou diretório, qualquer mudança feita ao arquivo ou conteúdo do diretório irá afetar o arquivo/diretório original, porque são eles que você realmente está alterando.

Alternativamente, se você em vez disso criar um hard link, nenhum espaço adicional é usado, entretanto, i link somente pode ser criado no mesmo disco rísico (mas múltiplas partições no disco), não em outro local ou dispositivos remotos. Mover ou renomear o arquivo original não irá danificar o link, ele irá refletir a alteração. Quando você "apagar" o arquivo original, você estará na verdade apagando somente o hard link original (nome no diretório). Assim, enquanto existir pelo menos um hard link, o arquivo ainda é acessível. Hard links podem ser criados para arquivos mas não para diretórios. Como as permissões indicam que um hard link é um arquivo físico, qualquer software que tente acessar estes arquivos irá pensar que está acessando os arquivos originais (o que, de fato, é -- através do link).

P. Eu conheço um certo número de tipos de arquivos, como .JPG, .GIF, .WAV, .TXT, .HTM e .ZIP do Windows, mas eu vejo muitos outros tipos de arquivo que não conheço. Para que servem?

Existem muitas extensões que são comuns no UNIX/Linux mas que não são tipicmente vistas no mundo Windows. Aqui estão algumas:

.a - Arquivo .png - Arquivo de imagem (semelhante ao .jpg/.gif)
.au - Arquivo de áudio (semelhante ao .wav) .ps - Arquivo formatado para impressão PostScript
.bzip2, .bz2 - Arquivo compactado com o bzip2 .rpm - Arquivo do RPM Package Manager
.c - Arquivo fonte na linguagem de programação C .so - Arquivo de biblioteca de programa
.conf - Arquivo de configuração .tar - Arquivo de arquivos
.cpp - Arquivo fonte na linguagem de programação C++ .tar.bzip2, .tar.bz2 - Arquivo compactado pelo bzip2
.gz, .gzip - Arquivo compactado pelo gzip .tar.gz, .tar.Z - Arquivo compactado pelo gzip
.h - Arquivo de cabeçalho da linguagem C ou C++ .tga - Arquivo de imagem
.html - Arquivo HTML (o mesmo que .htm) .tgz - Arquivo compactado com o gzip
.o - Arquivo objeto de programa .xpm - Arquivo de imagem
.pl - Arquivo script Perl .z, .Z - Arquivo gzip antigo

Se você encontrar um tipo de arquivo que não reconheça (como um arquivo sem nenhuma extensão no nome), você pode usar o comando file para saber mais sobre o mesmo. Por exemplo, file smith.xyz, ou file smith (se não houver extensão de arquivo).

P. Devo fazer um backup de todo o sistema?

Esta não é uma questão fácil de responder como parece. Um sistema completamente configurado com sistema operacional, muitos aplicativos enormes, arquivos de dados e talvez uma biblioteca de arquivos de multimídia (música, vídeo, fotografia, etc.) pode somar muitos gigabytes de informação. A menos que você tenha uma opção de backup de alta capacidade e alta velocidade (como uma unidade de fita DLT de 4mm ou 8mm, ou uma unidade de cartuchos de discos removíveis Iomega Jaz, por exemplo), não é prático fazer uma cópia de tudo. Por outro lado, como você provavelmente instalou todo o software de alguns poucos CD's, não é absolutamente necessário fazer backup do sistema operacional e das aplicações. Se você fizer cópia de segurançasomente dos arquivos de dados, arquivos de configuração, arquivos da conta, e outros que foram criados ou modificados desde a instalação, você sempre pode reinstalar o software do CD, e então restaurar os arquivos de usuário que foram salvos.

Obviamente, a desvantagem disto, no evento de uma falha catastrófica de disco, é o tempo e esforço necessário para instalar todo o software individualmente, em vez de apenas iniciar um programa de restauração de cópia de segurança, inserindo uma fita ou cartucho Jaz e sair. Mas se você não tem uma solução de backup de alta capacidade ao alcance, um backup parcial é o método mais efetivo para fazer uma cópia de tudo menos a reinstalação completa do sistema operacional. Cada aplicação tem seu próprio conjunto de arquivos de configuração que devem ser copiados, bem como arquivos de dados, mas você tem que saber quais são eles a partir da documentação do software ou do fabricante.

Do ponto de vista do Linux, os diretórios que você deve copiar incluem:

Obviamente você também deve fazer cópias de segurança de qualquer diretório que contenha arquivos de usuários importantes. Se você não tiver um dispositivo de armazenamento de alta capacidade, você sempre pode fazer as cópias dos arquivos das aplicações para seu próprio conjunto de disquetes usando um utilitário de compactação/arquivamento, como o tar, gzip, bzip2 ou zip. Estas e outras ferramentas podem usar mais de um disco ou fita para armazenar todos os dados em um arquivo relacionado. Este método pode não ser tão rápido ou eficiente como uma unidade de fita, mas pelo menos você terá uma cópia dos arquivos essenciais. Não é necessário fazer backup dos arquivos dos programas, já que você smpre pode reinstalar as aplicações do zero, mas você pode querer fazer uma cópia dos arquivos que contém as informações de configuração do usuário (preferências), como as margens padrão e tabulações para um processador de textos (uma pista para saber quais são estes arquivos é examinar as datas dos arquivos. Geralmente, os arquivos de configuração dos usuários terão datas mais recetnes que os arquivos que foram criados quando o programa foi instalado a primeira vez. Caso tenha alguma dúvida sobre o que deve ser copiado, contacte o fabricante do software).

P. Com quê freqüência devo fazer backup de meus arquivos?

Não há uma resposta certa para esta questão também. Cada usuário é diferente. Uma forma de responder esta questão para você mesmo é usar o teste do "Ops". Considere quanto trabalho pode ser perdido antes que comece a causar sofrimento. Se você for um usuário doméstico, talvez um backup semanal será adequado (logo depois de você pagar as contas, por exemplo). Em um ambiente de escritório de alta performance, uma ou duas vezes por dia -- ou mesmo a cada hora -- pode ser necessário.

Também é uma boa idéia usar uma estratégia de rotação de mídia de backup do tipo "avô-pai-filho" (em outras palavras, use três ou mais conjuntos de fitas ou cartuchos e alterne entre eles). Desta forma, se por alguma razão seu backup mais recente está corrompido, pelo menos você tem o próximo mais antigo para fazer a cópia. Além disto, se você descobriu que acidentalmente apagou um arquivo alguns dias atrás -- ou ele foi danificado por um vírus -- você pode restaurar o arquivo de um backup feito antes da exclusão.

Outra opção é fazer cópia somente do que foi alterado desde o último backup (alguns arquivos de arquivamento mantém um controle desta informação de backup para backup). A vantagem é que geralmente são feitas poucas alterações desde o último backup, o que torna o backup mais rápido. A desvantagem é que você deve manter cópias de todos os backups intervenientes desde o último backup completo. Perder mesmo um backup parcial neste conjunto pode significar a perda de informação importante. Assim, mesmo com uma política de backups incrementais, é uma boa idéia fazer backups completos periodicamente.

P. Qual software de backup devo usar?

Existe um grande número de programas comerciais e programas gratuitos disponíveis para uso, alguns primariamente para unidades de fitas e outros para uso mais genérico (discos ópticos e magnéticos, unidades de rede, etc). Muitos destes tem interface gráfica para torná-los mais fáceis de usar. É uma boa idéia tentar alguns programas diferentse para ver qual você gosta mais.

Existem muitas ferramentas disponíveis para tentar descrever todas aqui. Mas aqui estão alguns comandos e utilitários comuns -- que provavelmente fazem parte de sua distribuição Linux -- de forma que você pode começar com:

tar -- o tar é a mais antiga e mais comum ferramenta de "empacotamento" para o Unix/Linux (ele faz o "desempacotamento" dos arquvios também -- não há um comando "untar"). O comando tar cria um arquivo que contém tdoos os outros arquivos e diretórios, opcionalmente compactados (usando o bzip ou bzip2) para economizar espaço. Se você usou o zip/unzip ou o PKZip no DOS/Windows, então você já está familizarizado com o conceito. Arquivos compactados com o tar tipicamente tem uma extensão .tar. Se ele foi compactado com o gzip, então a extensão pode ser .tar.gz, .tar.Z, ou .tgz. Arquivos tar compactados com o bzip2 geralmente tem uma extensão .tar.bz2, .tar.bz, .tbz2 ou .tbz. As ferramentas de compressão gzip e bzip2 podem também ser usadas intependentes do comando tar para compactar e descompactar arquivos (veja abaixo). Existem muitos parãmetros diferentes disponíveis para o comando tar (que também desempacota os arquivos também), de forma que é melhor ler a página de manual do tar usando o comando info tar. Nota: Não é aconselhável compactar arquivos tar em um backup de fita, por que o tar não pode fazer recuperação de erros de fita.

gzip/gunzip -- O gzip (GNU zip) é a ferramenta usada tradicionalmente para compactar arquivos "tarreados" e o gunzip é usado para descompactar aqueles arquivos. Ferramentas mais novas, como o PKunzip, podem geralmente descompactar arquivos criados pelo gzip bemc omo aqueles compactados por outras ferramentas, como o PKzip e zip. devido a esta flexibilidade e por que o PKzip e zip geralmetne estão disponíveis em outras plataformas de sistema operacional, eles se tornaram mais populares que o gzip. Arquivos compactados com o gzip geralmente terminam com .gz, ou, no caso de alguns arquivos antigos, .z ou .Z. Você pode ler mais sobre os comandos gzip/gunzip com o comando info gzip.

bzip2/bunzip2 -- Pense no bzip2 como uma versão mais nova e mais rápidad o gzip. Possui uma estrutura de comando bastante similar (incluindo muitos dos mesmos parâmetros), mas tende a ser mais rápido na compressão e descompressão que o gzip/gunzip. Arquivos bzipados terminam com uma extensão .bz2 ou .bz. Mais informações podem ser obtidas com o comando info bzip2.

PKzip/PKunzip -- O PKzip é uma ferrametna de empacotamento e compressão sharewaer/comercial popular no mundo DOS/Windows. O PKzip é muito rápido e oferece vários graus de compressão vs. velocidade. Versões mais novas incluem uma interface ao usuário gráfica. O PKunzip é compatível com arquivos criados pelo PKzip, zip, gzip e tar, bem como os formatos de arquivo UUencode, XXencode, MIME e BinHex. Arquivos PKzip terminam com a extensão .zip. Para mais informações, leia a documentação que vem com o PKzip.

zip/unzip -- O zip e unzip é um par de ferramentas de linha de comando que empacota e compacta (e descompacta) arquivos e diretórios. Além de ser bastante rápido, eles são livres e disponíveis para outras plataformas, incluindo o DOS/Windows, OS/2 e outros sistemas operacionais UNIX, incluindo o SCO. O comando unzip pode também descompactar arquivos craidos pelo PKzip. Como o PKzip, os arquivos compactados pelo zip tem uma extensão .zip. Os utilitários zip e unzip podem estar incluídos em sua distribuição Linux. Se for este o caso, leia seus manuais usando os seguintes comandos: info zip e info unzip.

Outros utilitários que podem ser obtidos separadamente incluem o Arkeia, Backup Edge, BRU2000, Catchup, CTAR, Drive Image, Kbackup, KDat, PerfectBACKUP+, Sitback, Taper e muitos mais.

Para mais informações sobre este tópico, veja o documento chamado Installing Linux Applications for the First Time, disponível na mesma fonte que este documento.

Contas Root/Usuário, Grupos e Permissões

Estas são questões sobre administração de contas, senhas e permissões.

P. Algumas instruções dizem que eu devo "ser root". O que isto significa?

Isto significa que você tem que estar logado como usuário root, ou superusuário (desculpe, mas voc~e não vai conseguir uma capa com um "S" nela). Existem duas formas de conseguir isto. Se você irá trabalhar como root extensivamente, você deve fazer o logout e logar como root. Quando tiver terminado, faça o logout novamente e faça o login com sua conta.

Por outro lado, se você precisa ser root somente para executar um comando, você pode abrir um shell de comando e executar o comando su (substitute user -- substituir usuário) para fazer um login temporário como outro usuário, enquanto ainda está em "seu" shell de login. Você será perguntado pela senha de root. Uma vez que você tenha fornecido a mesma, você "será root" e poderá executar os comandos que precisar até que você termine a sessão escrevendo exit e pressionando Enter ou fechando o shell.

Alguns comandos não funcionam a menos que você esteja logado como root (ou seja, o su não irá funcioinar, por que o Linux "sabe" que é você que está no comando). Uma alternativa é usar o comando su - (su seguido de um hifen, com um espaço entre eles). Este comando fará que você seja root com o shell de login do rrot, como se você tivesse feito um logoff e um login novamente como root.

P. O que é a conta root e qual a diferença dela para uma conta de usuário?

Quando você instalou o Linux, foi perguntado por uma senha de root. Mais tarde foi solicitada um nome de conta de usuário e senha. A conta de root é equivalente ao acesso de nível de sistema que você recebe no Windows, com a habilidade de apagar, criar e formatar partições, criar/excluir diretórios e arquivos, ou fazer qualquer coisa que queira. O Linux opera como um sistema de rede cliente/servidor. A conta de root é como um administrador de sistemas, que pode controla qul a autorização de acesso os vários clientes (usuários) tem. Podem haver muitas contas de usuários diferentes no mesmo sistema Linux, cada uma com seu próprio conjunto de permissões, opções de conriguração, escolha de interface de usuário, e assim por diante.

Isto é bastante útil em um ambiente de negócios onde muitas pessoas compartilham o mesmo sistema, já que cada conta de usuário pode ser personalizada para cada usuário individual. Por outro lado, pode ser um inconveniente quando há somente um usuário, por que existem algumas funções de sistema que somente podem ser executadas pela conta root, necessitando que o usuário faça logout da conta de usuário normal e faça log in na conta de root para executar as operações necessárias, então fazer logout da conta de root e voltar para a conta de usuário (felizmente há um atalho que você pode usar em algumas situações como alternativa. Veja a descição do comando su - na questão anterior Algumas instruções dizem que eu devo "ser root". O que isto significa?).

Em compensação, entretanto, fazendo desta forma é mais difícil que o usuário venha a apagar ou corromper acidentalmente arquivos importantes do sistema que ele não deveria estar trabalhando a princípio.

Nota Importante: A maioria, se não todas, as distribuições Linux pedem que você crie uma conta de usuário além da conta de root quando instala o Linux. Apesar de ser tentador logar como root e usar a conta root para tudo, esta é uma Idéia Muito Ruim. Existem muitas formas de corromper o sistema acidentalmente (ou até mesmo alguém pode fazer isto maliciosamente) usando a conta root. Utilizando principalmente a conta de usuário, seu sistema está protegido em grande parte da maior parte dos desastres (isto não irá impedir um problema de disco, obviamente, mas pelo menos você não poderá apagar acidentalmente o diretório /usr/lib, por exemplo). Se a distribuição Linux instalada pediu que você criasse uma conta de usuário, use ela. Se você não criou uma durante a instalação, crie uma agora, e use ela!

P. Por que eu vou querer acrescentar outras contas de usuário no meu sistema?

Se você é o único que usa seu sistema, pode não haver necessidade de configurar outras contas de usuários (além da sua). Por outro lado, se você compartilha seu computador com outras pessoas (um segundo e terceiro colegas de trabalho, talve, ou você compartilha uma área de trabalho comum, ou outros membros de sua família usam seu computador), ou mesmo se você quer que sua impressora ou outros dispositivos fiquem disponíveis a outros usuários da mesma rede, você precisará configurar contas de usuários individuais e possivelmente contas de grupo.

P. Como eu acrescento usuários?

Existem várias ferramentas gráficas disponíveis para faer isto. Por exemplo, o Red Hat Linux 6.2 inlcui a ferramenta gráfica Red hat Disk Management (linuxconf). Para as ocasiões que você não está rodando uma interface gráfica, ou prefere uma ferramenta de linha de comando, um par de programas de modo texto que são geralmente incluídos com o Linux são o adduser e useradd. Apesar da similiaridade dos nomes e função, o adduser é o mais funcional dos dois.

Para usar o linuxconf:

  1. Execute linuxconf na linha de comando sob o KDE ou o Gnome (o linuxconf não está em nenum menu);
    Para usar o Linux e ferramentas de sistema similares, você deve primeiro estar logado como root. Para isto, use o comando su - e informe a senha de root quando pedido.
  2. Uma vez que o painel do linuxconf tenha aparecido, role para baixo até o cabeçalho de nome User accounts. Imediatemente abaixo á um subtítulo chamado Normal, e sob ele, User accounts.
  3. Dê um duplo-clique em User accounts para abrir um painel que lista todas as contas existentes.
  4. Para criar uma nova conta, clique no botão Add na parte inferior do painel. Você verá um subpainel com quatro tabs: Base info, Params, Mail settings e Privileges.
  5. Quando tiver preenchido toda a informação necessária, clique no botão Accept para salvar as alterações (ou Cancel para rejeitar as alterações e não criar a nova conta).

Usuários e outras distribuções que não o Red Hat possuem outras ferramentas de administração de usuários gráficas à sua disposição. Por exemplo, usuários do Caldera OpenLinux 2.3 tem o Webmin e o COAS. Apesar de os dois individualmente não fazerem tudo que o linuxconf faz, juntos eles oferecem funcionalidade similar.

Para acrescentar usuários com a ferramenta COAS:

  1. No menu do KDE, selecione Settings, então COAS, e finalmente, Accounts. Um painel irá se abrir.
  2. Na barra de ferramentas selecione User e então Create user.
  3. Quando o menu aparecer, comece a criar tantas contas de usuário quanto forem necessárias.

Se sua distribução não oferecer uma ferramenta gráfica, ou se você preferir usar a interface de linha de comando, você pode usar o adduser. Como com o linuxconf, antes de usar o adduser você deve estar logado como root. Então escreva adduser newusername (onde newusername é o nome de usuário que você quer criar).

O programa irá atribuir o próximo ID disponível para o novo usuário e grupo, então lembrará você para configurar uma nova senha para esta nova conta (para atribuir uma senha, veja abaixo). Isto irá fornecer o mínimo de informação necessária para criar um usuário. Para acrescentar informações pessoais ao registro da conta, como o nome do usuário, endereço e telefone, use o comando chfn (Change Finger Name) (veja abaixo).

P. Como eu apago usuários?

Este é um processo de várias etapas:

  1. Faça login como root
  2. Use o comando userdel com o nome do usuário que você quer apagar, como em userdel mary. Note, entretanto, que este comando irá apagar o nome da conta no arquivo /etc/passwd, ele não irá apagar todos os arquivos associados
  3. Siga com o comando groupdel para remover a entrada UPG do usuário (o grupo default), como em groupdel groupname
  4. Remova todas as outras afiliações de grupo do usuário (além do UPG), usando o comando usermod -G username username (note que o parâmetro -G é maiúsculo)
  5. Use um editor de textos para remover o ID de login do arquivo /etc/group.
  6. Apague o diretório home do usuário e sua caixa postal usando rm -R /home/username /usr/spool/mail/username (note que o -R é maiúsculo).

P. Existe uma forma de eu mudar um user ID?

Sim. Para alterar um user ID (nome de login), use o comando usermod. Por exemplo, para mudar o nome de uma conta de "mary" paa "Mary_Jones", use usermode -l Mary_Jones mary. Se você mudar um nome de login, você também deve mudar o diretório home do usuário, onde todas as informações da conta do usuário são armazenadas. Para isto, use o comando usermod -d /home/Mary_Jones -m -m mary para mover as informações da conta de usuário do diretório /home/mary para o diretório /home/Mary_Jones (o parâmetro -l informa ao usermod para mudar o nome de login, o -d identifica o diretório que você está mudando, e -m diz para mover para o diretório especificado).

P. Existe uma forma de eu desabilitar uma conta de usuário?

Sim. Se você estiver usando senhas "shadow" (veja a questão O que é uma senha shadow?, na próxima seção, para uma explicação), a forma mais simpes é usando o comando usermod. Simplesmente atribuindo uma data de expiração que já passou, como usermod -e&usermod;01/01/92 mary (veja abaixo para uma explicação sobre senhas shadow).

Como alternativa, usuários experientes podem editar o arquivo /etc/passwd. Para desabilitar a conta, encontre a linha apropriada para o usuário e insira um asterixo (*) em frente da senha criptografada. A senha é localizada entre o primeiro e segundo dois-pontos separadores, seguindo o nome de usuário. Por exemplo:

mary:*Ms.2jbeTWmUYi:500:Mary Jones:/home/mary:/bin/bash

Atenção: Esta abordagem alternativa deve ser usada apenas como último recurso, por um usuário Linux proficiente, por que a edição manual deste arquivo pode causar sérios problemas se for feita incorretamente.

P. Como eu acrescento ou altero informações pessoais de uma conta?

Se você quer acrescentar nome, endereço e número de telefone a sua conta e alterar a iformação que já está lá, existe o comando chfn (Change Finger Name). A sua senha será solicitada, e então os campos de dado acima serão apresentados para entrar a informação acima.

Para alterar outras contas de usuário, faça o login como root. Especifique então qual usuário você quer alterar as informações, como em chfn fred, e faça os acréscimos ou alterações.

S você preferir uma ferramenta gráfica, usuários do Red Hat Linux 6.2 que estejam rodando o KDE podem clicar no menu KDE (o K grande no Painel), e selecionar a opção Red Hat, então System e, finalmente, About Myself. isto irá trazer um painel com os campos de entrada para toda a informação aceita pelo comando chfn. Não estou sabendo de uma ferramenta gráfica semelhante para usuários de outros ambientes de desktop além do KDE, assim, se você não está usando o KDE, terá de usar o comando chfn.

P. Como eu acrescento grupos?

Grupos padrão são automaticamente criados quando você acrescenta usuários. Se voc~e precisa acrescentar grupos manualmente você pode usar o comando groupadd. Normalmente, os group IDs (GIDs) são fornecidos automaticamente (acrescentando 1 ao último número usado) quando um grupo é criado. Entretanto, como você está criando um grupo manualmente você precisará especificar um group ID você mesmo. O GID máximo é 65536, então você provavelmente irá querer especificar um número bem grande (tipo 50000 ou maior) para não usar um que já esteja atribuído pelo sistema. Para criar um grupo chamado "mygroup" com o GID igual a 50000, escreva grupoadd -g 50000 mygroup.

P. Como eu acrescento/excluo usuários em um grupo?

Para acrescentar usuários, use o programa gpasswd com o parâmetro -a (add -- acrescentar). Por exemplo, para acrescentar o usuário "mary" ao grupo "mygroup", escreva gpasswd -a mary mygroup.

Para excluir usuários, simplesmente troque o parâmetro -a por -d (delete -- exlcuir), como em gpasswd -d mary mygroup.

P. Como eu troco uma senha?

Para trocar a senha da sua conta, usuários do Red Hat 6.2 que estejam rodando o KDE podem clicar no menu KDE e selecionar Red Hat, em seguida, System e, finalmente, Change Password. Um painel irá aparecer perguntando pela senha atual (do usuário logado). Se a senha correta for informada, o usuário será solicitado a informar a nova senha (se ela for muito curta ou inválida por outra razão, o painel irá reaparece). Não sei de nenhuma ferramenta de administração de senha para outros ambientes de desktop que não o KDE, assim, se você não estiver usando o KDE, você terá de fazer isto a partir da linha de comando.

Na linha de comando, simplesmente use o comando passwd. Ele irá pedir pela senha atual e então pedir duas vezes pela nova senha, para verificação.

Para alterar outra senha, você deverá estar logado como root. Informe então qual usuário você quer alterar a senha, como em passwd fred. Você não precisará saber a senha atual, simplesmente informe a nova senha duas vezes.

P. O que é uma senha shadow?

Senhas shadow são usadas para proteger senhas do sistema (de contas de usuários) fazendo com que o arquivo que contém estas senhas (/etc/shadow) legível somente pelo operador root. Quando senhas shadow são usadas elas substituem as senhas criptografadas no arquivo /etc/passwd com asteriscos (mover as senahs para /etc/shadow faz com que seja mais improvável que as senhas criptografadas sejam descriptografadas, por que somente o operador root tem acesso ao arquivo). Para ver se você está com senhas shadow habilitadas no seu sistema, use o comando ls /etc/shadow. Se você receber uma mensagem como ls /etc/shadow: No such file or directory, os arquivos não foram instalados. Para mais informações sobre as senhas shadow, leia a página de manual man 5 shadow.

P. Como eu vejo as permissões de um arquivo ou diretório?

Na linha de comando, use o comando ls com o parâmetro -l. Por exemplo, ls -a -l *.txt irá mostrar todso os arquivos .txt no diretório atual, com suas permissões, como em:

-rw-rw-rw-    1  ownerid  groupid     1428 Apr  2 19:42  myfile.txt
-rw-rw-rw-    1  ownerid  groupid      914 Sep 30 10:17  personnel.txt

Os 10 primeiros caracteres (ou "switches") em cada linha contém as permissões para aquele arquivo, diretório pasta ou outro objeto em particular. Para explicações sobre o significado destes caracteres, veja a questão Quando eu olho uma lista de arquivos e diretórios, os nomes são seguidos por algo como -rw-rw-r- ou lrwxrwxrwx. O que isto significa?.

Se você estiver usando o K File Manager (KFM) sob o KDE (basta clicar no ícone do Painel que se assemelha com uma casa em frente de uma pasta), simplesmente selecione View, então Long View, no menu, para mostrar todos os objetos com suas permissões. Usuários do Gnome terão de usar o método da linha de comando.

P. Como eu mudo permissões?

Se você é o administrador do sistem (root), ou o dono do arquivo, diretório ou outro objeto, você tem autoridade para conceder ou remover permissões para outros usuários ou grupos, usando o comando chmod. Os símbolos operativos a lembrar são u para Usuário (dono), g para Grupo, o para Outros, a para All (todos), r para Read (leitura), w para Write (escrita) e x para eXecução. Preceda os caracteres r/w/x com um sinal de mais (+) para acrescentar a permissão ou um sinal de menos (-) para negar uma permissão.

Por exemplo, para conceder acesso Read/Write (leitura/escrita) ao arquivo myfile.txt para Grupos e Outros, use o comando chmod og+rw myfile.txt. Para remover acesso Write (escrita) e eXecução para tdoas as contas, use chmod ugo-wx myfile.txt ou chmod a-wx myfile.txt (note que a, para All -- todos --, é uma abreviação conveniente para ugo).

Comunicações

As seguintes questões são relacionadas á configuração ou uso das facilidades de comunicação do Linux.

P. Como eu configuro meu sistema para acesso discado à Internet?

Este é um processo em várias etapas. Antes que você comece, voc~e deve contactar seu Provedor de Serviço de Internet (ISP). Existem algumas informações que você precisará para informar ao Linux que somente seu ISP pode fornecer (um técnico que tenha conhecimentos no Linux provavelmente poderá acompanhá-lo pelo processo inteiro. Mas como você pode não encontrar um especialista Linux no seu ISP, aqui estão os passos necessários para fazer isto por conta própria).

Se você precisar de ajuda para conectar-se via sua rede do escritório, contacte seu help-desk. Se você está tentando configurar o Linux para um acesso doméstico via DSL ou via modem a cabo (não-discado), contate o provedor DSL ou de modem a cabo para uma assistência (e espere que alguém lá tenha ouvido sobre o Linux).

Miscelânea

Esta seção contém questões ou problemas que não se encaixam em nenhuma das outras categorias.

P. Qual a diferença entre o Linux e o UNIX?

O UNIX começou como um sisteam operacional proprietário desenvolvido pela Bell Laboratories nos anos 1960. Eventualmente ele deu origem a um número de versões comerciais mutualmente incompatíveis de companias como a Apple (Mac OS X), Digital (Digital UNIX), Hewlett-Packard (HP-UX), IBM (AIX®), NeXT (NeXTSTEP) e outros.

O Linux é uma tentativa de criar um sistema operacional não proprietário para as massas. Ele é um sistema operacional gratuito, open source, baseado no UNIX, originalmente iniciado por Linus Torvalds em 1991. "Linux" refere-se realmente somente ao núcleo do sistema operacional. Mais de 200 pessoas contribuíram para o desenvolvimento do núcleo do Linux. O resto de uma "distribuição" Linux consiste de vários utilitários, drivers de dispositivos, aplicações, uma interface de usuário e outras ferramentas que geralmente podem ser compiladas e executadas em outros sistemas operacionais baseados em UNIX também.

P. Por que o Linux parece tão desleixado?

Você deve ter ouvido o velho ditado que diz que um camelo é um cavalo projetado por um comitê, ilustrando a dificuldade de conseguir que um número de pessoas concordem no design de alguma coias, e o resultado do compromisso. Mais que qualquer outra coisa, o Linux ilustra um cavalo projetado pela anarquia completa, com uma ajuda saudável da seleção natural Darwiniana em cima para melhorar. Milhares de programadores pelos anos escreveram aplicações, utilitários, jogos, drivers de dispositivos, interfaces de usuário e outros software para Linux. Na ausência de uma autoridade central para ditar um "look and feel" obrigatório, cada programador teve sua idéia de qual era o melhor projeto para software e desenvolveu os programas de acordo. Com o passar do tempo, alguns programas tornaram-se mais populares que outros, o que por sua vez gerou vários "assemelhados" ou "quase-clones", tomando funcionalidades dos produtos anteriores e acrescentando a eles, e oferecendo variações levemente diferentes.

Eventualmente, companias como a Red Hat, Caldera, TurboLinux e SuSE pegaram o kernel do Linux e acrescentaram com o que eles consideraram os melhores utilitários disponíveis, interfaces de usuário, etc., para formar uma "distribuição", ou um empacotamento. Como cada distribuição escolheu deste caos programático, é inevitável que os vários programas selecionados para um pacote parecem e funcionam diferentes de uma para outra, e cada pacote parece e, em alguns aspectos, funcionou de forma diferente de outros pacotes. O outro lado disto é que por que as companias de distribuições estavam livres para escolher entre todos os programas disponíveis, não somente àqueles que se conformaram a um estilo arbitrário, os pacotes puderam incluir os melhores programas -- mesmos os feios e não-conformantes.

P. Onde eu posso baixar ou comprar software para Linux?

Existem alguns lugares em que você pode encontrar software Linux livre ou comercial se sua loja de software local não tem o que você procura. Aqui estão alguns:

Para software livre, tente:

Se você encontrou algum software comercial que gostaria de comprar existem vários sites Web nos EEUU com inventários Linux extensivos:

Na Autrália, usuários Linux podem ir para:

Além de software, estes sites também oferencem livros sobre Linux, e dispositivos de hardware que são Linux-friendly, que talvez você precise acrescentar ao seu sistema ou ao fazer a atualização do mesmo. Alguns dos mesmos oferecem até mesmo coisas capas, mugs (canecos), gravatas e outras parafernálias Linux. Se você está procurando uma lista extensiva de livros sobre Linux, tente O'Reilly & Associates.

P. Onde eu posso ir para conseguir assistência Linux?

Existe um grande número de fontes na Internet em que você pode obter assistência sobre o Linux, incluindo Web sites de fabricantes, Web sites independentes e grupos Usenet. Alguns dos Web sites informativos incluem:

Os seguintes newsgroups podem fornecer bastante ajuda usuário-para-usuário:

Existem outros newsgroups de Linux que tratam outros tópicos, como questões relacionadas a empresas específicas (alt.os.linux.caldera, linux.debian.user ou redhat.rpm.general, por exemplo) e outros para programadores.

Para notícias atuais sobre o Linux e arquivos de artigos, visite:

Mark T. Chapman
IBM Server Group
July 7,200

1