linux basico-8.pdf

25
LINUX B LINUX B á á sico (8. Shells(3)) sico (8. Shells(3)) 1 1 LINUX B LINUX B á á sico sico TAKASHI SUGASAWA

Upload: uleam

Post on 14-Jul-2015

1.162 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 11

LINUX BLINUX Báásicosico

TAKASHI SUGASAWA

Page 2: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 22

Programa del cursoPrograma del curso

1.1. IntroducciIntroduccióón a LINUXn a LINUX2.2. OperaciOperacióón bn báásica de LINUXsica de LINUX3.3. OperaciOperacióón de archivos y directoriosn de archivos y directorios4.4. Editor viEditor vi5.5. ComprensiComprensióón del sistema de ficherosn del sistema de ficheros6.6. Shells(1)Shells(1)7.7. Shells(2)Shells(2)8.8. Shells(3)Shells(3)9.9. Otros comandosOtros comandos

Page 3: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 33

LINUX BLINUX Báásicosico88. . Shells(3)Shells(3)

8.1 Introducci8.1 Introduccióón a scripts de shell n a scripts de shell 8.2 Redacci8.2 Redaccióón de scripts de shelln de scripts de shell8.3 Programaci8.3 Programacióón con controln con control8.4 Procesos de scripts de shell8.4 Procesos de scripts de shell8.5 Ajuste del ambiente del shell8.5 Ajuste del ambiente del shell

ÍÍndicendice

Page 4: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 44

88.1.1 IntroducciIntroduccióón a scripts de shelln a scripts de shell(1)(1) ComprensiComprensióón de los scripts de shelln de los scripts de shell•• Normalmente escribimos los comandos en la terminal Normalmente escribimos los comandos en la terminal

usando el teclado.usando el teclado.•• O sea los comandos pueden provenir de un archivo.O sea los comandos pueden provenir de un archivo.•• Un Un scriptscript de shell es una coleccide shell es una coleccióón de uno o mn de uno o máás s

comandos de shell en un archivo.comandos de shell en un archivo.•• Para ejecutar los comandos en el Para ejecutar los comandos en el scriptscript de shell, basta de shell, basta

con escribir el nombre del archivo.con escribir el nombre del archivo.•• Las ventajas de scripts de shell son que:Las ventajas de scripts de shell son que:

–– No tiene que volver a escribir una secuencia de comandos.No tiene que volver a escribir una secuencia de comandos.–– Determina los pasos para llevar a cabo un objeto una vez.Determina los pasos para llevar a cabo un objeto una vez.–– Simplifica operaciones para usted mismo y para otros.Simplifica operaciones para usted mismo y para otros.

Page 5: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 55

8.1(2)8.1(2) Un ejemplo de scripts de shellUn ejemplo de scripts de shell•• Ahora vamos a crear un Ahora vamos a crear un scriptscript de shell de shell ““dondedonde”” que que

ejecute 3 comandos ejecute 3 comandos ““whoamiwhoami””, , ““hostnamehostname””, , ““pwdpwd”” en en secuencia.secuencia.

1. Primero, confirme que est1. Primero, confirme que estáá en el su directorio base.en el su directorio base.[usr000[usr000@linuxpc@linuxpc usr000]$ pwdusr000]$ pwd/home/usr000/home/usr000

2. Inicie 2. Inicie ““vivi”” con el nombre del archivo, con el nombre del archivo, ““vi dondevi donde””..[usr000[usr000@linuxpc@linuxpc usr000]$ vi dondeusr000]$ vi donde

3. Escriba como siguiente en el 3. Escriba como siguiente en el ““vivi””..whoamiwhoamihostnamehostnamepwdpwd

4. Salga de 4. Salga de ““vivi”” guardando el archivo.guardando el archivo.

primero teclee primero teclee ““ii””, despu, despuéés escriba el texto.s escriba el texto.

teclee teclee ““ESCESC””, , ““ZZ””, , ““ZZ””

Page 6: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 66

