3.3. Comandos importantes do Linux

Esta seção oferece uma visão geral dos comandos mais importantes do sistema SUSE LINUX. Existem muitos comandos além dos relacionados neste capítulo. Junto com os comandos individuais, são relacionados parâmetros e, quando apropriado, é apresentado o exemplo de um típico aplicativo. Para saber mais sobre os vários comandos, use as páginas de manual, acessadas com man seguidas pelo nome do comando, por exemplo, man ls.

Nas páginas de manual, desloque-se para cima e para baixo com PgUp e PgDn. Desloque-se entre o início e o fim do documento com Home e End. Conclua esta exibição pressionando Q. Aprenda mais sobre o próprio comando man com man man.

Na visão geral a seguir, os elementos do comando individual são gravados em estilos de fonte diferentes. O comando e suas opções obrigatórias são sempre impressos como opção de comando. Especificações ou parâmetros que não são obrigatórios estão entre [colchetes].

Ajuste as configurações de acordo com as suas necessidades. Não faz sentido escrever ls file se não há um arquivo chamado file. Em geral, você pode combinar vários parâmetros; por exemplo, ao gravar ls -la em vez de ls -l -a.

3.3.1. Comandos de arquivo

A seção a seguir lista os comandos mais importantes para o gerenciamento de arquivos. Ela abrange desde a administração geral dos arquivos até a manipulação das ACLs (Access Control Lists - Listas de Controle de Acesso) do sistema de arquivos.

3.3.1.1. Administração de arquivos

ls [opções] [arquivos]

Se você executar o comando ls sem nenhum parâmetro adicional, o programa relacionará resumidamente o conteúdo do diretório atual.

-l

Lista detalhada

-a

Exibe arquivos ocultos

cp [opções] destino da fonte

Copia o arquivo fonte para o destino.

-i

Aguarda a confirmação, se necessário, antes que um arquivo destino seja sobrescrito

-r

Copia recursivamente (inclui subdiretórios)

mv [opções] destino da fonte

Copia o arquivo fonte para o destino e depois apaga o fonte original.

-b

Cria uma cópia de backup do arquivo fonte antes do deslocamento

-i

Aguarda a confirmação, se necessário, antes que um arquivo de destino seja sobrescrito

rm [opções] arquivos

Remove os arquivos especificados do sistema de arquivos. Os diretórios não são removidos por rm, a menos que a opção -r seja usada.

-r

Apaga subdiretórios existentes

-i

Aguarda confirmação antes de apagar cada arquivo.

ln [opções] fonte destino

Cria um link interno de fonte para destino. Normalmente, um link como esse aponta diretamente para fonte no mesmo sistema de arquivos. Entretanto, se ln for executado com a opção -s, ele criará um link simbólico que apontará apenas para o diretório no qual o arquivo fonte está localizado, permitindo vincular sistemas de arquivos.

-s

Cria um link simbólico

cd [opções] [diretório]

Muda o diretório atual. O comando cd sem parâmetros muda para o diretório pessoal do usuário.

mkdir [opções] diretório

Cria um novo diretório.

rmdir [opções] diretório

Apaga o diretório especificado, se ele já estiver vazio.

chown [opções] nome de usuário[:[grupo]] arquivos

Transfere a propriedade de um arquivo para o usuário com o nome de usuário especificado.

-R

Muda arquivos e diretórios em todos os subdiretórios

chgrp [opções] nome de grupo arquivos

Transfere a propriedade do grupo de determinado arquivo para o grupo com o nome especificado. O proprietário do arquivo só pode mudar a propriedade do grupo se for membro tanto do grupo atual quanto do novo grupo.

chmod [opções] modo arquivos

Muda as permissões de acesso.

O parâmetro modo tem três partes: grupo, acesso e tipo de acesso. O grupo aceita os seguintes caracteres:

u

user

g

group

o

others

No caso de acesso, conceda acesso com o comando + e negue-o com -.

O tipo de acesso é controlado pelas seguintes opções:

