Qual é o equivalente do Linux para os arquivos de programas do Windows?

149

No Windows, a maioria dos aplicativos e dados do aplicativo são armazenados em um diretório especial conhecido como C:\Program Files (e ocasionalmente C:\Program Files (x86) ). Qual é o equivalente do Ubuntu / Linux para este caminho? Existe mesmo um?

    
por Kaz Wolfe 20.02.2011 / 08:36

10 respostas

92

/bin e /usr/bin é onde estão os scripts que iniciam os programas. O equivalente direto de "Arquivos de Programas", embora seja provavelmente /usr/share . Esse diretório contém os vários arquivos de suporte para a maioria dos programas.

Provavelmente não existe um equivalente direto, pois, por exemplo, os arquivos de biblioteca são compartilhados pelo sistema (em /lib ) e as opções são especificadas pelo usuário (no diretório inicial do usuário) ou universalmente localizadas em /etc .

Portanto, instalar um programa através de um arquivo deb, repositório ou build provavelmente colocará arquivos em todos esses locais.

[EDITAR] E, como os outros observam, também há /sbin e /usr/sbin . Mais /usr/local/bin , /opt/bin e até /usr/games/ . Então definitivamente não é uma comparação direta com c:\program files !

    
por Scaine 20.02.2011 / 14:21
72

Não há uma resposta fácil.

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

Como mencionado em outras respostas, você pode encontrar a maioria dos executáveis em /bin ou /usr/bin , e os arquivos de suporte estão instalados em /usr/share .

/usr/local e /opt

No entanto, existem mais diretórios nos quais o Ubuntu instala aplicativos. A variável PATH , que determina onde procurar um comando digitado, pode lhe dar uma pista, a minha se parece com ( echo $PATH em um 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

Como você pode ver, alguns softwares são instalados em /usr/local e possuem seu próprio diretório e bin . Outro local onde muitos programas estão instalados é /opt . As propriedades desses locais são explicadas pelo Padrão de Hierarquia do Sistema de Arquivos , que é uma leitura muito boa. Infelizmente, a diferença entre /opt e /usr/local não é muito bem explicada, alguém no unix stackexchange tinha uma explicação mais elaborada:

  • /usr/local é um local para instalar arquivos criados pelo administrador, geralmente usando o comando make. A idéia é evitar conflitos com arquivos que fazem parte dos sistemas operacionais que seriam sobrescritos ou sobrescreveriam os locais de outra forma. por exemplo. /usr/bin/foo faz parte do sistema operacional, enquanto /usr/local/bin/foo é uma alternativa local,
  • /opt é um diretório para instalar pacotes não incluídos em seu próprio subdiretório. Eles já são pacotes completos construídos fornecidos por um distribuidor independente de software de terceiros. Por exemplo, someapp seria instalado em /opt/someapp , um de seus comandos seria em /opt/someapp/bin/foo [e, em seguida, normalmente um link simbólico é feito em um dos diretórios bin no PATH , ou o programa é chamado de um arquivo de desktop (veja abaixo)].

Encontrar um programa ou comando específico

.desktop arquivos

Para descobrir onde um programa específico está instalado, você pode executar várias etapas. Primeiro você precisa localizar seu arquivo .desktop . Os arquivos da área de trabalho são semelhantes aos atalhos no Windows e, para aplicativos do sistema, estão localizados em /usr/share/applications . Os arquivos da área de trabalho para aplicativos que estão disponíveis apenas para o usuário atual estão em ~/.local/share/applications . Tomemos por exemplo o Google Chrome, que tem o arquivo da área de trabalho /usr/share/applications/google-chrome.desktop e procura a linha que começa com Exec= , isso determina como iniciar o Google Chrome. Diz:

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

Então você sabe que o Google Chrome está em /opt .

Agora, para o Mozilla Firefox, que está localizado em /usr/share/applications/firefox.desktop . Simplesmente diz

Exec=firefox %u

A princípio, isso não parece ajudar muito, mas você percebe que firefox deve estar em um diretório que esteja na variável PATH (provavelmente em bin ), e podemos procurar up (veja abaixo).

Procurando comandos

Para pesquisar comandos, você pode usar uma ou mais das seguintes opções: type , which e whereis (incluí um link para as páginas de manuais on-line).

  • tipo : descreve um comando e indica como ele seria interpretado se usado como um nome de comando. Tipos possíveis para um comando são:

    1. alias (alias do shell)
    2. função
    3. (função shell)
    4. incorporado (construído no shell)
    5. arquivo (arquivo de disco)
    6. palavra-chave (palavra reservada do shell)

    (o próprio tipo é um comando de comando bash, experimente com type type : P)

    A execução de type firefox nos dá

    firefox is /usr/bin/firefox
    

    que é o que nós queríamos saber

Se um comando for um arquivo (que você verificou com type ), você também poderá usar:

  • que : mostra o caminho completo do comando,

    A execução de which firefox nos dá

     /usr/bin/firefox
    
  • whereis : localize os arquivos binários, fonte e manual para um comando.

    A execução de whereis firefox nos dá

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

Bônus

Você pode inspecionar /usr/bin/firefox mais perto de ls -l /usr/bin/firefox e isso nos dá:

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

Parece que /usr/bin/firefox é 'apenas' um link simbólico para o script /usr/lib/firefox/firefox.sh . Se você inspecionar o script, descobrirá que o script chama /usr/lib/firefox/firefox .
Você pode descansar em paz agora:)

EDITAR : Veja também a resposta do d4nyll para um bom roteiro.

    
por Gerhard Burger 12.05.2013 / 21:49
61

