15 Punkte von winterjung 2025-04-19 | 6 Kommentare | Auf WhatsApp teilen

Ich lege die folgenden Shell-Skripte oder Snippets meist in ~/.zshrc ab oder nutze sie als Alias. Mich würde interessieren, welche Snippets andere so verwenden.

Den folgenden Inhalt habe ich auch im persönlichen Blog: Häufig verwendete Shell-Snippets festgehalten, aber ihr müsst dort nicht extra nachsehen — ich habe den gesamten Inhalt hier eingefügt.


1. man-Seiten als PDF ansehen

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

Unter macOS verwendet man es zum Beispiel wie $ pman curl.

2. In git remote gelöschte Branches entfernen

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

Alternativ scheint auch git gone - ein benutzerdefinierter Befehl zum Löschen aller auf dem Remote gelöschten Branches nutzbar zu sein.

3. Umgebungsvariablen aus .env anwenden

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

Wahrscheinlich ist es besser, direnv zu verwenden, aber vielleicht aus Gewohnheit nutze ich das obige Snippet öfter.

4. Wenn man lokal kurzzeitig MySQL braucht

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  

Danach verbinde ich mich über localhost:3306. Wenn das Beibehalten des Volumes nicht nötig ist, lasse ich die Option -v weg.

6 Kommentare

 
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"  

Das ist ein Skript, mit dem man in Situationen, in denen auf dem MacBook das Administratorpasswort eingegeben werden muss (z. B. sudo), stattdessen mit Touch ID fortfahren kann.

Man muss es eigentlich nur einmal einrichten, aber falls man sich fragt, warum es dafür ein Alias gibt: Wenn man gelegentlich die macOS-Version aktualisiert, wird das manchmal wieder zurückgesetzt.

 
tequila 2025-04-21

Ich wäre nicht auf die Idee gekommen, das vorübergehende Starten von MySQL als Alias zu verwenden, aber das ist interessant.
Ich habe in meiner .zshrc solche kleinen Einstellungen hinterlegt und nutze sie.

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

Wenn man cpcat [Dateiname] ausführt, landet der Inhalt der betreffenden Datei in der Zwischenablage.

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

So mache ich das, haha

 
winterjung 2025-04-21

Oh, es war jedes Mal lästig, pbcopy zu benutzen, aber das ist wirklich gut! Der Name ist also Copycat, haha.

 
ndrgrd 2025-04-19

Zeigt ungenutzte Ports im 3000er-Bereich an.

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

Ach, das ist ja ein super Tipp ... danke.