Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

emulateur de terminal

40 réponses
Avatar
Professeur M
Salut à tous,

j'an ai marre de faire des conneries par ssh sur un machine distante en
croyant faire un manip sur la machine locale (et vice versa) simplement
parce que je mesuis planté de terminal.

Bon, je sais, je n'ai qu'à regarder le prompt pour savoir où je suis mais
quand même...

Comment faire pour clairement différencier (par la couleur du texte par
exemple) un terminal sur la machine locale d'un un terminal donnant un
accès à une machine distante ?

Méph'
Étourdi ;-)

10 réponses

1 2 3 4
Avatar
YBM
Dominique MICOLLET a écrit :
Nicolas George wrote:

YBM wrote in message <4ae99b35$0$10245$:
Il y a juste un petit problème, au moins avec bash, le calcul de la
longueur de l'invite devient faux et du coup la gestion du passage
à la ligne s'emmelle les pinceaux.


Une lecture du man suffit à trouver comment corriger ce problème.





Ah...... Voilà qui explique pourquoi, occasionnellement, je n'ai plus de
retour à la ligne dans mes consoles....

Si cela n'est pas trop abuser pourriez-vous préciser à quel endroit du
manuel (il fait plus de 3000 lignes chez moi) ou sur quel mot clef faire la
recherche ?



Section PROMPTING :

[ begin a sequence of non-printing characters, which could
be used to embed a terminal control sequence into the
prompt
] end a sequence of non-printing characters



et là ça marche au poil :

$ echo $PS1
[e[1m]${debian_chroot:+($debian_chroot)}:w$ [e[0m]

La fin de mon ~/.bashrc est maintenant :

PS1="[e[1m]${PS1}[e[0m]"

(ça passe l'invite en gras sur mes serveurs, pour les différencier
de mon poste client, pour les couleurs voir man console_codes)
Avatar
Dominique MICOLLET
YBM wrote:

Section PROMPTING :

et là ça marche au poil :

$ echo $PS1
[e[1m]${debian_chroot:+($debian_chroot)}:w$ [e[0m]

La fin de mon ~/.bashrc est maintenant :

PS1="[e[1m]${PS1}[e[0m]"


Merci.... j'essaie ça dès que possible.


--
Dominique MICOLLET
Adresse email : enlever deux francs
Avatar
Gabriel Linder
On Thu, 29 Oct 2009 12:22:34 +0000, Patrick Lamaizière wrote:

Gabriel Linder :

Ça vaut ce que ça vaut mais pour ma part mes connexions ssh lancent
directement screen, lequel est configuré avec des statuslines qui
indiquent charge, date/heure et surtout nom de la machine où je suis
connecté.



Aurais-tu un exemple de config à nous soumettre ?



Voici mon .screenrc :

caption always "[%3n] %t %= %h %= %u %f"
hardstatus alwayslastline "[%l] %= %H %= %Y-%m-%d %c:%s"
nethack on
shell -$SHELL
startup_message off

caption/hardstatus paramètrent deux lignes d'état en bas de screen (infos
sur la fenêtre courante puis infos sur la machine), le reste n'est pas lié
mais peut servir (à part le mode nethack :)

Si tu splittes ton screen pour avoir deux fenêtres actives en même temps,
une nouvelle ligne caption sera ajoutée.



--
. Cordialement,
..: Gabriel Linder
Avatar
Nicolas George
Gabriel Linder wrote in message
<4ae9d5b8$0$908$:
shell -$SHELL



Tu peux expliquer tes raisons de mettre ça ?
Avatar
Gabriel Linder
On Thu, 29 Oct 2009 17:56:00 +0000, Nicolas George wrote:

Gabriel Linder wrote in message
<4ae9d5b8$0$908$:
shell -$SHELL



Tu peux expliquer tes raisons de mettre ça ?



C'est pour que mon shell (bash en l'occurence) lise .profile quand je crée
une fenêtre dans screen, s'il n'est pas invoqué en tant que shell de login
ce fichier n'est pas lu et son contenu (fonctions, alias, etc) n'est donc
pas disponible.



--
. Cordialement,
..: Gabriel Linder
Avatar
Benoit Izac
Bonjour,

le 29/10/2009 à 13:12, Patrick Lamaizière a écrit dans le message
<hcc0s3$2ecn$ :

Tu peux modifier le titre de la fenêtre, déjà ça aide à trouver la bonne
fenêtre si elle est réduite.

J'ai ça dans mon /etc/csh.cshrc
if ( $TERM == "xterm" ) then
set prompt="%{33]0;%m:%~07%}%{33[34m%}%m%{33[0m%}:%B%c03%b%# "
endif

Par contre je n'ai jamais réussi à faire marcher ça avec screen (même
sans le test du $TERM), si quelqu'un a une idée?



Comme souvent, Google m'a donné la réponse (et j'aurais dû commencé par
là) : <http://www.google.com/#q=xterm+title+screen>.

