Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/03/2007, à 05:40

Orion Elenion

Ligne de commande, console, mode texte, terminal, shell, etc...

Bonjour,

j'ai récemment procédé à une installation d'Ubuntu Edgy Eft en mode texte, grâce au CD alternate, dans le but de monter un serveur de fichiers / serveur MPD / serveur FTP / etc... Bref, cette machine n'est pas censée servir pour une utilisation quotidienne, voilà pourquoi j'ai choisi le mode texte : meilleures performances, économie d'énergie, meilleure stabilité, et aussi l'aspect pédagogique (on en apprend des choses sur Linux).

Cependant, je constate que la documentation comme le forum recensent assez peu de renseignements pour une utilisation "avancée" de la console. On n'y trouve que des exemples sur les commandes de base, ou des solutions pas à pas pour dépanner un plantage du serveur X.

Je propose donc de créer un topic (en fait, c'est déjà fait) pour y placer différentes questions, astuces, instructions, explications ou autre documentation concernant l'utilisation du mode texte. J'ai choisi la rubrique trucs et astuces car, afin d'inaugurer tout ça, je vous propose une petite astuce :

Pour désactiver l'affichage du clavier : ce qui sera tapé au clavier n'apparaîtra pas à l'écran, de la même façon que lorsqu'un mot de passe vous est demandé (ce qui est donc sa principale utilité).

Pour désactiver l'"écho" du clavier :

$ stty -echo

pour le réactiver :

$ stty echo

Voici un exemple de script utilisant ce mécanisme :

#!/bin/sh

echo -n "Veuillez entrer une ligne de texte : " # Affichage d'une invite de saisie.
stty -echo # Désactivation de l'écho du clavier.
read texte # Lecture du texte entré.
echo "" # Retour à la ligne.
stty echo # Réactivation de l'écho du clavier.
echo "Vous avez entré : \"$texte\"." # Affichage du texte entré, à éviter dans le cas d'un mot de passe. ;-)

Voilà voilà. À vous de proposer des idées.

J'en profite quand même pour poser ma question roll : quel outil pour le partitionnement en ligne de commande ?

Merci à vous.


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#2 Le 07/03/2007, à 08:06

naholyr

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

À propos de ton script jette un oeil à "man read". Il y a une option qui permet de ne pas provoquer l'affichage de ce qui est tapé (mode spécial mot de passe). C'est plus simple wink

Hors ligne

#3 Le 07/03/2007, à 11:39

ziouplaboum

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Modifications de partitions en mode texte:

fdisk
parted

Perso il m'arrive d'utiliser fdisk, c'est assez simple. Il te faut les droits administrateur bien sur!
Tu tapes m pour l'aide...

J'ai jamais essayé le mode expert (x); donc je ne sais pas ce qu'il peut te permettre. (peut être le redimensionnement des partitions?)

Amuse toi bien!

Commande action
   a   bascule le fanion d'amorce
   b   éditer l'étiquette BSD du disque
   c   basculer le fanion de compatibilité DOS
   d   détruire la partition
   l   lister les types de partitions connues
   m   afficher ce menu
   n   ajouter une nouvelle partition
   o   créer une nouvelle table vide de partitions DOS
   p   afficher la table de partitions
   q   quitter sans faire de sauvegarde
   s   créer une nouvelle étiquette vide pour disque de type Sun
   t   modifier l'identificateur de la partition système
   u   modifier l'affichage et la saisie des unités
   v   vérifier la table de partitions
   w   écrire la table sur le disque et quitter
   x   fonctionnalité additionnelle (pour experts seulement)

Hors ligne

#4 Le 07/03/2007, à 19:35

Orion Elenion

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

naholyr a écrit :

À propos de ton script jette un oeil à "man read". Il y a une option qui permet de ne pas provoquer l'affichage de ce qui est tapé (mode spécial mot de passe). C'est plus simple wink

Euh, je ne trouve pas cette option... Mais c'est vrai que si ça existe, c'est bien plus simple.

@ziouplaboum : Merci beaucoup !


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#5 Le 07/03/2007, à 22:11

naholyr

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Ça n'est pas dans le man en effet. Il s'agit donc de l'option "s" :

read -s -p "Password: " pass
echo "Mot de passe = $pass"

Hors ligne

#6 Le 08/03/2007, à 00:35

Orion Elenion

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

naholyr a écrit :

Ça n'est pas dans le man en effet. Il s'agit donc de l'option "s"

Ooooh, c'est beau. Je constate par la même occasion l'existence de l'option -p (probablement pour prompt). Le man d'une commande aussi basique serait donc obsolète/incomplet ?


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#7 Le 08/03/2007, à 10:27

naholyr

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Non mais "man read" renvoie la doc sur la fonction "read()" en C. Du coup rien à voir ^^
J'ai trouvé la doc sur la commande qui nous intéresse ici : http://www.ss64.com/bash/read.html

Dernière modification par naholyr (Le 08/03/2007, à 10:28)

Hors ligne

#8 Le 08/03/2007, à 12:34

Freddy

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Pour les commandes du bash, l'aide est obtenue avec « help read ».

Pour « man read », l'en-tête de la page de man est :

READ(2)                   Manuel du programmeur Linux

La section 2 contient effectivement la documentation pour les commandes en C, ce n'est donc pas un programme comme « ls » ou « apt-get »

Les commandes pour l'utilisateur sont dans la section 1 et ont une en-tête  du genre :

LS(1)                              Commandes                             LS(1)

« man 1 man » pour avoir la liste des sections et leur signification.
Notez que deux sections différentes peuvent avoir la même page de man. Par exemple, « man 1 man » décrit l'aide en ligne, « man 7 man » décrit les conventions pour l'écriture de pages de man.
La plupart du temps, les pages utiles sont dans la section 1, la section 8 pour les commandes système, les autres sections à l'occasion.


There is no system but GNU, and Linux is one of its kernels.

Hors ligne

#9 Le 08/03/2007, à 16:31

Orion Elenion

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

En effet, help read donne accès à la documentation correcte.
Par contre man read me renvoie la page de man de la section 1, mais à la norme POSIX. Je ne suis pas spécialiste mais il me semble que ça sert à garantir un fonctionnement sur tout système de type Unix... Dans le cas de personnes contraintes de programmer dans cette optique, peut-être mon script sera-t-il utile ? roll

Allez, je relance une autre astuce. Je ne propose rien de phénoménal, juste des petites commandes utiles dont je rappelle l'existence :

wget URL_d_un_fichier

permet de télécharger un fichier en ligne de commande.

w3m URL_d_une_page_web

est pour sa part un navigateur performant en mode texte. À découvrir si ce n'est déjà fait. Il paraît que le package w3m-img permet même d'afficher les images, mais je ne suis pas parvenu à le faire fonctionner (même dans un terminal dans un système avec serveur X).

N'oubliez pas que ce topic est là pour proposer des petites astuces sur le mode texte ! Proposez les vôtres ! Même si la plupart le savent déjà, il y aura bien une ou deux personnes à qui ce sera profitable ! smile

Dernière modification par Orion Elenion (Le 14/08/2007, à 01:13)


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#10 Le 12/08/2007, à 10:29

mba

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Je viens d'apprendre que la commande "multitail" existe.
elle permet de monitorer dans la meme fenetre plusieurs fichiers simultanément.
Le nombre d'options est énorme : On peut monitorer des fichiers, des flux (ex: "ssh moi@uneautremachine tail -f /var/log/messages") les mettre dans la meme fenêtre ou couper l'écran courant en "n" pour avoir toutes les traces séparées.
On peut ajouter des regexp pour mettre des bouts de log en couleur.
Et en plus, l'exécution est interactif : en tapant sur h ou a acces a tout un tas de commande. Par exemple, "p" pour faire un pause. "b" pour revoir l'historique. e pour creer une regle. f pour filtrer certaines lignes. ....

Bref, ca vaut le coup d'essayer et de s'embeter un peu avec le man pour voir toutes les options.

Il faut l'installer : elle n'est pas installée par défaut.


Et tant que j'y suis, il y a aussi clusterssh qui permet de lancer des commandes sur plusieurs machines en simultané ...
Par contre, c'est pas vraiment du mode texte puisque ca ouvre un xterm ...

Hors ligne

#11 Le 12/08/2007, à 20:35

tOkeshu

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Deux choses que j'ai appris il y a quelques jours.

Appliquer une commande sur des fichiers répondants à un pattern précis cool :

find ./ -name 'pattern' -exec commande '{}' \;

J'en ai eu besoin pour "sélectionner" certains fichiers jpg. C'était en fait la même image sous plusieurs résolutions différentes.
Mon but était donc de supprimer toutes les fichiers du répertoire sauf l'image de plus grande résolution et ensuite la copier dans un dossier wallpaper.

Vous me direz, suffit juste de faire un cp puis un rm *.
Mais ça devient fastidieux quand ce sont des "packs" d'images qui proposent 3 images différentes hmm sous plusieurs résolution du genre :

img1_1280x1024.jpg
img1_1024x768.jpg
img1_800x600.jpg

img2_1280x1024.jpg
img2_1024x768.jpg
img2_800x600.jpg

img3_1280x1024.jpg
img3_1024x768.jpg
img3_800x600.jpg

je fait donc :

find ./ -not -name '*12*' -exec rm '{}' \;

Cela peut être très utile puisque rm (si je me trompe pas) ne propose pas l'inversion de pattern (comme ici -not) big_smile .
Ici ce sont les options de find qui sont utilisées smile .

Pour plus d'info : http://perso.orange.fr/gleu/absfr.tuxfamily.org/abs-2.3-fr/moreadv.html


Pourquoi faire simple quand on peu faire compliqué :
Moi j'aime bien utiliser cygwin dans une session windows émulée sous ubuntu... :P

Hors ligne

#12 Le 12/08/2007, à 20:39

tOkeshu

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Deuxième chose.

Renommer des fichiers en utilisant des perlexpr cool :

Il suffit d'utiliser la commande rename, tout simplement wink . Cela permet d'éviter l'utilisation de mv.
Mais pourquoi des perlexpr ? Et bien, c'est ce qu'utilise rename.

La encore je travaillait sur des fichiers images. Seulement j'avais un lot d'images qui avait pour titre leur résolution (pas facile ensuite de se rappeler du contenu sans les ouvrir -_-) du genre :

1280x1024.jpg
1024x768.jpg
800x600.jpg

Il fallait donc que je puisse renommer les images en préservant l'ancien nom et en rajoutant un préfixe. Mais comment faire ça dans un regexp ?

Je me suis rappelé que j'avais utilisé une technique similaire avec sed. Par exemple :

s/^.*$/prefixe_&/

Le & représente l'occurrence trouvée grace au pattern.

C'est la que réside une des différence avec les perlexpr puisque ils n'utilisent pas les & mais les $x
avec x le numéro de l'occurrence mise sous parenthèse.

Exemple :

s/^(.*)(.a.)(.*)$/prefixe_$2/

$2 va être remplacé par l'occurrence trouvée avec (.a.)
Ce sont les parenthèses qui permettent d'y faire référence. Le nième groupe mis sou parenthèse sera donc référencé par $n

Pour revenir à notre exemple tongue :

rename 's/(.*)/prefixe_$1/g' *.jpg

Un autre exemple pour le fichiers contenant des espaces :

rename 's/ /_/g' *

Ici le g à son importance puisque il peut y avoir plusieurs espaces, il faut donc mettre g (global) pour les remplacer tous et pas un seul.

sources : man rename + google --> perlexpr

voilà voilà big_smile


Pourquoi faire simple quand on peu faire compliqué :
Moi j'aime bien utiliser cygwin dans une session windows émulée sous ubuntu... :P

Hors ligne

#13 Le 15/08/2007, à 13:25

tukuyomi

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

screen ou le multi-taches en consoles.

screen est un programme permettant -entre autres pleins de choses- de lancer plusieures applications dans un même terminal, et de basculer entre elles par la suite: Passons directement au plus intéressant smile
Pour l'exemple, j'utiliserai 3 commandes: top (liste les process actifs), irssi (client irc en console) et netstat -tc (liste les connexions tcp)

$ screen top

Jusque là, ça va, rien de bien compliqué.
Pressez maintenant [CTRL]+[A] puis [c]minuscule. Nouveau terminal dans le processus screen

$ irssi

Jusque là, ça va, rien de bien compliqué (bis).
A nouveau [CTRL]+[A] puis [c]minuscule et encore nouveau terminal dans le processus screen

$ netstat -tc

Bon voilà, nos trois tâches sont lancées.
Maintenant, voyons la liste des tâches: [CTRL]+[A] puis ["] (le guillemet ou double-quote)
On peut utiliser les flèches [HAUT], [BAS] et la touche [ENTRéE] pour naviguer entre les tâches.
On peut "détacher" la session [CTRL]+[A] puis [d]miniscule, fermer le terminal, quitter la session graphique (Gnome ou Kde), passer en tty1 [CTRL]+[ALT]+[F1] et

$ screen -r

et revoir la liste des tâches, créer de nouveaux terminaux, naviguer entre les applications lancées..., bref, du bonheur quoi wink
Pour finir ce rapide apercu de screen, voici la liste des commandes utiles

[CTRL]+[A] puis [?]: Aide
[CTRL]+[A] puis [c]: Créé un nouveau shell dans la session screen en cours
[CTRL]+[A] puis ["]: Liste des tâches en cours d'exécution
[CTRL]+[A] puis [d]: Détache la session screen en cours pour pouvoir l'ouvrir d'un autre terminal (en ssh par exemple ;))
screen -r: réouvre la session

Enjoy smile

Dernière modification par tukuyomi (Le 15/08/2007, à 13:30)

Hors ligne

#14 Le 09/11/2007, à 20:06

AnasAnas

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

bonjour a tous,
J ai installe ubuntu server en mode texte et j ai besoin de reduire la taille du texte. quelqu un sais comment modifier les caracteristique d affichage?
merci par avance

#15 Le 09/11/2007, à 20:26

tukuyomi

Re : Ligne de commande, console, mode texte, terminal, shell, etc...

Essaye la chose suivante:
Au démarrage de ta machine, presse [ESC] pour accéder à Grub.
La ligne correspondant à ta distrib et ton kernel est surlignée, presse  [E] pour éditer l'entrée correspondante de grub . Presse [E] à nouveau pour éditer la ligne

kernel          /boot/vmlinuz-2.6.22-14-generic root=UUID=... ro splash

De là, ajoute à la fin vga=791 (après ro splash).
Presse [ENTRéE] puis [b] pour booter
Si ça se passe bien, tu devrais avoir une autre résolution pour tes TTYs

Hors ligne