Domanda Qual è l'equivalente di Linux ai Programmi di Windows?


Sotto Windows, la maggior parte delle applicazioni e dei dati dell'applicazione sono memorizzati in una directory speciale conosciuta come C:\Program Files (e occasionalmente C:\Program Files (x86)). Qual è l'equivalente di Ubuntu / Linux a questo percorso? C'è anche uno?


146
2018-02-20 07:36


origine


Se vuoi sapere dove sono i file del pacchetto specifico, puoi utilizzare il gestore di pacchetti Synaptic. Basta cercare il pacchetto e vedere i suoi file installati. - Asmerito
Penso che questa domanda potrebbe essere migliorata da a ragionare per volere un equivalente. C'è una differenza tra, ad esempio, "vediamo cosa ho installato e cosa posso correre", e "Sto cercando di trovare il salvataggi di questo / quel pezzo di software, così posso giocherellare con esso" e forse anche "sospetto alcuni file di impostazione / ini-file per questo programma che posso modificare". Queste potrebbero essere tutte domande "Programmi", ma hanno risposte diverse qui. - Nanne
Correlato (ma probabilmente non dovrebbe essere considerato un duplicato): Come capire il layout del file system di Ubuntu? - Eliah Kagan


risposte:


/bin e /usr/bin è dove sono gli script che avviano i programmi. Probabilmente è l'equivalente diretto di "Programmi" /usr/share. Questa directory contiene i vari file di supporto per la maggior parte dei programmi.

Nautilus showing /usr/share

Probabilmente non esiste un equivalente diretto, poiché, ad esempio, i file di libreria sono condivisi su tutto il sistema (in /lib) e le opzioni sono specificate dall'utente (nella home directory dell'utente) o collocate universalmente in /etc.

Quindi l'installazione di un programma tramite un file deb, un repository o una build probabilmente collocherà i file in tutte queste posizioni.

[EDIT] E come altri notano, c'è anche /sbin e /usr/sbin. Più /usr/local/bin, /opt/bin e persino /usr/games/. Quindi decisamente non un confronto diretto con c:\program files!


91
2018-02-20 13:21



Che ne dite di /opt? Ho visto che in passato molti programmi (in genere closed-source o basati su app) in un modo simile Program Files. - Kupiakos
Sembra che stia andando in quel modo, con l'avvento del Software Center di Ubuntu che consegna i suoi giochi lì, certamente. Ma anche allora, a malapena un confronto diretto, davvero, vero? Potrebbe però essere la cosa più vicina in questi giorni. - Scaine
Vedere askubuntu.com/a/294492/41499 per quello che il /opt la directory è per. - Gerhard Burger


Non c'è una risposta facile.

/bin,/usr/bin, e /usr/share

Come menzionato nelle altre risposte, puoi trovare la maggior parte degli eseguibili sotto /bin o /usr/bine i file di supporto sono installati in /usr/share.

/usr/local e /opt

Esistono tuttavia più directory in cui Ubuntu installa le applicazioni. Il PATH variabile, che determina dove cercare un comando inserito, potrebbe darti un indizio, il mio sembra (echo $PATH in un terminale):

/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

Come puoi vedere, alcuni software sono installati in /usr/local e hanno la loro directory e bin. Un altro posto dove sono installati molti programmi è /opt. Le proprietà di queste posizioni sono spiegate dal Filesystem Hierarchy Standard, che è un'ottima lettura. Sfortunatamente, la differenza tra /opt e /usr/local non è molto ben spiegato, qualcuno sul unix stackexchange aveva una spiegazione più elaborata:

  • /usr/local è un posto dove installare i file creati dall'amministratore, di solito usando il comando make. L'idea è di evitare conflitti con i file che fanno parte dei sistemi operativi che potrebbero essere sovrascritti o sovrascrivere quelli locali altrimenti. per esempio. /usr/bin/foo è parte del sistema operativo mentre /usr/local/bin/foo è un'alternativa locale,
  • /opt è una directory per installare i pacchetti separati nella loro sottodirectory. Sono già stati creati interi pacchetti forniti da un distributore di software indipendente di terze parti. Per esempio someapp sarebbe installato in /opt/someapp, uno dei suoi comandi sarebbe in /opt/someapp/bin/foo [e quindi di solito un collegamento simbolico è fatto in uno dei bin directory nel PATH, o il programma è chiamato da un file desktop (vedi sotto)].

Trovare un programma o comando specifico

.desktop File

Per scoprire dove è installato un programma specifico, è possibile eseguire una serie di passaggi. Per prima cosa devi localizzarlo .desktop file. I file desktop sono simular alle scorciatoie in Windows e per le applicazioni di sistema in cui si trovano /usr/share/applications. Sono disponibili i file desktop per le applicazioni disponibili solo per l'utente corrente ~/.local/share/applications. Prendi ad esempio Google Chrome, che ha il file desktop /usr/share/applications/google-chrome.desktop e cerca la linea che inizia con Exec=, questo determina come avviare Google Chrome. Dice:

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

Quindi sai che c'è Google Chrome /opt.

Ora per Mozilla Firefox che si trova in /usr/share/applications/firefox.desktop. Dice semplicemente

Exec=firefox %u

All'inizio questo non sembra essere di aiuto, ma poi te ne rendi conto firefox deve essere in una directory che si trova nel PATH variabile (molto probabilmente a bin), e possiamo cercarlo (vedi sotto).

Cercare comandi

Per cercare i comandi puoi usare uno o più dei seguenti: type, which e whereis (Ho incluso un collegamento alle loro pagine di manuale online).

  • genere: descrive un comando e indica come verrà interpretato se usato come nome del comando. I tipi possibili per un comando sono:

    1. alias (alias di shell)
    2. funzione (funzione shell)
    3. builtin (shell incorporato)
    4. file (file disco)
    5. parola chiave (parola riservata alla shell)

    (il tipo stesso è un comando di comando incorporato in bash, provalo con type type : P)

    Esecuzione type firefox ci da

    firefox is /usr/bin/firefox
    

    che è quello che volevamo sapere

Se un comando è un file (che hai controllato con type) puoi quindi utilizzare anche:

  • quale: mostra il percorso completo del comando,

    Esecuzione which firefox ci da

     /usr/bin/firefox
    
  • dove si trova: individua i file binario, di origine e di pagina manuale per un comando.

    Esecuzione whereis firefox ci da

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

indennità

Puoi ispezionare /usr/bin/firefox più vicino ls -l /usr/bin/firefox e questo dà:

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

Sembra che /usr/bin/firefox è "solo" un link simbolico alla sceneggiatura /usr/lib/firefox/firefox.sh. Se si ispeziona lo script, si scopre che lo script chiama /usr/lib/firefox/firefox.
Puoi riposare in pace ora :)

MODIFICARE: Guarda anche La risposta di d4nyll  per una bella tabella di marcia.


72
2018-05-12 19:49



Risposta davvero interessante. Una domanda, cos'è il collegamento simbolico? È equivalente a shortcut di Windows? - Quazi Irfan
@iamcreasy grazie! Sì, sono una sorta di scorciatoia, ma con l'intenzione principale di evitare copie di file. Le scorciatoie di Windows sono più paragonabili a. file desktop, che possono essere utilizzati per creare, ad esempio, elementi startmenu. - Gerhard Burger
Perché qualcuno dovrebbe usare il file .desktop su collegamenti simbolici e viceversa? - Quazi Irfan
@iamcreasy Nei file .desktop è possibile aggiungere ulteriori informazioni, come una descrizione e un'icona (vedere un esempio qui: standards.freedesktop.org/desktop-entry-spec/latest/apa.html), è un file 'normale'. Un collegamento simbolico è un file 'speciale' che si collega solo a un altro file. Trovo questo difficile da spiegare correttamente, ma forse puoi trovare una risposta migliore qui: superuser.com/questions/253935/... - Gerhard Burger


Risposta in ritardo - Ho creato una tabella di marcia per i principianti da seguire. Se stanno cercando un file ma non sanno dove guardare, possono usare la mappa per spostarsi approssimativamente. È possibile scaricare un PNG ad alta risoluzione Qui. Puoi trovare il post correlato Qui. Continuerò ad aggiornare sia il file che il post quando il tempo lo permetterà, incorporando commenti utili.


60
2017-11-20 18:25



questa risposta è ignorata dovrebbe essere al top. - voldemort


Non esiste una singola directory che sia l'equivalente esatto di File di programma cartella. Il modo in cui Linux organizza le cose è molto diverso da Windows.

In Windows, ogni programma che installiamo ottiene la propria directory all'interno della directory Programmi. In quella directory, vengono create ulteriori sottodirectory per diversi tipi di file. Non esiste una struttura fissa per le sottodirectory. I programmi decidono da soli cosa vogliono chiamare ogni directory e dove vogliono mettere cosa.

Ma in Linux quando viene installato un programma, diversi tipi di file vengono copiati in posizioni diverse. Gli eseguibili sono copiati in / Usr / bin, file di libreria a / Usr / lib, documentazione per uno o più di / Usr / man, / Usr / info e / Usr / doc. Se ci sono file di configurazione, solitamente si trovano nella home directory dell'utente o in /eccetera.


