Mac OS X: Autovervollständigung in der Bash

Um das automatische Vervollständigen von Befehlen in der Bash für Programme wie Git zu ermöglichen, empfiehlt sich die Installation Brew-Pakets bash-completion.

$ brew install bash-completion

Nach der Installation müssen die folgenden Zeilen in die .bash_profile-Datei eingetragen werden:

if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
fi

Um das Feature nutzen zu können, muss der Bash-Client (iTerm, Terminal) entweder geschlossen und neu gestartet oder aber die Bash vom Terminal aus neu gestartet werden.

Mac OS X: Die Bash vom Terminal aus neu starten

Um ohne System-Neustart/ Ab- und anschließender Anmeldung Änderungen an der Shell-Konfiguration vorzunehmen, kann das Shell-BuiltIn source genutzt werden.

Was bewirkt source?

source führt die als Argument angehängte Datei in der selben Bash-Umgebung aus. In Verwendung mit den Konfigurationsdateien .bash_profile oder .bashrc erfolgt also ein Neu-Einlesen der Bash-Konfiguration im gleichen Prozess.

Verwendung

Je nach Nutzerkonfiguration kann entweder die .bash_profile oder .bashrc als Argument übergeben werden.

$ source ~/.bash_profile
$ source ~/.bashrc

Links

bash manpage
How do I reload .bashrc without logging out and back in?

Ordnerübergreifendes Suchen und Ersetzen in der Bash

Wer kennt es nicht: In einer größeren Anzahl von Dateien in verschiedenen Unterordnern soll ein bestimmtes Wort/ eine Wortgruppe ausgetauscht werden. Prinzipiell eine eher unschöne Situation, die leicht in Arbeit ausarten kann- und das kann ja nun wirklich niemand wollen. Doch halt, Rettung ist in Sicht: In der Bash geht das ordnerübergreifende Suchen und Ersetzen kinderleicht und superschnell. Alles, was dafür gebraucht wird sind die Befehle find und sed sowie der Parameter xargs, der hier auch schon einmal vorgestellt wurde.

Der konkrete Fall

In meinem Fall handelte es sich um eine Textänderung: Der String „Senderwahl“ sollte in sehr, sehr vielen .hbs-Dateien zu „Senderauswahl“ geändert werden.

Den Suchstring finden und ersetzen

find macht genau das, was der Name vermuten lässt: Es findet Dateien und Ordner in einem Verzeichnis. sed ist ein skriptgesteuerter Texteditor zum Bearbeiten von Datenströmen.

$ find . -name "*.hbs" -print | xargs sed -i 's/Senderwahl/Senderauswahl/g'

Im ersten Teil geben wir sämtliche .hbs-Dateien im gerade aktiven Ordner und allen Unterordnern als Liste aus (-p-Parameter). Das Ergebnis dieser Ausgabe wird mittels xargs an den Streameditor sed übergeben, der in den gefundenen Dateien (-i-Parameter) alle Vorkommen von „Senderwahl“ gegen „Senderauswahl“ austauscht.

Links

find manpage
sed manpage

Syntaxhighlighting in vim ändern

Normalerweise erkennt vim den Dateityp einer Datei sehr zuverlässig und wendet das richtige Syntaxhighlighting an. Dieses normalerweise schließt allerdings nicht unbedingt das Lösen von merge-Konflikten mit ein, so dass für diese Fälle der Dateityp manuell gesetzt beziehungsweise das richtige Syntaxhighlighting aktiviert werden muss. Dazu gibt es den Befehl :set syntax=[Syntaxkürzel].
Um also beispielsweise das Syntaxhighlighting einer Datei auf Php zu stellen, muss

:set syntax=php

eingegeben werden.

Links

Forcing Syntax Coloring for files with odd extensions

Danke, Jan!

Zielverzeichnis beim Entpacken von Archiven ändern

Kleine Sachen, die das Leben leichter machen: Um beim Entpacken das Zielverzeichnis eines Archivs zu ändern, muss der Parameter -d> mitgegeben werden:

unzip archiv.zip -d [Verzeichnis]

Beispiel

paul@athene:/var/www/paulchrablass$ unzip ghost-0.3.2.zip -d ghost

Damit wird das Archiv ghost-0.3.2.zip im Verzeichnis /var/www/paulchrablass/ in den neuen Ordner ghost entpackt.

Links

unzip manpage

Mit pwgen Passwörter erzeugen

… Ich sehne den Tag herbei, an dem ich mir die ganzen Parameter merken kann.

pwgen -c -n -y -s -B 12 3

Parameter

-c = Fügt mindestens einen Großbuchstaben in das Passwort ein
-n = Fügt mindestens eine Nummer in das Passwort ein
-y = Fügt mindestens ein Symbol in das Passwort ein
-s = Das Passwort wird komplett zufällig generiert
-B = Vermeidet das Einfügen von ähnlichen Buchstaben wie 0 und O
12 = Anzahl der Zeichen, die das Passwort haben soll
3 = Anzahl der Passwörter, die generiert werden