Testé et adopté. :)
--
Benoit Izac
Avatar
Nicolas George
Gabriel Linder wrote in message
<4ae9da58$0$908$:
C'est pour que mon shell (bash en l'occurence) lise .profile quand je crée
une fenêtre dans screen, s'il n'est pas invoqué en tant que shell de login



Oui, c'est bien ce que j'avais compris.

ce fichier n'est pas lu et son contenu (fonctions, alias, etc) n'est donc
pas disponible.



C'est bien normal, les définitions de fonctions et d'alias ne doivent pas se
trouver dans .profile, qui est lu par un shell de login, mais dans .bashrc,
qui est lu par les shells interactifs.

.profile est destiné à recevoir les choses qu'on veut une fois par session,
comme un affichage du nombre de nouveaux mails ou des anniversaires du jour.

De plus, on y met souvent l'initialisation de l'environnement, mais c'est
lié à un défaut de beaucoup de shells qui n'ont pas de fichier de
configuration dédié à cette tâche.

Accessoirement, de mémoire, bash a une misfeature qui est que quand c'est un
shell de login, il ne lit pas .bashrc. Il faut ajouter quelque chose comme
« . ~/.bashrc » à l'extrême fin de .profile pour contourner ce bug.

Ou jeter bash, tout simplement.
Avatar
Gabriel Linder
On Thu, 29 Oct 2009 18:36:38 +0000, Nicolas George wrote:

C'est bien normal, les définitions de fonctions et d'alias ne doivent
pas se trouver dans .profile, qui est lu par un shell de login, mais
dans .bashrc, qui est lu par les shells interactifs.

.profile est destiné à recevoir les choses qu'on veut une fois par
session, comme un affichage du nombre de nouveaux mails ou des
anniversaires du jour.

De plus, on y met souvent l'initialisation de l'environnement, mais
c'est lié à un défaut de beaucoup de shells qui n'ont pas de fichier de
configuration dédié à cette tâche.



Je sais bien tout ça mais j'ai deux shells qui cohabitent et .profile est
leur seul dénominateur commun.

Accessoirement, de mémoire, bash a une misfeature qui est que quand
c'est un shell de login, il ne lit pas .bashrc. Il faut ajouter quelque
chose comme « . ~/.bashrc » à l'extrême fin de .profile pour contourner
ce bug.



En effet.

Ou jeter bash, tout simplement.



Déjà essayé (t)csh et ksh, peut être zsh quand j'aurais un peu de temps.



--
. Cordialement,
..: Gabriel Linder
Avatar
Nicolas George
Gabriel Linder wrote in message
<4ae9e562$0$908$:
Je sais bien tout ça mais j'ai deux shells qui cohabitent et .profile est
leur seul dénominateur commun.



Dans ce cas, tu mets « . ~/.shellrc » à la fois dans ~/.fooshrc et dans
~/.barshrc, et tu mets les initialisations que tu veux dans ce ~/.shellrc.
Mais mettre les alias dans .profile est une bidouille bancale qui reviendra
te causer des problèmes au moment où tu t'y attendras le moins.

Sans même parler du fait que tu te retrouves à devoir configurer _tous_ les
logiciels qui peuvent lancer un shell interactif pour qu'ils invoquent avec
un -, ce qui n'est d'ailleurs pas toujours possible.
Avatar
Patrick Lamaizière
Benoit Izac :

Par contre je n'ai jamais réussi à faire marcher ça avec screen (même
sans le test du $TERM), si quelqu'un a une idée?



Comme souvent, Google m'a donné la réponse (et j'aurais dû commencé par
là) : <http://www.google.com/#q=xterm+title+screen>.

Testé et adopté. :)



Tu veux dire que ça marche ? Pas ici. Bon c'est pas grave.
1 2 3 4