Como é .bashrc/.zshrc/.fishrc?

Tópico pra compartilhar “microfunções” utilitárias que você tem no script de inicialização do seu shell.

Eu começo:

Remover arquivos de modo mais seguro
alias del='command rm -i'
alias rm='trash-put'
Atualização do sistema
upd () (
   systemd-inhibit --who='System Update' --what=sleep bash -c '
   yay -Syu --noconfirm >/tmp/upd-pacman 2>&1 & echo AUR + Pacman updates...
   flatpak update -y >/tmp/upd-fatpak 2>&1 & echo Flatpak updates...
   echo tail -f /tmp/upd-pacman ou tail -f /tmp/upd-fatpak → saída dos programas.
   wait
   '
   [ "$#" -gt 0  ] && { wait; "$@"; }
)
Maximizar a resolução do monitor
unxdr() (
    unset DISPINFO
    unset OUT
    unset MODE
    DISPINFO=$(xrandr | \
    awk '
    /connected/ && !/disconnected/ {
        print $1;
        getline;
        do {
            mode=$1;
            split($1,a,"x");
            dab=a[1];
            getline;
        } while (dab > 1920);
        print mode;
        exit 0
    }')
    OUT=$(head -n1 <<<$DISPINFO)
    MODE=$(tail -n1 <<<$DISPINFO)
    echo $OUT - agora $MODE
    xrandr --output $OUT --mode $MODE
)

(útil depois do Wine alterar ela)

Caçar Wineprefix
winepfx() {
    if [ -n "$1" ]; then
        WINEPREFIX=$(
        if [ -d "$1" ]; then
            cd "$1"
        else
            cd "$(dirname "$1")"
        fi
        until [ -d "`pwd`/drive_c" ]; do
            if [ "`pwd`" = / ]; then
                >&2 echo "Wineprefix não encontrado."
                echo $WINEPREFIX
                exit 1
            fi
            cd ..
        done
        echo "`pwd`"
        ) && export WINEPREFIX || return 1
    else
        export WINEPREFIX=`pwd`
    fi
    echo "Wineprefix definido como: $WINEPREFIX";
}

(vai subindo as pastas até achar um e define)

Game Mode de Pobre
cppwr() (
    setgov() {
        if sudo cpupower frequency-set -g $gov >/dev/null 2>&1; then
            echo Governor set to \"$gov\" on all CPUs.
            exit 0
        else
            echo "FAILED to set governor to \"$gov\"!"
            exit 1
        fi
    }
    GOV=$(LC_ALL=C cpupower frequency-info -p | grep -o '"[a-z]\+"' | tr -d '"')
    test "$1" = "-i" && { echo Governor is \"$GOV\"; return 0; }
    GOVS=$(LC_ALL=C cpupower frequency-info -g | grep governors | cut -d':' -f2)
    unset DUN
    for gov in $GOVS $GOVS; do
        test "$1" = "$gov" && setgov
        test -n "$DUN" && break
        test $gov = $GOV && DUN=1
    done
    test "$1" = "-s" && { echo Governor would be \"$gov\"; return 0; } || setgov
)

(maximiza a potência do processador)

4 Curtidas

Mantenho minhas funções, tanto as que funcionan no bash e no zsh, neste arquivo: dotfiles/.rc at master · mountaineerbr/dotfiles · GitHub
Tem uma função de cep() lá que ficou fera… se bem que ela está extensa e poderia até virar um script mas se os correios mudarem o site ja era

Esse seu Game Mode de Pobre merece atenção especial… bem massa!

Tem essa outra função que ficou engraçada… eh um pouco longa pq usa o bash bc ou as matemáticas de ponto flutuante do zshell. Para calcular o quanto vc precisaria ganhar caso perdesse X por cento. Tipo se perder 20 por cento, tem que recuperar 25 por cento de ganho, se perder 50% tem que ganhar 100% só pra voltar ao nível de grana inicial…

#loss/gain reciprocal or symetrical ratio
#usage: loss 10
loss()
{
	local u q l r f g
	u=$1

	#check for invalid notations
	if [[ "$1" = *[a-zA-Z]* ]] ||
		[[ "$1" = -* ]] ||
		[[ ! "${1/[,.]*}" =~ ^.?.?$ ]]
	then
		echo error >&2
		return 1 
	fi

	#use zshell maths or bash bc?
	if [[ -n "$ZSH_VERSION" ]]
	then
		float u rr
		q=$(( u / 100 ))
		l=$(( 1 - ( q ) ))
		r=$(( 1 * l ))
		f=$(( ( 1 / r ) - 1 ))
		g=$(( f * 100 ))
	else
		q=$( bc <<< "scale=16; $u / 100" )
		l=$( bc <<< "scale=16; 1 - ( $q )" )
		r=$( bc <<< "scale=16; 1 * $l" )
		f=$( bc <<< "scale=16; ( 1 / $r ) - 1" )
		g=$( bc <<< "scale=16; $f * 100" )
	fi
	
	printf '%.4f %%\n' $g
}
2 Curtidas

Duas dicas pra evitar problemas, sempre chaveie as vars

ex:

$1 -> ${1}

$gov -> ${gov}

E backticks `comando` foram depreciados, no lugar deles, use $():

`pwd` -> $(pwd)
1 Curtida

O tópico do @swatquest gerou bem mais respostas e discussões mais produtivas.