terça-feira, 28 de dezembro de 2021

monitorando teclas pressionadas / screenkey

um comando muito ultil para tal função

$ xev

nele é possível também monitorar o teclado / mouse utilizando o id da janela

para obter o id de uma janela

$ xwininfo

ou

$ wmctrl -lx

após ter o id utilize o comando

$ xev -id NumeroDoId

OBS: caso queira apenas mapear o teclado utilize o comando abaixo

$ xev | awk -F'[ )]+' '/^KeyPress|^ButtonPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }'

o comando acima ira mostrar a keycode do teclado e mouse

é possível também fazer tal monitoramento utilizando o xinput 

$ xinput test-xi2 --root | grep -A2 --line-buffered "EVENT type 2\|RawButtonRelease"

aonde o detail é o keycode

outra alternativa é o comando abaixo
$ xmodmap -pke

terça-feira, 21 de dezembro de 2021

converter flv em mp4

$ ffmpeg -i nomedoarquivo.flv -c:v libx264 -crf 19 -strict experimental output.mp4

OBS: Caso queira comprimir um pouco o arquivo, após converter para mp4 use o comando abaixo

$ ffmpeg -i nomedoarquivo.mp4 -vcodec libx265 -crf 28 output.mp4

segunda-feira, 6 de dezembro de 2021

controlar brilho monitor / Brightness

$ sudo add-apt-repository ppa:apandada1/brightness-controller

$ sudo apt-get update

$ sudo apt-get install brightness-controller

quinta-feira, 2 de dezembro de 2021

xterm / .Xresources

configuração básica do xterm

adicione as linhas abaixo no arquivo .Xresources

XTerm*Background: black

XTerm*Foreground: purple
xterm*faceName: Inconsolata
xterm*faceSize: 12
xterm*VT100.Translations: #override \
Ctrl Shift <Key>V:    insert-selection(SELECT) \n\
Ctrl Shift <Key>C:    copy-selection(SELECT) \n\
Ctrl <Key> minus: smaller-vt-font() \n\
Ctrl <Key> plus: larger-vt-font()


para aplicar as alterações digite o comando

$ xrdb .Xresources

atalhos no teclado / xbindkeys / xdotool

otimo aplicativo para criar atalhos no teclado

para instalar

$ sudo apt-get install xbindkeys

para configurar crie no home do usuario o arquivo .xbindkeysrc

$ touch ~/home/usuario/.xbindkeysrc

para adicionar os atalhos é bem simples, supondo que você queira adicionar um atalho para o firefox, basta adicionar a abaixo no arquivo .xbindkeysrc

# firefox

"firefox"

Mod4+g


OBS: há uma opção grafica para configurar o xbindkeys caso queira testar instale o xbindkeys-config

 $ sudo apt-get install xbindkeys-config

 

DICA: instale xdotool para mais funcionalidades 

ex:

adicione no .xbindkeysrc para fechar a janela em foco

#kill window
"xdotool getwindowfocus windowkill"
Mod4+w

 

abrir dmenu pelo terminal

$ urxvt -e $(dmenu_path | dmenu)

segunda-feira, 29 de novembro de 2021

converter doc para txt - linha de comando

$ catdoc arquivo.doc > arquivo.txt

 

para docx utiliza o docx2txt

instalação

$ sudo apt-get install docx2txt

 

utilização

docx2txt arquivo.docx

configuração do dwm [PARTE 2]

adicionar wallpaper no dwm

Crie um arquivo .xinitrc no home do usuario
$ touch .xinitrc

de permissão de execução
$ sudo chmod +x .xinitrc

com o feh instalado vamos criar um script para setar o wallpaper
crie um arquivo script
$ touch fehbg.sh

de permissão de execução
$ chmod +x fehbg.sh

adicione as linhas ao arquivo fehbg.sh
#!/bin/bash
feh --bg-fill '/caminho/da/imagem/wallpaper.jpg'

agora vamos editar novamente o .xinitrc
#!/bin/bash

exec /caminh/do/script/fehbg.sh &
exec dwm

agora vamos editar o arquivo /usr/share/xsessions/dwm.desktop
$ sudo vim /usr/share/xsessions/dwm.desktop

