Sammlung von Tricks rund um die Bash


Hier sammel ich all meine kleinen Tricks rund um die Bash. Diese Seite wird von Zeit zu Zeit aktualisiert.

Tastenkürzel

Tastenkürzel Erklärung
Alt + . Durch Argument von alten Befehlen zirkeln.
Praktisch um z.B. bei einem mv alte Pfadvariablen wieder aufzurufen.
Alt + # Aktuelle Eingabe auskommentieren. Dadurch bleibt sie in der History erhalten und kann durch die Pfeiltasten wieder aufgerufen werden.

Code Beispiele

SSL Connect

Ein SSL Connect mit Anzeige von SSL Informationen. Argument 1 ist der Host und Argument 2 kann der Port sein.

testcert () {
    h=$(echo $1|cut -d":" -f1 )
    p=$(echo $1 |cut -d":" -f2 )
    if [ $p == $h ]; then
    p="443"
    fi
    echo "Cert for Host $h Port $p"
    echo ""
    echo "logout" | openssl s_client -CApath /etc/ssl/certs/ -connect $h:$p | openssl x509 -text|more
}

Komprimierung und Dekomprimierung

Schnelles entpacken von Dateien mit der extrct Funktion. Argument 1 ist dann die Datei. Außerdem noch mehrere Funktionen um verschieden Arxchive zu erzeugen.

extract () {
   if [ -f $1 ] ; then
       case $1 in
       *.tar.bz2)   tar xvjf $1    ;;
       *.tar.gz)    tar xvzf $1    ;;
       *.bz2)       bunzip2 $1     ;;
       *.rar)       unrar x $1       ;;
       *.gz)        gunzip $1      ;;
       *.tar)       tar xvf $1     ;;
       *.tbz2)      tar xvjf $1    ;;
       *.tgz)       tar xvzf $1    ;;
       *.zip)       unzip $1       ;;
       *.Z)         uncompress $1  ;;
       *.7z)        7z x $1        ;;
       *)           echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
}
mktar() { tar cvf  "${1%%/}.tar"     "${1%%/}/"; }
mktgz() { tar cvzf "${1%%/}.tar.gz"  "${1%%/}/"; }
mktbz() { tar cvjf "${1%%/}.tar.bz2" "${1%%/}/"; }
mkzip() {  zip -r "${1}.zip" "${1}"; }

Template

Dies hier ist mein standard Template mit dem ich jedes Script erzeuge:

#!/bin/bash
#
# author: shell@pcspinnt.de
#
for i in "$@"; do
    case $i in
        -d)
        set -x # Print commands and their arguments as they are executed.
        ;;
        -x)
        set -e # Exit immediately if a command exits with a non-zero status.
        ;;
        *)
            # unknown option
        ;;
    esac
done