Algumas peculiaridades do Linux

Algumas peculiaridades do Linux
Houve um tempo em que todos os sistemas operacionais utilizavam interfaces de modo texto. Com o tempo, as interfaces gráficas foram evoluindo, acompanhando a evolução das máquinas, chegando até o que temos hoje.

Mesmo no Linux, a maioria das pessoas passa a maior parte do tempo chamando os aplicativos através do menu e configurando o sistema através de ferramentas gráficas. Apesar disso, mesmo muitas vezes ignorado, o terminal pode prestar bons serviços, facilitando o acesso aos programas e permitindo usar muitas ferramentas que você nem imaginava que existiam.

Existe um número muito grande de pequenos aplicativos de modo texto, cada um deles suporta muitos parâmetros diferentes, por isso é quase impossível conhecer todos. Aprender a usar o modo texto é parecido com aprender uma segunda língua, é um processo gradual e constante, onde você sempre está aprendendo comandos, parâmetros e truques novos. É uma área em que ninguém pode dizer que sabe tudo. Quanto mais você aprende, mais tempo você acaba passando no terminal; não por masoquismo, mas porque ele é realmente mais prático para fazer muitas coisas.

Existem várias opções de programas de terminal, como o Konsole e o Xterm. No “Iniciar > Sistema > Terminais” você encontra até o Yakuake, que é um terminal “estilo Quake”, que uma vez ativado aparece no topo da tela quando você pressiona a tecla F12. Neste screenshot estou usando o Konsole:
pic01
O uso mais básico para o terminal é simplesmente chamar os programas. Quase todos os programas podem ser chamados pelo nome (sempre em minúsculo), como em “konqueror”, “kopete”, “amarok”, “gaim”, “xterm”, “firefox”, “kedit”, “kcontrol”, “clica-aki”, etc. Experimente chamar alguns dos programas que você costuma utilizar.

Outra opção é usar o Katapult, que você encontra no Iniciar > Escritório e Utilitários. Ele é uma espécie de meio termo entre o uso do iniciar e do terminal e acaba juntando o melhor dos dois mundos na hora de chamar programas :). Ao abri-lo, ele fica residente ao lado do relógio. Para chamar um programa, pressione “Alt+Espaço” e digite as primeiras letras, como em “konq” ou “amar”.

Conforme você vai digitando, ele mostra as opções de programas que começam com as letras. Geralmente, digitar três ou quatro letras é suficiente para que ele ache o programa que você quer abrir. Basta então pressionar Enter:
pec02
O Katapult é uma forma bastante inovadora de chamar os programas, diferente do conceito tradicional baseado no menu iniciar. Com um pouco de prática, você consegue chamar qualquer programa através dele em apenas um ou dois segundos, enquanto abrir o iniciar e procurar o ícone referente a ele faria você perder bem mais tempo.

Outra opção prática é o Yakuake, o terminal “estilo Quake”, que está disponível no “Iniciar > Sistema > Terminais“. Uma vez aberto, pressione “F12” para abrir ou fechar o terminal. Ele aparece na parte superior da tela e pode ser aberto e fechado de forma muito rápida e prática, ideal para quando você quer chamar algum programa ou fazer alguma configuração rápida usando o terminal. A idéia vem dos terminais disponíveis em muitos games, onde você pode alterar as opções do game ou usar cheatcodes rapidamente durante a partida:
pec03
Ao usar o terminal, você pode usar a tecla “Tab” para completar os comandos. Isso facilita muito a nossa vida, pois você precisa se lembrar apenas das primeiras letras de cada comando e ir usando a tecla Tab para completar. Experimente digitar “konq<tab>” ou “yak<tab>”, por exemplo. Seja o Konqueror, o Xterm ou o Yakuake, valem as mesmas regras.

