Unidad 3

31
Escuela de Informática y Telecomunicaciones Unidad 3 La shell Bash

description

Unidad 3. La shell Bash. Ejemplo 1. Inicie una subshell Revise dentro de los procesos cuantas shell están iniciadas [madonna@station madonna]$ bash [madonna@station madonna]$ ps PID TTY TIME CMD 9750 pts/5 00:00:00 bash 9786 pts/5 00:00:00 bash 9814 pts/5 00:00:00 ps - PowerPoint PPT Presentation

Transcript of Unidad 3

Page 1: Unidad 3

Escuela deInformática y Telecomunicaciones

Unidad 3

La shell Bash

Page 2: Unidad 3

2© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 1 Inicie una subshell

Revise dentro de los procesos cuantas shell están iniciadas

[madonna@station madonna]$ bash

[madonna@station madonna]$ ps

PID TTY TIME CMD

9750 pts/5 00:00:00 bash

9786 pts/5 00:00:00 bash

9814 pts/5 00:00:00 ps

[madonna@station madonna]$ exit

exit

[madonna@station madonna]$

Page 3: Unidad 3

3© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Actividad 1Ejecute el Comando history

ComandoOrden del Comando

Page 4: Unidad 3

4© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 2

Page 5: Unidad 3

5© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 3

Page 6: Unidad 3

6© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Actividad 2Cree un directorio llamado bin

Quite los permisos al grupo propietario y a otros grupos

Mueva un archivo (ejemplo1.txt) al directorio bin

Page 7: Unidad 3

7© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 3 Inhibición del historial de comandos [madonna@station madonna]$ rm .bash_history

[madonna@station madonna]$ ln -s /dev/null .bash_history

[madonna@station madonna]$ ls -l .bash_history

lrwxrwxrwx 1 madonna madonna 9 Aug 26 16:35 .bash_history -> /dev/null

[madonna@station madonna]$ cat .bash_history

[madonna@station madonna]$

Page 8: Unidad 3

8© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 3 Use un editor de texto para modificar el

archivo .bashrc desde su directorio de inicio, agregando la siguiente línea al final del archivo.

– date >> .bash_timestamps Observe el archivo .bash_timestamps, y confirme si

se agrega una nueva marca de tiempo cada vez que inicia una nueva shell bash.

De nuevo, mediante un editor de texto, agregue una línea de comentario a su archivo .bashrc que describa brevemente por qué el comando de fecha fue agregado e incluya su nombre de usuario como la persona que hizo la modificación

Page 9: Unidad 3

Escuela deInformática y Telecomunicaciones

Capitulo 2

Listas de comandos y scripts

Page 10: Unidad 3

10© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 1Que diferencia tienen los siguientes

comandos

cd /dev/; ls –l; cat null

(cd /dev/; ls –l; cat null)

Page 11: Unidad 3

11© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 2Cree un archivo bash llamado ejemplo.sh

que muestre la hora y los usuarios que esté conectados

Page 12: Unidad 3

12© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 3 Agregue una línea al final del archivo

ejemplo.sh en su directorio de inicio. La línea debe ejecutar los comandos cd

/usr/nombre_usuario, ls –l nombre_archivo y en caso de existir el archivo desplegarlo

– nombre_usuario: Nombre del usuario que inicia la sesion

– Nombre_archivo: archivo de texto que se despliega al inicio de la shell. Se debe considerar que puede no existir.

Page 13: Unidad 3

Escuela deInformática y Telecomunicaciones

Capitulo 3

Variable de bash

Page 14: Unidad 3

14© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 1 Imprima la variable $LANG

Cambie su valor a de_DE y despliegue la fecha de hoy

Cambie su valor a es_ES y despliegue la fecha de hoy

¿Qué ocurre?

Page 15: Unidad 3

15© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Listado de variables

Lista las variables de entornos con set

Liste las variables exportado en env

Page 16: Unidad 3

16© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 2 Inicie sesión con un usuario (nero) Cree una variable llamada google

–google=www.google.cl

Inicie una subconsola y trate de acceder a la variable

