web-dev-qa-db-ja.com

Windowsのプログラムファイルに相当するLinuxとは何ですか?

Windowsでは、ほとんどのアプリケーションとアプリケーションデータは、C:\Program Files(および場合によってはC:\Program Files (x86))と呼ばれる特別なディレクトリに保存されます。このパスに相当するUbuntu/Linuxとは何ですか? 1つもありますか?

177
user11154

/binおよび/usr/binは、プログラムを開始するスクリプトの場所です。 「プログラムファイル」に直接相当するものは、おそらく/usr/shareです。そのディレクトリには、ほとんどのプログラムのさまざまなサポートファイルが含まれています。

Nautilus showing /usr/share

たとえば、ライブラリファイルはシステム全体で共有され(/libで)、オプションはユーザーが指定する(ユーザーのホームディレクトリで)か、/etcで普遍的に配置されるため、直接の同等物はおそらくありません。

そのため、debファイル、リポジトリ、またはビルドを介してプログラムをインストールすると、これらすべての場所にファイルが配置される可能性があります。

[編集]他の人が注意しているように、/sbin/usr/sbinもあります。さらに、/usr/local/bin/opt/bin、さらには/usr/games/。したがって、c:\program filesとの直接的な比較ではありません。

103
Scaine

編集: 以下のd4nyllの答え も参照してください。初心者向けの優れたマップです!

PATH環境変数とは何か、.desktopファイルとは何か、さまざまなLinuxコマンドを使用して特定のプログラムを見つける方法については、以下の回答を参照してください。

元の答え:


簡単な答えはありません。

/bin/usr/bin、および/usr/share

他の回答で述べたように、ほとんどの実行可能ファイルは/binまたは/usr/binの下にあり、サポートファイルは/usr/shareにインストールされます。

/usr/localおよび/opt

ただし、Ubuntuがアプリケーションをインストールするディレクトリはさらにあります。入力されたコマンドの検索場所を決定するPATH変数は、手がかりになるかもしれません。私のように見えます(端末ではecho $PATH):

/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

ご覧のとおり、一部のソフトウェアは/usr/localにインストールされ、独自のディレクトリとbinがあります。多くのプログラムがインストールされる別の場所は、/optです。これらの場所のプロパティは Filesystem Hierarchy Standard で説明されており、非常に読みやすいです。残念ながら、/opt/usr/localの違いはあまりよく説明されていません。 nix stackexchange の誰かがより詳細な説明を持っていました:

  • /usr/localは、通常はmakeコマンドを使用して、管理者が作成したファイルをインストールする場所です。これは、オペレーティングシステムの一部であるファイルとの衝突を回避することです。ファイルが上書きされるか、ローカルファイルが上書きされます。例えば。 /usr/bin/fooはOSの一部であり、/usr/local/bin/fooはローカルの代替であり、
  • /optは、バンドルされていないパッケージをそれぞれ独自のサブディレクトリにインストールするためのディレクトリです。これらは、独立したサードパーティのソフトウェアディストリビュータによって提供されるパッケージ全体が既に構築されています。たとえば、someapp/opt/someappにインストールされ、そのコマンドの1つは/opt/someapp/bin/fooにインストールされます。その後、通常、シンボリックリンクがbinディレクトリの1つに作成されますPATH、またはプログラムはデスクトップファイルから呼び出されます(以下を参照)。

特定のプログラムまたはコマンドを見つける

.desktopファイル

特定のプログラムがインストールされている場所を見つけるには、いくつかの手順を実行できます。まず、.desktopファイルを見つける必要があります。デスクトップファイルはWindowsのショートカットに似ており、システムアプリケーションの場合は/usr/share/applicationsにあります。現在のユーザーのみが使用できるアプリケーションのデスクトップファイルは、~/.local/share/applicationsにあります。たとえば、デスクトップファイル/usr/share/applications/google-chrome.desktopを持つGoogle Chromeを使用し、Exec=で始まる行を探します。これにより、Google Chromeの起動方法が決まります。それは言います:

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

Google Chromeが/optにあることがわかります。

/usr/share/applications/firefox.desktopにあるMozilla Firefoxの場合。それは単に言う

Exec=firefox %u

最初はそれほど役に立ちませんが、firefoxPATH変数(ほとんどの場合bin)にあるディレクトリになければならないことに気づきます。調べることができます(以下を参照)。

コマンドを調べる

コマンドを検索するには、次の1つ以上を使用できます。typewhich、およびwhereis(オンラインのマニュアルページへのリンクを含めました)。

  • type :コマンドを説明し、コマンド名として使用した場合の解釈方法を示します。コマンドの可能なタイプは次のとおりです。

    1. alias(シェルエイリアス)
    2. 関数(シェル関数)
    3. builtin(シェル組み込み)
    4. ファイル(ディスクファイル)
    5. キーワード(シェル予約語)

    (タイプ自体はシェル組み込みです。type type:Pで試してください)

    type firefoxを実行すると、

    firefox is /usr/bin/firefox
    

    これは私たちが知りたかったことです

コマンドがファイル(typeでチェックしたファイル)の場合は、次も使用できます。

  • which :コマンドのフルパスを表示します。

    which firefoxを実行すると、

     /usr/bin/firefox
    
  • whereis :コマンドのバイナリ、ソース、およびマニュアルページファイルを見つけます。

    whereis firefoxを実行すると、

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

ボーナス

/usr/bin/firefoxを使ってls -l /usr/bin/firefoxを詳しく調べることができます。

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

