Freitag, 20. August 2010

Schneller Verzeichniswechsel mit autojump

Zur schnellen Navgation zwischen Verzeichnissen empfiehlt sich ein kleines Bash-Skript (Autojump), das eine Datenbank der benutzten Verzeichnisse anlegt, so dass man durch Angabe von Teilstrings schnell in das entsprechende Verzeichnis wechseln kann.

Dazu legt autojump eine kleine Datenbank der genutzten Verzeichnisse und der Häufigkeit der Nutzung an. Wenn genügend Daten gesammelt sind kann man dann mit der Eingabe von markanten Teilen des Verzeichnisnamens in das Verzeichnis wechseln. Es unterstützt auch Tab-Vervollständigung.
j mp3
springt z.B. ins Verzeichnis "/home/gwb/my mp3 collection". Praktisch: Wenn nur "j" ausgeführt wird, wechselt autojump in das meistverwendete Verzeichnis, bzw. das zweite, falls man gerade in Ersterem ist.

Mit jumpstat kann ein Status der gesammelten Daten abgerufen werden.

Die Installation ist sehr einfach und schnell erledigt:

  1. Herunterladen des aktuellen Installationspaketes bei Github.com:
    http://github.com/joelthelion/autojump/downloads
  2. Auspacken des Pakets.
    Auf dem Mac reicht einfach ein Doppelklick und das tar.gz Archiv wird in ein entsprechendes Unterverzeichnis entpackt.
  3. Das Installationsskript starten.
    Dazu muss die Datei ausführbar sein.
    chmod +x install.sh
    Anschliessend kann das Skript mit
    ./install.sh
    gestartet werden.
  4. Abschluss. Die Installation läuft automatisch und stellt bei Bedarf noch die Frage, ob das Skript in die .basrc installiert werden soll. Wenn Ihr die Option verwendet ist noch eine Korrektur erforderlich, damit es nicht zu einer Endlosschleife beim Aufruf der .bashrc kommt. Dafür müssen die letzten Zeilen des Skripts gelöscht oder wie folgt auskommentiert werden:
    # Get the aliases and functions

    # if [ -f ~/.bashrc ]; then
    # . ~/.bashrc
    # fi
Damit ist autojump schon startklar.

Quellen und weiterführende Links:


Danke für den Pick an Hessi in Bitsundso Folge Bits und so #211 (Vampirfrei)

Freitag, 13. August 2010

SnowLeo Kommandozeile einrichten

Eigentlich ist das Folgende nichts aussergewöhnliches und unter Linux Alltag, aber da ich auf meinem Mac die Kommandozeile selten nutze, will ich hier mal festhalten, was ich recherchiert habe um diese etwas komfortabler zu gestalten, wenn man das OS X Standardtool Terminal einsetzen will. Ziel ist es den Prompt zu ändern und ein paar Alias-Einträge einzurichten.

Die Konfigurationsdatei automatisch einlesen
Das Hauptproblem ist die Einbindung der Konfigurationsdatei. Und leider ist das wohl auch von der Version von Mac OS abhängig. Meine Beschreibung bezieht sich auf Snow Leopard und ich gehe davon aus, dass die Bash-Shell verwendet wird. Wenn an der Standardkonfiguration nichts geändert wurde, dann ist diese bereits gesetzt.

Jedenfalls musste ich einiges recherchieren und ausprobieren bis die Konfiguration zuverlässig geladen wird, wenn

  • Terminal gestartet wird, 
  • ein zusätzliches Fenster geöffnet wird oder 
  • ein neues Tab aktiviert wird. 

Ärgerlicherweise verhält sich Terminal dabei nicht einheitlich und zieht unterschiedliche Konfig-Dateien je nach Situation an. Der relativ einfache Fix ist, das man zwei identische Konfigurationsfiles einsetzt, bzw. eine Master-Konfig-Datei und einen symbolischen Link darauf für die andere Datei. Es mag auch andere Lösungen geben, aber diese funktioniert.

In der Terminalkonfiguration muss als Shell die Standardeinstellung beibehalten werden - also /bin/Local/login.

Im Homeverzeichnis des gewünschten Users muss die Datei .bashrc und .bash_profile angelegt werden. Bei mir ist .bashrc der Master für den Symbolischen Link.

Anlegen des Master-Konfigfiles: nano .bashrc oder vi .bashrc
Anlegen des Symbolischen Links: ln -si .bashrc .bash_profile

Ich gehe im Folgenden davon aus, dass die Konfiguration wie oben beschrieben verwendet wird.

Prompt anpassen
In der .bashrc muss die Environmentvariable PS1 mit den Optionen für den Prompt gesetzt werden. Die meist genutzten Optionen lauten wie folgt:

  • \t - Aktuelle Zeit
  • \d - Aktuelles Datum
  • \W - Aktueller Verzeichnisname ohne Pfad (z.B. Desktop/)
  • \w - Aktueller Pfad und Verzeichnisname (z.B. /Users/Admin/Desktop)
  • \h - Hostname
  • \u - Username
  • \# - Kommando Nummer
  • \n - Zeilenumbruch

Folgender Eintrag z.B.
export PS1="\t - \w\n\u@\h: "

Liefert folgenden Prompt:
14:40 - /user/Home/username
Username@meinMac:

Alias eintragen
Einen Alias trägt man dann ebenfalls einfach in die .bashrc ein, wobei hier keine Unterschiede zur Linux Bash vorhanden sind. Ein paar Beispiele:

Alias ..="cd .."
Alias ll="ls -la -G"
Alias l=ls

Quellen und weiterführende Links: