Ces utilitaires sont libres. Il n'y a aucune garantie, et utilisez-les à vos propres risques.
Script Perl exécutant des batches dans répertoire partagé. J'ai écrit ce programme comme remplacement très simple et limité de la commande qsub. Exemple d'utilisation:
$ dobatches 'batch-.*' arg1 arg2 arg3
Comme vous pouvez le voir, le premier argument de dobatches est une expression rationnelle, pas un motif de fichier (i.e., écrivez .* à la place de *).
Script Zsh permettant de se connecter sur une machine distante par le protocole rlogin et de positionner la variable DISPLAY correctement. Le .zshenv, .cshrc ou fichier équivalent sur la machine distante doit être modifié en conséquence. Ce script peut maintenant être utilisé comme fonction autoloadée.
Note: pour des raisons de sécurité, le protocole SSH (commande ssh ou slogin) doit maintenant être utilisé à la place de rlogin; je laisse tout de même le lien, car dlogin peut servir d'exemple simple de script Zsh.
Script Perl permettant un filtrage avancé de flux et des redirections vers plusieurs fichiers. Fournis dans l'archive: un filtre pour coloriser la sortie de make, et des scripts shell pour envoyer les warnings dans une fenêtre xterm ou zenity.
Script Perl donnant des informations sur des utilisateurs locaux. Je l'ai écrit parce que la commande finger (sous Solaris) était trop lente et buggée; j'en ai profité pour donner quelques informations supplémentaires. Ce script a d'abord été écrit pour Solaris et NIS+, puis modifié pour fonctionner sous certaines versions de Linux et OSF1; il ne marchera pas sur certains systèmes. Page man pour efing (au format nroff).
Script Perl faisant suivre des messages e-mail par SMTP à une adresse donnée. Il n'utilise pas le client SMTP local (généralement invoqué comme sendmail), de manière à ne pas passer par la queue locale (ceci est utile lorsqu'elle est pleine de mailer-daemons dûs à certaines attaques de spam). Une documentation au format POD est incluse dans le script.
Fonction/script Zsh qui affiche tous les fichiers d'en-tête inclus par gcc. Voir la page dédiée à gccheaders.
Script Perl affichant les temps d'inactivité pour kbd, mouse, les tty et les pts (pseudo-ttys). Ce programme peut ne pas fonctionner correctement sur tous les systèmes. Il a cependant été testé sur certaines versions de Solaris, Linux, OSF et Mac OS X. Page man pour idle (au format nroff).
Mis à jour le 23 avril 2006.
Script Perl permettant d'arrêter temporairement et automatiquement des processus de calcul tournant sur des machines de bureau, lorsque quelqu'un utilise une machine. En effet, certaines machines font énormément de bruit lorsque leur processeur est actif. Cet utilitaire est capable de prendre en compte le fait qu'il peut y avoir plusieurs machines par pièce. Voir la page dédiée à idlexec.
Script Perl pour créer ou mettre à jour des liens symboliques vers des bibliothèques statiques. Ce script peut être utile pour compiler et linker des programmes qui ne fournissent pas de script configure, seulement un fichier Makefile, et doivent linker avec des bibliothèques statiques (pour des raisons d'efficacité), e.g. BaCSeL. La raison est que pour la compilation et une édition de liens conventionnelle, on peut utiliser des variables d'environnement, comme C_INCLUDE_PATH, LIBRARY_PATH et LD_LIBRARY_PATH, mais quand on veut linker avec une bibliothèque statique, on doit soit fournir le chemin complet du fichier bibliothèque, soit utiliser des options du compilateur non standard dans le Makefile, i.e. qui peuvent ne pas fonctionner sur certaines plateformes. Ce script rend la première méthode (celle recommandée) un peu plus facile.
Exemple avec BaCSeL:
$ ./liblinks lib libgmp.a libmpfr.a $ make GMP=. DEFS="-DUSE_DPE -DZUSE_MPZ -DVBSE -DAUTOMATIC"
Script Perl colorisant la sortie de la commande make. Si votre shell est zsh, vous pouvez l'utiliser automatiquement en ajoutant la ligne suivante à votre .zshrc:
make()
{
local -a pstatus
command make "$@" |& makefilter
pstatus=($pipestatus)
# If make has failed, return its exit status.
[[ $pstatus[1] -eq 0 ]] || return $pstatus[1]
# If eet has failed, return 125; otherwise return 0.
[[ $pstatus[2] -eq 0 ]] || return 125
}
Attention si vous voulez compiler un noyau Linux! Ceci fera échouer make menuconfig avec un message d'erreur étrange (le makefile est mal conçu, AMHA).
Script Perl vérifiant qu'un fichier procmailrc (fourni en argument ou sur l'entrée standard) est correctement formaté et ne contient pas de constructions suspectes. En cas d'échec, pmchecker termine avec un code de retour non nul et écrit un message sur le flux d'erreur standard. Ceci ne signifie pas qu'il y a réellement une erreur dans le fichier, mais on doit être un peu paranoïaque pour éviter de perdre du mail (cela m'est arrivé deux fois, avant que je n'écrive ce script). Bien sûr, pmchecker ne peut pas détecter toutes les erreurs, mais un backslash de continuation manquant ou une mauvaise utilisation d'un < ou > avant une expression rationnelle devrait être détecté en général.
Les utilisateurs qui gèrent leurs fichiers procmailrc avec Subversion devraient être intéressés par l'utilisation de ce script dans un pre-commit hook, e.g.
for i in `$SVNLOOK changed -t "$TXN" "$REPOS" | \
sed -n 's/.* \(.*procmailrc.*\)/\1/p'`
do
$SVNLOOK cat -t "$TXN" "$REPOS" "$i" | pmchecker || exit 1
doneModule Perl permettant au serveur web Apache de lire l'encodage de documents XML, en particulier de documents XHTML, et de générer le charset associé dans les en-têtes HTTP. Testé avec Apache 1.3.26 à 1.3.29 et mod_perl 1.26 à 1.29 sous Debian GNU/Linux.
Pour utiliser ce module, vous devez modifier la configuration d'Apache (dans mon cas, le fichier /etc/apache/httpd.conf). Si ce n'est pas déjà fait, vous devez activer mod_perl en ajoutant quelque chose du style:
LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so
Avec Debian, ceci est maintenant configuré avec le paquet apache. Ensuite, pour le module lui-même:
<IfModule mod_perl.c>
PerlTaintCheck On
<Location />
PerlFixupHandler ReadEncoding
</Location>
</IfModule>
Merci à Patrick pour son aide très précieuse.
Script Perl permettant de poster des articles de news et de récupérer les nouveaux articles par Suck, pour les utilisateurs de INN. Pour utiliser ce script, il vous faut:
positionner la variable d'environnement ISP_NNTPSERVER au serveur de news distant (nouveau: ou donner le serveur en argument);
modifier les valeurs de certaines variables dans le script (les valeurs à utiliser dépendent de votre système);
mettre ce script en setuid et setgid news.
Note: la version actuelle a été écrite pour la distribution Debian GNU/Linux et INN 2.3.2. Les versions plus anciennes que 2006-03-10 ont des problèmes de sécurité (sur machines multi-utilisateur).
Wrapper pour l'éditeur du client Subversion svn, dont le but est de supprimer les espaces en fin de ligne et les fins de ligne à la fin des messages de log.
Convertisseur de documents texte OpenOffice / OpenDocument en texte simple, basé sur celui de Liam Morland (voir le source de ce script Perl pour les changements que j'ai faits). Le texte généré est encodé en UTF-8. Noter que ce convertisseur est très basic; de nombreuses fonctionnalités sont toujours manquantes. Pour pouvoir utiliser ce programme, vous devez avoir soit le module Perl Archive::Zip, soit la commande unzip.
Note: bien que je mentionne ce programme sur cette page, il n'est pas spécifique aux Unix (mais je ne l'ai testé sur aucun autre système).
Ce script est aussi distribué avec lesspipe de Wolfgang Friebel.
Script Perl traitant la sortie de la commande diff, en particulier quand elle sera envoyée dans un terminal: cet utilitaire peut la coloriser et la convertir en UTF-8. Je l'ai écrit comme remplacement de colordiff de Dave Ewart. En plus de la conversion en UTF-8, le principal avantage sur colordiff (actuellement 1.0.6) est que tdiff commence à traiter le flux immédiatement (alors que colordiff a d'abord besoin que le flux soit fermé).
Script Perl affichant la liste des processus sous forme d'arbre. Ce script utilise l'utilitaire ps; les options de tps commencent par le caractère :, les autres arguments étant passés à ps. Pas de fichier d'aide (tps est un vieux script qui devrait être réécrit), mais vous pouvez voir le source et des snapshots: snapshot 1, snapshot 2.
Le but de ces scripts est de ne taper la phrase de passe que lors de la première connexion SSH depuis la machine concernée. La phrase de passe ne sera pas demandée juste après votre connexion (login) sur cette machine; ainsi, si vous n'utilisez pas SSH pour cette session, vous n'aurez pas à taper votre phrase de passe. La phrase de passe sera oubliée seulement lorsque le dernier login shell zsh terminera.
Logiciels qui ne dépendent pas d'une interface graphique:
Le langage Perl.
Mutt: le meilleur lecteur de courrier électronique (voir aussi mes pages sur Mutt). Et Procmail, pour filtrer votre courrier.
Subversion: système avancé de contrôle de version.
Et si vous utilisez l'interface graphique XWindow (comme X.Org):