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

terminal zeilenumbruch problem

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von TaTonka, 05.05.07.

  1. TaTonka

    TaTonka Neuer Berner Rosenapfel

    Dabei seit:
    19.03.06
    Beiträge:
    1.961
    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?
     
  2. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Das ist nicht normal. Allerdings kann man einen Zeilenumbruch machen nach einem \, das ihn maskiert.
     
    #2 MacMark, 05.05.07
    Zuletzt bearbeitet: 05.05.07
  3. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Hast Du Dich mit dem Terminaltyp oder dem Prompt ($PS1) gespielt?
    Gruß Pepi
     
  4. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.902
    Das Zauberwort heisst: Umlaute.
    Klingelt da bei dir was? Haben wir da was gedreht? ".inputrc" oder so?
     
  5. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    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
     
  6. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Pepi, das kann auch unter Terminal-WindowSettings-Keyboard eingestellt sein.
     
  7. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    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
     
  8. TaTonka

    TaTonka Neuer Berner Rosenapfel

    Dabei seit:
    19.03.06
    Beiträge:
    1.961
    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.
     
  9. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    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.
     
  10. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    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'
     
  11. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    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
     
  12. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    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
     
  13. TaTonka

    TaTonka Neuer Berner Rosenapfel

    Dabei seit:
    19.03.06
    Beiträge:
    1.961
    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.
     
  14. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    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
     
    #14 pepi, 07.05.07
    Zuletzt bearbeitet: 07.05.07
  15. TaTonka

    TaTonka Neuer Berner Rosenapfel

    Dabei seit:
    19.03.06
    Beiträge:
    1.961
    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
     
  16. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    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
     
  17. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Hilft dies?
    http://forums.macosxhints.com/showpost.php?p=213844&postcount=7
     
  18. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    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
     
  19. Red Bull

    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
     
  20. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    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
     

Diese Seite empfehlen