คุณสามารถกำหนดลักษณะของการปฏิบัติการใน Unix ได้โดยใช้file
คำสั่งและtype
คำสั่ง
ชนิด
คุณใช้type
เพื่อกำหนดตำแหน่งของไฟล์ที่เรียกใช้งานได้บนดิสก์ดังนี้:
$ type -a ls
ls is /usr/bin/ls
ls is /bin/ls
ดังนั้นตอนนี้ฉันรู้ว่าls
จะอยู่ที่นี่ในระบบของฉันใน 2 /usr/bin/ls
สถานที่: /bin/ls
& ดูที่ไฟล์ปฏิบัติการเหล่านั้นฉันเห็นได้ว่ามันเหมือนกัน:
$ ls -l /usr/bin/ls /bin/ls
-rwxr-xr-x. 1 root root 120232 Jan 20 05:11 /bin/ls
-rwxr-xr-x. 1 root root 120232 Jan 20 05:11 /usr/bin/ls
หมายเหตุ:คุณสามารถยืนยันเหมือนพวกเขากำลังเกินกว่าขนาดของพวกเขาโดยการใช้หรือcmp
diff
กับ diff
$ diff -s /usr/bin/ls /bin/ls
Files /usr/bin/ls and /bin/ls are identical
ด้วย cmp
$ cmp /usr/bin/ls /bin/ls
$
การใช้ไฟล์
ถ้าฉันค้นหาพวกเขาโดยใช้file
คำสั่ง:
$ file /usr/bin/ls /bin/ls
/usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x303f40e1c9349c4ec83e1f99c511640d48e3670f, stripped
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x303f40e1c9349c4ec83e1f99c511640d48e3670f, stripped
ดังนั้นสิ่งเหล่านี้จะเป็นโปรแกรมจริงที่รวบรวมจาก C / C ++ หากพวกเขาเป็นเชลล์สคริปต์พวกเขามักจะนำเสนอเช่นนี้เพื่อfile
:
$ file somescript.bash
somescript.bash: POSIX shell script, ASCII text executable
เอลฟ์คืออะไร
เอลฟ์เป็นรูปแบบไฟล์มันเป็นผลลัพธ์ของคอมไพเลอร์เช่นgcc
ซึ่งจะใช้ในการรวบรวม C / C ++ ls
โปรแกรมเช่น
ในการคำนวณรูปแบบที่ปฏิบัติการและเชื่อมโยงได้ (ELF เดิมชื่อ Extensible Linking Format) เป็นรูปแบบไฟล์มาตรฐานทั่วไปสำหรับไฟล์เรียกใช้งานรหัสวัตถุไลบรารีที่ใช้ร่วมกันและการทิ้งแกน
โดยทั่วไปจะมีหนึ่งในนามสกุลต่อไปนี้ในชื่อไฟล์: none, .o, .so, .elf, .prx, .puff, .bin