Olááááá, caros leitores ^.^
Hoje, iremos introduzir o Terminal e
alguns comandos super importantes !
Os nomes comuns encontrado para o
acesso do terminal são, SHELL, CONSOLA ou CONSOLE, TERMINAL DE COMANDO,
ou simplesmente TERMINAL.. Até pouco
tempo, esta era a maneira que o usuário interagia com o computador; entretanto,
os usuários de Linux viram que o uso do shell pode ser mais rápido do que um
método gráfico e que ainda merece algum mérito hoje. Os comandos no terminal
ajudam muito os usuário a resolver problemas e otimizar tarefas.
O uso original do terminal era e ainda
é como um navegador de arquivos.
Digitar nas linhas de comandos não é
tão difícil assim, não precisa ser profissional porque é um programa como
qualquer outro.
A maioria das coisas em Linux podem ser
feitas usando a linha de comando. Embora haja ferramentas gráficas para a
maioria dos programas, às vezes eles não são suficientes. É aí que a linha de
comando fica útil.
Para começar, entre no seu GNU/Linux,
seja como máquina
No GNU/Linux, digite ctrl+alt+t para abrir o terminal ou pesquise
por ele.
A seguinte sequência de comandos
auxilia no entender, pesquisar e treinar utilizando o terminal. A maioria dos
comandos podem ser utilizados em qualquer distribuição Linux:
Comando ls - Listando conteúdo de um diretório
O comando ls permite visualizar o
conteúdo de um diretório e informações sobre arquivos, trazendo dados como
nomes de arquivos, permissões, proprietários e datas de criação, além de possui
inúmeras opções que permitem exibir as informações de diversas formas.
Sintaxe
ls [opções] [arquivo]
Opções mais comuns -a, --all
Não ignorar as entradas que se iniciam
com um ponto (.); equivale a exibir arquivos ocultos.
-A, --almost-all
Idem -a, porém não lista as entradas
implícitas . e .. (diretório atual e diretório pai)
Detalhe:
Na tela de comandos, está:
teste@larissa-VirtualBox:~$
Onde teste é o nome do usuário do
Sistema Operacional, o simbolo de @ é um separador para destinar o nome da
máquina que no caso aqui é “larissa-VirtualBox” O sinal de “~” é um apelido
para a pasta do usuário, que no caso também é fulano que por padrão fica no
diretório home.
Outras
opções
Como outras opções, temos:
-c
quando usada com as opções -lt, ordena e mostra os arquivos de acordo
com o ctime (hora da última modificação de informações de
status do arquivo); sozinho, ordena por ctime,
com o mais recente primeiro (sem mostrar a hora).
*com a opção -l: mostra o ctime e ordena por nome de arquivo;
-g
Equivalente ao -l, mas sem listar os
proprietários dos arquivos
--group-directories-first
Agrupa os diretórios antes dos
arquivos
-l
usar formato de listagem longa, que
traz detalhes dos arquivos como datas de criação, permissões, nome de
proprietário e grupo, e tamanho. É uma das opções mais usadas do comando.
-R, --recursive
listar os subdiretórios recursivamente
-S
Ordenar por tamanho de arquivo, sendo o
maior primeiro.
-r, --reverse
Ordem reversa quando classificar
--sort=opção
Classifica pela "opção", em
vez de por nome.
As opções disponíveis são: none (nenhuma), size (tamanho), time (hora), version (versão)
e extension (extensão)
ls -l *.extensão
Permite filtrar e listar somente
determinados tipos de arquivo. Por exemplo, ls -l *.php exibirá somente os arquivos. php
contidos na pasta, e assim por diante.
ls -1
Com ls -1, podemos fazer com que os
arquivos do diretório sejam listados por linha, um em cada linha.
ls -d $PWD/*
O comando acima lista pastas e arquivos
incluindo o caminho completo para eles:
ls –t
Com ls -t podemos listar os arquivos
por ordem de data de modificação. Arquivos que foram modificados por último,
mais recentemente, são exibidos em primeiro lugar.

COMANDO
"FIND"
Com ele podemos não somente realizar
buscas por arquivos e diretórios, mas também, através da utilização de diversos
parâmetros adicionais, realizar outras operações, em conjunto. Ao mesmo tempo
em que o comando pode ser usado para encontrar arquivos e/ou pastas utilizando
uma ampla gama de critérios, por exemplo, com ele também podemos apagar
arquivos, alterar permissões, etc. Ele também pode, por exemplo, localizar
arquivos que foram alterados dentro de um intervalo de dias que o usuário irá
especificar (digamos que você deseja saber quais arquivos no servidor foram
alterados, por exemplo, nos últimos 30 dias).
É também possível utilizar o comando
“find” para encontrar arquivos com base em seu tamanho. É até mesmo possível
especificar uma “faixa”: por exemplo, localizar arquivos que possuam entre 10 e
20MB. Encontrar e deletar tais arquivos também é possível.
Então vamos lá!
Abaixo seguem alguns exemplos de
utilização do “find” na linha de comando:
find
-name exemplo.php
O comando acima encontrará todos os
arquivos chamados “exemplo.php” que se encontram no diretório atual.
Já o comando abaixo encontrará todos os
arquivos chamados “exemplo.txt” que estejam dentro do diretório
“/home/usertest”. Repare que aqui não precisa estar dentro do diretório, ao
contrário do exemplo acima.
find /home/usertest -name exemplo.txt
ESPECIFICAR
UM LIMITE DE SUBDIRETÓRIOS A SEREM EXIBIDOS
Imaginemos uma situação em que o
primeiro exemplo tenha sido aplicado e haja dezenas de subdiretórios que sendo
exibidos na lista. No caso, você não precisa receber tantas informações, e
então deseja que somente os primeiros subdiretórios sejam exibidos.
Para isso, estabeleça uma condição que
defina o nível de “profundidade” na navegação dos subdiretórios por meio do
maxdepth:
find
-maxdepth 1 -name *.html
COMBINAR
MÚLTIPLOS CRITÉRIOS DE BUSCA
Se o usuário quiser localizar arquivos
levando em conta os formatos “txt” e “php”, basta incluir o caractere “o”
(significa OR) na linha de comando.
find -name '*.php' -o -name '*.txt'
LOCALIZAR
SOMENTE ARQUIVOS OU SOMENTE DIRETÓRIOS
Nos exemplos anteriores, percebe-se que
arquivos e diretórios são listados juntos em cada busca. Porém, é possível
buscar somente por uma das duas coisas:
SOMENTE
ARQUIVOS
find -type f
-name "p*"
SOMENTE DIRETÓRIOS find
-type d -name "p*"
LOCALIZAR
ARQUIVOS E DIRETÓRIOS OCULTOS
Basta especificar que está buscando
apenas arquivos (-type f) e usar um ponto final (.) no lugar do nome.
$
find ~ -type f -name ".*"
E, para diretórios:
$
find ~ -type d -name ".*"
Podemos também utilizar o comando
“find” juntamente com o parâmetro “-iname”, ao invés de “-name”. Desta forma, a
busca trará todos os arquivos, tenham eles letras minúsculas ou maiúsculas na
composição de seus nomes.
find -iname exemplo.txt
Ou:
find /home/usertest -iname exemplo.txt

PARA
REMOVER
Que tal agora utilizarmos o comando
“find” para encontrar e remover diversos arquivos, ao mesmo tempo? Todos os
arquivos que obedeçam a um critério, por exemplo, e que estejam dentro de
um diretório específico?
Basta digitar o comando abaixo,
realizando, claro, as alterações necessárias conforme suas necessidades:
find -name *.php -exec rm {} \;
Através do exemplo acima, serão
localizados todos os arquivos com extensão. php, dentro do diretório que você
está. Eles também serão apagados, devido à combinação do “find” com o parâmetro
“-exec”, o qual então executará o comando “rm” (remove) logo em seguida, para a
devida remoção dos arquivos.
Da mesma forma, podemos fazer com que o
comando localize e apague todos os arquivos independentemente de os mesmos conterem
letras maiúsculas ou minúsculas na composição de seus nomes, através do já
mencionado parâmetro “-iname”, ao invés de “-name”.
find –type f -iname *.php -exec rm -f
{} \;
Podemos, obviamente, alterar “*.php”
por qualquer outra extensão de arquivo, como por exemplo “*.txt”, “*.exe”,
“*.html”, “*.jpg” e assim por diante.
ATENÇÃO: Nenhuma mensagem será mostrada!!!
PARA
ENCONTRAR MODIFICADOS OU ENTRE DETERMINADO TAMANHO (EM MB)
E para encontrar arquivos que foram
modificados nos últimos 30 dias, digamos? Digite o seguinte:
find
/ -mtime 30
Modificados nas últimas 6 horas
find
. -type f -mtime -0.25

Lembre-se de que você pode alterar o
valor “30” pelo que desejar.
Deseja encontrar arquivos dentro de um
mesmo diretório que possuam tamanhos a partir de 10MB e com menos de 30MB?
find
~ -size 10M -size -30M
ALGUMAS CONDIÇÕES PARA O FIND
Procura arquivos ACESSADOS (atime) nas
últimas 24 horas (para mais de 3 dias, use +3)
find -type f -atime -1 -exec ls -l {} \;
Procura arquivos ACESSADOS (amin) nos
últimos 5 minutos
find
-type f -amin -5
Procura arquivos CRIADOS (ctime) nas
últimas 12 horas
find . -type f -ctime -0,5 -exec ls -l {} \;
Procura arquivos os diretórios vazios
sem dizer se é -type d ou -type f ele procura ambos
find
-type d –empty –
só procura diretórios
find
-type f –empty –
só procura arquivos
Sequência de comandos para que você
possa entender, pesquisar e treinar utilizando o terminal. A maioria dos
comandos podem ser utilizados em qualquer distribuição Linux:
~$
cd # comando para acessar/navegar entre diretórios.
~$
cd .. # para sair de diretório, note que os dois pontos estão separados do
comando.
~$ ls
# aquivos ou pasta de um determinado
diretórios.
~$ lsusb
# lista os periféricos que estão
conectados na porta usb.
~$ mkdir # cria uma pasta.
~$ rmdir # remove um diretório
~$ clear
# limpa a “tela" do terminal
~$ cp
# comando para copiar um arquivo ou
diretório para um outro local
~$ mv
# comando para mover um arquivo ou
diretório para um outro local
~$ exit
# sair do terminal, fechar o terminal
~$ shutdown #Desligar o computador
~$ shutdown -h now #desligar o computador agora
~$ groupadd #Cria um novo grupo no sistema
~$ sudo groupadd -g 10 escritorio #cria
um grupo chamado escritório com um número de identificação 10
~$ groupdel #Deletar um determinado grupo
~$ sudo groupdel escritorio //Deleta o grupo denominado escritório
~$ sudo useradd #Adiciona um novo usuário a um grupo
~$sudo useradd -g 10 /usuarios/escritorio/nome_do_usuario
~$ userdell #Exclui um determinado usuário
~$sudo userdell -r nome_do_usuario # a opção -r exclui o diretório do
usuário
Comando
cp
Copiar arquivos ou diretórios para
outro local.
Se o destino fornecido for o nome de um
diretório existente, os arquivos serão copiados para esse diretório, com o
mesmo nome. Caso indiquemos um nome de arquivo no caminho de destino, o arquivo
de origem será copiado e essa cópia renomeada também.
Sintaxe:
cp
[opções] arquivos_origem local_destino
cp
-a pasta1 pasta2 – Faz uma cópia de um diretório para
outro:
Quando o diretório é copiado e tem
vários arquivos dentro dele, o comando “cp”
precisa saber o que você deseja copiar. se desejar realizar todo o conteúdo
utiliza a opção “-a”. Nesse caso é feito uma cópia recursiva, será copiado todo
o conteúdo de um diretório para o outro, preservando seus atributos e a
estrutura.
$
cp -i *.txt /pasta
$
cp -f *.txt /pasta
– Faz o cópia de vários arquivos para
um outro diretório:
A opção “-i” será perguntado o que
deseja substituir, caso já tenha um com o mesmo nome no diretório. A opção
“-f”, será substituído sem pergunta alguma.
Opções mais comuns:
-i, --interactive
Pergunta se desejamos sobrescrever um
arquivo de destino já existente.
-l, --link
Cria hard links para os arquivos em vez
de copiá-los.
-n, --no-clobber
Não sobrescrever um arquivo já existente
-p
Preserva as permissões originais do
arquivo, incluindo proprietário, grupo, stuid, setgid, tempos da última
modificação e acesso.
-r,
-R, --recursive
Copia diretórios de forma recursiva.
-s, --symbolic-link
Cria links simbólicos (symlinks) para
os arquivos em vez de copiá-los
-u, --update
Copia apenas quando os arquivos de
origem forem mais novos que os de destino, ou quando os arquivos de destino
estiverem faltando.
-v, --verbose
Modo verboso; explica o que está sendo
feito no momento.
--help
Mostra a ajuda básica do comando e sai.
--version
Mostra informações sobre a versão
do comando e sai.
1. Copiar o arquivo passwd do diretório
/etcpara o
diretório /home/fabio/.
$
cp /etc/passwd /home/fabio/
Se o diretório de trabalho atual já for
o /home/fabio, podemos também usar o ponto (.) para indicá-lo como local de
destino, como a seguir:
$
cp /etc/passwd .
2. Copiar o arquivo passwd do diretório
/etc/ para o diretório /home/fabio/ renomeando a cópia como usuarios.txt:
$
cp /etc/passwd /home/fabio/usuarios.txt
3. Copiar todos os arquivos cujo nome
se inicia com a letra l do diretório /lib/ para o diretório atual:
$
cp /lib/l* .
4. Criar um link simbólico no diretório
atual para o arquivo /etc/group:
$
cp -s /etc/group .
5. Fazer uma cópia de backup de um
arquivo no mesmo diretório, com outro nome (muito útil quando precisamos
alterar arquivos de configuração do sistema):
$
cp passwd passwd.bkp
6. Copiar o diretório
/home/fabio/Documentos e todo o seu conteúdo recursivamente para o diretório
/home/fabio/backup/:
$
cp -r /home/fabio/Documentos /home/fabio/backup/
Comando
mv
O comando mv pode ser usado para mover
ou renomear arquivos.
Sintaxe:
mv
[opções] arquivos_origem local_destino
Opções principais:
-b, --backup
Cria um backup de cada arquivo de
destino existente.
-f, --force
Apaga destinos existentes sem perguntar
ao usuário.
-i, --interactive
Pergunta se desejamos sobrescrever um
arquivo de destino já existente.
-n, --no-clobber
Não sobrescrever um arquivo já
existente
-u, --update
Move apenas quando os arquivos de
origem forem mais novos que os de destino, ou quando os arquivos de destino
estiverem faltando.
-v, --verbose
Modo verboso; explica o que está sendo
feito no momento.
--help
Mostra a ajuda básica do comando e sai.
--version
Mostra informações sobre a versão
do comando e sai.
Exemplos:
1. Mover o arquivo passwd do diretório
atual para o subdiretório Documentos:
$
mv passwd ./Documentos/
Mover o arquivo passwd do diretório
atual para o subdiretório Documentos, o qual já contém um arquivo com o mesmo
nome - nesse caso, queremos fazer um backup do arquivo de destino:
$
mv --backup passwd ./Documentos/
3. Renomear o arquivo curriculum.odt
para curriculum.txt:
$
mv curriculum.odt curriculum.txt
Veja que não indicamos um destino
diferente - mandamos mover o arquivo para o próprio local de origem, apenas
trocando seu nome.
rm teste.txt
Você pode apagar arquivos que estão em
uma outra pasta no terminal. Basta digitar o endereço completo. Assim, para
apagar a música teste.ogg que está na pasta Músicas, digite o seguinte:
rm
~/Músicas/teste.ogg
Atenção: Esse "til"
representa sua pasta pessoal. Todo o caminho seguinte é relativo a ele.
Apagando
Diretórios
Diretório é só mais um nome para
"pasta". Se você tentar remover com o comando "rm" um
diretório, o linux não vai aceitar. Isso porque ele não sabe se vc quer remover
todo o conteúdo da pasta junto.
Para remover a pasta "teste"
e todo o seu conteúdo, digite o seguinte comando:
rm
teste/ -R
Esse "R" maiúsculo é de
"Recursive" e com esse parâmetro todos os arquivos e
pastas dentro desse diretório serão excluídos. Esquecer o parâmetro
"R" é uma das maiores causas de frustração ao tentar apagar uma
pasta.
Atenção:
Os arquivos apagados dessa forma não
vão para a lixeira. Eles são removidos diretamente. Tome cuidado.
Pastas
e arquivos com espaços ou outros caracteres especiais no nome
No terminal o espaço em branco tem um
significado especial. É ele quem separa os comandos um do outro. Assim, por
exemplo, é um espaço em branco que separa o comando rm do nome da pasta
teste/no código que usamos acima.
Por isso temos que ter cuidado quando
queremos apagar algo que tenha um espaço em branco no nome. Por exemplo: para
apagar uma pasta chamada "mais um teste", que tem dois espaços no
nome, o jeito mais fácil é cercar o nome da pasta com aspas.
rm
"mais um teste"/ -R