IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Largeur du buffer des terminaux


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Par défaut Largeur du buffer des terminaux
    Bonjour à tous,

    J'aimerais savoir s'il est possiblie de changer la largeur des buffers dans les terminaux virtuels (et notemment gnome-terminal), car certains résultats de requètes sont trop larges pour être affichés entièrement (le terminal fait des retour à la ligne).

    Il doit quand même bien être possible de faire du "huge" MySQL sous Linux quand même

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Qu'est-ce que tu entends précisément par "le terminal fait des retour à la ligne"?
    Et quel est ton besoin précis?

    A ma connaissance, le terminal "replie" les lignes à l'affichage, mais je ne crois pas qu'il insère de caractère de fin de ligne.

    Si tu fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_var=$(ma_requete) ; echo ${#ma_var} ; echo "${ma_var}" | od -c
    tu pourras vérifier la longueur du résultat de ta requête et vérifier qu'elle ne contient pas de line feed ou return superflu.

    Si tu copies le résultat dans un fichier echo "${ma_var}" > mon_resultat.txt et que tu l'édites avec un bon éditeur, tu pourras constater la même chose.

    Par exemple, avec emacs et M-: (setq truncate-lines t), les lignes ne seront pas repliées.

    Évidemment, si tu affiches ce résultat dans un terminal echo "${ma_var}", il sera replié à l'affichage si les lignes ne tiennent pas dans le terminal.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    Bonjour,

    avec vim : simplement en utilisant less -S derrière un pipe
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Par défaut
    Qu'est-ce que tu entends précisément par "le terminal fait des retour à la ligne"?
    Oui j'entends bien sûr par là que le terminal affiche la ligne sur plusieurs car elle ne tient pas entièrement en largeur (pas de '\n' of course ).

    Oui je connaissais l'option d'emacs, j'ai d'ailleurs essayé d'utiliser MySQL dans un terminal virtuel d'emacs mais ça ne fonctionne pas.

    Bonjour, simplement en utilisant less -S derrière un pipe
    Oui, sauf qu'en lancant la commande 'mysql -u toto -p titi | less -S' on ne peux pas exécuter les commandes.

    C'est donc pour cela que je cherche un moyen de 'tronquer' les lignes dans le terminal, tel que le fait la console windows

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    en lancant la commande 'mysql -u toto -p titi | less -S' on ne peux pas exécuter les commandes.
    hmm, mouais, pas super efficace.

    mais!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u toto -p titi -e 'texte de la requête' | less -S
    malheureusement, c'est un peu lourdingue : il faut ouvrir mysql à chaque fois
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Par défaut
    mysql -u toto -p titi -e 'texte de la requête' | less -S
    Merci ! C'est déjà mieux ! (mais c'est quand même toujours pas vraiment ça ). Bon après pour le niveau lourdingue un bon alias et hop ça accélère tout ça.

    Mais ma question première, n'a du coup toujours pas trouvée réponse .

    Et je suis vraiment curieux de savoir comment on peut faire ça, peut être par l'utilisation des termcaps ?

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Donc, en fait, tu veux soit tronquer les lignes à la largeur de la fenêtre, soit avoir une scrollbar horizontale?

    Pour tronquer (violemment (sans possibilité de les récupérer)) les lignes, peut-être quelque chose comme:
    mysql -u toto -p titi | cut -c1-$COLUMNS si COLUMNS est correctement valuée ou bien
    mysql -u toto -p titi | cut -c1-80 sinon

    Citation Envoyé par Gemini42 Voir le message
    Oui je connaissais l'option d'emacs, j'ai d'ailleurs essayé d'utiliser MySQL dans un terminal virtuel d'emacs mais ça ne fonctionne pas.
    C'est bien dommage!
    C'est ce que j'utilisais jadis avec Ingres et c'était carrément le top (possibilité de scroller dans tous les sens, de rechercher du texte, de rappeler les commandes passées à l'interpréteur SQL, etc.).
    C'est plus dans le topic, mais, juste pour voir, qu'est-ce qui ne fonctionne pas?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    C'est plus dans le topic, mais, juste pour voir, qu'est-ce qui ne fonctionne pas?
    Bah l'affichage, les lignes sont tronquée même avec l'option d'activée

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/09/2010, 20h18
  2. Programmation des terminaux
    Par bubulemaster dans le forum Linux
    Réponses: 4
    Dernier message: 15/07/2009, 16h53
  3. goelocalisation des terminaux
    Par ouakammathieu dans le forum Réseau
    Réponses: 1
    Dernier message: 21/07/2008, 16h20
  4. Prédéfinir la largeur du menu des perspectives
    Par zev dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 30/05/2008, 01h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo