Terminal similar a Linux para Windows

Estoy buscando una aplicación que pueda actuar como un terminal similar a Linux integrado para mi PC con Windows. Por ejemplo, podría navegar por el sistema de archivos, instalar aplicaciones como vi, etc. Me gustaría que esta aplicación cumpliera con los siguientes requisitos:

  • Gratis
  • utiliza bash
  • No es un emulador (en realidad puedo ver mis archivos en la unidad C e interactuar con ellos)
  • Fácil de instalar
  • Compatible con Windows 10
Si está dispuesto a perder el requisito de bash, también puede consultar Powershell, que admite secuencias de comandos y se integra a más servicios de Windows: en.wikipedia.org/wiki/Windows_PowerShell
^ En ese caso, ¿por qué no Python? También es multiplataforma, y ​​realmente un lenguaje de programación de propósito general totalmente capaz.
Siempre hay masilla. Esto requeriría una caja de Linux en la red en algún lugar (por ejemplo, raspberry pi, PC dedicada, máquina virtual, EC2). De esta forma no experimentarás muchos de los dolores de Cygwin. Agregué esto como un comentario porque es una interpretación bastante vaga de sus criterios. Sin embargo, para mí, prefiero Linux real sobre Cygwin.
¿Está preguntando por un shell de comandos o un terminal que no sea la consola de Windows?
ConsoleZ con herramientas gnu nativas es una buena alternativa
Y no olvide obtener la última versión de ConEmu para reemplazar el indicador de CMD predeterminado de Windows o CygWins...

Respuestas (10)

He estado usando Cygwin desde hace algún tiempo y parece hacer el trabajo. Fue muy fácil de instalar y pude elegir entre muchos paquetes diferentes para instalar como vim, wget, etc.

Cygwin

Obtenga esa sensación de Linux - en Windows

Cygwin es un entorno similar a Unix y una interfaz de línea de comandos para Microsoft Windows. Cygwin proporciona integración nativa de aplicaciones, datos y otros recursos del sistema basados ​​en Windows con aplicaciones, herramientas de software y datos del entorno similar a Unix.

Terminales Cygwin que se ejecutan en Windows 7

He estado usando Cygwin durante más de una década. Es mi terminal de línea de comandos estándar (mintty) y casi nunca tengo que usar cmd.exe.
¿Por qué tienes una foto de Hamilton C Shell?
Babun es muy bueno como una configuración Cygwin obstinada con un administrador de paquetes y actualización automática.
@JimGarrison ¿Ha mejorado el rendimiento durante esa década? En 2006 también tuve que usar Cygwin durante unos meses. El uso de fork, exec y pipes era tan lento que los scripts de shell se ejecutaban al menos 100 veces más rápido en Linux que en Windows.
@kasperd Nunca noté un problema de rendimiento. No espero que coincida con el rendimiento nativo de Linux, pero nunca ha habido un punto en el que me haya frustrado el mal rendimiento.
@JimGarrison Creo que eso solo puede significar que no usó las funciones lentas de manera extensiva, porque era imposible no notar la lentitud para los scripts de shell que necesitaba. No es que fuera una fuente de frustración, ya que podía acceder a un servidor Linux y ejecutar mis scripts allí. Cygwin nunca fue una fuente de frustración para mí; en cambio, culparía a Windows y reconocería que Windows con Cygwin era un mejor entorno de trabajo que Windows sin Cygwin.
@Boggin babunya no se mantiene y ya no debería recomendarse.

CMDer

cmder

Combina ConEmu , un emulador de consola de Windows mejorado con capacidades similares a bash por Clink y msysgit . Algunas características notables incluyen:

  • Bash shell, a través de msysGit
  • Compilador GNU C y marca GNU
  • Perl
  • rizo
  • Agente SSH incorporado
  • Autocompletado de comandos
  • Alias ​​(con la misma sintaxis que bash)
  • Pegar desde el teclado conCTRLV

Si está buscando un administrador de paquetes (por ejemplo , apt-geto yum), Chocolatey es una posible alternativa de Windows. No contiene todos los paquetes y, en ocasiones, algunos están desactualizados, pero tiene una distribución bastante impresionante.

