viernes, 22 de mayo de 2009

viernes, 16 de enero de 2009

Más sobre códigos..

Algunas cositas de Linux!!!! Recuperar el password de root Si en algún momento olvidáramos el password de root, disponemos de 3 métodos más o menos sencillos para poder recuperarlos. Evidentemente, estos métodos sólo nos funcionarán si el equipo no ha estado protejido adecuadamente para evitar que se pueda realizar cualquiera de estas tareas. Primer método Válido siempre y cuando en el fichero /etc/lilo.conf no hayamos especificado las opciones restricted y password. Estas opciones impiden pasar parámetros al kernel a menos que introduzcamos la contraseña definida en el mismo fichero de configuración. Reiniciaremos el sistema y arrancaremos pasándole el parámetro single al kernel; para ello arrancaremos una imagen y añadiremos el parámetro, por ejemplo: LILO: linux single El sistema arrancará y nos saldrá el prompt de root sin hacer ningún login. Ahora hemos de montar la raíz del sistema de ficheros en modo lectura/escritura; lo haremos así: # mount -n -o remount,rw / # mount /proc # mount -a -t nonfs Ejecutamos el comando passwd y nos preguntará la nueva contraseña que queremos asignarle a root. Elegimos una de la que nos vayamos a acordar y ya está. Segundo método Válido siempre y cuando en el fichero /etc/lilo.conf no hayamos especificado las opciones restricted y password. El escenario es el mismo que en el método anterior, pero esta vez especificaremos como parámetro a lilo que el kernel se ejecute como un proceso único. Este proceso único es una shell desde la que cambiaremos la contraseña de root. Así, pasamos a lilo el parámetro init=/bin/bash del siguiente modo: LILO: linux init=/bin/bash Una vez haya arrancado procederemos como en el método anterior a partir del paso 2. Tercer método Lo usaremos en el caso de que lilo no nos permita el paso de parámetros a menos que introduzcamos la contraseña definida en el fichero /etc/lilo.conf, y tampoco nos acordemos de esta. La solución está en arrancar una imagen del kernel desde un disquet, o arrancar desde un Live-CD como Knoppix, por ejemplo. Al arrancar desde disquet, nos lleva a la prompt de root, sólo que la raiz es el propio diskette o su imagen en memoria. Lo que hemos de hacer es montar la verdadera raiz (/dev/hda1 o la que sea) para acceder al fichero de contraseñas. Procederemos del siguiente modo: Montamos la verdadera raíz del sistema del siguiente modo: # mount -t ext3 /dev/hdaX /mnt (donde /dev/hdaX sería la partición que alberga la raíz) Accedemos al fichero de contraseñas: # vim /mnt/etc/shadow Usaremos vim o cualquier otro editor en modo texto. Editaremos el fichero /mnt/etc/shadow en el caso de que el sistema use la suite shadow password; en caso contrario haremos: vim /mnt/etc/passwd) Eliminamos la password de root: Llegados a este punto nos encontramos que el fichero contiene una serie de líneas con varios campos separados por el carácter : El segundo campo corresponde a la contraseña encriptada, así que localizamos la línea correspondiente a root y borramos el segundo campo. Por ejemplo: Tendremos una línea parecida a esta (el campo en negrita es la contraseña de root encriptada): root:$1$/u17Vfn0$M1gYZbOCJoLGW9Y2CrEld1:12543:0:99999:7::: Y la sustituímos por esta. Es decir, eliminamos la clave: root::12543:0:99999:7::: La próxima vez que hagamos login como root, el sistema nos solicitará una nueva contraseña. Ponemos una de la que nos acordemos y listo. Hay que tener cuidado al trastear este tipo de ficheros pues si los inutilizamos podemos tener problemas. Una opción es hacer una copia de seguridad antes de modificarlo: # cp /mnt/etc/shadow /mnt/etc/shadow.old Incluso podríamos crear un nuevo administrador sin contraseña para volver a entrar de forma normal en el sistema y cambiar el password del root. Consejos sobre seguridad Como podeis ver, sirve de bien poco tener una buena contraseña si no tomamos las precauciones necesarias. Por ello, estas son unas de las formas básicas de proteger nuestras contraseñas y evitar que cualquier usuario pueda loguearse como root: Poner una contraseña en la BIOS o deshabilitar el arranque desde el disquet, para que nadie pueda arrancar un kernel propio y comprometer nuestro sistema obteniendo privilegios extra. Quitar el permiso de lectura y escritura a todo el mundo menos a root de los ficheros /etc/shadow y /etc/passwd. De este modo sólo root podrá ver y modificar el contenido de los ficheros que guardan la información de los usuarios (en ellos se encuentran encriptadas las contraseñas; la de root también). Restringir el paso de parámetros al kernel en el arranque utilizando las directivas restricted y password en el fichero /etc/lilo.conf. Con estas directivas conseguimos que para pasar parámetros en el arranque se pida contraseña. La contraseña que especificamos en el fichero /etc/lilo.conf se guardan en claro. Por este motivo hemos de quitar los permisos de lectura y escritura sobre ese fichero y dejarlos sólo a root. Así nadie podrá leer la contraseña. Atajos del teclado KDE brinda varias opciones para cuando se cansen del mouse. Presionando cambiarán a otra aplicación. Con , como era de esperar, rotarán entre todas las aplicaciones activas. Usando pueden cambiar de consola virtual y, por último, presionando se cierra la ventana actual, como sucede en Windows. Opciones de Ventana Haciendo doble clic en la barra de Título de un programa, la ventana desaparece, y queda sólo esta barra. Este efecto se llama shadowing y es algo que siempre me gustó de las Mac. Haciendo clic con el botón central del mouse en los botones para maximizar y minimizar las ventanas, se ejecutará la función, pero solamente a lo largo o a lo ancho de la pantalla, sin tomar posesión total del Escritorio. Ejecutar al inicio Para ejecutar un programa al inicio de KDE sólo tienen que crear un kdelnk hacia él (pueden encontrar templates de kdelnk en la carpeta TEMPLATES del Escritorio) y editar sus propiedades. Lo único que resta hacer es arrastrar este kdelnk a la carpeta AUTOSTART dentro del Escritorio. Mensaje del día El mensaje del día (MOTD) no suele ser muy útil en sistemas hogareños, por lo que este script nos permitirá rotar entre diferentes archivos de arte ASCII cada vez que iniciemos el sistema. Creen e[ directorio /etc/splash y pongan todos los archivos ASCII allí. luego, como root, agreguen un trabajo cronometrado (cron) con el siguiente- script: #! /bin/sh cd /etc/splash/ [ -f splash && SPLASH='/bin/cat splash' [ -z "$SPLASH" ] || [ ! -f "$SPLASH" && SPLASH='/bin/ls /bin/sed -n ´1p´' /bín/cp "$SPLASH" ../motd && { /bin/ls /bin/sed -n ´1h;/^´$SPLASH,$/{${x;p;q;};n;p;}´ >. splash } Pantalla de bienvenida Es posible crear un mensaje para que todos los usuarios que se logueen al sistema lo vean. Es, en cierta forma, similar al mensaje que aparece cuando se conectan a un servidor de IRC. El archivo en cuestión se encuentra en /etc/motd (por Message Of The Day); edítenlo a gusto y necesidad con cualquier editor de texto. Reinstalé Windows y perdí Linux A Windows no te gusta que alguien más use la MBR; por eso, cuando instalamos cualquier versión, automáticamente sobrescribe la MBR a su gusto. Si teníamos Linux instalado con LILO, necesitaremos un disquete booteable para ingresar en Linux y poder ejecutar /sbin/lilo para que, nuevamente, LILO pueda instalarse en la MBR Nombres muy largos Una particularidad de Linux (como en todos los sistemas basados en UNIX) es que los archivos suelen tener nombres muy largos. Pasarlos como parámetros puede volverse complicado cuando no los recordamos de memoria. Por eso el shell Bash nos ofrece su función de autocompletado, mediante la cual, al escribir las primeras letras del nombre y presionar , Bash mostrará las coincidencias; esto nos evitará el engorro de tipear el nombre completo del archivo. Inicio/Ejecutar Presionando verán la línea simple de comando, la cual les permitirá ingresar el nombre de un programa o una URL para navegar. Reseteando el terminal Cuando la pantalla, por cualquier motivo, se llena de basura, podemos utilizar este programa en C, el cual reseteará y limpiará cualquier terminal VT100. Copien este código en un archivo: #include int main(void) { Printf(P\033c");//resetea terminal printf(P\033[2j");// limpia la pantalla return (0); luego graben el archivo y escriban "make archivo", siendo archivo el nombre con el que lo grabaron. Ahora pueden utilizarlo en cualquier momento para resetear su terminal ¿Dónde está? En el inmenso mar de directorios de Linux, puede resultar complicado encontrar un archivo determinado. Para ello pueden utilizar el comando find, por ejemplo: find /-name "nombre", donde la "/" es el directorio de inicio de la búsqueda (en este caso buscará en todo el sistema de archivos, así como en cualquier unidad montada) y "nombre" es la cadena a buscar (reemplácenlo por el nombre del archivo que buscan). Como todo comando en Linux, tiene un montón de opciones más. Olvidé la contraseña de root Pueden pasarte un parámetro 1 cuando se ejecute LILO, de la siguiente forma: "lilo 1". Así entrarán como root y podrán ejecutar el comando passwd o editar directamente el archivo /etc/passwd. También sirve arrancar con linux single y añadirte el user root o el que sea manualmente :) Eliminar escritorios virtuales Puede parecer una idea rara, pero eliminar escritorios virtuales que no utilicemos liberará recursos. Editen el archivo /etc/inittab y busquen las líneas que indican el inicio de una terminal "getty", por ejemplo: "2:123:respawn:/sbin/míngetty tty2". Eliminen cada una de esas líneas por escritorio que quieran quitar; el número posterior a tty indica el número de terminal (a los cuales accedemos presionando ). Un número de tres terminales es suficiente para operar el sistema. Graben el archivo y reinicien. Ya no tendrán tantos terminales, y habrán ganado unos megabytes de memoria. Se colgó todo Cuando experimentamos en Linux, precisamente en el entorno gráfico, a veces sucede que todo se cuelga. Para no ir directamente al botón de reset, pueden probar la combinación de teclas , que matará todos los procesos que se encuentren en ejecución y pasará a modo texto o al login gráfico si lo tienen activado. Montaje automático de disquetes VFAT Abran una consola (la de su preferencia) y ejecuten el comando mcedit Desktop/floppy.kdelnk, que abrirá un editor de texto con el archivo de acceso al disquete del Escritorio. En éste debemos modificar el valor contenido dentro de la línea FStype=Default por FSType=v-fat. Para que todos puedan usar kppp Deben hacer clic con el botón derecho en el archivo situado en /usr/bin/kppp, y en la solapa [Permissions], hacer clic en el checkbox [Set UID], en la línea [User]. Esto hará que todos los usuarios puedan iniciar Kppp y no sólo el root. Recuerden que para realizar los cambios deben estar logueados como root. Navegación con palabras clave Konqueror, el oficial de KDE, nos permite definir palabras nos serviran como atajos para los sitios más visitados, desde [Settings/Configure Konqueror/Enhaned Browsing]. Por ejemplo, al escribir "gg:linux" en barra de Dirección, se abrirá el buscador Google con palabra Linux. Eliminar el inicio gráfico si desean el inicio en modo consola, pero su distribución instala el inicio gráfico de forma predeterminada, pueden cambiarlo modificando el archivo inittab, dentro del directorio /ETC. Hagan una copia de respaldo y editen el archivo inittab. Con la búsqueda encuentren la línea: id:5:initdefault Y cámbienla por lo siguiente: id:3:initdefault: En el próximo inicio de sesión tendrán el clásico modo texto. Para restaurar el inicio gráfico, hagan exactamente lo contrario. Cómo cambiar la resolución y la profundidad de color en X Estos parámetros son controlados por el Servidor X, independientemente del manejador de ventanas que utilicemos. Si en la configuración de X hemos agregado varias resoluciones, podremos cambiar de resolución con las teclas . La profundidad de color, en cambio, se modifica a través del script de inicialización startx, de la siguiente manera: "startx -bpp ", donde profundidad puede tomar los valores 8, 16, 24 o 32 para las distintas opciones. Es posible cambiarlo permanentemente desde el configurador XF86Setup. Cómo evitar los pings Si quieren evitar que su equipo responda a las peticiones ping de la Red, pueden usar este truco. Es necesario contar con un kernel 2.1.x o superior. Para lograrlo, en la consola deben ejecutar el siguiente comando: "echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all"'. Con él evitarán que su máquina responda a cualquier ping proveniente de la Red. Para revertir la opción, en la consola ejecuten el comando "echo 0 > /proc/sys/ net/ipv4/icmp_echo_ignore_all", y todo volverá a ser como antes. Descarga automática de webs completas Para descargar una web completa con todas las páginas a las que apunta y todos sus elementos de forma recursiva, puede usar la aplicación wget tecleando el siguiente comando: wget -r http://www.lawebquesea.com Y si lo que tiene es un fichero de texto con un listado de webs puede descargarlas todas del tirón tecleando: wget -r -i listadewebs.txt Eso sí, si no tiene una conexión muy buena tendrá que esperar un rato hasta bajar toda la web. NOTA: Algunas páginas están expresamente protegidas para que no sean bajadas por este método, por lo que esto no funcionará en todos los casos. Tampoco funciona con páginas creadas con Flash Comprimir y descomprimir en linux Supongamos que tenemos un directorio llamado subcarpeta que cuelga de carpeta, si queremos comprimir su contenido en un fichero tar.gz o descomprimir un fichero tar.gz en el directorio carpeta para que se genere toda su estructura de directorios, estos serían los comandos: Comprimir: cd carpeta tar -c subcarpeta >fichero.tar gzip fichero.tar Descomprimir: cd carpeta gunzip fichero.tar.gz tar -xvf fichero.tar Si quieres usar los nuevos ficheros bz2 los comandos son los mismos sustituyendo gzip con bzip2 y gunzip con bunzip2. Los ficheros tar, gz y tar.gz se pueden ver también desde MS-DOS o Windows con algunos compresores como el Windows Commander. Eliminar ficheros Core ln -s /dev/null core (envía los core a /dev/null) ulimit -c 0 (limita el tamaño de los core a 0) 11.2 Imprimir paquetes instalados con dselect método 1 - dpkg --get-selections | awk '$2 == "install" { print $1 }' método 2 - ( cd /var/lib/dpkg/info; ls *.list ) | sed -e "/\.list/s///" método 3 - dpkg -l Montar cdrom y floppy sin ser root Como root te creas los directorios /mnt/floppy /mnt/a: /mnt/cdrom metes en /etc/fstab las siguientes lineas : /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /mnt/a: msdos user,noauto 0 0 /dev/fd0 /mnt/floppy ext2 user,noauto 0 0 ahora ya puedes montar un disquete Ms-dos , un disquete ext2 o un Cd-rom, respectivamente, con : mount /mnt/a: mount/mnt/floppy mount/mnt/cdrom El nombre del dispositivo puede ser distinto, por ejemplo, en vez de /dev/cdrom puedes tener /dev/hdc ... etc., depende de cada cual. Ampliar tamaño de partición Linux Bueno, ampliar no creo que se pueda, pero si te creas otra partición ext2, la montas debajo de / , como por ejemplo /home, luego te creas un directorio /home/usr/local y lo enlazas a /usr/local, etc... tendrás la sensación de que efectivamente tu partición / ha aumentado de tamaño :-). O mejor todavía : te creas una nueva partición, por ejemplo: /hdc3 te copias todos los directorios de /usr a /mnt/hdc3 te renombras el fichero /usr como /usr_ant por si las moscas te creas el fichero /usr vacío actualizas el /etc/fstab con la siguiente línea : /dev/hdc3 /usr ext2 defaults 0 0 rearrancas, y después de unos días, para ver que todo funciona bien, borras /usr_ant Personalizar tecla de función Utilizo un pequeño script que tengo asociado a una tecla de función en mi .inputrc, así, cada vez que quiero meter o sacar un CD, le doy a la tecla F8. ## FICHERO: $HOME/.inputrc # Personalizar teclas de función # F8 "\e[19~": "(. ~/scripts/cdrom)&\C-m" Y el script es: #!/bin/bash if [ `grep -c cdrom /etc/mtab` = 0 ] ; then mount /mnt/cdrom && cd /mnt/cdrom ; else umount /mnt/cdrom && eject /dev/cdrom ; fi Eliminar paquetes instalados en Debian dpkg --remove nombre_paquete_sin_extension_deb eliminara el paquete aunque no los ficheros de configuración que ese paquete pudiera tener. dpkg --purge nombre_paquete_sin_extension_deb eliminara todo. Hacer disco de arranque Linux cp /boot/vmlinuz /dev/fd0 así de simple, siempre y cuando el kernel contenga la información sobre cual partición arrancar, etc. lo que se puede indicar así: rdev /boot/vmlinuz /dev/tuparticionroot rdev /boot/vmlinuz indicará cual tiene configurada: chanae:~# rdev /boot/vmlinuz Root device /dev/hda3 Entrar al sistema sin saber la password Cuando aparece el prompt de Lilo o el del disco de arranque escribir 'linux single' y entras como root sin necesidad de password después hay que entrar con un editor en /etc/passwd, buscar una línea que pone root:xxxx:0:0:root:/root:/bin/bash, borrar xxxxx dejando root::0:0, etc así has borrado la pasword. Otra opción: desde DOS, utilizar un editor del disco duro (Norton) buscar la cadena root en el HD y eliminar la password. Otra opción: en el arranque, escribir init=/bin/bash, esto hace que se lance bash directamente sin pasar por el init, o sea, sin pedir clave. probablemente hay que remontar las particiones: mount -t -o remount, rw / mount -a -t nonfs para estar seguro de que el PATH esta correcto hacer: source /etc/profile source /root/.profile y por ultimo, a partir de una cuenta no-root, hacer su; para ver si la clave de root esta ok: paswwd su <> su exit exit reboot Configuración de LILO Fichero /etc/lilo.conf : # Sección global de arranque de LILO boot = /dev/hda compact # si da problemas, descomentar esta opción delay = 50 vga = normal # forzando 'sane-state' ramdisk = 0 # paranoia setting # # Sección de configuración de partición de LINUX arrancable image = /vmlinuz root = /dev/hdc2 label = linux # # Sección de configuración de partición de DOS arrancable other = /dev/hda1 label = dos table = /dev/hda #fin Sustituye las particiones por las tuyas, la primera que pongas será la que arranque por defecto pasado el tiempo 'delay' en décimas de segundo. Una vez hayas modificado este archivo, ejecuta lo siguiente: root::/# lilo Veras como te aparecen por pantalla las particiones que hayas configurado para gestionar por lilo y la que hayas colocado como 'defecto' aparece con un asterisco.. Otra versión del /etc/lilo.conf boot=/dev/hda # donde se instalará el LILO compact install=/boot/boot.b map=/boot/map vga=normal # pantalla en modo VGA ramdisk=0 # no creamos disco virtual, necesario para crear los # discos boot y root de la instalación delay=50 # espera 10 segundos. [Ctrl] nos muestra las opciones # que seleccionaremos escribiéndola default=linux-2.0.32 # establece el SO que arrancará por defecto image=/vmlinuz # la imagen del kernel a arrancar label=linux-2.0.30 # el nombre asociado root=/dev/hdb1 # partición donde está la correspondiente imagen alias=l # para abreviar en la selección read-only image=/boot/zImage-2.0.32 label=linux-2.0.32 root=/dev/hdb1 alias=z read-only other=/dev/hda1 table=/dev/hda # para que msdos encuentre la tabla de particiones label=msdos alias=m ---- Cuando has editado tu lilo.conf, para instalarlo tienes que ejecutar, como root, # lilo y se instalará en el Master Boor Record de hda (en mi caso). Debe ser una partición a la que tenga acceso la Bios del ordenador.. En Netscape los ficheros .gz y .tgz en lugar de bajártelos te los muestra Edit - Preferences - Navigator - Applications. Buscamos en la lista "Zip compressed data", pulsamos el botón "Edit", en Suffix añadimos ",gz,tgz" y abajo seleccionamos "Save to disk". Ok, Ok y listos :-). (Hue-Bond) De esta forma cuando pinches uno de estos ficheros te preguntará si quieres guardarlo, en lugar de intentar ejecutarlo. News off-line con Netscape El Netscape no hay ninguna opción para bajarse las news, pero con el siguiente truco se puede conseguir el mismo efecto: Lo primero es crearse dos nuevos directorios en el Message Center con "New Folder" (yo los llamo Linux y Linux_Archive). Abres el grupo es.comp.os.linux y le dices que te baje todos los mensajes. Después en menú "View" marcas "Messages" y "News". Eso expande todos los Treads. Ahora los marcamos para bajarlos. Lo podemos hacer con menú "Edit", "Select", "All" (o más rápido Alt+A). Y los bajamos con "File" al directorio que hemos creado. Sin cerrar la conexión debemos marcarlos todos como leídos. Para ello "Mark" y "All Read". Y ahora podemos cerrar la conexión. Para leerlos vamos a nuestro nuevo directorio Linux y los podemos ordenar cómo queramos... "View", "Sort"... yo lo tengo en "By Subject". Los que me interesan los archivo en el otro directorio que creé ("Linux_Archive") y los que no a la papelera ("Delete"). Como seleccionamos la opción "View", "New", la próxima vez que entremos en el grupo sólo nos bajará los nuevos mensajes. Hacer que la diskettera solo puedan montarla los usuarios de un determinado grupo $ ls -l /dev/fd0 brw-rw---- 1 root floppy 2, 0 ago 24 1997 /dev/fd0 $ grep floppy /etc/group floppy::11:root,srtxg,fab $ grep nobody /etc/passwd nobody:*:99:99:nobody:/dev/null: $ grep /dev/fd0 /etc/fstab /dev/fd0 /mnt/floppy vfat user,noauto,uid=99,gid=11,umask=007 explicaciones: * los permisos sobre el device (hacerlo para todos los /dev/fd0*) evitan que se pueda acceder usando los mtools si no se es miembro del grupo floppy. * en fstab se declara las opciones "user" (para que pueda ser montado por gento no-root), "noauto" (para que no sea montado al arranque), el uid y gid de los archivos y directorios vfat (yo elegí nobody y group floppy), y por fin la máscara (007 significa permisos 770; o sea rwxrwx---). Si además quieres impedir no solo el acceso a los datos, sino también el uso de mount; cambia los permisos de mount y umount; algo así: chown root.mount /bin/*mount chmod o-rwx /bin/*mount chmod u+s /bin/*mount y añade al grupo mount todos los usuarios que quieras que puedan usar mount. para montar el floppy (u otras cosas; todo lo que tenga "user" en las opciones en /etc/fstab) Pablo Saratxaga Cómo formatear diskettes formato tipo msdos: mformat a: formato tipo ext2: fdformat /dev/fd0H1440 mkfs.ext2 /dev/fd0 Para Linux --> ext2 $ mkfs.ext2 [options] /dev/fd0 ó $ mke2fs [options] /dev/fd0 El usuario que formatea deberá tener permiso de escritura para `/dev/fd0'. Eso normalmente se consigue añadiéndolo al grupo `floppy' (addgroup user group). Para msdos $ mkfs.msdos [options] /dev/fd0 ó $ mkdosfs [options] /dev/fd0 Pero también hay otras utilidades para formatear discos DOS. Mira a ver si tienes el paquete `fdutils', que permite formatear los discos a mayor capacidad. Cómo hacer que linux reconozca ampliación de memoria > He añadido 64 megas nuevos al aparato con lo que sumo 80 megas > el problema es que linux solo me reconoce 64 ¿como hago para que > reconozca los 80? pon append="mem=80M" en lilo.conf o loadlin vmlinuz mem=80M Primer editor Una de las primeras dificultades con las que se topan los novatos es cómo ver y editar ficheros. El "less" está más o menos bien aunque es un poco "soso". El "vi" puede ser un auténtico trauma. Para los que acaban de llegar a linux puede que les sea interesante este "truco": 1) Instalar el Midnight Commander. 2) Añadir en el ~/.bashrc estás líneas: alias lee='mc -v ' #ojo, que hay un espacio detrás de la v. alias edit='mcedit' 3) teclear "exit" e iniciar una nueva sesión. A partir de entonces se puede ver el contenido de un fichero con "lee fichero" (además lee fichero comprimidos) y editarlo con "edit fichero". La tecla F10 es para salir, y la tecla F9 para abrir el menú. Bueno, esto es lo que he hecho yo, y me gusta más que less y vim, pero hay una pega, y es que no puedo pegar en el mcedit con el ratón lo que previamente he copiado en otro terminal. (ricardovm) Pues lo acabo de probar: Mayúsculas + Botón Izquierdo: inicio de la selección Mayúsculas + Botón Derecho: fin de la selección Mayúsculas + Botón Central: pegar NOTA: el bloque así seleccionado se maneja de forma estándar: si desde otra consola pulsamos el botón central del ratón, lo pegamos, etc. Además el mc tiene su propia herramienta de selección de bloques (F3, o May+Flechas), y con esto se puede copiar (Ctrl+Ins), cortar (May+Del) y pegar (May+Ins) incluso de una sesión a otra, pues lo copiado (cortado) se guarda en /.cedit/cooledit.clip. Ambas herramientas se pueden usar simultánea e independientemente. (tas@idecnet.com) Instalar las X con Dselect de Debian. Sesión de dselect. Como root pon dselect. Dentro del menú ve a "[S]elect", te sale un mensajito de bienvenida y tal, pulsas la barra y ahora toca seleccionar paquetes. Pulsa la "o" minúscula 2 veces y la mayúscula otras dos, con esto consigues que la lista de paquetes salga ordenada alfabéticamente. Entonces ahora avanza páginas y páginas hasta encontrar el paquete "xbase" (creo). Una vez ahí lo seleccionas pulsando la tecla "Ins" (si no lo tienes seleccionado ya, en cuyo caso esta parrafada te la saltas ;-)). Probablemente dselect ahora te saque un mensaje diciendo "Che!! Y las dependencias qué?", pulsas la barra y ves abajo que pone "xbase requires xserver-vga16" (por ejemplo), entonces vas al xserver-vga16, que te aparece por ahí y lo "Ins"ertas, aunque verás que dselect ya lo ha seleccionado él solito. Para salir y volver a la lista de todos los paquetes pulsa Enter. Ahora un poco más abajo te aparecen los servidores, añade el xserver-svga y el xserver-s3v (el de la ViRGE). Si te pregunta por dependencias pues eso, aunque dselect ya lo suele añadir todo. Instala también algún gestor de ventanas adicional (por defecto se instalan el twm y el fvwm creo),a mí me encanta el icewm. Para salir de la lista de paquetes, es con Enter de nuevo y vuelves al menú principal. Selecciona "[I]nstall" y ve a tomar un cafecito rápido de 5 minutos. Cuando acabe pulsas Enter, te aparece de nuevo el menú y te vas a Quit o Exit o lo que sea. Ya tienes las X instaladas. Ahora toca sesión de XF86Setup. Configuras el mouse, el teclado (Model: Generic 102 keys Intl PC, Layout: Spanish), la tarjeta de vídeo (tienes 5 ViRGEs, ya sabes, a experimentar), en esa misma pantalla pulsas el botoncito que pone "Detailed setup", seleccionas el servidor S3V (la fila de botones de arriba), luego el monitor (mírate el manual para saber las frecuencias, yo le puse el 4º, el que empieza por Super VGA y me va bien), por último los modos de vídeo y listo, pulsa "Done" abajo (en la sección Other no hace falta tocar nada, aunque nadie te prohibe echar un vistacito.). Tras eso te aparece un dialoguillo, pulsas "Okay" y ahora se arrancará el servidor. Si rula, felicidades; si no... a por otra ViRGE. ¿Que ya has probado las 5? Pues en "Detailed setup" prueba el servidor SVGA. ¿Que tampoco rula? Pueeeees entonces ya pasa de castaño... no? (Hue Bond) Acelerar la compilación del kernel. He encontrado un truco que puede acelerar tremendamente el compilado del kernel de linux. Cuando se da la orden de compilar en vez de : make zdisk hay que escribir make -j5 zdisk Esto inicia hasta 5 procesos de compilado simultaneos. Idem con make -j5 modules Como descomprimir un .deb en una urgencia Como desempaquetar un .deb en una urgencia. Suelo trabajar con varios sistemas Linux, distribuciones Slackware en la facultad, Debian en el trabajo y Red Hat en casa. Al tener tanto RedHat como Debian, tengo una cantidad de soft en formato rpm como .deb, y en algun momento me he visto en la necesidad de instalar un .deb en la REDHAT en casa, o un rpm en Debian o Slackware. Para estas cosas, lo mejor es alien, un programa conversor de paquetes, pero solo viene por defecto en la Debian. Asi que me vi en la dificultad de instalar un .deb en la RedHat de mi casa. Asi que con la utilidad file, vi que era un archivo ar: bash# file mctools-lite_970129-1.deb mctools-lite_970129-1.deb: current ar archive Debian binary package bash# En el paquete binutils, se incluye el programa ar, que se utiliza para archivar ficheros en un solo archivo, algo asi como el tar, solo que este ultimo esta especializado para streamers y esas cosas.... Con una rapida miradita al man, averiguo que la opcion para descomprinir ar's es x, de forma que tecleo: bash# ar x ../mctools-lite_970129-1.deb bash# ls -la total 159 drwxr-xr-x 2 root root 1024 Jul 21 01:45 . drwxr-xr-x 5 root root 1024 Jul 21 01:42 .. -rw-r--r-- 1 root root 1276 Jul 21 01:45 control.tar.gz -rw-r--r-- 1 root root 156567 Jul 21 01:45 data.tar.gz -rw-r--r-- 1 root root 4 Jul 21 01:45 debian-binary bash# Si descomprimimos el archivo control.tar.gz, encontramos los siguientes ficheros: bash# tar zxvf ../control.tar.gz bash# ls -la total 7 drwxr-xr-x 2 root root 1024 Feb 13 1997 . drwxr-xr-x 3 root root 1024 Jul 21 01:48 .. -rw-r--r-- 1 root root 1299 Feb 13 1997 checksums -rw-r--r-- 1 root root 437 Feb 13 1997 control -rwxr-xr-x 1 root root 264 Feb 13 1997 postinst -rwxr-xr-x 1 root root 70 Feb 13 1997 postrm bash# En el fichero control, se encuentra la informacion que nos suele ofrecer el dselect cuando le pedimos informacion sobre un paquete. Los demas ficheros tienen informacion sobre que hacer con el sistema antes y despues de la instalacion. Para mas informacion, en las distribuciones debian existen HOWTO's con todos los detalles sobre los paquetes debian. En el archivo data.tar.gz, esta la aplicacion en si, que si se descomprime a partir del fichero raiz colocara a todos los ficheros en sus directorios correspondientes. Este metodo se debe usar como ultimo recurso, ya que los programas instalados asi no podran ser desinstalados o actualizados con rpm ni con dpkg, pero por lo menos, nos puede servir para salir de un apuro en un momento dado :) Un Chaludo. ErConde/IdeaFix | CoSysop de Kronos BBS | SpClub de la FIE | Sevilla spectrum@bitsmart.com | Andres.Garcia@cs.us.es | garciaso@drago.fie.us.es Trucos para recompilar el kernel. Casi todos no hemos topado con la consabida configuracion del nucleo de Linux, seguida de su compilacion, instalacion, etc... make config (menuconfig, xconfig) make dep make clean make zImage cp arch/i386/boot/zImage /boot/vmlinuz cp System.map /boot make modules make modules_install Bueno pues los pasos zImage y cp's los podemos olvidar editando el fichero Makefile que hay en /usr/src/linux, buscar : #INSTALL_PATH=/boot Descomentar la linea (¡ quitar la #, corcho !) Para los que tienen su Linux mas personalizado que la Harley, podeis poner el directorio donde queries poner el nuevo kernel, ese directorio debe corresponderse al que pone en el /etc/lilo.conf. Una vez hecho esto, se puede reemplazar el make zImage y cp's por make zlilo. Datos del autor/a: Nombre: Manuel Soriano. Lanzar procesos con nohup Para lanzar un proceso y luego poder matar el shell padre, solo debemos hacerlos de la siguiente manera: nohup proceso & por ejemplo si queremos lanzar licq con el parámetro -p \qt-gui la linea correspondiente seria la siguiente: nohup licq -p \qt-gui & Creando alias para montar y desmontar el CD-ROM Para ahorrarnos tiempo al momento de montar y desmontar el CD podemos aprovechar una de las propiedades del shell bash, esto es definir alias, para ello solo tenemos que agregar en el archivo .bashrc que se encuentra en nuestro directorio home las lineas: alias CDR='mount -t iso9660 /dev/cdrom /mnt/cdrom -r' alias ucdr='umount /cdrom' Donde, /dev/cdrom especifica el dispositivo correspondiente a nuestro CD-ROM, y /mnt/cdrom debe ser un directorio vacío. Caracteres en español en el shell Para poder visualizar todo el set de caracteres españoles en Linux solo debemos agregar la siguiente línea a uno de los archivos de inicialización del sistema, por ejemplo /etc/profile, en algunas distribuciones esta línea ya esta incluída y solo debemos modificarla: /usr/bin/setfont /usr/lib/kbd/consolefonts/lat1u-16.psf Según las distribución que usemos los archivos con los sets de caracteres se ubican en distintos lugares, por ejemplo en Debian están en /usr/share/consolefonts/ Cambiando el prompt del Bash Agregando en el archivo .bashrc de nuestro directorio home (/root si nos logeamos como usuario "root") la siguiente función dispondremos de un prompt mas atractivo que el común: function promptmio { PS1="\[\033[31m\]\332\304\[\033[34m\](\[\033[31m\]\u\[\033[34m\]@\[\033[31m\]\h\ \[\033[34m\])\[\033[31m\]-\[\033[34m\](\[\033[31m\]\$(date +%I:%M%P)\ \[\033[34m\]-:-\[\033[31m\]\$(date +%m)\[\033[34m\033[31m\]/\$(date +%d)\ \[\033[34m\])\[\033[31m\]\304-\[\033[34m]\\371\[\033[31m\]-\371\371\ \[\033[34m\]\372\n\[\033[31m\]\300\304\[\033[34m\](\[\033[31m\]\W\[\033[34m\])\ \[\033[31m\]\304\371\[\033[34m\]\372\[\033[00m\]" PS2="> " } Luego solo tenemos que salir de la sesión en curso y volver a entrar para finalmente llamar a la función mediante: promptmio Búsqueda Rápida de Archivos en Disco En Linux contamos con una utilidad muy poco conocida , llanmada locate que nos permite consultar en una base de datos con los nombres y las ubicaciones de todos los archivos de nuestro sistema ,esta base de datos se actualiza desde el Cron y su uso es tan sencillo como poner por ejemplo ,locate Profile ,lo que nos dara la ubicacion exacta de este archivo . Economizando 800K de Ram de X-Window Una buena forma de ahorrar aproximadamente 800K de Ram al arrancar X-Window es hacerlo de la siguiente manera : Exec startx Con esto lanzaremos Starx matando el proceso padre ,es decir el Shell. Páginas del Manual en castellano Para poder tener el manual en español seguimos estos pasos : Bajamos el archivo con la ultima version de las Man. Descomprimimos el archivo en un directorio desde donde se realizara la instalacion con : tar xvfz man-pages-es0.7a.tar.gz ingresamos en el directorio que se creo y ponemos make install. Editamos el directorio /etc/profile para especificar que de prioridad al lenguaje español agregando export LANG=es_ES . Salimos de Shell y volvemos a entrar y ya tendremos las paginas del manual en español. Teclado en Español Para configurar nuestro teclado español para utilizarlo bajo Linux ,debemos usar un programa llamado Loadkeys ,mediante el cual podremos cargar el mapa de teclado :es.map.gz que se encuentra en el directorio /usr/share/keymaps/i386/qwerty. La siguiente linea es la que deberiamos incluir en uno de los guiones de nuestro sistema: loadkeys/usr/share/keymaps/i386/qwerty/es.map.gz 2º Plano & manda a 2º plano jobs muestra trabajos en 2º plano kill %numero mata [...] kill numero mata PID ctrl+c mata ctrl+d termina ctrl+z pausa fg %numero relanza tarea a 1ºplano bg %numero relanza tarea a 2ºplano Variables entorno entorno del sistema incorporadas proporcionadas por el sistema, no modificables usuario modificables en la shell $echo $PATH rutas de comandos ejecutables $a=playa variable local $echo $a visualiza variable local export muestra variables exportadas export a variable a global Ficheros r lectura w escritura x ejecución -r--r--rw- 1 usuario grupo 505 mar... -{-(fichero) d(directorio)}r--{propietario}r--{grupo}rw-{usuario} chmod {a(all),u(user),g(group),o(other)}{+,-}{r,w,x} fichero modo absoluto r 4 w 2 x 1 chmod 644 fichero modo octal ln crea enlaces ls -i número inodo $ls -i dietas 22192 dietas $ln dietas restaurantes enlaces duros en mismo sistema de ficheros $ls -i 22192 dietas 22192 restaurantes -rw-r--r-- 2{número enlaces al fichero} ln -s fichero1 fichero2 enlace simbólico, no influye los permisos del enlace fichero2->fichero1 Screen Esta aplicación que sabrán apreciar todos aquellos que gusten de usar la consola: Cambia entre diferentes programas desde un solo terminal en vez de estar con varios terminales para poder usar múltiples programas a la vez en consola. screen arrancamos la aplicación, y ahora: C^a c crea una nueva 'ventana' C^n ó C^p cambias entre las 'ventanas' C^a Esc permite mover el cursor por el terminal exit cierras todas las sesiones ('ventanas') y la aplicación screen se cierra Bueno vale, no esta mal, buff, pim, pam... pues NO!! aún queda lo mejor: Si cierras la aplicación screen, cerrando la conexión en ssh, dando a la X en tu gestor de ventanas o ... no pasa nada, todas las aplicaciones que tenías abiertas siguen estándolo y puedes volver a usarlas. screen -list ejecutado en una sesión normal de consola, nos devuelve las screen que se están ejecutando rubenr@petalo:~$ screen -list There is a screen on: 840.pts-0.petalo (Attached) 1 Socket in /var/run/screen/S-rubenr. screen -Dr 840 para recuperar esta screen, debes cambiar el 840 por la correcta en tu caso Si por alguna razón se traba y no acepta ninguna tecla, será porque has pulsado una combinación errónea, C^q ó C^s lo solucionan. Recomiendo man screen para sacar más provecho a esta fantástica aplicación. Escribiendo el símbolo del euro en KDE Lo único que debemos cambiar, o al menos cambiándolo yo he conseguido escribir el símbolo del euro, es el /etc/environment. Según Ricardo debería ser: LC_ALL=es_ES@euro LANG=es_ES.ISO-8859-15 LANGUAGE=en_US LC_TYPE=es_ES@euro Buscando por google, encontré una lista de correo en la que también se discutía sobre el tema y decían que para que funcionara las líneas de LANG y LC_ALL debían ser exactamente: LC_ALL=es_ES@euro LANG=es_ES@euro.ISO8859-15 Podemos ver que el valor de LANG difiere ligeramente del indicado en el artículo de Ricardo. La verdad es que cambiando estas líneas y siguiendo el artículo de Ricardo, a mi me ha funcionado (una vez reiniciado el servidor X, por si las moscas ;-) Si quieres que los mensajes del sistema (y las páginas del man) te aparezcan en inglés, añade la línea LANGUAGE=en_US en el fichero /etc/environment Scroll del ratón en linux fácilmente En Xfree versión 4 edita este fichero /etc/X11/XF86Config-4 y añade o cambia en la sección"InputDevice" Mouse0 estas lineas: Option "Protocol" "IMPS/2" Option "Buttons" "5" Option "ZAxisMapping" "4 5" Ahora graba sal y reinicia las X La ruedecita ya deberia funcionar. Recopilación de teclas rápidas del bash Empezaremos con las que pudimos sacar de nuestros conocimientos: * ^d (ctrl-d): Envía un EOF (final de fichero) a la shell que causa un logout. * ^c (ctrl-c): Termina el proceso que esté en ejecución. * ^z (ctrl-z): Pone el proceso en ejecución en sleep, pudiendo volver a el con, por ejemplo, fg. * ^l (ctrl-l): Realiza un clear (borrado de la pantalla) pero manteniendo la linea en la que fue pulsada esta combinación de teclas. * ^t (ctrl-t): Intercambia dos letras contiguas. Por ejemplo, supongamos que escribes apt-gte, pues te colocas en la 'e', le das a ^t y problema disléxico (más común de lo que pudiera parecer ;-) solucionado. * ^r (ctrl-r): El bash entra en el modo 'reverse-i-search', que se utiliza para buscar comandos que fueron ejecutados anteriormente. En este modo el usuario puede ir escribiendo parte de la linea de comandos que esta buscando, y el bash va mostrando la línea de comandos que el cree la más adecuada. Una vez has encontrado la que buscabas, enter. * ^s (ctrl-s): Bloquea la shell. * ^q (ctrl-q): Desbloquea la shell. Pero aquí no acaba la cosa, ahora unos cuantos que he encontrado probando y/o buscando por el google: * ^a (ctrl-a): Desplaza el cursor al inicio de la línea de comandos. * ^e (ctrl-e): Desplaza el cursor al final de la línea de comandos. * ^u (ctrl-u): Corta la linea de comandos desde la posición del cursor hasta el inicio de la línea. El texto cortado se guarda en una especie de "portapapeles", pudiendo realizar un paste (ver más abajo) * ^k (ctrl-a): Igual que ^u pero desde el cursor hasta el final de la línea. * ^y (ctrl-y): Pega el texto que previamente había sido cortado con ^u o ^. * ^b (ctrl-b): Desplaza el cursor una posición hacia la izquierda, como si usaramos la flecha hacia la izquierda de los cursores. * ^f (ctrl-f): Desplaza el cursor una posición hacia la derecha, como si usaramos la flecha hacia la derecha de los cursores. * ^p (ctrl-p): Se desplaza por el histórico de la línea de comandos hacia atrás, como si utilizaramos la flecha hacia arriba de los cursores. * ^n (ctrl-n): Se desplaza por el histórico de la línea de comandos hacia delante, como si utilizaramos la flecha hacia abajo de los cursores. Hay otras teclas rápidas que han sido aportadas por los comentarios a este artículo: * ^w (ctrl-w): Corta desde la posición actual del cursor hasta el primer espacio que encuentra hacia la isquierda. Finalmente he encontrado una combinación de teclas que me ha funcionado desde el las X (provado en konsole y xterm), pero que no me ha funcionado en la consola: ^_ (ctrl-_) que lo que hace es un undo o deshacer. Insto a que si alguien encuentra alguna combinación de teclas más nos lo haga saber. Haciendo Imágenes de CD rápidamente Muchas veces usamos programas gráficos para grabar CDs que no son más que frontends para los programas cdrecord, mkisofs, cdrdao, etc. Para hacer una imagen podemos usar simplemente cat o dd: dd if=/dev/cdrom of=imagen.iso Gracias a kyle por esta: cat /dev/cdrom > imagen.iso Ambos comandos hacen lo mismo, después, tostamos con cdrecord o con lo que queramos: cdrecord -v speed=VELOCIDAD dev=GRABADORA imagen.iso Si alguien ha probado a hacer dd if=imagen.iso of=/dev/GRABADORA y le ha funcionado, que me lo comunique por favor ;-) Limpiar la consola Si somos un poco vagos y no nos apetece hacer clear, no tenemos más que presionar la combinación de teclas Ctrl+L. Evitar el ctrl-alt-supr Si queremos evitar que los usuarios puedan usar esta combinación de teclas nos vamos a /etc/inittab y ponemos una almohadilla # de comentario en la siguiente linea: ca::ctrlaltdel:/sbin/shutdown -t3 -r now Pero si lo que queremos es que sólo determinados usuarios puedan usarlo, modificamos esa línea y la ponemos así (sin la # de antes): ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now y creamos un archivo nuevo /etc/shutdown.allow con los nombres de usuarios que nos interese: phantom usuario invitado Está claro que si cambiamos ese -r por un -h nos apagaría el equipo, y bueno, para más opciones: man shutdown. Aun así, podríamos incluso poner otro comando, como que nos muestre un mensajito en consola y mil chorradas como esa, o no tan chorradas... a preferencia de cada uno. Ver un documento de Microsoft Word en modo texto Pues si no nos apetece entrar a las X para ver un documento de estos o simplemente no queremos/podemos cargar el openoffice, abiword y similares, nos bajamos el programita antiword que nos muestra por pantalla el texto del documento word. Este programa tambien permite salida en formato postscript, veamos un ejemplo: Para ver el contenido en modo texto: antiword cosa.doc | less Convertimos a postscript con tamaño de página A4 y lo visualizamos con gv: antiword -p a4 cosa.doc > cosa.ps ; gv cosa.ps Para los de Debian: apt-get install antiword Conexión a Internet Para conectar a Internet a través de Linux, y con pppd, hay que seguir los siguientes pasos: -Editar el archivo /etc/ppp/options donde se ha de poner lo siguiente : connect /etc/ppp/conexinet crtscts modem passive user nom_usuario@servidor noipdefault debug defaultroute asyncmap a0000 /dev/modem 57600 Se debe cambiar nom_usuario@servidor por el login de conexion a Internet. 57600 es la velocidad del módem , hay que poner la que corresponda. /dev/modem puede que se tenga que cambiar por /dev/ttyS0 o ttyS1 según el puerto del módem, la equivalencia con Windows es: ttyS0 = COM1 ; ttyS1 = COM2 -Crear un archivo de texto que se llame conexinet (o el que hayamos puesto en la línea connect /etc/ppp/archivo) con el siguiente contenido: #!/bin/sh chat -v "" atdtw(n: de conexion) CONNECT "" El número de conexión es el facilitado por el proveedor de Internet. El de Infovía de antes era 055, por lo que quedraría asi: chat -v "" atdtw055 CONNECT "". Hay que asignar permisos de ejecución a este fichero, escribiendo en la línea de comandos: chmod 755 conexinet -Borrar el contenido del fichero pap-secrets y poner : nom_usuario@servidor * password El nombre de usuario y servidor es igual que el especificado en options, un * y la contraseña de conexión a Internet. Este fichero debe ser de sólo lectura y modificable por el usuario root, para conseguir esto hay que hacer lo siguiente: chmod 600 pap-secrets -Editar /etc/resolv.conf donde sólo tiene que aparecer : domain servidor.es nameserver Ip_DNS_Primario nameserver Ip_DNS_Secundario En servidor.es hay que poner el nombre de dominio de nuestro servidor. En los nameservers se deben especificar las direcciones de los servidores DNS. Para conectar hay que escribir en la línea de comandos: pppd Para finalizar la conexión basta con poner en la línea de comandos : killall pppd Si la conexión da algun error. Por ejemplo: conecta y a los pocos segundos se desconecta repentinamente. Probar quitar la w de atdtw ( atdt ). Esta conexión sólo funcionará ejecutando pppd como usuario root. En caso de que se quiera utilizar como otro usuario hay que hacer lo siguiente: -Crear un link en el directorio /bin o /usr/bin de los archivos /usr/sbin/pppd y /usr/sbin/chat. Esto se hace porque para los usuarios no root es imprescindible ejecutar los comandos de /sbin usando ./comando, por lo cual ,en el script no funcionará la orden chat -v .... y lo de pppd , es para evitar tener que ir al /usr/sbin y poner ./pppd , y de esta forma poder hacerlo como queramos. -Poner el pppd con suid: chmod +s pppd desde el directorio /usr/sbin. Asignar permisos de ejecución a /usr/sbin/chat: chmod 755 chat desde /usr/sbin. Con ésto debería de estar bien, pero en Red Hat 6.0 da una serie de fallos que hay que solucionar como sigue: Si se hace tail -f /var/log/messages se podrá ver que no se consigue realizar la conexión correctamente debido a fallos del tipo unsuport protocol, etc.. Para solucionarlo hay que poner las siguientes líneas en el fichero /etc/conf.modules alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate Arrancar Linux con NTLoader (gestor de arranque NT/XP) Si tenemos un sistema con NT o XP y usamos el gestor de arranque que estos incorporan para seleccionar entre XP y 98, por ejemplo, no es necesario perder ese sistema de arranque ni tocar el MBR para poder arrancar también Linux, y de paso, evitamos riesgos innecesarios en los cambios de configuración de arranque. Como requisito, Linux ha de estar en una partición primaria, no servirá si lo tenemos en una partición extendida, pues allí no va a poder alojar su propio cargador en la partición que ocupa. Las particiones primarias son las que tengan un número igual o inferior a 4. Suponiendo que la partición root de Linux es /dev/hda2 (segunda partición primaria del primer disco IDE), debemos instalar en ella (no en el MBR, ni en /dev/hda) uno de sus gestores de arranque habituales, como GRUB o LILO. Teniendo el sistema en estas condiciones, ya desde Linux y como root, copiamos a un archivo el sector de arranque: dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1 Movemos el archivo /bootsect.lnx recién creado a la partición iniciadora de Windows (si la tenemos montada), o a un diskette en caso contrario, del que luego lo copiaríamos a C:\ : mv /bootsect.lnx /mnt/win_c/ /mnt/win_c sería la partición del Windows que inicia. Desde Windows ahora, al archivo C:\boot .ini, le agregamos una entrada para que cargue Linux, basada en el archivo que le hemos agregado. Como probablemente esté oculto, primero le quitamos los atributos: attrib -s -h c:\boot.ini Editamos ya el boot.ini, agregándole una línea indicando la carga de Linux, dentro de la sección [operating systems], que diga: C:\bootsect.lnx="Linux" Grabamos el archivo modificado y le devolvemos sus atributos: attrib -s -h c:\boot.ini En el siguiente reinicio, ya dispondremos de opción de cargar Linux desde el mismo menú que teníamos los Windows. ¿Cómo puedo saber si un usuario está intentando entrarme por telnet? Existen dos formas: 1- Se puede estar todo el rato tecleando la w y mirando quién está y qué hace en cada momento, pero no es lo recomendable. 2- En el archivo /etc/hosts.allow poner como tercer parámetro un comando, el que se quiera, y que le avise. Yo lo tengo para que haga un sonido cada vez que alguien conecta por telnet. Por ejemplo, yo tengo esto en el /etc/hosts.allow: ALL: ALL: spawn ( cat /usr/share/sounds/meepmeep.au > /dev/audio ) ; : ALLOW que deja que se usen los servicios del inetd a todos, pero cuando alguien abra un puerto, ejecute el comando dado (saca un sonido). Ver los directorios en colores con bash El bash posee una propiedad muy interesante y útil mediante la cual es posible ver el listado de los archivos en colores diferentes que los identifican según su tipo. Por ejemplo los ejecutables se ven en verde, los comprimidos en rojo, etc. Para poder usar esta propiedad, hay que pasarle al comando ls el parámetro: --color=auto, Y para que quede de forma permanente hay que definir en el archivo .bashrc los siguientes alias y variables de entorno: eval `dircolors` alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS \lA' Con esto estamos redefiniendo el "ls" y creando dos nuevos alias, "ll" y "l". Cambiar el logo en el arranque de Linux Versión para kernels 2.4 Todos hemos visto como muchas instalaciones de Linux presentan una imagen en la parte superior izquierda de la pantalla durante el arranque; por ejemplo la estrella de Mandrake, Tux con una cerveza en Woody,... Si queremos hacer algo de "tunning linuxero", podemos incluir una imagen personalizada en nuestra instalación: Necesitaremos: 1.- Un logotipo (obvio, ¿verdad? 2.- En fuente del kernel 2.4.x que vayamos a compilar. (próximamente para la familia 2.6) 3.- El programa "fblogo" 4.- Un Gimp o similar. 5.- El editor de texto favorito de cada uno. Para comenzar, tendremos que tratar nuestro logo. Para ello símplemente tomaremos la imagen, cambiaremos el fondo a negro (recomendable pero no necesario) y la guardaremos en formato PNG con 223 colores como máximo y el tipo de color como indexado. A continuación utilizaremos en programa fblogo para generar un archivo que utilizaremos en nuestro kernel mediante la orden "fblogo milogotipo.png linux_logo.h" Copiamos el archivo "linux_logo.h" dentro del directorio donde hayamos descomprimido los fuentes del kernel, por ejemplo /usr/src/linux/include en la mayoria de los casos. Abrimos el archivo drivers/video/fbcon.h con nuestro editor (por ejemplo 'joe', mi favorito o 'kate' en KDE) y cambiamos las lineas que definen el alto y ancho en pixeles del logo: #define LOGO_H #define LOGO_W A continuación compilaremos el kernel, sin olvidarnos de añadir soporte para FrameBuffer, instalamos... y listo!!! Ya tendremos nuestra imagen favorita durante el arranque del sistema. Sólo un consejo para acabar: CUIDADO CON EL TAMAÑO!!!!. No olvideis que el gráfico estará incluido dentro del núcleo, y eso ocupa espacio en memoria. Cambiar el logo en el arranque de Linux Versión para kernels 2.6 Cambiar la imagen que nos aparece en el arranque de un kernel 2.6 es algo más simple que en los núcleos 2.4. Necesitaremos: 1.- El logotipo 2.- En fuente del kernel 2.6.x que vayamos a compilar. Crearemos nuestra imagen con nuestro programa favorito (como buenos linuxeros que somos usaremos Gimp :wink: ), y la guardaremos en formato PNG. A continuación ejecutamos los pasos siguientes: 1.- Ejecutar "convert logo.ext temporal1.ppm 2.- ppmquant 224 temporal1.ppm > temporal2.ppm 3.- pnmnoraw logo_passo2.ppm > logo_linux_clut224.ppm Este logo lo copiaremos dentro del directorio donde hayamos descomprimido el kernel de Linux. En mi caso, he utilizado un kernel 2.6.5 (en el 2.6.6 no me funcionaba bien la tarjeta de sonido), así que lo que hacemos sería: cp logo_linux_clut224.ppm /usr/src/kernel-source-2.6.5/drivers/video/logo/. Seguidamente, configuraremos el núcleo con las opciones que necesitemos para nuestro hardware. Además tendremos que añadir el soporte de Framebuffer en el mismo: Dentro de "Device Drivers", nos vamos a "Graphics Support" y aqui encontraremos al final de la lista dos entradas: "Console display driver support" y "Logo configuration". En "Console display driver support", seleccionaremos las opciones "Video mode selection support", "Framebuffer Console support", "Select compiled-in fonts", y "VGA 8x16 font" Dentro de "Logo configuration", seleccionamos "Bootup logo" y "Standard 224-color linux logo". Salimos, salvamos la configuración, compilamos e instalamos el kernel. Sólo con esto, en el próximo arranque que realicemos veremos como Tux se ha reemplazado por la imagen de nuestra elección. Obligar a reiniciar cuando ocurre un Kernel Panic Esto lo que hace es que si hay un kernel panic espera x segundos y luego reinicia la máquina. #cat /proc/sys/kernel/panic 0 El valor devuelto indica los segundos que esperará el kernel antes de reiniciar. El valor '0' indica que no se reiniciará nunca. Si queremos habilitarlo, por ejemplo con 10 segundos de espera: # echo "10" > /proc/sys/kernel/panic Podemos comprobar el cambio con: #cat /proc/sys/kernel/panic 10 Este cambio no es permanente, por lo que, si queremos que lo sea, deberemos modificar el archivo /etc/sysctl.conf. # echo "kernel.panic=10" >> /etc/sysctl.conf También podemos pasarlo como parámetro durante el arranque, añadiendo 'panic=10' en nuestro cargador de arranque (grub o lilo). Grabación USB lenta Recientemente me he comprado un dispositivo de almacenamiento USB en memoria flash y aunque el rendimiento en lectura es "razonable" (960KB/s, de un máximo teórico de 1.4MB/s), la escritura es muy lenta. En mi máquina SUSE 10.0, escribo en ese dispositivo a unos 200KB/s. Es decir, unas cinco veces más lento de lo que debería. Lo primero es descartar que el dispositivo USB tenga algún tipo de defecto, cosa que se comprueba con facilidad conectando el dispositivo a una máquina Windows. La comprobación experimental fue grabar 30 megabytes en la memoria USB, proceso que supuso un minuto de tiempo, aproximadamente. Es decir, unos 500KB/s, poco más o menos. Así pues, la grabación es bastante lenta, pero en mi linux Suse es incluso más lenta todavía. Desesperantemente lenta, de hecho. ¡¡Llenar el gigabyte de capacidad de la memoria USB me supone casi una hora y media!!. Investigando el asunto con detenimiento y la ayuda de Google, veo que el problema es que el subsistema "submount", utilizado por SUSE y otras distribuciones Linux para gestionar dispositivos removibles como USB o CDs/DVDs, "monta" los dispositivos USB con la opción de "sync". Utilizar la opción "sync" tiene su lógica para así poder desenchufar el USB sin necesidad de realizar una operación explícita en el GUI, como la típica aplicación de Windows para "desenchufar dispositivo de forma segura". En Linux SUSE (y posiblemente otras distribuciones que empleen "submount"), se puede desenchufar el USB directamente porque el dispositivo se monta con la opción "sync", que implica que cuando escribimos algo se fuerza inmediatamente al dispositivo, sin pasar por la caché interna del sistema previamente. Por tanto, en cuanto el ordenador nos dice que ha terminado de grabar algo, realmente ha terminado de grabar en el dispositivo. De verdad. El problema es que "sync" implica escrituras síncronas en el USB o, lo que es lo mismo, no envía al dispositivo el bloque X hasta que éste no haya confirmado que ha almacenado correctamente el bloque X-1. Ello supone un gran desperdicio de ancho de banda USB (y por tanto, tiempo de grabación), a cambio de ganar comodidad y conveniencia. Asimismo, puede haber efectos de segundo orden debido a que las memorias flash tienen un número de escrituras limitados, y en modo síncrono un sector determinado puede reescribirse varias veces durante una sesión de grabación. Para comprobar si es el caso en vuestros sistemas, probad a conectar un dispositivo de almacenamiento USB, montadlo (o dejad que lo haga el sistema, si es automático), y ved el resultado. En Linux SUSE 10.0, que utiliza "submount", parecerá algo parecido a: # mount ... /dev/sdb1 on /media/usbdisk type subfs (rw,nosuid,nodev,sync,fs=floppyfss,procuid,utf8=true) El punto delicado es el "sync" resaltado en el listado anterior. Una vez localizado el problema, la solución es muy simple. Basta con montar el dispositivo manualmente, pero indicándole que queremos utilizar escrituras asíncronas, más rápidas pero que exigen desconectar el USB de forma "controlada" (más sobre esto después). La primera opción es desmontar el dispositivo y montarlo manualmente, con las opciones que nos interesan: # mount ... /dev/sdb1 on /media/usbdisk type subfs (rw,nosuid,nodev,sync,fs=floppyfss,procuid,utf8=true) # umount /media/usbdisk # mount -t subfs /dev/sdb1 /media/usbdisk -o rw,nosuid,nodev,fs=floppyfss,procuid,utf8=true # mount ... /dev/sdb1 on /media/usbdisk type subfs (rw,nosuid,nodev,fs=floppyfss,procuid,utf8=true) En el ejemplo anterior primero vemos las opciones con las que se monta el dispositivo USB. Seguidamente lo desmontamos manualmente y lo volvemos a montar con las mismas opciones que acabamos de ver PERO eliminando el modo "sync". Volviendo a visualizar las opciones, vemos que ya no aparece "sync". Como debe ser. Otra opción más limpia es utilizar las funcionalidades "remount" de los kernel Linux modernos, para realizar las operaciones de forma más simple: # mount ... /dev/sdb1 on /media/usbdisk type subfs (rw,nosuid,nodev,sync,fs=floppyfss,procuid,utf8=true) # mount /media/usbdisk -o remount,async # mount ... /dev/sdb1 on /media/usbdisk type subfs (rw,nosuid,nodev,fs=floppyfss,procuid,utf8=true) Usemos la opción que usemos, si nuestro sistema emplea "submount" (el tipo de ficheros "subfs", como se puede ver en los ejemplos anteriores), el sistema operativo desmontará automáticamente el dispositivo USB cuando lo desenchufemos, como siempre. No obstante, ahora tenemos que asegurarnos de que los datos se han almacenado realmente en el dispositivo de almacenamiento USB, ya que ahora las escrituras pasan por la caché de disco interna de Linux. Para ello hay varias opciones. Por ejemplo, en el escritorio KDE de SUSE hay un menú para "desenchufar de forma segura", muy semejante a Windows (aunque con la configuración estándar de SUSE, al emplear escrituras síncronas, es innecesario). Otra opción, ya que tenemos una ventana de terminal abierta, es utilizar el comando "sync" de Unix para asegurarnos de que todos los datos modificados en la caché de escritura de Linux son volcados a los sistemas de almacenamiento del ordenador. Este comando puede tardar bastante tiempo en "terminar" (lo que tarde en grabar todo lo pendiente que mantenía en RAM, la caché), pero cuando acabe significará que no queda nada pendiente y podemos desenchufar el USB sin problemas. Por tanto, utilizando un simple comando "mount /media/usbdisk -o remount,async" consigo pasar de grabar a una velocidad de 200KB/s a grabar a 560KB/s. Casi tres veces más rápido. E igual de rápido que con Windows. Por supuesto las velocidades concretas dependerán de cada dispositivo USB. El mío es bastante "cutre", ya se ve, porque incluso a su velocidad de "pico" graba a la mitad de la capacidad del estándar USB 1.1. Pero menos da una piedra... Pero vuelvo a reiterar: ¡mucho cuidado con asegurarnos de que todos los datos se han grabado en el dispositivo de almacenamiento USB ANTES de desenchufarlo del ordenador!. Recuerda utilizar el comando "sync" o similares, al terminar la grabación. El único efecto secundario de trabajar en modo asíncrono, aparte de requerir que seamos cuidadosos, es que una vez que el sistema nos dice que ha terminado de grabar, todavía puede tardar varios minutos en completar realmente todas las operaciones pendientes que contenga en su caché en RAM. Y el acceso de lectura a un dispositivo USB mientras se está grabando en él a toda velocidad, suele ser bastante lento y poco cómodo. Por ejemplo, si durante la grabación pulsamos "cancelar", aún se pueden almacenar muchos megas adicionales y podemos tener que esperar fácilmente un minuto o dos hasta que realmente aborta la operación. Exactamente igual que en Windows...

