Buscar

linux-day2


Continue navegando


Prévia do material em texto

Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
Linux Essentials 010-160 + Bônus
Este curso é uma atualização da conhecida certificação do Linux Essentials 010-160 mais LPI 101 (LPIC-1)
com ênfase em segurança da informação e preparação para OSCP.
Este curso é supervisionado pelo Linux Professional Institute (LPI) e dá descontos ao aluno para
o exame LPIC considerado internacionalmente! É adequado para adolescentes e iniciantes no
mundo do Linux. 
O Linux é um sistema operacional necessário no gerenciamento de redes e segurança da
informação e no mundo cibernético.
Neste curso, trabalharemos com os sistemas operacionais Kali Linux e Ubuntu.
Aula - 2 - Trabalho básico no ambiente Linux
Para trabalhar com o Linux com comandos, precisamos abrir o shell, aqui está uma lista de tipos
de shell que podem ser abertos:
● sh - uma das primeiras interfaces de comando shell
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
● Ash - busybox é uma interface de comando para produtos iot(Internet das coisas).
● Bourne Again Shell - Interface de comando Bash
● ksh - Korn shell
● tcsh - Tee See Shell
● zsh - Zee Shell
 Programas que rodam o shell no terminal executado pelo shell no
● gnome-terminal
● konsole
● console
● xterm
● rxvt
● kvt
● nxterm
● eterm
Acessando pela interface de usuário - clicando com o botão direito na tela e selecionando "abra
o terminal" funciona na maioria das vezes. 
Comandos úteis
Depois de entender como abrir uma interface de comando, iremos conhecer vários comandos 
importantes que ajudarão você a trabalhar com o sistema operacional.
ls - Exibe todos os arquivos
● d - Na pasta atual.
● i - Exibe inode.
● l - Exibe informações detalhadas sobre cada arquivo.
● t - Exibe por data.
● r - Exibe ao contrário.
● S - Filtre por tamanho, observe que é 'S' maiúsculo e não o 's' minúsculo.
Por exemplo:
ls -l
cd - (Change Directory) O comando de navegação no sistema, este é o comando mais útil. 
● / - A cabeça da árvore, inicia a navegação desde o início da árvore.
● ~ - nos levará para a pasta inicial do usuário em que estamos.
● - - Volta para a pasta anterior em que você estava.
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
● . - Nos deixa no mesmo lugar.
● .. - Move uma pasta para trás.
Por exemplo:
cd /var/www/
pwd - (Print Working Directory) Exibe o diretório onde estamos no momento.
mv - (Move) Um comando para transferir arquivos de um lugar para outro; além disso, você 
pode usar o comando para renomear um arquivo ou uma pasta.
cp - (copy) Um comando para copiar um arquivo de um lugar para outro.
rm - (remove) Um comando para excluir um arquivo ou pastas.
mkdir - (Make directory) Um comando para criar uma pasta.
rmdir - (Remove directory) Exclua pastas.
touch - Um comando para criar um arquivo.
whoami - Um comando que mostra o usuário no qual você está conectado.
echo - comando para imprimir algo na tela.
history - Um comando para exibir o histórico de comandos feito no terminal, muito usado após 
invadir uma máquina ou fazer análises na máquina.
clear - Comando para limpa a tela.
passwd - Um comando para alterar a senha do usuário atual.
● d - Criar senha sem senha
passwd –d
wc - Comando para contagem de palavras ou letras em arquivo, para 3 campos de comando 
durante a impressão:
1- Quantidade de linhas
2- Quantidade de palavras 
3- Número de caracteres
cat - Exibe o conteúdo do arquivo
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
cut - Comando para cortar caracteres de um resultado de outro comando, cria um novo 
arquivo com os caracteres que sobraram ou imprime na tela .
● -c - Quais caracteres cortar
● -d - Delimitador de tamanho
● -f - Quais campos exibir após o corte
Exemplo:
cut –c 3,4,5 hello.txt > file.txt
cut --delimiter=":" --fields="1" /etc/passwd
cut –d ":" -f "1,2,3" /etc/passwd
sort - Um comando de ordenar textos de um arquivo, um comando útil quando você deseja 
ordernar senhas e excluir duplicatas.
sort hello.txt 
sort -r hello.txt [reverse]
sort -R hello.txt [random]
uniq - Excluir duplicatas em um arquivo, geralmente combinando-o com sort.
less/more - exibe conteúdo do arquivo de forma interativa
head - O comando exibe as 10 primeiras linhas no arquivo selecionado. Por padrão, isso pode 
ser alterado usando o parâmetro -n da seguinte maneira:
head -n 2
tail - Exibe as últimas 10 linhas
tail -f /var/log/syslog 
tail –n 2
man - Os desenvolvedores do Linux geralmente escrevem um manual para comandos criados 
ao usuário, este comando nos permitirá exibir o manual
o k - Pesquisar todos os manuais
o /show - Procurar uma palavra em todos os manuais
o /usr/share/doc/
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
Ao utilizar um comando, pense da seguinte estrutura:
[Comando] [opções do comando] [Argumentos do comando]
● comando - o comando que você deseja realmente fazer
● opções - Cada comando existe inúmeras opções que permitem ao usuário ajustar o 
comando para realizar o que ele quer
● argumentos - geralmente um arquivo ou qualquer informação que você possa utilizar o 
comando
Quando executamos um comando em um arquivo composto de 2 palavras ou que contém 
caracteres especiais, um dos seguintes métodos pode ser usado:
● Aspas únicas ou aspas duplas 
● também podem ser usadas barra invertida \ e assim ignorar o espaço 
touch "nome do arquivo longo"
touch long\ file\ name
Exercício
1. Vá para a pasta /tmp
2. Crie 5 pastas vazias: pasta1, pasta2, pasta3, pasta4, pasta5.
3. Entre na pasta pasta1 e crie 2 arquivos vazios arquivo1, arquivos2.
4. Copie os arquivos arquivo1 e arquivo2 para a pasta pasta2.
5. Renomeie pasta2 para pasta6.
6. Mova os arquivos da nova pasta6 para a pasta5.
7. Exclua todas as pastas vazias.
8. Veja as últimas 8 linhas no arquivo /var/log/messages.
9. Introduza as 8 primeiras linhas no arquivo /var/log/messages.
10. Vá para a pasta /etc/ e visualize o conteúdo do arquivo passwd.
11. Vá para a pasta /etc/ e filtre o arquivo group, exiba os nomes dos grupos apenas com o 
comando cut.
Um ponto importante a ser observado é que os arquivos no Linux são sensíveis às maiúsculas e 
minúsculas diferente do Windows, por isso os seguintes arquivos:
● Roman.txt
● roman.txt
● roman.TXT
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
No Linux, esses arquivos são diferentes e no Windows é o mesmo arquivo. Portanto, você deve 
tratar os dois sistemas operacionais como se fossem sensíveis maiúsculas e minúsculas e 
escrever tudo em minúsculas.
Atalhos de teclado
No Linux Existem muitos atalhos de teclado para nos ajudar a trabalhar com a interface de 
comando:
Shift + page up - role a tela para cima.
Shift + page down - role a tela para baixo.
Ctrl + l - apagar a tela
Ctrl + e - final da linha
Ctrl + a - início da linha
Ctrl + u - exclui a linha de antes da localização atual.
Ctrl + c - Desfazer ação
Ctrl + z - Enviar comando para background (segundo plano) Tema do LPI 101.
Manipulação de input e output (entrada e saída)
Alguns termos importantes a serem familiarizados antes de começarmos a manipular os 
comandos:
● stdin - tudo o que o software recebe como entrada.
● stdout - Tudo o que o softwareemite como saída.
● stderr - Erros recebidos ao executar o software.
> Enviar saída + substituir conteúdo do arquivo
>> Enviar para fora mantendo o conteúdo existente (anexar)
& Execute o software em segundo plano, um tópico do LPI 101-.
&& Se a ação anterior foi bem-sucedida, execute a ação adicional também.
|| Somente execute um segundo comando se um primeiro comando não tiver êxito
; Execute outro comando se a primeira ação foi bem-sucedida ou não.
< Obter entrada de um arquivo que se parece com wc < roman.txt
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
| Enviar stdout para ser stdin de outro comando.
Pesquise todos os arquivos no local atual
grep "roman" *
Pesquisa recursiva nos subdiretórios 
grep –rni "roman" *
tee - comando que envia o stdout para o arquivo e para a tela
ls | tee roman.txt
Nem todos os comandos recebem stdin usando "|" Portanto, há uma variável auxiliar que 
adiciona stdin a um comando chamado xargs:
ls | xargs echo
A diferença entre 
wc file.txt
wc 0 <file.txt
é que, na segunda saída, o comando não sabe qual nome de arquivo em que está trabalhando 
Para criar um arquivo em branco
> file.txt
Trabalhando com stderr
ls 1> ls.txt [redirecionamento correto]
ls 2> ls .txt [erros de redirecionamento]
ls >> ls.txt [anexar]
Você pode combiná-los:
ls bob 1>> results.txt 2>> errors.txt
ls bob 1> results.txt 2> errors.txt
ls bob 1> results.txt 2>&1
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
Se eu quero passar saída e erro existe um atalho &>
ls bob &> logs.txt
quando não está imprimindo erros que você pode jogá-los em / dev / null 
grep david /etc/* 2> /dev/null
Exercício
1. O comando ifconfig exibe o endereço IP da sua máquina, filtrando apenas o endereço IP
da tela.
2. O comando find permite procurar no sistema, execute o comando:
find / -name "messages"
Passe todos os erros para o arquivo error.log e o resultado para o arquivo success.log
3. Repita o comando da seção 2 e, desta vez, apenas mostre os resultados corretos, 
nenhum erro deverá ser exibido em stdout.
4. Efetue o seguinte comando
cat /etc/passwd 
E mostre todos os usuários do sistema em somente uma linha
Wildcard e Globing
Quando procuramos arquivos no Linux e não temos certeza de qual é o nome exato do arquivo,
podemos fazer uma pesquisa de modelo usando "curingas". Essa pesquisa é chamada Wildcard 
ou Globing.
Existem quatro caracteres que quase todos os comandos do Linux o suportam: 
● ? - Troca de caracteres
● * - substitui todos os caracteres.
● [] - Possível lista de caracteres para um único caractere.
● {..} - Corretor de pesquisa (não faz parte da globing).
Por exemplo, para visualizar todos os arquivos que contêm os caracteres abc, usamos o 
asterisco da seguinte forma:
ls abc* 
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
Exercício
Crie 100 arquivos usando o comando touch com caracteres aleatórios e espaços, não pressione 
acidentalmente em caracteres especiais como por exemplo a tecla capsLock:
touch a23{1..10}
touch b{a..z}
touch hasd sad7 sd asd asd 7gasd a23b asd 8hsad has8d as8dh asads as vacx asc a…
Em seguida, faça o seguinte exercício:
1. Veja todos os arquivos que contêm apenas 3 caracteres.
2. Ver todos os arquivos começando com o caractere a.
3. Veja todos os arquivos que começam com o caractere a seguido de 2 caracteres e, em 
seguida, qualquer caractere dos caracteres de a a k.
4. Exibir todos os arquivos que contêm o caractere h
5. Exiba todos os arquivos que começam com a, b ou c e que terminam com um dos 
caracteres de g a z.
Regex - (Comando de expressão regular) e egrep
No mundo Linux o arquivo mais comum é um arquivo de texto e é usado pelo sistema para 
arquivos de log, arquivos de configurações, scripts e muitos outros usos. A necessidade de 
pesquisar arquivos de texto e encontrar conteúdo é imperativa e é aí que a expressão regular 
entra em cena.
Expressão regular é um modelo que permite localizar determinado conteúdo em um arquivo 
que corresponde ao formato que definimos.
Os modelos consistem nos seguintes caracteres:
● () - define um modelo como um grupo, segmentando modelos.
● {} - O número de vezes que uma determinada sequência é definida entre 
parenteses ().
● [] - Várias opções de caracteres únicos
● . - Qualquer caractere (semelhante a "?" Em caracteres wildcard)
● * - O caractere anterior aparece 0 ou mais vezes sendo que a combinação .* Indica
algo como (* em caracteres wildcard)
● + - O caractere anterior aparece 1 ou mais vezes, muito semelhante a *
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
Todo o conteúdo é propriedade intelectual da CySource LTD 
www.cysource.com.br 
● ^ - A linha deve começar com um determinado caractere e, se o caractere 
aparecer entre colchetes, indica uma reversão.
● $ - A linha deve terminar com um caractere específico
comando grep:
● egrep/ -E - Ativa o regex estendido, sem o comando, algumas opções como [] não 
podem ser usadas.
● -o - Exibe apenas a correspondência para um formato diferente. A linha inteira será
exibida.
● -r - Pesquisa recursiva em todos os arquivos da pasta e seus subdiretórios.
● -n - exibe o número da linha.
● -i - Cancelar caracteres que diferenciam maiúsculas de minúsculas.
Por exemplo, para exibir o endereço IP do seu computador, use o comando:
ifconfig > ip
grep –Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" ip
Observe que, se você escrever o comando sem –o, a linha inteira será exibida, às vezes é 
exatamente isso que queremos, por exemplo, se quisermos exibir todas as pastas, usaremos o 
seguinte comando:
ls -l | grep ^d
Exercício
1. Exiba todos os endereços IP no arquivo /var/log/messages e salve-os no arquivo 
/tmp/ip_log.
2. Veja todos os arquivos na pasta atual usando ls e grep.
3. Veja todos os endereços de Mac Address (se você não souber o modelo de expressão 
regular, pesquise no Google) no arquivo var/log/messages.
4. Exiba todas as linhas nas quais a palavra contém a palavra error ou Error no arquivo 
var/log/messages. Deve-se também exibir o número da linha.
Todo o conteúdo é propriedade intelectual da CySource LTD
www.cysource.com.br
http://www.itsafe.co.il/
http://www.cysource.com.br/
	Linux Essentials 010-160 + Bônus
	Aula - 2 - Trabalho básico no ambiente Linux
	Comandos úteis
	Exercício
	Atalhos de teclado
	Manipulação de input e output (entrada e saída)
	Exercício
	Wildcard e Globing
	Exercício
	Regex - (Comando de expressão regular) e egrep
	Exercício