bash | Shell einrichten

Gerade bei OSX kommt man ja meist drumherum mit der Kommandozeile zu arbeiten – dabei kann man in der Shell einiges schneller bzw. einfacher machen und um gewisse Einstellungen von OSX (wie zum Beispiel hier und hier beschrieben) zu ändern kommt man nicht umher das Terminal zu öffnen.

Vorgeplänkel

Wie man im Finder oder in jedem anderen Programm zuerst seine Benutzeroberfläche einrichtet, so macht man das auch in der Kommandozeile. Nur wird das hier nicht über eine Preference File gemacht sondern über (in OSX) versteckte Systemdateien. Da OSX diese Schreiben bzw. Erstellen dieser Dateien zum Teil für den normalen Benutzer verboten hat, muss man daran denken, das man sich root-Rechte holt. Das geht einmal mit dem Account root (Zur Aktivierung des root-Accounts verweise ich auf Apple), zu dem ich mit dem Shell-Befehl

oder

wechsle. Oder aber zukünftig jedem Befehl ein

voransetze.

Für die Individualisierung der Shell sind verschiedene Dateien und Verzeichnisse wichtig. Zuerst wird zwischen den Benutzereinstellungen und den Einstellungen für den ganzen Rechner unterschieden. Die Benutzereinstellungen liegen im Userverzeichnis, also /Users/BENUTZERNAME (Ausnahme hier ist der Benutzer root, der sein Homeverzeichnis in /root findet) und die Systemeinstellungen im Verzeichnis /etc. Wie die Namen schon sagen, sind die ersteren nur für den angemeldeten Benutzer gültig, die Systemeinstellungen für jeden Benutzer.

Individuelle Anpassungen kann man einmal für das Tastaturmapping machen – hier sind die Dateien /etc/inputrc bzw. ~/.inputrc verantwortlich und für  das Aussehen bzw. das definieren von Umgebungsvariablen – dafür sind die Dateien /etc/profile und /etc/bash.bashrc bzw. ~/.bash_profile, ~/.profile, ~/.bashrc und ~/bash_login. Eine gute Zusammenfassung der Reihenfolge der Abarbeitung der Dateien findet man hier. Der Einfachheit halber benutze ich in diesem Artikel die Datei profile.

Farben für den tristen Alltag

Mit Farben kann man sich die Shell übersichtlicher machen. Dazu hat fidel schon mal was geschrieben. Definiert werden diese in der Profil-Datei. Man kann den Prompt bearbeiten (Farbe und Aussehen).  Standard ist folgendes Aussehen

In meinem Fall brauche ich die Angabe des Rechner-Namens nicht und ein nettes Gelb kann auch nicht schaden

Das Gleiche kann man auch für den Prompt definieren, wenn man mit sudo sich temporäre root-Rechte gibt. In meinem Fall möchte ich gelbe Schrift auf einem rotem Untergrund.

Das sieht jetzt alles recht kryptisch aus, was daran liegt, das die Programmierung des Prompts in Escape-Sequenzen erfolgen muss. Wenn man etwas tiefer in die Materie einsteigen will, seinen ganz persönlichen Prompt bauen möchte oder schlicht einfach verstehen will, was hier gemacht wird, dem sein pimp my shell ans Herz gelegt. Es gibt dann auch noch Informationen von IBM und Ring of saturn.

Ein oft benutzter Befehl in der Kommandozeile lautet ls zum Anzeigen eine Verzeichnisinhalts. Um die verschiedenen Inhalte wie Verzeichnisse, Dateien, Symlinks und Co. auseinanderzuhalten ist eine farbige Darstellung sehr nützlich. Dies kann man entwerder durch das Aufrufen des Befehls ls mit dem Schalter -G erreichen, oder aber, wenn man die Farben selber definieren will, mit folgenden Umgebungsvariablen

Die Bedeutung der jeweiligen Optionen kann man sich hier anschauen. Für ganz Faule gibt es einen Generator.

Um dem Befehl grep etwas Farbe zu geben, muss folgende Umgebungsvariable gesetzt werden

Einfacher Zugriff auf die History

Ich hatte hier schon mal was über die Einstellungen der bash history geschrieben. Die Einstellungen dort werden in der Profil-Datei gemacht. Wie in den Kommentaren hinzugefügt benutze ich folgendes Tastaturmapping in /etc/inputrc

Damit kann ich mit den Tasten Bild rauf/Page up bzw. Bild runter/Page down durch die History scrollen. Das funktioniert sogar basierend auf dem, was schon auf der Kommandozeile steht. Gebe ich zum Beispiel less ein, dann werden mir mit den genannten Tasten nur die History-Einträge angezeigt, die mit dieser Buchstabenfolge anfangen.

Damit die history gleich geschrieben wird und nicht erst beim Beenden der shell session kann in der Profil-Datei mit

erzwungen werden, dass mit jedem Erzeugen eines neuen Prompts die history geschrieben wird.

Leichteres Admin-Leben mit Aliasen

Standardmäßig wird dem normalen Benutzer beim Aufrufen von ls die Ansicht auf dotfiles verwehrt. Mit dem Eintrag

wird das korrigiert. Ansonsten kann man hier Programmaufrufen feste Parameter mitgeben und auch langen Befehlszeilen Kürzel vergeben.

Zusätzliches

Möchte man zusätzliche Pfad als Standardpfad einzurichten, damit man beim Aufrufen nicht den gesamten Pfad angeben muss, dann gibt man diesen wie folgt an:

Wenn man Änderungen an den Profil-Dateien macht, dann werden diese Änderungen erst gültig, wenn die Profil-Datei erneut eingelesen wird. Das erreicht man entweder mit dem Öffnen einer neuen Terminal-Session oder aber mit dem Befehl

Fragen über Fragen

Wie sieht Eure Individualisierung der Kommandzeile aus? Welche Möglichkeiten habe ich vergessen zu erklären? Kanntet Ihr schon alle Möglichkeiten?

12. März 2010 von controlc.de
Kategorien: debian, mac, Technik | Schlagwörter: , , , , , , , , , , , | 1 Kommentar

1 Kommentar

  1. Pingback: bash | History aufwerten | controlc.de

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert


− 1 = acht