it-swarm.dev

Co je Linux ekvivalentní programovým souborům Windows?

Ve Windows je většina aplikací a aplikačních dat uložena ve speciálním adresáři známém jako C:\Program Files (A příležitostně C:\Program Files (x86)). Co je Ubuntu/Linux ekvivalentní této cestě? Existuje dokonce jeden?

191
user11154

/bin a /usr/bin je místo, kde jsou skripty, které spouštějí programy. Přímý ekvivalent „Program Files“ je však pravděpodobně /usr/share ( viz standard hierarchie souborového systém ). Tento adresář obsahuje různé podpůrné soubory pro většinu programů.

Nautilus showing /usr/share

Pravděpodobně neexistuje přímý ekvivalent, protože například soubory knihovny jsou sdíleny v celém systému (v /lib) a možnosti jsou zadány uživatelem (v domovském adresáři uživatele) nebo všeobecně umístěny v /etc.

Instalace programu prostřednictvím souboru deb, úložiště nebo sestavení tedy pravděpodobně umístí soubory do všech těchto umístění.

[ÚPRAVA] A jak si ostatní všimnou, existuje také /sbin a /usr/sbin. Plus /usr/local/bin, /opt/bin a dokonce /usr/games/. Takže rozhodně není přímé srovnání s c:\program files!

109
Scaine

Pozdní odpověď - Vytvořil jsem plán pro začátečníky. Pokud hledají soubor, ale nevědí, kde hledat, mohou pomocí mapy hrubě procházet. Můžete si stáhnout hi-res PNG zde . Naleznete související příspěvek zde . Budu průběžně aktualizovat jak soubor, tak příspěvek, jakmile to čas dovolí, včetně užitečných komentářů.

100
d4nyll

EDIT: Viz také odpověď d4nyll níže výše pro skvělou mapu pro začátečníky!

V mé odpovědi níže naleznete další informace o tom, co je proměnná prostředí PATH, co .desktop soubory jsou a jak najít konkrétní program pomocí různých linuxových příkazů.

Původní odpověď:


Neexistuje žádná snadná odpověď.

/bin, /usr/bin, a /usr/share

Jak je uvedeno v ostatních odpovědích, většinu spustitelných souborů najdete pod /bin nebo /usr/bin a podpůrné soubory jsou nainstalovány v /usr/share.

/usr/local a /opt

Existuje však více adresářů, ve kterých Ubuntu instaluje aplikace. Proměnná PATH, která určuje, kde hledat zadaný příkaz, vám může poskytnout vodítko, vypadá to moje (echo $PATH v terminálu):

/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

Jak vidíte, nějaký software je nainstalován v /usr/local a mají svůj vlastní adresář a bin. Dalším místem, kde je nainstalováno mnoho programů, je /opt. Vlastnosti těchto umístění jsou vysvětleny souborový systém hierarchie standard , což je velmi dobré čtení. Bohužel, rozdíl mezi /opt a /usr/local není příliš dobře vysvětleno, někdo na nix stackexchange měl podrobnější vysvětlení:

  • /usr/local je místo k instalaci souborů vytvořených správcem, obvykle pomocí příkazu make. Cílem je zabránit střetům se soubory, které jsou součástí operačních systémů a které by jinak byly přepsány nebo přepsány. např. /usr/bin/foo je součástí operačního systému, zatímco /usr/local/bin/foo je místní alternativa,
  • /opt je adresář pro instalaci nevázaných balíčků každý do jejich vlastního podadresáře. Jsou již postaveny celé balíčky poskytované nezávislým distributorem softwaru třetích stran. Například someapp bude nainstalován v /opt/someapp, jeden z jeho příkazů by byl v /opt/someapp/bin/foo [a poté se obvykle vytvoří symbolický odkaz v jednom z adresářů bin v PATH, nebo se program vyvolá ze souboru na ploše (viz níže)].

Hledání konkrétního programu nebo příkazu

.desktop soubory

Chcete-li zjistit, kde je nainstalován konkrétní program, můžete provést řadu kroků. Nejprve musíte najít jeho .desktop soubor. Soubory na ploše jsou podobné jako zkratky ve Windows a pro systémové aplikace jsou umístěny v /usr/share/applications. Soubory na ploše pro aplikace, které jsou dostupné pouze pro aktuálního uživatele, jsou v ~/.local/share/applications. Vezměte například Google Chrome, který má soubor na ploše /usr/share/applications/google-chrome.desktop a hledejte řádek začínající Exec=, určuje, jak spustit Google Chrome. Říká:

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

Takže víte, že Google Chrome je v /opt.

Nyní pro Mozilla Firefox, který je umístěn v /usr/share/applications/firefox.desktop. Jednoduše to říká

Exec=firefox %u

Nejprve to zřejmě moc nepomůže, ale pak si uvědomíte, že firefox musí být v adresáři, který je v proměnné PATH (nejpravděpodobněji bin) a můžeme to vyhledat (viz níže).

Vyhledání příkazů

Chcete-li vyhledat příkazy, můžete použít jeden nebo více z následujících způsobů: type, which a whereis (vložil jsem odkaz na jejich manuálové stránky online).

  • type : popisuje příkaz a ukazuje, jak by byl interpretován, pokud bude použit jako název příkazu. Možné typy příkazu jsou:

    1. alias (alias Shell)
    2. funkce (funkce Shell)
    3. vestavěný (Shell vestavěný)
    4. soubor (diskový soubor)
    5. klíčové slovo (Shell vyhrazené slovo)

    (samotný typ je vestavěný Shell, zkuste to s type type: P)

    Provádění type firefox nám dává

    firefox is /usr/bin/firefox
    

    což jsme chtěli vědět

