#1 Le 06/05/2005, à 18:46
- Groulala
Utilisateurs du shell : ne surestimez plus votre mémoire !
Bonjour à tous,
Avec un ami, j'ai rédigé un petit script Perl qui permet d'afficher des aide-mémoire dans le shell.
Cette idée nous est venue à l'esprit parce qu'on a pris l'habitude de résoudre nos petits problèmes à l'aide d'une console.Travaillant sur une partition de taille limité, il met déjà arrivé d'avoir à vérifier le taux d'occupation de chacune de mes partitions. J'ai utilisé la commande "df" comme me l'avait conseillé un de mes amis. Plusieurs mois plus tard, l'envie de revérifier le taux d'occupation de mon disque m'est venue. Le problème est que ma mémoire n'est pas infaillible. Ce qui fait que j'avais oublié le nom de la commande qui m'avait servi a faire cette vérification la première fois.
À moins d'avoir une sacrée bonne mémoire, les "mésaventures" de ce genre ont tendance à se reproduire. C'est pourquoi avec mon ami, on a lancé le projet Shell-reminder (http://www.groulala.net/shell-reminder). Actuellement le projet consiste en un script Perl qui ajoute la commande remind-me à votre shell. Cette commande cherche des informations dans des fichiers textes servant de "base de donnée" contenant les aide-mémoire.
Illustrons la philosophie qui nous a guidés lors de la conception de ce script par un petit exemple:
Imaginons qu'après ma première utilisations de la commande "df -sh", je me dise "Je sens que cette commande risque de me reservir plus tard". Dans ce cas, j'ajoute un aide mémoire concernant cette commande dans ma "base de donnée" d'aide mémoire à l'aide de la commande
remind-me -A
.
Comme ça, lors de mes futurs vérifications de l'occupation de mon espace disque, si ma mémoire n' a pas su retenir le nom de la commande. J'utilise la commande
remind-me space disk available
.
qui me retourne en sortie:
[disk usage - free space available]
du -sh
Grâce à notre petit script nos petites pannes de mémoire ne nous causent plus de problèmes. Libre à l'utilisateur de remplir sa "base de donnée" avec les aides mémoire qu'il souhaite. En effet, chaque utilisateur dispose ce sa propre "base de donnée". De plus, il y a moyen de rendre certaines "bases données" accessibles à tous les utilisateurs du système.
Aujourd'hui, j'ai construit un paquet .deb. On l'a testé sur une Ubuntu et et une Debian. Le paquet s'est installé sans problème. J'ai donc décidé de le rendre disponible à partir la homepage de notre projet (cf. lien plus haut). Si vous êtes intéressé par notre projet, vous pouvez donc l'installer depuis ce paquet.
Normalement le script fonctionne sans problème, mais n'étant pas des "pros" de l'informatique, il se peut donc que notre projet ait quelques erreurs de jeunesse. Nous vous prions d'être indulgent si tel est le cas.
Nous sommes ouverts à toute remarques et suggestions. Donc n'hésitez pas à nous communiquer votre avis.
Dernière modification par Groulala (Le 06/05/2005, à 19:46)
Hors ligne
#2 Le 06/05/2005, à 19:50
- sksbir
Re : Utilisateurs du shell : ne surestimez plus votre mémoire !
1ere remarque : en 1994, sur sunos / Solaris , la commande "man intro" donnait un aperçu des différentes commandes du système... j'ai d'ailleurs testé cette commande sous ubuntu, et ai été déçu de ne pas y retrouver ce que j'avais l'habitude d'y trouver.
2eme remarque : pourquoi faire du perl ? Un simple alias de grep devrait suffire non ?
Sinon, c'est une bonne idée, les commandes unix étant difficiles à mémoriser dès qu'on ne pratique plus.
Petit conseil : essayez de préciser la portabilité d'une commande: drakeconf ou lsusb (que j'ai découvert avec ubuntu) n'est pas aussi universelle que cat ou même xlsdpyinfo...
je reviendrais tester ça quand j'aurai basculé en ubuntu (dual boot).
Hors ligne
#3 Le 06/05/2005, à 22:04
- Groulala
Re : Utilisateurs du shell : ne surestimez plus votre mémoire !
Effectivement, il y a moyen de se débrouiller avec un alias d'un grep dans un fichier. Pour la petite histoire, on a d'ailleurs commencé par utiliser cette méthode. Mais on a souhaité disposer de quelque chose d'un peu plus "élaboré". On donc cherché et on n'a pas trouvé de petit soft réalisant cette tâche. On s'est alors mis a en coder un en Perl, parce qu'on connaissait tous les deux sur ce langage et et qu'il est pratique pour gérer les expressions régulières. Quand le script fut réalisé, on s'est dit qu'il serait peut être bien de mettre notre petit script quelque part sur internet au cas où ça peut servir à certaines personnes.
Un peu plus de précisions sur notre script :
En fait, notre Shell-reminder utilise des fichiers portant l'extension .rdb.
La commande remind-me utilise les fichiers rdb situés dans le répertoire /etc/reminder/. Un exemple de fichier rdb est installé par défaut dans le répertoire /etc/reminder/ avec le paquet .deb disponible sur le site. Libre à vous de le compléter par des aide-mémoire que vous jugerez utiles pour les utilisateurs de votre système. De plus chaque utilisateur peut se construire ses propres fichier rdb. Dans ce cas, il les met dans un répertoire nommé .reminder/ qu'il aura créé dans son dossier personnel.
Le Shell-reminder est configurable par l'intermédiaire du fichier de configuration /etc/reminder/reminder.conf. Mais chaque utilisateur, s'il le souhaite, peut disposer de son propre reminder.conf qu'il paramètre selon ces besoins. Dans ce cas, il doit placer son fichier de configuration dans son répertoire .reminder/.
En fait, pour l'instant, on crée des fichiers rdb spécifiques pour Gentoo et Ubuntu. On peut adopter l'architecture suivante, les commandes "universelles" seront dans un rdb pouvant être utilisé sur n'importe quelle distro. À ce fichier, on ajoute un autre fichier rdb qui contient les commande plus "spécifiques" à une distro ou un tout autre sujet (chacun est libre de faire ce qu'il veut ). J'ai commencé la rédaction d'un ubuntu.rdb aujourd'hui. Il est encore tout maigre:
[get information & install packages from file - dpkg]
to get information :
dpkg -I mypackage.deb
to install a .deb file :
dpkg -i mypackage.deb
[end-of-item]
[remove a package - uninstall -dpkg]
to remove an installed package (to keep configuration files):
dpkg -r packagename
to remove all the files including configuration files:
dpkg --purge packagename
[end-of-item]
[reconfigure a package]
dpkg-reconfigure packagename
[end-of-item]
[install a package from the apt system]
to resynchronize the package index files from their sources
apt-get update
to upgrade the system
apt-get upgrade
to install a package
apt-get install
[end-of-item]
[get information about packages from the apt system]
to search for a package:
apt-cache search searchpattern
to get information about a package:
apt-cache show packagename
[end-of-item]
[take a screenshot]
gnome-panel-screenshot [ --window ] [ --delay [=INT] ]
[end-of-item]
Ça vous permet de voir la structure d'un fichier rdb. On l'a voulu facile à éditer. Chaque aide-mémoire commence par une en-tête entre [] et termine par un [end-of-item]. J'alimenterai ce fichier au fur et à mesure qu'une commande à ajouter me viendra à l'esprit.
Si vous avez des idées pour ce rdb, n'hésitez pas à contribuer en me transmettant vos suggestions.
De plus si vous créez vos propres rdb, et que vous les jugez utiles pour les autres, n'hésitez pas à nous les transmettre.
Hors ligne
#4 Le 24/07/2005, à 12:29
- test_007
Re : Utilisateurs du shell : ne surestimez plus votre mémoire !
Petit conseil : essayez de préciser la portabilité d'une commande: drakeconf ou lsusb
lsusb n'existe pas sous tous les linux?
Dernière modification par test_007 (Le 24/07/2005, à 12:30)
Hors ligne
#5 Le 24/07/2005, à 17:14
- marcounet
Re : Utilisateurs du shell : ne surestimez plus votre mémoire !
C'est marrant, après avoir enregistré df ton script te renvoie du !!!
(t'as sûrement mal recopié)
Marcounet des Brumes
Hors ligne