Title: UNIXLinux bsico
1UNIX/Linux básico
- Personalizando el entorno
2Algunas cosas interesantes del shell
- El comando history.
- El comando history despliega los comandos que se
han tecleado en el shell. - Formato del comando
- history opciones
3Algunas cosas interesantes del shell
- Ejemplo
- history
- 2 cd bin
- 3 ls
- 4 pwd
- 5 cd ..
- 6 cd
- 7 ls
- 8 su
- 9 su
- 10 ls
- 11 w
- 12 w
- 13 ls -l
- 14 ps
- 15 w
- 16 finger
- Los primeros 10 comandos de la historia
- history 10
- 994 w
- 995 w
- 996 who
- 997 exit
- 998 su
- 999 exit
- 1000 su
- 1001 historymore
- 1002 history 4
- 1003 history 10
4Alias
- Los alias nos permiten
- Substituir un comando corto por un nombre largo.
- Crear un comando sencillo para una serie de
comandos. - Crear formas alternativas para una serie de
comandos. - Formato del comando
- alias nombre del alias valor
5Alias Cómo arreglar comandos?
- alias hhistory
- alias cclear
- alias home'cdls -l'
- alias ls'ls -F'
- alias copy'cp -i'
- alias byeexit
6Para mostrar nuestros alias.
- Formato del comando
- alias
- Cómo desplegar los alias?
- alias
- alias bye'exit'
- alias c'clear'
- alias copy'cp -i'
- alias h'history'
- alias home'cdls -l'
- alias ls'ls -F'
7Cómo borrar un alias?
- Formato del comando
- unalias nombre del alias
- unalias home
- alias
- alias bye'exit'
- alias c'clear'
- alias copy'cp -i'
- alias h'history'
- alias ls'ls -F'
8Variables de ambiente.
- Normalmente los parámetros están separados por
espacios en blanco, si se quiere que un parámetro
contenga uno o más espacios en blanco, se deben
de usar comillas. - Las comillas controlan como el shell interpreta
los comandos. - Para expander una variable, establecer el signo
() al inicio de la variable. - Whola
- echo W
- hola
9Variables de ambiente (comillas).
- Usando una comilla sencilla inclinada identifica
un comando del shell. - uname -n
- estacion1.laboratorio.com
- Wuname -n
- echo W
- estacion1.laboratorio.com
10Variables de ambiente (comillas).
- La doble comilla ( ) indica que use el texto
literalmente pero que permita la expansión de
variables () y ejecución de comandos ( ). - WHola
- SALUDO"W LOGNAMEel host es uname
-n" - echo SALUDO
- Hola jluisel host es academia.desi.iteso.mx
- Usando una comilla sencilla ( ) interpreta los
metacaracteres literalmente. - SALUDO'W LOGNAMEel host es uname
-n' - echo SALUDO
- W LOGNAMEel host es uname -n
11Variables de ambiente.
- Algunas variables ya definidas por el sistema
12Variables de ambiente.
- Un prompt a gusto.
- PS1"whoami_at_uname -n en pwd "
- jluis_at_academia.desi.iteso.mx en /home/jluis
13El shell como un lenguaje de programación.
- Suponiendo que se tiene una gran cantidad de
archivos que son programas en C y queremos
compilar solo los que contengan la cadena
include. - for file in
- gt do
- gt if grep -l include file
- gt then
- gt more file
- gt fi
- gt done
14El shell como un lenguaje de programación.
- Lo cual también se puede hacer en una sola línea
con el comando - more grep -l include
- o su sinónimo
- more (grep -l include )
15Generando un script
- Usando un editor de texto teclear el script que
se encuentra a la derecha puede ser el vi. - vi prueba1.sh
- Se le agregan permisos de ejecución.
- chmod x prueba1.sh
- Se ejecuta
- ./prueba.sh
- Este programa busca todos los
- archivos en el directorio actual
- que contengan la cadena include
- y muestra en la salida estándar
- todos aquellos que encuentre.
- for file in
- do
- if grep -q include file
- then
- more file
- fi
- done
- exit 0
16Generando un script.
- Creando un directorio y copiando los scripts
ejecutables al directorio. - chmod x prueba1.sh
- mkdir util
- mv prueba1.sh util
- PATHHOME/utilPATH
17Variables parámetros.
- Si el script es llamado con parámetros, algunas
variables adicionales son creadas. Aunque no se
pasen parámetros, la variable de ambiente se
pasa con el valor de 0.
18Variables parámetros.
- La variable IFS
- IFS''
- set uno dos tres
- echo "_at_"
- uno dos tres
- echo ""
- unodostres
- IFS' '
- echo ""
- uno dos tres
19Un script que recibe parámetros
- prueba3.sh
- saludo"Hola"
- echo saludo
- echo "Estamos corriendo el programa 0"
- echo "El segundo parámetro es 2"
- echo "El primer parámetro es 1"
- echo "La lista de parámetros es "
- echo "El directorio del usuario es HOME"
- echo "Teclea un nuevo saludo"
- read saludo
- echo saludo
- echo "Aquí termina el script."
- exit 0
- Ejecución del script
- prueba3.sh uno dos tres
- Hola
- Estamos corriendo el programa /home/jluis/util/pru
eba3.sh - El segundo parámetro es dos
- El primer parámetro es uno
- La lista de parámetros es uno dos tres
- El directorio del usuario es /home/jluis
- Teclea un nuevo saludo
- Buenos Días
- Buenos Días
- Aquí termina el script.
20Condiciones.
- O se puede escribir
- if -f hola.c
- then
- ...
- fi
- O bien podemos poner then en la misma línea.
- if -f hola.c then
- ...
- fi
- El comando test o .
- Introduciremos el comando test usando una de las
condiciones más simples checando para ver si un
archivo existe. - if test f hola.c
- then
- ...
- fi
21Comparación de cadenas de caracteres.
22Comparación aritmética.
23Condiciones de archivos.
24Estructuras de control.
- Desición
- if condición
- then
- sentencias
- else
- sentencias
- fi
- case variable in
- patron patrón...) sentencias
- patron patrón...) sentencias
- ...
- esac
25Estructuras de control.
- Ciclos
- for variable in valores
- do
- sentencias
- done
- while condición
- do
- sentencias
- done
until condición do sentencias done
26Ejemplo de un script que suma o resta dos números
(con if).
- menu.sh
- OTRA"S"
- while "OTRA" "S" "OTRA" "s"
- do
- echo "Dame un número"
- read X
- echo "Dame otro número"
- read Y
- echo "Que quieres hacer 1.- Suma 2.-Resta"
- read OP
- if "OP" "1"
- then
- Z((XY))
- fi
- if "OP" "2"
- then
- Z((X-Y))
- fi
- echo "El resultado es "
- echo Z
- echo "Otra vez ?"
- read OTRA
- done
27Ejemplo de un script que suma o resta dos números
(con case).
menucase.sh OTRA"S" while "OTRA" "S"
do echo "Dame un número" read X
echo "Dame otro número" read Y echo "Que
quieres hacer 1.- Suma 2.-Resta" read OP
case OP in "1" ) Z((XY))
"2" ) Z((X-Y)) esac echo "El
resultado es " echo Z
echo "Otra vez ?" read OTRA case
OTRA in "s" "S" "si" "SI" "Si"
) OTRA"S" "n" "N" "no" "NO"
"No" ) OTRA"N" esac done
28Ejemplo de un script que muestra los números del
1 al 10
- while1
- X0
- while "X" ! "10"
- do
- echo X
- X((X1))
- done
29Ejemplo de un script que muestra los números del
1 al 100
- while2
- X0
- while "X" -le 100
- do
- echo X
- X((X1))
- done
30Los scripts de inicialización
- A parte de los scripts que puede crear, hay un
número de estos que usa el intérprete de comandos
para ciertos propósitos. - Los más importantes son sus scripts de
inicialización, scripts que automáticamente
ejecutados por el intérprete al abrir una sesión. - Los scripts de inicialización son eso, simples
scripts como los descritos anteriormente. - De cualquier modo, son muy útiles para la
inicialización de su entorno al ejecutarse
automáticamente. - Por ejemplo, si siempre usa la orden Mail para
comprobar si tiene correo al iniciar una sesión,
incluya en su script de inicialización dicha
orden y será ejecutada automáticamente.
31Los scripts de inicialización
- Los archivos de inicialización usados por Bash
son /etc/profile (configurado por el
administrador del sistema, y ejecutado por todos
los usuarios de Bash en el momento de la
presentación al sistema). - HOME/.bash_profile (ejecutado por una sesión de
presentación Bash). - HOME/.bashrc (ejecutadas por todas las sesiones
Bash que no son de presentación). - Si .bash_profile no esta presente, se usa en su
lugar .profile.
32Los scripts de inicialización
- Tcsh usa los siguientes scripts de
inicialización /etc/csh.login (ejecutado por
todos los usuarios de Tcsh en el momento de la
presentación al sistema). - HOME/.tcshrc (ejecutado en la presentación al
sistema por todas las instancias nuevas de Tcsh). - HOME/.login (ejecutado en la presentación al
sistema, seguido .tcshrc). - Si .tcshrc no esta presente, .cshrc se usa en su
lugar.