Ingeniero Técnico en Informática de Sistemas
Unix
Inicialmente tendremos que saber si estamos en la versión de System V o Beckerley. Linux soporta las dos.
Diferencia entre linux y uníx:
-
Uníx sirve para todos
-
Linux solo para pcs y es un sistema operativo freeware
-
Desde el punto de vista economico, linux es mejor, pero en cuestion de garantía y de servicio al cliente, es mejor uníx.
-
Linux tiene un firewall.
-
En sitios no críticos es mejor tener linux (conexión a inet, etc).
ENTRADA A UNÍX
-
La primera información es el login y el password
-
Minimo 6 caracteres de password. Para hacer todo el chequeo de combinaciones de password, haría falta por cada letra, 28 veces. Uséase: 28 * 28 * 28 * 28
-
Unís itiene un sistema de aleatorización de claves. El mismo genera las passwords aleatoriamente.
Normalmente la password contiene numeros y letras.
-
El fichero motd tiene la configuración inicial (El mensaje de bienvenida).
-
El administrador debe conocer en todo momento la máquina, etc que viene en motd
-
A partir de ahí, lo primero que hace el sistema es mirar si hay correo.
-
Para mirar el correo, se teclea la instrucción mail
-
Siempre hay un correo de bienvenida, por cortesía.
-
Una vez visto el correo, hay que mirar el terminal del que disponemos. Hay distintas :
-
ANSI
-
VT100 (Standard definido a nivel internacional que permite el reconocimiento de caracteres entre el pc y el servidor)
-
Lo que antes era la barra vuelta, ahora es la barra normal (la de encima del siete)
-
El . y el .. significan lo mismo que en MSDOS
-
Los comandos siempre en minúsculas
-
El sistema distingue entre may y minúsculas.
-
Los comandos con los que trabajemos tambien tienen parámetros. Normalmente, los parámetros llevan delante el símbolo ` - `
-
Para conocer la ayuda, se pone en el prompt del sistema:
-
man pwd
-
la conexión que se realiza, hace que el date tenga la hora del servidor
CADENAS REGULARES
Si ponemos un punto, se puede sustituir por una sola letra.
CHIL. CHILE, CHILI, CHILO
Si ponemos un *, va a ser sustituido por 0 o màs repeticiones del caracter que lo precede
AP*LE ALE, APLE, APPLE, APPPLE
Si ponemos un corchete, la expresion podrá contener los caracteres que estén indicado dentro del corchete una sola vez.
[Cc] hicken Chicken, chicken
es possible indicar un rango de caracteres entre los corchetes, que serán las que se busquen dentro de la cadena regular
sustituiremos dentro de la expression regular cualquier letra que esté contenida en ese rango
[a-z A-z] hicken ahicken, bhicken, chicken, dhicken ….
Ahicken, Bhicken, Chicken, Dhicken ….
Si queremos indicar que queremos hacer una busqueda al comienzo de una linea irá precedida por ^.
^Buf busca dentro de todas las lineas solo las 4 primeras letras en que coincida con las letras Buf
Si la hacemos al final, se coloca como ultimo caracter un $
Sonp$ al final de cada linea las letras sonp en las últimas 4 posiciones
Las expresiones regulares se usan normalmente con greep.
$ grep `chicken' receta.txt todas las lineas del fichero en las que aparezca chicken
$ grep `chicken' * En cualquiera de los ficheros del subdirectorio actual
$ grep `eh.*se' recetas.txt con el punto cualquier caracter unico, con el * 0 o n repeticiones todo lo que empieze por ch y acabe por se.
$ grep `^\.D[SE]$' fichero.txt cualquier cosa que sea .D o .dse al comienzo o al final.
$ file * | grep -v text eliminariamos todos los ficheros que no fueran de texto
$ grep -l `hola' * buscar en todoss los ficherso del subdirectorio, los que contentga la palabra hola y muestra el nombre del fichero donde aparezca.
EGREP
Expresiones regulares de forma extendida.
Los parametros son iguales que el grep, pero los reconoce de manera más exacata y precisa.
FGREP
No es posible usar expresiones regulares, siempre hay que usar expresiones fijas
Permite realizar operaciones de búsqueda múltiple. Permite expresar varias palabras al mismo tiempo, cosa que con lo de antes es imposible
/ Fgrep primerapalabra+intro
Se pone el prompt secundario
-
palabra2
-
palabra3
Para acabar se pone el nombre del fichero a buscar y luego Ctrl + D
-
fichero
-
Ctrl + D
Se puede indicar introduciendo las palabras a buscar en un fichero (en distintas lineas)
/ fgrep -f palabras.dat ficherobusqueda
Hacer los ejercicios del grep (incluyen expresiones regulares con corchete) con egrep
Sobre el listado del subdirectorio /usr localice los subdirectorios de los miembros de cada grupo.
Nombres.dat nombres de login
CUT
Permite recortar las columnas o caracteres delimitadas por algun carácter de marca de columnas.
La sintaxis es:
$ cut [-opc] file/s
las opciones son:
-
-c indicamos que lo que se desea es cortar exclusivamente columnas que en principio estarán separadas por comas.
-
-f indicamos que lo que se desea recortar son campos, por lo tanto, el fichero deberá estar formateado con respecto a informaciones que se estructuren en el formato de registro subdividido en campos. Un ejemplo:
-
ofertas
-
especialidades
a continuación del -f iran los numeros de columna que para cada fila del fichero se quisieran recortar. La forma de indicar columnas es igual que en la orden sort, a diferencia, que en este caso no es necesario precisar el tipo de columna.
-f 1 -5 Cortaria desde la 1 hasta la 5 inclusive
-f 1 5 solo la una y la 5
-
-d indicamos el carácter separador de campo
-
-d :
Por ejemplo:
Queremos cortar la 1,3 y 5 del agenda.new
Put -d: -f 1 -3,5 agenda.new
Sustituir los : por el carácter tabulacion
$ cut -d: -f 2 -4 agenda.new | sed `s/:/^t/g'
EJERCICIOS
Vamos a usar como base el fichero agenda.new
obtener un fichero agenda.new ordenado por departamentos
obtener los ficheros direct.new, ventas.new y almac.new a partir del fichero agenda.new
eliminar el usuario jaime de todos los ficheros con extensión new
sustituir a pedro por javier en todos los ficheros con extensión new
todos los empleados del departamento dirección cambiaran este campo por direct y el campo final lo pondrán a 123
(Pagina 36).
CUT
Cut -f 1,3 selecciona la fila 1 y 3
Cut -f 2-5 selecciona las filas 2 a la 5
Cut -f 3- selecciona todas las columnas menos la 1 y la 2.
PASTE
Concatena de varios ficheros uniendo dos o mas campos en un fichero resultante.
Paste -d:dni.txt nombre.txt >dninombre.txt
JOIN
Permite concatenar varios ficheros en el caso de que un campo que aparezca en ambos ficheros tome igual valor en ambos. Es necesario para que el comando funcione que los ficheros a unir, estén ordenados ascendentemente por el campo o campos utilizados en el JOIN.
Join [modificadores] fichero1 fichero2
Los modificadores que podemos usar son:
-
-j n m significa que se va a tener en cuenta el campo “n” del fichero que ocupe la posición “m”.
-
-t es el modificador que dice cual es el indicador de campo que se va a utilizar en los campos del JOIN
join -t& -j 1 2 -j 2 1 nombredni.dat direccion.dat
EJERCICIOS
Vamos a construir un fichero que contenga el codigo de alumno y nombre de alumno, separados por dos punto, y lo guardaremos en alumnos.dat.
Crearemos un segundo fichero que se llamará “asignaturas.dat”, en donde se guardan las asignaturas que esten cada alumno y cuya estructura de registros será la siguiente:
código de alumnos : asignatura 1 : asignatura 2 ….
Un tercer fichero donde se pueda almacenar la información de asignaturas y que llamaremos “asignaturas.dat”, la estructura es:
Codigo de asignatura : nombre de asignatura
Con estos ficheros se trata de obtener los siguientes datos.
-
Un fichero donde almacenar el nombre de un alumno y todas las asignaturas en las que esté matriculado
-
Para la asignatura de código 1 listar todos los alumnos que estén matriculados en dicha asignatura (por pantalla)
-
Para los alumnos que estén matriculados en las asignaturas de código 1 al 5 obtener su nombre y nombre de esas asignaturas.
-
Obtener en un listado solo los datos de nombres de alumnos (por pantalla) y un segundo listado para ver por pantalla asignaturas ordenadas descendentemente y sin duplicados
SHELL DE UNÍS
BSH
B Bourn contiene el repertorio de ordenes. Es la base de todas.
Equivalente al command.com, pero en unís, con los comandos de unís.
Para activarla $ bsh
KSH
K Korn tiene = características que la anterior pero diferencias en los parámetros de los comandos.
Para activarla $ ksh o sh [+ intro]
CSH
Shell que usa los comandos, casi iguales en c,
Permite saber el lenguaje c y aplicarlo para unís
Para activarla $ csh
BSH
-
Objetivo: la programación de scripts de sistemas operativos
-
La máscara de privilegios será como mínimo rwx r - x - r - x.
-
Se creara con el procesador VI, tendremos que hacer con chmod la máscara de privilegios
-
Existe una variable path, como en msdos. Para añadir un fichero, “.\fichero.exe”
SCRIPT
-
Comandos del SO
-
Definición de variables locales al script
-
Estructuras de control
-
Condicionales (if)
-
Repetitivas (bucles while)
-
Subprogramas
-
Parámetros
-
Interrupciones (Manejar de forma controlada la ejecución de programas o procesos mediante el envio de señales de interrupcion que en ese momento este gestionando el procesador
FICHEROS
Los ficheros ocultos en unís se d3efinen como .[nombre del fichero]. Para verlos se utilizará la instrucción: $ ls -la
Un fichero especial que deberemos tener en $HOME, es el .profile. Todo usuario debe tener un subdirectorio $HOME en el que este el .profile. Si no lo tiene buscara el .profile general
.profile world
.profile group (si no tiene profile particular)
.profile user
en caso de que existan los tres, el nivel de ejecución irá de user a world. Si no existe se irán descartando en el mismo orden
en el .profile se delimitaran las variables y las características que son necesarias para que el usuario :
-correo,
para ello dentro del profile hay 2 variables básicas:
-
Variable de entorno Path.
-
Se pone una linea:
-
PATH=$PATH:$HOME:$HOME/exe
-
Variable de mail
-
En que fichero fisico del so se va a almacenar el email de cada usuario
-
MAIL= /usr/spool/mail/guiller
-
Operación de export
-
export PATH MAIL
Todo script de unís admite parámetros de línea de comando (Comando + Parámetros).
Los parámetros van desde $1 hasta $9.
El $# indica el numero total de argumentos que hay en linea de comandos.
Por $$ indica el PID (Proccess Identificator).
El $? Indica el codigo de retorno. Lo que puede dar de resultado la ejecución de otro script desde aquel en que se ha realizado la consulta de la variable $?. Es util para conocer el resultado de ejecución de un proceso.
EJERCICIO
El script se va a llamar script1.exe y va a visualizar por pantalla todos los posibles parámetros que el usuario haya tecleado desde la linea de comando.
Primero tiene que visualizar el numero total de parámetros
Después tiene que visualizar el PID del proceso que se esta ejecutando
El repertorio de parámetros desde $1 hasta $9
Para hacerlo se utiliza la orden echo y que cada parámetro en una linea distinta, precedida de la constante parámetro n
ESTRUCTURAS DE CONTROL
Tener el algoritmo
Conocer en cada posible problema que sintaxis de unís es la mejor para hacer dicho algoritmo
-
Secuencial una línea para cada orden.
-
Condicional se representa por triangulo
simple: se indica mediante la orden IF. Chequea una condicion a cierto (THEN) o falso (END).
múltiple: se indica mediante la orden CASE. Se puede implementar mediante IF'S anidados. El case facilita la lectura del programa, por lo tanto si se puede se hará mediante case.
-
Bucles o estructuras repetitivas rompemos la secuencia tantas veces como se este marcando en la variable que controla el bucle. Se hace mediante la orden WHILE.
FOR. La posible vcb no existe, la condicion de vueltas del bucle se asocia a los ficheros o tratamiento de ficheros que tengamos en un subdirectorio
SINTAXIS DEL FOR
FOR [$variable del usuario] IN [Lista de valores]
DO {Indica el cuerpo del bucle. Siempre se pone aunque solo haya una línea}
Sentencias
DONE
ORDEN
WHILE [ condición ]
Do
Sentencias
Done
SINTAXIS DE UN MENU
-
Definir una Variable de control
-
Se puede inicializar a un valor
-
Dentro del bucle, limpiamos la pantalla para que nos muestre el menú
-
Todo lo que sean opciones se indicaran por la opción echo.
-
La lectura se hace mediante la orden read y a continuación una variable
CONDICIONES
-
Tiene la posibilidad de manejar la existencia o no de ficheros
[ -f rutafichero ] devuelve un true o false dependiendo de si existe o no.
-
La mascara de privilegios la tenemos que tener correctamente. Si no tenemos privilegios nos dara false
-
No se puede usar la referencia >,<,>=,<=,=. Para poder hacerla, hay que usar modificadores o parámetros de condición.
-
el operador menor o igual - le
-
mayor o igual - ge
-
igual - eq
-
menor - lt
-
mayor - gt
-
distinto - ne
-
si se quieren concatenar operaciones lógicas se usa AND y OR, con resultados boléanos
-
-o OR
-
-a AND
-
imer parámetro indicará el subdirectorio dentro de $home
-
el segundo es el nombre del fichero contenido en el directorio anterior
-
no se puede configurar en el .profile
-
se puede llamar a un script dentro de el para que lo ejecute
-
hay que meterse en la korn shell $ Ksh
-
una vez dentro, pulsamos set -o vi
-
después se mira como si fuera en el vi
-
contar total ofertas de empleo
-
consultar fuente de información más utilizada
-
la descripción de ofertas de empleo que incluyan como conocimiento ORACLE y/o UNÍS
-
ordenar las ofertas de empleo por nombre de fuente de información
-
salir - fin
-
s51.exe
-
s52.exe
-
s53.exe
-
s54.exe
-
localizar en la maquina unís los usuarios conectados en un instante dado, visualizando los siguientes datos:
-
login
-
terminal desde donde se esta accediendo
-
pid de los procesos asignados a ese usuario
-
necesitamos conocer el who -a
-
shell que se tenga por defecto
-
passwd
-
nombre del grupo al que pertenece
-
passwd, e identificar el codigo que identifique a cada usuario.
-
group
-
conocer todos los datos de un usuario que esté dado de alta en la maquina unís. Para ello se debera solicitar por pantalla el nombre de login que va a ser consultado, tras lo cual, debera accederse al fichero passwd donde se mostrara toda la información en el contenida referida al login tecleado. Sera necesario comprobar previamente la existencia del usuario y en caso de no existir, deberemos visualizar el mensaje de error para a continuación volver a consultar un nuevo login de nombre.
-
a partir de un nombre de grupo o código de grupo (gid) visualizar todos los usuarios que pertenezcan a dicho grupo, mostrando nombre de login, shell por defecto, y $home por defecto
-
para los usuarios cuya inicial coincida con la tecleada por el usuario, deberemos mostrar aquellos que en ese instante esten conectados al servidor con un encabezado que indique la frase ` usuarios con inicial x conectados al servidor `. Para cada usuario mostraremos nombre de login e instante de conexión.
-
Se realizara con la orden ps (proccess status). Si ponemos ps -a
-
Salir
EJERCICIO
hacer un script que delimite la ejecución dependiendo el número de parmámetros que el usuario facilite en la línea de comandos. Solo se ejecutará si el número sea igual a 2 y se corresponderan con el siguiente significado.
el script debera comprobar, primero la existencia del subdirectorio y a continuación la existencia del fichero. Caso de no existir alguno de ambos, se informará al usuario de la situación de error.
Cuando ambos existan se visualizará en pantalla el contenido del fichero mediante la orden more, después de haberle añadido una última línea correspondiente a la fecha y hora del sistema.
DOSKEY EN UNÍS
EJERCICIO
script5.exe
Menú con las siguientes opciones:
cada opcion a un fichero
SCRIPT 6
A continuación mostraremos los usuarios que teniendo cuenta en el servidor, no estan conectados en ese instante a dicho servidor. El encabezamiento en ese caso, será ` usuarios con inicial x no conectados al servidor `. En este caso visualizaremos nombre de login y su directorio por defecto.
Descargar
Enviado por: | Kober |
Idioma: | castellano |
País: | España |