ການນໍາໃຊ້ຄໍາສັ່ງ "ldd" ໃນ Linux

ຄໍາສັ່ງ ldd ສາມາດຖືກນໍາໃຊ້ເພື່ອສະແດງໃຫ້ທ່ານເຫັນຫ້ອງສະແດງການແບ່ງປັນທີ່ຕ້ອງການໂດຍໂຄງການໃດກໍ່ຕາມ.

ນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການເຮັດວຽກໃນເວລາທີ່ມີການຕິດຕາມທີ່ຂາດຫາຍໄປແລະສາມາດຖືກນໍາໃຊ້ເພື່ອບັນຊີລາຍຊື່ຫນ້າທີ່ຫາຍໄປແລະສິ່ງຂອງ.

ldd Command Syntax

ນີ້ແມ່ນ syntax ທີ່ຖືກຕ້ອງໃນເວລາທີ່ໃຊ້ຄໍາສັ່ງ ldd:

ldd [OPTION] ... FILE ...

ນີ້ແມ່ນສະຫຼັບຄໍາສັ່ງ ldd ທີ່ສາມາດຖືກໃສ່ລົງໃນຈຸດ [OPTION] ທີ່ຢູ່ໃນຄໍາສັ່ງຂ້າງເທິງນີ້:

- ຊ່ວຍສະຫນັບສະຫນູນການຊ່ວຍເຫຼືອແລະອອກຈາກການເຜີຍແພ່ຂໍ້ມູນສະບັບພິມນີ້ແລະອອກຈາກ -d, - data-reloc relocations data processes -r, --function-relocs data processes and relocations function -u, --unused print dependencies not used -v, --verbose ພິມຂໍ້ມູນທັງຫມົດ

ວິທີການໃຊ້ຄໍາສັ່ງ ldd

ທ່ານສາມາດໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອໃຫ້ໄດ້ຂໍ້ມູນເພີ່ມເຕີມຈາກຄໍາສັ່ງ ldd ໃດໆ:

ldd -v / path / to / program / executable

ຜົນຜະລິດສະແດງໃຫ້ເຫັນຂໍ້ມູນຂ່າວສານເຊັ່ນດຽວກັນກັບເສັ້ນທາງແລະທີ່ຢູ່ໃນຫ້ອງສະຫມຸດທີ່ແບ່ງປັນເຊັ່ນນີ້:

ldd libsharedso linux-vdsoso1 => (0x00007fff26ac8000) libc.so6 => /lib /libcso6 0x00007ff1df55a000) /lib64/ld -linux-x86-64so2 (0x00007ff1dfafe000)

ຖ້າແຟ້ມ SO ບໍ່ມີຢູ່, ທ່ານສາມາດຊອກຫາຫ້ອງການທີ່ຂາດຫາຍໄປໂດຍໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:

ldd -d path / to / program

ຜົນຜະລິດແມ່ນຄ້າຍຄືກັນກັບດັ່ງຕໍ່ໄປນີ້:

linux-vdso.so.1 (0x00007ffc2936b000) / home / gary / demo / garylibsoso => ​​not foundlibcso6 => usr / lib / libc.so6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64so2 (0x00007fd0c65fd000)

ສິ່ງສໍາຄັນ: ບໍ່ເຄີຍໃຊ້ຄໍາສັ່ງ ldd ກັບໂປລແກລມທີ່ບໍ່ເຊື່ອຖືເນື່ອງຈາກຄໍາສັ່ງອາດຈະປະຕິບັດມັນ. ນີ້ແມ່ນທາງເລືອກທີ່ປອດໄພທີ່ສະແດງໃຫ້ເຫັນພຽງແຕ່ຄວາມຂັດແຍ່ງໂດຍກົງແລະບໍ່ແມ່ນຕົ້ນໄມ້ທີ່ຢູ່ພາຍນອກທັງຫມົດ: objdump -p / path / to / program | grep NEEDED