Códigos en consola

Trabajando con Archivos

ls – listar contenido de un directorio
ls -al – listado con atributos y archivos ocultos
cd newdir/ - moverse al directorio newdir
cd – moverse al directorio home
pwd – mostrar la ruta actual
rm file – borrar el archivo file
rm -r dir – borrar el directorio dir
rm -f file – borrar file sin emitir mensajes de error
rm -rf dir – igual que el anterior pero con el
directorio dir [**]
cp file1 file2 – copiar file1 en file2
cp -r dir1 dir2 – copiar el dir1 en dir2 (si no
existe se crea)
mv file1 file2 – renombra file1 como file2. Si file2
es un directorio lo mueve dentro del mismo.
ln -s file link – crea un enlace simbólico de link
hacia file.
touch file – crea o actualiza file
cat > file – redirecciona la entrada estándar a file
more file – muestra el contenido de file
head file – muestra las 10 primeras filas de file
tail file – muestra las 10 últimas filas de file
tail -f file – muestra las 10 últimas filas de file a
medida que va creciendo.
Gestión de procesos

Info del sistema

date – Consulta la fecha y hora actual
cal – Muestra el calendario del mes actual
uptime – tiempo que lleva encendida la máquina
w – muestra usuarios conectados a la máquina
whoami – nombre de mi usuario
finger user – muestra información sobre user
uname -a – información sobre el núcleo
cat /proc/cpuinfo – información sobre la cpu
cat /proc/meminfo – información sobre la memoria
man command – páginas de manual sobre command
df – espacio libre en los discos
du – espacio usado por los directorios
free – uso de memorio y swap
whereis app – localiza el binario, fuente y página
de manual de app
which app – localiza el comando app