Abrindo os programas via terminal, você pode incluir parâmetros no comando, indicando que o programa deve abrir um determinado arquivo, por exemplo. O kedit é um editor de texto; chamando apenas “kedit”, ele abre uma janela vazia, mas se você adicionar um arquivo ao comando, ele abre já mostrando seu conteúdo, como em:

$ kedit /etc/fstab
Usando o terminal você pode também abrir programas usando o root. Para isso, digite “su –” e forneça a senha de root (definida durante a instalação). O símbolo do terminal muda de um “$” para um “#“, indicando que agora você está logado como root (ao rodar o Kurumin do CD, você pode usar o ícone “Definir Senhas” no desktop). O root é um usuário administrativo, que não possui restrições de acesso dentro do sistema. Como root você pode simplesmente fazer de tudo, desde abrir uma ferramenta de configuração até formatar o HD. Justamente por não ter limites, o root deve ser utilizado apenas para tarefas administrativas.

Usando (por exemplo) o comando “kedit /etc/fstab” com seu login de usuário, você não consegue salvar o arquivo depois de fazer alterações. Isso acontece por que o fstab é um arquivo de configuração do sistema (muito importante por sinal) e por isso só o root tem permissão para modificá-lo. Se, por outro lado, você usar primeiro o comando “su -” e depois chamando, aí sim poderá modificar o arquivo normalmente. Isso vale para qualquer caso em que você precise modificar um arquivo de sistema ou abrir utilitários de configuração que façam modificações no sistema.

No Kurumin, o usuário padrão, “kurumin”, vem configurado com permissão para executar qualquer comando como root, sem precisar fornecer a senha. Isso permite que os painéis e scripts de configuração funcionem diretamente, sem que você precise ficar fornecendo a senha de root toda hora, o que facilita sobretudo ao rodar do CD. Basta adicionar o “sudo” antes do comando, como em “sudo konqueror /etc”. Este recurso é usado pelos ícones mágicos e parte das ferramentas de configuração do Kurumin, mas pode ser desativado a qualquer momento. A idéia é que você configure o sistema e instale todos os programas desejados e depois, se desejar, desative o sudo ou crie um novo usuário sem privilégios para uso normal do sistema.

Você pode desativar o sudo clicando sobre o ícone “Modo seguro, desativar o sudo” no Desktop. Mesmo com o sudo desativado, você tem a opção de ativá-lo caso precise executar algum script que o utilize, desde que digite a senha de root. O Ubuntu usa uma abordagem mais conservadora, confirmando sua senha de usuário antes de executar o comando, mas em ambos os casos a configuração de quais usuários podem usar o sudo vai no arquivo “/etc/sudoers”.

Como a maior parte da configuração do sistema pode ser feita editando diretamente arquivos de configuração (muita gente prefere esta abordagem, já que permite ter um maior domínio sobre o sistema), temos uma grande oferta de editores de texto, que vão desde editores simples, até editores poderosos, destinados a programadores.

Alguns exemplos de editores gráficos são o kedit e o kwrite, do KDE e o gedit, do Gnome. Temos ainda editores de modo texto, como o mcedit, joe e vi. Em qualquer um deles você pode abrir o editor diretamente no arquivo que quiser editar, como em “mcedit /etc/fstab”.

Tanto o kedit quanto o gedit são editores relativamente simples, que lembram até certo ponto o notepad do Windows. O kwrite já é um editor mais avançado, voltado para quem escreve scripts ou mesmo programa em linguagens diversas. Ele é capaz de realçar a sintaxe de várias linguagens, diferenciando os comandos, condicionais e comentários através de cores. Isso ajuda muito a entender o código e permite identificar erros muito mais rápido.

Nos editores de modo texto as coisas são um pouco mais complicadas, já que eles são controlados através de atalhos de teclado, mas você acaba precisando deles para resolver problemas em situações onde o modo gráfico não está mais abrindo, ou ao usar outras máquinas remotamente, via SSH.

O mais simples é o mcedit. Nele, as funções são acessadas usando as teclas F1 a F10, com uma legenda mostrada na parte inferior da tela. Para salvar você pressiona F2 e para sair, F10. O joe é um meio termo. Ele é muito parecido com o antigo Wordstar do DOS e usa as mesmas teclas de atalho que ele. Para salvar o arquivo e sair, você pressiona Ctrl+K e depois X.

O vi é o mais complicado da turma. Ele tem três modos de operação: comando, edição e o modo ex. Ao abrir o programa, você estará em modo de comando; para começar a editar o texto, pressione a tecla “i“. A partir daí, ele funciona como um editor de textos normal, onde o Enter insere uma nova linha e as setas movem o cursor. Quando terminar de editar o arquivo, pressione Esc para voltar ao modo de comando e em seguida “ZZ” (dois Z maiúsculos) para salvar o arquivo e sair. Para sair sem salvar, pressione Esc e digite “:q!” (exatamente como aqui, dois pontos, quê, exclamação, seguido de Enter). Ao sair do editor, você você pode verificar se o arquivo realmente foi salvo corretamente usando o cat, como em “cat /etc/fstab”.

Completando esta introdução ao uso do terminal, aqui vai uma pequena descrição dos comandos básicos:

  • cd: Serve para navegar entre os diretórios. Ao abrir o terminal, você começa dentro do seu diretório home (como “/home/kurumin”). Para acessar um diretório específico, especifique-o como parâmetro, como em “cd /etc”. Para subir um diretório use “cd ..” e, para voltar ao home, digite simplesmente “cd”, sem parâmetro algum. Sempre que quiser confirmar em qual diretório está, use o comando “pwd“.
  • ls: Serve para listar os arquivos e diretórios dentro da pasta atual. Na maioria das distribuições, a listagem aparece colorida, permitindo diferenciar as pastas e os diferentes tipos de arquivos. As pastas aparecem em azul, os links em azul claro, os arquivos compactados em vermelho, as imagens em rosa, os executáveis em verde e os arquivos de texto e outros formatos em preto.

Para incluir os arquivos ocultos (que no Linux começam com “.”), use “ls -a”. Para ver mais detalhes sobre cada arquivo, incluindo o tamanho, permissões de acesso e dono, use “ls -lha”. Acostume-se a sempre usar a tecla Tab para completar os comandos (principalmente os nomes de arquivos). Assim, além de digitar mais rápido, você diminui a possibilidade de erros.

  • man: Como disse, ninguém pode dizer que sabe tudo sobre todos os comandos do terminal. Para facilitar as coisas, cada comando possui um manual, onde são citados todos os parâmetros e vários exemplos. Todos estes manuais são acessados através de um comando único, o “man”. Para ver as (muitas) opções do “ls”, por exemplo, use “man ls“. Use as setas para rolar a tela e, para sair do manual, pressione a tecla “q”.
  • cp: Este é o comando usado para copiar arquivos de uma pasta a outra. Inclua o nome do arquivo e a pasta para onde ele vai, como em “cp arquivo.tar.gz /mnt/sda1”. Se você quiser copiar um arquivo que está em outra pasta para o diretório atual, inclua a localização completa do arquivo e em seguida o “./” (que representa o diretório atual), como em “cp /mnt/cdrom/video.avi ./”.

Um parâmetro bastante útil é o “-a”, que faz com que o cp sempre copie recursivamente, mantenha as permissões do arquivo original e preserve os links simbólicos que encontrar pelo caminho. Em resumo, faz o cp se comportar de uma forma mais simples e lógica. Para copiar a pasta do exemplo original, experimente usar “cp -a /mnt/cdrom/musicas ./”. Você pode ainda usar o “*” e a “?” como curingas quando quiser copiar vários arquivos. Para copiar todos os arquivos da pasta atual para a pasta “/mnt/hda6”, por exemplo, use “cp * /mnt/hda6”.

  • mv: O mv serve tanto para mover arquivos de um lugar para o outro quanto para copiar arquivos. Para mover o arquivo foto.png para a pasta “/mnt/hda6/”, o comando seria “mv foto.png /mnt/hda6”. Você pode usar o mv também para mover e renomear pastas. A diferença entre o mv e o cp é que, ao mover, o arquivo original deixa de existir.
  • rm: O rm serve para remover tanto arquivos quanto diretórios, de acordo com os parâmetros usados. Para remover um arquivo simples, basta usá-lo diretamente, como em “rm arquivo”. Para que ele remova sem pedir a confirmação, adicione o parâmetro “-f”, como em “rm -f arquivo”. Para remover uma pasta e todos os arquivos e diretórios dentro dela, adicione o parâmetro “-r”, como em “rm -rf arquivos/”. Tome cuidado ao usar o “-rf”, pois ele não pede confirmação, deleta os arquivos diretamente, sem escalas. Respire fundo e verifique se realmente está deletando a pasta certa antes de pressionar Enter.
  • mkdir: Este serve para criar novos diretórios, como em “mkdir /mnt/hda6/arquivos”. É possível também criar pastas recursivamente, criando, se preciso, todas as pastas necessárias até chegar a que você pediu, adicionando o parâmetro “-p” como em “mkdir -p /mnt/hda6/arquivos/novos/2006”. Mesmo que a pasta “novos” não exista, ela será criada.
  • rmdir: Esta é uma variação do mkdir, que permite remover diretórios. A diferença entre ele e o “rm -rf” é que o rmdir só remove diretórios vazios. Acostume-se a usá-lo no lugar do “rm -rf” ao deletar uma pasta que acha que está vazia, assim você evita acidentes.
  • locate: Este é um dos comandos mais úteis na minha opinião; ele permite encontrar arquivos de forma instantânea. Assim como mecanismos de busca, como o Google, o locate não sai procurando em todo o HD até achar o arquivo que pediu. Ele procura apenas dentro de uma base de dados, que contém os nomes de todos os arquivos. Esta base é gerada (ou atualizada) ao rodar o comando “updatedb“, sua cara metade.
  • cat: Serve para ver o conteúdo de um arquivo. Por exemplo, “cat carta” mostra o conteúdo do arquivo “carta”. Este comando serve bem para ver o conteúdo de arquivos de texto pequenos, sem precisar abrir um editor mais sofisticado.
  • clear: Limpa a tela, uma forma de colocar ordem na casa antes de executar novos comandos. Ao invés de digitar, você pode pressionar “Ctrl+L”, que é o atalho de teclado para ele.
  • | (pipe): Junto com as setas de redirecionamento (> e >>), o pipe ( | ) é muito usado em scripts e comandos diversos. Ele permite fazer com que a saída de um comando seja enviada para outro ao invés de ser mostrada na tela. Parece uma coisa muito exótica, mas acaba sendo incrivelmente útil, pois permite “combinar” diversos comandos que originalmente não teriam nenhuma relação entre si, de forma que eles façam alguma coisa específica.
  • grep: Permite filtrar a saída de um determinado comando, de forma que ao invés de um monte de linhas, você veja apenas a informação que está procurando. Ele é freqüentemente usado em conjunto com o pipe, sobretudo em scripts.

Um exemplo simples: sua placa de rede não está funcionando e você quer saber se o módulo de kernel “sis900”, que dá suporte a ela, está carregado. Você pode ver os módulos que estão carregados usando o comando “lsmod”, mas a lista é um pouco longa. Você poderia completar o lsmod com “| grep sis900”, que vai filtrar usando o grep, mostrando na tela apenas as linhas contendo “sis900”. O comando ficaria, então, “lsmod | grep sis900”. Se não aparecer nada na tela, você sabe de antemão que o módulo não está ativo, Neste caso, você poderia tentar carregá-lo manualmente usando o comando “modprobe sis900”, como root.

  • &: Este é um parâmetro que permite rodar aplicativos mantendo o terminal livre. No Linux, todos os aplicativos, mesmo os gráficos, podem ser chamados a partir de uma janela de terminal. O problema é que, ao chamar algum aplicativo, o terminal ficará bloqueado até que o aplicativo seja finalizado, obrigando-lhe a abrir um para cada programa.

