• 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

terminal zeilenumbruch problem

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
ich entdeckte soeben, dass mein terminal, falls es befehle+prompt hat, die länger sind als die darstellbare zeile im fenster, diese zeile nicht mehr umbricht, sondern in der aktuellen zeile von links weiterschreibt und damit den prompt überschreibt. bei ganz langen befehlen sogar mehrmals.
woran liegt das? wie kann ich das abschalten?
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Das ist nicht normal. Allerdings kann man einen Zeilenumbruch machen nach einem \, das ihn maskiert.
 
Zuletzt bearbeitet:

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Hast Du Dich mit dem Terminaltyp oder dem Prompt ($PS1) gespielt?
Gruß Pepi
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Auch ein guter Ansatz. Mit fummeln an meiner .inputrc hab ich mir auch ein Problem gezüchtet welches ich bisweilen nicht mehr losgeworden bin, weil ich ehrlich gesagt nicht mehr weis wo ich suchen soll...

Lästig wenn so ein Druck auf die Backspace Taste immer ein ^H sendet (was ja eigentlich auch ein Backspace sein sollte) aber dann bei Passworteingaben nicht korrekt funktioniert, weil das ^H im Text stehen bleibt anstatt das letzte Zeichen zu löschen. Ich bin allerdings davon überzeugt, daß ich mir das selbst eingebrockt habe. :)
Gruß Pepi
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Pepi, das kann auch unter Terminal-WindowSettings-Keyboard eingestellt sein.
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Das ist schon klar, aber selbst wenn ich meine .inputrc deaktivere und unabhängig davon ob ich "Delete Key sends Backspace" angehakt habe oder nicht, ändert sich das Verhalten nicht. Das ist es was mich etwas verwirrt. Bei meinen Shell Initialisierungsfiles hab ich dahingehend nichts drinnen, das hab ich mehrfach überprüft und auch so Dinge wie einen Environment Folder benutze ich nicht. Naja, ich werd das schon noch rausbekommen und bis dahin übe ich brav meine Passwörter beim ersten Mal korrekt einzugeben. :)
Gruß Pepi
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
ja, ich habe mit meinem prompt gespielt, um da farben reinzubringen. er seiht so aus:
PS1="\e[32;40m\u@\h \e[34;40m\w $\e[37;40m "
bzw für root: PS1="\e[31;40m\h \e[34;40m\W $\e[37;40m "

mein terminaltyp ist xterm-color und die standard-shell die ausgeführt wird ist /usr/bin/login

an der .inputrc habe ich nichts rumgefummelt, lediglich an der /etc/bashrc eingefügt, dass bitte ~/.bashrc gesourced werden soll, und diese datei natürlich auch angelegt.
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Ich glaube nicht, daß /usr/bin/login eine Shell ist.

An der /etc/bashrc würde ich auch nicht arbeiten, sondern mit dem Pendant, was ich in meinem Home anlege.
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Bezüglich Umlauten habe ich dies benutzt:

LC_ALL=en_US.UTF-8
export LC_ALL

LANG=en_US.UTF-8
export LANG

# Show umlaut characters correctly and use color for file types.
alias ls='ls -vwG'
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
In der .inputrc hab ich:
set meta-flag on
set convert-meta off
set output-meta on
set completion-ignore-case on
set show-all-if-ambiguous on
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Ich schließe mich MacMarks Zweifel an /usr/bin/login als Shell an. :) Aber über login wird die eingestellte default Shell des Benutzers gestartet. (Standardeinstellung des Terminal.app)

Ebenso möchte ich unterstreichen, daß man auf alle Fälle die Finger von jeglichen Shell Initialisierungsskripten in /etc lassen sollte. Apple aktualisiert diese Skript immer wieder mal und nimmt keine Rücksicht auf vom Benutzer gemachte Änderungen. Im blödesten Fall bootet ein system nicht mehr wenn man hier beispielsweis einen simplen (aber effektiven) Tippfehler macht.

Für den User sollte man die ~/.bash_profile nehmen, so man bash als Shell verwendet. Es ist übrigens nicht notwendig ~/.bashrc in der /etc/bashrc als Source aufzunehmen, da diese automatisch ausgeführt wird, sofern keines der moderneren bash Initialisierungsskripte vorhanden ist. (.bash_profile, .profile)

Meine ~./inputrc sieht momentan so aus:

"\e[3~": delete-char
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off


MacMark, ich nehme an, daß set completion-ignore-case on so Eingaben wie cd /u[TAB] auch auf /Users vervollständigt und es somit schwieriger wird zwischen Vervollständdigungen von /usr und /Users zu unterscheiden. (Jedenfalls nach /us wirds noch nicht gehen. :))
Gruß Pepi
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
okay, dann nehm ich die source aus der /etc/bashrc mal raus. und das /usr/bin/login steht halt in den terminalpreferences drin, dass das eigtl die bash ist ist mir klar ;)
ne ~/.inputrc hab ich gar nicht. ich leg mal eine an und füll sie mit pepis inhalt.

-EDIT- soweit so gut. der fehler tritt aber immer noch auf. und ich sehe, dass er die neue alte zeile schon beginnt bevor der cursor am fensterrand ist. faszinierend.
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Laß evt. meine Angabe zu delete-char in Deiner .inputrc weg, ich bin nicht sicher ob sie nicht Probleme mit der Backspace Taste verursacht. Nur so eine kleine Warnung, weil ich gerade damit ein paar seltsame Erscheinungen habe.

