8 errores tipográficos que realmente debe evitar en Linux

Redpixel.pl/Shutterstock

Vuelva a verificar que haya escrito su comando correctamente antes de presionar "Enter". En Linux, un error tipográfico puede tener repercusiones destructivas. Use la función de completar con tabulación para autocompletar la mayor cantidad posible de entradas de línea de comandos. Los alias para comandos largos y complicados también son una gran idea.

La línea de comandos de Linux ofrece un gran poder. El problema es que el uso correcto de ese poder depende de la precisión de tu escritura. Aquí hay ocho errores tipográficos que nunca querrá cometer.

Índice de contenidos
  1. La línea de comandos de Linux
  2. 1. No olvides la -a
  3. 2. Uso del identificador de unidad incorrecto con dd
  4. 3. Uso del identificador de unidad incorrecto con mkfs
  5. 4. No elimine su archivo crontab
  6. 5. Repetición de la historia
  7. 6. La calamidad de los espacios
  8. 7. Usar > en lugar de >>
  9. 8. Redirección en la dirección equivocada
  10. Cómo evitar errores tipográficos en la línea de comandos

La línea de comandos de Linux

La línea de comandos de Linux es un portal a un gran poder, pero un error tipográfico es todo lo que se necesita para que ese poder se vuelva contra usted. Todos hemos oído hablar del comando que nunca debes ejecutar. De lo que estamos hablando aquí son los comandos que desea ejecutar, pero donde un desliz puede significar un desastre.

Cuando presiona "Enter", todo lo que ha escrito es procesado por el shell. Los alias y las variables se expanden. Se identifican comandos, opciones y parámetros. Esto se llama análisis. El siguiente paso entrega su entrada analizada a los comandos que llevarán a cabo sus instrucciones.

Si comete un error al escribir sus comandos, podría quedar atrapado como un error de sintaxis. Pero si su error crea otra línea de comando válida, se ejecutará.

Un simple error tipográfico puede ser verdaderamente destructivo. El nivel de destrucción depende del comando y del error. Podrías perder tiempo. Es posible que pierda un archivo. Puede perder un sistema de archivos completo.

RELACIONADO: ¿Qué es Bash Shell y por qué es tan importante para Linux?

1. No olvides la -a

Es posible que deba agregar a alguien a un grupo para permitirle, por ejemplo, usar una pieza de software en particular. Por ejemplo, VirtualBox requiere que los usuarios formen parte del grupo "vboxusers". Podemos hacer eso con usermod.

la groups listas de comandos a grupos de usuarios.

groups

Listado de grupos de un usuario con el comando de grupos

Agregaremos usuario dave a un nuevo grupo. la -a (añadir) agrega el nuevo grupo a la lista de grupos existentes en los que se encuentra el usuario. la -G (grupos) opción identifica el grupo.

sudo usermod -a -G vboxusers dave

Agregar un usuario a un nuevo grupo, usando el comando usermod

El nuevo grupo se ve después de que el usuario inicia y cierra sesión.

groups

El grupo vboxusers que se muestra en la lista de grupos en los que se encuentra este usuario

Ahora está en el grupo "vboxusers". Sin embargo, si olvida utilizar el -a (añadir), se eliminan todos los grupos existentes del usuario. El único grupo en el que estarán es el grupo nuevo.

Este es el incorrecto dominio:

sudo usermod -G vboxusers dave

Agregar un usuario a un grupo sin usar la opción -a agregar

La próxima vez que inicien sesión, descubrirán que solo están en un grupo.

groups

El usuario ahora está en un solo grupo.

Si tienes un único usuario configurado, y le haces esto, tendrás serios problemas. Por un lado, el usuario ya no es miembro del grupo "sudo", por lo que no puede usar sudo para empezar a corregir las cosas.

RELACIONADO: Agregar un usuario a un grupo (o segundo grupo) en Linux

2. Uso del identificador de unidad incorrecto con dd

