Herramientas de usuario

Herramientas del sitio


sistema:linux:nuthsell

¡Esta es una revisión vieja del documento!


En resumen: Linux

Documentación

Organización del manual

El manual de linux está dividido en en pequeños manuales correspondientes a cada uno de las herramientas instaladas, para acceder al manual de una herramienta haremos: man grep, siendo grep la herramienta que queremos consultar. Cada uno de estos manuales se agrupan por las siguientes secciones:

  1. Comandos de shell
  2. Llamadas al sistema
  3. Llamadas a librerías
  4. Ficheros especiales (generalmente los de /dev)
  5. Formatos y convenciones
  6. Juegos
  7. Miscelania
  8. Rutinas no standard del kernel
  • Cuando consultemos una herramienta nos aparecerá su nombre y un número entre paréntesis: grep(1), este corresponde a la sección que estamos mirando actualmente.
  • Puede ser que una herramienta esté en varias secciones, para saber en qué secciones se encuentra esa herramienta haremos: man -f grep. Si queremos acceder a un manual en una sección distinta haremos: man 6 grep.

Más sobre el manual

Si buscamos unas páginas del manual correspondientes a un tema pero no sabemos qué herramientas estan relacionadas con este utilizaremos cualquiera de los siguientes comandos. Por ejemplo buscamos un manual sobre count words:

  • apropos count words
  • man -k count words

Para saber la ubicación de los archivos del manual edita el documento: /etc/manpath.config
Para formatear una página del manual para hacerla imprimible utiliza el parámetro -t.

Errores en el manual

  • Si sabes hemos instalado un programa pero man no nos encuentra su manual, podremos hacer varias cosas:
    • Buscar el archivo del manual: whereis -m cat
    • Cargar el archivo encontrado: man dirección_del_archivo
    • Reconstruir la base de datos del manual: mandb
  • Si no podemos utilizar el comando man existen otros que pueden sernos de utilidad: zless y zcat. Los cuales sirven para leer archivos de texto comprimidos.

Uso del 'info'

Existe otro comando para leer en otro el manual de linux, este es info.

  • info comando nos mostrará el manual para dicho comando.
  • La salida de info es imprimible por defecto.

Logs

El sistema de logs se arranca con /etc/init.d/sysklogd el cual inicia dos daemons:

  • syslogd, que gestiona los logs del sistema (mensajes a archivos, tuberías, usuarios…) usando la config en /etc/syslog.conf.
  • klogd, que gestiona los logs del kernel.

Los logs se guardan en el directorio /var/log, pueden crecer tanto que pueden llegar a ser muy extensos de ahí que exista una tarea (/etc/cron.daily/logrotate que los comprime y aplica una rotación). Los logs más importantes son:

  • /var/log/messages: Log global.
  • /var/log/kern.log: Log del kernel.
  • /var/log/auth.log: Log de logins del sistema (fallos de acceso…).
  • /var/log/dmesg: Log que almacena la información del kernel durante el arranque del sistema. Podemos ver su contenido con el comando dmesg.
  • /var/log/boot.log: Log de arranque.

Instalar software

RPM

  • Instalar: rpm -i file.rpm
  • Hacer un test sin llegar a instalar: rpm -i -test file.rpm
  • Actualizar: rpm -U file.rpm
  • Eliminar: rpm -e programa
  • Mostrar información de las acciones que se hacen: Añade el parámetro -v al comando rpm.
  • Ver versión instalada: rpm -q programa
  • Listar los ficheros instalados: rpm -qa programa
  • Listar los ficheros de ayuda: rpm -ql programa
  • Ver los archivos de configuración: rpm -qc programa
  • Listar todos los programas instalados: rpm -qa
  • Mostrar información de un programa: rpm -qi programa
  • Ver los últimos instalados: rpm -qa –last o rpm -qa –last|head

apt-get

  • Instalar: apt-get install paquete
  • Sobreescribir: apt-get install –reinstall paquete
  • Eliminar: apt-get remove paquete
  • Actualizar: apt-get update
  • Actualizar a una versión nueva: Edita el fichero /etc/apt/sources.list, añade la nueva fuente de paquetes y ejecuta los 3 comandos siguientes:
    • apt-get update
    • apt-get -u upgrade
    • apt-get -u dist-upgrade
  • Listar lo instalado: dpkg -l
  • Eliminar la caché de archivos que no se utilizará más: apt-cache autoclean
  • Eliminar la caché de archivos: apt-cache clean

Más en: Instalación de paquetes en Debian

Desde el código fuente

  • Necesitarás tener instaladas herramientas para compilar, descomprimir, configurar… tales como:
    • GNU coreutils, GNU binutils, gcc, GNU tar, gunzip, bunzip2 o make.
  • Lo mejor a la hora de instalar un programa a partir de su código fuente es seguir los pasos del fichero README que vendrá en la raíz del archivo descargado una vez descomprimido.

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.
  • 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

