Ejemplos de comandos que me refiero son ls
, pwd
y cd
. Además, ¿cómo se construyen? ¿Tienes un ejemplo?
command-line
source
coreutils
fronthem
fuente
fuente
Respuestas:
Suele ser sencillo
C
. Los comandosls
ypwd
provienen delGNU Coreutils
paquete en (¿la mayoría?) Distribuciones de Linux (y tal vez algunos otros sistemas). Puede encontrar el código en su página de inicio .Para
coreutils
concretamente, que los construyen con los pasos habituales: después de desempaquetar la fuente, ejecuta:Tenga cuidado: instalar utilidades básicas como las que se encuentran sobre la copia de su distribución es una mala idea . Utilice cualquier administrador de paquetes que su sistema venga para eso. Sin embargo, puede instalar en un prefijo diferente (instalar en algún lugar de su directorio de inicio es una buena idea si desea experimentar).
Tenga en cuenta que aunque hay un
cd
ejecutable , elcd
que usará en la mayoría de los casos no es un ejecutable separado. Tiene que ser un shell incorporado (de lo contrario, no podría cambiar el directorio actual del shell; esto lo debe hacer el propio proceso), por lo que está escrito en el mismo idioma que el shell (que a menudoC
también lo es ).Otros ejemplos:
pwd
Fuente OpenSolaris .ls
Puede encontrar muchos más de estos en línea.
fuente
Solo para agregar un poco más a la respuesta de Mat, aunque Unix implementa estos como programas independientes, también se implementan muchos comandos dentro
bash
(para evitar que tenga que generar un nuevo proceso), consulte labash
página del manual para obtener más detalles, o eche un vistazo al shell etiqueta incorporada .bash
también está escrito en CVale la pena señalar que estos comandos no tienen que escribirse en C; de hecho, varias distribuciones de mini linux usan
lua
implementaciones de estos y otros.fuente
cd
debe ser un shell incorporado para funcionar de manera efectiva.