Acrescentar o & no final do comando, como em “konqueror /etc &“, resolve este problema, mantendo o terminal livre. Se você esquecer de acrescentar ao “&” ao abrir um programa, ainda pode “destravar” o terminal pressionando “Ctrl+Z” (que paralisa o programa e te devolve o controle do terminal) e depois “bg”, que reinicia o programa em background.

  • reboot (como root): Reinicia o micro. Você pode usar também o halt (também como root) para desligar.
  • startx: Serve para abrir a interface gráfica a partir do prompt.
  • Histórico: O terminal mantém um histórico dos últimos 500 comandos digitados. Para repetir um comando recente, simplesmente pressione as setas para cima ou para baixo até encontrá-lo. Para fazer uma busca, use o comando “history | grep comando” , como em “history | grep cp” para mostrar todas as entradas onde foi usado o comando “cp”.
  • Ponto e vírgula: Você também pode executar uma fila de comandos de uma vez. Basta separá-los por ponto e vírgula, como em “ls; pwd” ou “cd /mnt/arquivos; ls

Lembre-se de que no Linux o terminal distingue entre letras maiúsculas e minúsculas. “ls” é diferente de “LS”. Quando criar novos arquivos e pastas, prefira usar nomes em minúsculas, assim você evita confusão.

Outra peculiaridade é o uso do botão central do mouse. Ele não tem muita serventia no Windows, mas no Linux ele permite copiar e colar entre aplicativos ou até mesmo entre aplicativos gráficos e terminais abertos dentro da interface gráfica. Isso substitui o Ctrl+C, Ctrl+V, com a vantagem do comando ser dado com um único clique do mouse. Basta selecionar o trecho de texto, a imagem ou o que quiser copiar em uma janela e clicar com o botão central na janela onde quiser colar a seleção. Se você não tiver um mouse de três botões, pressione simultaneamente os dois botões.

Entretanto, este modo “padrão” tem algumas deficiências. Ele não funciona muito bem para copiar grandes quantidades de texto, e o texto a ser copiado precisa ficar selecionado durante a operação. Basicamente, você consegue copiar o que puder ser visualizado na tela. Não funciona para copiar 120 páginas de texto do Abiword para o OpenOffice, por exemplo.

Pensando nisso, os desenvolvedores do KDE e do Gnome se preocuparam em incluir sistemas de copiar e colar com um funcionamento semelhante ao do Windows. Você pode selecionar várias páginas de texto do Kword e colar no Kmail, por exemplo, usando o bom e velho Ctrl+C, Ctrl+V. O KDE inclui até um Applet, o Klipper (Iniciar > Escritório e Utilitários > Outros > Klipper), que multiplica a área de transferência. Você tem vários slots que armazenam todas as últimas operações e pode colar qualquer uma das anteriores selecionando a desejada através do ícone ao lado do relógio, de forma bem prática.

Entendendo os diretórios

O primeiro choque para quem está chegando agora é a estrutura de diretórios do Linux, que não lembra em nada o que temos no Windows. No Windows temos os arquivos do sistema concentrados nas pastas Windows e Arquivos de programas, e você pode criar e organizar suas pastas da forma que quiser. No Linux é basicamente o contrário. O diretório raiz está tomado pelas pastas do sistema e espera-se que você armazene seus arquivos pessoais dentro da sua pasta no diretório /home.

A primeira coisa com que você precisa se habituar é que no Linux os discos e partições não aparecem necessariamente como unidades diferentes, como o C:, D:, E: do Windows. Tudo faz parte de um único diretório, chamado diretório raiz ou simplesmente “/“.