5. Confirme el existencia el archivo y su contenido.5. Confirme el existencia el archivo y su contenido.[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l dondel donde--rwrw--rwrw--rr---- 1 usr000 1 usr000 usr000usr000 20 sep 22 09:29 donde20 sep 22 09:29 donde[usr000[usr000@linuxpc@linuxpc usr000]$ cat dondeusr000]$ cat dondewhoamiwhoamihostnamehostnamepwdpwd

6. Agregue el permiso de ejecuci6. Agregue el permiso de ejecucióón al archivo.n al archivo.[usr000[usr000@linuxpc@linuxpc usr000]$ chmod +x dondeusr000]$ chmod +x donde[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l dondel donde--rwrwxxrwrwxxrr--xx 1 usr000 1 usr000 usr000usr000 20 sep 22 09:29 donde20 sep 22 09:29 donde

7. Ejecute el archivo.7. Ejecute el archivo.[usr000[usr000@linuxpc@linuxpc usr000]$ ./dondeusr000]$ ./dondeusr000usr000linuxpclinuxpc/home/usr000/home/usr000

el resultado del el resultado del scriptscript de shellde shell

Si no sale asSi no sale asíí, , chequeechequee el contenido o los permisos del archivo.el contenido o los permisos del archivo.

Page 7: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 77

•• Podemos ejecutar un Podemos ejecutar un scriptscript de shell como sigue de shell como sigue tambitambiéén. n.

[usr000[usr000@linuxpc[usr000@linuxpc@linuxpc[usr000@linuxpc usr000]$ ./dondeusr000]$ ./dondeusr000usr000linuxpclinuxpc/home/usr000/home/usr000

[usr000[usr000@linuxpc@linuxpc usr000]$ bash dondeusr000]$ bash dondeusr000usr000linuxpclinuxpc/home/usr000/home/usr000

igualigual

bash <bash <nombre_de_scriptnombre_de_script>>

[usr000[usr000@linuxpc@linuxpc usr000]$ chmod usr000]$ chmod --x dondex donde[usr000[usr000@linuxpc@linuxpc usr000]$ ls usr000]$ ls --l dondel donde--rwrw--rwrw--rr---- 1 usr000 1 usr000 usr000usr000 20 sep 22 20 sep 22 09:29 donde09:29 donde[usr000[usr000@linuxpc@linuxpc usr000]$ bash dondeusr000]$ bash dondeusr000usr000linuxpclinuxpc/home/usr000/home/usr000

En este caso, el permiso de ejecuciEn este caso, el permiso de ejecucióón no es necesario.n no es necesario.

8.1(8.1(33)) Arranque de scripts de shellArranque de scripts de shell

Page 8: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 88

•• El shell tiene opciones que son convenientes en el El shell tiene opciones que son convenientes en el caso de la depuracicaso de la depuracióón.n.

[usr000[usr000@linuxpc@linuxpc usr000]$ bash usr000]$ bash --x dondex donde+ + whoamiwhoamiusr000usr000+ + hostnamehostnamelinuxpclinuxpc+ pwd+ pwd/home/usr000/home/usr000

[usr000[usr000@linuxpc@linuxpc usr000]$ bash usr000]$ bash --nvnv dondedondewhoamiwhoamihostnamehostnamepwdpwd

--xx: : El shell sale cada comando (detrEl shell sale cada comando (detráás de un s de un ““++””) a stderr ) a stderr antes de ejecutarlo.antes de ejecutarlo.

--vv:: El shell sale sus entradas a stderr al captar los.El shell sale sus entradas a stderr al captar los.--nn:: El shell solamente pasa los comandos, no ejecuta los.El shell solamente pasa los comandos, no ejecuta los.

Page 9: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 99

8.1(8.1(44)) Variedad de scripts de shellVariedad de scripts de shell•• Cada shell (BASH, Shell Cada shell (BASH, Shell BourneBourne, Shell C, , Shell C, tcshtcsh, ...) tiene , ...) tiene

su manera de descripcisu manera de descripcióón de scripts.n de scripts.

BASH es el shell derivado de Shell BASH es el shell derivado de Shell BourneBourne. Por eso, BASH . Por eso, BASH puede ejecutar los scripts de Shell puede ejecutar los scripts de Shell BourneBourne..En este curso, aprendemos scripts de BASH.En este curso, aprendemos scripts de BASH.

Page 10: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1010

88.2.2 RedacciRedaccióón de scripts de shelln de scripts de shell(1)(1) SelecciSeleccióón de shell que se arrancan de shell que se arranca•• La descripciLa descripcióón como sigue en la cabeza del n como sigue en la cabeza del scriptscript, selecciona el , selecciona el

tipo del shell que se arranca.tipo del shell que se arranca.

#!/bin/bash#!/bin/bash

nombre de ruta de acceso del shellnombre de ruta de acceso del shell

Vamos a escribirlo como frase hecha, para definir el tipo del Vamos a escribirlo como frase hecha, para definir el tipo del scriptscript de shell.de shell.

[usr000[usr000@linuxpc@linuxpc usr000]$ cat donde2usr000]$ cat donde2#!/bin/bash#!/bin/bashwhoamiwhoamihostnamehostnamepwdpwd

[usr000[usr000@linuxpc@linuxpc usr000]$ ./donde2usr000]$ ./donde2usr000usr000linuxpclinuxpc/home/usr000/home/usr000

Page 11: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1111

8.28.2((22)) Uso de comentariosUso de comentarios

•• El signo El signo ““##”” le indica al shell el principio de un comentario. Cada le indica al shell el principio de un comentario. Cada carcaráácter a partir del signo cter a partir del signo ““##”” hasta el final de la lhasta el final de la líínea es parte nea es parte de ese comentario.de ese comentario.

•• El shell ignora los comentarios. Un comentario es una nota para El shell ignora los comentarios. Un comentario es una nota para usted mismo o para cualquiera que lea el usted mismo o para cualquiera que lea el scriptscript. .

[usr000[usr000@linuxpc@linuxpc usr000]$ cat donde3usr000]$ cat donde3#!/bin/bash#!/bin/bash

# Esto es un comentario.# Esto es un comentario.whoamiwhoami # Esto es un comentario tambi# Esto es un comentario tambiéén.n.hostnamehostnamepwdpwd

[usr000[usr000@linuxpc@linuxpc usr000]$ ./donde3usr000]$ ./donde3usr000usr000linuxpclinuxpc/home/usr000/home/usr000

Page 12: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1212

8.28.2((33)) Uso de variablesUso de variables

•• Variables son disponibles en scripts de shell: podemos asignar Variables son disponibles en scripts de shell: podemos asignar un valor a un variable y acceder el valor guardad en la variableun valor a un variable y acceder el valor guardad en la variable..

[usr000[usr000@linuxpc@linuxpc usr000]$ cat donde4usr000]$ cat donde4#!/bin/bash#!/bin/bash

# "donde4": una prueba de # "donde4": una prueba de scriptscript de shellde shell

variable1=`variable1=`whoamiwhoami`̀variable2=`variable2=`hostnamehostname`:`pwd``:`pwd`

echo "Su nombre del usuario es echo "Su nombre del usuario es $variable1$variable1."."echo "Ahora usted estecho "Ahora usted estáá en en $variable2$variable2."."

SustituciSustitucióón den dell variablevariable

AsignaciAsignacióón del valor al variablen del valor al variable

[usr000[usr000@linuxpc@linuxpc usr000]$ ./donde4usr000]$ ./donde4Su nombre del usuario es usr000.Su nombre del usuario es usr000.Ahora usted estAhora usted estáá en linuxpc:/home/usr000.en linuxpc:/home/usr000.

Page 13: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1313

8.28.2((44)) Uso del comando Uso del comando ““readread””

•• El comando El comando ““readread”” toma la siguiente ltoma la siguiente líínea de entrada y la nea de entrada y la asigna a una variable.asigna a una variable.

[usr000[usr000@linuxpc@linuxpc usr000]$ cat quienusr000]$ cat quien#!/bin/bash#!/bin/bash

# "quien": Presenta qui# "quien": Presenta quiéén es el usuario de su seleccin es el usuario de su seleccióón.n.

echo echo --n "Nombre del usuario: "n "Nombre del usuario: "readread usuariousuariogrep grep $usuario$usuario /home/copropiedad//home/copropiedad/cuenta.txtcuenta.txt

SustituciSustitucióón den dell variablevariable

Suprime aparteSuprime aparte

Nombre de un variableNombre de un variable

[usr000[usr000@linuxpc@linuxpc usr000]$ ./quienusr000]$ ./quienNombre del usuario: usr000Nombre del usuario: usr000usr000 Sugasawa Takashiusr000 Sugasawa Takashi

Entrar de la teclado (+[Enter])Entrar de la teclado (+[Enter])

Page 14: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1414

8.28.2((55)) Uso del parUso del paráámetros de lmetros de líínea de comandonea de comando

•• Podemos consultar los parPodemos consultar los paráámetros de lmetros de líínea de comando con los nea de comando con los variables $1, $2, ..., $9.variables $1, $2, ..., $9.

[usr000[usr000@linuxpc@linuxpc usr000]$ cat quien2usr000]$ cat quien2#!/bin/bash#!/bin/bash

# "quien2": Presenta qui# "quien2": Presenta quiéén es el usuario de su seleccin es el usuario de su seleccióón.n.

grep $1 /home/copropiedad/grep $1 /home/copropiedad/cuenta.txtcuenta.txtPrimer parPrimer paráámetrometro

[usr000[usr000@linuxpc@linuxpc usr000]$ ./quien2 usr000usr000]$ ./quien2 usr000usr000 Sugasawa Takashiusr000 Sugasawa Takashi

Esto es necesario.Esto es necesario.

$0:$0: El nombre del comandoEl nombre del comando..$$*:*: Todos los parTodos los paráámetros.metros.$#:$#: El nEl núúmero de parmero de paráámetros.metros.

$0$0 $1$1

Page 15: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1515

88.3.3 ProgramaciProgramacióón con controln con control(1)(1) Uso de la estructura Uso de la estructura ifif•• ““ifif comandocomando thenthen ... ... elseelse ... ... fifi”” es una estructura de decisies una estructura de decisióón que n que

le permite seleccionar uno de dos cursos de accile permite seleccionar uno de dos cursos de accióón basados en el n basados en el resultado de un comando.resultado de un comando.

ifif comandocomandothenthen

......elseelse

......fifi

Si el resultado del Si el resultado del comando es 0, ...comando es 0, ...

Si no, ...Si no, ...Todos los programas tienen Todos los programas tienen su valor de resultado.su valor de resultado.Generalmente el valor 0 Generalmente el valor 0 representa el estado de representa el estado de salida del programa con salida del programa con ééxito.xito.

El estado de salida del comando ejecutado El estado de salida del comando ejecutado úúltimamente, se ltimamente, se puede saber con el variable "$?".puede saber con el variable "$?".

Page 16: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1616

Regresa un estado de salida de cero cuando Regresa un estado de salida de cero cuando lo que se problo que se probóó fue cierto.fue cierto.(ej.)(ej.) testtest --f FILE1f FILE1

testtest $variable1$variable1 = STR1= STR1testtest $variable2$variable2 --ltlt 1010

(40) (40) testtest

menor que o igualmenor que o igualINT1 INT1 --le INT2le INT2

menor quemenor queINT1 INT1 --ltlt INT2INT2

no es igualno es igualINTINT11 --nene INT2INT2

mayor que o igualmayor que o igualINTINT11 --ge INT2ge INT2

mayor quemayor queINT1 INT1 --gtgt INT2INT2

cierto si el ncierto si el núúmero INT1 es igual al nmero INT1 es igual al núúmero INT2.mero INT2.INTINT11 --eqeq INT2INT2

no es igualno es igualSTRSTR11 != STR2!= STR2

cierto si la cadena STR1 es igual a la cadena STR2.cierto si la cadena STR1 es igual a la cadena STR2.STR1 = STR2STR1 = STR2

cierto si el fichero FILE es un directorio.cierto si el fichero FILE es un directorio.--d FILEd FILE

ciertocierto si existe el fichero FILE y es regular.si existe el fichero FILE y es regular.--f FILEf FILE

Page 17: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1717

[usr000[usr000@linuxpc@linuxpc usr000]$ cat quien3usr000]$ cat quien3#!/bin/bash#!/bin/bash

# "quien3": Presenta qui# "quien3": Presenta quiéén es el usuario de su seleccin es el usuario de su seleccióón.n.

ifif testtest $# $# --ge 1ge 1thenthen

grep $1 /home/copropiedad/grep $1 /home/copropiedad/cuenta.txtcuenta.txtelseelse

echo echo --n "Nombre del usuario: "n "Nombre del usuario: "readread usuariousuariogrep grep $usuario$usuario /home/copropiedad//home/copropiedad/cuenta.txtcuenta.txt

fifi

El nEl núúmero de parmero de paráámetros.metros.Si el nSi el núúmero de parmero de paráámetros es mayor o igual que 1, ...metros es mayor o igual que 1, ...

[usr000[usr000@linuxpc@linuxpc usr000]$ ./quien3 usr000usr000]$ ./quien3 usr000usr000 Sugasawa Takashiusr000 Sugasawa Takashi

[usr000[usr000@linuxpc@linuxpc usr000]$ ./quien3usr000]$ ./quien3Nombre del usuario: usr000Nombre del usuario: usr000usr000 Sugasawa Takashiusr000 Sugasawa Takashi

Page 18: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1818

8.38.3(2)(2) Uso de la estructura Uso de la estructura forfor•• ““forfor nombrenombre in in palabraspalabras do... donedo... done”” es una estructura iterativa.es una estructura iterativa.

forfor i in $i in $**dodo

......$i$i......

donedone

(ej.)(ej.) $*$**.*.txttxta a abab abcabc abcdabcd`̀seqseq 1 10`1 10`

Un nombre del variableUn nombre del variable

por ejemplo, por ejemplo, si hay 3 palabras,si hay 3 palabras,se repite 3 veces.se repite 3 veces.

Todos los parTodos los paráámetros.metros.

Podemos acceder cada palabra asPodemos acceder cada palabra asíí..

Page 19: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 1919

[usr000[usr000@linuxpc@linuxpc usr000]$ cat quien4usr000]$ cat quien4#!/bin/bash#!/bin/bash

# "quien4": Presenta qui# "quien4": Presenta quiéén es el usuario de su seleccin es el usuario de su seleccióón.n.

ifif testtest $# $# --ge 1ge 1thenthen

forfor i in $*i in $*dodo

grep grep $i$i /home/copropiedad//home/copropiedad/cuenta.txtcuenta.txtdonedone

elseelseecho echo --n "Nombre del usuario: "n "Nombre del usuario: "readread usuariousuariogrep grep $usuario$usuario /home/copropiedad//home/copropiedad/cuenta.txtcuenta.txt

fifi

[usr000[usr000@linuxpc@linuxpc usr000]$ ./quien4usr000]$ ./quien4Nombre del usuario: usr000Nombre del usuario: usr000usr000 Sugasawa Takashiusr000 Sugasawa Takashi[usr000[usr000@linuxpc@linuxpc usr000]$ ./quien4 usr000usr000]$ ./quien4 usr000usr000 Sugasawa Takashiusr000 Sugasawa Takashi[usr000[usr000@linuxpc@linuxpc usr000]$ ./quien4 usr000 usr001usr000]$ ./quien4 usr000 usr001usr000 Sugasawa Takashiusr000 Sugasawa Takashiusr001 Acosta usr001 Acosta AlonzoAlonzo Jessica ElizabethJessica Elizabeth

Page 20: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 2020

8.48.4 Procesos de scripts de shellProcesos de scripts de shell

[usr000[usr000@linuxpc@linuxpc 8vo]$ cat 8vo]$ cat ej_cdej_cd#!/bin/bash#!/bin/bash

# "cd" en el # "cd" en el scriptscript de shellde shellecho echo --n "pwd: "n "pwd: "pwdpwd

echo "cd /:"echo "cd /:"cd /cd /

echo echo --n "pwd: "n "pwd: "pwdpwd

En el En el scriptscript de shell, se ejecuta el comando "cd".de shell, se ejecuta el comando "cd".

[usr000[usr000@linuxpc@linuxpc 8vo]$ pwd8vo]$ pwd/home/usr000/8vo/home/usr000/8vo

[usr000[usr000@linuxpc@linuxpc 8vo]$ ./8vo]$ ./ej_cdej_cdpwd: /home/usr000/8vopwd: /home/usr000/8vocd /:cd /:pwd: /pwd: /

[usr000[usr000@linuxpc@linuxpc 8vo]$ pwd8vo]$ pwd/home/usr000/8vo/home/usr000/8vo

Antes de ejecutar el Antes de ejecutar el scriptscript

despudespuéés de ejecutar el s de ejecutar el scriptscriptpero, no se ha cambiado...pero, no se ha cambiado...

En el En el scriptscript, se ejecuta el , se ejecuta el comando "cd", y ciertamente comando "cd", y ciertamente se ha cambiado el directorio se ha cambiado el directorio de trabajo actual.de trabajo actual.

AquAquíí hay un hay un scriptscript de shell ...de shell ...

Page 21: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 2121

•• Normalmente el Normalmente el scriptscript de shell se ejecuta en el otro de shell se ejecuta en el otro proceso.proceso.

•• Las operaciones en el una proceso no ejercen Las operaciones en el una proceso no ejercen influencia sobre otros procesos.influencia sobre otros procesos.

Proceso deProceso deShellShell

Proceso de Proceso de otro shellotro shell

././ej_cdej_cd

esperaespera cd /cd /

Page 22: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 2222

•• Utilizando el comando "Utilizando el comando "sourcesource", se ejecuta el ", se ejecuta el scriptscript de de shell en el mismo proceso.shell en el mismo proceso.

Proceso deProceso deShellShell

sourcesource ej_cdej_cd

cd /cd /

[usr000[usr000@linuxpc@linuxpc 8vo]$ pwd8vo]$ pwd/home/usr000/8vo/home/usr000/8vo

[usr000[usr000@linuxpc@linuxpc 8vo]$ 8vo]$ sourcesource ej_cdej_cdpwd: /home/usr000/8vopwd: /home/usr000/8vocd /:cd /:pwd: /pwd: /

[usr000[usr000@linuxpc@linuxpc /]$ pwd/]$ pwd//

Esta vez, se ha cambiado el Esta vez, se ha cambiado el directorio de trabajo actual.directorio de trabajo actual.

". ". ej_cdej_cd" tambi" tambiéén tiene n tiene mismo efecto.mismo efecto.

Page 23: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 2323

8.58.5 Ajuste del ambiente del shellAjuste del ambiente del shell•• Los cambios del ambiente del shell (Los cambios del ambiente del shell (umaskumask, variables) , variables)

no tienen su efecto despuno tienen su efecto despuéés de la terminacis de la terminacióón del n del proceso. Al registrarse la prproceso. Al registrarse la próóxima vez, tenemos que xima vez, tenemos que hacerlos otra vez.hacerlos otra vez.

•• Podemos escribirlos en el archivo Podemos escribirlos en el archivo ““..bashrcbashrc”” en el en el directorio base, que el bash ejecuta automdirectorio base, que el bash ejecuta automááticamente ticamente al iniciar. al iniciar. [usr001[usr001@linuxpc@linuxpc usr001]$ ls usr001]$ ls --a ~a ~. .. .. .. .bash_historybash_history ..bash_logoutbash_logout ..bash_profilebash_profile ..bashrcbashrc..gtkrcgtkrc

Al hacer login, se ejecutan.Al hacer login, se ejecutan.

Cuando el bash inicia como un Cuando el bash inicia como un shell interactivo, se ejecuta.shell interactivo, se ejecuta.

Al hacer logout, se ejecuta.Al hacer logout, se ejecuta.

Page 24: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 2424

[usr001[usr001@linuxpc@linuxpc ~]$ cat ~/.~]$ cat ~/.bashrcbashrc# .# .bashrcbashrc

# # UserUser specificspecific aliases aliases andand functionsfunctions

# # SourceSource global global definitionsdefinitionsifif [ [ --f /etc/f /etc/bashrcbashrc ]; ]; thenthen

. /etc/. /etc/bashrcbashrcfifi

umaskumask 022022PS1="[PS1="[\\u@u@\\hh \\ww]]\\$ "$ "alias alias llll='ls ='ls --l'l'alias la='ls alias la='ls --a'a'

Cambia el formato del indicador del shell.Cambia el formato del indicador del shell.

Ejemplo de Ejemplo de ““..bashrcbashrc””

Definen alias del comandoDefinen alias del comando

Asigna el valor del Asigna el valor del umaskumask..

Los cambios van a tener su efecto, cuando se inicia el shell laLos cambios van a tener su efecto, cuando se inicia el shell laprpróóxima vez.xima vez.Tenemos que chequear el archivo antes de rehacer Login.Tenemos que chequear el archivo antes de rehacer Login.

Page 25: Linux basico-8.PDF

LINUX BLINUX Báásico (8. Shells(3))sico (8. Shells(3)) 2525

¡¡ Muchas gracias por su atenciMuchas gracias por su atencióón !n !¡¡ Hasta pronto !Hasta pronto !