la dd El comando escribe bloques de datos en los sistemas de archivos. A menudo se usa para escribir imágenes ISO en dispositivos de memoria USB.

El esquema de nombres de Linux para dispositivos de almacenamiento utiliza una sola letra para la identificación. El primer disco duro se llama “/dev/sda”, el segundo es “/dev/sdb”, el tercero es “/dev/sdc”, y así sucesivamente. Las particiones se identifican por número. La primera partición en el primer disco duro es “/dev/sda1”, la segunda es “/dev/sda2”, y así sucesivamente.

Si graba una imagen en una memoria USB, necesita conocer el identificador de unidad de la memoria USB. Lo encontraremos por tubería lsblk atraverso grepbuscando entradas con "sd" en ellas.

lsblk | grep sd

Usando grep para buscar líneas con "sd" en ellas, en la salida del comando lsblk

Podemos ver que el disco duro “/dev/sda” es un disco de 32 GB con tres particiones. Una de las particiones es la partición “/boot”, y la partición “/dev/sda3” está montada en “/”, que es la raíz del sistema de archivos.

El disco duro “/dev/sdb” se informa como una unidad de 7,5 GB. Está montado en "/media/dave/Pink". Claramente, la unidad "/dev/sda" es el disco duro principal de esta computadora y "/dev/sdb" es la memoria USB.

El comando para escribir un archivo ISO que se encuentra en el directorio "~/Descargas" en nuestra memoria USB es:

sudo dd bs=4M if=Downloads/distro-image.iso of=/dev/sdb conv=fdatasync status=progress

Escribir una imagen en una memoria USB con el comando dd

Se nos solicita nuestra contraseña, luego dd se sumerge en la acción. No hay "¿Estás seguro?" advertencias o posibilidades de retroceder. La escritura comienza inmediatamente.

La pantalla de progreso dd mientras escribe una imagen en una memoria USB

Sin embargo, si escribe una letra incorrecta para el identificador de la unidad y coincide con un disco duro existente, sobrescribirá esa unidad en lugar de la tarjeta de memoria.

Este es el incorrecto dominio:

sudo dd bs=4M if=Downloads/distro-image.iso of=/dev/sda conv=fdatasync status=progress

Escribir por error una imagen en el disco duro principal termina con un mensaje de error

Le dijimos dd para usar “/dev/sda“, así fue. La acción de escritura es mucho más rápida, pero termina con una advertencia. Acabas de destrozar tu instalación de Linux.

Verifique y vuelva a verificar los identificadores de unidades antes de presionar "Enter".

RELACIONADO: Cómo grabar un archivo ISO en una unidad USB en Linux

3. Uso del identificador de unidad incorrecto con mkfs

Hay otros comandos que toman identificadores de unidades como parte de su línea de comandos, como el mkfs herramientas. Estas unidades de formato crean sistemas de archivos en particiones.

En esta computadora tenemos una unidad de 25 GB y una unidad de 10 GB.

La salida de lsblk canalizada a través de grep, mostrando los discos duros en una computadora

Si queremos crear un sistema de archivos Ext4 en la primera partición del disco de 10 GB, usaríamos estos comandos.

sudo umount /dev/sdb1
sudo mkfs.ext4 /dev/sdb1

Creación de un sistema de archivos ext4 en una memoria USB

Pero si cometemos el error de usar una "a" en lugar de una "b" en el identificador de la unidad, eliminaremos una de las particiones en la unidad de 25 GB y haremos que nuestra computadora no pueda arrancar.

Este es el incorrecto dominio:

sudo umount /dev/sda1
sudo mkfs.ext4 /dev/sda1

Formatear por error el disco principal de una computadora

Esa pequeña letra tiene un gran impacto, así que asegúrese de estar presionando el disco correcto.

RELACIONADO: Cómo usar el comando mkfs en Linux

4. No elimine su archivo crontab

