Está en la página 1de 7

Conceptos Fundamentales sobre UNIX

Laboratorio 14.4.5 – Personalización de los Shells Korn y


Bash(Tiempo estimado: 45 min.)
Objetivos:

• Desarrollar una comprensión de la personalización de los shells Korn yBash


• Repasar archivos de inicialización, variables ycomandos
• Repasar archivos de inicialización de todo elsistema
• Repasar archivos de inicialización específicos delusuario
• Modificar el archivo .profile o.bash_profile
• Crear el archivo .kshrc o.bashrc
• Probar los archivos de inicialización personalizados delalumno

Trasfondo:
En este laboratorio, el alumno trabajará con archivos de inicialización UNIX para personalizar el entorno de
login de los shells Korn o Bash y adaptar diversas opciones a las necesidades del alumno. En el laboratorio
anterior, el alumno trabajó con alias y prompts personalizados que sólo se activaban para la sesión actual.
Cuando el alumno cerraba la ventana de terminal o hacía logout, las configuraciones personalizadas se
perdían. Éstas y otras características pueden hacerse disponibles automáticamente cada vez que el alumno
hace login modificando archivos de inicialización específicos. En este laboratorio el alumno trabajará con
diversos archivos de inicialización para hacer que estos cambios tengan efecto cada vez que el alumno haga
login. El alumno también repasará archivos de inicialización y variables de todo el sistema y específicos del
usuario.

Herramientas / Preparación:
a) Antes de iniciar este laboratorio, el alumno deberá repasar el Capítulo 14, Sección 3 – Variables
del Shell y Prompts Personalizados y Sección 4 – Archivos de Inicialización delShell.
b) El alumno necesitará losiguiente:
1. Una ID de login de usuario, por ejemplo user2 y contraseña asignadas por el instructor.
2. Una computadora que funcione con el sistema operativoUNIX.
3. Computadorasenredenelaulaconelsistemadearchivosdelaclaseinstalado.

Notas:

1– 8 Conceptos Fundamentales sobre UNIX 2.0—-Laboratorio 14.4.5 Copyright © 2002, Cisco Systems, Inc.
Utilice el diagrama del árbol de directorios del sistema de Archivos de la Clase para que lo asista en este
laboratorio.
Estructura del Árbol de Archivos de la Clase

Paso 1. Hacer login al CDE.


Haga login con el nombre de usuario y la contraseña que le fueron asignados por su instructor en el recuadro
de entradas delCDE.

Paso 2. Acceder a la Línea de Comandos.


Haga clic con el botón derecho en el fondo del espacio de trabajo y haga clic en Tools (Herramientas).
Seleccione Terminal desde el menú para abrir una ventana de terminal.

Paso 3. Repaso de los archivos de inicialización, variables y comandos.


Archivos de inicialización:los archivos de inicialización contienen una serie de comandos y configuraciones de
variables que se ejecutan cuando se inicia un shell. Estos archivos no son ejecutables pero son leídos por el
shell cuando el usuario hace login para personalizar su entorno. Existen dos niveles de archivos de
inicialización. El primer nivel abarca a todo el sistema. Los archivos de inicialización del sistema son
mantenidos por un administrador de sistemas y residen en el directorio /etc. El segundo nivel abarca a los
archivos de inicialización específicos del usuario que residen en el directorio home del mismo. El usuario del
shell Korn tiene dosarchivos, .bash_profile y .bashrc (Bash shell run control – Control de ejecución del shell
Bash) para personalizar su entorno. Nótese que todos estos shells tienen un punto (.) como primer carácter,
lo cual significa que estos shells están ocultos.