choco install googlechrome
+1 por simplemente mencionar a Cmder, me encanta ese software. También es portátil, por lo que puede tenerlo en su memoria USB y tenerlo sobre la marcha, que es lo que hago para evitar la horrible interfaz cmd.
Es interesante que use Git Bash. Lo uso yo mismo, pero ¿es realmente el mejor enfoque frente a Cygwin? No hay administrador de paquetes. Chocolatey solo parece instalar aplicaciones de Windows.
En el contexto de la pregunta (que solicitaba un shell bash), creo que es tan bueno como Cygwin. A veces no necesita un sistema Linux completo con administrador de paquetes, solo un shell bash para un trabajo rápido y sucio.
+1. cmder es probablemente tan bueno como parece. Mencionaré aunque tiene un montón de problemas con el redibujado. (Por ejemplo, si tiene menús parpadeando dentro y fuera de existencia en vim).

Cygwin , que ya aparece en la lista, es una buena solución.

Sin embargo, existe otra alternativa: MSYS .

MSYS es mucho más liviano que Cygwin, sin embargo, es posible que no tenga todo lo que necesita. Obviamente, tendrás que evaluar eso tú mismo. Definitivamente cumple con todos los 5 de sus viñetas. Es gratis, tiene un shell Bash, puede interactuar con sus unidades actuales, es fácil de instalar y funciona en Win10.

Sugeriría encarecidamente MSYS2 sobre el viejo MSYS.

Babun

Una captura de pantalla mía jugando con nant a través de Babun.  Este es un tema de luz solarizada.

Me sorprende que nadie haya mencionado a Babun, "una carcasa de Windows que te encantará". Es un Cygwin preconfigurado que "simplemente funciona", generalmente bastante impresionante de fábrica.

Durante mucho tiempo usé Git Bash (mejorado con Console2), pero sentí que faltaba bastante. Quería más, pero estaba bastante intimidado por Cygwin: tenía miedo, quizás sin razón, de la hinchazón y la dificultad de configurar la cosa. También quería una terminal razonablemente atractiva, y cygwin listo para usar simplemente no es muy bonito. Me temo que voy a sonar como un anuncio, pero Babun realmente funcionó.

Ahora, sobre los requisitos:

  • es gratis y de código abierto.
  • por defecto usa zsh en lugar de Bash, pero francamente, eso es casi lo mismo para el usuario ocasional. Se puede reconfigurar para usar bash adecuado.
  • Se puede interactuar perfectamente con los archivos reales de Windows, se puede acceder a las unidades en /cygdrive/, pero también se les asigna un alias a sus letras de unidad en la raíz.
  • La instalación es simplemente ejecutar un install.bat.
  • La compatibilidad con Windows 10 no es perfecta, pero la solución parece bastante sencilla .

Tiene problemas:

  • Los enlaces simbólicos son un poco basura , eso es un problema de Cygwin.
  • Hay un error relacionado con los permisos que me causó cierto dolor.
  • Su huella no es insignificante (alrededor de 800 MB en mi máquina con cosas que necesito para trabajar), lo que hace que las soluciones que no son de Cygwin (Git-bash o cmder) sean más adecuadas si el espacio en disco es un problema (sí, chicos, el espacio en disco es a veces sigue siendo un problema).
  • El autocompletado de oh-my-zsh puede ser lento. Pero aún así te encantará.
  • hay algunos contratiempos con la interacción con archivos y aplicaciones de Windows en algunos casos extremos, principalmente para archivos con espacios en sus nombres. Estos se pueden evitar con bastante facilidad, pero sigue siendo un poco doloroso. Llamar a los ejecutables de Windows con archivos Windowsy como argumentos requiere el uso de cygpath.
  • Windows no reconoce a Babun como un caparazón interactivo, piensa que es una tubería. Esto provoca todo tipo de problemas con los programas interactivos de nodos nativos. Es un problema de menta , que se puede mejorar .

En general, si solo desea una carcasa atractiva con características, sin perder tiempo ajustando y configurando la cosa, Babun es simplemente perfecto. Hay problemas molestos, pero me gusta :)