Compresion

tar cf file.tar files – empaqueta files en un
fichero files.tar
tar xf file.tar – extrae el contenido de file.tar
tar czf file.tar.gz files – empaqueta y
comprime (gzip) files en files.tar.gz
tar xzf file.tar.gz – extract y descomprime
usando Gzip
tar cjf file.tar.bz2 – empaqueta y comprime
(bzip2) files en files.tar.bz2
tar xjf file.tar.bz2 – extract y descomprime
usando Bzip2
gzip file – comprime file y lo renombra como
file.gz
gzip -d file.gz – descomprime file.gz a file

Gestion de procesos

ps – muestra los procesos activos del usuario
top – muestra todos los procesos activos
kill pid – mata el proceso con id pid
killall proc – mata todos los procesos proc [**]
bg – lista los procesos parados o en segundo plano
fg – lleva proceso más reciente a primer plano
fg n – lleva proceso n a primer plano

Redes

ping host – hace ping a host y muestra los datos
whois domain – información del dominio domain
dig domain – configuración DNS de domain
dig -x host – DNS inverso de host
wget file – descarga file
wget -c file – continua una descarga parada

Permisos de archivos

chmod octal file – establece en file los permisos
especificados en octal (usuario, grupo y otros)
● 4 – lectura (r)
● 2 – escritura (w)
● 1 – ejecución (x)
Ejemplos:
chmod 777 – lectura/escritura/ejecución para todos.
chmod 755 – rwx para el propietario, rx para su
grupo y otros