/usr/bin/firefoxは、スクリプト/usr/lib/firefox/firefox.shへのシンボリックリンク「のみ」であるようです。スクリプトを調べると、スクリプトが/usr/lib/firefox/firefoxを呼び出していることがわかります。
あなたは今安心して休むことができます:)

81
Gerhard Burger

後期回答-初心者が従うべきロードマップを作成しました。ファイルを探しているが、どこを探すべきかわからない場合、マップを使用して大まかにナビゲートできます。高解像度PNG こちら をダウンロードできます。関連する投稿を見つけることができます こちら 。時間が許せば、ファイルと投稿の両方を更新し続け、有益なコメントを取り入れます。

80
d4nyll

Program Files folderとまったく同じディレクトリはありません。 Linuxが物事を整理する方法は、Windowsとは大きく異なります。

Windowsでは、インストールするすべてのプログラムはProgram Filesディレクトリ内に独自のディレクトリを取得します。そのディレクトリには、さまざまな種類のファイル用にさらにサブディレクトリが作成されます。サブディレクトリの固定構造はありません。プログラムは、各ディレクトリを何に呼び出したいのか、どこに何を置きたいのかを自分で決定します。

しかし、Linuxでは、プログラムがインストールされると、さまざまな種類のファイルがさまざまな場所にコピーされます。実行可能ファイルは/ usr/binにコピーされ、ライブラリファイルは/ usr/libにコピーされ、ドキュメントは/ usr/manの1つ以上にコピーされます- / usr/infoおよび/ usr/doc構成ファイルがある場合、それらは通常ユーザーのホームディレクトリまたは/ etcにあります。

18
binW

Ubuntuでは、C:\Program Filesフォルダーは/usr/binになります。 /binC:\windowsに似ています。

ファイルシステム階層のマニュアルページ から:

/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の構造はWindowsとは異なります。 Ubuntuは、ほぼすべてのアプリケーションを/usr/binなどの1つのディレクトリに配置します。 WindowsはMozilla Firefoxなどの新しいフォルダーを作成し、その中に構成、実行可能ファイル、DLL、イメージなどを追加します。 Ubuntuはそれらを分割し、実行可能ファイルは/usr/binに、システム全体の構成は/etcに、共有オブジェクトは/usr/libに、画像は/usr/shareに...

10
Lekensteyn

Linuxの「プログラムファイル」は階層全体にあります。 /usr/bin/bin/opt/...、または別のディレクトリにあります。

アプリケーションに関連するファイルを見つけると思います。それから、プログラムのインストール時にインストールされるファイルの見方についてのアイデアがあります。

  1. ターミナルでSudo apt-get install synapticを発行してsynapticをインストールします。
  2. 目的のパッケージを探し、検索テキスト入力で検索します。
  3. パッケージを右クリックして、Propertiesを選択します。
  4. Installed Fileタブに移動します。結果はdpkg -L package_nameと同じです。
  5. そこには、パッケージ用にインストールされたすべてのファイルがあります。

Linuxは、インストールされたファイルをタイプに基づいて個別にディレクトリに移動するためです。

  • 実行可能ファイルは/usr/binまたは/binに移動します。
  • アイコンは/usr/share/iconsまたはローカルの~/.local/share/iconsに移動します。
  • /opt上のアプリケーション全体(ポータブル)。
  • 通常、/usr/share/applicationsまたは~/.local/share/applicationsのショートカット
  • /usr/share/docに関するドキュメント
  • /usr/libのライブラリ/モジュール

そして、他の多くのディレクトリ。 (CMIIW、修正の受け入れ)

5
Abdillah

LinuxプログラムとWindowsプログラムのインストール方法はまったく異なります。

Windowsの一般的なパターンはプログラム用です。または、1つのベンダーからのプログラムの束が、C:\ programs\vendorまたは同様のものの独自のサブディレクトリに入ります。

Linuxでは、ファイルは機能に応じて特定のサブディレクトリに分割されます。ライブラリ、アイコン、マニュアルページ、ログファイル、構成などのディレクトリがあります。それらのいくつかを使用することもできますが、システムはそれらすべてを管理します。それらは一緒に結合されていませんが、他のプログラムからの同様のファイルとともに存在しています。

したがって、通常のLinux実装には、そのWindowsディレクトリ構造に相当するものはありません。

3
user unknown

この答えで、私がUnixと言うとき、私はUnixとUnixライクなオペレーティングシステムを意味します。

Ubuntuには、各プログラムのすべてのデータを含むプログラムフォルダーが実際にはありません。 UnixおよびUnixライクなオペレーティングシステムでは、すべてがファイルであり、ターミナルコマンドでもあります。それらもファイルです。 Unixがプログラムを処理する方法は非常に混chaとしており、同時に編成されます。

プログラムのアイコンは/ usr/share/icons/*に保存され、プログラムの実行可能ファイルは通常/ usr/bin、/ bin、およびbinディレクトリの他の場所に保存されます(binはobvの略です)。プログラムが依存するライブラリは/ libにあります。

したがって、1つのプログラムのすべてのデータを含むディレクトリではなく、プログラムのデータが広がってしまいます。最初はこれは非常に混乱しているように見えますが、ライブラリやアイコンなどの標準的なものを共有することができます。

各ファイルのアクセス許可のおかげで、すべてがファイルであるという考えは正直に言うと非常に素晴らしいです。 Unix MUCHを他のオペレーティングシステムよりも安全にします。

3
Thomas Boxley

独自のプログラムをインストールする場合、1つのフォルダーをお勧めします。

2
Timo