¿Podría editar su respuesta e incluir cómo Babun cumple con cada uno de los requisitos del OP? Para obtener una guía sobre las respuestas, lea nuestra discusión sobre lo que hace que una respuesta sea de alta calidad . ¡Gracias!
+1, especialmente porque tiene una implementación de zsh en funcionamiento lista para usar
El babunproyecto ahora está oficialmente muerto. Esto no debería recomendarse más.
Sí, desafortunadamente, Babun ha sido descontinuado :(. ¡Sin embargo, todavía funciona!

Windows 10, con la actualización de aniversario de 2016, ahora proporciona un binario Bash Linux que se ejecuta en Windows. Se puede acceder a través de cualquier símbolo del sistema y puede ejecutar comandos de estilo UNIX (como ls) como lo haría con cualquier otro comando. Para obtener más información al respecto, lea las publicaciones de MSDN en la página Subsistema de Windows para Linux .

Captura de pantalla

Esto parece realmente emocionante.
Esta debería ser la respuesta ahora, ya que se trata de distribuciones de Linux reales que se ejecutan en Windows 10 y son extremadamente fáciles de configurar.
todavía faltan algunas características wpdev.uservoice.com/forums/…
@StevenPenny gracias por el enlace y por mencionar las limitaciones.
¿Cómo ejecutas esto?

Lo que uso es una combinación de Git Bash, que viene cuando instalas Git y ConEmu . Git Bash usa MinGW, y ConEmu brinda la opción de tener múltiples pestañas y buenos esquemas de color, la opción de tener una terminal de pantalla completa y más.

...y para aquellos interesados ​​en la arqueología de software, Git Bash para Windows viene con perl v5.8.8. Es difícil encontrar una versión más desactualizada de Perl en Windows.
@tjd perl --version informa v5.22.0 (último estable) con mi instalación de Git-2.5.2.2.
@Boggin Renuncié a buscar una actualización de Git 1.9.5 en Windows. ¡Es bueno ver que finalmente han entregado!
Debo decir que prefiero Git Bash a Cygwin, solo porque si realmente quiero un entorno completo similar a Linux en mi computadora, ahí es cuando inicio Linux. Cygwin es una gran cosa, ¡pero es excesivo si solo quieres un caparazón!

MSYS2 es una bifurcación de Cygwin creada con la intención de ser un entorno actualizado para admitir la construcción con MinGW. (Es decir, está destinado a servir como una alternativa mejor mantenida al MSYS cada vez más desactualizado. Consulte aquí para obtener algunos detalles). Funciona bien como un shell bash con herramientas Linux en una máquina con Windows.

Requisitos

  • Libre
  • bash es el shell predeterminado
  • Se instala en su máquina y funciona en su disco duro local, no en un sistema emulado

    Tenga en cuenta que debe citar sus rutas ( cd 'C:\') o utilizar una especificación absoluta alternativa ( cd /c). Creo que Cygwin, MSYS y otras variantes relacionadas son similares en este sentido.

  • Utiliza un instalador estándar ejecutable de Windows

  • No lo he probado personalmente en Windows 10, pero dado que es una bifurcación de Cygwin y lo sigue de cerca, estoy seguro de que es tan compatible con Windows 10 como lo es Cygwin.

Otro

En mi opinión, la mayor ventaja de MSYS2 es la gestión de paquetes relativamente limpia. Los administradores de paquetes de Cygwin y MSYS son, en mi opinión, confusos y difíciles de usar. Son gráficos y no están muy bien integrados con el propio sistema. Por el contrario, MSYS2 portó el pacman de Arch Linux y toda la gestión de paquetes se realiza en la línea de comandos. Hay una gran cantidad de paquetes disponibles y fáciles de instalar, desde Python a Perl a vim a SVN a git a los compiladores MinGW. Hay un pequeño inconveniente con la actualización de ciertos paquetes "principales": debe reiniciar su shell y ejecutar la actualización nuevamente, pero en mi opinión, esto es muy superior a tener que iniciar alguna herramienta gráfica externa.

Consulte la introducción y la comparación con Cygwin para ver la declaración de MSYS2 sobre las diferencias con Cygwin y cuáles eran sus objetivos.

¡Estoy de acuerdo! Además, ConEmu es un buen emulador de consola para usar. Uso zsh o fish como shells, pero con MSYS2 en ConEmu, a diario.
@Josef Encuentro que, en general, estoy contento con la consola que usa de forma predeterminada. Definitivamente es mucho mejor que la ventana del símbolo del sistema.
ConEmu tiene la ventaja de que también se puede usar para aplicaciones de consola nativas de Windows y PuTTY/KiTTY, por lo que tengo todas mis consolas, locales y remotas, Windows y MSYS2 en una sola ventana.

MobaXTermo

captura de pantalla

  • Gratuito: si . Tiene Edición Personal y Profesional. La edición profesional en su mayoría solo agrega un contrato de soporte y herramientas de implementación AFAICT). Puede utilizar la edición personal en su lugar de trabajo
  • Utiliza Bash: Sí. Estoy usando MobaXTerm 8.6 y eso está usando Bash 4.1.17 (0)-release. Las versiones más nuevas de MobaXTerm pueden usar un nuevo Bash
  • No es un emulador: Sí, no es un emulador . Lo inicia en lo que parece una estructura de archivos de Unix (eche un vistazo a ls /), pero si navega hasta /mnt/csu C, condúzcalo allí.
  • Fácil de instalar: . Viene como un instalador simple y un exe portátil
  • Compatible con Windows 10: , y Vista y 7

Instalar cosas como Vi puede hacerlo. Tiene el suyo propio apt-get, que es MobApt, que se basa en apt-cyg (versión 0.59 para mí). Simplemente haces el estilo normal de Debian, apt-get install vietc.

Creo que MobaXterm básicamente incluye Cygwin, pero lo prefiero, ya que la última vez que usé Cygwin, se extendió por todo mi sistema operativo y se agregó a varios menús. MobaXterm lo mantiene todo contenido.

Sin embargo, las características principales de MoboXTerm no son realmente su terminal local. Probablemente sea más conocido por ser un cliente SSH, con SFTP y X11 incorporados. Y un montón de otras cosas.s

Este es un programa muy recomendable, particularmente la integración X11 que lo hace único entre otras alternativas en las respuestas aquí.
Tenga en cuenta que con esta solución, ¡debe usar su emulador de terminal! :-( No hay una bash.exeresidencia separada en el sistema de archivos normal externo que pueda iniciar en una aplicación de terminal de su elección. (Pero estoy de acuerdo con @krishnakumarG, el servidor X11 que proporciona es excelente).

A partir de 2015 y el lanzamiento de Python 3.4, ahora hay un shell interactivo para el usuario razonablemente completo disponible en: http://xon.sh/

El video de demostración no muestra el uso de tuberías, pero SON compatibles en el modo de shell predeterminado.

Xonsh ('concha') se esfuerza mucho por emular a bash, por lo que las cosas para las que ya has ganado memoria muscular, como

env | uniq | sort -r | grep PATH

o

my-web-server 2>&1 | my-log-sorter

seguirá funcionando bien. Es posible que necesite cygwin o msys para tener acceso a los coreutils de GNU como grep y uniq. Windows tiene algunas de sus propias funciones integradas bajo nombres similares a Unix que pueden explotar cosas, así que tenga cuidado con el orden de su variable PATH.

El tutorial de xonsh es bastante largo y parece cubrir una cantidad significativa de la funcionalidad que alguien generalmente esperaría en un aviso de ash o bash:

  • ¡Compila, evalúa y ejecuta!
  • Historial de comandos y finalización de pestañas
  • Ayuda y Superayuda con ? & ??
  • Alias ​​y avisos personalizados
  • Ejecuta comandos y/o secuencias de comandos *.xsh que también se pueden importar
  • Variables de entorno, incluida la búsqueda con ${}
  • Redirección y combinación de entrada/salida
  • Trabajos en segundo plano y control de trabajos
  • Anidación de subprocesos, canalizaciones y coprocesos
  • Modo subproceso cuando existe un comando, modo Python de lo contrario
  • Subproceso capturado con $(), Subproceso no capturado con $[], Evaluación de Python con @()
  • Globbing de nombre de archivo con * o expresión regular Globbing de nombre de archivo con comillas graves

Terminal de Windows

Terminales de ejemplo

Aunque no incluye un verdadero shell bash de forma predeterminada, he encontrado que el terminal de Windows es el mejor terminal creado por Microsoft, oficialmente compatible con Windows, para Windows 10.

Requisitos

  • Gratuito -
  • Utiliza Bash: puede , puede ejecutar bash, powershell, símbolo del sistema, ubuntu shell con el subsistema de Windows para Linux o cualquier shell
  • No es un emulador: es tan real como parece.
  • Fácil de instalar: súper fácil , instale a través de microsoft store
  • Compatible con Windows 10 - Ciudadano de primera clase de Win 10

Especialmente con las funciones de línea eléctrica, se ve tan bien. Además, si desea un entorno Linux para explorar su PC Winodws real, puede consultar el Subsistema de Windows para Linux a través de la Terminal de Windows.

He encontrado que la documentación es excelente, por lo que debería poder hacer todas estas cosas con relativa facilidad simplemente leyendo la documentación de Microsoft.