educación, informática y demás

GNU/Linux bash

Caso práctico comandos de bash

106 – Utilizando tuberías, muestra la línea de configuración de la cuenta de usuario alfredoff en el fichero de cuentas de usuario del sistema.

Comando a utilizar grep y tuberías. Sabemos que grep permite consultar directamente el contenido de un fichero, pero en este caso nos piden que usemos tuberías. Por tanto, la entrada de grep tiene que ser la salida de un comando… ¿Qué comando mostraría en pantalla el contenido del fichero de cuentas de usuario del sistema? cat

Ahora tendríamos que filtrarlo, para ello usamos tubería y filtramos toda la salida del comando para que solo nos muestre la línea del usuario alfredoff.

Ahora mismo está bien, aunque deberíamos pulir un poco este tipo de consultas para asegurarnos de que la información que se muestra es la que realmente queremos puesto que grep mostrará todas las líneas en las que aparezca la cadena de texto pasada por parámetro, en este caso alfredoff.

107- Muestra en pantalla información de los procesos que estén ejecutando bash.

Comando ps.

Aquí hay mucha información… vamos a filtrarla

108. De la lista anterior, muestra solo el primero, es decir el primer proceso que está ejecutando bash.

109. Muestra las líneas de configuración de cuentas de usuario del sistema que utilicen como interprete de comandos /bin/bash

Tenemos esta información en /etc/passwd. Nos piden que mostremos solo lás líneas de cuentas de usuario que utilicen /bin/bash.

Nosotros sabemos que el campo número 7 de cada línea de configuración de usuario o registro contiene la ruta del interprete de comandos. Por tanto, podríamos usar grep.

Como no me obliga el enunciado a usar tuberías y grep puede consultar los datos de un fichero, podemos usar directamente grep.

Lo podríamos haber hecho con tuberías también.

Está bien de las dos formas, pero podríamos hacerlo mejor. Sabemos que el campo que contiene la ruta del shell a utilizar es último de cada línea. Vamos a forzar a grep a buscar en el final de la línea el patrón que le pasamos, para ello usamos el caracter especial $.

110. Muestra las lineas de configuración de cuentas de usuario del sistema que no utilicen como shell /bin/bash

Comando grep.

110. Muestra los nombres de los usuarios que utilizan que utilicen como interprete de comandos /bin/bash, solo el nombre de la cuenta de usuario

De nuevo tenemos que filtrar. Sabemos mostrar en pantalla las líneas de configuración de las cuentas que usen /bin/bash. Tenemos que filtrar un poco más, en este caso queremos cortar las líneas, para ello usaremos el comando cut.

El delimitador es : y el campo que queremos es el 1.

111. Muestra los nombres de los usuarios que utilizan que utilicen como interprete de comandos /bin/bash, solo el nombre de la cuenta de usuario, pero ordena la salida alfabéticamente

Comando sort.

Si no sabemos como funciona, consultamos la ayuda…

Si quisieramos que se mostrar en orden inverso podemos usar -r.

112. Muestra los nombres de los usuarios que utilizan que utilicen como interprete de comandos /bin/bash, solo el nombre de la cuenta de usuario, ordenados alfabéticamente y de esa lista muestra solo los tres primeros.

113. ¿Y si nos piden que mostremos el segundo y solo el segundo?

114. Muestra el nombre de usuario y directorio personal de los usuarios que utilicen como shell /bin/bash

Sabemos mostrar todos los usuarios que usan /bin/bash

Ahora vamos a filtrarlo un poco, solo queremos el campo 1 y 6 de cada una de las líneas. Para ello tendremos que cortar cada línea, con el comando cut.

Solo queremos los campos 1 y 6 y el delimitador, como ya sabemos, es :

115. Refina el comando anterior para que muestra el nombre de usuario y directorio personal de los usuarios que utilicen como shell /bin/bash pero que no se muestren los dos puntos, sino una coma separadora.

Comando tr.

116. Almacena en un fichero llamado usuarios.txt en tu directorio personal la lista de usuarios que utilizan la shell /bin/bash, solo el nombre de usuario, ordenados alfabéticamente

Vamos a comprobar

117. Almacena en un fichero llamado noUsuarios.txt en tu directorio personal la lista de usuarios que no utilizan la shell /bin/bash ordenados alfabéticamente, solo el nombre del usuario

118. Muestra en pantalla el nombre de usuario, directorio personal y shell que utiliza el usuario marinapg

Se mostrar los datos de marinapg

Ahora nos queda filtrar esta información para que solo se muestre el nombre de usuario, la ruta del directorio personal y la shell. Utilizamos cut con delimitador : y seleccionamos los campos 1, 6 y 7.

Y si queremos quitar los dos puntos y dejar espacios…

119. Crea una variable llamada alumno cuyo contenido sea marinapg. Usando dicha variable, muestra en pantalla el nombre de usuario, directorio personal y shell del usuario almacenado en dicha variable

120. Usando la variable alumno, muestra la ruta del directorio personal de dicho usuario

Ahora solo mostramos el campo número 6 de la línea de configuración de la cuenta de usuario almacenada en la variable alumno.

121. Crea una variable llamada baseDir que contenga la ruta /educatica/2022. Esta ruta será la del directorio base.

122. Crea el directorio base, cuya ruta está almacenada en la variable baseDir

123. Dentro del directorio base, crea un directorio cuyo nombre sea el del usuario almacenado en la variable alumno

Tenemos que utilizar las dos variables

124. Almacena en una variable llamado homeDir la ruta del directorio personal del usuario almacenado en la variable alumno. Deberás obtener la ruta del fichero de cuentas de usuario.

Dejar una respuesta