#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 : 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
Messagerie instantanée : naholyr@jabber.fr
Envoyer vos images sur le web d'un clic !
Choix du système à rebooter (graphique)
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...
À 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
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"
Messagerie instantanée : naholyr@jabber.fr
Envoyer vos images sur le web d'un clic !
Choix du système à rebooter (graphique)
Hors ligne
#6 Le 08/03/2007, à 00:35
- Orion Elenion
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"
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)
Messagerie instantanée : naholyr@jabber.fr
Envoyer vos images sur le web d'un clic !
Choix du système à rebooter (graphique)
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 ?
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 !
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 :
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 sous plusieurs résolution du genre :
img1_1280x1024.jpg
img1_1024x768.jpg
img1_800x600.jpgimg2_1280x1024.jpg
img2_1024x768.jpg
img2_800x600.jpgimg3_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) .
Ici ce sont les options de find qui sont utilisées .
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 :
Il suffit d'utiliser la commande rename, tout simplement . 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 :
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à
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
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
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
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