sábado, 26 de fevereiro de 2022

Cara ou Coroa - Flip a coin / bash game

versão 1

#!/bin/bash 

FLIP=$(($(($RANDOM%10))%2))
if [ ${FLIP} -eq 1 ];then
    echo "HEAD"
else
    echo "TAIL"
fi

ou

versão 2

#! /bin/bash

HEAD=0
TAIL=0

read -ep "Enter a Number: " numb

for x in $(seq 1 ${numb})
do

FLIP=$(($(($RANDOM%10))%2))

if [ ${FLIP} -eq 1 ]
then
echo "TAIL"
TAIL=$((${TAIL}+1))
else
echo "HEAD"
HEAD=$((${HEAD}+1))
fi
done

if [ ${HEAD} -gt ${TAIL} ]
then
echo "=> HEAD WIN"
elif [ ${TAIL} -gt ${HEAD} ]
then
echo "=> TAIL WIN"
else
echo "=> TIE"
fi

echo "Total number of HEADS: ${HEAD}"
echo "Total number of TAILS: ${TAIL}"


quarta-feira, 16 de fevereiro de 2022

montar automaticamente pendrive - void linux

Instale udevil

# xbps-install -Su udevil 

adicione no .xinitrc

devmon &

 

OBS: os arquivos de pendrive serão montados no /media 


Dica: para montar o hd externo corretamente instale o pacote ntfs-3g

opendoas / doas configuração no void linux

Instale o opendoas

# xbps-install -Su opendoas

crie o arquivo de configuração

# touch /etc/doas.conf

adicione a linha abaixo no arquivo doas.conf

permit :wheel

 para carregar o arquivo de configuração

$ doas -C /etc/doas.conf


Dica: shutdown sem password

permit nopass nomedousuário cmd reboot
permit nopass nomedousuário cmd shutdown

quando quiser rebootar o sistema 

basta digitar 

$ doas shutdown -r now


OBS: caso não queria digitar doas shutdown adicione um alias no .bashrc

alias shutdown="doas shutdown"

remover sudo - void linux

crie um arquivo no /etc/xbps.d/

# touch /etc/xbps.d/ignore-90.conf

adicione a linha abaixo no arquivo ignore-90.conf

ignorepkg=sudo

remova o pacote

# xbps-remove sudo

terça-feira, 15 de fevereiro de 2022

subir serviços no void linux

para subir serviços no void linux basta instalar o serviço que deseja e criar um link simbolico no /var/service 

ex

$ ln -sf /etc/sv/fcron /var/service

simples, repare que o diretorio /etc/sv/ é normalmente aonde estão os arquivos que podem ser administrados

 

para derrubar um serviço

# sv down nomedoserviço

para subir um serviço

# sv up nomedoserviço

para saber o status do serviço

# sv status nomedoserviço

caso queira que um serviço não rode quando inicia o sistema

adicione um arquivo com o nome down dentro do diretorio 

ex:

$ touch /var/service/fcron/down

mudar resolução do monitor via terminal

para informações sobre a resolução

$ xrandr -q 

mudar resolução para 1024x768

$ xrandr --output iddomonitor --mode 1024x768

Exemplo abaixo com rate e scale

$ xrandr --output eDP-1-1 --mode 1920x1080 --rate 60.20 --scale 0.7

OBS: caso queira ver apenas o iddomonitor

$ xrandr -q | grep " connected " | cut -d' ' -f1 | head -n 1

comandos basicos xbps - void

 Instalar pacote

# xbps-install -Suv nomedopacote

Procurar pacotes

# xbps-query -Rs nomedopacote

Listar pacotes instalados

# xbps-query -l

Listar pacotes que instalou manual

# xbps-query -m

Remove apenas o pacote e deixa as dependencias

# xbps-remove nomedopacote

Remover pacotes e depedencias

# xbps-remove -R nomedopacote

Remove pacotes/dependencias orfãs e limpa o cache

# xbps-remove -Oo

Reconfigurar pacote

# xbps-reconfigure -f nomedopacote

Procurar por erros de instalação

# xbps-pkgdb -av

segunda-feira, 14 de fevereiro de 2022

inicializar sistema com script ou comando - void

para inicializar o sistema com algum script ou comando

adicione no arquivo rc.local em /etc/rc.local

