Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 23-06-2016 13:33:23

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

aptecho, toutes vos sources en une seule commande

Salut smile

Je vous présente aptecho un petit script qui permet d'afficher en une seule commande vos fichiers de sources et de preferences, à savoir :

  • Le fichier /etc/apt/sources.list

  • Les fichiers de /etc/apt/sources.list.d dont l'extension est .list

  • Le fichier /etc/apt/preferences s'il existe

  • Les fichiers éventuellement présents dans /etc/apt/preferences.d



L'affichage est possible en couleur si la commande pygmentize du paquet python-pygments est disponible. Il est également possible d'afficher directement ces fichiers encadrés par les balises bbcodes qui vont bien pour coller tout ça directement sur le forum DF smile

N'hésitez pas à tester et me faire des retours.

Pour les barbus, vous aurez remarquer que le shebang est #!/bin/bash. J'aimerais si possible le transformer en #!/bin/sh, mais j'ai quelques difficulté avec les boucle for et l'utilisation de printf à la place de echo

Il me semble qu'il faille remplacer la boucle for par while avec un compteur, et je n'ai pas encore pris le temps de regarder le fonctionnement de printf en détail, mais si vous avez des pistes à me donner, ça ne serait pas de refus. Tout autres commentaires ou critiques constructives sont également les bienvenues, c'est mon premier script shell de plus de 10 lignes wink


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#2 23-06-2016 14:31:52

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : aptecho, toutes vos sources en une seule commande

j'avais plus simple avec:

