dmcardoso
11/1/2019 - 12:41 PM

Comandos úteis

Comandos Linux

Diretórios e arquivos

Organização

$ ls -ld .?* #Lista somente os ocultos 
$ whereis [programa] #Exibe o caminho completo ate o programa 
$ ln [original] [link] #Link apenas para arquivos(Quando o arquivo original for apagado, o link continuara com o conteúdo dele) 
$ ln -s [original] [link] #Link simbólico para arquivos e diretórios(Quando o original é apagado o link se torna inútil) 

Remover tudo do diretório, incluindo os arquivos ocultos

rm -rf /opt/web/{,.[!.],..?}*

Exibe o tamanho dos arquivos do primeiro nível de um diretório

$ du --max-depth=1 | sort -n #Lista em BYTE
$ du --max-depth=1 -k | sort -n #Lista em KB
$ du --max-depth=1 -m | sort -n #Lista em MB
$ cmp #Comparar 2 arquivos 
$ file [arquivo.txt] #Exibe informações sobre o tipo de um arquivo 
$ stat [arquivo.txt]  #Mostra o estado de um arquivo, útil para saber por exemplo a hora e data do último acesso 
$ grep "[palavra]" [arquivo.txt] -i #Busca por uma palavra em um arquivo de texto 

Manipulando conteúdo de arquivos

sed -Ez "s/(.*)(pool=.*)/\1/" ./domain.sh # Substituição com padrão de regex que não precisa escapar parenteses e multiline

Download de arquivos
Download com wget

wget "http://url.com/download" -O <nome_local>

Download utilizando curl

curl "http://url.com/download" > <nome_local>

Baixar arquivos em url com redirecionamento mantendo o nome

curl -L "http://url.com/download" > <nome_local>

Baixar arquivos em url com redirecionamento mantendo o nome
-O utiliza o nome o final da url no nome e -J força o nome fornecido no cabeçalho

curl -O -J -L "http://url.com/download"

Comprimir e extrair arquivos
Zippar arquivos

$ zip <name.zip> <file1> <file2>... #Zipar arquivos 
$ zip -r <name.zip> <dir1> #Zippar diretorio 

Extrair zip

$ unzip <file.zip> -d <somedir> 

Extrai o arquivo tar

$ tar -zvxf <file.tar.gz>  
$ tar -zvxf <file.tar.gz> -C <diretorio>  

O nome do tar que será gerado e os diretórios que serão comprimidos

$ tar -zvcf [name.tar.gz] diretorio1 diretorio2... 

Listar conteúdo de um tar

$ tar -zvtf [name.tar.gz] 

Usuários

$ su [user] #Troca para o usuário informado mas mantem os dados da sessão
$ su - [user] # Faz login no usuário informado abandonando os dados da sessão atual
$ sudo -i #Inicia sessão com root 
$ passwd #Altera a senha de um usuário(Para mudar a do root é preciso executar "sudo -i") 
$ sudo passwd -dl root #Remove a senha do usuário root 

Permissões e propriedades

$ chown [user] [file] #Mudar o dono ou grupo de um arquivo ou diretório, vem de change owner 
$ chown -R [user] [file] #Aplica de forma recursiva 
$ chgrp #Mudar o grupo de um arquivo ou diretório 
$ stat -c "%a %n" * # Lista número de permissão de todos os arquivos do diretório
$ stat -c "%a" file.txt # Exibe o número de permissão de um arquivo em especifico
$ stat -c "%a %g %G %u %U %n" * # Exibe todos os dados do arquivo

Muda as permissões de um arquivo ou diretório

$ chmod 777 [file] 

chmod apenas para diretorios

$ find [dir] -type d -exec chmod 755 {} \; 

chmod apenas para arquivos

$ find [dir] -type f -exec chmod 644 {} \; 

Manutenção

$ du -sh # Exibe tamanho de um diretório  
$ du -h # Exibe tamanho de um diretório e dos seus descendentes  
$ df -h #Exibe o espaço em disco do sistema  
$ top #Exibe uso de memoria 
$ htop #Mostra recursos de forma mais detalhada 

Quantidade de processos em execução

$ lsof 
$ lsof | wc -l 
$ lsof | grep mysql | wc -l 

Executar escaneamento de malware

$ scan -m [USUARIO DESEJADO] | tee -a scan.txt 
$ scan -a #faz um scan de todo o seu dedicado ou VPS 
$ scan -c #remove todos os arquivos maliciosos. 

Sequencia de comandos

Inicia um comandos em paralelo como uma thread

mkdir dir1 & mkdir dir2

Retorna os dados que seriam enviados para o output para o comando seguinte
https://www.vivaolinux.com.br/dica/Usando-o-pipe

ls | grep b | sort -r | tee arquivo.out | wc -l

Salva os dados que seriam enviados para o output em um arquivo

ls > file.txt