altere a linha Exec do arquivo dwm.desktop
[Desktop Entry]
Encoding=UTF-8
Name=dwm
Exec=/home/caminho/do/.xinitrc
Icon=dwm
Comment=Dynamic window manager
Type=XSession

após feito isso reinicie a maquina, de agora em diante o dwm sempre sera chamado pelo .xinitrc desse modo é possivel adicionar varios scripts quando necessario
$ reboot 

 

OBS: vou atualização as informações sobre configuração dessa postagem com o tempo

Instalação do dwm no lubuntu / ubuntu [PARTE 1]

 Instalação e configuração do dwm
distribuição: lubuntu 21.10
data: 2021/11/28

Instalação

Instale as dependencias
$ sudo apt-get install gcc
$ sudo apt-get install make
$ sudo apt-get install libx11-dev
$ sudo apt-get install libxinerama-dev
$ sudo apt-get install libxft-dev
$ sudo apt-get install suckless-tools
$ sudo apt-get install sharutils
$ sudo apt-get install build-essential
$ sudo apt-get install xorg
$ sudo apt-get install feh

faça o download do dwm e dmenu
site oficial: https://dwm.suckless.org/

descompacte o arquivo dwm
$ tar -xvzf dwm-6.2.tar.gz

descompacte o arquivo dmenu
$ tar -xvzf dmenu-5.0.tar.gz

OBS: todos os arquivos do suckless tem o arquivo de configuração padrão config.def.h

entre no diretorio do dmenu
$ cd dmenu-5.0

compile o dmenu
$ sudo make install

entre no diretorio do dwm
$ cd dwm-6.2

compile o dwm
$ sudo make install

ADICIONADO O dwm no lightdm

logue como root
$ sudo su

vá até o diretorio /usr/share/xsessions
# cd /usr/share/xsessions

crie um arquivo chamado dwm.desktop
# touch dwm.desktop

adicione as seguintes linhas no arquivo dwm.desktop
# vim dwm.desktop

[Desktop Entry]
Encoding=UTF-8
Name=dwm
Exec=dwm
Icon=dwm
Comment=Dynamic window manager
Type=XSession

deslogue da sessão
# sudo pkill -u username

e logue no dwm pelo lightdm

para abrir o dmenu aperte alt+p

a próxima etapa será sobre as configurações do dwm

domingo, 28 de novembro de 2021

lembrar nome de usuario lightdm

 edite o arquivo /etc/lightdm/lightdm.conf

# vim /etc/lightdm/lightdm.conf

descomente a linha "greeter-hide-users =false"

greeter-hide-users =false

 

salve o arquivo

sábado, 27 de novembro de 2021

feh / sxiv / imv / - vizualizadores de imagem - Image Viewer

três ótimas alternativas de Image Viewer

feh

para instalar

# apt-get install feh

para visualizar uma imagem

feh nomedaimagem.jpg

 

sxiv

para instalar

# apt-get install sxiv

para visualizar uma imagem

sxiv nomedaimagem.jpg

 

imv

para instalar

# apt-get install imv

para visualizar uma imagem

imvr nomedaimagem.jpg 

para imagem gif

sxiv -a nomedaimagem.gif

OBS: os únicos que tem suporte a gif são o imv e sxiv, sendo possivel ver a animação!

segunda-feira, 22 de novembro de 2021

comando watch

comando bem interessante para monitorar periodicamente a saida de um outro comando

 

 exemplos

 

$ watch -n 1 date

$ watch free


quarta-feira, 17 de novembro de 2021

Calcular quantos minutos se passaram entre datas - bc

#!/bin/bash

DATE_0=$(date -d"2021-11-11 18:30:00" +%s)
DATE_1=$(date -d"2021-11-12 05:40:00" +%s)
bc <<< "($DATE_1 - $DATE_0)/60"

ou

echo $(((DATE_1-DATE_0)/60))

 

terça-feira, 9 de novembro de 2021

ver arquivos mais pesados