Dentro deste diretório temos não apenas todos arquivos e as partições de disco, mas também o CD-ROM, drive de disquete e outros dispositivos, formando a estrutura que você vê no gerenciador de arquivos.
pec04
O diretório “/bin” armazena os executáveis de alguns comandos básicos do sistema, como o su, tar, cat, rm, pwd, etc. Geralmente isto soma de 5 a 7 MB, pouca coisa.

O grosso dos programas ficam instalados dentro do diretório /usr (de “Unix System Resources”, ou recursos de sistema Unix). Este é de longe o diretório com mais arquivos em qualquer distribuição Linux, pois é aqui que ficam os executáveis e bibliotecas de todos os principais programas. A pasta “/usr/bin” (bin de binário), por exemplo, armazena cerca de 2.000 programas e atalhos para programas em uma instalação típica. Se você tiver que chutar em que pasta está o executável de um programa qualquer, o melhor chute seria justamente a pasta /usr/bin :).

Outro diretório “populado” é o “/usr/lib“, onde ficam armazenadas bibliotecas usadas pelos programas. A função destas bibliotecas lembra um pouco a dos arquivos .dll no Windows. As bibliotecas com extensão “.a” são bibliotecas estáticas, que fazem parte de um programa específico, enquanto as terminadas em “.so.versão” (xxx.so.1, yyy.so.3, etc.) são bibliotecas compartilhadas, usadas por vários programas.

Subindo de novo, a pasta “/boot” armazena (como era de se esperar) o Kernel e alguns arquivos usados pelo Lilo (o gerenciador de boot do sistema), que são carregados na fase inicial do boot. Estes arquivos são pequenos, geralmente ocupam menos de 5 MB.

Logo abaixo temos o diretório “/dev“, que é de longe o exemplo mais exótico de estrutura de diretório no Linux. Todos os arquivos contidos aqui, como, por exemplo, “/dev/hda”, “/dev/dsp”, “/dev/modem”, etc., não são arquivos armazenados no HD, mas sim ponteiros para dispositivos de hardware. Por exemplo, o “arquivo” “/dev/mouse” contém as informações enviadas pelo mouse, enquanto o “/dev/dsp” permite acessar a placa de som. Esta organização visa facilitar a vida dos programadores, que podem acessar o hardware do micro simplesmente fazendo seus programas lerem e gravarem em arquivos, deixando que o Kernel se encarregue da parte complicada.

O diretório “/etc” concentra os arquivos de configuração do sistema, substituindo de certa forma o registro do Windows. A vantagem é que enquanto o registro é uma espécie de caixa preta, os scripts do diretório “/etc” são desenvolvidos justamente para facilitar a edição manual. É verdade que na maioria dos casos isto não é necessário, graças aos vários utilitários de configuração disponíveis, mas a possibilidade continua aí.

Os arquivos recebem o nome dos programas seguidos geralmente da extensão .conf. Por exemplo, o arquivo de configuração do servidor DHCP (que pode ser configurado para atribuir endereços IP aos outros micros da rede) é o “/etc/dhcpd.conf”, enquanto o do servidor FTP é o “/etc/proftpd.conf”. Claro, ao contrário do registro do Windows, os arquivos do “/etc” não se corrompem sozinhos e é fácil fazer cópias de segurança caso necessário.

O diretório “/mnt” (de “mount”) recebe este nome justamente por servir de ponto de montagem para o CD-ROM (/mnt/cdrom), drive de disquetes (/mnt/floppy), drives Zip e outros dispositivos de armazenamento. O uso do diretório /mnt é apenas uma convenção. Você pode alterar o ponto de montagem do CD-ROM para /CD ou qualquer outro lugar se quiser. Isso é configurável através do arquivo “/etc/fstab”, onde vai a lista de todos os dispositivos usados pelo sistema e as pastas em que cada um é montado.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X