ວິທີການຊອກຫາເສັ້ນທາງໄປຫາຄໍາຮ້ອງສະຫມັກ

ທ່ານຕ້ອງໃຫ້ເສັ້ນທາງເຕັມໄປຫາແອັບພລິເຄຊັນຖ້າທ່ານຕ້ອງການຊອກຫາຄວາມຂັດແຍ້ງກັບ ldd, ເຊິ່ງທ່ານສາມາດເຮັດໄດ້ຫຼາຍວິທີ.

ຕົວຢ່າງ, ນີ້ແມ່ນວິທີທີ່ທ່ານຕ້ອງການຊອກຫາເສັ້ນທາງໄປຫາ Firefox :

find / -name firefox

ບັນຫາທີ່ມີ ຄໍາສັ່ງຊອກຫາ , ຢ່າງໃດກໍຕາມ, ແມ່ນວ່າມັນຈະບໍ່ພຽງແຕ່ລະບຸປະຕິບັດງານແຕ່ຢູ່ທຸກບ່ອນທີ່ Firefox ຢູ່, ເຊັ່ນນີ້:

ວິທີການນີ້ແມ່ນຄວາມໄວເກີນໄປແລະທ່ານອາດຈະຕ້ອງໃຊ້ ຄໍາສັ່ງ sudo ເພື່ອຍົກສູງສິດທິພິເສດຂອງທ່ານ, ຖ້າທ່ານອາດຈະໄດ້ຮັບການອະນຸຍາດຫຼາຍຂໍ້ຜິດພາດ.

ມັນແທນທີ່ຈະໃຊ້ງ່າຍທີ່ຈະໃຊ້ ຄໍາສັ່ງ whereis ເພື່ອຊອກຫາເສັ້ນທາງຂອງຄໍາຮ້ອງສະຫມັກ:

whereis firefox

ເວລານີ້ຜົນຜະລິດອາດຈະຄືກັບນີ້:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

ທັງຫມົດທີ່ທ່ານຕ້ອງເຮັດໃນປັດຈຸບັນເພື່ອຊອກຫາຫ້ອງສະຫມຸດທີ່ແບ່ງປັນສໍາລັບ Firefox ໃຫ້ພິມຄໍາສັ່ງຕໍ່ໄປນີ້:

ldd / usr / bin / firefox

ຜົນຜະລິດຈາກຄໍາສັ່ງຈະເປັນສິ່ງທີ່ຄ້າຍຄືກັນນີ້:

linux-vdso.so.1 (0x00007ffff8364000)
libpthreadso0 => /usr/lib/libpthreadso0 (0x00007feb9917a000)
libdlso2 => /usr/lib/libdlso2 (0x00007feb98f76000)
libstdc ++ so6 => /usr/lib/libstdc++so6 (0x00007feb98bf4000)
libmso6 => /usr/lib/libmso6 (0x00007feb988f6000)
libgcc_sso1 => /usr/lib/libgcc_sso1 (0x00007feb986e0000)
libcso6 => /usr/lib/libscso6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64so2 (0x00007feb99397000)

linux-vdso.so.1 ແມ່ນຊື່ຂອງຫໍສະຫມຸດແລະເລກ hex ເປັນທີ່ຢູ່ໃນບ່ອນທີ່ຫ້ອງສະຫມຸດຈະຖືກ loaded ໃນຫນ່ວຍຄວາມຈໍາ.

ທ່ານຈະສັງເກດເຫັນໃນຫຼາຍໆເສັ້ນອື່ນໆທີ່ສັນຍາລັກ => ສັນຍາລັກຕາມເສັ້ນທາງ. ນີ້ແມ່ນເສັ້ນທາງໄປຫາຖານສອງທາງດ້ານຮ່າງກາຍ; ຈໍານວນ hex ແມ່ນບ່ອນທີ່ຫ້ອງສະຫມຸດຈະຖືກໂຫລດ.