리눅스에서 명령 명령을 사용하는 방법
리눅스에서 명령 명령을 사용하는 방법을 궁금해?
리눅스는 사용자의 필요에 따라 시스템을 조정할 수 있으므로 충분한 유연성을 제공합니다. 즉,터미널을 통해 시스템을 쉽게 작동 할 수 있습니다. 또한 다양한 매개 변수를 제어하고 시스템의 다른 프로그램에서 공유 및 사용하는 파일을 확인할 수 있습니다.
하나의 명령은,특히,검사에서 주어진 프로그램에 의해 사용되는 라이브러리를 인식 할 수 있습니다. 이 명령은 롤랜드 맥그래스와 울리히 드레퍼가 개발 한 자민당 명령입니다.
목록 동적 종속성을 사용하면 다양한 실행 파일에서 공유되는 라이브러리 종속성을 쉽게 식별할 수 있습니다.
그래서 더 이상 고민하지 않고 시작합시다!
라이브러리 유형.
라이브러리는 소스 코드를 유지 관리하지 않고도 파일 및 프로그램의 작업을 지시하는 함수,객체,변수,클래스,유형 사양,조건 및 서브 루틴의 잘 정의 된 집합입니다.
라이브러리에는 세 가지 유형이 있습니다:
- 동적 라이브러리:이 라이브러리는 더 작은 규모로 컴파일되는 프로그램에서 사용하는 라이브러리입니다. 이름에서 알 수 있듯이 실행 시 동적으로 로드되므로 단일 복사본이 동적으로 여러 프로그램을 실행하는 데 사용됩니다.
이렇게 하면 메모리 소비가 줄어들어 프로그램 크기가 최소화되고 성능이 향상됩니다. 일반적으로”.so
“확장이 있습니다.
- 정적 라이브러리:이 라이브러리는 전체 프로그램에서 사용됩니다. 소스 코드를 다시 컴파일하지 않고 프로그램을 연결하므로 시간을 절약 할 수 있습니다. 이러한 라이브러리는 해당 기능이 필요한 프로그램 파일에 별도로 포함됩니다. 그들은 일반적으로”
.a
“확장 뒤에 있습니다. - 공유 라이브러리:분할 시 프로그램에서 자동으로 사용되는 개별적으로 설치된 라이브러리입니다. 프로그램이 특정 작업을 수행 할 때 기존 라이브러리의 특정 부분을 무시할 수 있습니다. 또한 런타임에 코드 또는 프로그램과 함께 사용할 수 있습니다.
우리가 매일 사용하는 대부분의 실행 파일은 공유 라이브러리를 포함합니다. 동적 라이브러리 종속성을 나열합니다. 이러한 라이브러리는 프로그램 전체에서 재사용 및 공유되어 프로그램 개발을 용이하게하고 컴퓨터 메모리에 대한 크기 및 부하를 줄입니다.
리눅스에서,이 파일들은”.so
“확장자의 형태이며,그것들은/usr/lib*
또는 단순히/lib*
에 비축되어 있다.
리눅스 시스템의 다양한 배포판은 프로그램에 대한 라이브러리의 다른 세트를 패키지 수 있습니다,그것은 운영 체제의 다른 버전에서 다르게 작동 만들기. 시스템에서 프로그램의 공유 라이브러리를 사용할 수 없는 경우 다음과 같은 오류가 발생합니다:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
그런 다음 특정 프로그램에 대한 공유 라이브러리를 확인할 수 있습니다.
명령 설치.
그렇지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다:
$ sudo apt-get install libc-bin
$ ldd
명령의 구문은 다음과 같습니다:
$ ldd <options> <executable>
또는 더 일반적으로:
$ ldd -v /path/to/program/executable
자민당은 기본,아직 강력한 명령입니다. 다른 플래그를 사용하여 도움말 및 기타 변형을 제공합니다. 그들은 아래에 간략하게 설명되어 있습니다.
–ion
:현재 사용중인 디딜 방아 버전을 표시합니다.
-v --verbose
: 정보를 복잡하게 표시합니다.
-u --unused
: 사용되지 않는 종속성을 표시합니다.
-d --data-relocs
: 누락된 개체를 재배치하고 식별합니다.
-r --function-relocs
: 데이터 개체 및 함수를 재배치하고 누락된 함수 또는 개체를 식별합니다.
–-help
: 명령 사용에 관한 도움을 제공합니다.
이제 설치를 완료 했으므로 리눅스에서 명령어를 사용하는 방법을 배울 준비가 되었습니다. 우리는 공유 라이브러리를 식별하는 데 도움이되는 방법과 함께 이것을 시연 할 것입니다.
우리는 배쉬,리눅스의 표준 쉘에 대한 공유 라이브러리로 볼 것이다. 이 명령을 실행하고 사용자와 운영 체제 사이의 인터페이스를 제공 할 책임이 있습니다.
:
- 키보드에서 명령 터미널을 열어 시작하십시오.
- 다음으로
which
또는whereis
명령을 사용하여 경로를 찾은 다음 다음을 입력합니다:
$ which bash$ whereis bash$ ldd /usr/bin/bash
보시다시피 공유 라이브러리 종속성이 표시됩니다. 보다 상세하고 복잡한 개요를 보려면-v
플래그를$ ldd
명령과 함께 다음과 같이 사용하십시오:
$ ldd -v /usr/bin/bash
마찬가지로-u
플래그를 사용하여 사용되지 않는 종속성을 표시 할 수 있습니다.
$ ldd -u /usr/bin/bash
위에 표시된 경우 사용되지 않는 종속성이 없습니다. 항상 어떤 라이브러리가 유휴 상태이고 메모리를 소비하는지 감시하는 것이 좋습니다. 이렇게 하지 않으면 사용되지 않는 파일로 커널을 로드할 수 있으므로 성능이 저하될 수 있습니다. 우분투 공간을 확보하는 방법에 대한 우리의 기사를 체크 아웃하는 것이 도움이 될 것입니다.
데이터 및 함수 재배치의 경우$ldd
명령과 함께-d
및-r
플래그를 각각 사용합니다.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
이러한 플래그는 누락 된 개체 및 기능을 식별하는 데 도움이됩니다.
마지막으로--help
플래그를 사용하여 플래그 및 해당 작업에 대한 빠른 상담을 할 수 있습니다.
명령의 제한 사항.
“공유 라이브러리나 파일이 오래되었거나 개발된 프로그램에서는 작동하지 않습니다.
마지막으로 신뢰할 수 없는 소스에서는 갑작스러운 오류 및 예외가 발생할 수 있으므로 명령어를 사용하지 않는 것이 좋습니다.
objdump
및grep
유틸리티로 구성된 대체 명령을 제안합니다.
~/$objdump -p /path/program/grep NEEDED
LDD 의 훼손하는 지침을 사용하는 경우,올바른 방법으로,상당한 차이 만들 수 있습니다 당신의 상호 작용과 함께 OS. 그것은 특정 목적을 가진 강력한 연결 명령이며,그것은 확실히 제공합니다. 명령과 그 사용에 대한 자세한 내용은,당신은 자유형 명령의 맨 페이지로 향할 수 있습니다.
Leave a Reply