Question Qu'est-ce que l'équivalent Linux aux fichiers programmes de Windows?


Sous Windows, la plupart des applications et des données d'application sont stockées dans un répertoire spécial appelé C:\Program Files (et occasionnellement C:\Program Files (x86)). Qu'est-ce que Ubuntu / Linux est équivalent à ce chemin? Y a-t-il même un?


146
2018-02-20 07:36


origine


Si vous voulez savoir où se trouvent les fichiers d'un package spécifique, vous pouvez utiliser le gestionnaire de paquets Synaptic. Il suffit de rechercher un paquet et de voir ses fichiers installés. - Asmerito
Je pense que cette question serait améliorée par un raison pour vouloir un équivalent. Il y a une différence entre, par exemple, "permet de voir ce que j'ai installé et ce que je peux exécuter", et "j'essaie de trouver le jeu de sauvegarde de ce logiciel, pour que je puisse le manipuler" et peut-être même "je soupçonne un fichier de configuration / fichier ini pour ce programme que je peux modifier". Celles-ci pourraient toutes être des questions "Program Files", mais ont des réponses différentes ici. - Nanne
Connexe (mais ne devrait probablement pas être considéré comme un doublon): Comment comprendre la disposition du système de fichiers Ubuntu? - Eliah Kagan


Réponses:


/bin et /usr/bin est l'endroit où sont les scripts qui démarrent les programmes. L'équivalent direct de "Program Files" est probablement /usr/share. Ce répertoire contient les différents fichiers de support pour la plupart des programmes.

Nautilus showing /usr/share

Cependant, il n’ya probablement pas d’équivalent direct car, par exemple, les fichiers de bibliothèque sont partagés sur le système (en /lib) et les options sont soit spécifiées par l'utilisateur (dans le répertoire personnel de l'utilisateur), soit universellement situées dans /etc.

Donc, installer un programme via un fichier deb, un référentiel ou une version générera probablement des fichiers dans tous ces emplacements.

[EDIT] Et comme d'autres remarquent, il y a aussi /sbin et /usr/sbin. Plus /usr/local/bin, /opt/bin et même /usr/games/. Donc certainement pas une comparaison directe avec c:\program files!


91
2018-02-20 13:21



Que diriez-vous /opt? J'ai déjà vu de nombreux programmes (généralement à source fermée ou basés sur des applications) auparavant de la même manière que Program Files. - Kupiakos
Semble aller dans ce sens, avec l’avènement du logiciel Ubuntu à ses jeux, certes. Mais même dans ce cas, à peine une comparaison directe est-elle vraiment? La chose la plus proche de nos jours cependant. - Scaine
Voir askubuntu.com/a/294492/41499 pour quoi le /opt répertoire est pour. - Gerhard Burger


Il n'y a pas de réponse facile.

/bin,/usr/bin, et /usr/share

Comme mentionné dans les autres réponses, vous pouvez trouver la plupart des exécutables sous /bin ou /usr/bin, et les fichiers de support sont installés dans /usr/share.

/usr/local et /opt

Il y a cependant plus de répertoires dans lesquels Ubuntu installe des applications. le PATH variable, qui détermine où rechercher une commande entrée, peut vous donner un indice, le mien ressemble (echo $PATH dans un terminal):

/usr/local/cuda/bin:/usr/local/texlive/2012/bin/x86_64-linux:/usr/games:/home/gerhard/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Comme vous pouvez le voir, certains logiciels sont installés dans /usr/local et ont leur propre répertoire et bin. Un autre endroit où de nombreux programmes sont installés est /opt. Les propriétés de ces emplacements sont expliquées par la Norme de hiérarchie du système de fichiers, qui est une très bonne lecture. Malheureusement, la différence entre /opt et /usr/local n'est pas très bien expliqué, quelqu'un sur le unix stackexchange avait une explication plus élaborée:

  • /usr/local est un endroit pour installer des fichiers créés par l'administrateur, généralement à l'aide de la commande make. L'idée est d'éviter les conflits avec les fichiers faisant partie des systèmes d'exploitation qui seraient écrasés ou écrasés par les fichiers locaux. par exemple. /usr/bin/foo fait partie de l'OS alors que /usr/local/bin/foo est une alternative locale,
  • /opt est un répertoire permettant d’installer des paquets non liés dans leur propre sous-répertoire. Ils sont déjà des packages complets fournis par un distributeur de logiciels tiers indépendant. Par exemple someapp serait installé dans /opt/someapp, un de ses commandements serait en /opt/someapp/bin/foo [et puis généralement un lien symbolique est fait dans l'un des bin répertoires dans le PATH, ou le programme est appelé à partir d'un fichier de bureau (voir ci-dessous)].

Trouver un programme ou une commande spécifique

.desktop des dossiers