Variables:en el laboratorio anterior, el alumno trabajó con variables tales comoPS1(promptstring 1) para
personalizar el prompt del shell Korn o Bash. Puesto que estas variables estaban definidas desde la línea de
comandos y no se colocaban en un archivo de inicialización, sólo permanecían activas para el shell actual y
cuando ese shell se cerraba, las variables se perdían. En este laboratorio, el alumno editará los archivos de
inicialización y agregará variables y comandos para que dichas variables y comandos estén disponibles cada
vez que el alumno hace login. Las variables son predefinidas y se configuran automáticamente al hacer login,
o son configuradas por el usuario. El administrador del sistema también puede configurar variables para el
usuario. Las variables pueden aplicarse al shell actual o local únicamente o a todos los shells y subshells, como
shells globales, dependiendo de en qué archivo de inicialización se encuentran. Los usuarios
puedenpersonalizarmuchasdeestasvariablesparasupropioentornocolocandolasvariablesen

los archivos de inicialización del directorio home del usuario. Para hacer que las personalizaciones estén
disponibles para todos los shells subsecuentes, la variable debe exportarse.

Comandos:a diferencia de las variables, los comandos (de manera similar a los alias) no pueden exportarse.
Los comandos no pueden hacerse disponibles para todos los subshells. Si los comandos han de hacerse
disponibles en un subshell, deben colocarse en el archivo de inicialización secundario que se lee cada vez que
un subshell se abre tal como .kshrc (shell Korn) o .bashrc (shell Bash).
Utilizando la información anterior complete los espacios en blanco de las siguientes oraciones.

a. Los dos niveles de archivos de inicialización son el que abarca a todo el sistema y el que abarca
a los archivos de inicialización.
b. Para el usuario del shell Korn, el a r c h i v o .bash_profile y elarchivo .bashrc residen en
el directorio home del usuario y pueden utilizarse para personalizar su entorno delogin.
c. Para el usuario del shell Bash,el archivo .profile y el archivo .bashrc residen en el directorio
home del usuario y pueden utilizarse para personalizar su entorno de login.
d. Las variables se utilizan para personalizar el shell del usuario y son globales o locales.
e. Para que una variable esté disponible para todos los subshells, debe ser exportadas.
f. Si los comandos han de estar disponibles en un subshell, éstos deben colocarse en un archivo
de inicialización que se lee cada vez que se abre un subshell, como .kshrc o.bashrc.

Paso 4. Repaso de los archivos de inicialización de todo el sistema.


El archivo de inicialización principal de todo el sistema es el archivo profile que se guarda en el directorio /etc.
El archivo /etc/profile es creado por defecto cuando se instala el sistema operativo y puede ser editado y
personalizado por un administrador del sistema. El archivo /etc/profile se aplica a todos los usuarios de los
shells Bourne, Korn y Bash. Cuando un usuario de los shells Bourne, Korn o Bash hace login, el sistema lee el
archivo /etc/profile en primer lugar, y luego lee el archivo .profile del usuario, en el caso de los usuarios de
los shells Bourne y Korn o el archivo .bash_profile en el caso de los usuarios del shell Bash. Esto significa que
las preferencias del usuario para las configuraciones de variables pueden anular las configuraciones por
defecto configuradas y mantenidas por un administrador de sistemas en el archivo /etc/profile. El archivo
/etc/profile lleva a cabo varias funciones, algunas de las cuales aparecen a continuación:

Exporta variables del entorno:Export Environment Variables (Exportar Variables del Entorno) pone
las variables del entorno a disposición de los subshells tal como LOGNAME para nombre de login.

Exporta la variable PATH (RUTA) para la ruta de comandos por defecto:la ruta por defecto es una
lista de directorios donde mirará el shell cuando se ejecuta un comando. Exportarlo pone la lista de
directorios a disposición de todos los shells y subshells.

Configura el tipo de terminal por defecto de la variable TERM (TÉRMINO):esto define las
características de la pantalla y el teclado de la estación de trabajo del usuario.

Muestra el contenido del archivo /etc/motd:el archivo ‘mensaje del día’ [‘message of the day’]
puede personalizarse para mostrar saludos o proporcionar información acerca del sistema.

Configura permisos de creación de archivos por defecto:configura valores umask que determinan
los permisos por defecto cuando se crea un nuevo archivo o directorio.

Utilizando la información anterior complete los espacios en blanco en las siguientes oraciones.

