Categoria:Dicas

De MochilaWiki
Ir para navegaçãoIr para pesquisar

Dicas para GNU/Linux

comando

Copiar diretório mais rápido com tar

cd diretorio-origem; tar cf - . | (cd /diretorio/destino/; tar xvf -)


Compactar várias pastas, cada uma em seu próprio arquivo zip

for i in */; do zip -r "${i%/}.zip" "$i"; done


mostra o tamanho dos diretórios ocultos

du -hs .[^.]*

procura arquivos criados em menos de 5 minutos

find . -mmin -5

busca por arquivos com mais de 30 dias de um diretório e copia para outro diretório

find cur -type f -mtime +30 -exec mv '{}' .2018/cur/ \;

ou

find /var/backup -type f -mtime +30 -print | xargs -I {} mv "{}" /srv/dbdumps

mostra informações de permissões recursivamente do caminho indicado

namei -om /usr/share/color

remove todos os arquivos com prefixo sess_* que estejam dentro de qualquer diretório, mas dentro do subdiretório tmp

rm *?/tmp/sess_*

cria um arquivo index.html dentro de todos os subdiretórios do diretório atual

find . -type d -exec touch {}/index.html \;

buscar pela arquivo aa.txt e exclui os diretórios 02 e 03

find -name aa.txt -not -path "./02/*" -not -path "./03/*"


recupera processo

$ wget bigfiles.com/10GB_file.tgz &
[1] 26258
$ disown -h 26258
$ fg 1
wget bigfiles.com/10GB_file.tgz
disown 1234


apt-get install reptyr
reptyr  3678


remover a linha 1001 do histórico do bash

history -d 1001

Screenshot de site no Mozilla Firefox, pressione Shift+F2 e depois digite no prompt:

screenshot --fullpage page.png

mostra a configuração de hardware

inxi -Fxz

baixar todos os arquivos de uma lista com url por linha

while read line; do wget $line; done < lista.txt

mostra somente as informações de banco de dados de projeto wordpress

cat wp-config.php | head -28 | tail -10 | sort | tail -4

coloca todas as linhas de um arquivo em uma única linha

cat /tmp/lista.txt |paste -s -d' '

recriando /tmp com suas devidas permissões

mkdir /tmp
chmod 777 /tmp/
chmod +t /tmp/
chown -R root: /tmp

procura arquivos com 2 digitos, com letras

for letter in {a..z}{a..z}.php ; do echo $letter; done > find-webshell.sh
sed -i "s/^/find -name /" find-webshell.sh

procura arquivos com 2 digitos, com letra e numero

for letter in {a..z}{1..9}.php ; do echo $letter; done > find-webshell.sh
sed -i "s/^/find -name /" find-webshell.sh


identificar se tem usb 3 na máquina

lsusb -v | grep -iE "Bus|^Device Desc|bcdusb"

mais dicas [1]

remove todas as linhas que conter php

sed -i.bak '/php/d' test.log

contas as linhas

wc -l test.log

verificando limite de cotas de espaço do email

doveadm quota get -u seu@email.ccd

copia o diretório, mas excluído subdiretórios files e config

cp -r /var/www/website/!(files|config) /novo/caminho

remove todos os links simbólicos

find . -type l -exec rm {} \;

mostra IPs e Macs da rede local

nmap -sP 192.168.0.0/24

organiza o conteúdo do arquivo colocando as linhs em ordem acrescente e removendo os duplicados

cat 1.txt | sort | awk '!($0 in a) {a[$0];print}' > 3.txt

busca arquivos maiores de 500M

find . -size +500M

mostra configuração da máquina e sistema

wget -c https://raw.github.com/KittyKatt/screenFetch/master/screenfetch-dev -O screenfetch 
chmod +x screenfetch 
./screenfetch

mostra somente o ip

ifconfig | sed -n '2 p' | awk '{print $3}' 

mostra a quantidade de processo

ps -ef | wc -l

mostra o limite de processos permitidos

ulimit -u

mostra todos os limites

ulimit -a
ulimit -u 512

os 11 processos que mais consome memoria ram

ps -A --sort -rss -o comm,pmem | head -n 11

procura arquivos que tenha o dono banto

find . -user banto

procurar pastas que o dono não seja o banto

find . ! -user banto -type d

histórico sem os números na frente

history | cut -c 8-

lista os 10 processos que mais estão consumindo cpu

ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10

extrai uma imagem a cada 30 quadros de um video

mplayer -vo png -vf framestep=30  -nosound  lilwayne.webm

testar subwoofer

status a cada 4 segundo da memoria ram

free -m -s 5

deixando mysql sem histórico no shell

ln -s /dev/null  ~/.mysql_history

lista e mostra somente o nome

ls -laR *.tar | grep "^-" | awk '{print $9}' > compacta.sh