r

ler

w

gravar

x

execute – executando arquivos ou mudando para o diretório

s

Setuid bit – o aplicativo ou programa é iniciado como se ele tivesse sido pelo proprietário do arquivo

Uma opção é usar um código numérico. Os quatro dígitos do código são compostos pela soma dos valores 4, 2 e 1 – o resultado decimal de uma máscara binária. O primeiro dígito define o set user ID (SUID) (4), o set group ID (2) e os bits sticky (1). O segundo dígito define as permissões do proprietário do arquivo. O terceiro dígito define as permissões dos membros do grupo e o último define as permissões para todos os usuários. A permissão de leitura é definida com 4, a permissão de gravação com 2 e a permissão para execução de um arquivo com 1. O proprietário do arquivo recebe um 6 ou 7 para arquivos executáveis.

gzip [parâmetros] arquivos

Este programa compacta o conteúdo dos arquivos usando algoritmos matemáticos complexos. Os arquivos compactados dessa forma recebem a extensão .gz e precisam ser descompactados antes de serem usados. Para compactar vários arquivos ou até mesmo diretórios inteiros, use o comando tar.

-d

Descompacta os arquivos gzip compactados para que eles retornem ao seu tamanho original e possam ser processados normalmente (como o comando gunzip)

tar opções arquivar arquivos

tar coloca um ou mais arquivos em um arquivo. A compactação é opcional. O comando tar é bastante complexo, com diversas opções disponíveis. As opções usadas mais freqüentemente são:

-f

Grava a saída em um arquivo, e não na tela, como geralmente é o caso

-c

Cria um novo arquivo tar

-r

Adiciona arquivos a um arquivo existente

-t

Apresenta a saída do conteúdo de um arquivo

-u

Adiciona arquivos, mas somente se eles forem mais novos que os arquivos já existentes no arquivo

-x

Descompacta arquivos de um arquivo (extração)

-z

Compacta o arquivo resultante com gzip

-j

Compacta o arquivo resultante com bzip2

-v

Relaciona os arquivos processados

Os arquivos criados pelo comando tar terminam com .tar. Se o arquivo tar também tiver sido compactado com o comando gzip, a extensão será .tgz ou .tar.gz. Se ele tiver sido compactado com o comando bzip2, a extensão será .tar.bz2. Exemplos de aplicativos podem ser encontrados na Seção 3.1.5, “Pacotes e compactação de dados”.

locate padrões

Este comando só estará disponível se você tiver instalado o pacote findutils-locate. O comando locate pode localizar o diretório em que um arquivo específico se encontra. Se desejar, use curingas para especificar nomes de arquivo. O programa é muito rápido, pois usa um banco de dados especificamente criado para esse propósito (em vez de pesquisar todo o sistema de arquivos). Entretanto, esse fato também resulta em uma grande desvantagem: o comando locate é incapaz de localizar os arquivos criados após a última atualização do banco de dados. O banco de dados pode ser gerado por root com updatedb.

updatedb [opções]

Este comando atualiza o banco de dados usado por locate. Para incluir arquivos em todos os diretórios existentes, execute o programa como root. Também é viável colocá-lo em segundo plano acrescentando um &; assim você poderá continuar a trabalhar na mesma linha de comando (updatedb &). Esse comando geralmente é executado como uma tarefa cron diária (consulte cron.daily).

find [opções]

Com find, procure um arquivo em determinado diretório. O primeiro argumento especifica o diretório no qual deve-se iniciar a pesquisa. A opção -name deve ser seguida por uma string de pesquisa que também pode incluir curingas. Diferentemente do comando locate, que usa um banco de dados, o find explora o diretório.

3.3.1.2. Comandos para acessar o conteúdo do arquivo

file [opções] [arquivos]

Com file, verifique o conteúdo dos arquivos especificados.

-z

Tenta ver o conteúdo dos arquivos compactados.

cat [opções] arquivos

O comando cat exibe o conteúdo de um arquivo imprimindo o conteúdo inteiro na tela, sem interrupção.