a. Elarchivodeinicializaciónprincipalqueabarcatodoelsistemaeselarchivo
.profile, que se guarda en el directorio etc.
b. El archivo/etc/profile se crea por defecto cuando se instala el sistema operativo y puede ser
editado y personalizado por un usuario.
c. Cuando un usuario del Shell Korn hace login, el sistema lee primero el archivo
, y luego lee el archivo del usuario, y luego el archivo
d. Cuando un usuario del Shell Bash hace login, el sistema lee primero el archivo /etc/profile, y
luego lee el archivo .bashrc del usuario, y luego el archivo .profile.
e. El archivo/etc/profile exporta la variable path que define una lista de directorios donde el shell
mirará cuando se ejecuta un comando.
f. El archivo /etc/profile configura la variable term que define las características de pantalla y
teclado de la estación de trabajo del usuario.

Paso 5. Repaso de los archivos de inicialización específicos del usuario.


Una vez leído el archivo de inicialización de todo el sistema que configura las opciones por defecto de todo el
sistema, se leen los archivos de inicialización del usuario para el shell. Los archivos de inicialización del usuario
proporcionan una gran flexibilidad para que el usuario personalice su entorno. La inicialización y
personalización de login puede lograrse utilizando el archivo para todo el sistema /etc/profile sin opciones o
en combinación con los archivos de inicialización específicos delusuario.

Los archivos de inicialización del usuario pueden ser configurados en forma de patrones por el administrador
del sistema, y luego ser modificados por el usuario. El o los archivos de inicialización específicos del usuario
tales como .profile, .kshrc y .bashrc se almacenan en el directorio home del usuario. El archivo .kshrc es el
archivo principal de los que se utilizan para personalizar el entorno del usuario del shell Korn y el archivo
.bashrc se utiliza para personalizar el entorno del usuario del shell Bash. Dependiendo de la política de
administración de red, los archivos de inicialización específicos del usuario pueden llevar a cabo todo o parte
de lo siguiente:

• Configurar el prompt por defecto como en el laboratorioanterior.


• Definir la impresora por defecto proporciona acceso a unaimpresora.
• Configurar los permisos por defecto configura umask para nuevos archivos y directorios.
• Configurareltipodeterminalpordefecto–esutilizadoporviyotrasherramientas.
• Configurar noclobber – para evitar la sobrescritura de archivos durante el redireccionamiento.
• Configurar la ruta de comandos – define los directorios en los cuales buscar archivos ejecutables.
• Definir comandos personalizados – define los alias según se describieron en el
laboratorioanterior.

Utilizando la información anterior complete los espacios en blanco de las siguientes oraciones.

a. Después de que /etc/profile es leído, en lo que se refiere a las opciones por defecto de todo el
sistema, se leen los de inicialización específicos en lo que se refiere al shell.
b. La inicialización y personalización puede lograrse utilizando el archivo de todo el sistema
/etc/profile por sí mismo o en combinación con los archivos de inicialización propios del usuario
de .profile y .kshrc para los usuarios del shell Korn o .profile y .bashrc para los usuarios del Shell
Bash.

c. El archivo .kshrc es el archivo principal que se utiliza para personalizar el entorno del usuario
del shell Korn y el archivo .bashrc es el archivo principal que se utiliza para personalizar el
entorno del usuario del Shell Bash.

d. Entre otras cosas, los archivos de inicialización del usuario .kshrc y .bashrc pueden utilizarse para
definir el entorno del usuario según se describe en el laboratorio previo como sustitutos para
comandos.

Paso 6. Modificar el archivo del alumno .profile o .bash_profile.


El administrador del sistema, como parte de la creación de una cuenta de usuario, asigna el shell de login. El
shell de login determina qué archivos de inicialización se leen durante el login. Los shells Korn y Bash utilizan
dos archivos del entorno específicos del usuario para configurar el entorno del usuario: los archivos ~/.profile
y ~/.kshrc (shell Korn) o .bash_profile y .bashrc (shell Bash). Los archivos ~/.profile y ~/.bash_profile contienen
típicamente comandos de una sola vez y definiciones devariables.

