Cómo trabajar en Windows como si fuera Linux

13 de Octubre de 2008 por luis

Cuando aprendes a trabajar en Linux te acostumbras a usar una serie de herramientas que se echan de menos al volver a Windows. Me refiero a la potencia de la consola, a la facilidad con la que trabajar en máquinas remotas mediante ssh o incluso a volcar aplicaciones gráficas de una máquina en otra.

Windows dispone de consola también, pero no es lo mismo. Además, las herramientas que se pueden usar son muy limitadas.

Voy a describir detalladamente los pasos que he seguido hasta tener una consola con la funcionalidad básica de cualquier consola en Linux, el servidor X y el servidor ssh. Como adelanto voy a decir que todo se basa en usar Cygwin y Console2.

Paso 1. Instalar Cygwin

Existe la posibilidad de usar multitud de herramientas de Linux compiladas para Windows, pero el sitema más cómodo es Cygwin. Como describe la wikipediaCygwin es una colección de herramientas que proporcionan un comportamiento similar a los sistemas Unix en Windows. Su objetivo es portar software que ejecuta en sistemas POSIX a Windows con una recompilación a partir de sus fuentes“.

Para instalar Cygwin hay que descargarse un pequeño instalador desde su página web. Al ejecutarlo le diremos que instale desde internet. Después hay que configurar en qué carpeta del disco se instala (C:\cygwin está bien) y dónde se descargan los paquetes (yo suelo usar C:\cygwin_tmp). Lo siguiente es seleccionar el mirror desde donde se descargarán los paquetes (se puede usar cualquiera).

La parte más importante es la selección de paquetes. Por defecto viene seleccionado casi todo lo importante, sobre esa selección he añadido los siguientes paquetes separados por categorías:

  • Admin
    • cygrunsrv
    • shutdown
  • Archive
    • p7zip
    • unzip
    • zip
  • Devel
    • ddd
    • gcc
    • gdb
    • make
    • subversion
  • Editors
    • vim
    • emacs
    • xemacs
  • Graphics
    • gnuplot
    • xfig
  • Libs
    • zlib
  • Math
    • octave
  • Net
    • openssh
    • ping
    • tcp_wrappers
    • whois
  • Utils
    • time
  • Web
    • wget
  • X11
    • X-start-menu-icons
    • X-startup-scripts
    • xorg-x11-* (except xorg-x11-xwin-gl)

Algunos son herramientas para editar y compilar código, otros son necesarios para el servidor X o para el servidor ssh y otros son aplicaciones varias. Se instalarán automáticamente despues de descargarse.

Cygwin ya está listo para usarse.

Siempre que queramos añadir nuevos paquetes, o actualizar los que tenemos, bastará con ejecutar de nuevo el archivo de instalación que nos hemos descargado y marcar los paquetes que queremos añadir.

Paso 2. Instalar el servidor ssh

El servidor ssh nos permitirá conectarnos a nuestro ordenador usando ssh.

Voy a resumir las intrucciones para Windows XP. En el siguiente enlace hay instrucciones más detalladas, solución a bastantes problemas y las diferencias para Windows Vista.

Antes de continuar hemos tenido que instalar los paquetessiguientes paquetes de Cygwin openssh, cygrunsrv, tcp_wrappers, diffutils y zlib. Tendremos que arrancar windows con una cuenta de usuario con permisos de administrador y que tenga contraseña. Ningún usuario sin contraseña podrá conectarse por ssh.

A continuación tenemos que añadir una variable de entorno al sistema. Click derecho en Mi PC -> propiedades -> Opciones avanzadas -> Variables de entorno. En Variables del sistema creamos una nueva cuyo nombre es CYGWIN y cuyo valor es ntsec tty

Además hemos de editar la variable del sistema PATH y añadirle ;c:\cygwin\bin al final (si hemos instalado Cygwin en c:\cygwin, claro).

Ahora abrimos una consola de Cygwin y escribimos:

chmod +r /etc/passwd
chmod +r /etc/group
chmod 777 /var
ssh-host-config -y
net start sshd

Solo falta abrir el puerto 22 en el firewall de Windows (o en el que se esté usando). Para ello abrimos Panel de control -> Firewall de Windows -> Excepciones -> Agregar puerto. Nombre: sshd, número de puerto: 22 y protocolo: TCP

Si todo ha ido vien ya podeis conectaros.

