Quel est l'équivalent Linux des programmes de Windows?

179

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)). Quel est l'équivalent Ubuntu / Linux de ce chemin? Y a-t-il même un?

Kaz Wolfe
la source
2
Si vous voulez savoir où sont les fichiers d'un paquet spécifique, vous pouvez utiliser le gestionnaire de paquets Synaptic. Il suffit de rechercher un paquet et de voir ses fichiers installés.
Asmerito
6
Je pense que cette question serait améliorée par une raison de vouloir un équivalent. Il y a une différence entre, par exemple, "voyons ce que j'ai installé et ce que je peux exécuter", et "j'essaie de trouver le jeu de sauvegarde de ce / cette logiciel, afin que je puisse le tripoter" 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 "Program Files" question, mais ont des réponses différentes ici.
Nanne
4
Connexes (mais ne devraient probablement pas être considérées comme des doublons): Comment comprendre la structure du système de fichiers Ubuntu?
Eliah Kagan

Réponses:

104

/binet /usr/binest où sont les scripts qui démarrent les programmes. L’équivalent direct de "Program Files" est cependant probablement /usr/share( voir Norme de hiérarchie du système de fichiers ). Ce répertoire contient les divers fichiers de support de la plupart des programmes.

Nautilus montrant / usr / share

Il n’ya probablement pas d’équivalent direct cependant, car, par exemple, les fichiers de bibliothèque sont partagés sur le système (in /lib) et les options sont spécifiées par l’utilisateur (dans le répertoire de base de l’utilisateur) ou universellement situées 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 notent, il y a aussi /sbinet /usr/sbin. De plus /usr/local/bin, /opt/binet même /usr/games/. Donc, certainement pas une comparaison directe à c:\program files!

Scaine
la source
4
Que diriez- /optvous J'ai déjà constaté que de nombreux programmes (généralement à sources fermées ou basées sur une application) étaient similaires Program Files.
Kupiakos
Cela semble aller de soi, avec l'avènement du Centre de logiciel Ubuntu qui y livre ses jeux, certainement. Mais même alors, à peine une comparaison directe, vraiment, est-ce? Pourrait la chose la plus proche de nos jours cependant.
Scaine
Voir le site askubuntu.com/a/294492/41499 pour savoir à quoi sert le /optrépertoire.
Gerhard Burger
/usr/local/binest un emplacement semi-commun pour les logiciels qui pourraient ne pas être couramment utilisés par un utilisateur / entreprise.
Mark Stewart
Et comment cet OS est-il meilleur que Windows? Je suis passé à l'essayer pour l'essayer, c'est mieux pour le développement Web. Mais je ne comprends pas ces choses de la hiérarchie ... J'ai installé PhpStorm et il se trouve maintenant dans 1238128 dossiers.
Toma Tomov
84

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.

d4nyll
la source
6
cette réponse est ignorée, elle devrait être au sommet.
voldemort
83

EDIT: Voir aussi la réponse de d4nyll ci-dessous pour une carte excellente et adaptée aux débutants!

Lisez ma réponse ci-dessous pour plus d'informations sur la PATHnature de la variable d'environnement, sur les .desktopfichiers et sur la recherche d'un programme spécifique à l'aide de différentes commandes linux.

Réponse originale:


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

/bin, /usr/binEt/usr/share

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

/usr/local et /opt

