|
|
|
|
||||||
| fr.comp.os.unix Système UNIX. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Salut,
J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh ou tcsh (je sais, je sais... merci d'éviter le troll ici ;-) ), je sais jamais lequel des deux. Et mon problème, c'est que je n'arrive pas à utiliser les touches flèches pour naviguer dans la ligne de commande. Actuellement, les flèche me produisent des "^[" (toutes les 4). Notons en plus que les caractères ainsi affichés ne sont pas effacables par Backspace (mais si j'écris d'autres caractères sur la ligne, ces autres sont parfaitement effacables). Sur ma machine habituelle (Linux), j'ai dans mes fichiers de login une série de bindkey pour régler les quelques touches qui ne font pas ce que je veux (en l'occurence, les flèches marchent toutes seules, mais j'ai dû corriger les End/Home/PageUp/...). Problème, sur la machine Sun, y'a pas de bindkey (command not found -- je sais, c'est censé être un built-in, mais y'a pas...). Une version différente et plus vieille de csh, je suppose... J'ai vu sur un site qu'il existait parfois une alternative à bindkey, 'bind', mais je ne l'ai pas non plus. J'ai aussi vu ailleurs que "/bin/sh and /bin/csh don't have arrow key functionality" (sur Sun). Argh. Donc, comment je peux faire ? Autre question assez voisine, est-ce que j'ai un moyen de configurer ma touche TAB pour qu'elle me fasse de la complétion ? Là encore, sous Linux ca marche avec autolist et complete, mais sous Sun, d'une part complete n'existe pas, et d'autre part autolist n'a l'air de rien faire. Merci ! -- Rémi Moyen |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
rmoyen@gmail.com writes:
> J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh > ou tcsh Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. Sur Linux, il y a de forte chance que le csh soit simplement un lien vers tcsh. Meme avec csh, tu as une completion (beaucoup plus simple et non configurable dans ces effet) accessible avec ESC plutot que TAB. > (je sais, je sais... merci d'éviter le troll ici ;-) ) On va faire un effort. A+ -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Jean-Marc Bourguet a écrit :
> > J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh > > ou tcsh > > Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute facon pas question que j'ai un shell différent de celui des autres utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que c'est pas un aspect que j'ai la liberté de contrôler. > Sur Linux, il y a de forte chance que le csh soit simplement un lien > vers tcsh. Je viens de vérifier, oui, c'est bien le cas. > Meme avec csh, tu as une completion (beaucoup plus simple et non > configurable dans ces effet) accessible avec ESC plutot que TAB. Ah ! Mais comment marche-t-elle ? Esc+quelque chose, je suppose ? Faut un truc spécial pour l'activer ? (j'avoue, j'ai la flemme d'aller chercher la doc puisque je t'ai sous la main ;-) ) > > (je sais, je sais... merci d'éviter le troll ici ;-) ) > > On va faire un effort. Mais c'est pas passé loin... -- Rémi Moyen |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Le 23 May 2006 03:13:09 -0700, rmoyen@gmail.com a écrit :
[...] > > > Meme avec csh, tu as une completion (beaucoup plus simple et non > > configurable dans ces effet) accessible avec ESC plutot que TAB. > > Ah ! Mais comment marche-t-elle ? Esc+quelque chose, je suppose ? Faut > un truc spécial pour l'activer ? (j'avoue, j'ai la flemme d'aller > chercher la doc puisque je t'ai sous la main ;-) ) > Il faut l'activer avec "set filec". Ensuite, il suffit d'appuyer deux fois sur ESC pour compléter les noms de fichiers sur la ligne de commande (il y a des fonctionnalités plus évoluées, mais il faut lire la doc.) Loïc. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Loic Tortay a écrit :
> > > Meme avec csh, tu as une completion (beaucoup plus simple et non > > > configurable dans ces effet) accessible avec ESC plutot que TAB. > Il faut l'activer avec "set filec". > > Ensuite, il suffit d'appuyer deux fois sur ESC pour compléter les noms de > fichiers sur la ligne de commande (il y a des fonctionnalités plus > évoluées, mais il faut lire la doc.) Ok, ca marche bien. Bon, j'irais lire la doc pour les détails, maintenant que j'ai les grandes lignes. Ca règle au moins mon problème de complétion (reste celui des flèches), merci ! -- Rémi Moyen |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
rmoyen@gmail.com writes:
> Loic Tortay a écrit : > > > > > Meme avec csh, tu as une completion (beaucoup plus simple et non > > > > configurable dans ces effet) accessible avec ESC plutot que TAB. > > > Il faut l'activer avec "set filec". > > > > Ensuite, il suffit d'appuyer deux fois sur ESC pour compléter les noms de > > fichiers sur la ligne de commande (il y a des fonctionnalités plus > > évoluées, mais il faut lire la doc.) > > Ok, ca marche bien. Bon, j'irais lire la doc pour les détails, > maintenant que j'ai les grandes lignes. > > Ca règle au moins mon problème de complétion (reste celui des > flèches), merci ! Si j'ai bonne memoire, il n'y a pas moyen de faire en sorte que le shell s'en occupe. Mais il est possible d'utiliser un emulateur de terminaux qui le fasse. Si j'ai bonne memoire, c'etait le cas de cmdtool, que tu dois encore avoir avec 5.8. A+ -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
rmoyen@gmail.com writes:
> Jean-Marc Bourguet a écrit : > > > > J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh > > > ou tcsh > > > > Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. > > Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute > facon pas question que j'ai un shell différent de celui des autres > utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que > c'est pas un aspect que j'ai la liberté de contrôler. Je connais ca :-( mais ca ne m'empeche pas quand meme d'utiliser tcsh if ($?prompt != 0 && "$prompt" != "" && $?tcsh == 0) then if (-x $HOME/local/bin/tcsh) then setenv SHELL $HOME/local/bin/tcsh if ($?DOT_LOGIN_EXECUTED == 0) then exec $SHELL -l $* else exec $SHELL $* endif endif endif dans le .cshrc avec un setenv DOT_LOGIN_EXECUTED dans .login devrait faire l'affaire. A+ -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Jean-Marc Bourguet a écrit :
> > > Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. > > > > Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute > > facon pas question que j'ai un shell différent de celui des autres > > utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que > > c'est pas un aspect que j'ai la liberté de contrôler. > > Je connais ca :-( mais ca ne m'empeche pas quand meme d'utiliser tcsh Ah oui, bien sûr ! Je suis bête... Je me disais que la seule solution était de demander à l'adminstrateur de me changer mon shell de login (ce que je ne peux pas faire tout seul) et qu'il refuserait. Mais je ne pensais pas à lancer simplement un autre shell depuis mon profile. Bon, ca m'embêterait d'utiliser un truc autre que (t)csh, faut quand même rester compatible avec les collègues (oui, je sais, les scripts devraient toujours avoir un she-bang au début, mais c'est pas toujours le cas, et executer des scripts csh avec bash ou zsh, ca donne des résultats, hum, bizarres). Mais un tcsh comme sur les machines Linux, c'est parfait ! > if ($?prompt != 0 && "$prompt" != "" && $?tcsh == 0) then > if (-x $HOME/local/bin/tcsh) then > setenv SHELL $HOME/local/bin/tcsh > if ($?DOT_LOGIN_EXECUTED == 0) then > exec $SHELL -l $* > else > exec $SHELL $* > endif > endif > endif > > dans le .cshrc avec un setenv DOT_LOGIN_EXECUTED dans .login devrait > faire l'affaire. Je ne comprends pas trop la logique du DOT_LOGIN_EXECUTED. Je vois bien qu'il s'agit de faire en sorte que le shell executé soit un shell de login ou non (-l), mais je ne vois pas trop comment tu mets ca en place. Bon, en tout cas, avec un tcsh (qui est en plus installé sur la Sun, rien à installer de plus donc !), ca règle tous mes problèmes, les flèches marchent correctement, la complétion aussi, bref, c'est nickel. Merci ! -- Rémi Moyen |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
rmoyen@gmail.com writes:
> Je ne comprends pas trop la logique du DOT_LOGIN_EXECUTED. Je vois > bien qu'il s'agit de faire en sorte que le shell executé soit un > shell de login ou non (-l), mais je ne vois pas trop comment tu mets > ca en place. Si tu le veux, j'essaierais d'expurger de ce qui ne concerne pas la boite pour laquelle je travaille mon modele de .cshrc et de .login commente. Ce que j'ai envoye en faisait partie mais il manquait la section sur le traitement des 4 types d'invocations du shell. A+ -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
rmoyen@gmail.com wrote:
> Jean-Marc Bourguet a écrit : > > > > J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh > > > ou tcsh > > > > Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. > > Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute > facon pas question que j'ai un shell différent de celui des autres > utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que c'est > pas un aspect que j'ai la liberté de contrôler. Tu es bien conscient que le shell est un programme utilisateur que tu peux trés bien garder dans ton home et ne partager avec personne? Donc rien ne t'empêche d'utiliser un ksh compilé statique ou quelque chose du genre qui a de la complétion et des touches d'histoire (avec set -o emacs ou set -o vi). -- Michel TALON |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
Jean-Marc Bourguet a écrit :
> Si tu le veux, j'essaierais d'expurger de ce qui ne concerne pas la > boite pour laquelle je travaille mon modele de .cshrc et de .login > commente. Ce que j'ai envoye en faisait partie mais il manquait la > section sur le traitement des 4 types d'invocations du shell. Bof, si ca ne te demande pas trop de boulot, pourquoi pas. Mais franchement, ne te fatigues pas pour si peu. J'ai un truc qui a l'air de marcher dans les cas simples que j'ai testé (login sur les machines Linux ou Sun, lancement d'un script sur ces mêmes machines), j'ai pas besoin de plus. Merci pour ton aide ! -- Rémi Moyen |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
Michel Talon a écrit :
> > > Installes tcsh et ca ira mieux. > > > > Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute > > facon pas question que j'ai un shell différent de celui des autres > > utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que c'est > > pas un aspect que j'ai la liberté de contrôler. > > Tu es bien conscient que le shell est un programme utilisateur que tu peux > trés bien garder dans ton home et ne partager avec personne? Donc rien > ne t'empêche d'utiliser un ksh compilé statique ou quelque chose du genre qui > a de la complétion et des touches d'histoire (avec set -o emacs ou set -o vi). Oui, je sais. Mais mes raisons pour avoir (presque) le même shell que tout le monde sont à la fois techniques est humaines. Techniquement, on a un paquet de petits scripts par-ci par-là, tous faits pour csh, et qui n'ont pas toujours (voire même rarement) été écrit proprement, avec un #!/bin/csh au début (la plupart sont des bricolages faits il y a plus ou moins longtemps par des gens pas forcément experts). Du coup, il est quasi-indispensable d'avoir un shell compatible avec. Et humainement, je ne suis pas le seul à bosser, et si à chaque fois que je vais voir un truc sur la machine d'un collègue (ou vice-versa), il faut que je me rappelle que c'est pas le même shell et que toutes les syntaxes sont différentes, ca va vite devenir gênant. Je peux tolérer (ou faire tolérer par les autres) quelques légères divergences (typiquement, ma tab-complétion est bien plus importante que celle des autres -- enfin, sauf ceux qui m'ont repiqué ma liste ;-) ), mais il faut que ca reste léger. Bref, faut que je conserve une bonne compatibilité avec l'installation standard, sans quoi je perdrais en interaction avec les autres tout ce que je gagne en usage personnel. En fait et dans ce cas précis, la méthode pour lancer un tcsh (qu'on utilise déjà sur Linux) sur Sun au login est parfaite. -- Rémi Moyen |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
2006-05-23, 03:13(-07), rmoyen@gmail.com:
> Jean-Marc Bourguet a écrit : > >> > J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh >> > ou tcsh >> >> Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. > > Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute > facon pas question que j'ai un shell différent de celui des autres > utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que c'est > pas un aspect que j'ai la liberté de contrôler. [...] Si tu ne peux pas creer le moindre fichier sur cette machine, alors tu ne peux pas en faire grand chose. Pourquoi ne pas installer un vrai shell dans ton home directory ou dans /var/tmp? -- Stéphane |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
Stephane Chazelas <cette.adresse@est.invalid> writes:
> 2006-05-23, 03:13(-07), rmoyen@gmail.com: > > Jean-Marc Bourguet a écrit : > > > >> > J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh > >> > ou tcsh > >> > >> Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. > > > > Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute > > facon pas question que j'ai un shell différent de celui des autres > > utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que c'est > > pas un aspect que j'ai la liberté de contrôler. > [...] > > Si tu ne peux pas creer le moindre fichier sur cette machine, > alors tu ne peux pas en faire grand chose. Pourquoi ne pas > installer un vrai shell dans ton home directory ou dans > /var/tmp? La raison pour laquelle je conserve tcsh (en interactif, pour les scripts c'est du ksh version Sun, shell le plus evolue que je suis sur de trouver sur toutes les machines qui auront a les executer) au boulot plutot que d'utiliser zsh comme a la maison, c'est que l'environnement au boulot est pris en charge par quelqu'un d'autre. Ce que m'apporterait un meilleur shell ne vaut pas la peine qu'il y aurait a me maintenir mon environnement perso ou a essayer de le convaincre que maintenir deux environnements ou a essayer de convaincre tout le monde que quitter csh est une bonne idee. Il y a des gens qui ont commence avec csh, n'ont jamais cherche autre chose et ne voient pas d'interet pour eux a changer; leur utilisation etant suffisemment peu sophistiquee, je ne suis pas sur qu'il y en ait. Ceux qui ont des scripts a ecrire, finissent par se mettre a perl apres s'etre battu avec csh plutot que de regarder d'autres shells. Je ne suis pas sur que ce soit un mauvais choix. A+ -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
Michel Talon wrote:
> rmoyen@gmail.com wrote: >> Jean-Marc Bourguet a écrit : >> >>>> J'ai accès à une machine Sun (SunOS 8.5) et mon shell est, euh, csh >>>> ou tcsh >>> Vu ce que tu decris, tu as csh. Installes tcsh et ca ira mieux. >> Oui, mais non. Je ne contrôle pas la machine, et il n'est de toute >> facon pas question que j'ai un shell différent de celui des autres >> utilisateurs. C'est pas que j'aimerais pas, hein, c'est juste que c'est >> pas un aspect que j'ai la liberté de contrôler. > > Tu es bien conscient que le shell est un programme utilisateur que tu peux > trés bien garder dans ton home et ne partager avec personne? Donc rien > ne t'empêche d'utiliser un ksh compilé statique ou quelque chose dugenre qui > a de la complétion et des touches d'histoire (avec set -o emacs ou set -o vi). > oui sauf que sous solaris/sunsOS, avec ksh tu n as pas les fleches pour cela il fait faire 4 alias alias __A=<crtl>-P alias __B=<crtl>-N alias __C=<crtl>-F alias __D=<crtl>-B pour inserer les carracters de controle avec vi, il suffit en mode edition de vaire control-V -control-P et cela inser le control-P |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
On 24 May 2006 10:01:24 +0200, Jean-Marc Bourguet wrote:
[...] > La raison pour laquelle je conserve tcsh (en interactif, pour les > scripts c'est du ksh version Sun, shell le plus evolue que je suis sur > de trouver sur toutes les machines qui auront a les executer) au > boulot plutot que d'utiliser zsh comme a la maison, c'est que > l'environnement au boulot est pris en charge par quelqu'un d'autre. > Ce que m'apporterait un meilleur shell ne vaut pas la peine qu'il y > aurait a me maintenir mon environnement perso ou a essayer de le > convaincre que maintenir deux environnements ou a essayer de > convaincre tout le monde que quitter csh est une bonne idee. [...] Tu peux toujours garder csh comme login shell et redefinir $SHELL dans ton .login (et l'executer si le shell de login est interacif). L'environnement sera herité par ton nouveau shell. Bon, evidemment, ca ne marchera pas pour les alias ou pour les variables definies avec set au lieu de setenv par l'administrateur. A une epoque, j'utilisais un script perl qui convertissait avec pas mal de success les .login en .profile. > Il y a des gens qui ont commence avec csh, n'ont jamais cherche autre > chose et ne voient pas d'interet pour eux a changer; leur utilisation > etant suffisemment peu sophistiquee, je ne suis pas sur qu'il y en > ait. Ceux qui ont des scripts a ecrire, finissent par se mettre a > perl apres s'etre battu avec csh plutot que de regarder d'autres > shells. Je ne suis pas sur que ce soit un mauvais choix. [...] Ce qui est un mauvais choix, c'est de continuer a utiliser csh interactivement alors que depuis 1979 on a sorti des shells un poil plus evolués, ergonomiques et conviviaux (comme tcsh ou zsh) surtout quand on est administrateur. A part ca, on est d'accord. -- Stephane |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
Jean-Marc Bourguet wrote:
> > Il y a des gens qui ont commence avec csh, n'ont jamais cherche autre > chose et ne voient pas d'interet pour eux a changer; leur utilisation > etant suffisemment peu sophistiquee, je ne suis pas sur qu'il y en > ait. Ceux qui ont des scripts a ecrire, finissent par se mettre a > perl apres s'etre battu avec csh plutot que de regarder d'autres > shells. Je ne suis pas sur que ce soit un mauvais choix. Pour les amateurs de litotes, je ne suis pas non plus sûr que Ruby soit un mauvais choix. -- En AVANT-PREMIERE : http://patrick.davalan.free.fr/ail/ |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
Stephane Chazelas <stephane_chazelas@yahoo.fr> writes:
> Tu peux toujours garder csh comme login shell La j'ai vraiment pas le choix. > et redefinir $SHELL dans ton .login (et l'executer si le shell de > login est interacif). L'environnement sera herité par ton nouveau > shell. C'est ce que j'utilise pour avoir tcsh a la place de csh. > Bon, evidemment, ca ne marchera pas pour les alias ou pour les > variables definies avec set au lieu de setenv par l'administrateur. Voila... nous avons un alias qui sert beaucoup et qui execute un programme generant du csh puis execute le csh genere... -- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
![]() |
| Outils de la discussion | |
|
|