insere no começo da linha o numero - enumerado

awk '{i++;print i $0}' ddd.txt

capturando e tocando video via firewrite

dvgrab --format raw play-

streaming via linha de comando

dvgrab --format raw - | tee dvstream.dv | ffmpeg2theora -A 45 -V 400 -c 1 -f dv -x 360 -y 288 -o /dev/stdout - \
| tee savelivestream.ogv | oggfwd -p -d "Stream description" -n "Streamname" my.icecastserver.com 80 icecastpassword /stream.ogv

Copiando a estrtura de diretórios de um local para outro.

rsync -a -f "+ */" -f "- *" fonte/ destino/

Para verificar a data de criação/modificação de um arquivo:

ls -lc arquivo.txt

Para verificar a data de acesso/utilização de um arquivo:

ls -lu arquivo.txt

Para inforamações mais detalhadas você pode utilizar o comando "stat":

stat arquivo.txt
wget http://ossguy.com/video_hosts/vimeo_downloader.sh
chmod u+x ./vimeo_downloader.sh
mv vimeo_downloader.sh /usr/local/bin/
./vimeo_downloader.sh http://vimeo.com/1084537
./vimeo_downloader.sh 1084537

mais info


Adicione um texto em uma determinada linha de um arquivo de texto.

sed -i '3s/^/teste aqui\n/' arquivo.txt


descompactado vários arquivos ao mesmo tempo, diferentes software

for i in *.7z; do 7z x "$i"; done
for i in *.gz; do gunzip "$i"; done
for i in *.tar.gz; do tar -xvf "$i"; done

prioridade na escrita em disco, evita alto consumo

/usr/bin/ionice -c2 -n7 /root/scripts/nas.backup.full 

teste de audio: tocar

aplay -D plughw:0,0 Test.wav

teste de audio: gravar

arecord -D plughw:0,0 RecTest.wav


para descobrir os grupos que está um usuário

# groups banto

ou

id banto

visualiza regras do iptables

iptables -xnvL

criando há 24h pra cá

find . -mtime -1

sete dias pra cá

find . -mtime -7 


Desabilite o usuário root

usermod -L root

acertando permissão de pasta e arquivos

find ./ -type d -exec chmod 755 {} \;
find ./ -type f -exec chmod 644 {} \;

politica de vizinhança

ln -s /dev/null ~/.bash_history

download de site inteiro

httrack http://www.planetaportoalegre.net/home.htm -b1 +* -r2

testa audio

aplay /usr/share/sounds/alsa/Noise.wav

procurando arquivo por tamanho

find . -size +10M

lista os 5 diretório maiores

du -hs */ | sort -hr | head -n 5

procura arquivo com o dono diferente do usuário autenticado

find ~ ! -user ${USER}

remove todos os arquivos vazios

find . -depth -type f -empty -exec rm {} \;

remove todas as pastas vazias

find . -depth -type d -empty -exec rm {} -fr \;

Tempo que o processo está aberto

ps -o etime $PID 

acerta codificação de arquivos para colocar no mp3

convmv --notest -r -f latin1 -t utf-8 orappa-7-vezes/

procura e remove arquivo 03.jpg

find -name 03.jpg -exec rm -f {} \;

ligação simbolica para plugins do mplayer no firefox

ln -s $(pwd)/mplayerplug* /home/banto/.mozilla/plugins/

teste de envio de mensagens

echo "conteudo da mensagem" | mutt -s "teste 1" usuario@provedor.com.br

comentar todas as linhas de um arquivo

sed -i -e "s/^/#/" nhrumah.txt

confere o hash

md5sum -c casa.md5sum

insere texto na primeira linha:

sed -i "1s/^/LINHA1\n/" arquivo.txt

coloca em ordem alfabetica:

sort -n sai.txt

procura dentro de home arquivos que nao foram lido ou escrito por mais de um ano

find /home/ -atime +365 -exec ls -sh '{}' \;

fonte

for file in `ls *jpg`; do file="`basename $file .jpg`" ; php resizer.php -w460 -h345 -j $file.jpg; done

mirror de site

wget -m -k -K -E http://www.gnu.org/ -o /home/me/weeklog

E para limitar a banda usada pelo wget para que ele baixe a uma velocidade máxima de 20k, use --limit-rate=20. Ex.:

wget -c --limit-rate=20 http://caminho_do_rquivo/arquivo.zip

vendo a temperatura do HD

# apt-get install hddtemp
# hddtemp /dev/sda

convertendo tamanho de imagem

 for img in `ls *.jpg`; do convert -resize 40% $img n$img; done


  • procurando por permissões

para pasta

find -type d -perm 777

para arquivos

find -type f -perm 777

renomear arquivos em massa contando

i=1
for j in *.jpg; do mv "$j" "$i.jpg" ;(( i++ )); done

artigos úteis