Instalacion

chmod octal file – establece en file los permisos
especificados en octal (usuario, grupo y otros)
● 4 – lectura (r)
● 2 – escritura (w)
● 1 – ejecución (x)
Ejemplos:
chmod 777 – lectura/escritura/ejecución para todos.
chmod 755 – rwx para el propietario, rx para su
grupo y otros

SSH

ssh user@host – conectar a host como user
ssh -p port user@host – conectar a host por el
puerto port como user
ssh-copy-id user@host – añadir clave de user a
host para autenticarte

Busqueda

grep pattern files – buscar patrón pattern en files
grep -r pattern dir – buscar recursivamente
patrón pattern en dir
command | grep pattern – buscar patrón pattern en
la salida de command
locate file – Busca instancias de file

Combinaciones de Teclas

Ctrl+C – Interrumpe el comando activo
Ctrl+Z – Suspende el comando activo, con fg
se reanuda y con bg se lleva a segundo plano
Ctrl+D – abandona sesión actual, similar a exit
Ctrl+W – borra una palabra en la línea actual
Ctrl+U – borra toda la línea
!! - repite el último comando
exit – abandona la sesión actual
[**] usar con mucho cuidado

viernes, 8 de agosto de 2008

Universidad de las Ciencias Informaticas

Dense una vuelta por http://www.uci.cu e informense acerca de esta univesidad, unica de su tipo.

