คุณสามารถกำหนดลักษณะของการปฏิบัติการใน 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
หมายเหตุ:คุณสามารถยืนยันเหมือนพวกเขากำลังเกินกว่าขนาดของพวกเขาโดยการใช้หรือcmpdiff
กับ 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