Ubuntu tiene un bash (Bourne Again SHell) mientras que Windows tiene su shell propietario. Según mi investigación, no hay un nombre para el lenguaje utilizado para las secuencias de comandos de shell en Windows / Ubuntu. Simplemente se llama scripting de shell.
¿Por qué las conchas de Windows y Ubuntu entienden los mismos comandos, tales como: ls
, mkdir
, rmdir
, mount
y así sucesivamente?
¿Hay algún tipo de lingua franca para el script de shell? Si es así, por favor dame más detalles.
command-line
bash
windows
history-of-ubuntu
Programador sombrío
fuente
fuente
ls
de que Powershell no lo admitecmd.exe
. Y eso se debe a que los creadores de Powershell se esforzaron por agregar alias para los comandos comunes de Unix para que los usuarios de Unix se sintieran más cómodos. technet.microsoft.com/en-us/library/dd347739.aspxAction-Object
estructura, compuesta de un conjunto de acciones y objetos también estandarizados. Por ejemplo, ambosls
ydir
son alias paraGet-ChildItem
(que además tiene el aliasgci
),mkdir
ymd
son en realidadNew-Item
(que en realidad pueden crear mucho más que directorios, debido al enfoque basado en objetos de PowerShell), y así sucesivamente.Respuestas:
Windows
cmd.exe
no es compatiblels
,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 tienermdir
,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 obtenersh
.bash
,ksh
,ash
,dash
,zsh
Todo el uso que el lenguaje, con mejoras.csh
está en un mundo (de pesadilla) propio, ytcsh
mejoracsh
.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).
fuente
rmdir
(junto conmkdir
ycd / chdir
) soncommand.com
componentes nativos desde MS-DOS 2.0 (antes no había jerarquía en el sistema de archivos DOS)rd
md
También fue un atajo .sh
.bash
,ksh
,ash
,dash
,zsh
Todo el uso que el lenguaje, con mejoras.csh
está en un mundo (de pesadilla) propio, ytcsh
mejoracsh
. Windows obedeció, en algún momento, a POSIX, ya que el gobierno de los EE. UU. Lo requería para los sistemas operativos utilizados por las agencias gubernamentales (de ahí proviene el SUA). Pero ese requisito se eliminó y, posteriormente, se eliminó el SUA.Sencillo:
Linux es un sistema basado en el modelo UNIX, inventado por Dennis Ritchie y Ken Thompson.
Windows / DOS es una imitación barata de un sistema llamado CP / M que era popular en la década de 1970 en las computadoras viejas que conectabas a un televisor, este sistema a su vez fue una imitación barata de los primeros sistemas UNIX de finales de los 60 / principios de los 70 .
fuente