모든 Linux 시스템에서 사용할 수 있는 표준 명령이 무엇인지 알고 싶습니다.
예를 들어 debian/ubuntu/redhat/suse/arch/slackware 등이 있는 경우 항상 다음과 같은 명령을 찾을 수 있습니다.
cd, mkdir, ls, echo, grep, sed, awk, ping 등
위에서 언급한 명령 중 일부는 셸에 내장되어 있지만 다른 명령은 그렇지 않지만 여전히 항상 존재한다는 것을 알고 있습니다(지금까지의 지식과 경험에 따르면).
반면, gawk, parted, Traceroute 등과 같은 명령은 다른 Linux 배포판에 기본적으로 설치되지 않습니다.
다양한 웹 검색을 수행했지만 정확한 답변을 찾지 못했습니다.
목적은 스크립트에 사용된 명령이 시스템에서 사용 가능한지 몇 가지 온전성 검사를 수행하는 쉘 스크립트를 작성하려는 것입니다. 그렇지 않은 경우 사용자에게 필요한 바이너리를 설치하라는 메시지가 표시됩니다.
답변1
안타깝게도 어떤 것이든 사용 가능하다는 보장은 없습니다.
그러나 대부분의 시스템에는GNU 핵심 도구. 이것만으로도 약 105개의 명령이 제공됩니다. 아마도 임베디드 시스템이 아닌 한, 아마도 이것에 의존할 수 있을 것입니다.바쁜 상자대신에.
당신은 또한 믿을 수 있습니다세게 때리다,예약 된 일들,GNU findutils,GNU grep,보관소,IP 경로 2,아이틸스,사람 데이터베이스,모듈 초기화 도구,네트워크 도구, 비밀번호 (비밀번호또는그림자),프로세스,아스팔트, 그리고유틸리티Linux.
일부 프로그램은 릴리스마다 약간의 차이가 있을 수 있습니다. 예를 들어 다음과 /usr/bin/awk
같을 수 있습니다.멍하니또는목. /bin/sh
가능한스프린트또는POSIX 모드의 배시. 일부 구형 시스템 /usr/bin/host
에서는바인딩 버전, 그래서 사용하는 것이 더 좋습니다파기.
일부 표준을 찾고 있다면 Linux 표준 라이브러리에서 일부 표준을 정의합니다.일반적인 절차그러나 모든 배포판이 표준을 준수한다고 주장하는 것은 아니며 일부 배포판은 선택적 LSB 호환성 패키지가 설치된 경우에만 그렇게 합니다. 예를 들어,일부 시스템lsb_release
기본 설치에는 포함되어 있지 않은 것으로 나타났습니다.
게다가,POSIX 표준화된 명령 목록도움이 될 수도 있습니다.
문제를 해결하는 또 다른 방법은 각 배포판의 패키징 도구(예: Red Hat의 RPM, Debian의 DEB 등)를 사용하여 스크립트를 패키징하고 필요한 다른 프로그램이나 패키지에 대한 종속성을 선언하는 것입니다. 이는 약간의 작업이 필요하지만 사용자에게 무엇이 누락되었는지뿐 아니라 어떤 패키지를 설치해야 하는지 알려주는 보다 친숙한 오류 메시지가 표시된다는 의미입니다.
추가 정보:
답변2
비임베디드 Linux 시스템에서는 일반적으로 대부분의 GNU 유틸리티를 사용할 수 있습니다.
...을 더한유틸리티Linux스위트룸과프로세스 제품군. 이것은 /bin/sh
항상 bash가 아니며, 성능이 떨어지는 쉘의 많은 포크 중 하나일 수 있습니다.금연 건강 증진 협회.
이것리눅스 표준 라이브러리모든 표준 준수 시스템에서 기대하는 기능을 포함하는 공통 유틸리티 세트를 정의합니다. 당신은 또한 대부분을 기대할 수 있습니다POSIX 지정 유틸리티. 한 가지 주목할만한 예외는 pax
많은 배포판에서 기본 설치의 일부가 아니라는 것입니다.
작업을 더 쉽게 만들고 싶다면 패키지 설치를 요청하세요 lsb_release
. 많은 배포판에는 LSB에 필요한 모든 종속성을 추출하는 패키지가 있습니다.
임베디드 시스템에서는 무엇이든 가능합니다. 임베디드 Linux 시스템은 일반적으로 실행됩니다.바쁜 상자, 그러나 많은 유틸리티와 기능은 선택 사항이므로 얻을 수 있는 것이 거의 없습니다.
답변3
전부는 아니지만 대부분의 Linux 배포판에는 일련의 명령이 있으며 Unix 배포판에서도 이를 제공합니다. 이것들은 다음에 의해 만들어진다POSIX 표준.
참조하는 대부분의 명령( cd
, mkdir
, ls
, echo
, grep
, 등 sed
) awk
이 여기에 속합니다. 예외는 ping
WhiteWinterWolf의 올바른 의견입니다.