-n

Numera a saída na margem esquerda

less [opções] arquivos

Este comando pode ser usado para procurar o conteúdo do arquivo especificado. Role meia página para cima ou para baixo PgUp e PgDn ou uma página inteira para baixo com a barra de espaço. Vá para o início ou fim do arquivo usando Home e End. Pressione Q para sair do programa.

grep [opções] string de pesquisa arquivos

O comando grep procura uma string de pesquisa específica nos arquivos especificados. Se a string de pesquisa for encontrada, o comando exibirá a linha na qual searchstring foi encontrada com o nome do arquivo.

-i

Ignorar maiúsculas/minúsculas

-H

Exibe apenas os nomes dos respectivos arquivos, mas não as linhas de texto

-n

Adicionalmente, exibe os números das linhas nas quais encontrou uma ocorrência

-l

Relaciona apenas os arquivos nos quais searchstring não ocorre

diff [opções] arquivo1 arquivo2

O comando diff compara o conteúdo de dois arquivos. A saída produzida pelo programa relaciona todas as linhas que não são correspondentes. Esse comando é freqüentemente usado por programadores que só precisam enviar suas alterações de programa, e não o código-fonte inteiro.

-q

Informa apenas se os dois arquivos são diferentes

-u

Produz um diff “unificado”, que torna a saída mais legível

3.3.1.3. Sistemas de arquivos

mount [opções] [dispositivo] ponto de montagem

Este comando pode ser usado para montar qualquer mídia de dados, como discos rígidos, unidades de CD-ROM e outras unidades, em um diretório do sistema de arquivos do Linux.

-r

montagem apenas leitura

-t filesystem

Especifica o sistema de arquivos; normalmente ext2 para discos rígidos do Linux, msdos para mídia do MS-DOS, vfat para o sistema de arquivos do Windows e iso9660 para CDs.

Para discos rígidos não definidos no arquivo /etc/fstab, também deve ser especificado o tipo de dispositivo. Nesse caso, apenas root pode montá-lo. Se o sistema de arquivos também tiver de ser montado por outros usuários, digite a opção usuário na linha adequada no arquivo /etc/fstab (separado por vírgulas) e grave essa mudança. Mais informações estão disponíveis na página de manual mount(1).

umount [opções] ponto de montagem

Este comando desmonta uma unidade montada no sistema de arquivos. Para evitar a perda de dados, execute o comando antes de retirar uma mídia de dados removível da sua unidade. Normalmente, apenas root tem permissão para executar os comandos mount e umount. Para que outros usuários possam executar esses comandos, edite o arquivo /etc/fstab para especificar a opção usuário para a respectiva unidade.

3.3.2. Comandos do sistema

As seções a seguir relacionam alguns dos comandos mais importantes necessários para a recuperação de informações do sistema e o controle de rede e processos.

3.3.2.1. Informações do sistema

df [opções] [diretório]

O comando df (disk free), quando usado sem opções, exibe informações sobre o espaço total em disco, o espaço em disco atualmente em uso e o espaço livre em todos as unidades montadas. Se um diretório for especificado, as informações se limitarão à unidade na qual o diretório está localizado.

-h

Mostra o número de blocos ocupados em gigabytes, megabytes ou quilobytes – em formato legível

-T

Tipo do sistema de arquivos (ext2, nfs, etc.)

du [opções] [caminho]

Este comando, quando executado sem nenhum parâmetro, mostra o espaço total em disco ocupado pelos arquivos e subdiretórios no diretório.

-a

Exibe o tamanho de cada arquivo individual

-h

Saída em forma legível

-s

Exibe apenas o tamanho total calculado

free [opções]

O comando free exibe informações sobre o uso de RAM e de espaço de troca, mostrando a quantidade total e usada nas duas categorias. Consulte a Seção 10.1.6, “O comando free” (↑Referência) para obter mais informações.

-b

Saída em bytes

-k

Saída em quilobytes

-m