Cuando se define un nuevo usuario de los shells Korn o Bash, se crea una versión básica de los archivos .profile
o .bash_profile y se la coloca en el directorio home del usuario. Los usuarios del shell Korn necesitan modificar
el archivo .profile y definir y exportar la variable ENV. Esto le indica al shell Korn la ubicación y el nombre del
archivo de control de ejecución a ser leído cada vez que se inicia un nuevo shell, como es el caso de una
ventana de terminal, según se muestra más abajo. El archivo de control de ejecución del shell Korn no tiene
que tener como nombre .kshrc pero usualmente lo tiene. De igual forma, es necesario que los usuarios del
shell Bash modifiquen el archivo .bash_profile y definan y exporten la variable BASH_ENV que señala al archivo
.bashrc. Estos comandos usualmente son agregados al final del archivo .profile o .bash_profile. Este comando
configura la variable del entorno para que señale al archivo .kshrc o .bashrc en el directorio $HOME. HOME
es una variable definida por el sistema para que sea la ruta absoluta al directorio de login delusuario.
Formato del Comando (shell Korn):ENV=$HOME/.kshrc; export ENV
Formato del Comando (shell Bash);BASH_ENV=$HOME/,bashrc; export BASH_ENV

a. Verifiquequeelalumnoseencuentreeneldirectoriohomeyluegoutiliceelcomando
ls –la(listado largo de todos[all]los archivos) para determinar si existe el archivo .profile o
.bash_profile. El alumno deberá incluir los archivos ocultos y es posible que necesite utilizar el
pipe para redirigir el resultado del comando ls –la a more para encontrar los archivos
ocultos. En la mayoría de los casos el archivo .profile o .bash_profile se crea automáticamente
cuando se configura una nueva cuenta de usuario. De no ser así, será necesario que el alumno lo
cree. ¿Quién es el propietario del archivo .profile? Alumno ¿Cuáles son los permisos del alumno
para este archivo? lectura y escritura. ¿Podrá el alumno efectuar cambios en él? Si
b. Utilice el comando more para visualizar el contenido del archivo .profile o .bash_profile.
Nótese la variable PATH (RUTA) en el principio, que define los directorios donde mirará el
sistema cuando el alumno emita un comando. ¿Cómo está configurada la variable PATH?
PATH=”$HOME/bin:$PATH”
c. ¿Se ha exportado la variable PATH para poder utilizarla en subshells?
Si

d. Las rutas del directorio en la definición de la variable PATH están separadas por dos
puntos(:).¿Es/usr/bin una de las rutas de la lista? NO. Haga una lista del contenido del directorio
/usr/bin y utilice un pipe para dirigirlo al comando more. Escriba al menos cinco de los comandos
de la lista con el cual el alumno esté familiarizado. Apt, install, clear, cd.

e. Copie el archivo .profile o .bash_profile para crear una copia de seguridad del archivo llamada
.profile.bak o .bash_profile.bak para su salvaguardia. Si el alumno comete errores y necesita el
archivo copia de seguridad, puede borrar .profile o .bash_profile y hacer una copia del archivo
copia de seguridad utilizando el nombre de archivo original.

f. Utilice vi para modificar el archivo .profile o .bash_profile. Agregue ENV o BASH_ENV y los
comandos de exportación que figuran más arriba, en la línea de formato de comandos, al final
del archivo y luego guarde y salga de vi. Visualice nuevamente el contenido del archivo. ¿Están
presentes los comandos que introdujo el alumno? Si. Verifique los comandos para asegurarse de
haberlos tipeado correctamente.

Paso 7. Crear el archivo .kshrco.bashrc del alumno.


Los comandos y funcionalidades de los shells Korn y Bash deberán colocarse en el archivo .kshrc
(Korn shell run control) o .bashrc (Bash shell run control). El contenido de los archivos .kshrc y .bashrc incluye
normalmente: un prompt personalizado, alias, activación de funcionalidades del shell y variables
personalizadas.

a. Usualmente no hay una versión básica del archivo .kshrc o .bashrc en el directorio home del
usuario a menos que un administrador lo coloque allí como patrón para saber dónde comenzar.
El alumno debe crear uno o en algunos casos puede copiar unoyaexistente de otrousuario.

