Herramientas de usuario

Herramientas del sitio


sistemas:linux:linux

¡Esta es una revisión vieja del documento!


Sistemas Linux

Comandos

Ayuda

  • El paquete man2html te instala una visualización del man desde el navegador web. Para acceder a esta: http://host/cgi-bin/man/man2html.

Sistema de archivos

  • Con ls -lah veremos una lista de los documentos en un directorio.
  • Con du -sh podremos ver el tamaño del directorio.
  • Con df -h puedes ver el tamaño total de las particiones montadas y el espacio libre.

Trabajar en background

  • Iniciciar un comando en background: comando &.
  • Pondremos el proceso actual en background apretando control + z
  • Poner un proceso en background: bg numeroJob
  • Veremos los procesos actuales con: jobs
  • Retomaremos un proceso con fg numeroDeJob
  • Eliminar un proceso:
    • kill -9 %numeroJob
    • kill -9 numeroPID

Red

  • Ver configuarción actual: ip addr
  • Ver la routing table: netstat -nr
  • Ver conexiones activas:
    • Sólo conexiones activas: netstat
    • Sin resolver nombres de red: netstat -n
    • Sólo las tcp: netstat -nt

Hardware

  • Detectar hardware en el bus PCI: lspci, podemos añadirle el parámetro: -v o -vv, según el nivel de detalle que deseemos.
  • Ver el hardware conectado por USB: lsusb
  • Listado del hardware detectado por el kernel: dmesg
  • Listado del hardware con respecto a la cpu: dmesg | grep -i cpu; memoria: dmesg | grep -i memory; usb: dmesg | grep -i usb
  • Estado actual de los dispositivos; cada dispositivo es controlado por un proceso, y cada proceso registrado en /proc. Podemos consultar los estados haciendo: cat /proc/fichero, como por ejemplo el de la memoria: cat /proc/meminfo o el de la cpu cat /proc/kcore. Existen también en /proc: cpuinfo, interrupts, version o filesystems.

Discos duros y particiones

  • Información de las particiones: fdisk -l
  • Información de un disco concreto: fdisk -l /dev/hda
  • Ver el estado de un disco: hdparm -C /dev/sdd
  • Poner un disco en modo sleep: hdparm -Y /dev/sdd

Impresoras

  • Ver las impresoras activas: lpstat -p -d
  • Otra forma de ver información sobre impresoras: cat /etc/printcap

Enviar a imprimir:

  • Imprimir la salida de un comando: comando | lpr
  • Utilizar una impresora de red: comando | lpr -P impresora

Procesos

  • top muestra por consola un gestor de recursos con los procesos más significativos.

