LinuxParty
Tengo este libro - una edición en español del Manual de Stephen Coffin, Unix System V Release 4: The Complete Reference. Puede abrirlo en cualquiera de sus 700 páginas y apostar un euro que los comandos de la página funcionará en cualquier Linux moderno. Bueno, excepto donde están involucrados teletipos y almacenamiento de cintas.
Dicho así, puede pensar que la línea de comandos *NIX no ha cambiado mucho desde principios de los noventa. Esto no es enteramente cierto.
Tomemos por ejemplo la colección moreutils. Puede instalarlo en la mayoría de las distribuciones con su administrador de paquetes normal. En Ubuntu y distribuciones basadas en Ubuntu, no
sudo apt install moreutils
En Debian, lo siguiente hará el truco:
su apt-get install moreutils
En Fedora, puedes hacer lo siguiente:
yum install moreutils
OpenSUSE requiere un paso más, al tener que añadir un repositorio específico, o simplemente podría visitar de búsqueda de paquetes en línea de openSUSE o utilizar la herramienta gráfica "Haga 1 clic en Instalar Servicio.Nuevas herramientas brillantes"
Moreutils le proporciona un conjunto de nuevas herramientas que no forman parte del conjunto estándar de Linux, pero probablemente debería serlo. Por ejemplo, vidir proporciona una interfaz para modificar editor de archivos y directorios. A pesar de su nombre, vidir usa el editor de línea de comandos por defecto, así que si requiere el uso del vi (m), seguro, mostrará una interfaz vim (Figura 1); Pero si tienes nano o emacs configurado, mostrará nano o emacs interfaz (Figura 2).
Figura 1: La utilidad vidir mostrará la interfaz de su editor de shell por defecto, ya sea vi (m) ...
Figura 2: ... o nano, o algo más utilizado con permiso.
Puede editar directorios completos con:
vidir directoryname
O simplemente un subconjunto de archivos con, por ejemplo:
find Pictures -iname "*.png" | vidir -
Observe el "-". Esto le dice a vidir que tome su entrada de un tubo.
Utilice sus combinaciones de teclas normales para modificar sus directorios y archivos. Si está utilizando una interfaz -como vi, Para modificar nombres de directorio y archivos; pulse d [número] d para borrar archivos o directorios - Vidir en cuenta que tiene una característica de seguridad incorporada, la cual no le permitirá borrar los directorios no vacíos; pulse u para deshacer los cambios, y así sucesivamente.
Empapar todo: Esponja (Sponge)
De acuerdo a su hombre página, sponge (esponja en castellano) lee la entrada estándar y escribe en el archivo especificado. A diferencia de una redirección de shell, sponge absorbe todas sus entradas antes de escribir en el archivo de salida.
Ahora, eso es útil. Para apreciarlo cuánto, pruebe esto: Cree un archivo de texto sin formato que contenga los nombres de los caballeros de la mesa redonda, o los días de la semana, o lo que sea. Básicamente cualquier archivo con una lista de elementos *SIN* orden alfabético:
Arturo
Lancelot
Gawain
Geraint
Percival
Bors el joven
Lamorak
Kay
Gareth
Bedivere
Gaheris
Galahad
Tristán
Guardarlo como knights.txt.
Si quisieras ordenar los nombres en orden alfabético, ¿qué harías? Probablemente probarías algo como esto:
sort knights.txt > knights_sorted.txt; rm knights.txt; mv knights_sorted.txt knights.txt
Porque, si usted hizo esto:
Sort knights.txt > knights.txt
Empezaría a sobrescribir el archivo antes de haber terminado de leerlo, arruinándolo en el proceso. Así pues, usted necesita ensuciarse con ese otro archivo intermedio, knights_sorted.txt. Y usted todavía tiene ese archivo original, sin clasificar cdando vueltas, que tendrá que borrar antes de retitular el archivo clasificado, por lo tanto la cadena larga y pesada de instrucciones.
Con la esponja, sin embargo, usted puede hacer esto:
sort knights.txt | sponge knight.txt
Compruébelo: ¡ningún archivo intermedio!
cat knights
Arturo
Bedivere
Bors el joven
Gaheris
Galahad
Gareth
Gawain
Geraint
Kay
Lamorak
Lancelot
Percival
Tristán
Gracias a sponge, puedes coger el contenido de un archivo de texto, hacer todos los procesos encadenados en él usando cosas como sort, unique, sed, grep y tr. sponge empapará todo, espere hasta que todas las líneas hayan sido procesadas, y luego extienda todo al mismo archivo, todo en una explosión.
Hablando de remojo, vamos a hablar de pee. A pesar de su nombre, pee no tiene *nada* que ver con fluidos corporales. De hecho, el nombre es una combinación de pipe (tubo) (una manera de filtrar las salidas de un comando a otro en los sistemas *NIX) y tee (como en el tee *NIX command line instruction).
Mientras tee redirige la salida de un comando para archivos (cat knights.txt | tee k1 k2 k3 crea archivos K1, K2 y K3, que contiene el contenido de mostrador por cat de knights.txt), El resultado de la salida pee pipe en una lista de comandos:
cat knights.txt | pee sort "wc -l" "grep - -e ^G.*"
Arturo
Bedivere
Bors el joven
Gaheris
Galahad
Gareth
Gawain
Geraint
Kay
Lamorak
Lancelot
Percival
Tristán
13
Gawain
Geraint
Gareth
Gaheris
Galahad
En el ejemplo anterior, utilizando la salida de la original y no ordenada knights.txt, se canaliza primero para ordenar yobtener una lista ordenada; a continuación, a WC (recuento de palabras), que, con el -l , Devuelve el número de líneas (13); y, finalmente, a grep, que luego se utiliza un simple patrón de expresión regular para imprimir sólo las líneas que comienzan con una letra mayúscula "G".
Pipe dream
Volviendo a los editores, pero quedándonos con las tuberías que empujan a las cosas de aquí para allá, hay que tratar vipe. Una vez más, esto es un giro en su editor de shell predeterminado. Plunk en su cadena de comandos de tubería y se abrirá con la salida de las instrucciones anteriores. Por ejemplo:
cat knights.txt | pee sort "wc -l" "grep - -e ^G.*" | vipe | unique
Mostrará todas las salidas que vimos en el ejemplo anterior en un editor (en mi caso) vi-like. Ahora puede editar la salida al contenido de su corazón, eliminar, agregar y modificar líneas. Cuando haya terminado, guarde y salga y su salida editada se pasará al siguiente comando de la cadena.
Muy bien, ¿no?
Moreutils tiene más ...
Moreutils viene con muchas más cosas. La utilidad combine, combina y fusiona las líneas de dos archivos mediante operaciones booleanas; ts añade un sello de tiempo legible a mano para cada línea tomada de una entrada; ifdata hace que la extracción de datos de una interfaz de red SuperEasy - muy útil para scripts, y así sucesivamente. Revisar al proyecto de la página web y las páginas del manual para cada comando para ver cómo funcionan.
Aunque es cierto que puedes emular muchos de los comportamientos de estos nuevos comandos con un poco de línea de comandos como sponge, pee y vipe hacen que trabajar en la shell, sea mucho más fácil y además todo un placer.
El Paquete Moreutils siempre está evolucionando, y se agrega nuevo material de vez en cuando. Yo, por ejemplo, estoy emocionado de ver lo que se incluye a continuación.
-
Linux
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio
- Linus Torvalds sobre el 'hilarante' bombo de la IA
- Cambiar la hora en Linux con Chrony
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Linux 6.9 será el primero en superar los 10 millones de objetos Git
- Zorin OS 17.1 lanzado con soporte mejorado para aplicaciones de Windows, edición educativa
- Linux en el Escritorio: ¡Despega en 2024 con un 4% de Cuota!"
Comentarios
Yo tengo Fedora, y ya desde la versión 20 venía con DNF y YUM, que puedo usar indistintamente para instalar los mismos paquetes.
Cada uno que use lo que quiera. (Yo sigo usando YUM)
Usarás una versión de fedora antigua, en la 24 yum ya no se puede usar.
[manuel@localhost ~]$ sudo yum -y update
Redirecting to '/usr/bin/dnf -y update' (see 'man yum2dnf')