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

De MochilaWiki
Ir para navegaçãoIr para pesquisar
 
(83 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/
 +
 +
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
 
procura dentro de home arquivos que nao foram lido ou escrito por mais de um ano
Linha 7: 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