Linux는 Windows의 프로그램 파일과 동일합니까?


179

Windows에서 대부분의 응용 프로그램 및 응용 프로그램 데이터는 C:\Program Files(때로는 C:\Program Files (x86)) 라는 특수 디렉토리에 저장됩니다 . 이 경로와 동등한 Ubuntu / Linux는 무엇입니까? 하나도 있습니까?


2
특정 패키지의 파일이 어디에 있는지 알고 싶다면 Synaptic 패키지 관리자를 사용할 수 있습니다. 패키지를 검색하고 설치된 파일을 확인하십시오.
Asmerito

6
나는이 질문이 동등한 것을 원하기 때문에 향상 될 것이라고 생각합니다 . 예를 들어 "설치 한 것과 실행할 수있는 것을 보자"와 "이 소프트웨어 / 그 소프트웨어의 세이브 게임을 찾으려고 노력하고 있습니다"라는 차이점이 있습니다. 그리고 아마도 "내가 조정할 수있는이 프로그램에 대한 설정 파일 / ini 파일이 의심됩니다". 이것들은 모두 "프로그램 파일"질문 일 수 있지만 여기에 다른 답변이 있습니다.
Nanne

4
관련 (그러나 중복으로 간주해서는 안 됨) : Ubuntu 파일 시스템 레이아웃을 이해하는 방법은 무엇입니까?
Eliah Kagan

답변:


104

/bin그리고 /usr/bin스크립트가이 프로그램을 시작하는 곳이다. "프로그램 파일"과 직접 동일 할 수도 있습니다 /usr/share( 파일 시스템 계층 표준 참조 ). 이 디렉토리에는 대부분의 프로그램에 대한 다양한 지원 파일이 있습니다.

노틸러스 / usr / share 표시

그러나 라이브러리 파일은 시스템에서 공유 /lib되고 (in ) 옵션은 사용자가 지정하거나 (사용자의 홈 디렉토리에) 또는 범용으로 위치 하므로 직접적으로 동등한 것은 아닐 것입니다 /etc.

따라서 deb 파일, 저장소 또는 빌드를 통해 프로그램을 설치하면 이러한 모든 위치에 파일이 배치 될 수 있습니다.

[편집] 그리고 다른 사람들이 참고로,도있다 /sbin하고 /usr/sbin. 게다가 /usr/local/bin, /opt/bin심지어 /usr/games/. 따라서 직접 비교하지 마십시오 c:\program files!


4
어때요 /opt? 비슷한 방식으로 많은 (보통 비공개 소스 또는 앱 기반) 프로그램을 보유하고있는 것을 보았습니다 Program Files.
Kupiakos

우분투 소프트웨어 센터의 출현으로 확실히 게임을 제공하는 것처럼 보입니다. 그러나 그때조차도 직접 비교하기 란 거의 불가능합니까? 요즘 가장 가까운 것 같습니다.
Scaine

디렉토리의 용도askubuntu.com/a/294492/41499 를 참조하십시오 /opt.
Gerhard Burger

/usr/local/bin사용자 / 회사에서 일반적으로 사용하지 않을 수있는 소프트웨어의 일반적인 위치입니다.
마크 스튜어트

그리고이 OS가 Windows보다 어떻게 더 낫습니까? 웹 개발을 위해 베팅하는 것으로 전환했습니다. 그러나 나는 그 계층 구조를 이해할 수 없습니다 ... 나는 PhpStorm을 설치했고 지금 1238128 폴더에 있습니다 ..
Toma Tomov

84

늦은 답변 -초보자가 따라야 할 로드맵을 만들었습니다. 파일을 찾고 있지만 찾을 위치를 모르는 경우지도를 사용하여 대략적으로 탐색 할 수 있습니다. 고해상도 PNG를 여기에서 다운로드 할 수 있습니다 . 관련 게시물은 여기에서 찾을 수 있습니다 . 시간이 허락 할 때 파일과 게시물을 계속 업데이트하여 유용한 의견을 제공합니다.


6
이 답변은 상단에 있어야 무시됩니다.
voldemort

83

