| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Kommandowiederholung in der ksh (1559 mal gelesen)
|
talpa Mitglied Program Manager
 
 Beiträge: 360 Registriert: 19.08.2002
|
erstellt am: 24. Aug. 2004 13:32 <-- editieren / zitieren --> Unities abgeben:         
Hallo allerseits! Ich arbeite an meiner Sun Blade 1000 mit der Kornshell und möchte die Kommandowiederholung nutzen. Beim mir funktioniert aber weder der vi- noch der emacs-Modus: Wenn ich Esc+k für ein Redo im vi-Modus drücken möchte, erscheinen schon nach dem Drücken der Esc-Taste und noch vor dem Drücken der k-Taste die folgenden Zeichen: ^[ Also dachte ich mir, ich versuche es mit der Befehlskombination des emacs-Modus Strp+p. Diesmal erscheinen nach dem Drücken beider Tasten die folgenden Zeichen: ^p Was heißt das jetzt für mich? Kann mir jemand sagen, woran das liegt bzw. wie ich einen der beiden Modi einschalten kann? Ich bin für jeden Hinweis dankbar! Gruß, Talpa
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlausJ Moderator
   
 Beiträge: 1336 Registriert: 17.03.2003 AIX 6.2 Windows XP
|
erstellt am: 24. Aug. 2004 14:23 <-- editieren / zitieren --> Unities abgeben:          Nur für talpa
Hallo Talpa, ich vermute mal, daß die "SUN-Kornshell" dieselbe ist wie bei AIX. Als erstes mußt Du der Kornshell mit dem Kommando set -o vi oder set -o emacs bekanntgeben, mit welchem Interpreter Du arbeiten möchtest - kann bei Funktionieren in die .env oder .dtprofile intergriert werden. Dann müßtest Du eigentlich so arbeiten können, wie Du es Dir vorstellst. ------------------ in diesem Sinne Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
talpa Mitglied Program Manager
 
 Beiträge: 360 Registriert: 19.08.2002
|
erstellt am: 24. Aug. 2004 15:00 <-- editieren / zitieren --> Unities abgeben:         
Hallo Klaus, vielen Dank für Deine Hilfe! Es funktioniert genau so, wie Du es mir beschrieben hast. Bis auf einen Punkt: Um mir die Eingabe in jedem neuen Terminal zu sparen, habe ich diesen Befehl (set -o vi) in die .dtprofile in meinem Homeverzeichnis hineingeschrieben. Leider scheint das nicht beim System angekommen zu sein. Nach einem neuen Login funktionierte der Modus erst wieder nach erneutem Absetzen des Befehls. Weißt Du woran das liegen kann? Gruß, Talpa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlausJ Moderator
   
 Beiträge: 1336 Registriert: 17.03.2003 AIX 6.2 Windows XP
|
erstellt am: 25. Aug. 2004 08:33 <-- editieren / zitieren --> Unities abgeben:          Nur für talpa
Hallo Talpa, kannst Du bitte in einer Shell das Kommando echo $ENV absetzen. Gibt es eine Ausgabe z.B. .env oder .kshrc, dann muß dieses File in Deiner HOME-Directory existieren. Trage dort den Befehl set -o vi ein. Dieses File wird jedesmal beim Starten einer Shell ausgeführt - Sorry habe ich vergessen zu sagen. ------------------ in diesem Sinne Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
talpa Mitglied Program Manager
 
 Beiträge: 360 Registriert: 19.08.2002
|
erstellt am: 25. Aug. 2004 09:05 <-- editieren / zitieren --> Unities abgeben:         
|
KlausJ Moderator
   
 Beiträge: 1336 Registriert: 17.03.2003 AIX 6.2 Windows XP
|
erstellt am: 25. Aug. 2004 09:15 <-- editieren / zitieren --> Unities abgeben:          Nur für talpa
Hallo Talpa, schreibe in $HOME/.dtprofile und $HOME/.profile die Zeile export ENV=$HOME/.envJetzt mußt Du nur noch ein File $HOME/.env anlegen und die Zeile set -o vidort reinschreiben. Das ENV-File ist auch sehr nützlich, wenn Du alias Befehle definieren willst. Das wird bei uns recht intensiv eingesetzt. ------------------ in diesem Sinne Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
talpa Mitglied Program Manager
 
 Beiträge: 360 Registriert: 19.08.2002
|
erstellt am: 25. Aug. 2004 10:07 <-- editieren / zitieren --> Unities abgeben:         
Hallo Klaus, es hat funktioniert, vielen Dank!!! Ein paar Sachen sind mir aber immer noch suspekt: Die Datei .env gab es bei mir im Homeverzeichnis noch nicht. In der der Datei .dtprofile war die Zeile export ENV=$HOME/.env allerdings schon vorhanden, scheint so eine Art von Vorbereitung zu sein oder wie soll ich das verstehen? Ich habe die Datei .env dann erstellt und set -o vi eingetragen. Trotzdem hat es noch nicht funktioniert. Erst nachdem ich (so wie Du es mir auch aufgetragen hast) die Zeile export ENV=blabla auch in die .profile eingetragen habe, hat es funktioniert. Warum muss es denn in beiden Dateien stehen? Ich dachte die werden der Reihe nach durchlaufen und die letzte überschreibt nur die ersten? In der .dtprofile habe ich folgendes gefunden: ### DT pre-sets the following environment variables for each user. ### ENV set to "$HOME/.kshrc" Die Datei .kshrc hast Du ja schon erwähnt. Sie existiert bei mir (noch) nicht. Ich könnte sie erstellen, dann müsste ich sie aber nochmal extra deklarieren (ungefähr so: export ENV=.kshrc), habe ich das richtig verstanden? Außerdem steht in der .dtprofile noch folgendes: ### Three methods are available to modify or add to this list depending ### on the desired scope of the resulting environment variable. ### ### 1. X server and/or all users on a display (Xconfig file) ### 2. all users on a display (Xsession file) ### 3. individual users (.dtprofile file) Das heißt, wenn ich möchte, dass jeder Nutzer an dieser Workstation den vi-Modus nutzen können sollte, dann müsste ich den Eintrag set -o vi in der Datei /usr/dt/config/Xconfig machen, ist das korrekt? Fragen über Fragen, ich hoffe ich strapaziere Deine Nerven nicht zu viel? Dafür werde ich Dir ordentlich Unities überweisen.  Gruß, Talpa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlausJ Moderator
   
 Beiträge: 1336 Registriert: 17.03.2003 AIX 6.2 Windows XP
|
erstellt am: 25. Aug. 2004 10:29 <-- editieren / zitieren --> Unities abgeben:          Nur für talpa
Hallo Talpa, ich kenne das Verfahren nur von AIX, aber ich glaube, daß der CDE weitgehend einheitlich ist. Nachdem die System-Konfiguration durchlaufen ist, wird die Userspezifische durchlaufen. Der CDE startet mit dem .dtprofile. Findet er dort die unkommentierte Anweisung dtsourceprofile=truewird auch noch das .profile durchlaufen. Die Filenamen .kshrc oder .env sind egal, es wird immer nur das verwendet, was in $ENV steht. Du kannst selbstverständlich auch die .kshrc verwenden. Mit Deiner Annahme könntest Du recht haben, habe es aber noch nicht ausprobiert, da bei uns jeder User - theoretisch jedenfalls - sein eigenes Environment "haben könnte. Wir sind gerade dabei, das wieder zu vereinheitlichen (ist aus dem Ruder gelaufen). ------------------ in diesem Sinne Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
talpa Mitglied Program Manager
 
 Beiträge: 360 Registriert: 19.08.2002
|
erstellt am: 25. Aug. 2004 10:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo Klaus, Du warst mir wirklich eine große Hilfe, Danke nochmal!!! Eventuell melde ich mich bald wieder mit noch ein paar ungelösten Unix-Problemen. Das hast Du jetzt davon, dass Du mir geholfen hast...  Ciao, Talpa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Karsten Dora Mitglied
 Beiträge: 8 Registriert: 09.10.2003
|
erstellt am: 14. Okt. 2004 22:24 <-- editieren / zitieren --> Unities abgeben:          Nur für talpa
Hallo Zusammen, wir haben in der /etc/profile eine Abfrage drin..ob root oder nicht root - und dann wird ENV gesetzt. Somit drehe ich nur an einer Stelle. Ist insbesondere beim EInsatz von NIS sehr praktisch. .dtprofile haben wir komplett auf komment stehen.. irix, solaris und aix .. der cde funktioniert immer irgendwie anders.. und ist historisch gewachsen ..auf deutsch gesagt ..ein Riesen Verhau.. aber .. es funzt. ------------------ AIX IRIX SUNSolaris LINUX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |