Neste artigo vou mostrar exemplos de comandos básicos, usados no dia a dia, no Linux — já que nem tudo a gente quer fazer no ambiente gráfico. Se quiser, guarde esta página nos seus favoritos, imprima-a e, se você se sentir à vontade, compartilhe com outros leitores a sua maneira de fazer as coisas nos comentários.
exemplos de uso do comando tar
Como criar um arquivo tar com o conteúdo de um diretório:
tar cvf arquivo.tar diretorio/
Para extrair:
tar xvf arquivo.tar
Como ver o conteúdo do arquivo tar:
tar tvf arquivo.tar
O comando grep
Leia aqui, mais exemplos de uso do comando grep
. Basicamente, posso usar este comando para pesquisar uma string (cadeia de caracteres) dentro de um conjunto de arquivos:
grep -r "minha string" *.txt
O comando dado fará com que a cadeia “minha string” seja pesquisada em todos os arquivos com extensão .txt
, recursivamente.
Eu prefiro usar este comando da seguinte forma… supondo que eu deseje encontrar todas as ocorrências da string “mcrypt”, dentro do arquivo /etc/php5/apache2/php.ini
:
cat /etc/php5/apache2/php.ini | grep -i mcrypt
O parâmetro -i
desliga a sensibilidade à caixa das letras – ou seja, tanto faz se estiver em minúsculas ou não.
O comando find
Ainda dentro do tema “encontrar o que eu quero, no Linux”, o comando find é o que nos permite pesquisar o sistema atrás de um determinado arquivo. Veja como encontrar o arquivo php.ini
, no seu sistema:
find -iname "php.ini"
Neste caso, para fazer uma busca insensível à caixa, usei o parâmetro -iname
. A busca do find
é realizada recursivamente, a partir do diretório atual. Eventualmente, você precisará ter privilégios especiais para acessar alguns conteúdos.
- Conheça melhor o comando find, com vários exemplos práticos
- Saiba como usar o comando mpg123 e como montar uma playlist
Lá embaixo, na seção sobre como ouvir músicas no console, eu ensino a usar o find para montar rapidinho a sua lista de músicas.
O comando SSH
O comando SSH permite acessar remotamente um servidor.
Como ver a versão do SSH, instalada no meu sistema:
ssh -V
Como acessar um servidor remoto woody.com
, com o login wlantz
, via SSH:
ssh -l wlantz woody.com
— Leia mais sobre como se conectar a um servidor de banco de dados via SSH
O comando ls
Um dos comandos mais usados no terminal, lista os arquivos e diretórios. Tem várias formas de exibir esta lista. As minhas preferidas são as seguintes:
ls -l
o comando, acima, exibe a relação de arquivos e diretórios de forma mais detalhada, informando as permissões, exibindo as permissões, tamanhos (em bytes), data e hora de criação…
Gosto de combinar o comando acima com o parâmetro -h
, que “humaniza” o número que indica o tamanho do arquivo. Em outras palavras, o torna mais fácil de ser lido. Veja como:
ls -lh /etc/
Para colorir a lista, use:
ls -lh --color /etc/
O comando pwd
O comando pwd (print working directory), faz o que seu nome diz. Ele mostra o diretório atual, em que você se encontra:
pwd
Muito útil. Já me ajudou a não fazer a coisa errada, no lugar errado — se é que você me entende. 😛
O comando gzip
Cria arquivos comprimidos, com a extensão .gz
. Merece um post inteiro, só pra ele. Vou mostrar, aqui, as formas mais comuns de usá-lo.
Como comprimir um arquivo:
gzip arquivo.txt
Isto vai criar o arquivo.txt.gz
. Para descomprimir, faça assim:
gzip -d arquivo.txt.gz
Como extrair arquivos ZIP no Linux
Os arquivos compactados pelo ZIP, usam um padrão diferente do gzip
. Portanto, o programa adequado para fazer este trabalho é outro. Use o unzip
:
unzip arquivozipado.zip
Para ver o conteúdo do arquivo zipado:
unzip -l arquivozipado.zip
Como desligar o PC com o comando shutdown
Para desligar apenas, faça assim:
shutdown -h now
Este comando só pode ser fornecido desta maneira por quem está conectado como root ou administrador do sistema. Você provavelmente só conseguirá executar este comando, usando o sudo
, como prefixo:
sudo shutdown -h now
Para esperar 10 minutos, antes de desligar:
sudo shutdown -h +10
Para reiniciar agora o computador:
sudo shutdown -r now
Para cancelar o comando shutdown:
sudo shutdown -c
O comando ps
Este comando exibe os processos em execução no seu sistema. Pode ser usado sem parâmetro algum, mas vai produzir uma quantidade muito grande (ou muito pequena) de informações. É costume “filtrar” sua saída com alguns parâmetros e combinando outros comandos, para ver apenas o que interessa.
Eu gosto de usar a “sintaxe BSD” para ver todos os processos em execução no sistema:
ps aux
Muita coisa?! Misture com o comando less
para ir mais devagar:
ps aux | less
use a tecla ‘q’, para sair do less.
Para ver apenas os processos referentes ao navegador Chromium, use assim:
ps aux | grep -i chromium
Isto é muito útil para descobrir o PID de um processo que você deseja interromper à força, com o comando kill
.
Como saber a quantidade de memória livre no Linux
O comando free
resolve este assunto pra você:
Solaris-8:~$ free total usado livre compart. buffers em cache Mem: 2052948 1740056 312892 0 145652 809244 -/+ buffers/cache: 785160 1267788 Swap: 2076668 16184 2060484 Solaris-8:~$
Muito complicado para ler? Eu sei. Use o parâmtro -g
para converter todos estes número em gigabytes:
free -g
ou use assim, para “humanizar” a exibição do resultado e incluir os totais:
free -ht
O comando top
O trabalho deste comando é exibir as aplicações mais ativas no sistema – organizadas pela intensidade de uso da CPU:
top
Dica rápida: use a tecla ‘z’ para alterar as cores de exibição no top.
Como verificar o uso do disco no Linux
O comando df
exibe o uso atual do seu disco. Para exibir o espaço ocupado e livre (available) no seu sistema de arquivos, em kilobytes, use-o assim:
df -k
Eu gosto de usar desta forma:
df -hT
O parâmetro -h
humaniza (human readable) a exibição dos resultados. E o -T
mostra o tipo do sistema de arquivos em uso.
O comando kill – ou como interromper (matar) um processo em execução
Neste exemplo, vou exibir os PIDs do aplicativo Chromium (o navegador). Em seguida, vou interromper sua execução. Isto é muito útil quando um processo trava. Veja como funciona.
Primeiro, uso o comando ps
para determinar o PID do Chromium:
ps -ef | grep -i chromium-browser 1000 5396 1913 5 Dez16 ? 01:18:36 chromium-browser 1000 5400 5396 0 Dez16 ? 00:03:26 chromium-browser 1000 5401 5396 0 Dez16 ? 00:00:00 /usr/lib/chromium-browser/chrome-sandbox /usr/lib/chromium-browser/chromium-browser --type=zygote
Destas 8 colunas exibidas, a segunda é a que interessa no momento. É esta que exibe o PID de cada processo. Vou escolher o primeiro: 5396
.
… e interromper sua execução:
kill 5396
opcionalmente, você pode usar o parâmetro -9
para matar processos “mais difíceis”:
kill -9 5396
O comando cat
O comando cat – que eu suponho ser uma abreviatura da palavra catch, que pode ter o significado de “pegar” – serve para mostrar o conteúdo de uma arquivo na tela – usualmente texto.
cat .bashrc
Como o conteúdo exibido pode acabar por ser muito extenso, prefiro combinar este comando com o grep
. Assim, por exemplo:
Solaris-8:~$ cat .bashrc | grep aliases # enable color support of ls and also add handy aliases # some more ls aliases # ~/.bash_aliases, instead of adding them here directly. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases
O comando é muito útil para analisar logs do sistema. Assim, se quiser verificar a quantidade de memória livre no sistema, através do arquivo /proc/meminfo
, faça assim:
cat /proc/meminfo | grep -i free MemFree: 317056 kB HighFree: 107440 kB LowFree: 209616 kB SwapFree: 2052464 kB HugePages_Free: 0
O comando mount
Este já foi um dos que eu mais usei, nos “primórdios do Linux”. Para montar um drive de CD-ROM, o comando é este:
mount -t iso9660 /dev/cdrom /mnt
Esta linha de comando parte do pressuposto de que a pasta /mnt
já existe no sistema. Se ela não existir, um erro será retornado. Você pode usar o nome de outra pasta existente no seu sistema. Mas certifique-se de que ela esteja vazia – você não perderá o seu conteúdo. Mas ele ficará indisponível enquanto o dispositivo estiver montado usando aquela pasta como referência.
O iso9660
é um dos sistemas de arquivo mais comumente usados em CD-ROMs. Mas você pode, para se sentir mais seguro(a) substituir isto por auto
, assim:
mount -t auto /dev/cdrom /mnt
… isto fará com que o sistema tente detectar automaticamente o sistema de arquivos usado na mídia.
Para montar um antigo drive de disquete, usa-se:
mount -t vfat /dev/floppy /media/floppy
Se usado sozinho, o comando mount
exibe os sistemas de arquivos ativos no sistema:
Solaris-8:~$ mount /dev/sda2 on / type ext4 (rw,errors=remount-ro) /dev/sda3 on /home type ext3 (rw) gvfsd-fuse on /run/user/justincase/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=justincase)
O comando chmod
Este comando é usado para alterar as permissões de um ou mais arquivos ou de um diretório, no sistema.
Para tornar o arquivo meuscript.sh
executável:
chmod aug+x meuscript.sh
Este comando torna o arquivo executável por todos (a), pelo usuário (u) e pelo grupo (g).
Para remover a permissão de execução para todos e deixar apenas pro usuário atual, faça assim:
chmod ag-x meuscript.sh
O comando chown
No exemplo, vamos alterar o dono do arquivo meuarquivo.txt
para pcarlos. O grupo, a que ele pertence, continuará sendo justincase. Veja como:
Solaris-8:~# ls -la *.txt -rw-rw-r-- 1 justincase justincase 847 Set 28 19:44 lightdm.txt -rw-rw-r-- 1 justincase justincase 0 Dez 17 12:40 meuarquivo.txt Solaris-8:~# chown pcarlos.justincase meuarquivo.txt Solaris-8:~# ls -la *.txt -rw-rw-r-- 1 justincase justincase 847 Set 28 19:44 lightdm.txt -rw-rw-r-- 1 pcarlos justincase 0 Dez 17 12:40 meuarquivo.txt
Se você obtiver uma mensagem de erro ao executar este comando, o motivo provável é que você não tem permissão para fazer esta alteração. Use o root, neste caso.
Como alterar a senha de usuário no Linux
Para isto, use o comando passwd. O superusuário, root, pode alterar a senha de qualquer outro usuário. Neste caso, o sistema não pergunta nada além da senha desejada:
Solaris-8:~# passwd pcarlos Digite a nova senha UNIX: Redigite a nova senha UNIX: passwd: senha atualizada com sucesso
Use este mesmo comando para desabilitar a senha de um usuário:
passwd -d pcarlos
Ao ter a senha desabilitada, o usuário poderá entrar no sistema sem precisar fornecê-la.
Como encontrar um comando no seu sistema
Vou mostrar como usar o comando whereis
(Quer dizer ondeestá, em inglês) e como ele pode ser usado para ver onde, exatamente, se encontra um determinado comando e os arquivos diretamente relacionados a ele no seu sistema.
Vou começar por mostrar como encontrar o comando ls
e alguns arquivos relativos a ele (páginas do manual, normalmente):
Solaris-8:~# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
No exemplo dado, foram exibidos 2 arquivos:
- /bin/ls — o programa
ls
, que lista os arquivos presentes no diretório atual - /usr/share/man/man1/ls.1.gz — a página do comando, no manual do sistema. É o texto que aparece, quando você digita o comando
man ls
O comando whatis
O significado deste comando é oqueé, em inglês. Sua função é mostrar o que um determinado comando é ou faz no seu sistema. De certa forma, a ajuda ou a página do manual referente a cada comando, já faz isto – ele apenas simplifica.
Experimente:
whatis ls
O comando su
Basicamente, a função deste comando é permitir trocar rapidamente para outro usuário. O administrador do sistema pode assumir a identidade de qualquer usuário, sem precisar fornecer sua senha, através do comando su
. Desta maneira, o administrador pode reproduzir um erro ou uma situação específica em que o usuário esteja tendo dificuldades. No exemplo abaixo, o comando será usado para assumir a identidade do usuário patodonald:
su patodonald
Se você não for root, vai precisar conhecer a senha do usuário para obter sucesso neste comando.
Como administrador, você pode usar o su
para executar um ou mais comandos no lugar de um usuário e voltar ao seu prompt:
su - patodonald -c 'chmod a+x script.sh'
No exemplo acima, executei o comando chmod a+x script.sh
como usuário patodonald. Este comando torna o arquivo script.sh
executável por todos os usuários do sistema.
Como alterar a data e a hora no Linux
No Linux, é muito simples alterar a hora e a data do sistema. Contudo, por ser um procedimento cujos resultados trazem implicações mais profundas – pode também abrir brechas de segurança no seu sistema – só pode ser executado com privilégios administrativos.
Veja como alterar a data do sistema para 06 de Agosto de 2080:
sudo date --set="2080-08-06"
Para ajustar a hora 11h da noite, faça assim:
sudo date --set="23:00:00"
Você pode usar este modelo para ajustar minutos e segundos.
“Posso ajustar os dois de uma só vez?”
Pode, sim. Veja como:
sudo date --set="2080-08-06 23:00:00"
O comando hwclock
Enquanto o comando date
ajusta a hora e a data do sistema (ligado ao kernel), o comando hwclock
faz o ajuste direto no relógio do BIOS, o RTC.
Veja como ajustar o relógio do BIOS, pelo do sistema:
sudo hwclock --systohc
ou o contrário:
sudo hwclock --hctosys
SAIBA MAIS SOBRE O ASSUNTO:
Veja como pode ser mais simples ajustar o relógio do sistema e do hardware automaticamente, através de um servidor NTP.
Ouça música no console com o mpg123
Para ouvir música no console, meus favoritos são o mpg123 e o mpg321.
Não sou muito do tipo que escolhe o que vai ouvir – se está no meu HD, é por que eu gosto. O que me leva aos comandos que seguem.
Para ouvir todas as músicas, em mp3, dentro do diretório Música/
(e seus subdiretórios), recursivamente e misturadas, uso o mpg321:
mpg321 -Bzx Música/
As opções -Bzx
ativam a recursividade, misturam as músicas antes de tocar e exibe na barra de título do terminal o nome da música que está tocando, respectivamente.
O mpg123 não pode ser ignorado, em função dos vários recursos presentes no programa – e ele é software livre desde 2006! Mas, infelizmente, ele não tem a recursividade.
Para resolver isto, criei uma lista recursiva de todos os arquivos .mp3, com o comando find, deste jeito:
find Música/ -iname *.mp3 > playlist.lst
Em seguida, é só executar o mpg123:
mpg123 -z --title --list playlist.lst
Imprima este artigo, ponha-o nos seus favoritos (para o caso de precisar de referências posteriormente) e, lembre-se que a melhor forma de agradecer é compartilhar
– passe o conhecimento para frente! 😉
One reply on “Linux — comandos básicos”
Sou novo no “Linux” e tenho vindo a seguir os seus manuais, que explicam com bastante clareza.
:)))
Obrigado pela partilha