bash | Shell einrichten

Gerade bei OSX kommt man ja meist drum­herum mit der Kom­man­do­zeile zu arbei­ten — dabei kann man in der Shell eini­ges schnel­ler bzw. ein­fa­cher machen und um gewisse Ein­stel­lun­gen von OSX (wie zum Bei­spiel hier und hier beschrie­ben) zu ändern kommt man nicht umher das Ter­mi­nal zu öffnen.

Vor­ge­plän­kel

Wie man im Fin­der oder in jedem ande­ren Pro­gramm zuerst seine Benut­zer­ober­flä­che ein­rich­tet, so macht man das auch in der Kom­man­do­zeile. Nur wird das hier nicht über eine Pre­fe­rence File gemacht son­dern über (in OSX) ver­steckte Sys­temda­teien. Da OSX diese Schrei­ben bzw. Erstel­len die­ser Dateien zum Teil für den nor­ma­len Benut­zer ver­bo­ten hat, muss man daran den­ken, das man sich root–Rechte holt. Das geht ein­mal mit dem Account root (Zur Akti­vie­rung des root–Accounts ver­weise ich auf Apple), zu dem ich mit dem Shell-Befehl

su -

oder

sudo -s

wechsle. Oder aber zukünf­tig jedem Befehl ein

sudo

vor­an­setze.

Für die Indi­vi­dua­li­sie­rung der Shell sind ver­schie­dene Dateien und Ver­zeich­nisse wich­tig. Zuerst wird zwi­schen den Benut­zer­ein­stel­lun­gen und den Ein­stel­lun­gen für den gan­zen Rech­ner unter­schie­den. Die Benut­zer­ein­stel­lun­gen lie­gen im User­ver­zeich­nis, also /Users/BENUTZERNAME (Aus­nahme hier ist der Benut­zer root, der sein Home­ver­zeich­nis in /root fin­det) und die Sys­tem­ein­stel­lun­gen im Ver­zeich­nis /etc. Wie die Namen schon sagen, sind die ers­te­ren nur für den ange­mel­de­ten Benut­zer gül­tig, die Sys­tem­ein­stel­lun­gen für jeden Benutzer.

Indi­vi­du­elle Anpas­sun­gen kann man ein­mal für das Tas­ta­tur­map­ping machen — hier sind die Dateien /etc/inputrc bzw. ~/.inputrc ver­ant­wort­lich und für  das Aus­se­hen bzw. das defi­nie­ren von Umge­bungs­va­ria­blen — dafür sind die Dateien /etc/profile und /etc/bash.bashrc bzw. ~/.bash_profile, ~/.profile, ~/.bashrc und ~/bash_login. Eine gute Zusam­men­fas­sung der Rei­hen­folge der Abar­bei­tung der Dateien fin­det man hier. Der Ein­fach­heit hal­ber benutze ich in die­sem Arti­kel die Datei pro­file.

Far­ben für den tris­ten Alltag

Mit Far­ben kann man sich die Shell über­sicht­li­cher machen. Dazu hat fidel schon mal was geschrie­ben. Defi­niert wer­den diese in der Profil-Datei. Man kann den Prompt bear­bei­ten (Farbe und Aus­se­hen).  Stan­dard ist fol­gen­des Aussehen

In mei­nem Fall brau­che ich die Angabe des Rechner-Namens nicht und ein net­tes Gelb kann auch nicht schaden

export PS1="\[\e[33;1;40m\][\u] \w>\[\e[0m\] "

Das Glei­che kann man auch für den Prompt defi­nie­ren, wenn man mit sudo sich tem­po­räre root–Rechte gibt. In mei­nem Fall möchte ich gelbe Schrift auf einem rotem Untergrund.

export SUDO_PS1="\[\e[33;1;41m\][\u] \w>\[\e[0m\] "

Das sieht jetzt alles recht kryp­tisch aus, was daran liegt, das die Pro­gram­mie­rung des Prompts in Escape-Sequenzen erfol­gen muss. Wenn man etwas tie­fer in die Mate­rie ein­stei­gen will, sei­nen ganz per­sön­li­chen Prompt bauen möchte oder schlicht ein­fach ver­ste­hen will, was hier gemacht wird, dem sein pimp my shell ans Herz gelegt. Es gibt dann auch noch Infor­ma­tio­nen von IBM und Ring of saturn.

