Sådan bruger du LDD-kommandoen i Linuk
spekulerer du på, hvordan du bruger LDD-kommandoen i Linuk?
Linuk tilbyder rigelig fleksibilitet, da det giver dig mulighed for at indstille dit system efter dine behov. Det betyder, at du nemt kan betjene dit system via terminalen. Desuden kan du styre forskellige parametre og holde styr på de filer, der deles og bruges af forskellige programmer på dit system.
en kommando giver dig især mulighed for at genkende de biblioteker, der bruges af et givet program under inspektion. Dette er LDD-kommandoen udviklet af Roland McGrath og Ulrich Drepper.
LDD (list Dynamic Dependencies) gør det lettere for brugeren at identificere de biblioteksafhængigheder, der deles på tværs af forskellige eksekverbare filer.
denne vejledning hjælper dig med at lære, hvordan du bruger LDD-kommandoen.
så uden videre, lad os begynde!
typer af biblioteker.
et bibliotek er et veldefineret sæt funktioner, Objekter, variabler, klasser, typespecifikationer, betingelser og underrutiner, der dikterer driften af filer og programmer uden at skulle vedligeholde kildekoden.
der er tre typer biblioteker:
- dynamiske biblioteker: dette er biblioteker, der bruges af programmer, der er samlet i mindre skala. Som navnet antyder, indlæses det dynamisk på udførelsestidspunktet, så en enkelt kopi bruges dynamisk til at køre flere programmer.
dette reducerer hukommelsesforbruget, hvilket minimerer programstørrelsen og forbedrer ydeevnen. De har normalt “.so
” udvidelser.
- statiske biblioteker: disse biblioteker bruges af komplette programmer. De forbinder programmer uden at genkompilere kildekoden og derved spare tid. Disse biblioteker er separat inkluderet i programfilerne, der kræver dets funktioner. De efterfølges normalt af en”
.a
” udvidelse. - delte biblioteker: disse er individuelt installerede biblioteker, der automatisk bruges af programmer efter rate. De kan tilsidesætte bestemte dele af et allerede eksisterende bibliotek, når programmet udfører bestemte opgaver. Plus, de kan bruges på runtime med vores kode eller et program.
de fleste eksekverbare filer, vi bruger dagligt, indeholder delte biblioteker. LDD kommando viser de dynamiske bibliotek afhængigheder. Disse biblioteker genbruges og deles på tværs af programmer for at lette udviklingen af programmer og reducere deres størrelse og belastning på computerens hukommelse.
disse filer er i form af en “.so
” udvidelse, og de er lagret i /usr/lib*
eller simpelthen /lib*
.
forskellige distributioner af systemer kan pakke et andet sæt biblioteker til et program, hvilket får det til at fungere forskelligt på forskellige versioner af operativsystemet. Når et delt bibliotek til et program ikke er tilgængeligt på dit system, får du en fejl, der kan se sådan ud:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
vi kan derefter kontrollere de delte biblioteker for et bestemt program ved hjælp af LDD-kommandoen.
installation af LDD-kommandoen.
LDD-kommandoen er i sig selv tilgængelig i næsten alle distributioner. Hvis det ikke er tilfældet, kan du bruge følgende kommando til at installere den:
$ sudo apt-get install libc-bin
kommandoen $ ldd
har følgende syntaks:
$ ldd <options> <executable>
eller mere generelt:
$ ldd -v /path/to/program/executable
LDD er en grundlæggende, men alligevel kraftfuld kommando. Det tilbyder hjælp og andre variationer ved hjælp af forskellige flag. De er kort beskrevet nedenfor.
–version
: Sådan vises den ldd-version, der aktuelt er i brug.
-v --verbose
: for at vise info indviklet.
-u --unused
: for at vise ubrugte afhængigheder.
-d --data-relocs
: at flytte og identificere manglende objekter.
-r --function-relocs
: at flytte dataobjekter og funktioner samt identificere manglende funktioner eller objekter.
–-help
: at yde hjælp til kommandobrug.
brug af LDD-kommandoen.
nu hvor du er færdig med installationen, er du klar til at lære, hvordan du bruger LDD-kommandoen. Vi vil demonstrere dette sammen med, hvordan det hjælper med at identificere delte biblioteker.
vi vil undersøge de delte biblioteker for Bash, standardskallen på Linuk. Det er ansvarligt for at udføre kommandoer og give en grænseflade mellem bruger og OS.
følg disse trin for at bruge LDD-kommandoen:
- Start med at åbne kommandoterminalen ved at trykke på Ctrl + Alt + T på dit tastatur.
- find derefter stien ved hjælp af kommandoen
which
ellerwhereis
efterfulgt af LDD-kommandoen ved at skrive følgende:
$ which bash$ whereis bash$ ldd /usr/bin/bash
som du kan se, er de delte biblioteksafhængigheder synlige. For en detaljeret og mere indviklet oversigt, brug -v
flag med kommandoen $ ldd
som følger:
$ ldd -v /usr/bin/bash
på samme måde kan vi bruge -u
– flaget til at vise de ubrugte afhængigheder.
$ ldd -u /usr/bin/bash
i ovenstående tilfælde er der ingen ubrugte afhængigheder. Det anbefales altid at holde øje med, hvilke biblioteker der er inaktive og forbruger hukommelse. Hvis du ikke gør det, kan du indlæse din kerne med ubrugte filer og dermed hindre ydeevnen. Det ville være nyttigt at tjekke vores artikel om, hvordan man frigør plads på Ubuntu.
til data-og funktionsflytninger bruger vi henholdsvis -d
og -r
flag sammen med kommandoen $ ldd
.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
disse Flag hjælper også med at identificere manglende objekter og funktioner.
sidst, men ikke mindst, kan vi bruge --help
flaget til en hurtig konsultation vedrørende flagene og deres respektive handlinger.
begrænsninger af LDD-kommandoen.
det skal bemærkes, at LDD-kommandoen ikke fungerer på programmer, der ikke er dynamisk eksekverbare, “a.out
” delte biblioteker eller filer, der er forældede eller blev udviklet, før LDD kom ud.
endelig anbefales det, at LDD-kommandoer ikke skal bruges med ikke-betroede kilder, da det kan resultere i pludselige fejl og undtagelser.
den manuelle side for LDD foreslår en alternativ kommando, som er sammensat af objdump
og grep
hjælpeprogrammer.
~/$objdump -p /path/program/grep NEEDED
LDD er en af de underminerede instruktioner, der, hvis de bruges på den rigtige måde, kan gøre en væsentlig forskel i din interaktion med operativsystemet. Det er en kraftfuld forbinder kommando med et bestemt formål, og det helt sikkert leverer. For flere detaljer om kommandoen og dens brug, kan du gå til man-siden for LDD-kommandoen.
Leave a Reply