ลินุกซ์เทียบเท่ากับไฟล์โปรแกรมของ Windows คืออะไร


179

ภายใต้ Windows แอปพลิเคชันและข้อมูลแอปพลิเคชันส่วนใหญ่จะถูกเก็บไว้ในไดเรกทอรีพิเศษที่รู้จักกันในชื่อC:\Program Files(และบางครั้งC:\Program Files (x86)) Ubuntu / Linux เทียบเท่ากับเส้นทางนี้คืออะไร มีแม้แต่อันเดียวไหม?


2
หากคุณต้องการที่จะรู้ว่าไฟล์ของแพคเกจเฉพาะคุณสามารถใช้จัดการแพคเกจ Synaptic เพียงค้นหาแพ็คเกจและดูไฟล์ที่ติดตั้ง
Asmerito

6
ฉันคิดว่าคำถามนี้จะได้รับการปรับปรุงด้วยเหตุผลที่ต้องการความเท่าเทียมกัน ตัวอย่างเช่นมีความแตกต่างระหว่าง "ให้ดูสิ่งที่ฉันติดตั้งและสิ่งที่ฉันสามารถเรียกใช้" และ "ฉันพยายามค้นหาเกมบันทึกของซอฟต์แวร์นี้ / ชิ้นส่วนนั้นดังนั้นฉันจึงสามารถเล่นกับมันได้" และบางทีแม้แต่ "ฉันสงสัยว่าการตั้งค่าไฟล์ / ini-file สำหรับโปรแกรมนี้ที่ฉันสามารถปรับแต่งได้" สิ่งเหล่านั้นอาจเป็นคำถาม "ไฟล์โปรแกรม" แต่มีคำตอบที่แตกต่างกันที่นี่
Nanne

4
ที่เกี่ยวข้อง (แต่อาจไม่ถือว่าซ้ำกัน): จะเข้าใจเค้าโครงของระบบไฟล์ Ubuntu อย่างไร
Eliah Kagan

คำตอบ:


104

/binและ/usr/binเป็นที่ที่สคริปต์เริ่มต้นโปรแกรม การเทียบเท่าโดยตรงของ "Program Files" อาจเป็นไปได้/usr/share( ดูที่ลำดับชั้นของระบบไฟล์ ) ไดเรกทอรีนั้นมีไฟล์สนับสนุนต่าง ๆ สำหรับโปรแกรมส่วนใหญ่

Nautilus แสดง / usr / share

มีอาจจะไม่เทียบเท่าโดยตรง แต่เนื่องจากตัวอย่างเช่นไฟล์ไลบรารีที่ใช้ร่วมกันทั่วทั้งระบบ (ใน/lib) และตัวเลือกอย่างใดอย่างหนึ่งเป็นผู้ใช้ที่ระบุ (ในไดเรกทอรีบ้านผู้ใช้) /etcหรืออยู่ในระดับสากล

ดังนั้นการติดตั้งโปรแกรมผ่านไฟล์ deb ที่เก็บหรือบิลด์จะวางไฟล์ในตำแหน่งเหล่านี้ทั้งหมด

[แก้ไข] และคนอื่น ๆ ทราบนอกจากนี้ยังมีและ/sbin /usr/sbinพลัส/usr/local/bin, และแม้กระทั่ง/opt/bin /usr/games/ดังนั้นแน่นอนไม่ใช่การเปรียบเทียบโดยตรงกับc:\program files!


4
แล้วไง/optล่ะ ผมเคยเห็นที่ถือจำนวนมาก (มักจะปิดแหล่งที่มาหรือแอปพลิเค-based) Program Filesโปรแกรมมาก่อนในทำนองเดียวกันกับ
Kupiakos

ดูเหมือนว่าจะเป็นอย่างนั้นด้วยการที่ Ubuntu Software Center ส่งมอบเกมของพวกเขาที่นั่นอย่างแน่นอน แต่ถึงอย่างนั้นการเปรียบเทียบโดยตรงแทบจะไม่จริงเหรอ? อาจเป็นสิ่งที่ใกล้เคียงที่สุดในทุกวันนี้
Scaine

ดูaskubuntu.com/a/294492/41499สำหรับสิ่งที่/optไดเรกทอรีใช้
แกร์ฮาร์ดเบอร์เกอร์

/usr/local/binเป็นตำแหน่งกึ่งร่วมสำหรับซอฟต์แวร์ที่ผู้ใช้ / บริษัท อาจไม่นิยมใช้
Mark Stewart