GNU/Linux

Publicado por Darkboucer en hackhispano.spainforos.es
***********************************************************

Creo que la gente no va a cambiar a Linux porque es libre (a ellos probablemente no les interese) o porque es gratis (ellos probablemente piensen que no pagaron por Windows), sino tal vez porque vean nuevas, buenas características que Windows no tiene. Entonces aqui hay algunas razones de porque Linux es lo máximo!

1) OLVIDATE DE LOS VIRUS
Linux dificilmente tendrá algún virus. De hecho, un virus en Linux no es imposible pero Linux hace que esto sea bien difícil que pase, por varias razones: La mayoría de personas usa Microsoft Windows y los delincuentes informáticos quieren hacer tanto daño (o controlar) como sea posible: es por esto que ellos apuntan sus ataques a Windows. Cada vez que tú solicitas hacer algo que tiene que ver con el sistema, un administrador de contraseñas aparecerá, los virus no pueden ir por ahi y borrar o modificar lo que quieran en el sistema: ellos no tendrán la autorización para eso.

2) ESTABILIDAD
Las últimas versiones de Windows, especialmente las "Profesionales" se están volviendo más estables que antes. Pero esta clase de problema todavía aparece muy a menudo. Definitivamente ningún sistema operativo es perfecto y la gente que te dice que el suyo jamás se va a colgar, nunca, están mintiendo. Sin embargo, algunos sistemas operativos pueden ser tan estables que la mayoría de usuarios nunca verán su sistema operativo colgarse, incluso por varios años. Esto es cierto para Linux.

