15 pontos por winterjung 2025-04-19 | 6 comentários | Compartilhar no WhatsApp

Eu costumo colocar os scripts ou snippets de shell abaixo no ~/.zshrc ou criar aliases para usá-los, e fiquei curioso para saber quais snippets outras pessoas usam, então resolvi postar isto.

O conteúdo abaixo também está no blog pessoal: snippets de shell que uso com frequência, mas não é necessário entrar lá para ver, porque colei tudo aqui.


1. Ver páginas man em PDF

pman() {  
  mandoc -Tpdf "$(man -w $@)" | open -f -a Preview  
}  

No macOS, uso assim: $ pman curl.

2. Remover branches apagadas do git remote

git fetch -p && for branch in $(git branch -vv | grep ': gone]' | awk '{print $1}'); do git branch -D $branch; done  

Ou então também parece possível usar git gone - comando customizado para apagar todas as branches removidas do remoto.

3. Aplicar variáveis de ambiente de um .env

export $(grep -v '^#' .env | xargs)  

Provavelmente é melhor usar direnv, mas por hábito acabo usando mais o snippet acima.

4. Quando preciso de um MySQL local por um tempo

docker run --rm -d --name mysql \  
  -e MYSQL_ROOT_PASSWORD=password \  
  -e MYSQL_ROOT_HOST=% \  
  -p 3306:3306 \  
  -v $(pwd)/mysql_data:/var/lib/mysql \  
  mysql:8 \  
  --character-set-server=utf8mb4 \  
  --explicit_defaults_for_timestamp=true  

Depois, conecto em localhost:3306 para usar, e se não precisar manter o volume, costumo remover a opção -v.

6 comentários

 
roxie 2025-06-23
alias enable-sudo-with-touchid="cat /etc/pam.d/sudo && echo 'BEFORE===================\n===================AFTER' && sudo gsed -i '1i auth sufficient pam_tid.so' /etc/pam.d/sudo && cat /etc/pam.d/sudo"  

É um script que permite usar o Touch ID em situações no MacBook em que você normalmente teria que digitar a senha de administrador (por exemplo, sudo).

Só precisa configurar uma vez, mas se você se pergunta por que isso é um alias... é porque, às vezes, quando atualizo a versão do macOS, isso acaba sendo redefinido.

 
tequila 2025-04-21

Eu nunca tinha pensado em usar como alias algo para subir o mysql temporariamente, mas achei interessante.
Eu costumo deixar e usar pequenos ajustes assim no meu .zshrc.

cpcat() {  
  cat "$@" | pbcopy  
}  

Ao executar cpcat [nome_do_arquivo], o conteúdo de um arquivo específico vai para a área de transferência.

 
roxie 2025-06-23
alias cb="pbcopy"  

Eu faço assim kkk

 
winterjung 2025-04-21

Ah, eu ficava com preguiça de usar pbcopy toda vez, então isso é ótimo! O nome é Copycat mesmo kkk

 
ndrgrd 2025-04-19

Mostra as portas não utilizadas na faixa 3000.

function idleports()  
{  
    cols=10  
    count=0  
    output=""  
  
    listening_ports=($(sudo ss -tlpn | grep -o ':30[0-9]*' | sed 's/://g' | sort | uniq))  
  
    for port in {3000..3099}; do  
        if [[ " ${listening_ports[@]} " =~ " $port " ]]; then  
            output+="\033[38;5;235m$port\033[0m  "  
        else  
            output+="$port  "  
        fi  
  
        ((count++))  
        if ((count % cols == 0)); then  
            output+='\n'  
        fi  
    done  
  
    if ((count % cols != 0)); then  
        output+='\n'  
    fi  
  
    echo -e "$output"  
}  
 
kohs100 2025-04-21

Nossa, isso é uma dica e tanto... obrigado.