Autor: Sudo Su

  • Seis comandos útiles de Vim – Linux

    En esta entrada, vamos a explorar seis comandos útiles de Vim, un potente editor de texto que se encuentra ampliamente disponible en la mayoría de las distribuciones de Linux. Vim es conocido por su flexibilidad y capacidad para aumentar la eficiencia de los usuarios. Empecemos!

    1. Modo de edición

    El primer paso para aprovechar al máximo Vim es entender cómo entrar en el modo de edición. Por defecto, Vim se inicia en el modo de navegación (comando) y para editar un archivo, debes presionar la tecla ‘i’ para entrar en el modo de edición. Una vez en este modo, podrás modificar el contenido del archivo como lo harías en cualquier otro editor de texto.

    Ejemplo:

    $ vim archivo.txt
    Presiona 'i' para entrar en el modo de edición.
    Comienza a editar el contenido del archivo.
    Presiona 'Esc' para salir del modo de edición.

    2. Guardar y salir

    Una vez que hayas terminado de editar un archivo en Vim, es importante guardar tus cambios y salir correctamente. Puedes lograr esto utilizando el siguiente comando:

    :wq

    Este comando guarda los cambios en el archivo actual y lo cierra. Si deseas salir sin guardar los cambios, puedes usar:

    :q!

    3. Deshacer y rehacer cambios

    A veces cometemos errores mientras editamos un archivo y necesitamos deshacer o rehacer cambios específicos. En Vim, puedes hacerlo utilizando los siguientes comandos:

    u - Deshacer el último cambio.
    Ctrl + r - Rehacer el último cambio deshecho.

    Ejemplo:

    $ vim archivo.txt
    Realiza varios cambios en el archivo.
    Presiona 'u' para deshacer el último cambio.
    Presiona 'Ctrl + r' para rehacer el último cambio deshecho.

    4. Copiar, cortar y pegar

    Vim también te permite copiar, cortar y pegar texto de manera eficiente. Estos son los comandos que puedes usar:

    yy - Copiar la línea actual.
    dd - Cortar la línea actual.
    p - Pegar el texto copiado o cortado después de la línea actual.

    Ejemplo:

    $ vim archivo.txt
    Coloca el cursor en la línea que deseas copiar o cortar.
    Presiona 'yy' para copiar la línea.
    Presiona 'dd' para cortar la línea.
    Mueve el cursor a la posición deseada.
    Presiona 'p' para pegar el texto.

    5. Cambiar texto en múltiples líneas

    El comando “:%s/old/new/g” te permite reemplazar una cadena de texto específica en todas las líneas del archivo. Veamos un ejemplo:

    Supongamos que tenemos el siguiente texto en un archivo:

    Hola, esto es una prueba.
    Hola, esto es otro ejemplo.
    Hola, esto es un tercero.

    Si queremos reemplazar todas las instancias de “Hola” con “Saludos”, podemos ejecutar el siguiente comando en Vim:

    :%s/Hola/Saludos/g

    Después de ejecutar el comando, el archivo se actualizará de la siguiente manera:

    Saludos, esto es una prueba.
    Saludos, esto es otro ejemplo.
    Saludos, esto es un tercero.

    6. Moverse rápidamente entre palabras

    Vim proporciona una forma eficiente de moverse rápidamente entre palabras utilizando los comandos “w” y “b”. El comando “w” se utiliza para mover el cursor a la siguiente palabra, mientras que “b” lo mueve hacia atrás. Veamos un ejemplo:

    Supongamos que tenemos el siguiente texto en un archivo:

    Este es un ejemplo de texto para probar el movimiento entre palabras.

    Si queremos ir al comienzo de la palabra “ejemplo”, podemos presionar “w” tres veces:

    Este es un ejemplo de texto para probar el movimiento entre palabras.
               ^

    Si queremos movernos a la palabra “es” anterior a “ejemplo”, podemos presionar “b” dos veces:

    Este es un ejemplo de texto para probar el movimiento entre palabras.
         ^

    Estos comandos pueden ayudarte a navegar rápidamente por el texto y realizar ediciones precisas.

  • Ejemplos de uso del comando find – Linux

    El comando “find” es una herramienta del sistema operativo Linux que te permite buscar archivos y directorios según diferentes criterios. Vamos a ver algunos ejemplos prácticos que pueden resultarnos útiles.

    Buscar archivo por nombre

    El uso más común del comando “find” es buscar archivos y directorios por su nombre. Por ejemplo si queremos buscar un archivo con extensión “.txt” en el directorio actual y subdirectorios, se puede ejecutar el siguiente comando:

    find . -name "*.txt"

    Ejemplo de resultado:

    ./documents/file1.txt
    ./documents/file2.txt
    ./pictures/notes.txt

    Este comando buscará todos los archivos con extensión “.txt” y mostrará los resultados con su ruta relativa.

    Si nos acordamos una parte del nombre del archivo, podemos utilizarlo para restringir la búsqueda. Por ejemplo si sabemos que el archivo que buscamos contiene la palabra “file”, podemos realizar la siguiente búsqueda:

    find . -name "*file*.txt"

    Ejemplo de resultado:

    ./documents/file1.txt
    ./documents/file2.txt

    Búsqueda por tipo de archivo

    Además de buscar por nombre, “find” te permite buscar archivos por su tipo. Por ejemplo, si deseas encontrar todos los archivos de tipo “documento” en tu sistema, puedes utilizar la siguiente comando:

    find / -type f -name "*.odt" -o -name "*.pdf"

    Ejemplo de resultado:

    /home/usuario/documentos/reporte.odt
    /home/usuario/documentos/manual.pdf

    Este comando buscará todos los archivos con extensión “.odt” o “.pdf” en todo el sistema.

    Búsqueda por tamaño de archivo

    El comando “find” puede utilizarse también si necesitas encontrar archivos que cumplan con ciertas restricciones de tamaño Por ejemplo, si buscamos los archivos que sean más grandes que 1 MB en un directorio específico, puedes ejecutar el siguiente comando:

    find /path/al/directorio -size +1M

    Ejemplo de resultado:

    /path/al/directorio/archivo1.jpg
    /path/al/directorio/video2.mp4

    Este comando buscará todos los archivos que tengan un tamaño mayor a 1 MB en el directorio especificado.

    Búsqueda y ejecución de comandos en archivos encontrados

    Una característica del comando “find” es la capacidad de realizar acciones en los archivos encontrados. Por ejemplo, si deseas buscar todos los archivos con extensión “.log” y borrarlos, se puede combinar “find” con el comando “rm” de la siguiente manera:

    find /path/al/directorio -name "*.log" -exec rm -v {} \;

    Ejemplo de resultado:

    '/path/al/directorio/log1.log' borrado
    '/path/al/directorio/log2.log' borrado

    Este comando buscará todos los archivos con extensión “.log” en el directorio especificado y ejecutará el comando “rm” para borrarlos.

  • Ejemplos del comando rsync – Linux

    El comando “rsync” te permite sincronizar y transferir archivos y directorios de manera eficiente. Vamos a ver ejemplos prácticos de uso del comando “rsync” que te ayudarán a realizar copias de seguridad, transferencias locales y remotas, y mantener tus archivos y directorios sincronizados.

    Copia local de un directorio

    Si deseas realizar una copia de seguridad de un directorio en otro lugar de tu sistema de archivos, “rsync” puede simplificar esta tarea. Por ejemplo, si deseas hacer una copia de seguridad del directorio “documentos” en tu directorio personal, puedes ejecutar el siguiente comando:

    rsync -av /path/a/documentos/ /home/usuario/backup/documentos/

    Parámetros utilizados:

    • “-a” (archive): Preserva atributos de archivos y directorios durante la copia, incluyendo permisos, fechas y propietarios.
    • “-v” (verbose): Muestra información detallada durante la ejecución del comando.

    Sincronización de directorios locales

    El comando “rsync” te puede ayudar cuando necesites mantener dos directorios locales sincronizados. Por ejemplo, si deseas sincronizar el contenido del directorio “source” con el directorio “destino”, puedes usar el siguiente comando:

    rsync -av --delete /path/to/source/ /path/to/destination/

    Parámetros utilizados:

    • “–delete”: Elimina los archivos y directorios en el directorio de destino que no existen en el directorio de origen.

    Transferencia de archivos a través de SSH

    Con “rsync”, también puedes transferir archivos y directorios de forma segura a través de SSH. Por ejemplo, si deseas copiar un archivo desde tu máquina local a un servidor remoto, puedes utilizar el siguiente comando:

    rsync -avz -e ssh /path/a/local/archivo usuario@remoto:/path/a/destino/

    Parámetros utilizados:

    • “-z” (compress): Comprime los datos durante la transferencia para mejorar la eficiencia en redes lentas.
    • “-e” (rsh): Especifica el programa a utilizar para establecer la conexión SSH.

    Excluir archivos y directorios en la sincronización

    En ocasiones, es posible que desees excluir ciertos archivos o directorios durante la sincronización. Para lograr esto, puedes utilizar la opción “–exclude” con “rsync”. Por ejemplo, si deseas sincronizar un directorio, pero excluir todos los archivos con extensión “.log”, puedes ejecutar el siguiente comando:

    rsync -av --exclude "*.log" /path/a/origen/ /path/a/destino/

    Parámetros utilizados:

    • “–exclude”: Especifica patrones de archivos o directorios a excluir durante la sincronización.

    Realizar una vista previa de la sincronización

    Antes de realizar una sincronización real, puedes usar la opción “–dry-run” con “rsync” para obtener una vista previa de los cambios que se realizarán sin realizar ninguna acción real. Por ejemplo:

    rsync -av --dry-run /path/a/origen/ /path/a/destino/

    Parámetros utilizados:

    • “–dry-run”: Muestra una lista de los cambios que se realizarían sin ejecutar ninguna acción real.

  • Comprimir y descomprimir con el comando tar – Linux

    A veces no recordamos o no sabemos cómo comprimir o descomprimir con el comando tar de Linux. Aquí tenemos ejemplos:

    Creación de un archivo comprimido

    Comprimir un directorio en un archivo .tar.gz:

    tar -czvf backup.tar.gz directorio_a_comprimir/

    Parámetros utilizados:

    • “-c”: Crea un nuevo archivo comprimido.
    • “-z”: Utiliza la compresión gzip.
    • “-v”: Muestra el progreso y los detalles de los archivos procesados.
    • “-f backup.tar.gz”: Especifica el nombre del archivo de salida.

    Extracción de archivos de un archivo comprimido

    Para extraer los archivos de un archivo comprimido, puedes utilizar el comando “tar”. Por ejemplo, si tienes un archivo comprimido llamado “backup.tar.gz” y deseas extraer su contenido en un directorio llamado “restaurar”, puedes ejecutar el siguiente comando:

    tar -xzvf backup.tar.gz -C restaurar

    Parámetros utilizados:

    • “-x”: Extrae los archivos de un archivo comprimido.
    • “-z”: Utiliza la compresión gzip.
    • “-v”: Muestra el progreso y los detalles de los archivos procesados.
    • “-f backup.tar.gz”: Especifica el archivo comprimido de entrada.
    • “-C restaurar”: Especifica el directorio de destino para la extracción.

    Este comando descomprimirá el archivo comprimido “backup.tar.gz” y colocará su contenido en el directorio “restaurar”.

    Agregar archivos a un archivo comprimido existente

    Si deseas agregar archivos adicionales a un archivo comprimido existente, puedes utilizar el comando “tar” con la opción “-r”. Por ejemplo, si tienes un archivo comprimido llamado “backup.tar.gz” y deseas agregar un archivo llamado “nuevo_archivo.txt” al archivo comprimido, puedes ejecutar el siguiente comando:

    tar -rzvf backup.tar.gz nuevo_archivo.txt

    Parámetros utilizados:

    • “-r”: Agrega archivos al archivo comprimido existente.
    • “-z”: Utiliza la compresión gzip.
    • “-v”: Muestra el progreso y los detalles de los archivos procesados.
    • “-f backup.tar.gz”: Especifica el archivo comprimido de entrada.
    • “nuevo_archivo.txt”: Especifica el archivo a agregar.

    Este comando añadirá el archivo “nuevo_archivo.txt” al archivo comprimido “backup.tar.gz” sin alterar el contenido existente.

    Extracción selectiva de archivos de un archivo comprimido

    Si solo necesitas extraer archivos selectivos de un archivo comprimido, puedes utilizar el comando “tar” con el patrón de archivo deseado. Por ejemplo, si tienes un archivo comprimido llamado “backup.tar.gz” y deseas extraer solo los archivos que tienen la extensión “.txt”, puedes ejecutar el siguiente comando:

    tar -xzvf backup.tar.gz '*.txt'

    Parámetros utilizados:

    • “-x”: Extrae los archivos de un archivo comprimido.
    • “-z”: Utiliza la compresión gzip.
    • “-v”: Muestra el progreso y los detalles de los archivos procesados.
    • “-f backup.tar.gz”: Especifica el archivo comprimido de entrada.
    • “‘*.txt’”: Especifica el patrón de archivo deseado.

    Este comando extraerá solo los archivos que coinciden con el patrón “*.txt” del archivo comprimido “backup.tar.gz”.