3) PROTECCIÓN
Virus, troyanos, adwares, programas espías... Windows deja que todos estos entren a tu computadora muy facilmente. Entonces puedes 1) instalar un firewall, 2) instalar un antivirus, 3) instalar un anti-adware, 4) deshacerte del Internet Explorer y Outlook (con Firefox y Thunderbird para reemplazarlos), y 5) rezar para que los delincuentes informáticos no sean lo suficientemente listos para superar estas protecciones y que, si una falla de seguridad es descubierta, Microsoft tome menos de un mes para hacer que una actualización esté disponible (y esto no pasa muy a menudo). O puedes instalar Linux y dormir profundamente de ahora en adelante.

4) COSTO Y LICENCIAS
Si tu computadora vino con una copia de Windows, entonces pagaste por ella, incluso si la tienda no te dijo nada al respecto. El precio de una licencia de Windows llega a ser en promedio un cuarto del precio de cada computadora nueva. Entonces a menos que hayas obtenido Windows ilegalmente, tú probablemente pagaste por él. Por otro lado, tú puedes tener Linux completamente gratis. De hecho, algunas compañias están haciendo un buen negocio vendiendo soporte, documentación, servicio en linea, etc., para su propia versión de Linux y esto es algo realmente bueno. Afortunadamente la mayor parte del tiempo tú no vas a tener que pagar un centavo.