Pour savoir où un programme spécifique est installé, vous pouvez effectuer un certain nombre d'étapes. Vous devez d'abord localiser son .desktop fichier. Les fichiers de bureau sont similaires aux raccourcis de Windows et, pour les applications système, ils se trouvent dans /usr/share/applications. Les fichiers de bureau des applications uniquement disponibles pour l'utilisateur actuel se trouvent dans ~/.local/share/applications. Prenez par exemple Google Chrome, qui a le fichier de bureau /usr/share/applications/google-chrome.desktop et chercher la ligne qui commence par Exec=, cela détermine comment démarrer Google Chrome. Ça dit:

Exec=/opt/google/chrome/google-chrome

Donc, vous savez que Google Chrome est en /opt.

Maintenant pour Mozilla Firefox qui se trouve dans /usr/share/applications/firefox.desktop. Il dit simplement

Exec=firefox %u

Au début, cela ne semble pas aider beaucoup, mais alors vous réalisez que firefox doit être dans un répertoire qui est dans le PATH variable (probablement un bin), et nous pouvons le rechercher (voir ci-dessous).

Recherche de commandes

Pour rechercher des commandes, vous pouvez utiliser un ou plusieurs des éléments suivants: type, which et whereis (J'ai inclus un lien vers leurs pages de manuel en ligne).

  • type: il décrit une commande et indique comment il serait interprété s'il était utilisé comme nom de commande. Les types possibles pour une commande sont les suivants:

    1. alias (alias shell)
    2. fonction (fonction shell)
    3. intégré (shell intégré)
    4. fichier (fichier disque)
    5. mot clé (mot réservé shell)

    (le type lui-même est une commande de commande intégrée bash, essayez-le avec type type : P)

    L'exécution type firefox nous donne

    firefox is /usr/bin/firefox
    

    quel est ce que nous voulions savoir

Si une commande est un fichier (que vous avez vérifié avec type) vous pouvez ensuite également utiliser:

  • lequel: affiche le chemin complet de la commande,

    L'exécution which firefox nous donne

     /usr/bin/firefox
    
  • où se trouve: localisez les fichiers de pages binaires, source et manuelle pour une commande.

    L'exécution whereis firefox nous donne

    firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
    

Prime

Vous pouvez inspecter /usr/bin/firefox plus près avec ls -l /usr/bin/firefox et cela donne:

/usr/bin/firefox -> ../lib/firefox/firefox.sh*

Il semble que /usr/bin/firefox est 'seulement' un lien symbolique vers le script /usr/lib/firefox/firefox.sh. Si vous inspectez le script, vous découvrez que le script appelle /usr/lib/firefox/firefox.
Vous pouvez vous reposer en paix maintenant :)

MODIFIER: Voir également réponse de d4nyll  pour une belle feuille de route.


72
2018-05-12 19:49



Assez cool réponse. Une question, qu'est-ce que le lien symbolique? Est-ce Windows raccourci équivalent? - Quazi Irfan
@iamcreasy merci! Oui, ils sont une sorte de raccourci, mais avec l'intention principale d'éviter les copies de fichiers. Les raccourcis Windows sont plus comparables à. fichiers de bureau, qui peuvent être utilisés pour créer, par exemple, des éléments de menu de démarrage. - Gerhard Burger
Pourquoi quelqu'un utiliserait-il un fichier .desktop sur des liens symboliques et vice versa? - Quazi Irfan
@iamcreasy Dans les fichiers .desktop, vous pouvez ajouter des informations supplémentaires, telles qu'une description et une icône (voir un exemple ici: standards.freedesktop.org/desktop-entry-spec/latest/apa.html), c'est un fichier "normal". Un lien symbolique est un fichier "spécial" qui ne lie que vers un autre fichier. Je trouve cela difficile à expliquer correctement mais peut-être que vous pouvez trouver une meilleure réponse ici: superuser.com/questions/253935/… - Gerhard Burger


Réponse tardive - J'ai créé une feuille de route à suivre pour les débutants. S'ils recherchent un fichier mais ne savent pas où chercher, ils peuvent utiliser la carte pour naviguer grossièrement. Vous pouvez télécharger un fichier PNG haute résolution ici. Vous pouvez trouver le post correspondant ici. Je continuerai à mettre à jour le fichier et le courrier lorsque le temps le permettra, en y ajoutant des commentaires utiles.


60
2017-11-20 18:25



cette réponse est ignorée, elle devrait être en haut. - voldemort


Il n'y a pas de répertoire unique qui soit l'équivalent exact de Fichiers de programme dossier. La façon dont Linux organise les choses est très différente de celle de Windows.

Dans Windows, chaque programme que nous installons a son propre répertoire dans le répertoire Program Files. Dans ce répertoire, d’autres sous-répertoires sont créés pour différents types de fichiers. Il n'y a pas de structure fixe pour les sous-répertoires. Les programmes décident d'eux-mêmes ce qu'ils veulent appeler chaque répertoire et où ils veulent mettre quoi.

Mais sous Linux, lorsqu'un programme est installé, différents types de fichiers sont copiés à différents emplacements. Les exécutables sont copiés dans / usr / bin, fichiers de bibliothèque à / usr / lib, documentation à un ou plusieurs des / usr / man, / usr / info et / usr / doc. S'il existe des fichiers de configuration, ils se trouvent généralement dans le répertoire de base de l'utilisateur ou dans /etc.


