Utilidades GNU
From JavierValcarce.Eu
Esta página es un recetario para con algunas de los más útiles programas de GNU en la línea de órdenes, disponibles para UNIX y Windows (ver GNUWin32 o Cygwin por ejemplo)
Table of Contents |
wget
wget http://domain.com/file | Descargar el fichero file |
wget -c http://domain.com/file | Continua una descarga interrumpida si ya hay un fichero llamado file en el directorio. Sólo funciona si el servidor web está configurado para permitir el retomar descargas incompletas |
wput
wput sube ficheros a un servidor ftp, es decir, hace justo lo contrario que wget
wput file ftp://user:passwor@domain.com/directory/ | Sube el fichero file al sitio indicado por la URL |
Cuidado, cualquiera puede ver el nombre de usuario y contraseña simplemente haciendo ps -a, para remediarlo podemos escribir estos datos en un fichero de configuración (leer el manual)
scp
Copia ficheros de forma remota a través de una conexión SSH (cifrada). Debemos tener una cuenta en la máquina origen.
# scp user@host:/path/to/file .
A continuación nos preguntará la contraseña.
rsync
rsync --part --rsh=ssh user@foo.domain.com:/path/to/file . | Descarga el fichero file de manera inteligente: sólo descarga las partes del fichero que hayan cambiado. Se conecta a la máquina remota por SSH y por tanto debemos tener una cuenta (nombre de usuario/contraseña) en dicha máquina. Antes de descargar el fichero nos preguntará la contraseña
|
touch
Actualiza la fecha y la hora de modificación de una fichero. Si este no existe entonces lo crea vacío.
# touch fichero
telnet/netcat
Conexión TCP de terminal remoto, aunque ha sido sustituido por SSH sigue siendo muy útil para depurar protocolos con mensajes de texto
# telnet IP port
Existe una utilidad todavía mejor para esto y es netcat, la "navaja suiza de las redes". POR HACER.
dd
Copia bloques de bits entre dispositivos de bloque.
dd if=/dev/fd0 of=fd.img count=1440 bs=1k | Copia 1440 bloques de 1k de un disquete (el disquete entero) a un fichero que es la imagen del disquete |
dd bs=1 if=javi128.bmp of=javi128 skip=54 | Copia un fichero en otro saltando los primeros 54 bytes. En este ejemplo concreto le quita la cabecera (54 bytes) a un fichero BMP |
screen
Sirve para conectar un proceso con un terminal especial que podemos pasar a segundo plano si queremos (con tty no se puede). Es útil para dejar programas en segundo plano al cerrar y salir de una sesión SSH
# screen <programa> ... Ahora pulsamos [C-a d] -> el terminal screen pasa a segundo plano
C-a ? | Ayuda |
C-a d | Pone el terminal en segundo plano. El proceso en ejecución en el terminal no se detiene sino que sigue ejecutándose como si estuviese en primer plano (pero no lo está). Si estamos conectados a través de SSH, ahora podemos cerrar la conexión sin temor a que el programa se detenga o se termine |
screen -r | Recupera la última sesión que pusimos en segundo plano |
C-a C-\ | Forzar la salida (no recomendado). Para salir normalmente simplemente cierra el programa que se está ejecutando en el terminal de screen
|
C-a " | Lista las ventanas abiertas |
También lo podemos usar como un terminal básico para comunicarnos con el puerto serie, p. ej:
# screen /dev/ttyS0 9600
o bien, si el puerto serie es virtual (chip FTDI, el módulo ftdi.ko ya está presente en Linux 2.6.10+)
# screen /dev/tty.usbserial-5B1 9600