Hace un rato que he trabajado con servidores Unix/Linux desde los cuales me conectaba desde PC's con Windows (por las políticas y costumbres de mis empleadores) siendo así que un día me anime a configurar y probar desde cygwin y después de un rato de estar trabajando en mi ambiente, debo decir que me ha encantado, ha sido óptimo y que algunas herramientas como rxvt y screen han incrementado mi tiempo, placer y productividad.
Siendo así, he decidido crear una guia para tener un ambiente similar al mio. (mega-post y gracias a Eliot y sus buenas guías)
Empecemos descargando e instalando cygwin, (www.cygwin.com) yo selecciono los siguientes paquetes necesarios (para mi esenciales), por defecto no todos estos están seleccionados: Archive > zip/unzip
Base > grep, gzip, sed, tar
Database > sqlite3
Editors > emacs, nano, vim
Interpreters > perl , python , expect
Mail > mutt
Misc > dos2unix
Net > curl, whois, openssh, urlgrabber
Shell > rxvt,
System > ping
Text > less,
utils > screen,
Web > lynx, wget, curl, wdiff
También puedes instalar el cygwin con las opciones por defecto y usar el script apt-cyg para instalar las aplicaciones faltantes.
Una vez instalado cygwin por defecto iniciara con el terminal de windows, el viejo ms-dos y su aun mas fea terminal, yo recomiendo usar rxvt para usarlo por defecto, habrá que cambiar el shortcut a cygwin (C:\cygwin\Cygwin.bat)
Con eso iniciara rxvt por defecto, que es la intención, es mejor terminal que el de M$.
Lo siguiente será configurar nuestro ambiente (bash) yo use y encontré cosas muy interesantes en dotfiles algunas funciones que uso:
/dev/null 2>&1 && export EDITOR=$my_editor
type $my_pager >/dev/null 2>&1 && export PAGER=$my_pager
export VISUAL=vim
export PAGER=less
export MANPAGER=less
# my BROWSER define
BROWSER="lynx '%s' &"
#if [ "$DISPLAY" ]; then
# export BROWSER="firefox"
#fi
export BROWSER
]]>
Y así sucesivamente :
De las secciones mas interesantes de mi bashrc: las Funciones,la mayoría son auto-descriptivas:
googl () { curl -s -d "url=${1}" http://goo.gl/api/url | sed -n "s/.*:\"\([^\"]*\).*/\1\n/p" ;}
# mkmine - recursively change ownership to $USER:$USER
# usage: mkmine, or
# mkmine
function mkmine() { sudo chown -R ${USER} ${1:-.}; }
# nohup - run command detached from terminal and without output
# usage: nh
function nh() { nohup "$@" &>/dev/null & }
# send public key to remote server
# usage: sendkey
sendkey()
{
if [ $# -ne 1 ]; then
ssh $1 'cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_dsa.pub
fi
}
]]>
Finalmente tengo esto para screen (donde guardara el screen logs, hardcopies, y locks). También para el uso de jump servers, no tengo acceso directo desde mi red a todos los servers, tengo que usar jumpboxes (el comando abre un nuevo screen, se conecta al jumpbox y finalmente al server que quiero acceder, notase que uso ssh-keys y ahorro tiempo en introducir passwords.)
Algo que agregue al final, fue un remount de las particiones de windows para acceder como /c o /drive
Más archivos de configuración:
.aliases
.wgetrc
lynxcfg
.screenrc
Queda pendiente mi archivo de .Xdefaults pero ese lo agregare después
"Configuracion Cygwin"
Todavía no hay comentarios. -