Debianeries
Un article de Athena.
Sommaire |
Linuxeries
Linuxerie 01
sudo ls -l /proc/*/exe 2>/dev/null
| grep /bin/
| awk '{print $10}'
| xargs dpkg -S
| sort | uniq
| awk -F ":" '{print $1}'
| grep -v xserver # variante ! / pas mettre à jour serveur X
| grep -v kernel # variante ! / pas mettre à jour kernel
| xargs sudo apt-get -s install
Linuxerie 02
cd /var/log ;
find . -mmin -30 \
| xargs file \
| grep -v data \
| awk -F ":" '{print $1}' \
| xargs tail -f
Pratique des fois...
Une autre ...
lynx -dump http://checkip.dyndns.org | grep -v "^$" | awk '{print $4}'
Debianeries
Debianerie 01
Le caractère '\' n'est là que pour couper en lignes courtes...
DISTRIB=testing
AGE=5
export LANG=C ; find /usr/bin/ -atime -$(AGE) -type f \
| xargs dpkg -S 2> /dev/null | grep -v diversion \
| sort | uniq | \
| awk -F ":" '{print $1}' \
| xargs apt-get -s install -t $(DISTRIB)
- Question 1
- Ça fait quoi ??
- Question 2
- Est-ce une bonne idée ?
Réponse approximative...
- Réponse 1
- Commentaires OL - Désolé, mais il manque des choses pour l'homme de la rue que je suis
AGE =5 pourquoi ? export LANG=C pourquoi ?.
Les 6 lignes de commandes : elles tombent comme cela (un cheveu sur la soupe) ou il faut créer un script qui se lancera tout seul ?
- Réponse à Olivier
- Oui, pour l'instant ça tombe du ciel (enfin, plutôt de l'imagination de celui qui propose). Le but du jeu n'est pas de tout mâcher et poser dans une page wiki mais plutôt de s'entraîner à creuser pour trouver le pourquoi du comment. Il est prévu de compléter la page progressivement mais à chacun de contribuer de manière positive. C'est un «jeu».
Effectivement, tous les éclaircissements n'ont pas (encore) été donnés... Il faut expérimenter un peu aussi...
- '|'
- le caractère '|' («pipe») sert a enchaîner deux commandes de base, c-à-d que le résultat d'une commande est fourni en entrée à celle qui suit.
- find /usr/bin/ -atime -$(AGE) -type f
- Rechercher dans /usr/bin tous les fichiers réguliers (-type f) dont le dernier accès à eut lieu dans les dernières 5 (Variable AGE) * 24 heures, soit les 5 derniers jours.
- xargs dpkg -S 2> /dev/null
- On passe en argument (xargs) la liste obtenue pour rechercher les paquets installés (dpkg -S) et redirige les erreurs de syntaxe (2>) vers rien (/dev/null)
- grep -v diversion
- On récupère toute la liste sauf diversion ???? (là je vois pas trop...) / ha, ha, .../
- sort
- On tri la liste (par défaut, c'est l'ordre alphabétique qui est appliqué)
- awk -F ":" '{print $1}'
- On définit pour la liste le séparateur (:) et on récupère la valeur du premier champs.
- uniq
- On enlève les doublons. (pas strictement nécessaire mais c'est plus propre et plus rapide globalement)
- xargs sudo apt-get install -t testing -s
- Finalement on passe en argument la liste (xargs) à apt pour tester (-s) l'installation des paquets en question en précisant qu'on veut les paquets de la version testing de Debian (-t testing).
Voilà ce que j'ai pu en analyser mais je pense qu'il doit certainement y avoir des erreurs...
- Réponse 2
Oui c'est plutôt utile pour simuler la mise à jour des dernières versions des programmes dont on se sert régulièrement et si je peux me permettre,
- faudrait rajouter un apt-get update && au début
- et un sudo juste avant le apt-get install à la fin, (fait ;-)
juste pour dire de tout faire en une seule fois ;-) De plus on peut quand même remarquer avec ce genre d'exemple la puissance et l'intérêt de la ligne de commande et des scripts dans linux.
Debianerie 02
Avec pour exemple, application au paquet gnome-themes-extras
cat /var/lib/dpkg/info/gnome-themes-extras.list | xargs stat -c "%F %x %n " | grep regular | sort
Alors, à quoi cela peut-il bien servir ?
Debianerie 03
À commenter...
500 dpkg -l | grep php 501 sudo apt-get remove --purge libapache2-mod-php4 php4 php4-common php5-common 502 sudo apt-get remove --purge apache2 503 sudo apt-get install phpsysinfo 504 dpkg -l | grep apache 505 sudo apt-get remove --purge apache-common apache2-common apache2-mpm-prefork apache2-utils 506 cd /etc/ 507 sudo apt-get install phpsysinfo -s 508 sudo apt-get install phpsysinfo php-pear -s 509 sudo apt-get install phpsysinfo php-pear 510 /etc/init.d/apache2 stop 511 sudo emacs /etc/default/apache2 512 unset DISPLAY 513 sudo emacs /etc/default/apache2 514 /etc/init.d/apache2 start 515 nmap localhost 516 ps aux 517 ps aux | grep apache 518 ps aux | grep boa 519 sudo apt-get remove --purge boa 520 /etc/init.d/apache2 start 521 lynx localhost
