Curso de Linux N04. apropos, man -k, uniq, type, Bash_Curso_02

By rafaelaquino on 4/25/2023

Cordiales Saludos

![curso_04_portada2.png](Image from post)

apropos

Este comando nos facilita la búsqueda de un comando o su coincidencia con una palabra clave o el nombre del comando. La búsqueda la realiza por todas las man page que corresponde a todos los comandos. Recordemos, con man podemos ver los manuales de nuestros comandos.

Ejemplificando lo comprenderemos mejor.

Supongamos que no recuerdo el nombre (o se me olvidó) de un editor de texto dentro de mi sistema.

Escribo apropos seguido de la palabra editor. Editor es lo que busco, bueno es la palabra clave que tengo en mente.

En el resultado, salta a la vista el editor Nano y Vim que ya he usado.

rafael@HP:~$ apropos editor
atobm (1)            - bitmap editor and converter utilities for the X Window...
bitmap (1)           - bitmap editor and converter utilities for the X Window...
bmtoa (1)            - bitmap editor and converter utilities for the X Window...
ed (1)               - line-oriented text editor
editor (1)           - Nano's ANOther editor, inspired by Pico
editres (1)          - a dynamic resource editor for X Toolkit applications
ex (1)               - Vi IMproved, a programmer's text editor
gedit (1)            - text editor for the GNOME Desktop
gnome-text-editor (1) - text editor for the GNOME Desktop
gparted (8)          - GNOME Partition Editor for manipulating disk partitions.
gview (1)            - Vi IMproved, a programmer's text editor
gvim (1)             - Vi IMproved, a programmer's text editor
nano (1)             - Nano's ANOther editor, inspired by Pico
nm-connection-editor (1) - network connection editor for NetworkManager
pico (1)             - Nano's ANOther editor, inspired by Pico
red (1)              - line-oriented text editor
rgview (1)           - Vi IMproved, a programmer's text editor
rgvim (1)            - Vi IMproved, a programmer's text editor
rview (1)            - Vi IMproved, a programmer's text editor
rvim (1)             - Vi IMproved, a programmer's text editor
sed (1)              - stream editor for filtering and transforming text
select-editor (1)    - select your default sensible-editor from all installed...
sensible-editor (1)  - sensible editing
software-properties-gtk (1) - Software Sources List editor
tc-pedit (8)         - generic packet editor action
tc-skbmod (8)        - user-friendly packet editor action
vi (1)               - Vi IMproved, a programmer's text editor
view (1)             - Vi IMproved, a programmer's text editor
vim (1)              - Vi IMproved, a programmer's text editor
xedit (1)            - simple text editor for X
rafael@HP:~$ 

Ahora si yo deseo buscar más información de un comando que ya conozco y todas sus referencias, con estos tres ejemplos queda aclarado.

Ejemplo N1

rafael@HP:~/linux_04$ 
rafael@HP:~/linux_04$ apropos mkdir
mkdir (1)            - make directories
mkdir (2)            - create a directory
mkdirat (2)          - create a directory
rafael@HP:~/linux_04$ 
rafael@HP:~/linux_04$ 

Ejemplo N2

rafael@HP:~/linux_04$ apropos whatis
whatis (1)           - muestra descripciones de una línea de las páginas de manual

Ejemplo N3

rafael@HP:~/linux_04$ apropos who
w (1)                - Show who is logged on and what they are doing.
who (1)              - show who is logged on
whoami (1)           - print effective userid

Observación:

El número que aparece en nuestra búsqueda dentro de paréntesis ( ejemplo: who (1) - show who is logged on) está especificado en la siguiente tabla.

