# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Cómo vaciar ficheros en Linux

Existen varias formas de vaciar el contenido de ficheros en sistemas Unix desde la línea de comandos, algunas de ellas son las siguientes:

# echo "" > fichero
# > fichero
# :> fichero
# cat /dev/null > fichero
# true > fichero

apropos: buscador de comandos en la shell

Es imposible conocer todos los comandos que nos ofrece cualquier shell, para solucionar este “problema” existen herramientas que nos hacen la vida más fácil, una de ellas es el comando apropos.

Apropos es un comando que busca dentro de las descripciones de cada una de las páginas man las palabras claves que le indiquemos pasandolas como argumentos. Estas palabras claves pueden contener comodines o ser la palabra clave exacta.

Por ejemplo, si quisieramos buscar comandos que sirven para copiar ficheros podríamos hacerlo del siguiente modo (suponiendo un sistema en idioma inglés):

$ apropos "copy files"
cp (1)               - copy files and directories
cpio (1)             - copy files to and from archives
install (1)          - copy files and set attributes

Como véis nos muestra tres comandos que pueden servirnos para realizar operaciones de copiado de ficheros. Otro ejemplo podría ser la búsqueda de un comando/programa para gestionar particiones:

$ apropos "partition"
addpart (8)          - simple wrapper around the "add partition" ioctl
cfdisk (8)           - Curses/slang based disk partition table manipulator for Linux
delpart (8)          - simple wrapper around the "del partition" ioctl
fdisk (8)            - Partition table manipulator for Linux
iostat (1)           - Report Central Processing Unit (CPU) statistics and input/output statistics for devices, partitions an...
mpartition (1)       - partition an MSDOS hard disk
partprobe (8)        - inform the OS of partition table changes
partx (8)            - telling the kernel about presence and numbering of on-disk partitions.
sfdisk (8)           - Partition table manipulator for Linux

Como véis es un comando muy útil en situaciones que no conocemos un comando para realizar una determinada tarea.

Comandos RPM

RPM Package Manager (o RPM, originalmente llamado Red Hat Package Manager) es una herramienta de administración de paquetes pensada básicamente para Linux. Es capaz de instalar, actualizar, desinstalar, verificar y solicitar programas. RPM es el formato de paquete de partida del Linux Standard Base. Wikipedia

Originalmente desarrollado por Red Hat para Red Hat Linux, en la actualidad muchas distribuciones GNU/Linux lo usan, dentro de las cuales las más destacadas son Fedora Linux, MandrivaLinux, SuSE Linux y Conectiva Linux. También se ha portado a otros sistemas operativos.

A continuación explico los comandos básicos para la gestion de paquetería RPM, instalar, desinstalar, actualizar, buscar, etc.

Instalación de paquetes RPM

# rpm -ivh foo-2.0-4.i386.rpm
# rpm -i ftp://ftp.redhat.com/pub/redhat/RPMS/foo-1.0-1.i386.rpm
# rpm -i http://oss.oracle.com/projects/firewire/dist/files/kernel-2.4.20-18.10.1.i686.rpm

Como podéis observar, podemos instalar paquetes RPM descargardos en el propio sistema además de hacerlo directamente vía ftp o http. En cuanto a los parámetros, -i es de install, -v de verbose y -h de hash, podéis verlo en la ayuda del propio comando (–help o man)

Desinstalar paquetes RPM

# rpm -e foo

Actualizar paquetes RPM

# rpm -Uvh foo-1.0-2.i386.rpm
# rpm -Uvh ftp://ftp.redhat.com/pub/redhat/RPMS/foo-1.0-1.i386.rpm
# rpm -Uvh http://oss.oracle.com/projects/firewire/dist/files/kernel-2.4.20-18.10.1.i686.rpm

Lo que hacemos al actualizar de este modo vía rpm es desinstalar el paquete antiguo e instalar el nuevo, también soporta el protocolo ftp y http.