cat /etc/apt/sources.list; cat   /etc/apt/sources.list.d/*.list ;

Hors ligne

#3 23-06-2016 15:49:06

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : aptecho, toutes vos sources en une seule commande

Certes, mais ça ne fait pas la coloration syntaxique, ça n'indique pas le nom des fichiers en en-tête, ça n'inclue pas les balises bbcode wink

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#4 23-06-2016 15:59:02

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

Re : aptecho, toutes vos sources en une seule commande

à tout ça, je réponds KISS

Sinon, ça sera utile. ça me fait un peu pensé à info4forum  de HandyLinux.

Hors ligne

#5 23-06-2016 17:55:28

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : aptecho, toutes vos sources en une seule commande

Dans ton script, tu pourrais utiliser la commande apt avec l'option edit-sources
ce qui permettrait de faire des "vérifications de sécurité de base" sur le fichier modifié.
man apt

"man apt" a écrit :


     edit-sources
            La commande edit-sources permet de modifier le fichier sources.list et fournit des vérifications de sécurité de base.

Dernière modification par MicP (23-06-2016 18:06:16)

Hors ligne

#6 23-06-2016 18:55:39

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : aptecho, toutes vos sources en une seule commande

nIQnutn a écrit :

à tout ça, je réponds KISS

Carrement un bisou lol Sans rire, j'y ai bien pensé que c'était pas trop KISS, mais étant donné le nombre de fois où il nous faut donner ces commandes pour l'entraide, je me suis dit que ça pourrait être utilise malgré tout. Et effectivement j'avais bien l'outilsde Handylinux en tête, mais il ne semble pas faire cela (il faut vraiement que j'installe Handylinux pour voir wink )

MicP a écrit :

Dans ton script, tu pourrais utiliser la commande apt avec l'option edit-sources
ce qui permettrait de faire des "vérifications de sécurité de base" sur le fichier modifié.

Oui, mais à aucun moment ces fichiers ne sont édités. Ils sont juste visualisés. Je pensais cependant à un autre script qui pourrait faire automatiquement ce genre de vérification et faire un rapport.


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#7 23-06-2016 21:21:30

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : aptecho, toutes vos sources en une seule commande

…Je pensais cependant à un autre script qui pourrait faire automatiquement ce genre de vérification et faire un rapport.…

EDIT :Ce qui suit est barré (Voir le message suivant)
Effectivement, comme apt edit-sources ne semble permettre l'édition que du fichier /etc/apt/sources.list, ce sera plus simple de l'adapter aux différents fichiers concernés par ton script.

Mais ça ferait quand même pas mal de vérifications différentes à faire…, et puis à force d'ajouter des fonctionnalités, ça finit par devenir un truc difficile à maintenir et autant de possibilités pour ce script de devenir obsolète => Il vaut peut-être mieux rester sur la méthode bisous qui a déjà fait ses preuves et permis à GNU-Linux d'être de fait plus efficace et plus fiable que d'autres systèmes.

… Je pensais cependant à un autre script…

Ce que j'ai écrit plus haut dans ce message amène aussi à cette conclusion.

=======
Pour le $HOME/.bashrc je pensais plutôt à ça :

[ "${PATH/$HOME/}" = "$PATH" ] && export PATH="$HOME/bin:$PATH"


Les guillemets permettront de prendre en compte les caractères espaces qui seraient dans un des chemins du PATH

Le test vérifie si le nom du répertoire personnel n'est pas présent dans les chemins du PATH
et avec ce test comme condition, si un sous-shell est démarré, le répertoire personnel des scripts ne sera plus ajouté une Nièmme fois au PATH

En ajoutant le chemin perso en premier dans la liste des chemins du PATH les scripts perso seront prioritaires sur leurs homonymes.

====
Mais je pense que le fichier $HOME/.profile serait mieux indiqué pour personnaliser le PATH
car le fichier $HOME/.profile sera pris en compte même si l'interpréteur de commande est différent de bash
et j'ai pu constater qu'il suffit de créer un répertoire $HOME/bin pour que ce répertoire soit automatiquement ajouté au PATH à la connexion suivante du compte utilisateur.

Ci-dessous, un extrait du fichier $HOME/.profile


# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

 

Dernière modification par MicP (26-06-2016 13:58:00)

Hors ligne

#8 24-06-2016 11:29:10

PengouinPdt
Adhérent(e)
Lieu : 47 - France
Distrib. : Siduction
Noyau : Linux 4.6.2-towo.1-siduction-amd64
(G)UI : XFCE
Inscription : 09-02-2011
Site Web

Re : aptecho, toutes vos sources en une seule commande

MicP a écrit :

(...)Effectivement, comme apt edit-sources ne semble permettre l'édition que du fichier /etc/apt/sources.list, ce sera plus simple de l'adapter aux différents fichiers concernés par ton script.(...)



Erreur détectée wink

Fais donc un :

apt edit-sources fichier.list



Ainsi, si tu as un fichier 'deb-multimedia.list' dans /etc/apt/sources.list.d/, quand tu feras :

apt edit-sources deb-multimedia.list


deb http://www.deb-multimedia.org/ sid main non-free



Mais, il faut avouer que le manpage n'est pas clair sur ce coup !

edit-sources (work-in-progress)
           edit-sources lets you edit your sources.list(5) files in your preferred texteditor while also providing basic sanity checks



Bref, il est capable de lire les fichiers qui sont dans le répertoire 'sources.list.d' pourvu qu'on lui spécifie le bon nom de fichiers wink

Hors ligne

#9 24-06-2016 18:04:58

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : aptecho, toutes vos sources en une seule commande

@PengouinPdt J'avais essayé avec l'option -c mais bien sûr ça n'a pas fonctionné puisqu'il s'agit du fichier de configuration d'apt.
Je me doutais bien que c'était possible car c'était logique que ce programme ne se limite pas qu'au traitement du fichier /etc/apt/sources.list

Merci beaucoup pour l'info.

EDIT : De plus, je m'y prenais mal car j'indiquais le chemin absolu plutôt que le nom de fichier seulement,
et comme je n'avais aucun fichiers dans le répertoire /etc/apt/sources.list.d/ de mon système
je faisais mes tests avec un des fichiers du répertoire /etc/apt/apt.conf.d/
donc, ça ne pouvait pas fonctionner.

=======
@bendia Quelques propositions :

  for((rc=0;rc<=$1+3;rc++))
    do
      echo -en "#"
    done
 


pourrait être remplacé par :

printf '%.s#' $(seq $(($1 + 3)))


(même chose pour hashspaces )

=======

#Saute 2 lignes
for((rc=0;rc<=3;rc++))
do
  echo
done
 

On pourrait utiliser :

echo -e "\n\n\n\n"

EDIT: Ou bien si tu préfère :

printf '\n\n\n\n'

Ou alors :

printf '%.s\n' $(seq 4)

Dernière modification par MicP (22-08-2016 05:54:58)

Hors ligne

#10 26-06-2016 13:03:57

Thuban
Modérateur
Distrib. : OpenBSD
Noyau : current
(G)UI : xfce ou dwm
Inscription : 09-01-2009
Site Web

Re : aptecho, toutes vos sources en une seule commande

bendia a écrit :

nIQnutn a écrit :

à tout ça, je réponds KISS

Carrement un bisou lol Sans rire, j'y ai bien pensé que c'était pas trop KISS, mais étant donné le nombre de fois où il nous faut donner ces commandes pour l'entraide, je me suis dit que ça pourrait être utilise malgré tout. Et effectivement j'avais bien l'outilsde Handylinux en tête, mais il ne semble pas faire cela


Non, mais c'est carrément une bonne idée tongue


YA3HGA-H

Hors ligne

#11 26-06-2016 13:12:51

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : aptecho, toutes vos sources en une seule commande

@MicP : désolé, je n'avais pas vu tes propositions, qui ressemble exactement à ce que je recherchais. Merci beaucoup smile

@Thuban : Sers toi smile J'envisage une autre option qui permettrait de poster directement le bbcode sur un forum avec curl par exemple. Ca serait pas mal de mettre ce petit script sur le git du fofo non ?

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#12 26-06-2016 13:20:34

Thuban
Modérateur
Distrib. : OpenBSD
Noyau : current
(G)UI : xfce ou dwm
Inscription : 09-01-2009
Site Web

Re : aptecho, toutes vos sources en une seule commande

Ça suppose que t'enregistres dans le script le login/mdp et que tu connaisses l'adresse du fil sur lequel poster par contre smile
Et oui, j'ai repris l'idée pour l'ajouter dans le info4forum. Y a tellement de monde qui pourrissent leur debian à coups de ppa...

YA3HGA-H

Hors ligne

#13 26-06-2016 13:26:26

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : aptecho, toutes vos sources en une seule commande

Thuban a écrit :

Y a tellement de monde qui pourrissent leur debian à coups de ppa...

L'idée m'est effectivement venu d'un cas comme ça ici wink

Thuban a écrit :

Ça suppose que t'enregistres dans le script le login/mdp et que tu connaisses l'adresse du fil sur lequel poster par contre smile

Je pensais à essayer de concevoir un truc modulaire via des fichier de config qui permettrait donc d'adapter la chose à chaque forum.

Genre un fichier credential avec des droits bien stricts et un fichiers de conf par site avec le choix de la création d'un nouveau fil, où de la réponse dans un fil existant smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#14 26-06-2016 18:25:50

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : aptecho, toutes vos sources en une seule commande

Il te faudrait remplacer :

    ?) echo usage ;;


par :

    ?) usage ;;

Hors ligne

#15 26-06-2016 18:40:17

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : aptecho, toutes vos sources en une seule commande

Ha oui, je l'ai déjà corrigée à la maison celle là hmm

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#16 26-06-2016 23:09:26

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : aptecho, toutes vos sources en une seule commande

nIQnutn a écrit :

j'avais plus simple avec:

cat /etc/apt/sources.list; cat   /etc/apt/sources.list.d/*.list ;


perso c'est

find /etc/apt -name '*.list*' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \;



ça n'enlève rien au fait que le script est très intéressant smile


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#17 22-07-2016 07:32:55

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : aptecho, toutes vos sources en une seule commande

bendia a écrit :

Ha oui, je l'ai déjà corrigée à la maison celle là hmm



il y a toujours l'erreur sur ta page du wiki sad
tu devrais ajouter l'option h pour afficher l'usage.
l'option s ne sert à rien, non? puisque la sortie sur stdout est par défaut, ou me trompe-je ?!

merci pour le script, je ne connaissais pas pygmentize

Dernière modification par wlourf (22-07-2016 07:33:19)

Hors ligne

#18 22-07-2016 09:35:54

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : aptecho, toutes vos sources en une seule commande

Bonjour

Dans le paragraphe Installation :

…Le placer dans ~/.local/bin/ S'assurer que ce dossier est bien dans votre PATH avec …


pourrait être remplacé par :

…S'il n'existe pas, créez le répertoire ~/bin/ et placer ce script dans ce répertoire …

Car :

tail -5 ~/.profile


# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
 

Dernière modification par MicP (02-12-2016 19:11:50)

Hors ligne

Pied de page des forums