![curso_04_secciones.png](Image from post) [Fuente: man (Unix)](https://es.wikipedia.org/wiki/Man_(Unix))

Para terminar con este comando coloqué apropos sin parámetro y muy gentilmente el comando me respondió: apropos ¿qué?

rafael@HP:~/linux_04$ apropos
apropos ¿qué?
rafael@HP:~/linux_04$ 

man -k

Este comando está relacionado con el comando apropos, realizando la misma búsqueda.

Por ejemplo

rafael@HP:~/linux_04$ man -k mkdir
mkdir (1)            - make directories
mkdir (2)            - create a directory
mkdirat (2)          - create a directory

Es igual a:

rafael@HP:~/linux_04$ apropos mkdir
mkdir (1)            - make directories
mkdir (2)            - create a directory
mkdirat (2)          - create a directory
rafael@HP:~/linux_04$ 

uniq

Este comando nos mostrará las líneas únicas de un archivo, por consiguiente omite las lineas duplicadas. Para funcionar deben estar las lineas de texto de forma contigua, es decir una seguida de otra (la que se repite).

Para el ejemplo crearé el archivo lista.txt con una lista de palabras.

![curso_04_uniq_00.png](Image from post)

Normalmente se usa el comando uniq con el comando sort para ordenar primero la lista y por lógica al ordenarlas quedarán las palabras repetidas de forma contigua.

![curso_04_uniq_01.png](Image from post)

El comando cat lista.txt | sort -u realiza la misma función. Ordena y elimina las palabras repetidas.

rafael@HP:~/linux_04$ 
rafael@HP:~/linux_04$ cat lista.txt | sort -u
avion
carro
moto
tren
vehiculo
rafael@HP:~/linux_04$ 

Para ver las palabras duplicadas, las que están repetidas usaremos: uniq -d

![curso_04_uniq_02.png](Image from post)

Si en primera instancia las palabras repetidas están contiguas podemos usar uniq directamente. Lo podemos ver en el siguiente ejercicio.

![curso_04_uniq_03.png](Image from post)
---

type

Nos muestra el tipo de comando dentro del shell de nuestro sistema. Con los siguientes ejemplos ilustraremos mejor el concepto.

rafael@HP:~/linux_04$ type uniq
uniq is /usr/bin/uniq
rafael@HP:~/linux_04$ type cd
cd es una orden interna del intérprete de ordenes
rafael@HP:~/linux_04$ 
rafael@HP:~/linux_04$ type ls
ls es un alias de `ls --color=auto'

Mostramos tres ejemplos de tipos de comandos, gracias al comando type: Un programa ejecutable (uniq), Un comando que está dentro del Shell (cd) y un alias (ls).


IMPORTANTE: Los comando vistos aquí y en próximas publicaciones están limitados para mostrarlos y conceptualizarlos para nuestro quehacer diario. Cada comando tiene muchas opciones que debemos investigar por nuestra propia cuenta cuando estemos trabajando con ellos. Aprovechemos el internet para conocer en profundidad el comando que estemos estudiando y en primer orden no olvidemos lo potente y todo lo que nos brinda el comando man para conocer la sintaxis y todo lo relacionado con todos los comandos que tenemos en nuestro sistema sin recurrir a internet.

![banner_bash.png](Image from post)

Esta practica la realizaremos editando nuestro código en el Editor de Texto que viene incorporado con nuestro sistema operativo: Nano.

Ejercicio N02

Prepararemos el ejercicio creando el directorio linux_04 y dentro del directorio el script bash_02.sh

![curso_04_bash1.png](Image from post)
En este ejercicio utilizaremos el comando **echo**, ya visto en nuestro curso de linux.
![curso_04_bash2.png](Image from post)
Para ejecutar el script usamos: bash bash_02.sh
![bash_03.png](Image from post)

Ejercicio N03

Crearemos con con el editor nano el ejercicio bash_03.sh

![curso_04_bash4.png](Image from post)
En este ejercicio utilizaremos los comandos: echo, date y cal. Además de identificar como se realizan los comentarios para nuestro código con el signo **#**.
![curso_04_bash5.png](Image from post)
Este es el resultado de ejecutar el ejercicio bash_03.sh
![curso_04_bash6.png](Image from post)

Ejercicio N04

Crearemos con con el editor nano el ejercicio bash_04.sh

![curso_04_bash7.png](Image from post)
En este ejercicio abordaremos el uso de las variables en Bash.
![curso_04_bash8.png](Image from post)
El mensaje "Hola Mundo" se lo asigné a la variable **VAR** y luego la muestro con el comando **echo**. Para ejecutar el script usamos **bash bash_04.sh**
![curso_04_bash9.png](Image from post)
![bannerfundamentos.png](Image from post)

Todos a practicar, incluyéndome! Nos vemos en la próxima publicación...

Mi Twitter

Comments (4)

visualblock's avatar @visualblock 4/25/2023

Has sido curado por @visualblock / You've been curated by @visualblock Bienvenidas delegaciones / Delegations welcome [Encuentra nuestra comunidad aquí / Find our community here](https://discord.gg/tGuctbfYKN) [Trail de Curación / Curation Trail](https://hive.vote/dash.php?trail=visualblock&i=1)
poshtoken's avatar @poshtoken 4/25/2023

https://twitter.com/750698046489583616/status/1650835819215699968 The rewards earned on this comment will go directly to the people( @alberto0607 ) sharing the post on Twitter as long as they are registered with @poshtoken. Sign up at https://hiveposh.com.

stemsocial's avatar @stemsocial 4/25/2023

Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support. 
 

developspanish's avatar @developspanish 4/25/2023

Esta muy bien estos ejercicios porque luego a uno se le olvida la practica de algunos comandos y ahi esta uno por todo internet buscando para que servia cada cosa

rafaelaquino's avatar @rafaelaquino 4/25/2023

Tienes toda la razón. Si estoy tratando de esquematizar todo de forma progresiva revisando los comandos más utilizados. También tengo en mente hacer una guía con las explicaciones de los comandos de forma resumida. Esta guía la compartiré por Gitlab. Saludos