Salga de la consola y exporte la variable (variable de entorno)

Inicie otra subconsola y trate de acceder a la variable de la siguiente forma–links $google

Page 17: Unidad 3

17© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 3

Tras el arranque, su shell debería crear la variable de shell CLICHE, la cual debería apuntar a la frase en inglés that is how the cookie crumbles. Asegúrese que la variable no se convierta en una variable de entorno.

Tras el arranque, su shell debe redirigir la salida del comando date al archivo en su directorio de inicio titulado ppid_is_my_parent, en donde ppid es remplazado por su id del proceso padre de shell (almacenado en la variable de shell PPID).

Page 18: Unidad 3

Escuela deInformática y Telecomunicaciones

Capitulo 4

Expansión de la línea de comandos

Page 19: Unidad 3

19© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 1Ejemplo de expansión de la línea de

comandos–find /etc -name *.txt–touch a.txt b.txt–find /etc -name *.txt–find /etc -name “*.txt”

Page 20: Unidad 3

20© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 2

[prince@station prince]$ mkdir ogg

[prince@station prince]$ mkdir ogg/{blues,folk}

[prince@station prince]$ touch ogg/{blues,folk}/playlist

Page 21: Unidad 3

21© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicios 11. Configure su archivo ~/.bashrc para que, tras el arranque, la

variable LINUX_VERS contenga toda la primera línea del archivo /var/log/dmesg, (el archivo /var/log/dmesg se regenera cada vez que se arranca la máquina, por lo que deberá establecer la variable de modo dinámico. Recuerde que el comando head -1 mostrará la primera línea del archivo).

2. En su directorio de inicio, cree archivos con los sigu¡entes nombres de archivo, (el contenido de los archivos es irrelevante).

a. archivo sin títulob. **'s y ||'sc. >> README!! <<

Page 22: Unidad 3

22© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicios 2

En su directorio de inicio, cree un subdirectorio denominado shirts. Dentro del subdirectorio, cree 108 archivos de la forma estilo.tamaño.color.ext, donde cada archivo contenga una combinación de valores a partir del cuadro siguiente

Por ejemplo, el directorio debería contener archivos titulados tee.XXL.red.info, tee.XXL.red.inv, tee.XL.red.info, tee.XL.red.inv y así sucesivamente.

Page 23: Unidad 3

Escuela deInformática y Telecomunicaciones

Capítulo 5

Personalización de la shell

Page 24: Unidad 3

24© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 1 Which ps

–/bin/ps

Which cd

cd –help

help

help cd

Page 25: Unidad 3

25© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 2

Page 26: Unidad 3

26© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo 3

set -x

Page 27: Unidad 3

27© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 1

Edite su archivo ~/.bashrc para que las shells bash recién creadas tengan las siguientes propiedades.

1. El alias dir ejecuta el comando ls -l.

2. El alias globoff inhabilita la expansión de nombre de ruta (habilitando la bandera de shell apropiada).

3. El alias complementario globon habilita la expansión del nombre de ruta (inhabilitando la bandera de shell apropiada).

4. La shell tiene la opción de shell cdspell habilitada.

Page 28: Unidad 3

Escuela deInformática y Telecomunicaciones

Capítulo 6

Lectura de scripts de shell e inicialización de shell

Page 29: Unidad 3

29© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 1

Utilizando los siguientes caracteres

Page 30: Unidad 3

30© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejercicio 1Modifique la variable PS1 para que tenga

las siguientes salidas1. ¿Qué hay de nuevo viejo?

2. [user@localhost dir actual]$

3. [user@localhost Fecha actual]$

Page 31: Unidad 3

31© 2007 Cisco Systems, Inc. Todos los derechos reservados. Cisco Public

Escuela de Informática y Telecomunicaciones

Ejemplo Existen más de una opción de utilizar el

comando su–Su nombre usuario (no inicio)–Su – nombre usuario (inicio)

Para Nero

Vaya al archivo ~/bash_profile y agregue al final “echo bash_profile “

Vaya al archivo ~/.bashrc y agregue al final “echo .bashrc “