Windows cmd.exe
no es compatible ls
, mount
etc., a menos que los haya instalado usted mismo y los haya agregado al %PATH%
(a través de Cygwin, MinGW, Subsistema para aplicaciones basadas en Unix (SUA) u otra cosa). Powershell lo hace. Y eso se debe a que Powershell los tiene como alias de los comandos estándar de Powershell, para que los usuarios de Unix puedan sentirse más cómodos. Consulte la lista de alias de compatibilidad en Powershell . Windows tiene rmdir
, mkdir
etc. , pero estos, por supuesto, no admiten la misma sintaxis de opciones que encontraría en Ubuntu.
En Ubuntu, estos no tienen nada que ver con Bash. Todos son comandos externos. Hay estándares para tales utilidades. POSIX es el más notable (consulte la lista de utilidades obligatorias de POSIX ), y Linux Standard Base (LSB) es otra que es importante para los sistemas Linux (que se basa principalmente en POSIX, pero tiene algunas adiciones ). Los que están en Ubuntu son principalmente proporcionados por GNU , y las utilidades de GNU a menudo tienen más características que la base requerida por POSIX.
POSIX también define el lenguaje de shell que mencionó (que es sustancialmente diferente del que está en cmd.exe
). Se deriva de la sintaxis del shell Bourne . Bash (ahora ya sabe a qué se refiere Bourne nuevamente ), también de GNU, también agrega características en la parte superior, pero puede comportarse de manera compatible con POSIX cuando sea necesario. El lenguaje POSIX es el que esperarías obtener sh
. bash
, ksh
, ash
, dash
, zsh
Todo el uso que el lenguaje, con mejoras. csh
está en un mundo (de pesadilla) propio, y tcsh
mejora csh
.
Para entender un poco más, mire la historia de Unix y sistemas similares a Unix. Unix es anterior a Windows en más de una década, y estas utilidades aparecieron por primera vez en Unix.
Windows fue, en un momento, compatible con POSIX, ya que el gobierno de los EE. UU. Lo requería para los sistemas operativos utilizados por las agencias gubernamentales (fue entonces cuando agregaron los Servicios para Unix (SFU) , de donde provino el SUA mencionado en el primer párrafo). Pero ese requisito se eliminó y, posteriormente, se eliminó el SUA.
Relacionado:
(Tenga en cuenta la parte común de estas publicaciones, todas están en Unix y Linux , y en el historial de etiquetas , puede encontrar que navegar por esa etiqueta es muy informativo).