และระบบปฏิบัติการนี้ดีกว่า 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มากมาย คุณสมบัติของสถานที่เหล่านี้มีการอธิบายโดยมาตรฐานระบบไฟล์ลำดับชั้นซึ่งเป็นอ่านที่ดีมาก น่าเสียดายที่ความแตกต่างระหว่าง/optและ/usr/localไม่ได้อธิบายได้ดีใครบางคนบนunix stackexchangeมีคำอธิบายที่ละเอียดยิ่งขึ้น:

  • /usr/localเป็นสถานที่สำหรับติดตั้งไฟล์ที่สร้างโดยผู้ดูแลระบบโดยปกติจะใช้คำสั่ง make แนวคิดคือเพื่อหลีกเลี่ยงการปะทะกับไฟล์ที่เป็นส่วนหนึ่งของระบบปฏิบัติการที่อาจถูกเขียนทับหรือเขียนทับไฟล์ในเครื่อง เช่น. /usr/bin/fooเป็นส่วนหนึ่งของระบบปฏิบัติการในขณะที่/usr/local/bin/fooเป็นทางเลือกในท้องถิ่น
  • /optเป็นไดเร็กทอรีสำหรับติดตั้งแพ็กเกจ unbundled ในไดเร็กทอรีย่อยของตนเอง พวกเขาสร้างแพคเกจทั้งหมดแล้วโดยผู้จัดจำหน่ายซอฟต์แวร์บุคคลที่สามที่เป็นอิสระ ตัวอย่างเช่นsomeappจะติดตั้งใน/opt/someappหนึ่งคำสั่งของมันจะอยู่ใน/opt/someapp/bin/foo[แล้วโดยปกติแล้วลิงค์สัญลักษณ์จะทำในหนึ่งในbinไดเรกทอรีในPATHหรือโปรแกรมที่เรียกว่าจากไฟล์เดสก์ทอป (ดูด้านล่าง)]

การค้นหาโปรแกรมหรือคำสั่งเฉพาะ

.desktop ไฟล์

เมื่อต้องการค้นหาตำแหน่งที่ติดตั้งโปรแกรมเฉพาะคุณสามารถทำหลายขั้นตอน ก่อนอื่นคุณต้องค้นหา.desktopไฟล์ของมัน ไฟล์เดสก์ท็อปเป็นเสมือนทางลัดใน Windows และสำหรับแอปพลิเคชันระบบที่อยู่ใน/usr/share/applicationsนั้น ~/.local/share/applicationsไฟล์สก์ท็อปสำหรับการใช้งานที่มีเฉพาะสำหรับผู้ใช้ปัจจุบันอยู่ใน ยกตัวอย่างเช่น Google Chrome ซึ่งมีไฟล์เดสก์ท็อป/usr/share/applications/google-chrome.desktopและค้นหาบรรทัดที่ขึ้นต้นด้วยExec=ซึ่งจะเป็นตัวกำหนดวิธีการเริ่มต้น Google Chrome มันบอกว่า:

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

เพื่อให้คุณทราบ Google Chrome /optเป็นใน

ตอนนี้สำหรับ Mozilla Firefox /usr/share/applications/firefox.desktopซึ่งตั้งอยู่ใน มันก็พูดว่า

Exec=firefox %u

ในตอนแรกสิ่งนี้ดูเหมือนจะไม่ได้ช่วยอะไรมากนัก แต่จากนั้นคุณก็ตระหนักว่าfirefoxต้องอยู่ในไดเรกทอรีที่อยู่ในPATHตัวแปร (น่าจะเป็น a bin) และเราสามารถค้นหามันได้ (ดูด้านล่าง)

ค้นหาคำสั่ง

เพื่อค้นหาคำสั่งคุณสามารถใช้หนึ่งหรือมากกว่าต่อไปนี้: type, whichและwhereis(เราได้รวมเชื่อมโยงไปยังหน้าเว็บที่ใช้ของพวกเขาออนไลน์)

  • พิมพ์ : มันอธิบายคำสั่งและระบุว่ามันจะตีความอย่างไรถ้าใช้เป็นชื่อคำสั่ง ประเภทที่เป็นไปได้สำหรับคำสั่งคือ:

    1. นามแฝง (นามแฝงเปลือก)
    2. ฟังก์ชั่น (ฟังก์ชั่นเปลือก)
    3. บิวอิน (shell builtin)
    4. ไฟล์ (ไฟล์ดิสก์)
    5. คำหลัก (คำสงวนเปลือก)

    (พิมพ์ตัวเองเป็นตัวเชลล์ลองด้วยtype type: P)

    การดำเนินการtype firefoxให้เรา

    firefox is /usr/bin/firefox
    

    ซึ่งเป็นสิ่งที่เราอยากรู้

