Sous Windows, la plupart des applications et de leurs données sont stockées dans un répertoire spécial appelé C:\Program Files
(et occasionnellement C:\Program Files (x86)
). Quel est l'équivalent Ubuntu/Linux de ce chemin? Y a-t-il même un?
/bin
et /usr/bin
est l'endroit où se trouvent les scripts qui lancent les programmes. L'équivalent direct de "Program Files" est probablement /usr/share
. Ce répertoire contient les divers fichiers de support de la plupart des programmes.
Il n’ya probablement pas d’équivalent direct cependant, car, par exemple, les fichiers de bibliothèque sont partagés sur le système (dans /lib
) et les options sont spécifiées par l’utilisateur (dans le répertoire de base de l’utilisateur) ou universellement dans /etc
.
Donc, installer un programme via un fichier deb, un référentiel ou une compilation placera probablement des fichiers dans tous ces emplacements.
[EDIT] Et comme d'autres le notent, il existe également /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
!
Lisez ma réponse ci-dessous pour plus d'informations sur ce qu'est la variable d'environnement PATH
, ce que sont les fichiers .desktop
et comment trouver un programme spécifique à l'aide de différentes commandes linux.
Réponse originale:
/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
and /opt
Il existe cependant davantage de répertoires dans lesquels Ubuntu installe des applications. La variable PATH
, 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 constater, certains logiciels sont installés dans /usr/local
et possèdent 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 le 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ée, quelqu'un sur le nix stackexchange avait une explication plus élaborée:
/usr/local
est un emplacement pour installer les fichiers créés par l'administrateur, généralement à l'aide de la commande make. L'idée est d'éviter les conflits avec des fichiers faisant partie des systèmes d'exploitation qui pourraient être écrasés ou écrasés par des fichiers locaux. par exemple. /usr/bin/foo
fait partie du système d'exploitation tandis que /usr/local/bin/foo
est une alternative locale,/opt
est un répertoire pour installer des packages non regroupés, chacun dans son propre sous-répertoire. Ils constituent déjà des packages complets fournis par un distributeur de logiciels tiers indépendant. Par exemple, someapp
serait installé dans /opt/someapp
, une de ses commandes serait dans /opt/someapp/bin/foo
[puis un lien symbolique serait généralement créé dans l'un des répertoires bin
du PATH
ou le programme est appelé à partir d'un fichier de bureau (voir ci-dessous)]. ..desktop
fichiersPour savoir où un programme spécifique est installé, vous pouvez effectuer plusieurs étapes. Vous devez d’abord localiser son fichier .desktop
. Les fichiers du bureau sont similaires aux raccourcis dans Windows. Pour les applications système, ils se trouvent dans /usr/share/applications
. Les fichiers du bureau des applications uniquement disponibles pour l'utilisateur actuel se trouvent dans ~/.local/share/applications
. Prenons l'exemple de Google Chrome, qui contient le fichier de bureau /usr/share/applications/google-chrome.desktop
et recherche la ligne commençant par Exec=
, qui détermine le démarrage de Google Chrome. Ça dit:
Exec=/opt/google/chrome/google-chrome
Donc, vous savez que Google Chrome se trouve dans /opt
.
Passons maintenant à Mozilla Firefox, qui se trouve dans /usr/share/applications/firefox.desktop
. Il dit simplement
Exec=firefox %u
Au début, cela ne semble pas beaucoup aider, mais vous réalisez ensuite que firefox
doit se trouver dans un répertoire qui se trouve dans la variable PATH
(très probablement un bin
), et nous pouvons le rechercher (voir ci-dessous).
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 elle serait interprétée si elle était utilisée comme nom de commande. Les types possibles pour une commande sont:
(tapez lui-même un shell intégré, essayez-le avec type type
: P)
Exécuter type firefox
nous donne
firefox is /usr/bin/firefox
c'est ce que nous voulions savoir
Si une commande est un fichier (que vous avez coché avec type
), vous pouvez également utiliser:
which : affiche le chemin complet de la commande,
Exécuter which firefox
nous donne
/usr/bin/firefox
whereis : localisez les fichiers binaires, sources et manuels d'une commande.
Exécuter 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
Bonus
Vous pouvez inspecter /usr/bin/firefox
de plus près avec ls -l /usr/bin/firefox
, ce qui donne:
/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Il semble que /usr/bin/firefox
est "uniquement" un lien symbolique vers le script /usr/lib/firefox/firefox.sh
. Si vous inspectez le script, vous découvrez qu'il appelle /usr/lib/firefox/firefox
.
Vous pouvez reposer en paix maintenant :)
Réponse tardive - J'ai créé une feuille de route pour les débutants. S'ils recherchent un fichier mais ne savent pas où chercher, ils peuvent utiliser la carte pour naviguer approximativement. Vous pouvez télécharger un fichier PNG haute résolution ici . Vous pouvez trouver le post connexe ici . Je continuerai à mettre à jour le fichier et la publication lorsque le temps le permettra, en incorporant des commentaires utiles.
Il n'y a pas de répertoire unique qui soit l'équivalent exact du dossier Program Files. La manière dont Linux organise les choses est très différente de Windows.
Dans Windows, chaque programme que nous installons obtient son propre répertoire à l'intérieur du 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 eux-mêmes comment 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 dans différents emplacements. Les fichiers exécutables sont copiés dans / usr/bin, les fichiers de bibliothèque dans / usr/lib, la documentation dans 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 personnel de l'utilisateur ou dans / etc.
Le dossier C:\Program Files
serait /usr/bin
dans Ubuntu. /bin
ressemble plus à C:\windows
.
Depuis le 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 celle de Windows. Ubuntu place presque toutes les applications dans un répertoire, disons /usr/bin
. Windows créerait un nouveau dossier, disons Mozilla Firefox
, et y ajouterait une configuration, des exécutables, des DLL, des images, etc. Ubuntu les sépare, les exécutables vont dans /usr/bin
, la configuration à l'échelle du système dans /etc
, les objets partagés dans /usr/lib
, les images dans /usr/share
, ...
Les "programmes" de Linux sont dans la hiérarchie. Il peut s'agir de /usr/bin
, /bin
, /opt/...
ou 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 installés lors de l’installation du programme.
synaptic
en émettant Sudo apt-get install synaptic
sur le terminal.Properties
.Installed File
. Le résultat est identique à dpkg -L package_name
.C'est parce que linux déplace le fichier installé dans des répertoires séparés en fonction de leur type.
/usr/bin
ou /bin
./usr/share/icons
ou à ~/.local/share/icons
pour local./opt
./usr/share/applications
ou sur ~/.local/share/applications
/usr/share/doc
/usr/lib
Et beaucoup d'autres annuaires. (CMIIW, acceptant la correction)
La manière dont les programmes Linux et Windows sont installés est très différente.
Le modèle commun dans Windows est pour un programme; ou un groupe de programmes, d'un fournisseur, va dans son propre sous-répertoire dans C:\programmes\vendeur ou quelque chose de similaire.
Sous Linux, vos fichiers sont répartis dans 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 ensemble, mais existent avec des fichiers similaires d'autres programmes.
Il n’ya donc pas d’équivalent réel à cette structure de répertoires Windows dans une implémentation Linux normale.
Dans cette réponse, quand je dis Unix, je parle de systèmes d’exploitation similaires à Unix.
Ubuntu n'a pas vraiment de dossier de programmes contenant toutes les données de chaque programme. Dans les systèmes d'exploitation Unix et de type Unix, EVERYTHING est un fichier, même les commandes de terminal. Ce sont aussi des fichiers. 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 exécutables du programme sont généralement stockés dans/usr/bin,/bin et d’autres emplacements contenant des répertoires bin (bin est un raccourci pour binaire). Les bibliothèques dont dépendent les programmes sont dans/lib.
Ainsi, vous ne vous retrouvez pas avec un répertoire contenant toutes les données d'un programme, mais les données du programme s'étalent. Au début, cela semble très désorganisé, mais cela permet de partager des éléments standard tels que des bibliothèques et des icônes.
Grâce aux permissions accordées pour chaque fichier, l’idée que tout soit un fichier est très brillante pour être honnête. Cela rend Unix BEAUCOUP plus sécurisé que d’autres systèmes d’exploitation.
Si vous installez vos propres programmes, je vous recommande 1 dossier: