Linux es un kernel, no tiene comandos. Algunas distribuciones de software creadas para ese núcleo siguen el estándar LSB, otras la política de Debian, la mayoría otras no en particular.
Stéphane Chazelas
@ StéphaneChazelas Aunque estoy de acuerdo, diría que seguir la política de Debian está cerca de seguir LSB, ya que Debian admite LSB (si no es por defecto, aún a través del lsbpaquete).
Técnicamente no puedes asumir nada , porque Linux-the-kernel se usa en un montón de contextos integrados o semi-integrados donde un complemento completo de utilidades de shell sería un desperdicio de espacio sin sentido. Si se pregunta qué puede esperar que se instale en un entorno shell "normal" compatible con Unix, no miraría POSIX ni LSB, sino el conjunto de paquetes que Debian considera "necesarios". Muchas herramientas esenciales de gestión del sistema, por ejemplo, "ip", no están estandarizadas en absoluto.
ar echo hostname more sh
at egrep install mount shutdown
awk fgrep install_initd msgfmt su
batch file ipcrm newgrp sync
bc fuser ipcs od tar
chfn gettext killall passwd umount
chsh grep lpr patch useradd
col groupadd ls pidof userdel
cpio groupdel lsb_release remove_initd usermod
crontab groupmod m4 renice xargs
df groups md5sum sed zcat
dmesg gunzip mknod sendmail
du gzip mktemp seq
Algunos de los programas 'solo de LSB' son en realidad de POSIX. Estos incluyen: awk, grep, ls, sed, sh, xargs con seguridad; Tendría que verificar ar, at, batch, bc, crontab. Puede haber otros también.
Jonathan Leffler
@ JonathanLeffler Debo haber cometido un error en la expresión regular. Lo arreglará cuando pueda.
muru
NOTARIO PÚBLICO. Usaría la página POSIX 2008 (2013) de nivel superior o específicamente la lista de utilidades . Incluye todas las posibilidades que mencioné; También veo file, ipcrm, ipcs, m4, patch, y zcaten la lista - que es una operación eyeballing en lugar de una verificación formal de las listas.
Técnicamente, no se puede suponer que algo estará presente, porque Linux-the-kernel se usa en una gran cantidad de contextos integrados o semiincrustados donde un complemento completo de utilidades de shell sería una pérdida de espacio sin sentido. No estaría fuera de lugar, por ejemplo, construir un dispositivo IoT cuyo sistema de archivos contenga un gestor de arranque, un núcleo monolítico, una costumbre /sbin/initque haga todo lo que el dispositivo tendrá que hacer, algunas /deventradas y nada más .
La especificación POSIX.1-2008 "Shell y utilidades" , también vinculada en la respuesta de muru, pretende estandarizar el shell como lenguaje de programación . Por lo tanto, no incluye la mayoría de las herramientas de administración del sistema que se espera que estén presentes en una instalación Unix "tradicional". Desafortunadamente, esta es también una cicatriz visible del antiguo cisma entre System V y BSD: las herramientas que encontrará en Linux no son las mismas que las de FreeBSD o OSX o lo que sea. Entonces, de nuevo, no hay una línea base confiable.
Para dar una indicación de lo que falta en la respuesta de maru, este es el conjunto de paquetes que Debian (inestable) considera "requeridos" ( definición oficial : "Los sistemas con solo los paquetes requeridos probablemente no se puedan usar, pero tienen suficiente funcionalidad para permitir al administrador del sistema de arranque e instalar más software. ") y que contribuyen a archivos /bin, /sbin, /usr/bin, o /usr/sbin. Los marcados con un asterisco no solo son "obligatorios", sino "esenciales", lo que significa que otro software empaquetado puede asumir su presencia sin depender de él.
¹ awk-the-language es "esencial", pero el administrador del sistema puede elegir si quiere la implementación "mawk" o "gawk".
Y estos son los paquetes considerados ídem "importantes"; la definición oficial de "importante" es "una persona experimentada de Unix que lo encontró desaparecido diría '¿Qué demonios está pasando, dónde está foo?'":
Tenga en cuenta que este segundo conjunto incluye herramientas críticas de administración del sistema como psy iproute2, pero también cosas que pueden ser completamente innecesarias en algunas instalaciones, como aty dmidecode. Ambos conjuntos también contienen elementos específicos de Debian, como dpkgy apt.
Observe también que ambos conjuntos juntos no son un superconjunto de la funcionalidad requerida por LSB (o POSIX + XSI para el caso): faltan estas utilidades:
ar gencat lpr msgfmt strings
bc gettext lsb_release patch strip
ed install_initd m4 pax time
file killall mailx remove_initd
fuser lp make sendmail
La lista de utilidades que se encuentran en los paquetes anteriores pero no en LSB es larga y tediosa, pero la incluyo de todos modos para subrayar cuántas "herramientas críticas de administración del sistema" incluye.
Exhaustivo. Me gustaría señalar que el adduser (y la familia) de Debian es ... Debian. Arch usa Slackware, que es muy diferente. Solo lo estoy nombrando ya que no suena específico de Debian, pero es, sin embargo, como el ipcomando que mencionaste anteriormente.
Sin embargo, muchas personas tienden a echar un vistazo a lo que está contenido en los directorios que se muestran echo $PATHy luego mirar la página del manual para obtener más información.
Mirar en los directorios le dirá qué está incluido en su distribución específica, no le dirá qué debería ser. ¿Cómo dirías al mirar allí que falta algo?
busybox --list
. Es una broma.lsb
paquete).Respuestas:
Linux Standard Base (LSB) tiene una lista de aplicaciones :
Muchos de estos están incluidos como parte del estándar POSIX 1003.1-2001 , pero los siguientes están solo en LSB o tienen especificaciones diferentes de POSIX:
fuente
file
,ipcrm
,ipcs
,m4
,patch
, yzcat
en la lista - que es una operación eyeballing en lugar de una verificación formal de las listas.Técnicamente, no se puede suponer que algo estará presente, porque Linux-the-kernel se usa en una gran cantidad de contextos integrados o semiincrustados donde un complemento completo de utilidades de shell sería una pérdida de espacio sin sentido. No estaría fuera de lugar, por ejemplo, construir un dispositivo IoT cuyo sistema de archivos contenga un gestor de arranque, un núcleo monolítico, una costumbre
/sbin/init
que haga todo lo que el dispositivo tendrá que hacer, algunas/dev
entradas y nada más .La especificación POSIX.1-2008 "Shell y utilidades" , también vinculada en la respuesta de muru, pretende estandarizar el shell como lenguaje de programación . Por lo tanto, no incluye la mayoría de las herramientas de administración del sistema que se espera que estén presentes en una instalación Unix "tradicional". Desafortunadamente, esta es también una cicatriz visible del antiguo cisma entre System V y BSD: las herramientas que encontrará en Linux no son las mismas que las de FreeBSD o OSX o lo que sea. Entonces, de nuevo, no hay una línea base confiable.
Para dar una indicación de lo que falta en la respuesta de maru, este es el conjunto de paquetes que Debian (inestable) considera "requeridos" ( definición oficial : "Los sistemas con solo los paquetes requeridos probablemente no se puedan usar, pero tienen suficiente funcionalidad para permitir al administrador del sistema de arranque e instalar más software. ") y que contribuyen a archivos
/bin
,/sbin
,/usr/bin
, o/usr/sbin
. Los marcados con un asterisco no solo son "obligatorios", sino "esenciales", lo que significa que otro software empaquetado puede asumir su presencia sin depender de él.¹ awk-the-language es "esencial", pero el administrador del sistema puede elegir si quiere la implementación "mawk" o "gawk".
Y estos son los paquetes considerados ídem "importantes"; la definición oficial de "importante" es "una persona experimentada de Unix que lo encontró desaparecido diría '¿Qué demonios está pasando, dónde está foo?'":
Tenga en cuenta que este segundo conjunto incluye herramientas críticas de administración del sistema como
ps
yiproute2
, pero también cosas que pueden ser completamente innecesarias en algunas instalaciones, comoat
ydmidecode
. Ambos conjuntos también contienen elementos específicos de Debian, comodpkg
yapt
.Observe también que ambos conjuntos juntos no son un superconjunto de la funcionalidad requerida por LSB (o POSIX + XSI para el caso): faltan estas utilidades:
La lista de utilidades que se encuentran en los paquetes anteriores pero no en LSB es larga y tediosa, pero la incluyo de todos modos para subrayar cuántas "herramientas críticas de administración del sistema" incluye.
fuente
ip
comando que mencionaste anteriormente.La Wikipedia: lista de comandos de Unix y Linuxconfig: los comandos de Linux merecen una visita.
Sin embargo, muchas personas tienden a echar un vistazo a lo que está contenido en los directorios que se muestran
echo $PATH
y luego mirar la página del manual para obtener más información.fuente