หากคำสั่งเป็นไฟล์ (ซึ่งคุณตรวจสอบด้วยtype) คุณสามารถใช้:

  • ซึ่ง : แสดงเส้นทางแบบเต็มของคำสั่ง

    การดำเนินการ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หากคุณตรวจสอบสคริปต์ที่คุณพบว่าสายสคริปต์
คุณสามารถพักผ่อนได้อย่างสงบสุขในขณะนี้ :)


คำตอบที่ดีงาม คำถามหนึ่งลิงค์สัญลักษณ์คืออะไร? ทางลัดของ Windows เทียบเท่าหรือไม่
Quazi Irfan

@iamcreasy ขอบคุณ! ใช่มันเป็นทางลัด แต่มีจุดประสงค์หลักในการหลีกเลี่ยงการคัดลอกไฟล์ ทางลัดของ windows นั้นเปรียบได้กับ ไฟล์เดสก์ท็อปซึ่งสามารถใช้ในการสร้างเช่นไอเท็ม startmenu
Gerhard Burger

ทำไมบางคนถึงใช้ไฟล์. เดสก์ท็อปมากกว่าลิงก์สัญลักษณ์และในทางกลับกัน
Quazi Irfan

1
@iamcreasy ในไฟล์ .desktop คุณสามารถเพิ่มข้อมูลพิเศษเช่นคำอธิบายและไอคอน (ดูตัวอย่างได้ที่นี่: standards.freedesktop.org/desktop-entry-spec/latest/apa.html ) เป็นไฟล์ 'ปกติ' . ลิงก์สัญลักษณ์เป็นไฟล์ 'พิเศษ' ที่เชื่อมโยงไปยังไฟล์อื่นเท่านั้น ฉันพบว่ามันยากที่จะอธิบายอย่างถูกต้อง แต่บางทีคุณอาจหาคำตอบที่ดีกว่าได้ที่นี่: superuser.com/questions/253935/…
แกร์ฮาร์ดเบอร์เกอร์

18

ไม่มีไดเรกทอรีเดียวที่เทียบเท่าของโฟลเดอร์Program Files วิธีที่ Linux จัดการสิ่งต่าง ๆ แตกต่างจาก Windows

ใน windows ทุกโปรแกรมที่เราติดตั้งจะได้รับไดเรกทอรีของตัวเองภายในไดเรกทอรีไฟล์โปรแกรม ในไดเรกทอรีนั้นไดเรกทอรีย่อยเพิ่มเติมจะถูกสร้างขึ้นสำหรับไฟล์ประเภทต่างๆ ไม่มีโครงสร้างถาวรสำหรับไดเรกทอรีย่อย โปรแกรมตัดสินใจด้วยตนเองในสิ่งที่พวกเขาต้องการเรียกแต่ละไดเรกทอรีและตำแหน่งที่พวกเขาต้องการวางอะไร

แต่ใน Linux เมื่อติดตั้งโปรแกรมไฟล์ชนิดต่าง ๆ จะถูกคัดลอกไปยังตำแหน่งอื่น executables ถูกคัดลอกไป/ usr / binไฟล์ห้องสมุด/ usr / libเอกสารหนึ่งหรือมากกว่าหนึ่งของ/ usr / คน , / usr / ข้อมูลและ/ usr / doc หากมีแฟ้มการกำหนดค่าที่พวกเขามักจะอยู่ในบ้านของผู้ใช้หรือใน/ etc


มีเหตุผลใดบ้างสำหรับการจัดกลุ่มไฟล์ตามวัตถุประสงค์แทนที่จะใช้แอปพลิเคชันที่เป็นของไฟล์หรือไม่ "สไตล์การจัดกลุ่มไฟล์ Unix" สะดวกกว่าโดยทั่วไปจากมุมมองของผู้ดูแลระบบหรือไม่?
jojman