Hab' mir Dein Prompt nochmal genau angesehen und jetzt ist klar warum das passiert. Du teilst der Shell nicht mit was druckende, und was Steuerzeichen sind. Damit berechnet die Shell die Anzahl der Zeichen falsch. Ändere Deine Prompts wie folgt:

Code:
case `id -u` in
     0) PS1="\[\033[31;40m\]\h \[\033[34;40m\]\W $\[\033[37;40m\] ";; # root
     *) PS1="\[\033[32;40m\]\u@\h \[\033[34;40m\w\] $\[\033[37;40m\] ";; # everybody else
esac

Ich hoffe, daß ich mich nicht gröblichst vertippt habe. Meinen kurzen Tests zufolge müßte es aber passen. Das case statement ist optional, ermöglicht es aber mittels jedem User auf das idente Statement zuzugreifen, falls man die Prompt Einstellungen beispielsweis in einem eigenen Shell Skript erledigt welches von mehreren Users aufgerufen wird.
Gruß Pepi
 
Zuletzt bearbeitet:

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
jo, danke, jetzt gehts. einziges manko ist, dass der root-prompt nur nach "sudo su" farbig ist, bei "sudo su -" bleibt er weiß, aber das werde ich noch beheben.
vielen dank, jetzt kann ich endlich ordentlich weitermachen
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Erklär' mir bitte was der Sinn von sudo su - sein soll? Ein simples sudo -s wird ebenfalls genügen um ein root Prompt zu bekommen und man muß den root User garnicht aktiviert haben.

Du kannst mein case Statement mit dem PS1 setzen auch in eine ~/.bashrc eintragen. Bzw. all das Prompt Setting in ein eigenes Shell Skript verfrachten und es aus der ~/.bashrc und der ~/.bash_profile aus sourcen.

Ich bin allerdings momentan auch gerade daran mich mit den verschiedenen Möglichkeiten und Varianten der Shell Initialisierung auseinanderzusetzen. Für Linux und bash gibt es halbwegs brauchbare Doku von der Mac OS X doch teilweise deutlich abweicht. Trotzdem wäre es mein Ziel endlich mein Terminal.app und mein X11.app sowie interaktive und non-interaktive Shells und natürlich login und non-login Shells endlich korrekt zu initialisieren und in den interaktiven endlich alles gleich eingestellt zu haben. Mein bisheriges Wissen darüber ist bisweilen leider zu begrenzt um das zu erreichen und sicher zu sein, daß es korrekt passiert.
Sollte ich hier den heiligen Gral finden werde ich gerne berichten.
Gruß Pepi
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Ein wenig, danke.
Der Punkt ist, die entsprechenden Infos dort zu setzen wo sie sinnvoll sind. Beispielsweise ist es unsinnig $PS1 und aliase in non-interactive Shells zu setzen. Dinge wie $PATH wären allerdings durchaus sinnvoll. Ausgaben wie fortune oder uptime die ich ein einer interaktiven Shell sehr gerne habe möchte ich in non-interactive Shells auf keinen Fall haben, da sie Dinge wie scp/rsync brechen.

Auch mit login und non-login Shells (und das dann noch per SSH...) in den Griff zu bekommen ist, zumindest für mich, nicht wirklich einfach. Trotzallem verwende ich meine Terminals so viel, daß meine Ansprüche dahingehen deutlich gestiegen sind und diesen Ansprüchen möchte ich gerecht werden.

Ich glaube, daß ich für dieses Thema einen eigenen Thread starten sollte.(TaTonka, sorry fürs Threadjacking.) Auch mit dem Thema Prompt könnte man ein ganzes Buch füllen...
Gruß Pepi
 

Red Bull

Gast
Terminal Save & Quit

Hallo zusammen!

Hoffe ich bin hier richtig, bin mir da nicht sicher und wollte auch nicht extra nen neuen Thread aufmachen.
Folgendes Problem:
Ich hab mir ein Programm runtergeladen, welches die Songs in iTunes automatisch bewertet ("Rate Now"). In der Read me stand, dass man im Terminal einen bestimmten "Befehl" eingeben sollte und dann "Shift-ZZ" zum speichern und schließen drücken sollte, damit der eingegebene Befehl wirksam wird.
Nur schließt sich mein Terminal nach drücken von Shift (Umschalttaste) und Z nicht.

Was mache ich falsch?

Hoffe auf Hilfe, o_O
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Du hast nur einen falschen Namen der Applikation genannt. Das Programm heißt nämlich "AutoRate" und nicht "Rate Now". Was soll beim Drücken von "Shift-zz" passieren? Was passiert in jeder andere Applikation? Es erscheinen zwei Großbuchstaben "Z". Also "ZZ". nicht gerade Top, aber auch nicht anders zu erwarten.

Zu Deiner Ehrenrettung muß ich gestehen, daß dies im Readme (Großes Plus dafür, daß Du es tatsächlich gelesen hast) tatsächlich dort so drinnen. Dies ist allerdings vollkommener Schwachsinn. Alleine die unglaublich schlechte Dokumentation und dieser wirklich bösartige Schnitzer wie man einen crontab einträgt sind eigentlich Grund genug dafür diese Software nicht zu verwenden oder nur manuell zu starten.
(Der Eintrag soll die lediglich um 3 Uhr morgens automatisieren, was alleine schon fragwürdig ist.)

Vergiß also die Terminal Sachen, und starte das Programm von Hand wenn Du unbedingt Deine Sterne neu ordnen willst, ähm geordnet bekommen willst.
Gruß Pepi