15 points par winterjung 2025-04-19 | 6 commentaires | Partager sur WhatsApp

J’ai l’habitude de mettre les scripts shell ou snippets ci-dessous dans ~/.zshrc ou de les utiliser via des alias, et je me demandais quels snippets les autres utilisent, donc je publie ceci pour demander.

J’avais aussi noté le contenu ci-dessous sur mon blog personnel : snippets shell que j’utilise souvent, mais il n’est pas nécessaire d’aller le consulter, car j’ai collé ici l’intégralité du contenu.


1. Afficher une page man en PDF

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

Sur macOS, cela s’utilise par exemple comme $ pman curl.

2. Supprimer les branches effacées du remote Git

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

Ou alors, il semble aussi possible d’utiliser git gone - une commande personnalisée pour supprimer toutes les branches supprimées sur le remote.

3. Appliquer les variables d’environnement présentes dans .env

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

Utiliser direnv est probablement préférable, mais par habitude, j’utilise plus souvent ce snippet.

4. Quand j’ai temporairement besoin de mysql en local

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  

Ensuite, je m’y connecte via localhost:3306 ; si la persistance du volume n’est pas nécessaire, je supprime généralement l’option -v.

6 commentaires

 
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"  

C’est un script qui permet d’utiliser Touch ID dans les situations où il faut saisir le mot de passe administrateur sur un MacBook (par ex. sudo).

Il suffit de l’enregistrer une seule fois, mais si vous vous demandez pourquoi en faire un alias… c’est parce que, de temps en temps, une mise à niveau de la version de macOS réinitialise ce réglage.

 
tequila 2025-04-21

Je n’avais jamais pensé à utiliser un alias pour lancer temporairement mysql, c’est assez amusant.
Moi, j’ajoute ce genre de petits réglages dans mon .zshrc et je les utilise.

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

Quand on exécute cpcat [nom_du_fichier], le contenu du fichier indiqué est copié dans le presse-papiers.

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

Moi, j’utilise ça haha

 
winterjung 2025-04-21

Oh, c’était pénible de devoir faire pbcopy à chaque fois, donc c’est sympa ! Le nom, c’est Copycat, haha.

 
ndrgrd 2025-04-19

Affiche les ports inutilisés dans la plage des 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

Ah non, ça c’est une astuce en or... merci.