5 comandos de Linux que comenzaré a usar

La administración del sistema Linux se describe mejor como la automatización de la administración del sistema Linux. A veces estas herramientas son tuyas y solo tuyas. Otras veces, las utilidades se comparten con otros miembros de su equipo, se envían o se ofrecen como un servicio. Proviene de la comprensión más informal de la filosofía UNIX: usar herramientas pequeñas especialmente diseñadas y unirlas de formas nuevas, poderosas e inesperadas. Estos pueden ser comandos complejos, que se convierten en scripts de una sola línea, que se convierten en scripts de varias líneas. Algunos guiones los guardará y compartirá, otros los olvidará en su próximo descanso para tomar café.

No puedo lanzar oraciones como sin recordar un momento en que no todo era Linux, o incluso cuando todos los sistemas Linux de los que podrías ser responsable eran la misma distribución. La única confianza que tengo en el futuro es que será diferente. Por lo tanto, algunos consejos históricos para la portabilidad, hacia adelante y hacia atrás, son necesarios, especialmente cuando no le cuestan nada.

Todo esto para decir que cuanto más sé de herramientas estándar, más poderosas se vuelven mis órdenes desechables, más rápido puedo anotarlas y más rápido resuelven mis clientes sus problemas reales.

Rara vez paso un mes sin aprender una nueva técnica o truco mientras navego por el estilo de otra persona en la línea de comandos. Los tiempos de COVID y el trabajo remoto hacen que esto sea más difícil, así que quiero agradecer a Ken Hess por presentarme o recordarme cinco comandos con los que no estaba muy familiarizado.

Índice

1 arco

Es muy común en los scripts de compilación tener que generar, por ejemplo, rutas que describen una plataforma, un entorno de compilación, una ruta del repositorio de yum, etc. Usualmente usaría uname -p para obtener el tipo de procesador, pero arch es más rápido de captar y autodocumentar. ¡Gracias!

GitHub tiene mucho código en forma de:

ARCH=$(uname -m)

Todo esto podría ser reemplazado por:

ARCH=$(arch)

2.arpa nombre

La semana pasada estaba programando una API para crear registros PTR. Estaba en una función de Ansible para un IPAM relativamente conocido, pero si tuviera que hacer una importación masiva con herramientas DNS genéricas, usaría nsupdate. Este comando sería muy conveniente. Ejemplo de código rápido:

[[email protected] ~]$ nsupdate <<EOF
update add `arpaname $ipaddr` 86400 IN PTR $(hostname -f).
send
EOF

Sería bastante fácil de usar en un ciclo cuando tengo un montón de nuevos dispositivos IoT, máquinas virtuales o una flota de ordenadores portátiles para instalar y ya tengo sus nombres de host/IP en un archivo CSV simple o los generé de alguna otra manera. .

3.BC

Bash no puede realizar cálculos de coma flotante, por lo que se necesitan herramientas adicionales para la creación de secuencias de comandos. Dicho esto, bc --expression me hizo pensar en cómo escribir dc, que por supuesto es posible.

Olvidaré los detalles antes de usarlo, pero siempre recordaré ese "¡ah-ha!" momento que dc se puede guionizar.

Si bien no quiero sonar como un profesor de matemáticas de secundaria, hay algunos entornos en los que no tienes tu superordenador de mano a mano o incluso acceso a la calculadora gnome. O simplemente quieres grabar los cinco segundos y usar el interactivo dc sin quitar las manos del teclado para usar el mouse o el teléfono.

4.dumpkeys

Uno de mis días anuales de voluntariado es hacer los resultados de una carrera de relevos. Después de años de optimizar lo más tonto que funciona, ahora se trata principalmente de la entrada de datos de tiempo. Con un ordenador portátil en mi regazo sentado en un automóvil, es lo opuesto a la ergonomía, pero al menos podría hacerlo con una mano mapeando el teclado numérico. . un :. En X11, xmodmap fue la herramienta de este mapeo. Mientras apenas un bola de boliche, Canadá continúa progresando en la interacción hombre-máquina.

Ahorrar 10 minutos al año no es una razón para aprender una nueva herramienta (¿o sí? - nota del editor). La asignación de teclas podría marcar la diferencia entre poder escribir o no. Tal vez en la mayoría de los lugares del mundo el teclado US-104 no sea estándar y/o el idioma local no sea el inglés sin acento.

dumpkeys tiene un amigo cercano llamado loadkeys. Juntos, esto hace que las consolas queden inutilizables para su uso, y todos los instaladores de distribuciones de Linux durante décadas han confiado en ellas.

5.nombre

Presuntamente /proc es considerado por los desarrolladores del kernel de Linux como estable, y concedo /proc/version es probablemente muy estable, pero no confío mucho en ellos. A veces uso sistemas que no solo tienen Linux /proc, en todo caso. el uname El comando, que forma parte de POSIX, funcionará en cualquier lugar.

Podría encontrar este comando inútil ahora porque ahora sé arch, pero sigue siendo un comando goto solo para verificar dónde estoy. Y abundan los ejemplos de guiones. Un ejemplo aleatorio de Fedora /etc/profile.d/qt.sh:

case `uname -m' in
   x86_64 | ia64 | s390x | ppc64 | ppc64le)
      QT_PREFIXES="/usr/lib64/qt-3.3 /usr/lib/qt-3.3" ;;
   * )
      QT_PREFIXES="/usr/lib/qt-3.3 /usr/lib64/qt-3.3" ;;
esac

Conclusión

¿Son estas herramientas revolucionarias? Para nada. Lo que son son bases sólidas y ubicuas para el trabajo diario de millones de personas, y seguirán siéndolo en las próximas décadas. Esto los convierte en utilidades para tener en cuenta la próxima vez que se siente en un sistema Linux.

Artículos de interés

Subir