5) LIBERTAD
Linux y los software de "Fuente Abierta" son "libres". Esto significa que su licencia es una "licencia libre" y la más común es la GPL (Licencia Pública General). Esta licencia establece que cualquiera está permitido de copiar el software, ver el código fuente (la "receta", modificarlo y redistribuirlo siempre y cuando mantenga la licencia GPL. Si estás atado a Windows no hay nada que puedas hacer. Tú y/o tu empresa confian en esta única compañía, en su software y posiblemente no podrías hacer que las cosas trabajen sin él. A diferencia de esto, con el software de fuente abierta, si un proyecto en particular o empresa de soporte cierra, todo el código permanece abierto a la comunidad y la gente puede seguir mejorándolo.

6) INSTALACIÓN
Instalar Windows es sólo el inicio. Un amigo te manda un email con un archivo PDF adjunto: upss... no tienes un programa para leerlo. Adjunto al email de tu amigo encuentras un documento de texto file.doc. Tu Windows tampoco puede leer eso. u amigo también te mandó una imagen pero tiene un mal contraste, mala luminosidad y necesita una buena reducción. Windows está lejos de ser completo e instalarlo es sólo el comienzo de los problemas. Cuando obtienes una distribución Linux también tienes, sin instalar nada más: Todo lo que necesitas para escribir textos, editar hojas de cálculo, hacer presentaciones ordenadas, dibujar, editar ecuaciones, un navegador web y un cliente de correo, un editor de imágenes, un programa de mensajeria instantánea, un reproductor y organizador de música, un lector de PDF, todo lo que necesitas para descomprimir archivos, etc.

