Hvordan Bruke Ldd-Kommandoen I Linux
Lurer du på hvordan du bruker ldd-kommandoen I Linux?
Linux gir god fleksibilitet, da det lar deg justere systemet ditt etter dine behov. Det betyr at du enkelt kan betjene systemet via Terminalen. Videre kan du kontrollere ulike parametere og holde en sjekk på filer som deles og brukes av ulike programmer på systemet.
En kommando, spesielt, lar deg gjenkjenne bibliotekene som brukes av et gitt program under inspeksjon. Dette er ldd-kommandoen utviklet Av Roland McGrath Og Ulrich Drepper.
Ldd (List Dynamic Dependencies) gjør det mulig for brukeren å identifisere bibliotekavhengighetene som deles på tvers av ulike kjørbare filer.
denne veiledningen vil hjelpe deg å lære hvordan du bruker ldd-kommandoen I Linux.
så uten videre, la oss begynne!
Typer Biblioteker.
et bibliotek er et veldefinert sett av funksjoner, objekter, variabler, klasser, typespesifikasjoner, betingelser og underrutiner som dikterer driften av filer og programmer, uten å måtte vedlikeholde kildekoden.
det finnes tre typer biblioteker:
- Dynamiske Biblioteker: dette er biblioteker som brukes av programmer som er kompilert i mindre skala. Som navnet antyder, er det dynamisk lastet på tidspunktet for utførelse, så en enkelt kopi brukes dynamisk til å kjøre flere programmer.
dette reduserer minneforbruket, og minimerer dermed programstørrelsen og forbedrer ytelsen. De har vanligvis “.so
” utvidelser.
- Statiske Biblioteker: disse bibliotekene brukes av komplette programmer. De kobler programmer uten å kompilere kildekoden, og sparer dermed tid. Disse bibliotekene er separat inkludert i programfilene som krever sine funksjoner. De blir vanligvis etterfulgt av en”
.a
” forlengelse. - Delte Biblioteker: Disse er individuelt installerte biblioteker som automatisk brukes av programmer ved avdrag. De kan overstyre bestemte deler av et eksisterende bibliotek når programmet utfører bestemte oppgaver. I tillegg kan de brukes under kjøring med vår kode eller et program.
de fleste kjørbare filer vi bruker daglig, inneholder delte biblioteker. Ldd-kommandoen viser de dynamiske bibliotekavhengighetene. Disse bibliotekene gjenbrukes og deles på tvers av programmer for å lette utviklingen av programmer og redusere størrelsen og belastningen på datamaskinens minne.
I Linux er disse filene i form av en “.so
” forlengelse og de er lagret i /usr/lib*
eller bare /lib*
.
Ulike distribusjoner Av Linux-systemer kan pakke et annet sett med biblioteker for et program, slik at det fungerer annerledes på forskjellige versjoner av operativsystemet. Når et delt bibliotek for et program ikke er tilgjengelig på systemet, får du en feil som kan se slik ut:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
Vi kan da sjekke de delte bibliotekene for et bestemt program ved hjelp AV ldd-kommandoen.
Installere Ldd-Kommandoen.
ldd-kommandoen er iboende tilgjengelig i nesten Alle Linux-distribusjoner. Hvis det ikke er det, kan du bruke følgende kommando for å installere den:
$ sudo apt-get install libc-bin
kommandoen $ ldd
har følgende syntaks:
$ ldd <options> <executable>
eller mer generelt:
$ ldd -v /path/to/program/executable
LDD er en grunnleggende, men kraftig kommando. Det tilbyr hjelp og andre varianter ved hjelp av ulike flagg. De er kort beskrevet nedenfor.
– version
: for å vise ldd-versjonen som er i bruk.
-v --verbose
: for å vise info intrikat.
-u --unused
: for å vise ubrukte avhengigheter.
-d --data-relocs
: å flytte og identifisere manglende objekter.
-r --function-relocs
: for å flytte dataobjekter og funksjoner samt identifisere manglende funksjoner eller objekter.
–-help
: For å gi hjelp angående kommandobruk.
Ved Hjelp AV Ldd-Kommandoen.
Nå som du har fullført installasjonen, er du klar til å lære å bruke ldd-kommandoen I Linux. Vi vil demonstrere dette sammen med hvordan det bidrar til å identifisere delte biblioteker.
Vi vil se på de delte bibliotekene For Bash, standardskallet På Linux. Det er ansvarlig for å utføre kommandoer og gi et grensesnitt mellom bruker og OS.
Følg disse trinnene for å bruke ldd-kommandoen:
- Start med å åpne Kommandoterminalen ved å trykke Ctrl + Alt + T på tastaturet.
- finn deretter banen ved hjelp av kommandoen
which
ellerwhereis
etterfulgt av ldd-kommandoen ved å skrive inn følgende:
$ which bash$ whereis bash$ ldd /usr/bin/bash
som du kan se, er de delte bibliotekavhengighetene synlige. For en detaljert og mer intrikat oversikt, bruk flagget -v
med kommandoen $ ldd
som følger:
$ ldd -v /usr/bin/bash
På Samme måte kan vi bruke flagget -u
for å vise ubrukte avhengigheter.
$ ldd -u /usr/bin/bash
i tilfelle vist ovenfor er det ingen ubrukte avhengigheter. Det anbefales alltid å holde faner på hvilke biblioteker som er inaktiv og forbruker minne. Unnlatelse av å gjøre det kan laste opp kjernen din med ubrukte filer, og dermed hindre ytelsen. Det ville være nyttig å sjekke ut vår artikkel om hvordan du frigjør plass på Ubuntu.
for data-og funksjonsforflytninger bruker vi henholdsvis -d
og -r
flaggene sammen med kommandoen $ ldd
.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
disse flaggene hjelper også med å identifisere manglende objekter og funksjoner.
Sist, Men Ikke minst, kan vi bruke flagget --help
for en rask konsultasjon om flaggene og deres respektive handlinger.
Begrensninger AV Ldd-Kommandoen.
det skal bemerkes AT ldd-kommandoen ikke vil fungere på programmer som ikke er dynamisk kjørbare,” a.out
” delte biblioteker eller filer som er utdaterte eller ble utviklet før LDD kom ut.
Til Slutt anbefales DET AT ldd-kommandoer ikke skal brukes med uklarerte kilder, da det kan føre til brå feil og unntak.
manualsiden for LDD foreslår en alternativ kommando som består av objdump
og grep
verktøy.
~/$objdump -p /path/program/grep NEEDED
LDD er en av de underminerte instruksjonene som, hvis de brukes på riktig måte, kan gjøre en betydelig forskjell i samspillet med OPERATIVSYSTEMET. Det er en kraftig linking kommando med et bestemt formål, og det definitivt leverer. For mer informasjon om kommandoen og dens bruk, kan du gå til man – siden for ldd-kommandoen.
Leave a Reply