• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Probleme mit Terminal config file

fsking

Idared
Registriert
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:
terminalc.jpg


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
 

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
Code:
$ cat /etc/bashrc 
# System-wide .bashrc file for interactive bash(1) shells.
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
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
 

fsking

Idared
Registriert
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?
 
Zuletzt bearbeitet:

Baum

Alkmene
Registriert
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
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
[…]wieso habe ich keine tab vervollständigung[…]
[…]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?
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
 
  • Like
Reaktionen: MacMark