¡Esta es una revisión vieja del documento!
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:
man -f grep. Si queremos acceder a un manual en una sección distinta haremos: man 6 grep.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 wordsman -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.
whereis -m catman dirección_del_archivomandbman existen otros que pueden sernos de utilidad: zless y zcat. Los cuales sirven para leer archivos de texto comprimidos.
Existe otro comando para leer en otro el manual de linux, este es info.
info comando nos mostrará el manual para dicho comando.
El sistema de logs se arranca con /etc/init.d/sysklogd el cual inicia dos daemons:
/etc/syslog.conf.
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.lspci, podemos añadirle el parámetro: -v o -vv, según el nivel de detalle que deseemos.dmesgdmesg | grep -i cpu; memoria: dmesg | grep -i memory; usb: dmesg | grep -i usb…/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.fdisk -lfdisk -l /dev/hdalpstat -p -dcat /etc/printcapcomando | lprcomando | lpr -P impresora
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.
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.
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.
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.
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
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.
| Comandos para la navegación por directorios y ficheros | |
| pwd | Directorio donde estamos |
| ls -a | Nos lo muestra todo todo todo de ese directorio |
| ls -l sudoers | Podemos ver propietario, grupo, permisos… de sudoers |
| file fi | Muestra información sobre el fichero 'fi' |
| cd | Volver a la home, igualmente esta queda representada como ~, es decir, es equivalente a cd ~ |
| whereis python | Indica donde está el ejecutable de 'python' |
| Comandos para archivos | |
| du -sh | Devuelve la cantidad de espacio usada por un archivo |
| rm -R directorio | Elimina todo el directorio de forma recursiva |
| cat file | Muestra el contenido de file |
| tac file | Muestra el contenido de file, pero la última línea la muestra como la primera, la penúltima como la segunda… |
| touch n | Crea un archivo vacío llamado 'n' |
| wc txt | Nos dá del fichero txt: nº de lineas, nº de palabras, nº de caracteres |
| chown root:root sudoers | Cambia el propietario y el grupo de sudoers a root |
| chmod 704 sudoers | Cambia los permisos de sudoers |
| mv perro gato | Renombra el archivo con el nombre perro a gato |
| ln -s origen destino | Crea un enlace simbólico |
| Comandos de información del sistema | |
| uname -r | Versión del kernel (también puedes usar kernelversion), -a muestra información extra |
| free | Muestra la memoria usada, para que la muestre en megabytes: -m |
| df -hT | Muestra la cantidad de HD usada |
| ps -aux | Ver los procesos activos |
| jobs | Ver trabajos |
| whoami | Devuelve el nombre del usuario logueado |
| hostname | Devuelve el nombre de la máquina |
| id usuario | Devuelve el UID, GID del usuario indicado. |
| fdisk -l | Se nos muestra un listado con la información actual de los discos insertados en el sistema. |
| date | Devuelve la fecha del sistema. |
| time | Devuelve la hora del sistema. |
| time ls | Devuelve el tiempo que tarda en ejecutarse un ls |
| history | Devuelve los últimos comando ejecutados. |
| top | Lista de procesos ordenados por consumo de cpu |
| lspci | Lista los dispositivos pci instalados en el ordenador |
| uptime | Indica el tiempo que lleva el sistema encendido |
| lsusb | Lista los puertos usb disponibles |
| Comandos de sistema | |
| kill 4% | Elimina el job 4. |
| kill -9 233 | Elimina el proceso 233 |
| fsck\reiserfsck | Comandos para comprobar el hd |
| shutdown [-h|-r] now | [-h: Apaga el sistema | -r: Reinicia el sistema] (aunque puedes usar halt o reboot directamente) |
| chroot directorio | Cambia el directorio raíz actual por el indicado. |
| sync | Sincroniza un dispositivo, útil antes de desmontar un pendrive. |
| lsof | grep /dev/hda1 | Muestra qué comando está utilizando /dev/hda1 |
| hdparm -w /dev/hda1 | Desbloquea una unidad, en este caso /dev/hda1 |
| chkconfig | Devuelve información del estado de los servicios. |
| dmesg | Devuelve los últimos mensajes de error del sistema (del último comando). |
| e2label | Asigna la etiqueta de una partición. |
| Comandos de sesión | |
| su | Conmutar a modo superusuario |
| login | Loguearse |
| exit | Acabar sesión |
| Comandos útiles | |
| clear | Borra la consola |
| ls > fi | Mete la salida del ls en un fichero 'fi' borrando su contenido |
| ls >> fi | Mete la salida del ls en un fichero 'fi' sin borrar su contenido |
| man -k init.d | Busca las páginas del manual que contienen 'ini.d' |
| Comandos para internet y redes | |
| wget httpfile | Descarga un archivo de una dirección http |
| w3m | Navegación http por consola |
| netstat | Muestra información sobre la red, puedes usar los parámetros: -putan |
| ip addr | Muestra información sobre la IP asignada. ip addr show eth1 Muestra la del dispositivo eth1 |
| ifconfig | Muestra información de las interfaces de red. |
| iwconfig | Configura una red inalámbrica. Indicas todas sus propiedades (ssid, clave…) y luego haces un commit. |
| iwlist | Si dispones de una interface de red wifi, este comando listará por esa interface las redes inalámbricas enconctradas. |
sudo sumount /dev/sda6 /mntsudo grub-install –root-directory=/mnt/boot /dev/sdasudo grub-install –root-directory=/mnt/boot /dev/sda –recheckmount "AI Techniques Examples.iso" /mnt -o loop umount /mnt
$ cat `find . -name *.java` | egrep ";" | wc -l
ls | sortls > fichero, añadiendo a lo que ya hay ls » ficheroctrl + rTAB.ls='ls-l'
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.
Pequeño router que viene con un OpenWrt instalado.
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
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
ssh://192.168.1.10 → Accede a server sshsmb://192.168.1.10 → Accede a server sambafish://192.168.1.10 → Accede a server ssh
Instalamos el paquete acpi: sudo apt-get install acpi
acpi -tacpi -Vwatch acpi -V-c: su -c “comando”-o codepage=cp850,iocharset=utf8,username=…, siendo codepage el code page del server (el windows) e iocharset el del que envia (linux)./proc/acpi/thermal_zone/<…>/temperature./var/log, por ejemplo: /var/log/apache2/error.log.& después de su llamada.ls -lah hará un ls pero mostrándolo guay, con los tamaños como megas, bytes…