J'essaie de créer une fonction portable de détection du système d'exploitation dans le script bash,
Donc, je veux juste savoir, le fichier "/etc/issue"
est commun à toutes les saveurs Linux?
login
etc
portability
Rahul Patil
la source
la source
/etc/*-release
fichier contenant des informations.uname
peut également fournir des informations, vous ne savez pas à quel point une empreinte digitale est précise. N'oubliez pas que n'importe qui peut modifier à peu près n'importe quoi dans une installation Linux pour masquer les informations que vous souhaitez, il ne trouvera que des informations sur les installations non modifiées.yum
ouapt-get
alors il installera des packages en fonction de cela.Réponses:
Oui, c'est un fichier standard à travers les distributions. Il est standard sur la plupart des distributions, Fedora / CentOS / RHEL / Debian / Ubuntu etc.
Vous pouvez en savoir plus à ce sujet avec un
man issue
ou son fichier associé/etc/issue.net
. Vous pouvez également consulter la page de manuel issue.net pour plus de détails et comment y inclure des macros dans les deux fichiers.Vous pouvez également en savoir plus sur le projet Linux From Scratch , Personnalisation de votre connexion avec / etc / issue .
la source
En plus de la réponse de slm, il convient de se rappeler que n'importe qui (avec un accès root) peut modifier le contenu de
/etc/issue
. Certaines organisations peuvent le faire pour présenter des avertissements ou des avertissements de pré-connexion, et d'autres peuvent supprimer toute identification de la distribution pour des raisons de sécurité (peu importe l'efficacité de ces mesures).Par conséquent, bien que / etc / issue puisse exister presque tout le temps, le contenu n'est pas nécessairement adapté à la détection du système d'exploitation (comme vous le dites, ou plus probablement, la distribution Linux).
la source
@ La réponse d'EightBitTony est correcte. De plus, il n'existe pas par défaut sur fedora 23.
Ne vous y fiez pas pour identifier des systèmes aléatoires. J'utiliserais
/etc/system-release
ou/etc/os-release
mais je ne sais pas à quel point c'est universel.Lire un peu
/etc/os-release
vientsystemd
donc je suppose que cela ne fonctionnera pas avec les distributions archaïques (ou celles qui détestentsystemd
). Impossible de trouver des informations faisant autorité sur/etc/system-release
. Je suppose que l'on doit vérifier de nombreux fichiers si la compatibilité est importante. Ou utilisez/etc/os-release
si les cas de bord ne sont pas importants.la source