Comandos Básicos no Linux
O sistema preserva o uso através de comandos de terminal, que podem ser usados para fazer qualquer tarefa. Neste artigo, serão apresentados os principais comandos para realizar as principais funções do dia a dia no terminal do Linux.
xtem -bg white -fg black | abre o terminal com fundo branco e letras pretas |
who | mostra os usuários logados no sistema |
w | também mostra os usuários logados no sistema |
quota -v | mostra informações sobre cotas na área do usuário |
du -hs * | mostra o espaço usado por cada arquivo/diretório de usuário |
ls | lista conteúdo do diretório local |
ls -l | mostra conteúdo detalhado |
ls -a | mostra arquivos escondidos |
mkdir | cria diretório |
cp | copia arquivo |
cp -r | copia recursivamente (para copiar diretórios) |
mv | mover ou renomear arquivo/diretório |
rm | apaga arquivo |
rm -r | apaga recursivamente |
rm -rf | apaga recursivamente sem confirmação (use com cuidado!) |
cd | muda de diretório |
pwd | mostra o diretório atual |
cat, more ou less | mostram conteúdos de arquivo |
tail | mostra final de arquivo |
head | mostra começo de arquivo |
zip e unzip | comprime/descomprime arquivos .zip |
gzip e gunzip | comprime/descomprime arquivos .gz |
gv | mostra arquivos postscript (.ps) |
xpdf | mostra arquivos em ¨portable document format¨ (.pdf) |
ssh | acessa outra máquina Linux via protocolo seguro SSH |
scp | copia arquivos entre máquinas Linux via protocolo seguro |
grep | procura por palavra ou expressão em um ou mais arquivos |
rgrep | procura por palavra ou expressão recursivamente |
chmod | muda permissão de arquivos e diretórios |
locate | procura por um nome de arquivo/diretório |
passwd | troca a senha |
O terminal
A interface para gerência do computador por linhas de comandos é o terminal. Os comandos inseridos são executados pelo interpretador de comandos (Sheel, em inglês). Os interpretadores mais famosos são o bash e o tcsh. Eles variam em apresentação e em algumas funções específicas, mas todos os comandos desse artigo funcionam de forma semelhante em ambos os interpretadores.
O bash é o interpretador das distribuições baseadas em Debian, como o Ubuntu e o Linux Mint. Abaixo, é possível ver a visualização padrão do bash.
A linha “usuario@maquina: ~$” aparece sempre que um comando pode ser digitado e possui algumas informações sobre a sessão. Antes do caractere ‘@’, exibe-se o nome do usuário que executará os comandos e, depois do ‘@’, o nome da máquina. Após os dois pontos, exibe-se o caminho para a pasta atual. O último caractere informa o nível de privilégio do usuário no sistema. Se este for ‘$’, como no exemplo, o usuário possui acesso não privilegiado. Se este for ‘#’, por exemplo, o usuário possui prerrogativas de administrador.
Algumas operações podem ser realizadas com os dados gerados pelos comandos executados no terminal. Caso o usuário deseje armazenar a saída de um comando em um arquivo para leitura posterior ao invés de visualizar na tela, basta adicionar ‘> nome_do_arquivo’ ao fim do comando. Outra importante ferramenta presente no terminal é a possibilidade de concatenar comandos com o caractere ‘|’. Dessa forma, a saída de um comando é direcionada para a entrada de outro, como na linha “cat arquivo | grep palavra”, que veremos em detalhes mais a frente, exibe apenas as linhas de ‘arquivo’ que possuam ‘palavra’.
Manual dos comandos
man – Exibe o manual de um dado comando, incluindo seus parâmetros e opções. Em geral, apresenta exemplos de uso com explicações. Este comando pode ser visto como um dos mais importantes do Linux, pois ensina aos usuários como eles devem fazer todas as tarefas no sistema. Use os manuais para aprender funções mais avançadas dos comandos ensinados nesse artigo. Para sair do manual, aperte a tecla ‘q’.
Trabalhando com arquivos e diretórios
pwd – Exibe o diretório atual.
cd – Modifica o diretório atual:
* “cd /” – segue para o diretório raiz;
* “cd /pasta/desejada” – segue para o diretório /pasta/desejada;
* “cd ~” ou “cd”- segue para o diretório do usuário;
* “cd ..” – segue para o diretório pai do diretório atual;
* “cd –“ – volta para o diretório anterior.
ls – Lista os arquivos do diretório:
* “ls /outra/pasta” – exibe os arquivos de ‘/outra/pasta’;
* “ls –l” – exibe os arquivos do diretório atual em formato de lista com detalhes como tamanho, data de modificação e dono de cada arquivo;
* “ls –a” – exibe todos os arquivos da pasta, inclusive os ocultos.
mkdir – Cria uma nova pasta no diretório corrente:
* “mkdir nova_pasta” – cria a nova pasta no diretório atual;
* “mkdir /outra/pasta/nova_pasta” – cria a nova pasta no diretório ‘/outra/pasta’;
* “mkdir –p /outra/pasta/nova_pasta” – cria todas as pastas-pai necessárias para a criação da pasta desejada e não apresenta erro caso a nova pasta já exista.
rmdir – Remove um diretório vazio.
cp – Copia arquivos e diretórios:
* “cp arquivo_origem arquivo_destino” – copia arquivo origem para destino;
* “cp arquivo_origem1 arquivo_origem2 pasta_destino/” – copia vários arquivos para uma pasta única;
* “cp –r pasta_origem pasta_destino/” – copia recursivamente ‘pasta_origem’ para ‘pasta_destino’.
mv – Move arquivos e diretórios. Também é usado para renomear arquivos. Seu uso é semelhante ao comando de cópia (‘cp’).
rm – Remove arquivos e diretórios:
* “rm –rf pasta_temporaria” – remove recursivamente (-r) a ‘pasta_temporária’ sem que requisite confirmação para cada arquivo (-f).
du – Exibe o tamanho dos arquivos e diretórios:
* “du –csh *” – retorna todos os arquivos e pastas do diretório atual (*), com seus tamanhos totais (-s) apresentados em megabytes e gigabytes (-h) e com um contador de total no final (-c).
cat – Exibe o conteúdo de um arquivo:
* “cat arquivo1 arquivo2 > arquivo_final” – permite concatenar ‘arquivo1’ e ‘arquivo2’ e salvar o resultado em ‘arquivo_final’.
head – Exibe as primeiras linhas de um arquivo:
* “head –n 10 arquivo1” – exibe as 10 primeiras linhas de ‘arquivo1’.
tail – Exibe as últimas linhas de um arquivo. Comumente usado para leitura de registros do sistema:
* “tail –n 10 arquivo1” – exibe as 10 últimas linhas de ‘arquivo1’.
diff – Apresenta as diferenças entre dois arquivos:
* “diff arquivo1 arquivo2” – lista as diferenças entre o ‘arquivo1’ e o ‘arquivo2’.
find – Busca arquivos e diretórios a partir de um diretório dado. Se nenhum diretório for passado, é utilizado o diretório atual:
* “find /pasta/desejada nome_do_arquivo” – busca por ‘nome_do_arquivo’ no diretório ‘/pasta/desejada’;
* “find /pasta/desejada –iname ‘*.mp3’” – busca por todos os arquivos com a extensão mp3 no diretório ‘/pasta/desejada’.
locate – Busca por arquivos cujo nome siga um padrão. A busca é bem rápida, pois é realizada em uma base de dados pré-criada. A desvantagem desse procedimento é que a base pode ficar desatualizada e não encontrar arquivos novos no sistema. Para atualizar a base de dados, execute o comando updatedb.
* “locate arquivo1” – apresenta todos os arquivos cujo caminho ou nome possua ‘arquivo1’.
Informações do computador
df – Mostra as partições dos discos e seus tamanhos: usado e disponível:
* “df –h” – apresenta as informações em Megabytes (M) e Gigabytes (G) para melhor entendimento.
free – Mostra a quantidade de memória livre e usada no sistema:
* “free –m” – apresenta os valores em Megabytes;
* “free –g” – apresenta os valores em Gigabytes.
uname – Apresenta informações do sistema operacional:
* “uname –a” – exibe o nome e a versão do kernel, o nome da máquina e arquitetura do sistema operacional (32 bits exibe x86 e 64 bits exibe x86_64).
uptime – Exibe o tempo que o computador está ligado, quantos usuários estão conectados no computador e a carga média do sistema. A carga média do sistema é a média de processos que estão usando ou esperando para usar o processador ou ainda aqueles que estão esperando para receber algum dado do disco.
Assim, quanto menor é a carga média do sistema, mais ocioso o computador está. O valor máximo para a carga é o número de núcleos de processamento disponível na máquina. A carga média apresentada é dada por três valores decimais que representam a média para os últimos 1, 5 e 15 minutos.
Gerenciando usuários
finger – Obtém informações sobre todos usuários do sistema:
* “finger usuário” – informações apenas dos usuários que possuam ‘usuário’ no nome completo ou no nome de usuário.
id – Mostra o identificador do usuário atual e os grupos que ele pertence:
* “id usuário” – exibe as informações para o usuário inserido.
passwd – Altera a senha do usuário corrente.
su – Permite alternar entre usuários do sistema. Se o usuário atual não tiver privilégios de administrador, é requisitado a senha do usuário:
* “su” – alterna para o usuário administrador (root);
* “su usuário –c ‘comando’” – executa ‘comando’ como se fosse ‘usuário’.
sudo – Adicionado antes de um comando qualquer, permite executar esse comando com privilégios de administrador. Requer que o usuário esteja cadastrado no arquivo ‘/etc/sudoers’.
useradd – Adiciona um usuário do sistema:
* “useradd –d /pasta/pessoal/do/usuario usuário” – cria ‘usuário’ no sistema com o diretório padrão configurado para ‘/pasta/pessoal/do/usuario’.
userdel – Remove um usuário do sistema:
* “userdel –r usuário” – remove ‘usuário’ do sistema excluindo todo o seu diretório pessoal (-r).
w/who – Mostra os usuários conectados no sistema. O comando w apresenta mais informações como qual foi o último comando do usuário.
last – Exibe uma lista com os últimos usuários que entraram (login) e que saíram (logout) do computador, bem como a data e a hora em que realizaram as operações.
Gerenciando as permissões dos usuários
O Linux possui um sistema de permissões por arquivo. Esse sistema é baseado em três entidades básicas: o dono do arquivo, o grupo do dono do arquivo e todos os usuários do sistema. Deve-se definir se cada entidade pode ler, escrever ou executar cada arquivo e diretório (por executar um diretório, entende-se acessá-lo).
As permissões para cada entidade são definidas por três bits ou por um número de 0 a 7, segundo a tabela abaixo. Algumas configurações de permissão são pouco usadas. As principais permissões encontradas em sistemas Linux são a 0, 5 e 7, com uso de 4 e 6 para alguns arquivos de sistema e de configuração.
Leitura | Escrita | Execução | Número | Explicação |
---|---|---|---|---|
0 | 0 | 0 | 0 | Sem permissão |
0 | 0 | 1 | 1 | Permite apenas execução |
0 | 1 | 0 | 2 | Permite apenas escrita |
0 | 1 | 1 | 3 | Permite escrita e execução |
1 | 0 | 0 | 4 | Permite apenas leitura |
1 | 0 | 1 | 5 | Permite leitura e execução |
1 | 1 | 0 | 6 | Permite leitura e escrita |
1 | 1 | 1 | 7 | Permite toras as operaçõe |
chmod – Modifica as permissões de arquivos e diretórios:
* “chmod –R 755 /caminho/pasta/” – aplica as modificações recursivamente na árvore de diretórios na qual ‘/caminho/pasta’ é raiz. Nesse exemplo, todos os arquivo são configurados para que seu dono tenha total poder e os demais usuários possam apenas ler e executar.
chown – Modifica o dono do arquivo ou diretório:
* “chown novo_dono:novo_grupo arquivo” – troca a propriedade de ‘arquivo’ para o usuário ‘novo_dono’ e para o grupo ‘novo_grupo’;
* “chown –R novo_dono. pasta/” – atribui, recursivamente, a propriedade de todos os arquivos de ‘pasta’ para o usuário ‘novo_dono’ e para o seu grupo padrão no sistema.
Controle de aplicativos
ps – Apresenta uma tabela estática com os processos em execução no sistema:
* “ ps aux” – exibe todos os processos de todos os usuários com as colunas identificador do processo, nome de usuário a qual o processo pertence e comando que originou o processo.
kill – Usado para terminar um processo no sistema. Requer o identificador do processo, que pode ser obtido com o comando ps:
* “kill 3139” – termina o processo com identificador 3139;
* “kill -9 3139” – termina abruptamente o processo com identificador 3139.
top – Exibe um aplicativo interativo em tempo real com informações sobre o computador, incluindo o uso de processamento e memória total e por processo. As informações exibidas são atualizadas automaticamente a cada 2 segundos. Para fechar o aplicativo, basta pressionar a tecla ‘q’.
Impressão de arquivos
lpr – Envia um arquivo para ser impresso:
* “lpr -# 2 arquivo1.pdf” – imprime 2 cópias (-#) do ‘arquivo1.pdf’.
lpq – Exibe a lista de arquivos na fila de impressão:
* “lpq –a” – exibe a lista de arquivos na fila de impressão de todas as impressoras.
lprm – Cancela a impressão do arquivo atual na fila de impressão:
* “lprm ID” – remove da fila de impressão o arquivo com ‘ID’.
Utilitários
cal – Exibe um calendário do mês atual.
date – Exibe a data, hora e fuso horário atual do sistema.
clear – Limpa todo o conteúdo exibido no terminal, colocando a linha para o comando atual no topo da janela.
grep – Realiza um filtro por determinado texto. Comumente usado para filtrar a saída de algum outro comando:
* “cat arquivo1 | grep linha_desejada” – exibe apenas as linhas de ‘arquivo1’ que possuem o texto ‘linha_desejada’.
history – Exibe os últimos comandos executados pelo usuário no computador.
lynx – Abre um navegador web em modo texto. Útil para acessar a web através de computadores que não possuem interface gráfica.
wc – Conta linhas, palavras e caracteres de um arquivo:
* “wc –l arquivo1” – exibe quantas linhas tem o ‘arquivo1’;
* “wc –m arquiv*” – exibe quantos caracteres tem cada arquivo com nome iniciado por ‘arquiv’;
* “wc –w *” – conta quantas palavras cada arquivo da pasta possui.
halt – Desliga o computador imediatamente. Requer privilégios de administrador.
reboot – Reinicia o computador imediatamente. Requer privilégios de administrador.
shutdown – Desliga o computador:
* “shutdown –h now” – desliga (-h) o computador imediatamente;
* “shutdown –h +30” – desliga (-h) o computador depois de 30 minutos;
* “shutdown –r 21:00 ‘O sistema será reiniciado às 21hrs!’” – reinicia (-r) o sistema às 21:00 enviando a mensagem entre aspas simples (‘) para todos os usuários conectados no sistema.