Pokud je příkazem soubor (který jste zkontrolovali pomocí type), můžete také použít:

  • který : zobrazuje úplnou cestu k příkazu,

    Provádění which firefox nám dává

     /usr/bin/firefox
    
  • whereis : najděte binární, zdrojové a manuální soubory stránek pro příkaz.

    Provádění whereis firefox nám dává

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

Bonus

Můžete si prohlédnout /usr/bin/firefox blíže k ls -l /usr/bin/firefox a to dává:

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

Vypadá to že /usr/bin/firefox je „pouze“ symbolický odkaz na skript /usr/lib/firefox/firefox.sh. Pokud skript prohlédnete, zjistíte, že skript volá /usr/lib/firefox/firefox.
Nyní můžete odpočívat v klidu :)

83
Gerhard Burger

Neexistuje žádný jediný adresář, který je přesným ekvivalentem složky Program Files. Způsob, jakým Linux pořádá věci, je mnohem odlišnější než Windows.

V systému Windows má každý nainstalovaný program svůj vlastní adresář v adresáři Program Files. V tomto adresáři jsou vytvořeny další podadresáře pro různé druhy souborů. Pro podadresáře neexistuje pevná struktura. Programy se rozhodují, co chtějí zavolat do každého adresáře a kam chtějí umístit co.

Ale v Linuxu, když je program nainstalován, jsou různé typy souborů zkopírovány na různá umístění. Spustitelné soubory jsou zkopírovány do / usr/bin, soubory knihovny do / usr/lib, dokumentace do jednoho nebo více z / usr/man, - / usr/info a / usr/doc. Pokud existují konfigurační soubory, jsou obvykle v domovském adresáři uživatele nebo v / etc.

18
binW

The C:\Program Files složka by byla /usr/bin v Ubuntu. /bin vypadá více jako C:\windows.

Z manuální stránka hierarchie souborového systém :

/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 má jinou strukturu než okna. Ubuntu umisťuje téměř všechny aplikace do jednoho adresáře, řekněme /usr/bin. Windows vytvoří novou složku, řekněme Mozilla Firefox a do něj přidejte konfiguraci, spustitelné soubory, DLL, obrázky atd. Ubuntu je rozdělí, spustitelné soubory jdou do /usr/bin, celosystémová konfigurace v /etc, sdílené objekty v /usr/lib, obrázky v /usr/share, ...

10
Lekensteyn

Linux 'Program Files' je v celé hierarchii. Mohlo by to být na /usr/bin, /bin, /opt/... Nebo v jiných adresářích.

Myslím, že najdete nějaký soubor související s vaší aplikací. Pak mám představu, jak hledat soubory, které jsou nainstalovány při instalaci programu.

  1. Nainstalujte synaptic vydáním Sudo apt-get install synaptic Na terminálu.
  2. Vyhledejte požadovaný balíček a hledejte ve vyhledávacím textu.
  3. Klepněte pravým tlačítkem myši na balíček a vyberte možnost Properties.
  4. Přejděte na kartu Installed File. Výsledek je stejný jako dpkg -L package_name.
  5. Zde najdete všechny soubory nainstalované pro balíček.

Je to proto, že linux přesouvá nainstalovaný soubor do adresářů samostatně na základě jejich typu.

  • Spustitelný soubor jde na /usr/bin Nebo /bin.
  • Ikona přejde na /usr/share/icons Nebo na ~/.local/share/icons Pro místní.
  • Celá aplikace (přenosná) na /opt.
  • Zkratka obvykle na /usr/share/applications Nebo na ~/.local/share/applications
  • Dokumentace na /usr/share/doc
  • Knihovna/modul na /usr/lib

A mnoho dalších adresářů. (CMIIW, přijímá korekci)

5
Abdillah

Způsob, jakým jsou nainstalovány programy Linux a Windows, je zcela odlišný.

Obvyklý vzor ve Windows je pro program; nebo spoustu programů, od jednoho dodavatele přejděte do jeho vlastního podadresáře v C:\programs\vendor nebo něco podobného.

V systému Linux jsou vaše soubory rozděleny do konkrétních podadresářů v závislosti na jejich funkci. Existují adresáře pro knihovny, ikony, manuálové stránky, soubory protokolu, konfigurace atd. Některé z nich můžete použít, ale systém je všechny spravuje. Nejsou spojeny dohromady, ale existují společně s podobnými soubory z jiných programů.

V běžné implementaci systému Linux tedy neexistuje skutečná ekvivalentní struktura adresářů systému Windows.

3
user unknown

V této odpovědi, když řeknu Unix, mám na mysli operační systémy Unix i Unix.

Ubuntu ve skutečnosti nemá složku programů obsahující všechna data pro každý program. V operačních systémech Unix a Unix je KAŽDÝ soubor souborem, dokonce i příkazy terminálu. Jsou to také soubory. Způsob, jakým Unix zpracovává programy, může být docela chaotický a organizovaný současně.

Ikony programů jsou uloženy v/usr/share/icons/*, spustitelné programy jsou obvykle uloženy v/usr/bin,/bin a dalších místech s adresáři bin (bin je pro binární zkratka). Knihovny, na kterých závisí programy, jsou v/lib.

Takže skončíte s adresářem, který neobsahuje všechna data pro jeden program, ale data pro program se rozprostře. I když se to zpočátku zdá velmi nepořádně, umožňuje sdílení standardních věcí, jako jsou knihovny a ikony.

Díky oprávnění pro každý soubor je představa o všem, co se jedná o soubor, velmi geniální, abych byl upřímný. Díky tomu je Unix MUCH bezpečnější než jiné operační systémy.

3
Thomas Boxley

Pokud instalujete vlastní programy, doporučuji 1 složku:

2
Timo