16
2018-02-24 15:19



C'è qualche ragione per questo raggruppamento di file in base al loro scopo piuttosto che in base all'applicazione a cui appartengono i file? Lo "stile di raggruppamento dei file Unix" è generalmente più conveniente dal punto di vista dell'amministratore di sistema? - jojman
non proprio. È una scelta di design che hanno fatto credo. Sebbene consenta di creare utility come "man", "info" o molte altre che dipendono da questa struttura di file. Ad esempio "uomo" sa dove cercare la documentazione per ogni comando. Se non esiste una posizione standard di documenti, l'uomo non può funzionare. - binW


Il C:\Program Files cartella sarebbe /usr/bin in Ubuntu. /bin sembra più simile C:\windows.

Dal pagina di manuale della gerarchia del filesystem:

/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 ha una struttura diversa rispetto a Windows. Ubuntu colloca quasi tutte le applicazioni in una directory, per esempio /usr/bin. Windows creerebbe una nuova cartella, per esempio Mozilla Firefoxe aggiungere configurazione, eseguibili, DLL, immagini, ecc. Ubuntu li divide, entrano gli eseguibili /usr/bin, configurazione a livello di sistema in /etc, oggetti condivisi in /usr/lib, immagini in /usr/share, ...


9
2018-02-20 14:42





I 'file di programma' di Linux sono nell'intera gerarchia. Potrebbe essere acceso /usr/bin, /bin, /opt/...o in altre directory.

Penso che troverai alcuni file relativi alla tua applicazione. Quindi, ho un'idea su come guardare i file che sono installati sull'installazione del programma.

  1. Installare synaptic emettendo sudo apt-get install synaptic sul terminale.
  2. Cerca il pacchetto desiderato, cerca nell'input del testo di ricerca.
  3. Fare clic con il pulsante destro del mouse sul pacchetto e selezionare Properties.
  4. Sposta a Installed File scheda. Il risultato è lo stesso di dpkg -L package_name.
  5. Lì troverai tutti i file installati per il pacchetto.

È perché linux sposta il file installato in directory separatamente in base al loro tipo.

  • Eseguibile va a /usr/bin o /bin.
  • Icona va a /usr/share/icons o via ~/.local/share/icons per locale
  • Intera applicazione (portatile) su /opt.
  • Scorciatoia di solito su /usr/share/applications o via ~/.local/share/applications
  • Documentazione su /usr/share/doc
  • Libreria / modulo acceso /usr/lib

E molte altre directory. (CMIIW, accettando la correzione)


3
2018-03-15 14:09





In questa risposta quando dico Unix intendo Unix e sistemi operativi simili a Unix.

Ubuntu in realtà non ha una cartella programmi contenente tutti i dati per ogni programma. Nei sistemi operativi Unix e Unix, TUTTO è un file, anche i comandi del terminale. Sono anche file. Il modo in cui Unix gestisce i programmi può essere piuttosto caotico e organizzato allo stesso tempo.

Le icone per i programmi sono memorizzate in / usr / share / icons / *, gli eseguibili del programma sono solitamente memorizzati in / usr / bin, / bin e in altri posti con le directory bin (bin è obv short per binary). Le librerie da cui dipendono i programmi sono in / lib.

Quindi si finisce con una directory che non contiene tutti i dati per un programma, ma i dati per il programma sono distribuiti. Mentre all'inizio sembra molto disorganizzato, consente la condivisione di elementi standard come librerie e icone.

Grazie alle autorizzazioni per ogni file, l'idea che tutto sia un file è molto brillante per essere onesti. Rende Unix MUCH più sicuro rispetto ad altri sistemi operativi.


2
2018-02-20 19:25





Il modo in cui sono installati i programmi Linux e Windows è molto diverso.

Lo schema comune in Windows è per un programma; o una manciata di programmi, da un venditore vai nella sua sottodirectory in C: \ programs \ vendor o qualcosa di simile.

In Linux, i tuoi file sono suddivisi tra sottodirectory specifiche a seconda della loro funzione. Esistono directory per librerie, icone, pagine man, file di log, configurazione e così via. Puoi usarne alcuni, ma il sistema li gestirà tutti. Non sono accoppiati, ma esistono insieme a file simili di altri programmi.

Quindi non esiste un vero equivalente a quella struttura di directory di Windows in una normale implementazione Linux.


2
2018-02-20 14:36





Se si installano i propri programmi, raccomando 1 cartella:


1
2018-03-12 19:27





Guarda dentro /bin, /usr/bine qualsiasi altra cosa che dice bin.


-2
2018-05-12 19:36