Il existe cependant davantage de répertoires dans lesquels Ubuntu installe des applications. La PATHvariable, qui détermine où chercher une commande entrée, peut vous donner un indice, le mien ressemble à ( echo $PATHdans 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/localet 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 /optet /usr/localn’est pas très bien expliquée, une personne travaillant sur l’ unix stackexchange avait une explication plus élaborée:

  • /usr/localest 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/foofait partie de l'OS tandis que /usr/local/bin/fooest une alternative locale,
  • /optest un répertoire pour installer des paquetages non groupé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, someappserait installé dans /opt/someapp, l'une de ses commandes serait dans /opt/someapp/bin/foo[puis un lien symbolique est généralement créé dans l'un des binrépertoires de la 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 plusieurs étapes. Vous devez d’abord localiser son .desktopfichier. Les fichiers du bureau sont similaires aux raccourcis dans Windows et aux applications système dans lesquelles ils se trouvent /usr/share/applications. Les fichiers du bureau pour les applications uniquement disponibles pour l'utilisateur actuel se trouvent dans ~/.local/share/applications. Prenons l'exemple de Google Chrome, qui contient le fichier du bureau, /usr/share/applications/google-chrome.desktopet la ligne commençant par celle-ci Exec=, qui détermine le démarrage de Google Chrome. Ça dit:

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

Donc, vous savez que Google Chrome est dans /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 beaucoup aider, mais ensuite vous réalisez que cela firefoxdoit se trouver dans un répertoire qui se trouve dans la PATHvariable (très probablement a bin), et nous pouvons le rechercher (voir ci-dessous).

En levant les commandes

Pour rechercher des commandes que vous pouvez utiliser un ou plusieurs des éléments suivants: type, whichet whereis(je l' 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:

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

    (tapez lui-même un shell intégré, essayez-le avec type type: P)

    L'exécution type firefoxnous donne

    firefox is /usr/bin/firefox
    

    c'est ce que nous voulions savoir

Si une commande est un fichier (que vous avez coché type), vous pouvez également utiliser:

  • qui : montre le chemin complet de la commande,

    L'exécution which firefoxnous donne

     /usr/bin/firefox
    
  • whereis : localisez les fichiers binaires, sources et manuels d'une commande.

    L'exécution whereis firefoxnous 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 de /usr/bin/firefoxplus près avec ls -l /usr/bin/firefoxet cela donne:

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

Il semble qu’il /usr/bin/firefoxn’ya «qu’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 reposer en paix maintenant :)

Gerhard Burger
la source
Réponse plutôt cool. Une question, quel est le lien symbolique? Est-ce que Windows est équivalent au raccourci?
Quazi Irfan
@iamcreasy merci! Oui, il s’agit d’une sorte de raccourci, mais avec pour objectif principal 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 Démarrer.
Gerhard Burger
Pourquoi quelqu'un utiliserait-il un fichier .desktop sur des liens symboliques et vice versa?
Quazi Irfan
1
@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 ), il s'agit d'un fichier 'normal' . Un lien symbolique est un fichier "spécial" qui se lie uniquement à un autre fichier. Je trouve cela difficile à expliquer correctement mais vous pouvez peut-être trouver une meilleure réponse ici: superuser.com/questions/253935/…
Gerhard Burger
18

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 fichiers / usr / man , / usr / info et / usr / doc . Si des fichiers de configuration, ils sont généralement dans le répertoire personnel de l'utilisateur ou dans / etc .

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

Le C:\Program Filesdossier serait /usr/bindans Ubuntu. /binressemble plus à C:\windows.

Depuis la 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 seul répertoire, par exemple /usr/bin. Windows créerait un nouveau dossier Mozilla Firefoxet y ajouterait une configuration, des exécutables, des DLL, des images, etc. Ubuntu les sépare, les exécutables /usr/bin, la configuration à l’échelle du système /etc, les objets partagés /usr/lib, les images /usr/share, ...

Lekensteyn
la source
5

Les «programmes» de Linux sont dans la hiérarchie. Il pourrait être sur /usr/bin, /bin, /opt/...ou dans un autre répertoire.

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.

  1. Installez synapticen émettant sudo apt-get install synapticsur le terminal.
  2. Cherchez le paquet que vous voulez, recherchez sur l'entrée de texte de recherche.
  3. Cliquez avec le bouton droit sur le package et sélectionnez Properties.
  4. Déplacer vers l' Installed Fileonglet. Le résultat est le même que dpkg -L package_name.
  5. Vous y trouverez tous les fichiers installés pour le paquet.

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

  • Exécutable va à /usr/binou /bin.
  • Icône va /usr/share/iconsou sur ~/.local/share/iconspour local.
  • Toute l'application (portable) sur /opt.
  • Raccourci habituellement sur /usr/share/applicationsou sur~/.local/share/applications
  • Documentation sur /usr/share/doc
  • Bibliothèque / module sur /usr/lib

Et beaucoup d'autres annuaires. (CMIIW, acceptant la correction)

Abdillah
la source
3

Dans cette réponse, lorsque 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.

Thomas Boxley
la source
3

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.

Utilisateur inconnu
la source
2

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

Timo
la source
-2

Regardez dans /bin, /usr/binet tout ce qui dit bin.

cpu2
la source