Resposta tardia - criei um roteiro para iniciantes seguirem. Se eles estão procurando por um arquivo, mas não sabem onde procurar, eles podem usar o mapa para navegar por aí. Você pode fazer o download de um PNG de alta resolução aqui . Você pode encontrar a postagem relacionada aqui . Vou continuar atualizando o arquivo e o post quando o tempo permitir, incorporando comentários úteis.

    
por d4nyll 20.11.2014 / 19:25
16

Não existe um único diretório que seja o equivalente exato da pasta Arquivos de Programas . A forma como o Linux organiza as coisas é muito diferente do Windows.

No Windows, cada programa que instalamos recebe seu próprio diretório dentro do diretório Arquivos de Programas. Nesse diretório, outros subdiretórios são criados para diferentes tipos de arquivos. Não há estrutura fixa para subdiretórios. Os programas decidem por si mesmos o que desejam chamar em cada diretório e onde querem colocar o quê.

Mas no Linux quando um programa é instalado, diferentes tipos de arquivos são copiados para locais diferentes. Os executáveis são copiados para / usr / bin , arquivos de biblioteca para / usr / lib , documentação para um ou mais de / usr / man , < strong> / usr / info e / usr / doc . Se houver arquivos de configuração, eles geralmente estarão no diretório inicial do usuário ou em / etc .

    
por binW 24.02.2011 / 16:19
9

A pasta C:\Program Files seria /usr/bin no Ubuntu. /bin parece mais com C:\windows .

Na página de manual da hierarquia do sistema de arquivos :

/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.

O Ubuntu tem uma estrutura diferente do Windows. O Ubuntu coloca quase todos os aplicativos em um diretório, digamos /usr/bin . O Windows criaria uma nova pasta, digamos Mozilla Firefox , e adicionaria configurações, executáveis, DLLs, imagens etc. O Ubuntu os divide, os executáveis vão em /usr/bin , a configuração de todo o sistema em /etc , os objetos compartilhados em /usr/lib , as imagens em /usr/share , ...

    
por Lekensteyn 20.02.2011 / 15:42
3

Os 'Arquivos de Programas' do Linux estão em toda a hierarquia. Pode estar em /usr/bin , /bin , /opt/... ou em outros diretórios.

Acho que você encontrará algum arquivo relacionado ao seu aplicativo. Então, eu tenho uma idéia de como procurar arquivos que são instalados na instalação do programa.

  1. Instale synaptic emitindo sudo apt-get install synaptic no terminal.
  2. Procure o pacote desejado, pesquise na entrada de texto de pesquisa.
  3. Clique com o botão direito do mouse no pacote e selecione Properties .
  4. Mover para a guia Installed File . O resultado é o mesmo que dpkg -L package_name .
  5. Lá você encontrará todos os arquivos instalados para o pacote.

É porque o Linux move o arquivo instalado para diretórios separadamente com base em seu tipo.

  • O executável vai para /usr/bin ou /bin .
  • O ícone vai para /usr/share/icons ou ~/.local/share/icons para local.
  • Aplicativo inteiro (portátil) em /opt .
  • Atalho geralmente em /usr/share/applications ou em ~/.local/share/applications
  • Documentação sobre /usr/share/doc
  • Biblioteca / módulo em /usr/lib

E muitos outros diretórios. (CMIIW, aceitando correção)

    
por Abdillah 15.03.2014 / 15:09
2

Nessa resposta, quando digo Unix, quero dizer o Unix, assim como os sistemas operacionais do tipo Unix.

O Ubuntu não possui uma pasta de programas contendo todos os dados de cada programa. Em sistemas operacionais Unix e Unix, TUDO é um arquivo, até mesmo os comandos do terminal. Eles são arquivos também. A forma como o Unix lida com os programas pode ser bastante caótica e organizada ao mesmo tempo.

Ícones para programas são armazenados em / usr / share / icons / *, os executáveis de programas são geralmente armazenados em / usr / bin, / bin e outros locais com diretórios bin (bin é obv short para binário). As bibliotecas das quais os programas dependem estão em / lib.

Assim, você acaba não com um diretório contendo todos os dados de um programa, mas os dados do programa se espalham. Embora a princípio isso pareça muito desorganizado, permite o compartilhamento de itens padrão, como bibliotecas e ícones.

Graças a permissões para cada arquivo, a ideia de tudo ser um arquivo é muito brilhante para ser honesto. Isso torna o Unix MUCH mais seguro que outros sistemas operacionais.

    
por Thomas Boxley 20.02.2011 / 20:25
2

A maneira como os programas Linux e Windows são instalados é bem diferente.

O padrão comum no Windows é para um programa; ou um monte de programas, de um fornecedor entrar em seu próprio subdiretório em C: \ programs \ vendor ou algo similar.

No Linux, seus arquivos são divididos entre sub-diretórios específicos, dependendo de sua função. Existem diretórios para bibliotecas, ícones, páginas man, arquivos de log, configuração e assim por diante. Você pode usar alguns deles, mas o sistema gerenciará todos eles. Eles não são acoplados juntos, mas existem junto com arquivos similares de outros programas.

Portanto, não há um equivalente real para essa estrutura de diretórios do Windows em uma implementação regular do Linux.

    
por user unknown 20.02.2011 / 15:36
1

Se você instalar os próprios programas, recomendo uma pasta:

por Timo 12.03.2015 / 20:27
-2

Procure em /bin , /usr/bin e qualquer outra coisa que diga bin .

    
por cpu2 12.05.2013 / 21:36