• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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