1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Probleme mit Terminal config file

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von fsking, 19.03.09.

  1. fsking

    fsking Idared

    Dabei seit:
    13.08.08
    Beiträge:
    28
    Hi,

    ich habe folgendes Problem, da ich recht häufig und gerne das Terminal einsetze und ich es von Linux Zeiten gewohnt bin diese so anzupassen wie ich es mag, hab ich mich jetzt mal an die Konfiguration gemacht.

    zuersteinmal meine .bash_profile(.bashrc):
    Code:
    if [[ ${EUID} == 0 ]]; then
        PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00\] '
    else
        PS1='\[\033[0;32m\]\u@\h\[\033[0;34m\] \w \$\[\033[0;37m\] '
    fi
    
    alias su="sudo bash"
    alias rm="rm -i"
    wenn ich nun ein terminal starte werden mir die angegebenen farben angeziegt, wenn ich in diesem terminal aber per
    Code:
    bash
    eine neue instanz der bash starte sind die einstellungen verloren. ich hab dann mal einfach noch eine .bashrc angelegt und dann war das problem behoben.
    wenn ich nun mit
    Code:
    su
    wie in dem alias befehl eine admin shell starte sind die einstellungen auch verloren, außer ich hab die .bashrc datei!!

    ich hätte aber gerne nur eine datei in der ich systemweit (bzw. halt für meinen user) die einstellungen reinschreiben kann.

    außerdem habe ich keine tabvervollständigung, wie ich es immer gewohnt war, wenn ich auf tab drücke kommt nur ein kurzer dumpfer ton, aber es passiert nichts.

    das nächste problem ist, wenn ich mit dieser konfiguration etwas eintippe und in einer root shell bin, spring der cursor plötzlich wieder mitten in die erste zeile und schreibt dort weiter.
    hoffe man kann das auf dem bild erkennen:
    [​IMG]

    ich hab dieesen post auch auf http://www.winfuture-forum.de/index.php?showtopic=160656 gepostet,allerdings vor 2 Tagen, aber bis jetzt leider noch keine antwort erhalten! hoffe das ist ok!

    vielen dank für die Hilfe!

    lg,
    Fabi
     
  2. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    /etc/bashrc? ;)
     
  3. fsking

    fsking Idared

    Dabei seit:
    13.08.08
    Beiträge:
    28
    also brauche ich die .bashrc und .bash_profile in meinem home verzeichnis nicht?!?

    gilt die config auch dann, wenn ich mit sudo eine neue bash instanz starte?

    lg,
    Fabi
     
  4. zeno

    zeno Lane's Prinz Albert

    Dabei seit:
    05.11.05
    Beiträge:
    4.898
    Code:
    $ cat /etc/bashrc 
    # System-wide .bashrc file for interactive bash(1) shells.
    
     
  5. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Finger weg von der Systemweiten Shell Initialisierung! Wenn Du dort was vergeigst, kannst Du Dir nicht mehr einfach so ein Terminal mit einer Shell aufmachen. Außerdem ist die Gefahr, daß Du vom System verwendete Skripte damit erfolgreich tötest.

    Du mußt zwischen eine echten Login Shell und einer Subshell unterscheiden. Login Shells initialisieren über ~/.bash_profile Subshells über ~/.bashrc.

    Einfache, wenn auch nicht ideale, Abhilfe wäre die eine Datei aus der anderen zu sourcen. Problem dabei ist, daß man sich damit sehr leicht eine Shell züchtet die "nicht clean" ist. Damit funktionieren dann so Dinge wie scp, sftp oder auch rsync und andere Dinge nicht mehr remote.

    Statt su sollte man unter Mac OS X übrignes auf jeden Fall sudo -s verwenden. sudo bash ist nicht wirklich empfehlenswert.

    Die Sache mit dem eigenen Root Prompt kann man übrigens auch etwas eleganter lösen.

    Code:
    [FONT="Courier New"]
    USER_PS1="\[\033[0;033m\][\u@\h:\w]\j|\!:$\[\033[0;0m\] "
    ROOT_PS1="\[\033[037m\033[041m[\u@\h:\w]\j|\!:\$\[\033[0;0m\] "
    
    case $(id -u) in
            0) PS1=$ROOT_PS1;; # root, prompt in white on red, normal text (green on black im my Terminal)
            *) PS1=$USER_PS1;; # any other user: yellow prompt, to make it easier to find in a lot of text, normal input
    esac
    [/FONT]
    Gruß Pepi
     
  6. fsking

    fsking Idared

    Dabei seit:
    13.08.08
    Beiträge:
    28
    ok, erstmal vielen dank!

    aber wieso habe ich keine tab vervollständigung? muss ich das in die $shellrc schreiben oder müsste das in den Einstellungen von Terminal.app gehen?

    lg,
    Fabi

    EDIT: hab die datei unter /etc/ schon angepasst, würde jetzt gerne das Original wiederherstellen, hab ein TimeMachine Backup, blos, wie komm ich das jetzt ran? wie kann ich da hin navigieren?
     
    #6 fsking, 19.03.09
    Zuletzt bearbeitet: 19.03.09
  7. Baum

    Baum Alkmene

    Dabei seit:
    14.03.08
    Beiträge:
    33
    Hallo zusammen!

    Da es hier gerade um Promts anderer Benutzer geht, passt meine Anfrage glaub ich ganz gut zum Thema.
    Ich arbeite in einem Account ohne Admin rechte und hab entsprechend einen extra Admin Account. Ab und an arbeite ich im Terminal dann mit Admin Rechten (zum Beispiel für fink) und benutze deshalb su -l meinAdmin .
    Einen rot eingefärbten Prompt für "meinAdmin" hab ich in der Datei /Users/meinAdmin/.profile definiert. Der Benutzerwechsel klappt, jedoch bekomme ich immer die Meldung
    launch_msg(): Socket is not connected
    Es ist jetzt nicht wirklich störend, aber ich bin natürlich interessiert was es mit dieser Meldung auf sich hat. Über erhellende Anworten würde ich mich freuen.

    Grüße
    Der Baum
     
  8. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Hast Du denn eine Bash Completion installiert? Sonst werden nur Pfade mittels [TAB] bzw. [TAB][TAB] komplettiert.

    Wie bereits erwähnt, laß die Finger von Sachen in /etc! Die Datei dort solltest Du theoretisch so wie jede andere Datei über TM wiederherstellen können. Ich würde mich jedoch niemals darauf verlassen. Wenn Du schon in /etc rumfummeln mußt, dann lege doch einfach bevor Du was veränderst eine Kopie der Datei an.
    Gruß Pepi
     
    MacMark gefällt das.

Diese Seite empfehlen