Paso 3. Personalización de la consola

Ya tenemos Cygwin instalado, pero hasta ahora usa la consola de windows, que es, para mí, poco agradable.

Para solucionar ésto podemos instalar Console, en concreto la última beta de la versión 2.0 que se puede descargar desde aquí (la versión más reciente en el momento de escribir este post es la 2.00 beta 140). No incluye instalador, simplemente se descomprimido en C:\Archivos de Programa.

Abrimos Console y, además de agrandar el número de líneas y columnas de la ventana a nuestro gusto (45×120 en mi caso), vamos a la sección de Tabs y creamos uno nuevo con nombre Cygwin, con C:\cygwin\Cygwin.ico como icono y con C:\cygwin\bin\bash.exe --login -i en Shell, dejando el resto sin tocar.

Console ya nos permite, tras lanzarlo, abrir nuevos tabs que arrancan como Cygwin, pero si lo que queremos es un acceso directo para abrir Console directamente con un tab Cygwin podemos crear un acceso directo en el escritorio. El destino del acceso directo sería "C:\Archivos de programa\Console2\Console.exe" -t Cygwin y como icono se puede poner el de cygwin, igual que antes.

Por último siempre acostumbro a editar el fichero .bashrc para descomentar algunas líneas como las que activan el autocompletado o algunos alias, pero sobre todo para personalizar el prompt, es decir, cómo aparece la línea de comandos. Yo simpre añado la siguiente línea:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[0m\]@\[\033[00;33m\]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Y éste es el resultado:

Paso 4. Servidor X

Si hemos seleccionado los paquetes de la lista en la instalación de Cygwin ya tenemos instalado todo lo necesario para lanzar un servidor X. Lo único que se puede añadir es un acceso directo en el escritorio al script que lo lanza, la ruta es C:\cygwin\usr\X11R6\bin\startxwin.bat y como icono le podemos poner el del ejecutable XWin.exe que hay en la misma carpeta.

Si no tienes muy claro la aplicación de ésto y tienes un segundo ordenador con linux lanza el servidor X (con el acceso directo que acabas de crear), escribe en la consola:

xhost 192.168.1.2

(suponiendo que 192.168.1.2 es la ip del segundo ordenador). Conéctate por ssh ese ordenador y, en consola, escribe:

export DISPLAY=192.168.1.1:0.0
xclock

(suponiendo que 192.168.1.1 es la ip del ordenador en el que has lanzado el servidor X). Si todo ha ido bien se debería abrir en tu windows una pequeña ventana con un reloj que se está ejecutando en el segundo ordenador.

Ya está todo, espero que esta guía te sea útil. Si tienes cualquiér duda o propuesta para el tutorial, por favor, escríbela en los comentarios.

VN:F [1.8.1_1037]
Rating: 0.0/5 (0 votes cast)
Share and Enjoy:
  • Twitter
  • Facebook
  • Meneame
  • del.icio.us
  • Bitacoras.com


3 Respuestas a “Cómo trabajar en Windows como si fuera Linux”

  1. manu dijo:

    Como bien sabes, ya lo he llevado a cabo esta mañana =) y la verdad es que con find y grep soy mucho más feliz =D

  2. jorge dijo:

    Cygwin mola tiene un monton de paquetes y casi cualquier cosa compila en cygwin.
    Yo personalmente prefiero trabajar con la combinación msys + mingw.
    la ventaja es que permite generar ejecutables win32 cuando compilas con cygwin todo lo que compilas depende de la dll de cygwin.
    cygwin tiene otra desventaja es que si instalas muchos paquetes se reduce notablemente el rendimiento de tu ordenador.
    Ademas te da sorpresas desagradables como cuando tienes cygwin instalas el gnuplot para windows y paralizas la máquina porque resulta que gnuplot traía una versión de cygwin incompatible…
    yo recomiendo msys para la consola , mingw para el compilador y para el servidor x y ssh usar una distribución de cygwin en cd como xlivecd
    http://xlivecd.indiana.edu/
    no te instala nada en el ordenador y viene con lo básico.

    Lo malo de msys es que tiene menos soporte casi nada compila por si solo

    Otra cosa cygwin es un proyecto controlado por redhat de una forma férrea.

  3. Cambiando el prompt de la terminal « Ubuntu Life dijo:

    [...] ejemplo usa el siguiente prompt (visto en 2geek2curious) [...]

Deja una Respuesta