Herramientas para archivos

  • grep -r “imbing” ./* buscará “imbing” dentro de todos los archivos del directorio actual y entrando en los subdirectorios.
  • sed 's/old_string/new_string/g' file.txt > new_file.txt , coge file.txt y sustituye “old_string” por “new_string” volcando el contenido en new_file.txt.

Comprimir y empaquetar

tar

tar cvf archivo.tar archivos_seleccionados			Comprime
tar tvf archivo.tar						Ve el contenido
tar xvf archivo.tar						Descomprime

gzip

gzip archivo							Comprime el archivo
gunzip archivo.gz						Descomprime el archivo

Archivos tar.gz

tar czvf archivo.tar.gz archivos_seleccionados			Comprime
tar tzvf archivo.tar.gz						Ve el contenido
tar xzvf archivo.tar.gz						Descomprime

bzip2

bzip2 archivo							Comprime
bunzip2 archivo.bz2						Descomprime

Archivos tbz2

tar cvfj archivo.tbz2 archivos_seleccionados			Comprime
tar tvfj archivo.tbz2						Ve el contenido
tar xvfj archivo.tbz2						Descomprime

zip

  • Para crear archivos .zip utilizaremos el comando zip*.
  • Para descomprimirlo utilizaremos unzip.

Variables de entorno

  • Ver las variables definidas: env
  • Definir variable (bash): export JAVA_HOME=“/usr/bin”
  • Definir variable (tcsh): setenv JAVA_HOME /usr/bin
  • Ver una variable: echo $JAVA_HOME
  • Para eliminar una variable: export JAVA_HOME=

Kernel

Mensajes del kernel

  • El comando dmesg devuelve los últimos mensajes generados por el kernel (por el ejemplo los que se generan al iniciarse la máquina de detección de hardware, al insertar un pen…). Para verlos haremos:
    • dmesg | grep -i usb: Para ver los relacionados con los puertos usb.
    • dmesg | grep -i memory: Para ver los relacionados con la memoria.
    • dmesg | grep -i cpu: Para ver los relacionados con el procesador.
    • dmesg | grep -i tty, dmesg | grep -i scsi
  • dmesg -c limpiará los mensajes.

Comandos avanzados

find

Para encontrar un fichero a partir de un nombre utilizaríamos la siguiente estructura: find [ruta] -name nombre. Por ejemplo, para buscar en el directorio actual (y en sus subdirectorios) el fichero que contenga mule:

find -name *mule*

Aunque también podríamos indicar que busque hasta una profundidad de directorios con -maxdepth num:

find wordpress -maxdepth 1 -name '*js'

También podemos buscar por tamaño a partir del parámetro -size seguido de tamaño elegido (por ejemplo bloques (b), gigas (G)…), podríamos también utilizar + o - para indicar mayor o menor respectivamente. Por ejemplo para buscar los archivos menores de 100k lanazaremos:

find -size -100k

También podríamos buscar archivos vacíos con el parámetro -empty.
Otra forma útil de buscar ficheros es a partir del usuario. Para buscar ficheros de usuarios que ya no existan en el sistema (porque, por ejemplo, hayan sido borrados) utilizamos el parámetro -nouser:

find -nouser

Podemos buscar también a partir de los nombres de usuario con -user o -uid. Existe el parámetro -o que te permite decir, por ejemplo, que sean del usuario A o del B:

find -user root -o -user www-data

También existe el parámetro -not, para indicar que buscas los que no pertenezcan a ese usuario:

find -not -user www-data
find -user www-data -not -size +100k

Otro parámetro útil sería -group (para buscar por grupo).
Podemos indicar que sólo busque ficheros a partir de -type f. También existen parámetros para buscar por permisos, por ejemplo -readable, -writable y -executable, o -perm que te busca a partir de permisos expresados en números:

find -type f -perm -110

Para utilizar expresiones regulares utilizamos el parámetro -regex, debido a que hay distintos tipos de expresiones podremos combinarlo con -regextype (-regextype posix-egrep, o -regextype posix-egrep).

find -regextype posix-egrep -regex '.*(php|js)$'

Podemos buscar según el tiempo de acceso (-atime), la última vez que fue modificado (-mtime) o la que fue cambiado (-ctime). Por ejemplo los que han sido modificados en los dos últimos días:

find -mtime +2

O para decir hace más de dos pero menos de cinco:

find -mtime +2 -mtime -5

Para ejecutar un comando con la salida del find utilizaremos -exec segudio del comando donde allá donde pongamos {} corresponderá al elemento de salida y con \; sería el final del comando. Por ejemplo para cambiar el dueño a www-data de los ficheros que tengan por dueño a root haremos:

find -user root -exec chown www-data {} \;

netcat

netcat o nc es un programa que te permite leer y escribir paquetes de red mediante conexiones TCP o UDP.
Para leer todas las opciones que permite utilizaríamos netcat -h, pero sus parámetros por defecto son ip y puerto (o rango de puertos).
Podríamos conectarnos a una máquina para escribir como si fuese telnet:

netcat www.google.com 80
netcat 192.168.1.20 12345

O podríamos ponernos en modo lectura:

netcat -l 12345

lsof

pv

Notas

  • Podemos hacer que la salida de un comando se vuelque sobre un archivo de texto haciendo comando > archivo. Si que el texto se concatene al contenido del archivo haríamos comando » archivo. Si tuviesemos que interactuar con el comando (mediante la entrada por teclado) haríamos comando | tee fichero.

Nomenclatura

Direcciones IP

Para indicar direcciones IP lo podremos hacer de la siguiente manera:

*                  Corresponde a todas.
192.168.1.1/24     Para indicar que serán válidos los 24 primeros bits, es decir, del 192.168.1.1 al 192.168.1.255
sistemas/linux/linux.1308995610.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)