b. Creeun nuevo archivo .kshrc o .bashrc uti li za ndo vi. ¿Qué comandoseintrodujo? TOUCH
.BASHRC1

c. Si el alumno desea guardar los cambios y salir del editor vi, ¿qué comando de Última línea se
utilizaría?

d. Si el alumno deseara salir del editor sin guardar ningún cambio, ¿qué comando de Última línea
se utilizaría?
e. Configure el prompt del alumno según el nombre de su máquina con un signo de dólar y un
espacio después de él. ¿Qué se introdujo?Consejo:véase la sección Variables
delShellyPromptsPersonalizadosenelCapítulo14. PS1=’\u $’

f. Configure el editor vi para que se active para la edición de línea de comandos. ¿Qué seintrodujo?
Set -o vi

g. Cree un alias llamado h como atajo para representar el comando historyy otro alias llamado
c como atajo para el comando clear.

h. Cree un alias llamado p como atajo para representar el comando ps –ef | sort | more.
¿Qué comando se introdujo? Alias p=ps -ef|sort|more

i. Cree un alias llamado cp para reemplazar al comando regular cp que preguntaría al alumno si
estuviera a punto de sobrescribir un archivo. ¿Qué comando se introdujo? Alias cp=’cp -i’

j. Guarde los cambios en el archivo .kshrc o .bashrcy salga de vi. El alumno puede salir sin guardar
los cambios si desea comenzar de nuevo.

k. Utilice vi o el comando more para visualizar el archivo .kshrc del alumno y verifique que los
comandos se hayan introducido correctamente.

Paso 8. Probar los archivos de inicialización personalizados del alumno.


Ahora que el alumno ha modificado el archivo.profileo.bash_profiledel directorio home y también ha creado
un nuevo archivo.kshrco.bashrc, es el momento de probar los resultados.

a. Cierre la ventana de terminal y haga logout (EXIT) delsistema.

b. Haga login nuevamente como el mismo usuario y abra una ventana determinal.

c. ¿Cambió el prompt del alumno según seesperaba? Si

d. Pruebe los alias que se definieron en los pasos anteriores. ¿Funcionan todos? S i

e. Si no funcionó ninguna de las funcionalidades de personalización del shell Korn, el alumno puede
tener un problema con la variable ENV del archivo .profile. Si algunas funcionaron y otras no, es
probable que el alumno haya cometido algunos errores en el archivo .kshrc o.bashrc.

f. Edite los archivos .profile y .kshrc o .bash_profile y .bashrc según sea necesario para que todos
los cambios personalizados funcionen.

Paso 9. Modificar el archivo .kshrc o .bashrc y volver a leer el archivo.

a. Abra el archivo .kshrc o .bashrc envi.

b. Modifique la variable PS1 (el prompt) para que sea PS1=’$PWD>‘.

c. Agregue un nuevo alias llamadohmque lo haga regresar al directorio home del alumno, despeje
la pantalla y muestre un listado largo de a una página a la vez. ¿Qué línea colocó el alumno en el
archivo .kshrc o. bashrc para definir el alias? Consejo: ¿qué símbolo, o metacarácter, se utiliza al
ejecutar varios comandos en una única línea de comandos? Alias hm=’cp;clear;ls-l’
d. Guarde el archivo y salga de vi.

e. Introduzca el comando que sirva para volver a leer el archivo .kshrc o .bashrc. ¿Qué línea de
comandos se introdujo? More .bashrc

f. ¿Qué muestra ahora el prompt del alumno? homeuser2


g. ¿Funciona el alias hm? Si

Paso 10. Borrar los archivos y directorios creados en este laboratorio.


Borre todos los archivos y directorios creados en el directorio home del alumno durante este laboratorio.

Paso 11. Cerrar la ventana de terminal y hacer logout.


Haga doble clic en el botón de raya que se encuentra en el extremo superior izquierdo de la pantalla, luego
haga clic en el ícono EXIT (SALIDA) del panel frontal.

También podría gustarte