{"id":649,"date":"2008-03-04T20:45:02","date_gmt":"2008-03-04T19:45:02","guid":{"rendered":"http:\/\/www.marblestation.com\/blog\/?p=649"},"modified":"2012-04-26T16:30:36","modified_gmt":"2012-04-26T14:30:36","slug":"cygwin-y-rxvt-como-terminal-alternativa","status":"publish","type":"post","link":"https:\/\/www.marblestation.com\/?p=649","title":{"rendered":"Cygwin y rxvt como terminal alternativa"},"content":{"rendered":"<p>En cualquier Windows que trabaje me gusta disponer de una terminal con los comandos y capacidades t\u00edpicas de las shell de Linux, dado que en ocasiones para hacer ciertas tareas espec\u00edficas puede ser de gran utilidad. Para ello disponemos de <a href=\"http:\/\/cygwin.com\/\">cygwin<\/a>, herramienta que implementa la API <a href=\"http:\/\/es.wikipedia.org\/wiki\/POSIX\">POSIX<\/a> (habitual de Unix) para permitir la compilaci\u00f3n y ejecuci\u00f3n de aplicaciones que han sido dise\u00f1adas para Linux.<\/p>\n<p>En la instalaci\u00f3n podremos escoger entre un gran n\u00famero de comandos y herramientas que han sido portadas, personalmente suelo seleccionar al menos las siguientes:<br \/>\n<!--more--><\/p>\n<ul>\n<li>zip y unzip: Compresores<\/li>\n<li>sqlite3 y libsqlite3_0: BBDD en ficheros.<\/li>\n<li><a href=\"http:\/\/www.marblestation.com\/blog\/?p=605\">bzr<\/a>, <a href=\"http:\/\/www.marblestation.com\/blog\/?p=148\">subversion<\/a>, <a href=\"http:\/\/www.marblestation.com\/publicaciones\/referencia-cvs.php\">cvs<\/a>, git y tig: Herramientas de control de versiones.<\/li>\n<li><a href=\"http:\/\/www.marblestation.com\/blog\/?p=246\">mutt<\/a> y ssmtp: Cliente de correo (IMAP\/POP) y env\u00edo de correos a trav\u00e9s de una pasarela SMTP.<\/li>\n<li>gcc y make: Herramientas de compilaci\u00f3n.<\/li>\n<li>ruby: Lenguaje de programaci\u00f3n script.<\/li>\n<li>mc: Navegador de disco.<\/li>\n<li><a href=\"http:\/\/www.marblestation.com\/publicaciones\/vim.php\">vim<\/a>: Editor de texto (recomendable editar &#8216;~\/.vimrc&#8217;)<\/li>\n<li><a href=\"http:\/\/www.marblestation.com\/publicaciones\/gpg.php\">gpg<\/a> y openssl: Cifrado<\/li>\n<li>bc: Calculadora<\/li>\n<li>corkscrew: Herramienta para realizar conexiones SSH a trav\u00e9s de proxies.<\/li>\n<li>ncftp: Cliente ftp<\/li>\n<li>openssh: Cliente y servidor SSH<\/li>\n<li>ping<\/li>\n<li>stunnel: Herramienta para establecer tuneles cifrados.<\/li>\n<li>netcat: Herramienta de red<\/li>\n<li>chere: Shell here para explorer<\/li>\n<li>rxvt: Terminal<\/li>\n<li>procps: Comandos ps, top, vmstat, w, kill, free, slabtop y skill.<\/li>\n<li>psmisc: Comandos fuser (identificar que procesos usan que ficheros), killall y pstree<\/li>\n<li>grep y bool: Filtros<\/li>\n<li>file: Informa sobre el contenido\/formato de los archivos<\/li>\n<li><a href=\"http:\/\/www.marblestation.com\/blog\/?p=330\">screen<\/a>: Permite tener diversas terminales en una. Se ejecuta mediante &#8216;screen -R&#8217; (resumiendo la sesi\u00f3n anterior si existia): ctrl+a y c para crear una terminal, ctrl+a y n para saltar a la siguiente, ctrl+a y p para retroceder, &#8216;exit&#8217; o ctrl+a y k para cerrar la terminal, ctrl+a y d para desligar la sesi\u00f3n de la terminal.<\/li>\n<li><a href=\"http:\/\/www.marblestation.com\/blog\/?p=215\">unison2.3<\/a>: Sincronizaci\u00f3n de ficheros entre directorios (soporta directorios remotos por SSH)<\/li>\n<li>links: Navegador web de consola<\/li>\n<li>wget: Descarga de ficheros web con posibilidad de resumir (wget -c http:\/\/www&#8230;.)<\/li>\n<\/ul>\n<p>Por otra parte, si bien resulta muy \u00fatil disponer de todas estas herramientas, la terminal que proporciona Cygwin por defecto es un poco precaria. Por suerte podemos utilizar &#8216;rxvt&#8217; como alternativa, la cual nos permitir\u00e1 maximizar la ventana por completo, copiar\/pegar al estilo Unix (\u00fanicamente con el rat\u00f3n, aunque tambi\u00e9n podemos usar shift+insertar), etc. Para utilizarla debemos seguir los siguientes pasos:<\/p>\n<ol>\n<li>Instalar rxvt (aparece en el listado de herramientas en la propia instalaci\u00f3n de cygwin). Si ya tenemos cygwin instalado, podemos descargar de nuevo el setup.exe y volver a ejecutarlo (as\u00ed de paso nos actualizar\u00e1 las herramientas que tengamos obsoletas).<\/li>\n<li>Abrir cygwin y hacer un &#8216;echo $HOME&#8217; para averiguar la ruta de nuestro directorio personal (sustituto del s\u00edmbolo ~). Habitualmente es &#8216;c:\\Documents and Settings\\[usuario]\\&#8217;.<\/li>\n<li>Editar\/crear el fichero &#8216;~\/.bash_profile&#8217;:\n<pre>\r\nsource ~\/.bashrc\r\n<\/pre>\n<\/li>\n<li>Editar\/crear el fichero &#8216;~\/.bashrc&#8217;:\n<pre>\r\n#export HTTP_PROXY=http:\/\/10.72.252.121:8080\r\nexport INPUTRC=$HOME\/.inputrc\r\n\r\nalias rm='rm -i'\r\nalias cp='cp -i'\r\nalias mv='mv -i'\r\nalias ln='ln -i'\r\nalias vi='TERM=rxvt-cygwin vi'\r\nalias ls='ls --color'\r\n<\/pre>\n<\/li>\n<li>Editar\/crear el fichero &#8216;~\/.Xdefaults&#8217;:\n<pre>\r\nrxvt*title:             Bash\r\n\r\nrxvt*foreground:        black\r\nrxvt*background:        white\r\n#rxvt*background:        gray75\r\n#rxvt*reverseVideo:      true\r\n\r\nrxvt*scrollBar_right:   true\r\nrxvt*colorBD:           1\r\nrxvt*font:              courier\r\nrxvt*saveLines:         10000\r\n\r\nrxvt*loginShell:        true\r\nrxvt*geometry:          100x30\r\nrxvt*font:              \"Lucida Console-11\"\r\nrxvt*termname:          rxvt\r\nrxvt*title:             rxvt-login\r\nrxvt*iconName:          rxvt-login\r\nrxvt*backspacekey:      ^?\r\n<\/pre>\n<\/li>\n<li>Editar\/crear el fichero &#8216;~\/.inputrc&#8217;:\n<pre>\r\n\"\\e[1~\": beginning-of-line\r\n\"\\e[4~\": end-of-line\r\n\"\\e[5~\": beginning-of-history\r\n\"\\e[6~\": end-of-history\r\n\"\\e[3~\": delete-char\r\n\"\\e[2~\": quoted-insert\r\n\"\\e[5C\": forward-word\r\n\"\\e[5D\": backward-word\r\n\"\\e\\e[C\": forward-word\r\n\"\\e\\e[D\": backward-word\r\nset completion-ignore-case On\r\n\u201c\\e[5~\u201d: history-search-backward\r\n\u201c\\e[6~\u201d: history-search-forward\r\n# Home in rxvt\r\n\"\\e[7~\": beginning-of-line\r\n# End in rxvt\r\n\"\\e[8~\": end-of-line\r\n<\/pre>\n<\/li>\n<li>Descargar la fuente <a href=\"http:\/\/www.marblestation.com\/tmp\/luconP.ttf\">luconP.ttf<\/a>, abrir &#8216;Start &#8211; Settings &#8211; Fonts&#8217; y arrastrar la fuente. Este paso es opcional, su \u00fanica funci\u00f3n es permitir que rxvt dibuje correctamente l\u00edneas como las de la herramienta &#8216;mc&#8217;.<\/li>\n<li>Editar &#8216;c:\\cygwin\\cygwin.bat&#8217; y substituir &#8216;bash &#8211;login -i&#8217; por:\n<pre>\r\nstart rxvt -fn 'Lucida ConsoleP-13' -tn cygwin -e bash --login -i\r\n<\/pre>\n<\/li>\n<li>Cerramos y volver a abrir cygwin.<\/li>\n<\/ol>\n<p>Adicionalmente, os dejo tambi\u00e9n mi configuraci\u00f3n de vim del fichero &#8216;~\/.vimrc&#8217; (imprescindible para poder utilizar vim en condiciones):<\/p>\n<pre>\r\n\" When editing a file, always jump to the last cursor position\r\nautocmd BufReadPost *\r\n     \\  if line(\"'\\\"\") > 0 && line (\"'\\\"\") &#60;= line(\"$\") |\r\n     \\    exe \"normal g'\\\"\" |\r\n     \\  endif\r\n\r\n\" sw -> espacios de la indentacion\r\nset sw=4\r\n\r\n\" tabulacion\r\nset tabstop=4\r\nset smarttab\r\n\r\n\" ignore case en las busquedas\r\nset ic\r\n\r\n\" highlight search, incsearch\r\nset hls is\r\n\r\n\" Mostrar siempre la linea actual\r\nset ruler\r\n\r\n\" Coloreado\r\nsyntax on\r\n\r\n\" Lineas\r\nset number\r\n\r\n\"Sin beep ni aviso visual\r\n\"set vb t_vb=\r\n\r\n\"Sin beep\r\n\"set vb\r\n\r\n\" Reemplazar tabs con espacios\r\n\"set expandtab\r\n\r\n\" Configuracin del explorador de ficheros (\":Explore\")\r\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\r\n\" Al abrir un fichero, hacerlo en la ventana actual\r\nlet g:netrw_browse_split=0\r\n\r\n\" Activar la ocultacion de ficheros\r\nlet g:netrw_hide=1\r\n\r\n\" Lista de ficheros a ocultar (separar por comas)\r\nlet g:netrw_list_hide='^..*'\r\n\r\n\" Modo de lista larga (con detalles)\r\nlet g:netrw_longlist=1\r\n\r\n\" Ordenar por \"name\", \"time\", o \"size\"\r\nlet g:netrw_sort_by=\"name\"\r\n\r\n\" Orden \"normal\" o \"reverse\"\r\nlet g:netrw_sort_direction=\"normal\"\r\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\r\n\r\n\" Mostrar siempre la barra de tabs\r\nset stal=2\r\n\r\n\" Remapeo de comandos\r\nnmap :W :w\r\nnmap :Q :q\r\nnmap :WQ :wq\r\n\r\n\" Function Key Mappings\r\nmap &#60;F2>        :w&#60;C-M>\r\n\r\nmap &#60;F4>        :set nowrap&#60;C-M>\r\nmap &#60;C-F4>       :set wrap&#60;C-M>\r\n\r\n\" Pegar sin problemas\r\nset pastetoggle=&#60;F12>\r\n\r\n\" Habilitar\/Deshabilitar uso de ratn\r\nmap &#60;F8>  :set mouse=a&#60;CR>\r\nmap &#60;C-F8>  :set mouse=&#60;CR>\r\n\r\n\" tab navigation\r\n:nmap &#60;C-p> :tabprevious&#60;cr>\r\n:nmap &#60;C-n> :tabnext&#60;cr>\r\n:nmap &#60;C-t> :tabnew&#60;cr>\r\n:map &#60;C-c> :tabclose&#60;cr>\r\nmap &#60;C-S-F1> 1gt\r\nmap &#60;C-S-F2> 2gt\r\nmap &#60;C-S-F3> 3gt\r\nmap &#60;C-S-F4> 4gt\r\nmap &#60;C-S-F5> 5gt\r\nmap &#60;C-S-F6> 6gt\r\nmap &#60;C-S-F7> 7gt\r\nmap &#60;C-S-F8> 8gt\r\nmap &#60;C-S-F9> 9gt\r\nmap &#60;C-S-F10> 10g\r\n\r\n\" No guardar fichero de backup *~\r\nset nobackup\r\n\r\n\" Hack cygwin backspace\r\nset backspace=indent,eol,start\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En cualquier Windows que trabaje me gusta disponer de una terminal con los comandos y capacidades t\u00edpicas de las shell de Linux, dado que en ocasiones para hacer ciertas tareas espec\u00edficas puede ser de gran utilidad. Para ello disponemos de cygwin, herramienta que implementa la API POSIX (habitual de Unix) para permitir la compilaci\u00f3n y &hellip; <a href=\"https:\/\/www.marblestation.com\/?p=649\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Cygwin y rxvt como terminal alternativa<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6],"tags":[],"class_list":["post-649","post","type-post","status-publish","format-standard","hentry","category-espanyol","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=649"}],"version-history":[{"count":3,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/649\/revisions"}],"predecessor-version":[{"id":753,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/649\/revisions\/753"}],"wp:attachment":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}