la cron daemon ejecuta tareas en momentos predeterminados para usted. Toma su configuración de un crontab expediente. Cada usuario, incluido el root, puede tener un crontab expediente. Para editar tu crontabusa este comando:

crontab -e

El comando para editar su archivo crontab: crontab -e

la crontab archivo se abre en un editor. Puede realizar cambios y agregar nuevos comandos.

Un archivo crontab abierto en un editor

Pero si escribe mal el comando y presiona "r" en lugar de "e", eliminará, como en Eliminar-su crontab expediente.

Este es el incorrecto dominio:

crontab -r

El comando que elimina su archivo crontab: crontab -r

La próxima vez que utilice el crontab -e comando, verá un archivo vacío predeterminado.

Este es un error fácil de cometer, porque "e" y "r" están uno al lado del otro en la mayoría de los teclados. Reconstruyendo un complicado crontab archivo no es divertido.

RELACIONADO: ¿Qué es un trabajo cron y cómo se usa?

5. Repetición de la historia

Utilizando el history El comando es excelente cuando intenta reducir las pulsaciones de teclas y ahorrar tiempo. Si puede sacar un comando extenso de la historia, gana velocidad y precisión. Siempre que seleccione el comando correcto de su historial.

la history comando enumera sus comandos anteriores en la ventana del terminal. Están numerados. Para reutilizar un comando, preceda su número con un signo de exclamación "!“, y presiona la tecla “Enter”.

history

Supongamos que hemos clonado un repositorio de Git, nos hemos metido en un lío con él y lo hemos eliminado. Necesitamos clonarlo una vez más. Al desplazarnos por la ventana de la terminal, pronto podemos detectar el git clone dominio. Podemos volver a ejecutarlo escribiendo:

!60

Pero si solo miramos la pantalla y leímos mal el número, es posible que elijamos el siguiente número por error:

!61

Eso ejecuta el siguiente comando en la lista, rm *. Eso elimina todos los archivos en su directorio actual.

También puede utilizar el "!” signo de exclamación con una cadena de texto. El primer comando coincidente se ejecuta automáticamente. No se muestra para que compruebes que es el que estabas pensando, se ejecuta inmediatamente.

Imagine el escenario en el que tiene un script llamado "restart.sh". Este script tiene por defecto un conjunto de archivos de configuración para algún software que estés escribiendo. Periódicamente, a medida que desarrolla y prueba, necesita hacer borrón y cuenta nueva, por lo que llama a su script.

Este comando debería ser suficiente para encontrar y hacer coincidir el comando en su historial y ejecutarlo.

!re

Pero si has usado el reboot comando desde la última vez que usó su script, es el reboot comando que se encuentra y se ejecuta inmediatamente.

El comando rm * se está ejecutando por error

En la computadora de su hogar de un solo usuario, probablemente solo sea una molestia. En un servidor compartido, también es una molestia para muchas otras personas.

RELACIONADO: Cómo usar el comando history en Linux

6. La calamidad de los espacios

Los espacios en los nombres de archivo y las rutas de directorio pueden causar estragos. Es por eso que siempre deben estar escapados o citados.

Los problemas con los espacios se pueden evitar utilizando la función de completar con tabulación. Presiona la tecla "Tab" cuando estés escribiendo un nombre de archivo o ruta de directorio y el shell completará automáticamente la mayor parte de la ruta o nombre de archivo que pueda. Es posible que deba escribir una letra para diferenciar entre el archivo que desea y cualquier otro archivo que comparta parte del mismo nombre, pero otra vez que presione la tecla "Tab" completará el resto del nombre del archivo por usted.

Esto ahorra pulsaciones de teclas, evita que se introduzcan espacios en dos de los errores tipográficos y evita correctamente los espacios legítimos para que no causen problemas.

Digamos que tenemos un directorio de "Desarrollo" que contiene otros dos directorios, "geocodificador" y "bin". También hay un directorio "bin" dentro del directorio "geocoder".

Para eliminar los archivos en el directorio "geocoder/bin" y eliminar el directorio, usaría este comando.