편집 : 우수하고 초보자 친화적 인지도는 아래 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잘 설명되지는 누군가 유닉스 stackexchange은 보다 정교한 설명을했다 :

  • /usr/local일반적으로 make 명령을 사용하여 관리자가 빌드 한 파일을 설치하는 장소입니다. 아이디어는 운영 체제의 일부인 로컬 파일을 덮어 쓰거나 겹쳐 쓰는 파일과의 충돌을 피하는 것입니다. 예. 로컬 대안 인 /usr/bin/foo반면 OS의 일부입니다./usr/local/bin/foo
  • /opt번들되지 않은 패키지를 각각 자체 하위 디렉토리에 설치하는 디렉토리입니다. 이들은 독립적 인 타사 소프트웨어 배포자가 제공하는 전체 패키지로 이미 구축되어 있습니다. 예를 들어에 someapp설치 될 경우 /opt/someapp명령 중 하나가 실행됩니다 /opt/someapp/bin/foo(그리고 일반적으로의 bin디렉토리 중 하나에서 심볼릭 링크가 작성 PATH되거나 프로그램이 데스크탑 파일에서 호출됩니다 (아래 참조)).

특정 프로그램 또는 명령 찾기

.desktop 파일들

특정 프로그램이 설치된 위치를 찾으려면 여러 단계를 수행 할 수 있습니다. 먼저 .desktop파일 을 찾아야 합니다. 데스크톱 파일은 Windows의 바로 가기 및 시스템 응용 프로그램의 바로 가기와 유사합니다 /usr/share/applications. 현재 사용자 만 사용할 수있는 응용 프로그램의 데스크톱 파일은에 ~/.local/share/applications있습니다. 데스크톱 파일이있는 Chrome을 예로 들어으로 /usr/share/applications/google-chrome.desktop시작하는 행을 찾으면 Exec=Chrome을 시작하는 방법이 결정됩니다. 그것은 말한다 :

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

Chrome이에 있다는 것을 알고 있습니다 /opt.

지금에 위치하고 있으며 모질라 파이어 폭스 /usr/share/applications/firefox.desktop. 그것은 단순히 말한다

Exec=firefox %u

처음에는 이것이 그다지 도움이되지 않는 것처럼 보이지만 변수 firefox에있는 디렉토리 PATH(대부분 가능성이있는 bin)에 있어야 한다는 것을 알고 있으며 찾아 볼 수 있습니다 (아래 참조).

명령 찾기

명령을 찾으려면 다음 중 하나 이상을 사용할 수 있습니다 type, which그리고 whereis(나는 온라인으로 매뉴얼 페이지에 대한 링크를 포함 시켰습니다).

  • type : 명령을 설명하고 명령 이름으로 사용되는 경우 해석 방법을 나타냅니다. 명령에 가능한 유형은 다음과 같습니다.

    1. 별명 (쉘 별명)
    2. 기능 (쉘 기능)
    3. 내장 (쉘 내장)
    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.
당신은 지금 평화롭게 쉴 수 있습니다 :)


정말 멋진 답변입니다. 하나의 질문, Symbolic Link는 무엇입니까? Windows 단축키와 동일합니까?
Quazi Irfan 2016 년

@iamcreasy 감사합니다! 예, 일종의 지름길이지만 파일 복사를 피하려는 주된 의도가 있습니다. 창 바로 가기가 더 비슷합니다. 시작 메뉴 항목과 같은 데스크탑 파일.
Gerhard Burger

누군가가 심볼릭 링크를 통해 .desktop 파일을 사용하는 이유는 무엇입니까?
Quazi Irfan 2016 년

1
@iamcreasy .desktop 파일에서 설명 및 아이콘과 같은 추가 정보를 추가 할 수 있습니다 (예 : 표준 .freedesktop.org / desktop-entry-spec / latest / apa.html 참조 ). 이것은 '일반적인'파일입니다. . 심볼릭 링크는 다른 파일에만 링크되는 '특별한'파일입니다. 나는이 하드가 제대로 설명을 찾을 어쩌면 당신은 여기에 더 나은 해답을 찾을 수 있습니다 superuser.com/questions/253935/...
게르하르트 버거

18

Program Files 폴더 와 정확히 동일한 단일 디렉토리는 없습니다 . 리눅스가 물건을 배열하는 방식은 Windows와는 많이 다릅니다.

Windows에서 설치하는 모든 프로그램은 Program Files 디렉토리 내에 자체 디렉토리를 가져옵니다. 해당 디렉토리에서 다른 종류의 파일에 대해 추가 서브 디렉토리가 작성됩니다. 하위 디렉토리에는 고정 된 구조가 없습니다. 프로그램은 각 디렉토리를 호출 할 대상과 원하는 위치를 스스로 결정합니다.