Saída em megabytes

date [opções]

Este simples programa exibe a hora atual do sistema. Se ele for executado como root, também poderá ser usado para mudar a hora do sistema. Detalhes sobre o programa estão disponíveis na página de manual date(1).

3.3.2.2. Processos

top [opções]

top oferece uma visão geral rápida dos processos em execução. Pressione H para acessar uma página que explica resumidamente as opções principais para personalizar o programa.

ps [opções] [ID do processo]

Se for executado sem opções, este comando exibirá uma tabela de todos os seus próprios programas ou processos – aqueles que você tiver iniciado. As opções para o comando não são precedidas de hífen.

aux

Exibe uma lista detalhada de todos os processos, independentemente do proprietário

kill [opções] ID do processo

Infelizmente, às vezes, um programa não pode ser concluído de forma normal. Na maioria dos casos, você ainda poderá interromper um programa fora de controle ao executar o comando kill, especificando o ID do respectivo processo (consulte top e ps). O kill envia um sinal TERM que instrui o programa a se autodesligar. Se isso não ajudar, o seguinte parâmetro poderá ser usado:

-9

Envia um sinal KILL em vez de um sinal TERM, na maioria dos casos encerrando o processo especificado

killall [opções] nome do processo

Este comando assemelha-se ao kill, mas usa o nome do processo (em vez do ID do processo) como um argumento, eliminando todos os processos com esse nome.

3.3.2.3. Rede

ping [opções] nome do host ou endereço IP

O comando ping é a ferramenta padrão usada para testar a funcionalidade básica das redes TCP/IP. Ele envia um pequeno pacote de dados para o host de destino solicitando uma resposta imediata. Se isso funcionar, o ping exibirá uma mensagem que indica que o link da rede está basicamente funcionando.

-c número

Determina o número total de pacotes a serem enviados e é concluído logo depois que os pacotes são despachados (por padrão, não há limitação definida).

-f

flood ping: envia o máximo possível de pacotes de dados; um método comum, reservado para root para o teste de redes

-i value

Especifica o intervalo entre dois pacotes de dados em segundos (padrão: um segundo)

nslookup

O sistema de nomes de domínio soluciona nomes de domínio para endereços IP. Com essa ferramenta, envie consultas para os servidores de nomes (servidores DNS).

telnet [opções] nome do host ou endereço IP [porta]

Na realidade, Telnet é um protocolo de Internet que permite trabalhar em hosts remotos de uma rede. Também é o nome de um programa do Linux que usa esse protocolo para habilitar operações em computadores remotos.

[Warning]Atenção

Não use telnet em uma rede que esteja suscetível a “invasões” de terceiros. Especialmente na Internet, use os métodos de transferência criptografada, como ssh, para evitar que uma senha seja usada indevidamente (consulte a página de manual sobre ssh).

3.3.2.4. Diversos

passwd [opções] [nome de usuário]

Os usuários podem mudar suas próprias senhas, quando quiserem, com este comando. O administrador root pode usar o comando para mudar a senha de qualquer usuário no sistema.

su [opções] [nome de usuário]

O comando su possibilita o login com outro nome de usuário em uma sessão em execução. Especifique um nome de usuário e a senha correspondente. A senha não é necessária no root, pois o root é autorizado a assumir a identidade de qualquer usuário. Ao usar o comando sem especificar um nome de usuário, você deve informar a senha root e mudar o superusuário (root).

-

Use su - para iniciar um shell de login para o outro usuário.

halt [opções]

Para evitar a perda de dados, você sempre deve usar esse programa para desligar o sistema.

reboot [opções]

Igual a halt, exceto pelo fato de que o sistema efetua uma reinicialização imediata.

clear

Este comando limpa a área visível do console. Não tem opções.

3.3.3. Mais informações

Existem muitos comandos além dos relacionados neste capítulo. Para obter informações sobre outros comandos ou obter informações mais detalhadas, é recomendável ler a publicação de O'Reilly, Linux in a Nutshell.