rm -r geocoder/bin

Eliminación del directorio geocoder/bin

Ahora imagina que, sin darte cuenta, agregaste un espacio después de "geocoder/", como este.

Este es el incorrecto dominio:

rm -r geocoder/ bin

Eliminar por error los directorios geocoder y bin

Auge. El directorio "Desarrollo" ahora está vacío. Los directorios "Desarrollo/geocodificador", "Desarrollo/geocodificador/bin" y "Desarrollo/bin" se han eliminado por completo.

Recuerde, la finalización de pestañas es su amigo.

RELACIONADO: Use la opción de completar con tabulación para escribir comandos más rápido en cualquier sistema operativo

7. Usar > en lugar de >>

La redirección envía la salida de un proceso a un archivo. Usamos el signo mayor que “>” para capturar la salida de un proceso. Si el archivo existe, se vacía primero.

Digamos que estamos investigando una pérdida de memoria. Tenemos un script llamado "memlog.sh". Muestra estadísticas de memoria una vez por segundo. Vamos a redirigir eso a un archivo llamado "memory.txt", para un análisis posterior.

memlog.sh > memory.txt
head memory.txt

Capturar y mostrar la salida del script memlog.sh

Al día siguiente, queremos continuar con nuestra investigación y reiniciamos el guión. Esta vez tenemos que usar dos signos mayores que “>>para que los nuevos datos sean adjunto al archivo

memlog.sh >> memory.txt

Agregar nuevos datos al final de un archivo existente

Si usamos un solo signo mayor que “>”, perderemos los datos de ayer porque el archivo se vacía primero.

RELACIONADO: ¿Qué son stdin, stdout y stderr en Linux?

8. Redirección en la dirección equivocada

La redirección puede usar el contenido de un archivo como entrada a un programa.

Tenemos un archivo llamado "placenames.sql" que queremos importar en sqlite3. El archivo de esquema describe cómo volver a crear las tablas de la base de datos. También contiene los datos que queremos almacenar en la base de datos. Con 1,3 GB y más de 11 millones de líneas, es un archivo grande.

ls -hl placenames.sql
wc placenames.sql

Comprobando el tamaño de un archivo con ls y wc

Podemos crear una nueva base de datos llamada “places.sqlite3” con este comando.

sqlite3 places.sqlite3 < placenames.sql

Importación de un esquema de un archivo en sqlite3

La mayoría de las veces, cuando estamos redirigiendo, usamos el carácter ">". Debe concentrarse para evitar escribir “>” por costumbre. Si lo hace, cualquier salida sqlite3 genera se escribe en su archivo de esquema, borrándolo.

Este es el incorrecto dominio:

sqlite3 places.sqlite3 > placenames.sql

Redirigir por error a un archivo de esquema desde sqlite3

Nuestro archivo de esquema ha sido destruido, sobrescrito por el mensaje de bienvenida del sqlite3 caparazón.

cat placenames.sql

El archivo de esquema sobrescrito que contiene el mensaje de bienvenida de sqlite3

Adiós, 1,3 GB de datos.

Cómo evitar errores tipográficos en la línea de comandos

Hay buenos hábitos que puede adoptar para ayudar a evitar cometer este tipo de errores.

Utilice la función de completar con tabulación siempre que sea posible. Evitará problemas con espacios en rutas de directorio y nombres de archivo.

Cree sus propios alias breves y fáciles de recordar para los comandos largos y complicados que necesita usar ocasionalmente. De esa manera, no se equivocará al usar opciones y parámetros incorrectos.

Es notoriamente difícil revisar su propia escritura, pero eso es lo que debe hacer en la línea de comando. Lee lo que realmente hay. No lo mires y pienses que dice lo que quisiste escribir. ¿Qué dice realmente? Porque eso es lo que realmente va a hacer.

RELACIONADO: 8 comandos mortales que nunca deberías ejecutar en Linux

Descubre más contenido

Subir Change privacy settings