Ein oft benutz­ter Befehl in der Kom­man­do­zeile lau­tet ls zum Anzei­gen eine Ver­zeich­nis­in­halts. Um die ver­schie­de­nen Inhalte wie Ver­zeich­nisse, Dateien, Sym­links und Co. aus­ein­an­der­zu­hal­ten ist eine far­bige Dar­stel­lung sehr nütz­lich. Dies kann man ent­wer­der durch das Auf­ru­fen des Befehls ls mit dem Schal­ter –G errei­chen, oder aber, wenn man die Far­ben sel­ber defi­nie­ren will, mit fol­gen­den Umgebungsvariablen

export CLICOLOR=1
export LSCOLORS=dxfxcxbxegedabagacad

Die Bedeu­tung der jewei­li­gen Optio­nen kann man sich hier anschauen. Für ganz Faule gibt es einen Gene­ra­tor.

Um dem Befehl grep etwas Farbe zu geben, muss fol­gende Umge­bungs­va­ria­ble gesetzt werden

export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'

Ein­fa­cher Zugriff auf die History

Ich hatte hier schon mal was über die Ein­stel­lun­gen der bash history geschrie­ben. Die Ein­stel­lun­gen dort wer­den in der Profil-Datei gemacht. Wie in den Kom­men­ta­ren hin­zu­ge­fügt benutze ich fol­gen­des Tas­ta­tur­map­ping in /etc/inputrc

"e[5~": history-search-backward
"e[6~": history-search-forward

Damit kann ich mit den Tas­ten Bild rauf/Page up bzw. Bild runter/Page down durch die History scrol­len. Das funk­tio­niert sogar basie­rend auf dem, was schon auf der Kom­man­do­zeile steht. Gebe ich zum Bei­spiel less ein, dann wer­den mir mit den genann­ten Tas­ten nur die History-Einträge ange­zeigt, die mit die­ser Buch­sta­ben­folge anfangen.

Damit die history gleich geschrie­ben wird und nicht erst beim Been­den der shell ses­sion kann in der Profil-Datei mit

# Append commands to the history every time a prompt is shown,
# instead of after closing the session.
PROMPT_COMMAND='history -a'

erzwun­gen wer­den, dass mit jedem Erzeu­gen eines neuen Prompts die history geschrie­ben wird.

Leich­te­res Admin-Leben mit Aliasen

Stan­dard­mä­ßig wird dem nor­ma­len Benut­zer beim Auf­ru­fen von ls die Ansicht auf dot­files ver­wehrt. Mit dem Eintrag

alias "ls=ls -a"

wird das kor­ri­giert. Ansons­ten kann man hier Pro­gramm­auf­ru­fen feste Para­me­ter mit­ge­ben und auch lan­gen Befehls­zei­len Kür­zel vergeben.

Zusätz­li­ches

Möchte man zusätz­li­che Pfad als Stan­dard­pfad ein­zu­rich­ten, damit man beim Auf­ru­fen nicht den gesam­ten Pfad ange­ben muss, dann gibt man die­sen wie folgt an:

export PATH=$PATH:/usr/local/src/bin

Wenn man Ände­run­gen an den Profil-Dateien macht, dann wer­den diese Ände­run­gen erst gül­tig, wenn die Profil-Datei erneut ein­ge­le­sen wird. Das erreicht man ent­we­der mit dem Öffnen einer neuen Terminal-Session oder aber mit dem Befehl

source ~/.profile

Fra­gen über Fragen

Wie sieht Eure Indi­vi­dua­li­sie­rung der Kom­mandzeile aus? Wel­che Mög­lich­kei­ten habe ich ver­ges­sen zu erklä­ren? Kann­tet Ihr schon alle Mög­lich­kei­ten?

Ähnli­che Arti­kel zu die­sem Thema:

  1. bash | History aufwerten
  2. mac | OSX Lion und die aktu­ellste BASH-Shell
  3. bash | schnel­les Backup anlegen
  4. mac | OSX und die Shell
  5. bash | Back­ups mit tar

  1. Noch keine Kommentare vorhanden.

  1. 14. Mrz. 2010
:) :( ;) :mrgreen: :lol: :roll: :idea: :oops: more »