1
ไม่ได้จริงๆ มันเป็นตัวเลือกการออกแบบที่พวกเขาทำให้ฉันคิดว่า แม้ว่ามันจะช่วยให้การสร้างสาธารณูปโภคเช่น "คน", "ข้อมูล" หรืออื่น ๆ อีกมากมายซึ่งขึ้นอยู่กับโครงสร้างไฟล์นี้ ตัวอย่างเช่น "man" จะรู้ตำแหน่งที่จะค้นหาเอกสารสำหรับแต่ละคำสั่ง หากไม่มีที่ตั้งมาตรฐานของเอกสารมนุษย์ไม่สามารถทำงานได้
binW

10

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เดียว Windows จะสร้างโฟลเดอร์ใหม่พูดMozilla Firefoxและเพิ่มการกำหนดค่าไฟล์ปฏิบัติการไฟล์ DLL และอื่น ๆ ในนั้น Ubuntu แยกพวกมันออกปฏิบัติการได้/usr/binกำหนดค่าทั้งระบบใน/etcวัตถุที่ใช้ร่วมกันใน/usr/libภาพใน/usr/share...


5

Linux 'Program Files' อยู่ในลำดับชั้นทั้งหมด มันอาจจะเป็นบน/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

ในคำตอบนี้เมื่อฉันพูดว่า Unix ฉันหมายถึง Unix เช่นเดียวกับระบบปฏิบัติการ Unix

Ubuntu ไม่มีโฟลเดอร์โปรแกรมที่มีข้อมูลทั้งหมดสำหรับแต่ละโปรแกรม ในระบบปฏิบัติการ Unix และ Unix like EVERYTHING เป็นไฟล์แม้แต่คำสั่งเทอร์มินัล มันเป็นไฟล์เช่นกัน วิธีที่ Unix จัดการกับโปรแกรมนั้นค่อนข้างวุ่นวายและจัดระเบียบในเวลาเดียวกัน

ไอคอนสำหรับโปรแกรมจะถูกเก็บไว้ใน / usr / share / icons / * โดยปกติโปรแกรมปฏิบัติการจะถูกเก็บไว้ใน / usr / bin, / bin และสถานที่อื่น ๆ ที่มีไดเรกทอรี bin (bin สั้น obv สำหรับไบนารี) ไลบรารีที่โปรแกรมขึ้นอยู่กับ / lib

ดังนั้นคุณจะไม่มีไดเรกทอรีที่มีข้อมูลทั้งหมดสำหรับหนึ่งโปรแกรม แต่ข้อมูลสำหรับโปรแกรมนั้นแพร่กระจาย ในขณะที่สิ่งนี้ดูเหมือนว่าไม่เป็นระเบียบ แต่ก็อนุญาตให้แบ่งปันสิ่งมาตรฐานเช่นไลบรารีและไอคอน

ขอบคุณการอนุญาตสำหรับแต่ละไฟล์ความคิดของทุกสิ่งที่เป็นไฟล์นั้นยอดเยี่ยมมากที่จะซื่อสัตย์ มันทำให้ระบบปฏิบัติการ Unix มีความปลอดภัยมากกว่าระบบปฏิบัติการอื่น ๆ


3

วิธีที่ติดตั้งโปรแกรม Linux และ Windows แตกต่างกันมาก

รูปแบบทั่วไปใน Windows มีไว้สำหรับโปรแกรม หรือกลุ่มของโปรแกรมจากผู้ขายรายหนึ่งเข้าไปในไดเรกทอรีย่อยของตนเองใน C: \ programs \ Vendor หรือสิ่งที่คล้ายกัน

ใน Linux ไฟล์ของคุณจะถูกแบ่งระหว่างไดเรกทอรีย่อยที่เฉพาะเจาะจงขึ้นอยู่กับฟังก์ชั่น มีไดเรกทอรีสำหรับห้องสมุดไอคอนหน้าคนไฟล์บันทึกการกำหนดค่าและอื่น ๆ คุณอาจใช้บางส่วนได้ แต่ระบบจะจัดการทั้งหมด พวกเขาไม่ได้อยู่ด้วยกัน แต่มีอยู่พร้อมกับไฟล์ที่คล้ายกันจากโปรแกรมอื่น ๆ

ดังนั้นจึงไม่มีจริงเทียบเท่ากับโครงสร้างไดเรกทอรี Windows ในการใช้งานปกติของ Linux


2

หากคุณติดตั้งโปรแกรมของตัวเองฉันขอแนะนำ 1 โฟลเดอร์:


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.