Listar todos los paquetes RPM instalados en el sistema

# rpm -qa

Esta orden listará todos los paquetes instalados en el sistema.

Listar determinados paquetes RPM

# rpm -q foo

De este modo listamos la información de un determinado paquete, su nombre, versión, etc.

Listar información de un paquete RPM

# rpm -qi foo

Listar ficheros de un paquete RPM instalado

# rpm -ql foo

Verificar firma de un paquete RPM

# rpm --checksig foo

Por supuesto, “foo” es un ejemplo de paquete… ;)

Traducido y adaptado de RPM Commands.

Tabla de equivalencias entre comandos DOS y UNIX

Esta tabla servirá de referencia a aquellos usuarios que pasen de DOS a UNIX o viceversa:

Tarea ...                         DOS                     UNIX

Listar ficheros dir/w dir ls dir ls -l Mostrar contenido de ficheros type cat Mostrar contenido de ficheros type filename | more more paginando Copiar fichero copy cp Buscar cadena en fichero find grep fgrep Comparar ficheros comp diff Renombrar fichero rename OR ren mv Borrar fichero erase OR del rm Borrar directorio rmdir OR rd rmdir Cambiar permisos de ficheros attrib chmod Crear directorio mkdir o md mkdir Moverse entre directorios chdir OR cd cd Ayuda help man apropos Mostrar fecha y hora date, time date Mostrar espacio disponible chkdsk df Imprimir fichero print lpr Mostrar cola de impresión print lpq

Fuente: DOS to UNIX Translation

Unix ToolBox: Base de datos de comandos y tareas Unix/Linux/BSD

Unix ToolBox es un excelente sitio web que recopila comandos, tareas, scripts,etc de Unix/Linux/BSD separados por categorías, además de ser una excelente guía práctica con ejemplos de cada comando, tanto para usuarios avanzados, intermedios como principiantes. Os dejo las categorías y un ejemplo de como es por ejemplo, la subcategoría hardware dentro de sistema, podéis acceder al sitio web directamente desde aquí.

  1. System
  2. Processes
  3. File System
  4. Network
  5. SSH SCP
  6. VPN with SSH
  7. RSYNC
  8. SUDO
  9. Encrypt Files
  10. Encrypt Partitions
  11. SSL Certificates
  12. CVS
  13. SVN
  14. Useful Commands
  15. Install Software
  16. Convert Media
  17. Printing
  18. Databases
  19. Disk Quota
  20. Shells
  21. Scripting
  22. Programming
  23. Online Help

Información Hardware

Kernel detected hardware

# dmesg                              # Detected hardware and boot messages
# lsdev                              # information about installed hardware
# dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8 # Read BIOS

Linux

# cat /proc/cpuinfo                  # CPU model
# cat /proc/meminfo                  # Hardware memory
# grep MemTotal /proc/meminfo        # Display the physical memory
# watch -n1 'cat /proc/interrupts'   # Watch changeable interrupts continuously
# free -m                            # Used and free memory (-m for MB)
# cat /proc/devices                  # Configured devices
# lspci -tv                          # Show PCI devices
# lsusb -tv                          # Show USB devices
# lshal                              # Show a list of all devices with their properties
# dmidecode                          # Show DMI/SMBIOS: hw info from the BIOS

FreeBSD

# sysctl hw.model                    # CPU model
# sysctl hw                          # Gives a lot of hardware information
# sysctl vm                          # Memory usage
# dmesg | grep "real mem"            # Hardware memory
# sysctl -a | grep mem               # Kernel memory settings and info
# sysctl dev                         # Configured devices
# pciconf -l -cv                     # Show PCI devices
# usbdevs -v                         # Show USB devices
# atacontrol list                    # Show ATA devices
# camcontrol devlist -v              # Show SCSI devices

Comandos que nunca debes lanzar en tu sistema

