15 puntos por winterjung 2025-04-19 | 6 comentarios | Compartir por WhatsApp

Suelo poner los siguientes scripts o snippets de shell en ~/.zshrc o usarlos con alias, y me dio curiosidad saber qué snippets usan otras personas, así que lo comparto por aquí.

También había escrito lo siguiente en mi blog personal: snippets de shell que uso seguido, pero pegué todo el contenido aquí para que no tengan que entrar ahí a verlo.


1. Ver páginas de man en PDF

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

En macOS, se usa así: $ pman curl.

2. Borrar ramas eliminadas del remoto de git

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

O también parece posible usar git gone - un comando personalizado para borrar todas las ramas eliminadas del remoto.

3. Aplicar variables de entorno que están en .env

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

Probablemente sea mejor usar direnv, pero no sé si por costumbre, termino usando más el snippet de arriba.

4. Cuando necesito mysql local por un rato

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  

Después me conecto a localhost:3306 para usarlo, y si no necesito conservar el volumen, suelo quitar la opción -v.

6 comentarios

 
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"  

Es un script que te permite usar Touch ID en situaciones donde normalmente tendrías que ingresar la contraseña de administrador en una MacBook (por ejemplo, con sudo).

Solo hay que configurarlo una vez, pero si te preguntas por qué existe como alias... es porque a veces, cuando actualizas la versión de macOS, esto se reinicia.

 
tequila 2025-04-21

No se me había ocurrido usar un alias para levantar mysql temporalmente, pero está interesante.
Yo tengo estas pequeñas configuraciones en mi .zshrc y las uso bastante.

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

Si ejecutas cpcat [nombre_de_archivo], el contenido de ese archivo se copia al portapapeles.

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

Yo lo hago así jajaja

 
winterjung 2025-04-21

Oh, me daba flojera tener que usar pbcopy cada vez, ¡está bueno! Así que se llama Copycat jajaja

 
ndrgrd 2025-04-19

Muestra los puertos no utilizados dentro del rango 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

Vaya, esto sí es un buen tip... Gracias.