$ du -sxh /home/usuário/* | sort -rh | head -n 10

Enviar texto via terminal | disponibilizar codigo termbin

enviar um texto

$ echo "texto"  | nc termbin.com 9999

enviar texto de um arquivo

$ cat file.txt | nc termbin.com 9999


alternativas

https://0x0.st

$ curl -F 'file=@arquivo.txt' https://0x0.st

https://paste.rs/
$ curl --data-binary @file.txt https://paste.rs/

https://www.file.io/
$ curl -F "file=@test.txt" https://file.io
 
Para ler no terminal
$ curl https://link/arquivo.txt

ou

$ curl -O https://link/arquivo.txt

existem diversos sites ao qual você pode disponibilizar seu codigo

https://pastebin.com/

https://paste.ee/ 

https://ghostbin.com/

https://rentry.co/


quinta-feira, 28 de outubro de 2021

Comandos interessantes do linux

look 

Look é um utilitário que faz parte do pacote bsdmainutils. Ele serve para procurar linhas que começam com determinada expressão dentro de um arquivo. Se nenhum arquivo for especificado, ele faz a consulta em /usr/share/dict/words. 


ex: 

$ look hello 


espaço

utilizar um espaço no começo de qualquer comando faz ele não ficar registrado no history

ex: 

$ ls /home


cal e ncal

mosta o calendario

ex: 

$ cal janeiro 2021

$ ncal janeiro 2021

 

CTRL + x + e

abre um editor de texto e ao salvar executa comando

 

yes 

é um loop muito util para aceitar

ex: 

$ yes | apt-get install nano

OBS: você pode alterar para outra palavra 

ex: 

$ yes no

$ yes teste

 

servidor de web rapido com python

ex: 

vá até o diretório aonde está a pagina html e rode o comando

$ python3 -m http.server

 

factor 

mostra o numero fatorial 

ex:

$ factor 22

quinta-feira, 21 de outubro de 2021

enviar email pelo terminal / curl

instale o curl

# apt-get install curl

 

crie um arquivo com o nome mail.txt

$ touch mail.txt

edite o arquivo 

$ vim mail.txt

From: "User Name" <username@gmail.com>
To: "John Smith" <john@example.com>
Subject: This is a test

Hi John,
I’m sending this mail with curl thru my gmail account.
Bye!

autorize o google a utilizar o curl

site 1: https://www.google.com/settings/security/lesssecureapps

site 2: https://accounts.google.com/DisplayUnlockCaptcha

configure a linha de comando abaixo conforme seu email

$ curl --ssl-reqd \
  --url 'smtps://smtp.gmail.com:465' \
  --user 'username@gmail.com:password' \
  --mail-from 'username@gmail.com' \
  --mail-rcpt 'john@example.com' \
  --upload-file 'mail.txt'

 

enviar email pelo terminal / mutt

 Instale o mutt

# apt-get install mutt

configure o muttrc em /home/USER/.config/mutt obs: caso o diretório não exista crie!

criar diretorio

$ mkdir /home/USER/.config/mutt

crie o arquivo muttrc no diretório 

$ touch /home/USER/.config/mutt/muttrc

configure o arquivo

$ vim /home/USER/.config/mutt/muttrc

# MailBox em $HOME.
set mbox_type=maildir  
set mbox="~/mail/inbox/"  
set spoolfile="~/mail/inbox/"  
set folder="~/mail/"  
set record="~/mail/sent/"  
set postponed="~/mail/postponed/"  

# Conta Gmail.
set from = "SEU_LOGIN@gmail.com"  
set realname = "SEU_NOME"  
set imap_user = "SEU_LOGIN@gmail.com"  
set imap_pass = "SUA_SENHA"  

# Editor padrão.  
set editor=nano  

# Pastas IMAP.
set folder = "imaps://imap.gmail.com:993"  
set spoolfile = "+INBOX"  
set postponed ="+[Gmail]/Drafts"  

# Pastas Locais.
set header_cache =~/.mutt/cache/headers  
set message_cachedir =~/.mutt/cache/bodies  
set certificate_file =~/.mutt/certificates  

# SMTP Config.
set smtp_url = "smtp://SEU_LOGIN@smtp.gmail.com:587/"  
set smtp_pass = "SUA_SENHA"  

# Special Keybindings.  
bind editor <space> noop  
macro index gi "<change-folder>=INBOX<enter>" "Go to inbox"  
macro index ga "<change-folder>=[Gmail]/All Mail<enter>" "Go to all mail"  
macro index gs "<change-folder>=[Gmail]/Sent Mail<enter>" "Go to Sent Mail"  
macro index gd "<change-folder>=[Gmail]/Drafts<enter>" "Go to drafts"  

# Mutt Session Security.
set move = no
set imap_keepalive = 900  

# Cores. 
color hdrdefault cyan default  
color attachment yellow default  
color header brightyellow default "From: "  
color header brightyellow default "Subject: "  
color header brightyellow default "Date: "  
color quoted green default  
color quoted1 cyan default  
color quoted2 green default  
color quoted3 cyan default  
color error   red       default
color message  white      default
color indicator white      red
color status  white      blue
color tree   red       default
color search  white      blue
color markers  red       default
color index   yellow default '~O'  
color index   yellow default '~N'  
color index   brightred    default '~F'
color index   blue default  '~D'

# Cores.

# emails.
color body  brightred black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+

# URLs.
color body  brightblue black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+

 

autorize o google a utilizar o mutt

site 1: https://www.google.com/settings/security/lesssecureapps

site 2: https://accounts.google.com/DisplayUnlockCaptcha

 

para enviar um email 

$ echo 'texto' | mutt -s 'assunto do e-mail' email@dominio.com

 

Enviar e-mail pelo terminal / ssmtp

 instale o ssmtp

# apt-get install ssmtp

configure o ssmtp.conf em /etc/ssmtp/ssmtp.conf

$ vim /etc/ssmtp/ssmtp.conf

adicione as linhas abaixo

root=USER@gmail.com
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=USER@gmail.com
AuthPass=PASSWORD
UseTLS=YES

autorize o google a utilizar o ssmtp

site 1: https://www.google.com/settings/security/lesssecureapps

site 2: https://accounts.google.com/DisplayUnlockCaptcha

para enviar um e-mail

$ ssmtp -v email@dominio.com < arquivo.txt

ou

$ echo "texto" | ssmtp -v email@dominio.com

To-Do List - lista de tarefas em shell script

adicione a linha abaixo no .bashrc

# To-Do List 

export TODO="${HOME}/Documentos/todo.txt"
 

tla() { [ $# -eq 0 ] && cat $TODO || echo "$(echo $* | md5sum | cut -c 1-5) →  $*" >> $TODO ;}
 

tlr() { [ $# -z ] 2>/dev/null && read -n1 -p "press ENTER to delete all tasks or CTRL+C to cancel" ; sed -i "/^$*/d" $TODO ;}

