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

  1. #1
    Futur 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
    Points : 7
    Points
    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 101
    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 101
    Points : 5 849
    Points
    5 849
    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 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    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
    Futur 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
    Points : 7
    Points
    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 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    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
    Futur 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
    Points : 7
    Points
    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 éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u toto -p"${PASSWORD}" base < script.sql | less -S
    ça marcherai pas ?
    comme ça on peut normalement lancer N requettes avec une seule session mysql ouverte pour toto

    J'ai pas testé j'ai pas de machine avec sql sous là main

  8. #8
    Futur 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
    Points : 7
    Points
    7
    Par défaut
    Peut être que si, mais vu que je suis plutôt dans une phase de recherche, je ne peux pas prévoir les requêtes que je vais exécuter.

    Puis ce n'est pas l'objectif recherché, il doit bien y avoir un moyen de modifier ce fichu buffer !

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    terminator permet le défilement horizontal (donc, de ne pas replier les lignes trop longues)

    terminator dans tous les bons dépôts

    EDIT: attention, le terminator dans les dépôts Debian n'est pas celui sur lequel je suis tombé sur internet
    celui qui permet le défilement horizontal est disponible ici
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    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 101
    Points : 5 849
    Points
    5 849
    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?

  11. #11
    Futur 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
    Points : 7
    Points
    7
    Par défaut
    Je viens de découvrir ce terminal également (google powaaaa), qui d'ailleurs est bien inspiré de gnome terminal vu les personnalisation qu'on peut y faire.

    Mais même avec Terminator, les lignes sont tronquées ! FUUU.
    EDIT: attention, le terminator dans les dépôts Debian n'est pas celui sur lequel je suis tombé sur internet
    celui qui permet le défilement horizontal est disponible ici
    Je vais voir ça tout de suite

    (d'ailleurs au passage, j'ai découvert qu'en remplaçant le ";" par "\G" à la fin d'une commande MySQL, c'est beaucoup plus lisible pour les huuge sorties.

  12. #12
    Futur 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
    Points : 7
    Points
    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

  13. #13
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par Gemini42 Voir le message
    Peut être que si, mais vu que je suis plutôt dans une phase de recherche, je ne peux pas prévoir les requêtes que je vais exécuter.

    Puis ce n'est pas l'objectif recherché, il doit bien y avoir un moyen de modifier ce fichu buffer !
    pour tester tu fais juste des select bien évidement...

  14. #14
    Futur 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
    Points : 7
    Points
    7
    Par défaut
    Non non j'y vais à grand coup de DROP *

    pour tester tu fais juste des select bien évidement...
    Évidemment ^^

  15. #15
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut


    tester direct avec du drop c'est couillu !

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