que - ¿Dónde puedo encontrar el código fuente para los comandos básicos de Linux?
comandos linux terminal (8)
CoreUtils mencionado en otras publicaciones NO muestra la implementación real de la mayor parte de la funcionalidad que creo que busca. En la mayoría de los casos, proporciona interfaces para las funciones reales que recuperan los datos, que se pueden encontrar aquí:
Se basa en Gnulib con el código fuente real en el lib-subdirectory
Me gustaría leer el código real con el que están escritos los comandos de Linux. He ganado experiencia en su uso y ahora creo que es hora de interactuar con mi máquina a un nivel más profundo. He encontrado algunos comandos aquí http://directory.fsf.org/wiki/GNU .
Lamentablemente, no pude encontrar comandos básicos como ''ls'', que me parece bastante fácil de comenzar.
¿Por casualidad conoce alguna página web, libro o cualquier otra cosa para comenzar?
Me estoy ejecutando en Ubuntu 12.04
En realidad, http://suckless.org proporciona fuentes más sensatas en su repositorio sbase
:
git clone git://git.suckless.org/sbase
Son más claros, más inteligentes, más simples y sin sentido, por ejemplo, ls.c
tiene solo 369 LOC
Después de eso, será más fácil entender el código GNU más complicado.
Enlaces directos a la fuente de algunos programas populares en http://www.gnu.org/software/coreutils/ :
-
cat
(767 líneas) -
chmod
(570 líneas) -
cp
(2912 líneas) -
cut
(831 líneas) -
date
(570 líneas) -
df
(1718 líneas) -
du
(1112 líneas) -
echo
(272 líneas) -
head
(1070 líneas) -
hostname
(116 líneas) -
kill
(312 líneas) -
ln
(651 líneas) - http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c (4954 líneas)
-
md5sum
(878 líneas) -
mkdir
(306 líneas) -
mv
(512 líneas) -
nice
(220 líneas) -
pwd
(394 líneas) -
rm
(356 líneas) -
rmdir
(252 líneas) -
shred
(1325 líneas) -
tail
(2301 líneas) -
tee
(220 líneas) -
touch
(437 líneas) -
wc
(801 líneas) -
whoami
(91 líneas)
Puedes encontrar muchos comandos aquí:
http://www.opensource.apple.com/source/shell_cmds/shell_cmds-170/
Todos estos comandos básicos son parte del paquete coreutils
.
Puede encontrar toda la información que necesita aquí:
http://www.gnu.org/software/coreutils/
Si quieres descargar la última fuente, debes usar git:
git clone git://git.sv.gnu.org/coreutils
Para instalar git en su máquina Ubuntu, debe usar apt-get (git no está incluido en la instalación estándar de Ubuntu):
sudo apt-get install git
A decir verdad, aquí puedes encontrar una fuente específica para el comando ls
:
http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c
Solo 4984 líneas de código para un comando ''bastante fácil'' como ls
... ¿todavía estás interesado en leerlo? ¡Buena suerte! :RE
Visita por ejemplo:
http://ftp.gnu.org/pub/gnu/coreutils/
Puede navegar el código en línea. Abra uno de los archivos y verifique la carpeta src.
ls
es parte de coreutils. Puedes obtenerlo con git:
git clone git://git.sv.gnu.org/coreutils
Encontrará coreutils enumerados con otros paquetes (desplazarse hacia abajo) en esta página .
cd ~ && apt-get source coreutils && ls -d coreutils*
Debería poder usar un comando como este en ubuntu para recopilar la fuente de un paquete, puede omitir sudo
asumiendo su descarga en una ubicación de su propiedad.