¿Qué idiomas se usan para construir comandos de Unix?

9

Ejemplos de comandos que me refiero son ls, pwdy cd. Además, ¿cómo se construyen? ¿Tienes un ejemplo?

fronthem
fuente
2
¿Es esta tarea?
Stefan Lasiewski

Respuestas:

26

Suele ser sencillo C. Los comandos lsy pwdprovienen del GNU Coreutilspaquete 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 coreutilsconcretamente, que los construyen con los pasos habituales: después de desempaquetar la fuente, ejecuta:

./configure --prefix=/some/path
                   # type ./configure --help to get the available options
make
make install       # could require root access depending on the path you used

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 cdejecutable , el cdque 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 menudo Ctambién lo es ).

Otros ejemplos:

  • pwdFuente OpenSolaris .
  • FreeBSD ls

Puede encontrar muchos más de estos en línea.

Estera
fuente
5

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 la bashpágina del manual para obtener más detalles, o eche un vistazo al etiqueta .

bash también está escrito en C

Vale la pena señalar que estos comandos no tienen que escribirse en C; de hecho, varias distribuciones de mini linux usan luaimplementaciones de estos y otros.

symcbean
fuente
2
Bueno, bash, o cualquier otro buen caparazón.
rds
1
Tenga en cuenta también que algunos comandos, como cddebe ser un shell incorporado para funcionar de manera efectiva.
Programador