Niveles de ejecución

Impresoras

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

Imprimir

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

Editor Vi

El famoso vi podemos encontrarlo en dos comandos, la primera versión vi y una versión actualizada vim.
Para editar un archivo lo utilizaremos de la siguiente forma: vi nombre_archivo.
Vi tiene dos modos, uno de escritura y otro de comandos, para entrar al de comandos sólo tendremos que pulsar :.
Podemos realizar un tutorial que nos enseñará rápidamente a utilizarlo lanzando el comando: vimtutor.
La tecla ESC sale del modo texto.

Comandos

Antes de utilizarlos pulsa ESC.

De movimiento
h k l j En este orden: izquierda, arriba, derecha, abajo
cursores También pueden ser usados para moverse
:2 Va a la línea 2
$ Se posiciona al final de la línea
0 Se posiciona al principio de la línea
Para salir
:q Salir
:q! Sale sin guardar cambios
:wq Sale guardando cambios
Edición de texto
x Elimina el carácter sobre el que está el cursor
:j Juntar la línea siguiente con la actual
i Entra en modo inserción
dw Borra desde la posición actual hasta el final de la palabra, sin incluir el espacio.
de Borra desde la posición actual hasta el final de la palabra, incluyendo el espacio.
d$ Borra hasta el final de la línea
dd Borra una línea
u Deshacer el último comando
U Deshacer cambios en la última línea editada
Edición avanzada
yy Copia la línea actual
p Cuando eliminamos o copiemos algo, este queda en el buffer, con este comando se vuelca el buffer en la posición actual
rx Reemplaza el carácter actual por x
cw Elimina hasta el final de una palabra y te permite editar.
G Ir al final del fichero.
ctrl + g Estado y posición actual en el fichero.
o Inserta una nueva línea debajo del cursor
O Inserta una nueva línea encima del cursor
Búsquedas
Para hacer una búsqueda escribe / y luego lo que quieras buscar.
n Siguiente coincidencia
N Anterior coincidencia
% Busca el elemento ), ], } que cierra el (, [, { donde está el cursor.
Reemplazar 'viejo' por 'nuevo'
:s/viejo/nuevo Sólo la primera aparición en esa línea.
:s/viejo/nuevo/g Todas en esa lína
:#,#s/viejo/nuevo/g Entre dos números de línea (señalados por # y #)
:%s/viejo/nuevo/g En todo el fichero
:%s/viejo/nuevo/gc En todo el fichero y con confirmación
Interacción con los ficheros
:w nombre_fichero Escribe el contenido en nombre_fichero
:#, # w nombre_fichero Guarda el contenido entre dos líneas (# y #) en nombre_fichero
:r nombre_fichero Inserta el contenido de nombre_fichero
Otros
:!comando Ejecuta un comando externo
:help Ayuda del sistema
:help w Ayuda del comando 'w'

Podemos hacer que un comando se ejecute x veces haciendo xcomando, por ejemplo queremos que se borren dos líneas: 2dd.

Avanzado

Abreviaciones

Si tienes que escribir varios textos con elementos repetidos puedes utilizar las abreviaciones, para ello utiliza el comando ab, su estructura es la siguiente:
:ab nombre texto
Por ejemplo: :ab th Hola caracola, qué haces aquí tan sola?
Luego, cuando escribamos th en modo inserción sólo se tendrá que pulsar espacio, o enter o tab y se escribirá Hola caracola, qué haces aquí tan sola?

:ab nos mostrará todas las abreviaciones creadas.
:unabbreviate th elimina la abreviación de th.
:abclear elimina todas las abreviaciones.

Configurando el Vim

Para que cuando cerremos el Vim no se vayan a la mierda todas las abreviaciones y configuraciones realizadas podemos escribirlas en los ficheros de configuración del Vim, que son dos:

  • ~/.vimrc, el fichero de configuración personal para cada usuario.
  • /etc/vim/vimrc, el fichero de configuración general del vim.

Estos dos se ejecutarán al iniciarse el vim.

Enlaces

Otros

AWK

awk '{print}' txt
	Hace un print del archivo txt
echo askfdjkls | awk '{print length($0)}'
	Nos devuelve el tamaño de 'askfdjkls'
echo hola pepe tas bien | awk '{print index($0, "a")}'
	Devuelve la primera posición de 'a'
echo $caption | awk '{print substr($0,12,8)}'
	Hace un substr del valor de caption, desde la posición 12, 8 carácteres
awk -F: '{print $1}' /etc/passwd > user.txt
	Recoge el fichero /etc/passwd y escribe lo que hay antes de ':' en user.txt
du -a | awk 'BEGIN {s=0} {s = s + 1} END {print s}'
	Cuenta las líneas del retorno del du -a

Comprimir\Descomprimir

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

Para archivos como los .zip utilizaremos la herramienta zip para crearlos y unzip para descomprimir.

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

Linux - Notas

Recuperar GRUB tras instarlar Windows

  1. Ejecutaríamos un live cd y entraríamos a la consola.
  2. Entraremos como root: sudo su
  3. Montaremos la partición donde está instalado el sistema operativo: mount /dev/sda6 /mnt
  4. Lanzaremos la siguiente orden: sudo grub-install –root-directory=/mnt/boot /dev/sda
  5. O si no funcionase: sudo grub-install –root-directory=/mnt/boot /dev/sda –recheck

Varias

Montar una ISO

mount "AI Techniques Examples.iso" /mnt -o loop
umount /mnt

Contar el número de líneas de código

$ cat `find . -name *.java` | egrep ";" | wc -l

Administración de un server

Herramientas

SSH

El comando ssh es usado para acceder remotamente a una consola Linux.

  • ssh 192.168.1.100 - Accede al host 192.168.1.100 con el usuario actualmente validado.
  • ssh 192.168.1.100 -l root - Accede al host 192.168.1.100 con el usuario indicado (root).

Existen servidores de ssh que podemos instalar en nuestras máquinas, como por ejemplo: dropbear para pequeños dispositivos o el openssh-server.

Firewall

Dispositivos

LaFonera

Pequeño router que viene con un OpenWrt instalado.

Activar el SSH

Tiene instalado, pero no activado, dropbeard. Sólo tendremos que lanzar el comando por consola para que nos deje entrar por ssh, para ello debemos hacerlo mediante la interface web. Crearemos una página con este código y lanzaremos el comando que activa el server:

<html>
<head></head>
<body>
<form method="post" action="http://192.168.10.1/cgi-bin/webif/connection.sh" enctype="multipart/form-data">
<input name="username" value="$(/etc/init.d/dropbear)" size="68">
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

Podremos entrar como root y hacer que el dropbeard se inicie automáticamente haciendo:
ln -s /etc/init.d/dropbear /etc/init.d/S50dropbear

Otros

Atajos

ctrl+l		Borrar pantalla
alt+ctrl+Fx	Cambia de terminal
alt+F2		Ejecutar (gráfico)
ctrl+alt+esc	En KDE para cerrar una aplicación a la fuerza
ctrl+esc	Ver los procesos activos
ctrl+alt+bckspc	Reiniciar X
shift+<cursor>	Subir\bajar por la consola
  • alias listaInstalados=“dpkg -l” Asigna un alias, cuando se llame a listaInstalados se ejecutará: 'dpkg -l'

Trucos Linux

  • Desde los entornos gráficos podemos acceder a servidores ssh, samba… utilizando en la barra de direcciones el protocolo adecuado, como por ejemplo:
    • ssh://192.168.1.10 → Accede a server ssh
    • smb://192.168.1.10 → Accede a server samba
    • fish://192.168.1.10 → Accede a server ssh

Ver temperatura CPU

Instalamos el paquete acpi: sudo apt-get install acpi

  • Para ver tanto el estado de la batería como la temperatura del procesador: acpi -t
  • Si queremos ver toda la información posible ( temperatura, batería, y estado del cargador de corriente ): acpi -V
  • Y para ver cualquiera de estas informaciones en tiempo real, usamos el útil comando watch: watch acpi -V

Notas

  • Un usuario que no sea el root no podrá abrir puertos de red más pequeños que el 1024.
  • El fichero .bashrc que hay en todos los home de todos los usuarios corresponde a todos los comandos que se ejecutan cuando inician sesión independientemente. Si queremos ver el fichero global que inician todos iremos a /etc/profile.
  • Crear una iso rápidamente: cat /dev/cdrom > imagen.iso
  • El log del sistema lo encontrarás en /var/log/messages
  • Podremos ver qué dispositivos usan qué IRQs en /proc/interrupts
  • El comando wget recoge algún archivo de red o simplemente llama a una web.
  • El comando run-parts al cual se le indica un directorio ejecuta todos los archivos ejecutables de este.
  • Si quieres introducir más de un solo comando en la consola únicamente tendrás que separar estos por ;.
  • Si quieres lanzar un comando con su tendrás que utilizar el parámetro -c: su -c “comando”
  • Es posible que montes una partición smb para hacer backups, puede que algunos ficheros tengan letras con acentos o Ñs, para que funcione bien deberás añadir las siguientes opciones: -o codepage=cp850,iocharset=utf8,username=…, siendo codepage el code page del server (el windows) e iocharset el del que envia (linux).
  • Para saber la temperatura de la cpu desde la consola consulta: /proc/acpi/thermal_zone/<…>/temperature.
  • Recuerda que puedes acceder a los logs de una aplicación desde /var/log, por ejemplo: /var/log/apache2/error.log.
  • Puedes lanzar un comando en segundo plano (o en background) añadiendo & después de su llamada.
  • ls -lah hará un ls pero mostrándolo guay, con los tamaños como megas, bytes…
sistema/linux/nuthsell.1274293071.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)