ภายใต้ Windows แอปพลิเคชันและข้อมูลแอปพลิเคชันส่วนใหญ่จะถูกเก็บไว้ในไดเรกทอรีพิเศษที่รู้จักกันในชื่อC:\Program Files
(และบางครั้งC:\Program Files (x86)
) Ubuntu / Linux เทียบเท่ากับเส้นทางนี้คืออะไร มีแม้แต่อันเดียวไหม?
ภายใต้ Windows แอปพลิเคชันและข้อมูลแอปพลิเคชันส่วนใหญ่จะถูกเก็บไว้ในไดเรกทอรีพิเศษที่รู้จักกันในชื่อC:\Program Files
(และบางครั้งC:\Program Files (x86)
) Ubuntu / Linux เทียบเท่ากับเส้นทางนี้คืออะไร มีแม้แต่อันเดียวไหม?
คำตอบ:
/bin
และ/usr/bin
เป็นที่ที่สคริปต์เริ่มต้นโปรแกรม การเทียบเท่าโดยตรงของ "Program Files" อาจเป็นไปได้/usr/share
( ดูที่ลำดับชั้นของระบบไฟล์ ) ไดเรกทอรีนั้นมีไฟล์สนับสนุนต่าง ๆ สำหรับโปรแกรมส่วนใหญ่
มีอาจจะไม่เทียบเท่าโดยตรง แต่เนื่องจากตัวอย่างเช่นไฟล์ไลบรารีที่ใช้ร่วมกันทั่วทั้งระบบ (ใน/lib
) และตัวเลือกอย่างใดอย่างหนึ่งเป็นผู้ใช้ที่ระบุ (ในไดเรกทอรีบ้านผู้ใช้) /etc
หรืออยู่ในระดับสากล
ดังนั้นการติดตั้งโปรแกรมผ่านไฟล์ deb ที่เก็บหรือบิลด์จะวางไฟล์ในตำแหน่งเหล่านี้ทั้งหมด
[แก้ไข] และคนอื่น ๆ ทราบนอกจากนี้ยังมีและ/sbin
/usr/sbin
พลัส/usr/local/bin
, และแม้กระทั่ง/opt/bin
/usr/games/
ดังนั้นแน่นอนไม่ใช่การเปรียบเทียบโดยตรงกับc:\program files
!
/opt
ล่ะ ผมเคยเห็นที่ถือจำนวนมาก (มักจะปิดแหล่งที่มาหรือแอปพลิเค-based) Program Files
โปรแกรมมาก่อนในทำนองเดียวกันกับ
/opt
ไดเรกทอรีใช้
/usr/local/bin
เป็นตำแหน่งกึ่งร่วมสำหรับซอฟต์แวร์ที่ผู้ใช้ / บริษัท อาจไม่นิยมใช้
ตอบล่าช้า - ฉันได้สร้างแผนงานเพื่อให้ผู้เริ่มต้นปฏิบัติตาม หากพวกเขากำลังมองหาไฟล์ แต่ไม่ทราบว่าจะดูที่ไหนพวกเขาสามารถใช้แผนที่เพื่อนำทางไปรอบ ๆ คุณสามารถดาวน์โหลดความละเอียดสูง PNG ที่นี่ คุณสามารถค้นหาโพสต์ที่เกี่ยวข้องกับที่นี่ ฉันจะอัปเดตทั้งไฟล์และโพสต์เมื่อเวลาอนุญาตรวมความคิดเห็นที่เป็นประโยชน์
อ่านคำตอบของฉันด้านล่างสำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่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
(เราได้รวมเชื่อมโยงไปยังหน้าเว็บที่ใช้ของพวกเขาออนไลน์)
พิมพ์ : มันอธิบายคำสั่งและระบุว่ามันจะตีความอย่างไรถ้าใช้เป็นชื่อคำสั่ง ประเภทที่เป็นไปได้สำหรับคำสั่งคือ:
(พิมพ์ตัวเองเป็นตัวเชลล์ลองด้วย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
หากคุณตรวจสอบสคริปต์ที่คุณพบว่าสายสคริปต์
คุณสามารถพักผ่อนได้อย่างสงบสุขในขณะนี้ :)
ไม่มีไดเรกทอรีเดียวที่เทียบเท่าของโฟลเดอร์Program Files วิธีที่ Linux จัดการสิ่งต่าง ๆ แตกต่างจาก Windows
ใน windows ทุกโปรแกรมที่เราติดตั้งจะได้รับไดเรกทอรีของตัวเองภายในไดเรกทอรีไฟล์โปรแกรม ในไดเรกทอรีนั้นไดเรกทอรีย่อยเพิ่มเติมจะถูกสร้างขึ้นสำหรับไฟล์ประเภทต่างๆ ไม่มีโครงสร้างถาวรสำหรับไดเรกทอรีย่อย โปรแกรมตัดสินใจด้วยตนเองในสิ่งที่พวกเขาต้องการเรียกแต่ละไดเรกทอรีและตำแหน่งที่พวกเขาต้องการวางอะไร
แต่ใน Linux เมื่อติดตั้งโปรแกรมไฟล์ชนิดต่าง ๆ จะถูกคัดลอกไปยังตำแหน่งอื่น executables ถูกคัดลอกไป/ usr / binไฟล์ห้องสมุด/ usr / libเอกสารหนึ่งหรือมากกว่าหนึ่งของ/ usr / คน , / usr / ข้อมูลและ/ usr / doc หากมีแฟ้มการกำหนดค่าที่พวกเขามักจะอยู่ในบ้านของผู้ใช้หรือใน/ etc
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.
Ubuntu มีโครงสร้างที่แตกต่างจาก windows Ubuntu วางแอพพลิเคชั่นเกือบทั้งหมดไว้ในไดเรกทอรี/usr/bin
เดียว Windows จะสร้างโฟลเดอร์ใหม่พูดMozilla Firefox
และเพิ่มการกำหนดค่าไฟล์ปฏิบัติการไฟล์ DLL และอื่น ๆ ในนั้น Ubuntu แยกพวกมันออกปฏิบัติการได้/usr/bin
กำหนดค่าทั้งระบบใน/etc
วัตถุที่ใช้ร่วมกันใน/usr/lib
ภาพใน/usr/share
...
Linux 'Program Files' อยู่ในลำดับชั้นทั้งหมด มันอาจจะเป็นบน/usr/bin
, /bin
, /opt/...
หรือในไดเรกทอรีอื่น
ฉันคิดว่าคุณจะพบไฟล์ที่เกี่ยวข้องกับแอปพลิเคชันของคุณ จากนั้นฉันมีความคิดเกี่ยวกับวิธีดูไฟล์ที่ติดตั้งในการติดตั้งโปรแกรม
synaptic
โดยการออกsudo apt-get install synaptic
บนเทอร์มินัลProperties
คลิกขวาที่แพคเกจและเลือกInstalled File
แท็บ dpkg -L package_name
ผลที่ได้คือเช่นเดียวกับเป็นเพราะ linux ย้ายไฟล์ที่ติดตั้งไปยังไดเรกทอรีแยกกันตามประเภทของพวกเขา
/usr/bin
/bin
/usr/share/icons
หรือเปิด~/.local/share/icons
สำหรับท้องถิ่น/opt
บน/usr/share/applications
หรือเปิด~/.local/share/applications
/usr/share/doc
/usr/lib
และสารบบอื่น ๆ อีกมากมาย (CMIIW ยอมรับการแก้ไข)
ในคำตอบนี้เมื่อฉันพูดว่า Unix ฉันหมายถึง Unix เช่นเดียวกับระบบปฏิบัติการ Unix
Ubuntu ไม่มีโฟลเดอร์โปรแกรมที่มีข้อมูลทั้งหมดสำหรับแต่ละโปรแกรม ในระบบปฏิบัติการ Unix และ Unix like EVERYTHING เป็นไฟล์แม้แต่คำสั่งเทอร์มินัล มันเป็นไฟล์เช่นกัน วิธีที่ Unix จัดการกับโปรแกรมนั้นค่อนข้างวุ่นวายและจัดระเบียบในเวลาเดียวกัน
ไอคอนสำหรับโปรแกรมจะถูกเก็บไว้ใน / usr / share / icons / * โดยปกติโปรแกรมปฏิบัติการจะถูกเก็บไว้ใน / usr / bin, / bin และสถานที่อื่น ๆ ที่มีไดเรกทอรี bin (bin สั้น obv สำหรับไบนารี) ไลบรารีที่โปรแกรมขึ้นอยู่กับ / lib
ดังนั้นคุณจะไม่มีไดเรกทอรีที่มีข้อมูลทั้งหมดสำหรับหนึ่งโปรแกรม แต่ข้อมูลสำหรับโปรแกรมนั้นแพร่กระจาย ในขณะที่สิ่งนี้ดูเหมือนว่าไม่เป็นระเบียบ แต่ก็อนุญาตให้แบ่งปันสิ่งมาตรฐานเช่นไลบรารีและไอคอน
ขอบคุณการอนุญาตสำหรับแต่ละไฟล์ความคิดของทุกสิ่งที่เป็นไฟล์นั้นยอดเยี่ยมมากที่จะซื่อสัตย์ มันทำให้ระบบปฏิบัติการ Unix มีความปลอดภัยมากกว่าระบบปฏิบัติการอื่น ๆ
วิธีที่ติดตั้งโปรแกรม Linux และ Windows แตกต่างกันมาก
รูปแบบทั่วไปใน Windows มีไว้สำหรับโปรแกรม หรือกลุ่มของโปรแกรมจากผู้ขายรายหนึ่งเข้าไปในไดเรกทอรีย่อยของตนเองใน C: \ programs \ Vendor หรือสิ่งที่คล้ายกัน
ใน Linux ไฟล์ของคุณจะถูกแบ่งระหว่างไดเรกทอรีย่อยที่เฉพาะเจาะจงขึ้นอยู่กับฟังก์ชั่น มีไดเรกทอรีสำหรับห้องสมุดไอคอนหน้าคนไฟล์บันทึกการกำหนดค่าและอื่น ๆ คุณอาจใช้บางส่วนได้ แต่ระบบจะจัดการทั้งหมด พวกเขาไม่ได้อยู่ด้วยกัน แต่มีอยู่พร้อมกับไฟล์ที่คล้ายกันจากโปรแกรมอื่น ๆ
ดังนั้นจึงไม่มีจริงเทียบเท่ากับโครงสร้างไดเรกทอรี Windows ในการใช้งานปกติของ Linux
หากคุณติดตั้งโปรแกรมของตัวเองฉันขอแนะนำ 1 โฟลเดอร์:
มองใน/bin
, /usr/bin
และสิ่งอื่น ๆ bin
ที่ระบุว่า