16
2018-02-24 15:19



Existe-t-il une raison pour ce regroupement de fichiers en fonction de leur objectif plutôt que de l’application à laquelle appartiennent les fichiers? Le "style de regroupement de fichiers Unix" est-il généralement plus pratique du point de vue de l'administrateur système? - jojman
pas vraiment. C'est un choix de design qu'ils ont fait je pense. Bien que cela permette de créer des utilitaires comme "man", "info" ou bien d’autres qui dépendent de cette structure de fichier. Par exemple, "man" sait où chercher de la documentation pour chaque commande. S'il n'y a pas d'emplacement standard des documents, l'homme ne peut pas travailler. - binW


le C:\Program Files dossier serait /usr/bin dans Ubuntu. /bin ressemble plus à C:\windows.

Du page de manuel de la hiérarchie du système de fichiers:

/bin      This directory contains executable programs which are needed  in
          single user mode and to bring the system up or repair it.
/usr/bin
          This is the primary directory  for  executable  programs.   Most
          programs  executed  by  normal  users  which  are not needed for
          booting or for repairing the system and which are not  installed
          locally should be placed in this directory.

Ubuntu a une structure différente de Windows. Ubuntu place presque toutes les applications dans un répertoire, par exemple /usr/bin. Windows créerait un nouveau dossier, par exemple Mozilla Firefox, et ajoutez la configuration, les exécutables, les DLL, les images, etc. Ubuntu les divise, les exécutables vont /usr/bin, configuration système dans /etc, objets partagés dans /usr/lib, images dans /usr/share, ...


9
2018-02-20 14:42





Les fichiers programme de Linux sont dans toute la hiérarchie. Il pourrait être sur /usr/bin, /bin, /opt/..., ou dans d'autres répertoires.

Je pense que vous allez trouver un fichier lié à votre application. Ensuite, j'ai une idée sur la façon de regarder les fichiers qui sont installés sur l'installation du programme.

  1. Installer synaptic en émettant sudo apt-get install synaptic sur le terminal.
  2. Recherchez le package que vous souhaitez, recherchez dans le texte de recherche.
  3. Cliquez avec le bouton droit sur le package et sélectionnez Properties.
  4. Déménager à Installed File languette. Le résultat est le même que dpkg -L package_name.
  5. Vous y trouverez tous les fichiers installés pour le package.

C'est parce que Linux déplace le fichier installé vers des répertoires séparés en fonction de leur type.

  • L'exécutable va à /usr/bin ou /bin.
  • Icône va à /usr/share/icons ou sur ~/.local/share/icons pour les locaux.
  • Application entière (portable) sur /opt.
  • Raccourci habituellement sur /usr/share/applications ou sur ~/.local/share/applications
  • Documentation sur /usr/share/doc
  • Bibliothèque / module sur /usr/lib

Et beaucoup d'autres répertoires. (CMIIW, acceptant la correction)


3
2018-03-15 14:09





Dans cette réponse, lorsque je dis Unix, je parle des systèmes d'exploitation Unix et Unix.

Ubuntu n'a pas vraiment de dossier de programme contenant toutes les données pour chaque programme. Dans les systèmes d'exploitation de type Unix et Unix, EVERYTHING est un fichier, même les commandes du terminal. Ce sont des fichiers aussi. La manière dont Unix gère les programmes peut être assez chaotique et organisée en même temps.

Les icônes des programmes sont stockées dans / usr / share / icons / *, les fichiers exécutables du programme sont généralement stockés dans / usr / bin, / bin et d'autres endroits avec des répertoires bin (bin est obv court pour binaire). Les bibliothèques dont dépendent les programmes sont dans / lib.

Vous ne vous retrouvez donc pas avec un répertoire contenant toutes les données d'un programme, mais les données du programme sont dispersées. Bien qu'au début cela semble très désorganisé, cela permet de partager des choses standard comme les bibliothèques et les icônes.

Grâce aux permissions pour chaque fichier, l'idée de tout fichier est très brillante pour être honnête. Il rend Unix MUCH plus sécurisé que les autres systèmes d’exploitation.


2
2018-02-20 19:25





La façon dont les programmes Linux et Windows sont installés est très différente.

Le schéma commun à Windows est pour un programme; ou un tas de programmes, d'un fournisseur vont dans son propre sous-répertoire dans C: \ programs \ vendor ou quelque chose de similaire.

Sous Linux, vos fichiers sont répartis entre des sous-répertoires spécifiques en fonction de leur fonction. Il existe des répertoires pour les bibliothèques, les icônes, les pages de manuel, les fichiers journaux, la configuration, etc. Vous pouvez en utiliser certains, mais le système les gérera tous. Ils ne sont pas couplés, mais existent avec des fichiers similaires provenant d'autres programmes.

Il n'y a donc pas d'équivalent réel à cette structure de répertoires Windows dans une implémentation Linux classique.


2
2018-02-20 14:36





Si vous installez vos propres programmes, je vous recommande 1 dossier:


1
2018-03-12 19:27