LinuxParty

Ratio:  / 0
MaloBueno 

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).

vidirFigura 1: La utilidad vidir mostrará la interfaz de su editor de shell por defecto, ya sea vi (m) ...

vidirFigura 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.

Comentarios   

0 # Nop 21-11-2016 16:19
Me parece que en fedora, poca cosa vas a instalar con yum, más bien con dnf, lo fuerte es que es un Blog como este veas este tipo de cosas, en fin...
Responder | Responder con una citación | Citar
-1 # Sipe 21-11-2016 16:59
Nop, DNF y YUM, conviven en Fedora, además la instrucción sirve para otras distros.

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)
Responder | Responder con una citación | Citar
+1 # Nop 21-11-2016 20:55
Cito a Sipe:
Nop, DNF y YUM, conviven en Fedora, además la instrucción sirve para otras distros.

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.
Responder | Responder con una citación | Citar
0 # Notearrimes Alaparé 03-01-2017 09:55
Vaya chorrada, debe ser porque no has escrito "yum" en la consola, yo tengo Fedora 25, y si se puede... Te dice literalmente... (por ejemplo)

[manuel@localhost ~]$ sudo yum -y update
Redirecting to '/usr/bin/dnf -y update' (see 'man yum2dnf')
Responder | Responder con una citación | Citar

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Encuesta de LinuxParty

¿Qué valoras más al visitar una Web?

1.- Que tenga muchas imágenes y muchos vídeos (Pese a que pese) - 2.9%
2.- Que sea muy elegante, con mucho JavaScript y CSS e imágenes - 5.8%
3.- Que cargue rápido y clara, con la cantidad justa de JS, CSS e imágenes - 41%
4.- Que sea clara y concisa, que pueda llegar al destino rápido, sin florituras - 41.6%
5.- Que sea HTML 1.x, sin JS, ni CSS, ni PHP, ni Ruby, ni "nada de nada". - 1.2%
6.- Que se cargue rápidamente, en un módem de 56 Kb, beep, beeeep - 7.5%

Total votes: 173
The voting for this poll has ended on: 27 Ene 2017 - 00:00

Donar a LinuxParty

La mejor forma de darnos las gracias, es hacer una donación.


¿Quién está online?

Hay 271 invitados y ningún miembro en línea

Tutorial de Linux