Mudanças entre as edições de "Categoria:Dicas"

De MochilaWiki
Ir para navegaçãoIr para pesquisar
 
(81 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
Dicas para GNU/Linux
 
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 [http://www.vivaolinux.com.br/dica/Como-descobrir-a-versao-USB-do-seu-periferico]
 +
 +
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
 +
<syntaxhighlight lang="bash">
 +
find . -user banto
 +
</syntaxhighlight>
 +
 +
procurar pastas que o dono não seja o banto
 +
<syntaxhighlight lang="bash">
 +
find . ! -user banto -type d
 +
</syntaxhighlight>
 +
 +
histórico sem os números na frente
 +
<syntaxhighlight lang="bash">
 +
history | cut -c 8-
 +
</syntaxhighlight>
 +
 +
lista os 10 processos que mais estão consumindo cpu
 +
<syntaxhighlight lang="bash">
 +
ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
 +
</syntaxhighlight>
 +
 +
extrai uma imagem a cada 30 quadros de um video
 +
<syntaxhighlight lang="bash">
 +
mplayer -vo png -vf framestep=30  -nosound  lilwayne.webm
 +
</syntaxhighlight>
 +
 +
testar subwoofer
 +
* http://www.stealthsettings.com/pt/woofer-bass-subwoofer-sound-test
 +
 +
status a cada 4 segundo da memoria ram
 +
<source lang="bash">
 +
free -m -s 5
 +
</source>
 +
 +
deixando mysql sem histórico no shell
 +
<source lang="bash">
 +
ln -s /dev/null  ~/.mysql_history
 +
</source>
 +
 +
lista e mostra somente o nome
 +
<source lang="bash">
 +
ls -laR *.tar | grep "^-" | awk '{print $9}' > compacta.sh
 +
</source>
 +
 +
insere no começo da linha o numero - enumerado
 +
<source lang="bash">
 +
awk '{i++;print i $0}' ddd.txt
 +
</source>
 +
 +
capturando e tocando video via firewrite
 +
<source lang="bash">
 +
dvgrab --format raw play-
 +
</source>
 +
 +
streaming via linha de comando
 +
<source lang="bash">
 +
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
 +
</source>
 +
 +
* [http://principialabs.com/beginning-ssh-on-ubuntu/ preguiça no ssh]
 +
 +
Copiando a estrtura de diretórios de um local para outro.
 +
<source lang="bash">
 +
rsync -a -f "+ */" -f "- *" fonte/ destino/
 +
</source>
 +
 +
Para verificar a data de criação/modificação de um arquivo:
 +
<source lang="bash">
 +
ls -lc arquivo.txt
 +
</source>
 +
 +
Para verificar a data de acesso/utilização de um arquivo:
 +
<source lang="bash">
 +
ls -lu arquivo.txt
 +
</source>
 +
 +
Para inforamações mais detalhadas você pode utilizar o comando "stat":
 +
<source lang="bash">
 +
stat arquivo.txt
 +
</source>
 +
 +
<source lang="bash">
 +
wget http://ossguy.com/video_hosts/vimeo_downloader.sh
 +
chmod u+x ./vimeo_downloader.sh
 +
mv vimeo_downloader.sh /usr/local/bin/
 +
</source>
 +
 +
<source lang="bash">
 +
./vimeo_downloader.sh http://vimeo.com/1084537
 +
./vimeo_downloader.sh 1084537
 +
</source>
 +
 +
mais info
 +
* http://ossguy.com/?p=841
 +
 +
 +
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
 +
<source lang="bash">
 +
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
 +
</source>
 +
 +
prioridade na escrita em disco, evita alto consumo
 +
/usr/bin/ionice -c2 -n7 /root/scripts/nas.backup.full
 +
* http://www.cyberciti.biz/tips/linux-set-io-scheduling-class-priority.html
 +
 +
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/
 
  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
 
  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
 
confere o hash
Linha 20: Linha 330:
 
* http://www.softwarelivrecelepar.pr.gov.br/modules/newbb/viewtopic.php?topic_id=289&forum=49&post_id=923
 
* http://www.softwarelivrecelepar.pr.gov.br/modules/newbb/viewtopic.php?topic_id=289&forum=49&post_id=923
  
aula de php
+
for file in `ls *jpg`; do file="`basename $file .jpg`" ; php resizer.php -w460 -h345 -j $file.jpg; done
http://www.devin.com.br/intro_php/
+
 
 +
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
 +
 
 +
* http://www.cyberciti.biz/tips/howto-monitor-hard-drive-temperature.html
 +
 
 +
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
  
derrubando windows
+
== artigos úteis ==
http://www.vivaolinux.com.br/script/Derrubando-Win9x-Win2k
+
* [http://www.tinotapa.com.br/ TI no Tapa]
 +
* [http://www.carlosmalucelli.com/view/133 Como criptografar um diretório no linux]
 +
* [http://www.vivaolinux.com.br/artigo/Reempacotamento-e-repositorio-local-em-um-sistema-Debianlike/ Reempacotamento e repositório local em um sistema Debian-like]
 +
* [http://www.vivaolinux.com.br/dica/Convert[endo]-fotos Convertendo fotos]
 +
* http://www.devin.com.br/imagemagick/
 +
* [http://www.devin.com.br/intro_php/ aula de php]
 +
* [http://www.vivaolinux.com.br/script/Derrubando-Win9x-Win2k derrubando windows]
 +
* [http://www.yrex.com/spam/spamconfig.php configurador web basicao pro spamassassin]
 +
* [http://tuxmobil.org/portable_player_linux_tools.html recursos para mp3player]
 +
* [http://www.pixelbeat.org/cmdline.html ótimo guia de comandos]

Edição atual tal como às 13h44min de 25 de junho de 2023

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