gerar frequencias (hz) via terminal

 gera uma frequencia de 440 hz

$ speaker-test -c2 -t sine -f 440

ou

ffmpeg -f lavfi -i "sine=frequency=440:duration=5" -ac 2 out.wav

crontab no void linux

Instale o fcron

$ sudo xbps-install -Su fcron

crie um link simbolico

$ sudo ln -sf /etc/sv/fcron /var/service

$ ps -ef | grep fcron


para editar o crontab 

crontab -e 

OBS: adicione no .bashrc o comando abaixo para configurar o editor do crontab

export EDITOR=vim

quinta-feira, 10 de fevereiro de 2022

montar pendrive / hd externo automaticamente no void linux

a solução mais pratica foi instalar o pacote udevil depois colocar no .xinitrc a linha abaixo

devmon &

qualquer coisa plugada na entrada usb vai abrir no /media

 

OBS:  caso você tenha um hd externo não esqueça instalar o pacote ntfs-3g

# xbps-install -Su ntfs-3g

 

sobre a compilação do i3blocks e i3blocks-contrib

ao instalar o i3blocks em algumas outras distribuições linux pode haver algumas dificuldades nos modulos do i3blocks por causa do i3blocks-contrib

https://github.com/vivien/i3blocks-contrib

 para instalar o i3blocks-contrib 

baixe o pacote no link acima

descompacte 

$ unzip i3blocks-contrib

renomei o pacote como i3blocks

$ mv i3blocks-contrib i3blocks

mova para o diretorio .config

$ mv i3blocks /home/usuario/.config/

entre no diretorio aonde foi movido o i3blocks

$ cd /home/usuario/.config/i3blocks

copie o arquivo config.exemple

$ cp config.exemple config

aqui que vai a grande sacada há duas variaveis, procure no arquivo config a linha command=$SCRIPT_DIR/$BLOCK_NAME

altere a variavel $SCRIPT_DIR pelo diretorio

ex

command=~/.config/i3blocks/$BLOCK_NAME/$BLOCK_NAME 

repare que a linha alterada acima possui 2 vezes a variavel $BLOCK_NAME é necessario fazer isso para que entre nos diretorios dos modulos e rode os executaveis 

Agora na config do i3 procure pela linha status_command e adicione a linha abaixo

status_command    i3blocks -c ~/.config/i3blocks/config

dessa forma sera carregada a configuração do i3blocks que está em ~/.config/i3blocks/config

 

quarta-feira, 9 de fevereiro de 2022

Site para pesquisar sobre comandos e pacotes relacionados

https://command-not-found.com

Essential Packages Void - minimalist

network-manager
network-manager-applet
cgmanager
dosfstools
xf86-video-intel
xorg
xinit
xinput
polkit
bash-completion
wireless-tools
xdg-user-dirs
alsa-utils
alsa-lib
alsa-plugins
brightnessctl
i3
i3blocks
i3-gaps
alacritty
rxvt-unicode
kitty
rofi
feh
scrot
neofetch
mpv
ffmpeg
links
links2
zip
unzip
arandr
xbacklight
vim
pandoc
leafpad
firefox
Irssi
pavucontrol
pulseaudio
pcmanfm / xfe
virtualbox
make
gcc
locate
htop
wget
curl
sysstat
acpi
udevil
volumeicon  
dejavu-fonts-ttf
git
xarchiver
mupdf
fcron
ntfs-3g
net-tools
socklog-void
psmisc
inxi
xz-5.2.5_2
hwinfo
transmission
lxappearance
bc
opendoas
youtube-dl
detox
unrar
evtest
evtest-qt-0.2.0_1
xpadneo
xf86-input-joystick
xf86-input-joystick-devel
kodi-addon-peripheral-joystick
betterlockscreen
cava
cli-visualizer
tty-clock
lolcat-c-1.2_1
glances
sox

segunda-feira, 7 de fevereiro de 2022

mensagens randomicas

caso queira gerar mensagens randômicas por algum motivo

utilize os comandos abaixo

 

$ shuf -n 1 mensagens.txt

ou

$ sort -R mensagens.txt | head -n1

ou

python -c 'import random, sys; print("".join(random.sample(sys.stdin.readlines(), 1)).rstrip("\n"))' < mensagens.txt