En los foros oficiales de Ubuntu hace unos meses se creó este hilo, en el cual se indican los comandos Unix/Linux más peligrosos que existen, y que con algo tan simple como la ejecución de un comando puedes destruir todo un sistema operativo.

Casualidad que uno de ellos da nombre a este blog (rm -rf /)… bueno, en parte ;)

Y recordad, NUNCA lancéis estos comandos, a no ser que sepáis expresamente lo que estáis haciendo.

Como no quiero hacerme responsable de que alguien los ejecute, directamente os doy el enlace al artículo jajaja:

- Comandos que NUNCA debes ejecutar en tu sistema Unix

Chuleta / guía de comandos Unix/Linux

FossWire han realizado una excelente guía de comandos Unix/Linux, es realmente una chuleta que viene bien tener a mano, quizas no tanto para los administradores avanzados pero sí para los principiantes:
Chuleta comandos Linux Unix

La guía está disponible en los siguientes idiomas:

Comandos útiles para IOS Cisco Routers, parte II

Enlace a la primera parte:

Comandos útiles para IOS Cisco Routers, parte I

Seguimos con esta serie de artículos en la que explicamos comandos de gran utilidad en los IOS de Routers Cisco:

Para intentos de telnet por parte del Router

Puede ocurrir que nos equivoquemos al escribir un comando, y el router se piense que es un hostname, e intente hacer telnet al mismo, ejemplo:

  MiRouter#shwo
    Translating "shwo"...domain server (10.1.1.2)
    % Unknown command or computer name, or unable to find computer address
    MiRouter#

En este ejemplo, hemos escrito mal la palabra show, lógicamente no queremos hacer telnet a shwo, por lo que podemos pararlo del siguiente modo (cambiando el metodo de transporte a ninguno):

    ! Console port
    line con 0
        transport preferred none
    ! VTY Ports
    line vty 0 5
        transport preferred none

Una vez hecho esto ya no sucede el problema:

   MyRouter#shwo
        ^
    % Invalid input detected at '^' marker.

Comandos SHOW de utilidad

Independientemente de que gran parte del “pastel” de un router sea su configuración, necesitamos observar continuamente el estado de la configuración, esto lo podemos hacer con el comando show, aquí tenéis los usos más comunes:

show ip arp
Nos muestra la tabla ARP completa (Address Resolution Protocol), que es la tabla de resolución MAC-a-IP.
show version
Este comando muestra la versión del IOS, las interfaces disponibles, el uptime del sistema, la última vez que se hizo un reload y porqué, y registros de configuración.
show ip protocols
Muestra información de los protocolos actuales de routing.
show ip route
Muestra la tabla entera de IP routing.
show ip route summary
Muestra una descripción e información de la tabla de routas IP.
show ip interface
Muestra información de las interfaces a nivel IP.
show ip interface brief
Muestra una descripción de cada una de las interfaces.
show ip traffic
Muestra estadísticas del trafico IP en el router.
show access-list
Además de mostrar las listas de acceso configuradas, también muestra el nº de hits que cada línea ha recibido, de este modo podemos hacer un mejor debug de cualquier problema con las access-list o listas de acceso.
show cdp neighbors
Suponiendo que tenemos CDP (Cisco Discovery Protocol) habilitado, este comando muestra un reporte de todos los dispositivos Cisco al que estamos conectados.
show cdp neighbors detail
Este comando muestra más informacion sobre los CDP vecinos.

Aprende las teclas de edición en línea de comandos

No hay duda de que conocer atajos de teclados, en cualquier sistema nos hace ganar muchísimo tiempo, ahí van unas cuantas hot keys:

Control A      Ir al comienzo de la línea
Control E      Ir al final de la línea
Control K      Elimina todo lo que hay a la derecha del cursor
Control P      Llama al comando previo en el buffer de historia (history)
Control N      Llama al siguiente comando en el buffer de historia (history)

Bueno, seguiremos con la 3ª edición muy pronto.