7) ACTUALIZACIÓN
Windows tiene una herramienta muy conveniente llamada "Windows Update", el cual te permite tener al día tu sistema con las últimas actualizaciones disponibles. Pero ¿que tal todo tu software no-Microsoft? ¿aplicaciones Adobe? ¿compresor ZIP? ¿grabador de CD? ¿navegadores web, clientes de correo, etc. no-Microsoft? Linux tiene una aplicación especial llamada "Gestor de Paquetes", la cual se encarga de todo lo que esté instalado en tu sistema, pero también de cada pieza de software que tu computadora tiene. Entonces si quieres mantener todo actualizado, lo único que necesitas hacer es presionar el botón de "Instalar Actualizaciones".

8.) LEGALIDAD
Para la mayoría de personas tener software ilegal es muy común. Si usas Linux e instalas software libre, no vas a tener que preocuparte por esto nunca más! La mayoría del software libre es gratis. Puedes encontrar reemplazos libres para la mayoría del software comercial que hay por ahí. Podrán carecer de algunas de las funcionalidades avanzadas pero serán más que suficientes para la mayoría de personas.

9) VELOCIDAD
Windows tiene un buen número de fallas de diseño, resultando en que se vuelva cada vez más y más lento y que no dure mucho tiempo. Reinstalar Windows resuelve el problema... hasta la próxima vez. Bueno, prueba Linux y estarás sorprendido. Dentro de 5 años tu sistema estará tan rápido y eficiente como el día que lo instalaste, sin mencionar que no vas a tener ningún virus, adware, troyano, gusano, etc., que te obligue a reinstalar de todas maneras.

10) INDUSTRIA LOCAL
Cuando compras software privativo (ej. Windows), cerca de la mitad del dinero se va directamente a la compañía (ej. Microsoft): ese dinero deja tu país, mientras que la otra mitad se queda (comisiones por la venta, etc, beneficios no técnicos). Con esto tu país no está produciendo nada e incluso no tienen a las personas calificadas para vender los servidores/computadoras. Con el Software Libre (ej. Linux), la economía (y el conocimiento del profesional IT) de tu país podría mejorar, ya que podrían haber muchas compañías pequeñas o medianas personalizando soluciones, dando soporte, consultoría, etc.