그러나 Linux에서 프로그램이 설치되면 다른 종류의 파일이 다른 위치로 복사됩니다. 실행 파일은 / usr / bin으로 , 라이브러리 파일은 / usr / lib로 , 문서는 하나 이상의 / usr / man , / usr / info/ usr / doc 로 복사됩니다 . 구성 파일이있는 경우 일반적으로 사용자의 홈 디렉토리 또는 / etc에 있습니다.


파일이 속한 응용 프로그램이 아닌 목적에 따라 파일을 그룹화 할 이유가 있습니까? "유닉스 파일 그룹화 스타일"은 일반적으로 시스템 관리자 관점에서 더 편리합니까?
jojman

1
실제로는 아닙니다. 그들이 생각한 디자인 선택입니다. "man", "info"또는이 파일 구조에 의존하는 많은 다른 유틸리티를 만들 수 있지만. 예를 들어 "man"은 각 명령에 대한 설명서를 찾을 위치를 알고 있습니다. 문서의 표준 위치가 없으면 man은 작업 할 수 없습니다.
binW

10

C:\Program Files폴더가 될 것이다 /usr/bin우분투. /bin더 좋아 보인다 C:\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.

우분투는 윈도우와 다른 구조를 가지고 있습니다. 우분투는 거의 모든 응용 프로그램을 하나의 디렉토리에 배치 /usr/bin합니다. Windows는 새 폴더를 Mozilla Firefox만들고 구성, 실행 파일, DLL, 이미지 등을 추가합니다. 우분투는 그것들을 분리하고, 실행 파일을 넣고 /usr/bin, 시스템 전체 구성을 /etc공유 객체를 /usr/lib, 이미지를 /usr/share...


5

리눅스 '프로그램 파일'은 전체 계층에 있습니다. 그것은에 수 /usr/bin, /bin, /opt/..., 또는 다른 디렉토리에.

응용 프로그램과 관련된 파일을 찾을 것이라고 생각합니다. 그런 다음 프로그램 설치에 설치된 파일을 보는 방법에 대한 아이디어가 있습니다.

  1. 터미널에서 synaptic발급 sudo apt-get install 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, 수정 수락)


3

이 대답에서 유닉스를 말할 때 유닉스와 같은 운영 체제뿐만 아니라 유닉스를 의미합니다.

우분투에는 실제로 각 프로그램의 모든 데이터가 들어있는 프로그램 폴더가 없습니다. 유닉스 및 유닉스 계열 운영 체제에서 모든 것은 파일이며 터미널 명령입니다. 그들은 또한 파일입니다. 유닉스가 프로그램을 처리하는 방식은 매우 혼란스럽고 동시에 구성 될 수 있습니다.

프로그램 아이콘은 / usr / share / icons / *에 저장되며 프로그램 실행 파일은 일반적으로 / usr / bin, / bin 및 bin 디렉토리가있는 다른 위치에 저장됩니다 (bin은 바이너리의 약어입니다). 프로그램이 의존하는 라이브러리는 / lib에 있습니다.

따라서 하나의 프로그램에 대한 모든 데이터를 포함하는 디렉토리가 아니라 프로그램의 데이터가 분산됩니다. 처음에는 이것이 매우 혼란스러워 보이지만 라이브러리 및 아이콘과 같은 표준 항목을 공유 할 수 있습니다.

각 파일에 대한 권한 덕분에 파일이되는 모든 아이디어는 정직하게 훌륭합니다. 다른 운영 체제보다 Unix MUCH를 더 안전하게 만듭니다.


3

Linux와 Windows 프로그램이 설치되는 방식은 상당히 다릅니다.

Windows의 일반적인 패턴은 프로그램입니다. 또는 한 공급 업체의 여러 프로그램이 C : \ programs \ vendor 또는 자체의 하위 디렉토리로 이동합니다.

Linux에서 파일은 기능에 따라 특정 하위 디렉토리로 분할됩니다. 라이브러리, 아이콘, 매뉴얼 페이지, 로그 파일, 구성 등에 대한 디렉토리가 있습니다. 일부를 사용할 수도 있지만 시스템에서 모든 것을 관리합니다. 그것들은 서로 연결되어 있지 않지만 다른 프로그램의 유사한 파일과 함께 존재합니다.

따라서 일반적인 Linux 구현에서는 해당 Windows 디렉토리 구조와 동등한 것이 없습니다.


2

자체 프로그램을 설치하는 경우 1 개의 폴더를 권장합니다.


-2

에서 봐 /bin, /usr/bin하고 말한다 무엇 bin.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.