salve o arquivo e rode o comando 

$ source .bashrc

para adicionar uma tarefa 

$ tla 'texto'

para remover

$ tlr 'id'

 para remover todas as tarefas

$ tlr

outra opção com numeração das linhas utilizando o nl 

# To-Do List
export TODO="${HOME}/Documentos/todo.txt"

tla(){
if [ $# -eq 0 ]; then
echo "$(sed -i 's/^ *[0-9]\+.//g' $TODO ; nl -s " " $TODO )" > $TODO ; sed -i 's/^[ \t]*//' $TODO
cat $TODO
else
sed -i '/^[[:space:]]*$/d' $TODO ; echo "→  $*" >> $TODO ; echo "$(sed -i 's/^ *[0-9]\+.//g' $TODO ; nl -s " " $TODO )" > $TODO ; sed -i 's/^[ \t]*//' $TODO
fi
}

tlr() { [ $# -eq 0 ] 2>/dev/null && read -n1 -p "press ENTER to delete all tasks or CTRL+C to cancel" ; sed -i "/^$*/d" $TODO ;}

alternativa

caso não queira utilizar o md5sum ou nl para gerar o id utilize

tla() { [ $# -eq 0 ] && cat $TODO || echo "$(echo $* | cat /dev/urandom | tr -dc '0-9a-zA-Z' | fold -w 5 | head -n 1) →  $*" >> $TODO ;}

OBS: caso queira enviar a lista de afazeres para um e-mail fiz essa alternativa

adicione as linhas abaixo no .bashrc

export TODO_BACKUP="${HOME}/Documentos/todo_backup.txt"

tlb() { read -sp "Enter your Google App password : " password ; echo 'From: "username" <email@gmail.com>' >> "${TODO_BACKUP}" ; echo 'To: "user" <email@receiver.com>' >> "${TODO_BACKUP}" ; echo 'Subject: To-Do List' >> "${TODO_BACKUP}" ; echo >> "${TODO_BACKUP}" ; cat "${TODO}" >> "${TODO_BACKUP}" ; echo "" >> "${TODO_BACKUP}" ; curl --ssl-reqd --url 'smtps://smtp.gmail.com:465' --user 'username@gmail.com:'"${password}"'' --mail-from 'username@gmail.com' --mail-rcpt 'email@receiver.com' --upload-file ''"${TODO_BACKUP}"'' ; rm -r "${TODO_BACKUP}" ; unset password ;}

após configurar a função tlb com seu email de envio e recebimento, execute o comando

$ source .bashrc

OBS: lembrando que não é necessário configurar o password, justamente por isso coloquei o read para pegar ele e o unset para resetar a variável  

lembrando que é necessario autorizar o google a utilizar o curl 

site 1: https://www.google.com/settings/security/lesssecureapps

site 2: https://accounts.google.com/DisplayUnlockCaptcha

após configurar, para enviar a lista para email é simples

$ tlb 


OBS 2: 

o comando tlr deleta os arquivos se o usuario apertar qualquer tecla, para resolver isso use o tlr abaixo

tlr(){                                                                                                                         read -p "Yes to delete all tasks No to cancel: " answer                                                                        
case ${answer:0:1} in                                                                                                          
    y|Y )                                                                                                                      
        sed -i "/^$*/d" $TODO                                                                                                  
    ;;                                                                                                                         
    * )                                                                                                                        
        echo                                                                                                                   
    ;;                                                                                                                         
esac                                                                                                                           
}

quarta-feira, 6 de outubro de 2021

Ver preço do bitcoin via terminal

1

$ watch -tcn5  "curl -s https://api-pub.bitfinex.com/v2/ticker/tBTCUSD | awk -F',' '{print \"BTC/USD: $\" \$7}'"

 

2

$ curl -s http://api.coindesk.com/v1/bpi/currentprice.json | python -c "import json, sys; print(json.load(sys.stdin)['bpi']['USD']['rate'])" 

 

3

$ telnet ticker.bitcointicker.co 10080

 

4

$ echo "1 BTC = $(curl -s https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT | jq .price | xargs)"

 ou

$ echo "1 BTC = $(curl -s 'https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT' | cut -d: -f3 | sed 's/"//g; s/}//g') USD"


5

https://github.com/bichenkk/coinmon

 

6

Script

#!/bin/bash

# Prices are in USD, EUR & GBP (in real time)
# curl must be installed in terminal
clear
echo "Coindesk BTC: "
echo "USD-----------------EUR-----------------GBP"

while [ 1 ]
do
curl -s http://api.coindesk.com/v1/bpi/currentprice.json | python -c "import json, sys; bitcoin=json.load(sys.stdin); print bitcoin['bpi']['USD']['rate'] + '\t' + bitcoin['bpi']['EUR']['rate'] + '\t' + bitcoin['bpi']['GBP']['rate']"
printf "\033[A"
sleep 5
done

terça-feira, 5 de outubro de 2021

Converter html para pdf

link para Download do programa: https://wkhtmltopdf.org/

 

Instalação: 

# dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

 OBS: talvez você tenha que rodar

# apt-get -f install


Como usar:

 wkhtmltopdf www.linkdosite.com output.pdf


Alternativas

weasyprint

instalar:

# apt-get install weasyprint

 

Como usar:

weasyprint file.html output.pdf


Alternativa online

https://html2pdf.com/

sábado, 2 de outubro de 2021

Desabilitar pedido de senha ao abrir e fechar tampa notebook ubuntu 20.04

desabilitar

$ gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true'

 

habilitar

 $ gsettings set org.gnome.desktop.lockdown disable-lock-screen 'false'

terça-feira, 28 de setembro de 2021

youtube-dl ubuntu 20.04

# apt-get install python3-pip

# pip3 install youtube-dl 


OBS: caso o youtube-dl esteja instalado, desinstale

# apt-get purge youtube-dl 

e rode os comandos acima

sexta-feira, 10 de setembro de 2021

Virtualbox resolver problema kernel /sbin/vboxconfig

sudo apt update && sudo apt full-upgrade && sudo apt autoremove

sudo apt install build-essential linux-kernel-headers 

sudo /sbin/vboxconfig

quarta-feira, 8 de setembro de 2021

desabilitar placa de video hibrida

para ver a placa ativa: prime-select query
para selecionar intel: sudo prime-select intel
para selecionar nvidia: sudo prime-select nvidia

desabilitar efeitos no ubuntu 20.04

alternativa 1 modo texto terminal

gsettings set org.gnome.desktop.interface enable-animations false  

gsettings set org.gnome.shell.extensions.dash-to-dock animate-show-apps false

 

alternativa 2 modo grafico

sudo apt install gnome-tweaks

digite na pesquisa de "Mostrar aplicativos" Ajustes, desabilite animações

sábado, 4 de setembro de 2021

adicionar, remover e listar ppas

para adicionar ppa

# add-apt-repository ppa:PPA_NAME/PROGRAM
# apt-get update

listar

# grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/*

ou 

# apt policy 

ou

 grep -E '^deb\s' /etc/apt/sources.list /etc/apt/sources.list.d/*.list |\
  cut -f2- -d: |\
  cut -f2 -d' ' |\
  sed -re 's#http://ppa\.launchpad\.net/([^/]+)/([^/]+)(.*?)$#ppa:\1/\2#g' |\
  grep '^ppa:'

remover

add-apt-repository --remove ppa:PPA_NAME/PROGRAM

ou

# ls /etc/apt/sources.list.d

#sudo rm -r /etc/apt/sources.list.d/PPA_Name.list

sexta-feira, 3 de setembro de 2021

DNS mais rapido (mais privacidade)

destravar arquivo 

# chattr -i /etc/resolv.conf

abra o arquivo no vim

# vim /etc/resolv.conf

adicione no arquivo

nameserver 1.1.1.1

nameserver 1.1.1.1  

sai do arquivo

trave o arquivo

# chattr +i /etc/resolv.conf

 

OBS: pode ser adicionado também 

nameserver 1.1.1.1

nameserver 8.8.8.8

nameserver 8.8.4.4

quarta-feira, 9 de junho de 2021

superdelete para bashrc shred + srm

Adicione no arquivo .bashrc

grm() { read -p "delete $* file? - Press ENTER to continue..." && for ((i=3;i>0;i--)); do printf '%s %s\r' "$i" "countdown to delete $* file "; sleep 1; done; echo && shred -n 10 -z -v $* && srm -v $* ; }

para atualizar o bashrc

$ source .bashrc

para deletar arquivo

$ grm nomedoarquivo

baixar m3u8 ffmpeg / converter m3u8 para mp4 ffmpeg

$ ffmpeg -i http://.../link.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4

segunda-feira, 31 de maio de 2021

Aprendar melhor / fixar aprendizado

1 - Escolha o assunto que deseja estudar e se exponha ao máximo sobre esse assunto.
 

2 - Mantenha o foco nos pontos chaves e tenha calma.
 

3 - Escreva a mão em tópicos tudo que está sendo aprendido.
 

4 - Analise se compreendeu o sentido do que foi aprendido.
 

5 - Finja ensinar o que você aprendeu para alguém, falando em voz alta.
 

6 - identifique suas falhas na sua explicação e os pontos que teve dificuldade.
 

5 - corrija o conteúdo.
 

6 - repita todo o processo

7 - Foco e relaxamente após estudar durma por 20 minutos, isso ajuda a criar melhores Conexões neurais 

 

DICAS:
1 - A memoria é formada por engramas, repetições ajudam a melhorar
se você repetir algo 21 vezes fica mais fácil de se lembrar.

2 - mnemônicos ajudam a memorizar de forma mais eficaz, através da associação, rimas, situações cotidianas.

3 - pensar colorido ajuda a memorizar algo com mais facilidade.

4 - pensar em uma situação em movimento ajuda a memorizar/lembrar com mais facilidade.

5 - Divirta-se.

OBS: A melhor metodologia de aprendizado é a Direct Instruction (Instrução direta) e lembre-se Foco e Relaxamento

domingo, 30 de maio de 2021

contar arquivos em diretorio e subdiretorios

$ find caminho -type f | wc -l

ou

$ tree -a caminho

gerar um arquivo html com tree / arvore de diretorios html

$ tree caminho -H http://localhost -o out.html

ou

$ tree caminho -H "$SITE_ROOT" -P "*.htm|*.html|*.php|*.asp|*.aspx|*.jsp|sitemap.txt" -I "[a-z].html|[a-z]|index.htmlbak|css|gfx|js|res|misc|google*|PMWMT|podcast|business" -T 'Index de Arquivos' -L 6 -F -v --noreport --charset utf-8 > out.html

sexta-feira, 14 de maio de 2021

sexta-feira, 26 de fevereiro de 2021

Fluxograma e Mapa Mental

Mapa mental

Freeplane

para instalar

# apt-get install freeplane


Fluxograma

Dia

para instalar

# apt-get install dia


Alternativas para desenho livre

Inkscape

LibreOffice Draw

terça-feira, 9 de fevereiro de 2021

renomear todos os arquivos de um diretorio para minusculo

Entre no diretorio

$ cd nome_do_diretorio 

e execute

$ for i in $( ls | grep [A-Z] ); do mv -i $i `echo $i | tr 'A-Z' 'a-z'`; done

ou

$ rename 'y/A-Z/a-z/' *

ou passando o caminho do diretório

$ rename 'y/A-Z/a-z/' /home/usuario/nome_do_diretorio/*

terça-feira, 2 de fevereiro de 2021

segunda-feira, 1 de fevereiro de 2021

Gravar audio do microfone via terminal sox / arecord

sox

instale o sox

# apt-get install sox

para gravar audio

$ sox -d nome_arquivo-audio.wav

ou

$ sox -t alsa default nome_arquivo-audio.wav silence 1 0.1 5% 1 1.0 5%

ou

$ sox -t alsa default ./recording.wav 


arecord

$ arecord nome_arquivo-audio.wav

ou

$ arecord -vv -fdat stackoverflow.wav


BONUS

ffmpeg

$ ffmpeg -f alsa -ac 2 -i default -acodec libmp3lame -ab 320k ouput.mp3

sábado, 30 de janeiro de 2021

Automatizando com makefile

1 - crie um arquivo makefile

$ touch makefile


2 - dentro do arquivo makefile crie um target com o comando que deseja

ex:
baixar-mplayer:
    apt-get install mplayer

3 - para executar o arquivo makefile utilize o comando
make baixar-mplayer

OBS: caso você não queira que o comando apareça no terminal utilize @
ex:
deleta-diretorio:
    @rm -r /diretorio

OBS 2: você pode também informar que um comando depende do outro basta colocar a target do comando depois de :
ex:

imprimir-na-tela:
    echo "Atualizando"

atuailizar-sistema: imprimir-na-tela
    apt-get update
    apt-get upgrade

OBS 3: não utilize numero nas taget e sempre utilize espaço nos comandos

FINAL:

exemplo simples de um arquivo makefile utilizando comando echo para ver as opções digite $ make

.DEFAULT_GOAL := help

texto-a: ## show this help
    @echo "mensagem 1"

texto-b: ## exibe mensagem 2
    @echo "mensagem 2"

texto-c: texto-a ## exibe mensagem 3 e 1
    @echo "mensagem 3"

.PHONY: help
help: ## exibe help
    @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
 

links sobre: 

Sobre o Make: https://en.wikipedia.org/wiki/Makefile

Auto-documentação: https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html 

segunda-feira, 25 de janeiro de 2021

loop for trocando valores das variaveis

#!/bin/bash

X() {
var="x"
for i in 1 2 3 ; do
if [[ $var == x ]] ; then
local var="foo"
echo $var
elif [[ $var == "foo" ]] ; then
local var="bar"
echo $var
elif [[ $var == "bar" ]] ; then
local var="hoo"
echo "$var"
fi
done
}

X

OBS: no comando acima temos uma função com o loop for ao qual testa os valores das variáveis e as troca

segunda-feira, 18 de janeiro de 2021

i3 no Fedora 33

Instalar o xorg 


# dnf install xorg-x11-font-utils xorg-x11-xauth xorg-x11-xbitmaps xorg-x11-server-utils xorg-x11-apps xorg-x11-server-common dmenu xorg-x11-xinit xorg-x11-drv-intel xorg-x11-server-Xorg xorg-x11-fonts-misc xorg-x11-drv-libinput xorg-x11-xkb-utils xorg-x11-utils -y

 instalar o i3

 # dnf install i3lock i3status i3 -y


instalar lightdm

# dnf install lightdm lightdm-gkt -y


ativar lightdm

# systemctl enable lightdm.service

# systemctl set-default graphical.target

 

Reboot 

# shutdown -r now