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

144

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

    
posta Kaz Wolfe 20.02.2011 - 08:36

10 risposte

90

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

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

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

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

    
risposta data Scaine 20.02.2011 - 14:21
72

Non esiste 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/bin , ei file di supporto sono installati in /usr/share .

/usr/local e /opt

Esistono tuttavia più directory in cui Ubuntu installa le applicazioni. La variabile PATH , che determina dove cercare un comando immesso, potrebbe darti un indizio, il mio è come ( 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 in cui sono installati molti programmi è /opt . Le proprietà di queste posizioni sono spiegate dal standard della gerarchia del filesystem , che è un'ottima lettura. Sfortunatamente, la differenza tra /opt e /usr/local non è spiegata molto bene, qualcuno su unix stackexchange ha avuto 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 in ciascuna sottodirectory. Sono già stati creati interi pacchetti forniti da un distributore di software indipendente di terze parti. Ad esempio someapp verrebbe installato in /opt/someapp , uno dei suoi comandi sarebbe in /opt/someapp/bin/foo [e di solito un collegamento simbolico viene eseguito in una delle directory bin in PATH , oppure il programma è chiamato da un file desktop (vedi sotto)].

Ricerca di un programma o comando specifico

.desktop file

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

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

Quindi sai che Google Chrome è in /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 ti rendi conto che firefox deve essere in una directory che si trova nella variabile PATH (molto probabilmente un bin ), e possiamo vederlo su (vedi sotto).

Ricerca dei comandi

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

  • tipo : descrive un comando e indica come sarebbe 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 builtin)
    4. file (file del disco)
    5. parola chiave (parola riservata della shell)

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

    L'esecuzione di type firefox ci dà

    firefox is /usr/bin/firefox
    

    che è quello che volevamo sapere

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

  • quale : mostra il percorso completo del comando,

    L'esecuzione di which firefox ci dà

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

    L'esecuzione di whereis firefox ci dà

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

Bonus

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

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

Sembra che /usr/bin/firefox sia "solo" un link simbolico allo script /usr/lib/firefox/firefox.sh . Se controlli lo script, scopri che lo script chiama /usr/lib/firefox/firefox .
Puoi riposare in pace ora:)

EDIT : consulta anche la risposta di d4nyll per una buona roadmap.

    
risposta data Gerhard Burger 12.05.2013 - 21:49
60

Risposta tarda : ho creato una tabella di marcia da seguire per i principianti. Se stanno cercando un file ma non sanno dove guardare, possono usare la mappa per spostarsi approssimativamente. Puoi 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 consente, incorporando commenti utili.

    
risposta data d4nyll 20.11.2014 - 19:25
16

Non esiste una singola directory che sia l'equivalente esatto della cartella Programmi . 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 quello che 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 vengono copiati in / usr / bin , file di libreria in / usr / lib , documentazione in uno o più di / usr / man , < forte> / usr / info e / usr / doc . Se ci sono file di configurazione, solitamente si trovano nella home directory dell'utente o in / etc .

    
risposta data binW 24.02.2011 - 16:19
9

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

Dalla 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 da Windows. Ubuntu colloca quasi tutte le applicazioni in una directory, diciamo /usr/bin . Windows creerebbe una nuova cartella, diciamo Mozilla Firefox , e aggiungerebbe configurazione, eseguibili, DLL, immagini, ecc. Ubuntu li suddivide, gli eseguibili vanno in /usr/bin , la configurazione a livello di sistema in /etc , gli oggetti condivisi in /usr/lib , le immagini in /usr/share , ...

    
risposta data Lekensteyn 20.02.2011 - 15:42
3

I "file di programma" di Linux sono nell'intera gerarchia. Potrebbe essere su /usr/bin , /bin , /opt/... o su 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. Installa synaptic immettendo sudo apt-get install synaptic sul terminale.
  2. Cerca il pacchetto che desideri, cerca nel testo da cercare.
  3. Fai clic con il pulsante destro del mouse sul pacchetto e seleziona Properties .
  4. Sposta nella scheda Installed File . Il risultato è uguale a dpkg -L package_name .
  5. Qui 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 .
  • L'icona va a /usr/share/icons o su ~/.local/share/icons per local.
  • Intera applicazione (portatile) su /opt .
  • Collegamento di solito su /usr/share/applications o su ~/.local/share/applications
  • Documentazione su /usr/share/doc
  • Libreria / modulo su /usr/lib

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

    
risposta data Abdillah 15.03.2014 - 15:09
2

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 non una directory che 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.

    
risposta data Thomas Boxley 20.02.2011 - 20:25
2

Il modo in cui i programmi Linux e Windows sono installati è 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.

    
risposta data user unknown 20.02.2011 - 15:36
1

Se installi i propri programmi, ti consiglio 1 cartella:

risposta data Timo 12.03.2015 - 20:27
-2

Cerca in /bin , /usr/bin e in qualsiasi altra cosa che dice bin .

    
risposta data cpu2 12.05.2013 - 21:36

Leggi altre domande sui tag