Sistemas Operativos Tema 1: CONCEPTO BASICO DE SISTEMA OPERATIVO Concepto •

Anuncio
Sistemas Operativos
Tema 1: CONCEPTO BASICO DE SISTEMA OPERATIVO
• Concepto
Dos tipos de S.O. :
♦ Windows
♦ U.N.I.X
El sistema operativo se define como el soporte lógico que controla el funcionamiento del equipo físico.
El Sistema operativo pertenece a la parte de Software.
• Funciones del Sistema Operativo
♦ Controla el Hardware de la maquina, los programas y los datos.
♦ Maneja las asignaciones de porciones de recursos físicos a cada programa individual.
♦ Maneja directamente el hardware para conseguir una operación eficiente al mismo tiempo que
garantiza un buen tiempo de respuesta.
♦ Hace posible que los distintos programas compartan la maquina sin interferirse.
♦ Maneja las entradas y salidas de los distintos dispositivos.
♦ Maneja la creación y mantenimiento de ficheros, facilitando la carga y ejecución de los
programas, compartiendo entre ellos el tiempo y la memoria disponible.
• Objetivos del Sistema Operativo
♦ Facilitar el trabajo al usuario
♦ Facilitar el dialogo y la comunicación entre el usuario y la maquina.
♦ Mejorar la comunicación con lenguajes de alto nivel.
♦ Facilitar información de un sitio a otro
♦ Seguridad y fiabilidad del sistema operativo.
♦ Estructuración de ficheros de todo tipo.
♦ Control sobre los recursos consumidos por cada programa.
♦ La intervención de los usuarios debe reducirse al mínimo posible.
♦ Rendimiento económico del sistema debe optimizarse.
lunes, 18 de octubre de 1999
Evolución Histórica
El primer S.O datan de 1955, desarrollado por General Motors, y se realizan para reducir los tiempos de
espera de la unidad central de proceso (CPU , Central Process Unit) entre dos trabajos consecutivos. Estos,
trabajan en monoprogramación.
1ª Generación de S.O
• Al sistema operativo solo se le pide ayuda en operaciones de entrada y de salida de datos y la
traducción de lenguajes ensambladores.
1
• Admón.. del Hardware la realiza un operador, que normalmente era el que había construido la
maquina.
2ª Generación de S.O
• Surge el IOCS ( Input Output Control System ) que independiza el programa del dispositivo.
3ª Generación de S.O
• Marca la Evolución de los Sistemas Operativos.
• Se produce un abaratamiento de la memoria principal.
• Se aumenta la velocidad de los periféricos.
• Se introducen canales para manejar periféricos a nivel físico de forma independiente a la CPU. Un
canal es un dispositivo que libera trabajo a la CPU.
• Aparece la programación en tiempo real o tiempo compartido, técnicas de aprovechamiento del
procesador.
• Primeros conceptos sobre redes de ordenadores.
4ª Generación de S.O
• Se produce un abaratamiento de los procesadores
• Lo micros evolucionan
• Surge el Ordenador personal: Terminal inteligente de una red de ordenadores. Se conectan
ordenadores para ganar tiempo.
• Surgen las bases de datos relacionales, de gran importancia debido al volumen de datos.
• Inteligencia artificial: sistemas expertos, automatización de oficinas, redes locales, etc..
Los primeros S.O se cargaban enteros en memoria, dejando poca para los demás programas. Por eso surgen
los S.O de disco, que cargan a memoria los programas de control que mas utiliza el usuario dejando el resto de
programas en disco. El núcleo del sistema operativo es la parte del mismo que esta cargado en la memoria.
Sistemas operativos en disco:
♦ Núcleo: Parte del S.O cargada en memoria.
♦ S.O de disco: Parte que del S.O que se almacena en un disco, y que cuando es necesitada, se
carga como un programa más.
Estructura de un S.O
♦ Programas de Control: Tienen a su cargo las funciones de supervisión y aministración de los
recursos del sistema. Son el Núcleo del S.O.
♦ Programas de Proceso: Encargados de facilitar el trabajo a los usuarios. ( Editores,
traductores, utilidades, etc.. )
♦ Programas de Aplicación: Los más utilizados por los usuarios se desarrollan apoyándose en
los programas de proceso y se ejecutan bajo la supervisión de los programas de control.
Tipos de Programa de Control:
♦ Cargador de Inicialización o IPL
♦ Supervisor
♦ Controlador de Trabajos
♦ Controlador de Datos
2
♦ Administrador de Memoria
Tipos de Programa de Proceso:
♦ Editores
♦ Traductores:
♦ Ensambladores
♦ Compiladores
♦ Intérpretes
• Utilidades
Tipos de Programa de Aplicaciones:
♦ Verticales:
♦ Nominas
♦ Contabilidad
⋅ Horizontales:
⋅ Hoja de Calculo
⋅ Sistemas Gráficos
martes, 19 de octubre de 1999
Explicación de los programas de control:
• Cargador de Iniciación o IPL(Initial Program Loaded): Programa que
se encuentra en la memoria ROM, se ejecuta por circuitería y su
misión es buscar en las unidades de disco el sistema operativo y
cargarlo en memoria.
Los S.O se cargan siempre en el mismo sector para que el IPL lo pueda
localizar sin problemas.
• Supervisor: Programa encargado del control del sistema. Sus
funciones son:
♦ Cargar los programas en la memoria principal.
♦ Colocar las aplicaciones que ejecutamos en la memoria.
♦ Comunicación con el usuario.
♦ Comunicación con el controlador de trabajos cada vez que
halla que ejecutar un programa.
♦ Comunicación con el controlador de datos cada vez que se
realiza una operación de IO ( Input − Output)
• Controlador de trabajos: Cargado en memoria por el supervisor cada
vez que el usuario solicita la ejecución de un programa y su función
consiste en controlar el incio, la ejecución y la finalización de los
programas, devolviendo el control al supervisor al finalizar la tarea.
• Controlador de datos: Programa que procesa todas las operaciones de
entrada y de salida, comunicándose con los distintos periféricos.
• Administrador de Memoria: Controla los accesos a memoria. ( Es
necesario para aprovechar mas de 1MB de memoria ). En MSDOS si
no se carga el Himem.sys estaremos trabajando con 1MB de
memoria.
3
Explicación de los programas de Proceso:
• Editores: Ayudan al programador para crear o modificar programas
fuente.
• Traductores: Son programas que convierten un programa fuente en
codigo maquina. Tipos:
◊ Ensambladores: Traducen lenguajes de bajo nivel(
similares al lenguaje maquina ). Por cada instrucción
de lenguaje de bajo nivel se genera una instrucción
en lenguaje maquina.
◊ Compiladores: Traduce todo el programa fuente
antes de ejecutarlo ( Traduce lenguajes de alto nivel
corrigiendo errores sintácticos).
◊ Intérpretes: Traduce una instrucción antes de
ejecutarla, posteriormente traduce la siguiente y la
vuelve a ejecutar y asi sucesivamente. De una
instrucción de lenguaje de alto nivel se generan
varias instrucciones en lenguaje maquina.
• Utilidades: Son programas aportados por el sistema operativo para el
tratamiento de ficheros y dispositivos.
Definición de Proceso: Programa en ejecución, junto con un entorno
asociado. Una instrucción detrás de otra. Cada instrucción de lenguaje
maquina es un proceso independiete.
Bloque de control de procesos: Un proceso se representa por un conjunto de
datos que incluye el estado de proceso en cada momento ( Los recursos
utilizados, los registros, las variables, etc... )Denominándose toda la
información, bloque de control de procesos.
Un bloque de control de procesos tiene unos objetivos:
♦ Localización de la información sobre el proceso por parte del
sistema operativo. El S.O tiene que tener la posibilidad de
localizar el proceso.
♦ Mantener registrados los datos del proceso en el caso de
tener que suspender temporalmente su ejecución o
reanudarla.
4
Un bloque de control de procesos contiene la siguiente información:
♦ Estado del Proceso: Esta información debera estar siempre
cargada en la memoria principal. Contiene información
relativa al contenido del controlador de programas. El
contador de programas es un contador de instruccione que
ejecuta un programa. El estado de los procesos puede ser de
los siguientes tipos:
• Activos: Aquellos que compiten por el procesador o estan en
condiciones de hacerlo. Dentro de estos podemos distinguir:
♦ En ejecución: Estado en el
que se encuentra un proceso
cuando tiene el control del
procesador.
♦ Preparado: Dispuestos para
ser ejecutados.
♦ Bloqueados o en espera: No
pueden ejecutarse por
necesitar algun recurso que
no esta disponible.
• Inactivos: Aquellos que no pueden competir por el procesador.
Podemos distinguir:
♦ Suspendido: Proceso
suspendido en espera de un
evento sin que halla
desaparecido las causa de su
bloqueo.
♦ Preparado: Proceso
suspendido sin tener causas
por las que estar bloqueado.
♦ Estado del procesador en cuanto a la prioridad de proceso.
Todos los procesos tienen una prioridad.
♦ El modo de ejecución.
♦ Estado de los registros internos del ordenador.
♦ Estadísticas de tiempo y ocupación de recursos para la
gestión de la planificación del procesador.
♦ Ocupación de la memoria interna y externa para el
intercambio.
♦ Recursos en uso, ficheros en uso y privilegios en uso.
EJERCICIO: Clasificar en que estado estan los siguientes procesos:
5
El proceso 1.1 esta es Ejecución El 2.2 esta Preparado
El proceso 1.2, 1.3 y 1.4 esta en Espera El 2.3 y 2.4 esta en Espera
El proceso 1.5 esta Preparado El 2.6 esta Preparado
El proceso 1.6 y 1.7 esta en Espera El 2.7 y el 2.8 en Espera
El proceso 1.8 esta Preparado El 2.9 esta Preparado
El proceso 1.9 y 1.10 esta en Espera El 2.10 esta en Espera
El 3.3 esta Preparado
El 3.4 y 3.5 esta en Espera
El 3.6 y 3.7 esta enPreparado
El 3.8 y 3.9 esta en Espera.
lunes, 25 de octubre de 1999
LOS DRIVERS
• Definición: Es el software formado por un conjunto de archivos y
tablas que ejecutan y controlan todas las operaciones de entrada y
salida sobre cualquier periférico conectado al ordenador. Son
particulares para cada dispositivo. Una vez cargados pasan a formar
parte del núcleo del S.O.
• Funciones:
◊ Definir las características del dispositivo al S.O.
◊ Inicializar los registros asociados al periférico, en el
momento del arranque del S.O
◊ Habilitar y deshabilita el dispositivo para un
6
proceso.
◊ Procesar todas las operaciones de Entrada y de
Salida solicitadas por un proceso.
◊ Cancelar todas las operaciones de Entrada/Salida
en el momento que sea necesario y por cualquier
motivo.
◊ Procesar todas las interrupciones hardware
generadas por el dispositivo.
◊ Tratar los errores y estado del dispositivo haciendo
la correspondiente comunicación con el usuario.
LOS FICHEROS
• Definición: Colección de datos estructurados de una forma particular
y empleada con un determinado propósito.
• Clasificación:
◊ Según su forma de utilización:
• Ficheros de Entrada: Cuya
información es introducida a la
memoria del ordenador, y son
creados con anterioridad al proceso
que los utiliza.
• Ficheros de Salida: Almacenan la
información que sale de la memoria
en los soportes de almacenamiento
externo. Se crean durante la
ejecución de un programa.
• Ficheros de Entrada y Salida:
Combinan las dos acciones,
introducen y obtienen información
de la memoria.
◊ Según su función:
• Ficheros Maestros: También
denominados permanentes, y son
aquellos cuyo contenido es esencial
para la aplicación que los utiliza.
Varios tipos:
⋅ De Situación: Contienen en cada momento la información actualizada,
utilizándose en procesos de tiempo real.
⋅ Constantes: Aquellas cuya información no suele alterarse debido a la
naturaleza de los datos que contiene. Son utilizados sobre todo para
consultas.
⋅ Históricos: Contienen información acumulada a lo largo del tiempo, obtenida
de los ficheros de situación y son utilizados para la obtención de estadísticas.
• Ficheros de Movimiento: Aquellos
cuya información modifica la de los
ficheros maestros, lo que conlleva la
actualización de los mismos.
• Ficheros de Trabajo: También
denominados de maniobra, son los
que utiliza el sistema para contener
resultados intermedios de un
7
proceso. Finalizado este proceso el
propio sistema los borrara. (
Archivos Temporales )
martes, 26 de octubre de 1999
CARACTERÍSTICAS DE LOS FICHEROS DE DATOS
• El Tamaño: Se calcula en función de las longitudes de los registros,
multiplicado por el numero de registros que contenga. Ej.:
• El Crecimiento: Indica el incremento o decremento del tamaño del
fichero. Ej.:
• La Volatilidad: Indica en %, el movimiento de registros que tiene el
fichero. Ej.:
Si el % es Alto se dice que el Fichero es Volátil, si es bajo se dice que es
Estático.
• La Actividad: Muestra el % de registros que son accedidos en el
proceso normal de un fichero.
martes, 02 de noviembre de 1999
WINDOWS 95
• Definición: Sistema operativo gráfico, basado en tecnología de 32
bits, diseñado para conseguir que el usuario maneje el ordenador de
forma sencilla y rápida.
Windows 95 es una evolución de MS−DOS:
8
MSDOS, son las siglas de Microsoft Disk Operation System.
Características de Windows 95
• Compatibilidad con dispositivos y aplicaciones diseñadas sobre 16
bits.
• Facilidad con la que se ejecuta cualquier aplicación.
• Facilidad para conmutar entre aplicaciones abiertas.
• Posibilidad de utilizar hasta 255 caracteres como nombres de
ficheros y carpetas.
• Facilidad para gestionar objetos a través del explorador.
• W95 es un sistema orientado a objetos.
• Ofrece un mayor rendimiento en aplicaciones Windows y en
aplicaciones DOS.
• El soporte Plug & Play facilita la tarea de instalar y configurar un
nuevo hardware.
• Incorporación de aplicaciones integradas que permiten la
comunicación con otros ordenadores.
Requerimientos Hardware
♦ PC
♦ Mínimo un 386DX
♦ Mínimo 4 MB de RAM
♦ Entre 35 y 45 MB de HD
♦ Disquetera 3,5 High Density
♦ Raton
♦ VGA o Superior
Windows 95 puede ser instalado desde disquetes sin necesidad del CD.
Hardware Opcionales
♦ Impresora
♦ MODEM
♦ Tarjeta de Sonido y Altavoces.
viernes, 05 de noviembre de 1999
ENTORNO NO GRAFICO DE WINDOWS 95
El S.O W95, evoluciona de su antecesor MS−DOS ( Microsoft Disk
Operating System). Y al igual que este, W95 sigue estructurando la
información de carpetas en forma de árbol.
Un entorno no gráfico siempre es necesario, aunque no se use habitualmente,
puede ser vital cuando el sistema grafico no puede ser inicializado, o tiene
algún fallo de configuración que solo puede ser reparado mediante un sistema
no gráfico.
9
Cuando abrimos una ventana MSDOS en w95, o reiniciamos el sistema en
MSDOS, los primero que nos aparece en pantalla es algo como esto C:\>, se
denomina PROMPT, y nos marca el directorio o carpeta donde actualmente
estamos situados.
Estemos en la unidad que estemos, siempre partimos de un directorio raíz,
que se representa con el carácter `\'. Por eso se dice que es una estructura
jerárquica de niveles.
Toda carpeta o directorio tiene un nombre, y si estamos situados en una
carpeta, el PROMPT nos dirá su ruta ( PATH) y el nombre de la misma.
Creación, posición y borrado de carpetas en modo no gráfico.
Comandos para trabajar con directorios:
• <MKDIR> O <MD> : Nos permiten crear un directorio. Su modo de
uso:
MD [unidad:]nombre_de_directorio
• <RMDIR> O <RD> : Comando que elimina carpetas o directorios.
Para borrar una carpeta tiene que estar vacía, y además no podemos
estar posicionados en ella.
• <CHDIR> O <CD> : Estos comandos nos permiten posicionarnos en
un directorio, avanzando con <CD> o retrocediendo con <CD..> para
retroceder un nivel, <CD...> para retroceder dos niveles, y <CD\>
para posicionarnos en el directorio raíz de la unidad.
• <DELTREE> : Borra un directorio o carpeta y todo su contenido
(todos sus posibles ficheros). Una vez borrado un directorio, la
información y ficheros que este contenía no podrán ser recuperados.
Si hacemos un DELTREE al directoria raíz, estaríamos borrando
todo el contenido de la unidad.
Se puede utilizar un nombre de ruta o PATH, para indicar al comando, donde
se tiene que situar dicho comando para ejecutar la acción. Esto nos ahorra
tener que situarnos nosotros en dicha carpeta para ejecutar el comando sobre
la carpeta en la que queremos trabajar.
Con esta colección de comandos podemos manejar las estructuras de
directorios o carpetas.
Cada carpeta que creamos nueva, genera dos nuevas entradas:
. <DIR>
.. <DIR>
El punto hace referencia al propio directorio. El punto, punto hace referencia
al directorio principal. Estos puntos representa de forma gráfica el nivel de
carpeta o directorio en el que esta colocada dicha carpeta.
En una ruta o PATH, jamás podrán existir espacios en blanco, ya que la
estructura de archivos es una estructura rígida.
10
Comandos para la gestión de ficheros.
• <DEL> : Este comando, elimina solo ficheros, pero en ningún caso
puede usarse para eliminar directorios o carpetas. Su modo de uso:
DEL [unidad:]Nombre_del_Fichero
Posibles usos de DEL:
< DEL *.* > Para borrar todos los nombres de ficheros con todas las
extensiones. Es decir, borrar todos los ficheros.
< DEL F*.*> Para borrar todos los archivos que comiencen por F, dando
igual los caracteres siguientes a la F y la extensión de los archivos.
Los *´s representan todos los caracteres posibles a partir de donde están
situados.
< DEL F?.*> Para borrar todos los archivos que comienzan por F y que
tienen un carácter desconocido seguido de la F, dando igual su extensión.
Este modo del uso de DEL no borra todos los archivos que comiencen por F,
si no todos los archivos que comiencen por F y que sigan de tan solo un
carácter que no es conocido.
La interrogación a diferencia del *, solo sustituye el carácter donde esta
situada.
jueves, 11 de noviembre de 1999
LOS DISCOS
Se componen de:
• PISTAS
• SECTORES
• CILINDROS
Todos los discos tienen una estructura similar. Están divididos en pistas y
sectores. En el caso de un multipack ( un disco duro, donde hay mas de un
plato) aparece un tercer elemento que son los cilindros.
PISTAS: Círculos concéntricos que van desde el exterior al interior. Las
pistas están numeradas, a la mas exterior se la denomina Pista 0 que es donde
se encuentra la FAT(File Alocation Table). En la FAT se graba la pista, el
sector y en el caso de los multipack el cilindro, que corresponde a la
dirección donde se han grabado los datos.
SECTORES: Porciones de pistas. Sirven como unidades de
direccionamiento. Cada vez que leemos un disco estamos leyendo sectores
dentro de alguna pista. En cada sector entran 512 Kb, tanto en la pista cero,
como en la ultima pista.
Cuanto mas pequeño sea el sector, mas densidad de grabación tiene, por lo
que la densidad del sector es directamente proporcional al tamaño del mismo.
11
CILINDROS: Solo aparecen en multipack (discos con mas de un plato). Un
cilindro nos indica las mismas pistas y sectores en todos los discos, es decir,
pistas y sectores que coinciden en un mismo plano.
DISCOS FLEXIBLES
Discos 3 ½ de 1,44 Mb: Tienen 80 Pistas, numeradas de la pista cero a la
pista 79. Se componen de 18 sectores.
Discos 3 ½ de 720 Kb: Tienen 80 pistas, numeradas de la pista cero a la pista
79. Se componen de 9 sectores.
Los discos duros no tienen una cantidad fija de sectores y pistas, ya que
depende de los fabricantes y de la capacidad del disco.
COMANDOS
<CLS>: Abreviatura de Clean Screen, su única utilidad es la de borrar la
pantalla. Su modo de uso es tan simple como escribir el comando CLS.
<COPY>: La utilidad de este comando es la de duplicar datos de un sitio
origen a un sitio destino. Su modo de uso:
C:\> COPY [unidad:]nombre_fichero [unidad:]nombre_fichero
Ej.:
C:\> COPY AUTOEXEC.BAT A:\PEPE.BAT
En este caso además de copiar el fichero autoexec.bat en la unidad A,
estaríamos renombrando el archivo como PEPE. Esto ocurre cuando
especificamos un archivo destino con un nombre diferente al de origen.
Otros parámetros de COPY:
Unidad PRN: :Este unidad hace referencia a la impresora. Si esta unidad es
introducida como destino en un comando COPY, el destino de la copia será
sacar por impresora el contenido del archivo origen.
Ej.:
C:\> COPY *.BAT PRN:
Unidad CON: : Esta unidad hace referencia a la pantalla, de modo que si
usamos esta unidad como destino en un comando COPY, el contenido del
archivo origen será representado en pantalla.
Parámetro NUL: Este parámetro o dispositivo suele usarse para ocultar la
información de salida por pantalla de un programa. Si utilizamos este
parámetro como destino en un comando COPY, no estaremos haciendo nada,
ya que estamos duplicando la información en ninguna parte. Si este mismo
parámetro se utiliza como destino en el comando MOVE, estaremos borrando
12
información, ya estamos moviendo datos a ninguna parte.
lunes, 15 de noviembre de 1999
<MOVE> : En lugar de copiar ficheros, los mueve. Su modo de uso, es igual
al de copy. Ej.:
C:\>MOVE *.BAT C:\DOS\
<XCOPY> : Este comando se diferencia del copy, en que también puede
copiar estructuras con carpetas y subcarpetas. Su modo de empleo es el
siguiente:
Ej.:
C:\>XCOPY <ORIGEN> <DESTINO>
Colocando el indicador /S después del destino, copiaremos las carpetas,
subcarpetas y todos los ficheros contenidos en ellas.
<TYPE> : Mediante este comando podemos visualizar el contenido de un
fichero. Podemos visualizar cualquier tipo de fichero.
[unidad:] nombre_fichero
Ej.: Para ver el contenido del archivo config.sys
C:\>TYPE CONFIG.SYS
El comando type, solo puede representar un único archivo por ejecución, por
lo que si cuando ejecutamos este comando, le indicamos que visualice varios
archivos producirá un error. Ej.:
C:\>TYPE *.BAT
Si queremos visualizar el contenido de mas de un archivo en pantalla,
deberemos utilizar el siguiente comando:
C:\>COPY *.BAT CON:
<REN> Este comando sirve para renombrar un fichero. Su modo de uso:
[unidad:]nombre_fichero nuevo_nombre
Ej.:
C:\>REN C:\>CONFIG.SYS PEPE.BAT
En este comando, no podemos señalar la ruta de destino, ya que se entiende
que va ha ser la misma que la de origen, si la utilizáramos el programa o
comando nos daría error. Ej.:
13
C:\>REN C:\CONFIG.SYS C:\PEPE.BAT
Este forma de llamada a REN daría error.
<DIR> : Este comando visualiza el contenido de un disco. Muestra el
nombre, las extensiones, la fecha y hora de creación o modificación y
también el tamaño de los archivos existentes en el disco duro. Debido a que
los monitores en modo no gráfico, disponen de 23 líneas, la representación en
pantalla esta limitada. Para solucionar este problema utilizamos el parámetro
/P. Ej.:
C:\> DIR /P
Este comando lo que hace es mostrarnos el contenido de 23 en 23 líneas,
pidiéndonos confirmación cada 23 líneas para representar las 23 siguientes.
Para mostrar la información en columnas utilizamos el parámetro /W. Este
parámetro nos muestra únicamente los nombres, omitiendo toda clase de
detalles como son el tamaño, la fecha, etc.. Ej.:
C:\>DIR /W
Para ver el contenido de todos los directorios, subdirectorios y archivos que
estos contienen, utilizamos el parámetro /S. Ej.:
C:\>DIR /S
Si queremos utilizar DIR como un comando de búsqueda, deberemos indicar
un nombre de fichero, con una ruta donde el comando DIR deberá buscar el
archivo en cuestión. Ej.:
C:\>DIR archivo.bat /S
Este comando buscaría el archivo.bat en todo el disco duro, incluyendo las
subcarpetas de todos las estructuras.
Si deseamos visualizar solo los directorios o archivos que no tengan ninguna
extensión usaremos la forma:
C:\>DIR C:*.
Si solo deseamos visualizar los directorios, usaremos esta forma:
C:\DIR /A:D
Si deseamos visualizar los archivos de sistema, que existen en el disco duro
utilizaremos la siguiente forma:
C:\>DIR /A:S
Si deseamos visualizar los archivos de solo lectura, que existen en el disco
duro, utilizaremos la siguiente forma:
14
C:\>DIR /A:R
Cuando hacemos un DIR, la información sale ordenada tal y como figura en
la FAT(File Alocation Table). Si queremos visualizar la información
ordenada por el nombre y no por la FAT, utilizaremos la siguiente forma:
C:\>DIR /O:N
IMPORTANTE: Los nombres de ficheros en el entorno no gráfico de
Windows 9x, soportan un nombre de 8 caracteres y una extensión de 3. Si en
Windows 9x creamos un archivo que supere en el nombre los ocho
caracteres, en un entorno no grafico el nombre del fichero contendría el
símbolo ALT 126 en el carácter numero siete.
FICHEROS DE ENTORNO BATCH O BAT
Son ficheros ejecutables del S.O y se comporta prácticamente igual que un
EXE y un COM en cuanto a su llamada, ya que para ejecutar un BAT, tan
solo deberemos hacer referencia a su nombre. Sin embargo lo que diferencia
un BAT de un programa normal, es que un programa cuando produce un
error detiene su ejecución sin finalizar el mismo, mientras que un BAT no
finaliza hasta que no ejecuta la última instrucción. En un archivo BAT cada
línea es una instrucción y se ejecutan por orden descendente, es decir de
arriba abajo.
El BAT más famoso por excelencia es AUTOEXEC.BAT, ya que es el
responsable de la configuración del sistema bajo MSDOS.
Mientras un BAT este en ejecución, el usuario no tendrá el control de la
maquina, ya que se omitirá el PROMPT hasta la finalización del mismo.
Dentro de un archivo BATCH, podremos ejecutar:
♦ Comandos propios del S.O .
♦ Llamadas a Programas ejecutables (EXE, COM).
♦ Comandos propios de los ficheros BATCH.
♦ Comentarios del programa.
Para crear un fichero BATCH debemos ayudarnos de un editor
ASCII(American Standard Code Information Interchange)
martes, 16 de noviembre de 1999
En cada línea del archivo BAT ha de ir un comando de MSDOS.
COMANDOS PROPIOS DE FICHEROS BATCH
• <ECHO> Este comando sirve para utilizar comentarios externos, es
decir, visibles para el usuario. Su modo de uso es el siguiente:
echo comentario
Ej.:
15
CLS
ECHO Creando Carpetas...
MD \1
MD \2
TYPE FICHERO
• <ECHO OFF> Este comando desactiva la salida de las ordenes en
pantalla. Para que esta línea tampoco aparezca hay que precederla de
una @. Su modo de uso es el siguiente:
@echo off
Ej.:
@echo off
CLS
MD \1
MD \2
• <ECHO.> Este comando produce una línea en blanco o salto de
línea. Su modo de uso es echo seguido de un punto.
echo.
Ej.:
@echo off
CLS
MD \1
MD \2
echo.
echo.
echo Esto es un comentario que aparece dos líneas después.
• <REM> Establece comentarios internos para el programador en un
programa BAT. Usaremos tantos REM como líneas usemos para el
comentario. Ej.:
REM Esto es un comentario interno
REM que sigue en esta línea.
16
• <PAUSE> Produce una parada momentánea durante la ejecución de
un programa.
Ej.:
@echo off
cls
MD \1
MD \2
ECHO Las carpetas han sido creadas con éxito.
Pause
• PARÁMETROS SUSTITUIBLES: Se hace referencia a ellos
dentro del programa, pero se declaran en la llamada al propio
programa BAT. Estos parámetros van precedidos del símbolo % , y
tienen un rango del 0 al 9, siendo el 0 el propio nombre del BAT.
Ej.:
C:\>NOMBRE C1 C2 C3
NOMBRE.BAT
@echo off
md \%1
md \%2
md \%3
Donde %1 seria igual C1, %2 a C2 y C3 a %3. En definitiva funcionan como
las variables en un exe. Un parámetro puede ser utilizado las veces necesarias
en un mismo programa BAT.
Al ejecutar este BAT, y poner los tres parámetros en la línea de comandos al
llamar al programa, que en este caso serian tres nombres de directorios, el
BAT crearía tres directorios con el nombre que le hayamos indicado, en el
caso del ejemplo crearía tres directorios con el nombre de C1, C2 y C3.
• <IF> Es utilizado para evaluar condiciones lógicas dentro de un
programa BAT. También puede ser utilizado para saber si el usuario
ha escrito los parámetros necesarios en la línea de comando del DOS.
Su forma de uso:
IF %1 = = VIS TYPE %2
Otro ejemplo:
17
IF X%1 = = X Salto
/* Este se utiliza para saber si se han escrito parámetros suficientes */
• <GOTO> El goto y un nombre de etiqueta precedido por dos puntos
produce un salto incondicional hasta la etiqueta. Identificamos una
etiqueta mediante los dos puntos que la preceden. Esto hace que un
programa BATCH pueda tener finales diferentes.
El salto incondicional puede ser ascendente o descendente, es decir puede
salta de una línea posterior a la etiqueta o desde una línea anterior a la misma.
Ejemplo de GOTO:
@echo off
cls
if not %1 == A goto si
echo %1 es igual a A.
Goto end
:si
echo %1 no es igual a A
goto end
:end
En el caso de que el usuario no escriba parámetros se entenderá que no sabe
utilizar el programa y por tanto será buena una sección de ayuda.
VERIFICAR CARPETAS O FICHEROS CON EL CONDICIONAL IF
• Verificar ficheros:
Podemos comprobar la existencia de cualquier fichero de la forma:
IF [NOT] EXIST file_name COMANDO
• Verificar carpetas:
Podemos verificar carpetas de la siguiente forma:
IF EXIST %1\NUL GOTO SI
Esto se debe a que todas las carpetas existentes contienen un NUL,
independientemente de que contengan ficheros o no, basta con que exista un
directorio con el nombre especificado.
EJERCICIO: Desarrollar un programa BATCH que reciba como parámetro
un nombre de fichero o directorio, y en el caso de ser un fichero visualizar su
18
contenido en pantalla, en el caso de que sea un directorio visualizar su
estructura en pantalla:
@ECHO OFF
CLS
IF X%1=X GOTO AYUDA
IF EXIST %1\NUL GOTO DIRECT
IF EXIST %1 GOTO FILE
ECHO EL DIRECTORIO O ARCHIVO NO EXISTE
GOTO FIN
:DIRECT
DIR %1 /P
ECHO DIRECTORIO HA SIDO VISUALIZADO
PAUSE
GOTO FIN
:FILE
TYPE %1
ECHO FICHERO HA SIDO VISUALIZADO
PAUSE
GOTO FIN
:AYUDA
ECHO ESCRIBA UN NOMBRE DE ARCHIVO O DIRECTORIO
GOTO FIN
:FIN
ECHO PROGRAMA FINALIZADO
jueves, 25 de noviembre de 1999
PARÁMETROS INFINITOS
Para no tener que hacer un reconocimiento por cada parámetro( verificar si
19
existe y que tipo de parámetro es), utilizamos el comando SHIFT y un bucle.
El comando SHIFT se encargara de ir desplazando el numero del parámetro
para que todos vayan pasando por el bucle. Esto lo hace restando una
posición a todos los parámetros cada vez que se ejecuta, de modo que el
parámetro dos pasa a ser el parámetro uno y el parámetro 1 pasa a ser el
parámetro 0.
Si queremos procesar en cada bucle una pareja de parámetros deberemos
ejecutar el SHIFT dos veces, uno debajo de otro.
Ej.:
@echo off
cls
if x%1= =x goto ayuda
:inicio
if x%1= =x goto fin
if exist %1\nul goto visual1
if not exist %1 goto error
type %1
pause
goto salto
:visual1
dir %1
pause
:salto
shift
goto inicio
:ayuda
echo Temas de Ayuda
pause
goto fin
20
:error
echo Tipo de error
pause
goto salto
:fin
echo Mensaje de Salida
Ejercicio:
Hacer un programa que reciba un numero indeterminado de parejas de
parámetros, siendo cada parámetro el nombre de un fichero. El primer
parámetro será el origen de una copia y el segundo el destino. En caso de que
el destino exista se informará al usuario y no se realizara la copia.
@echo off
cls
if %1x==x goto ayuda
if %2x==x goto error
:inicio
if %1x==x goto salida
if %2x==x goto error
if not exist %1 goto error
if exist %2 goto existe
copy %1 %2
:salto
shift
shift
goto inicio
:error
echo Falta la pareja Destino
goto salida
21
:ayuda
echo Temas de ayuda
goto salida
:salida
REDIRECCIONAMIENTO
Modificar la entrada o salida estándar ( PANTALLA)de un comando:
Esta función se puede realizar con el comando > . Ej.:
TYPE FICH.TXT > PRN
Este comando enviaría toda la información que contiene el archivo de texto
FICH a la impresora.
Siempre deberemos indicar tras el símbolo de redireccionamiento un archivo
o dispositivo donde serán expuesto los datos.
Si utilizamos un signo de direccionamiento y ponemos como destino un
archivo existente, machacará su contenido, si el archivo no existe lo creara
automáticamente. Para que no sobrescriba un archivo existente deberemos
utilizar dos signos de direccionamiento de la siguiente forma:
TYPE AUTOEXEC.BAT >> AUTOEXEC.BAK
Si ponemos como destino la unidad NUL, la representación de los datos no se
realizara en ningún caso. Tampoco creará ningún archivo.
COMANDO FOR
Existe un comando FOR para usar en los archivos BATCH:
FOR %%A IN (...............) DO ECHO %%A
El comando FOR repite el comando DO tantas veces como elementos existan
dentro de los paréntesis.
INSTALACIÓN DE WINDOWS 95
Lo normal es que se instale en otro sistema operativo. Windows puede ser
instalado bajo MSDOS 3.2x o superior. Por lo que se puede instalar
directamente desde MSDOS.
Durante la instalación deberemos facilitarle un nombre de usuario, un
nombre para la estación de trabajo y si hay establecidos grupos de trabajo,
también nos pedirá un nombre para el grupo de trabajo.
Existen cuatro tipo de instalaciones:
22
• Instalación típica: Es la instalación predeterminada y se recomienda
normalmente por la mayoría de los usuarios. La intervención del
usuario es mínima. En este tipo de instalación se nos pide:
⋅ Directorio de Instalación
⋅ Identificación del usuario y del equipo, y si trabajamos en red también el de
grupo.
⋅ Confirmación para crear un disco de inicio.
• Instalación portátil: Se recomienda para usuarios que utilizan PC
portátiles, incluye ficheros y programas adecuados para este tipo de
equipos. En esta instalación figurará el icono de mi maletín en el
escritorio. Se instala software para el intercambio de información
mediante un conector de red o cable.
• Instalación Compacta: Es la opción utilizada para los usuarios que
tienen un espacio limitado en el disco duro, instala únicamente los
programas necesarios para ejecutar Windows 95. Esta instalación
ocupa unos 19 MB.
• Instalación personalizada: Opción para usuarios que desean
seleccionar configuraciones de aplicaciones personalizadas. Se deben
especificar los componentes de la red y configurar los distintos
dispositivos. Solo instalara aquellos programas que hemos
seleccionado.
PROCESO DE INSTALACIÓN DE WINDOWS 95
⋅ Modificación de los registros de inicio:
Windows 95 guarda el S.O que había antes de instalar w95. Si instalamos
w95 en un disco duro que no este gobernado por ningún S.O, w95 se limitará
a instalar sus archivos de instalación propios.
La instalación cambiará los nombres de los archivos de inicialización de
MSDOS existentes y copia los ficheros IO.SYS y MSDOS.SYS. Mueve y
modifica los registros y la pista de inicialización para que señalen al nuevo
fichero <<IO.SYS>>.
W95 guarda los archivos IO.SYS y MSDOS.SYS en un sector diferente, por
lo que habrá que decirle al IPL la dirección de los nuevos archivos. La
primera vez que se inicia la estación de trabajo, se lleva a cabo la
configuración adicional de la pila de inicialización. Un vez se finaliza la
instalación el sistema solicita ser reinicializado.
Para que un S.O reconozca los cambios deberemos reinicializar la maquina.
Una vez que Windows 95 ha copiado todos sus ficheros al disco duro, realiza
una sustitución de los archivos CONFIG.SYS y AUTOEXEC.BAT por los
ficheros que permiten que el cargador de inicialización o IPL acceda de modo
real a los discos duros, una vez inicializado se carga el fichero WIN.COM
que cargará el S.O al completo.
Con MSDOS, el S.O era configurado mediante los archivos CONFIG.SYS y
AUTOEXEC.BAT. En w95 estos dos archivos pasan a un segundo plano y
cobran mas importancia los archivos WIN.INI y SYSTEM.INI que forman
parte del registro de configuración de Windows 95.
23
Windows 95 usa los ficheros CONFIG.SYS y AUTOEXEC.BAT para
agregar información sobre la pagina de códigos y la distribución del teclado.
Windows 95 administra la memoria sin necesidad de cargar el gestor
HIMEM.SYS mediante el archivo de configuración CONFIG.SYS ya que
HIMEM.SYS es cargado mediante Windows 95 automáticamente al
iniciarse.
Ahora no es necesario AUTOEXEC.BAT para el arranque de Windows 95,
ya que es W95 quien pasa el entorno inicial al COMMAND.COM con los
directorios WINDOWS y \WINDOWS\COMMAND ( o el directorio donde
esta instalado el S.O).
Los ficheros antiguos de MSDOS los guarda con extensión
*.DOS.(config.dos, autoexec.dos, command.dos).
Estos archivos se deben a la inseguridad que hubo con W95 en los dias
posteriores a su lanzamiento, ya que no se sabía con seguridad si iba a
funcionar correctamente.
INTRODUCCIÓN A LA ARQUITECTURA DE W95
Un procesador 80386 o superior puede dar soporte a varios niveles de
privilegios para código ejecutable. Los distintos anillos proporcionan
diferentes tipos de protección y niveles de privilegio. W95 nos ofrece los
distintos niveles:
Windows 95 tienes los anillos 1 y 2 pero no los utiliza. La transición entre
anillos tarda una cantidad de tiempo relativamente grande, haciendo que
algunos procesadores puedan tardar hasta diez veces más en completar la
24
transición del anillo que en ejecutar el código que llama la transición.
Puesto que se proporciona suficiente protección mediante la utilización de
dos anillos, w95 optimiza la velocidad y la protección utilizando los anillos 0
y 3. Windows NT también utiliza los anillos 0 y 3. ( El anillo 1 y 2 solo
funcionan como filtros pero no se utilizan para nada.
CONTROLADORES EN EL SISTEMA WINDOWS
Un controlador es un conversor de software que acepta los diversos
comandos del sistema operativo y los convierte en un comando especifico
para un determinado elemento del hardware.
Cuando usamos un comando del S.O, el controlador lo adapta
automáticamente al dispositivo al que esta dirigido. Hace que podamos
trabajar con el. La utilización de controladores permiten que las aplicaciones
sean independientes al hardware que las usa. Por tanto podemos cambiar el
hardware sin que afecte a la aplicación en cuestión.
Los controladores conectan Windows al hardware y proporcionan
independencia al dispositivo, si instalamos nuevo hardware podemos crear un
nuevo controlador sin que sea necesario reinstalar el sistema operativo.
TIPOS DE CONTROLADORES UTILIZADOS POR WINDOWS
• Controlador del Sistema
• Controlador del Teclado
• Controlador del Ratón
• Controlador de la Pantalla
• Controlador del Sonido
• Controlador de Comunicaciones
• Controlador de la Impresora
• Adaptador de Red
TIPOS DE CONTROLADORES COMPATIBLES PARA WINDOWS
Se utilizan para conservar la compatibilidad con las aplicaciones existentes.
Son los siguientes:
• Modo Real de MSDOS: Se carga en ficheros con extensión SYS.
Normalmente en CONFIG.SYS
• Modo Real de Windows 16 Bits: Se carga en ficheros con extensión
INI y DRV.
• Windows en Modo protegido: Se graba en ficheros con extensiones
VXD o 386.
Todos estos controladores se encuentran en la ruta \WINDOWS\SYSTEM y
se utilizan para asumir aplicaciones ya existentes para sistemas operativos
mas antiguos.
Si un nuevo controlador no da soporte a un dispositivo, el controlador de
MSDOS del archivo CONFIG.SYS se queda en un lugar y continua
funcionando.
25
Los controladores en modo real son controladores para ejecutarse bajo
MSDOS y no son tan seguros ni tan sólidos como los controladores en modo
protegido.
En modo protegido la protección la da el procesador. Los controladores en
modo protegido aprovechan la arquitectura de los 80386 y superiores,
permitiendo así un acceso mas rápido al dispositivo, sin utilizar los 640Kb
inferiores de la memoria. ( MSDOS y Windows en modo real se cargan en
los primeros 640kb.
REGISTRO DE CONFIGURACIONES
Lugar donde el sistema y las aplicaciones almacenan datos, por tanto es una
base de datos jerárquica y en forma de árbol que se almacena en dos ficheros.
Los ficheros reales que se utilizan pueden variar en función de la
configuración del sistema pero se dividen en un fichero que contiene las
configuraciones especificas de la maquina, normalmente se llama
SYSTEM.DAT y un fichero que contiene configuraciones específicas del
usuario, normalmente USER.DAT.
El registro de configuraciones tiene seis claves:
• HKEY_CLASSES_ROOT: Contiene la configuración del software y
permite que Windows se ejecute o imprima desde una aplicación
cuando se relaciona un fichero de datos especificado.
• HKEY_USERS: Clave de los usuarios y contiene información a
cerca de todos los usuarios de la estación de trabajo.
• HKEY_CURRENT_USER: Contiene la configuración específica del
usuario para el sistema y las aplicaciones, se crea en tiempo de
ejecución a partir de la información que se carga desde la entrada de
ese usuario en el registro de configuraciones de la clave
HKEY_USERS ( Se crea una clave para cada usuario que figura en
el HKEY_CURREN_USERS).
• HKEY_LOCAL_MACHINE: Clave de la maquina local, contiene
especificaciones para la estación de trabajo, los controladores y otras
configuraciones del sistema. Es información especifica de la maquina
a cerca del hardware, las asignaciones de los puertos y la
configuración actual del software. NO CONTIENE INFORMACIÓN
DE USUARIOS.
• HKEY_CURRENT_CONFIG: Contiene información a cerca de la
configuración actual del hardware conectado a la estación de trabajo.
Se utiliza principalmente cuando existen varias configuraciones para
la estación de trabajo y la información contenida en el registro de
configuraciones en la clave HKEY_LOCAL_MACHINE.
• HKEY_DYN_DATA: Contiene la información del estado dinámico
de los diversos dispositivos, dicha información se genera cada vez
que se inicia el sistema y se utiliza como parte de la información de
medida del rendimiento y también para la configuración PLUG AND
PLAY. (REGEDIT.EXE).
EQUIPOS VIRTUALES EN WINDOWS 95
26
Es un entorno creado por el sistema operativo y por el procesador que simula
los recursos de todo el equipo. MSDOS necesitaba todos los recursos para
ejecutar una aplicación. W95 simula a las aplicaciones MSDOS que tiene
disponibles todos los recursos del sistema.
Se presenta ante una aplicación como si se tratara de un equipo completo. Por
ello las aplicaciones tienen acceso virtual al hardware y a todos los demás
recursos.
Los equipos virtuales hacen que la programación sea más sencilla, de forma
que el programador no tiene que preocuparse de hacer un seguimiento del uso
del hardware o de otras aplicaciones, siendo el sistema operativo quien
realiza el seguimiento de las aplicaciones y del hardware, determinando de
que recursos puede disponer cada aplicación.
Un equipo virtual esta diseñado para trabajar en el anillo tres, todas las
aplicaciones basadas en Windows 95, funcionan en un equipo virtual
(Comparten un equipo virtual).
Windows 95 genera otro equipo virtual por cada aplicación basada en
MSDOS(1 por cada aplicación DOS y una para todas las aplicaciones de
W95).
El equipo virtual basado en aplicaciones de Windows 95 se denomina Equipo
Virtual del Sistema y va ha contener:
◊ Los componentes del sistema base:
♦ Núcleo
♦ S.O
♦ Usuarios
♦ Id. Grupo
Y contiene además un espacio de direcciones compartido por aplicaciones
basadas en 16 bits, y otro espacio de direcciones separado para cada
aplicación basada en Windows de 32 bits.
APLICACIONES BASADAS EN MSDOS
Esperan disponer de acceso directo y exclusivo al hardware, cada aplicación
basada en MSDOS, y que se ejecuta en Windows 95 utiliza un equipo virtual
distinto. Ya que necesita de todos los recursos del sistema.
APLICACIONES BASADAS EN WINDOWS 16 BITS
Comparten un único espacio de direcciones en el equipo virtual del sistema,
siendo posible que una aplicación de 16 bits entre en la memoria RAM de
otra aplicación basada en Windows de 16 bits. Siendo esto necesario para
permitir la compatibilidad con las aplicaciones de 16 bits existentes, que
esperan poder interactuar entre si, compartiendo la memoria de esta forma.
APLICACIONES BASADAS EN WINDOWS 32 BITS
Cada aplicación tiene su propio espacio de direcciones en el equipo virtual
27
del sistema y estos espacios están protegidos por el hardware (Normalmente
por el procesador). Por tanto no pueden entrar en la memoria RAM de otra
aplicación de forma exclusiva.
PROCESOS Y TAREAS
Enfocado a Windows 95:
Procesos: Un proceso es esencialmente una aplicación, y cada proceso tiene
memoria y acceso a los recursos del sistema. Un proceso para Windows 95 es
una aplicación o un programa (Conjunto de todas las instrucciones de las que
se componen). Es un programa ejecutable que define los datos y el código
inicial.
Un espacio de direcciones de memoria en el que se almacenan los datos y el
código del proceso, los recursos del sistema, y al menos una tarea para
ejecutar el código. Cada proceso ejecuta al menos una tarea.
Las aplicaciones basadas en MSDOS y Windows de 16 bits tienen una sola
tarea por proceso, de modo que si ejecutamos una aplicación de este tipo,
vamos a tener una aplicación en espera, en ejecución o bloqueada.
Las aplicaciones de 32 bits pueden tener varias tareas por proceso, de modo
que mientras se esta ejecutando un proceso de impresión, podemos editar un
fichero de texto.
Tareas: Unidad de ejecución, es el componente real de un proceso que se
ejecuta en un momento dado. Además una tarea que se ejecuta utiliza el
espacio de direcciones del proceso y los recursos asignados a dicho proceso.
¿ Que comprende una tarea ?
Comprende un estado del procesador que incluye el puntero de la instrucción
actual. La tarea guarda la instrucción en ejecución.
Windows 95 dispone de una pila para utilizarla cuando se ejecuta en modo
usuario (Pila se define como una estructura de datos en memoria) y ademas
tiene una pila cuando se ejecuta para ser utilizado en modo núcleo. Utiliza la
pila para ejecutar procesos del anillo 0 o del anillo 1.
En un programa de múltiples tareas el programador tiene la responsabilidad
de garantizar que las tareas no se interfieran una con otras, esto puede
conseguirse utilizando recursos compatibles, de forma que no se entre en
conflicto con una tarea que esta utilizando un determinado recurso.
TIPOS DE MULTITAREA
Dos tipos:
♦ Multitarea con asignación prioritaria
♦ Multitarea con asignación cooperativa
Dependiendo de una aplicación u otra utiliza un tipo de multitarea o el otro.
28
MULTITAREA DE ASIGNACIÓN PRIORITARIA
Cada tarea se ejecuta durante un periodo de tiempo preestablecido o hasta
que otra tarea con prioridad superior este preparada para
ejecutarse(Básicamente es un tiempo compartido, con la diferencia que una
aplicación con preferencia se ejecuta antes que las de menos preferencia).
La planificación la lleva a cabo el Sistema Operativo sin la participación de
la aplicación. Esto es así para evitar que una aplicación pueda monopolizar el
procesador.
Para impedir que tareas de diferentes procesos accedan a un recurso que no
se pueda compartir la aplicación puede establecer semáforos para bloquear el
recurso hasta que se deje de ejecutar y el recurso quede libre. ( Un semáforo
es un indicador para informar que recursos están disponibles).
Las aplicaciones basadas en MSDOS y Windows 32 bits utilizan la
multitarea con asignación prioritaria, las aplicaciones MSDOS eran
monotarea y por tanto serían incompatibles con Windows 95 si no
incorporasen este tipo de multitarea.
MULTITAREA CON ASIGNACIÓN COOPERATIVA
También denominada sin asignación prioritaria, una tarea se ejecuta hasta
que renuncia voluntariamente al procesador, la aplicación determina cuando
deja de ejecutarse la tarea, las aplicaciones de 16 bits se ejecutan en este tipo
de multitarea.
El repartidor de multitarea con asignación prioritaria trata a todas las
aplicaciones de 16 bits como una única tarea. Esta multitarea es necesaria
para mantener la compatibilidad con las aplicaciones de 16 bits que esperan
poder controlar sus propia ejecución.
MEMORIA VIRTUAL EN WINDOWS 95
Windows 95 virtualiza la memoria de la misma forma que virtualiza la
maquina y los controladores. Esto permite que las aplicaciones se comporten
como si tuvieran su propia memoria RAM física.
La memoria virtual es la forma en que un programa ve a la memoria(Ya que
la tienen toda virtualmente). A cada aplicación se la asigna un espacio de
direcciones virtuales exclusivo, que será el conjunto de direcciones de
memoria que utilizará para la paginación.
Las aplicaciones acceden a memoria a través de direcciones virtuales que el
administrador de memoria de Windows 95 asigna a direcciones físicas que
comprenden ubicaciones de la memoria RAM o del HD.
El S.O puede asignar más memoria de la que esta físicamente disponible en
la estación de trabajo utilizando las posibilidades de paginación en función de
la demanda del procesador.
29
Para ese fin el código del programa y los datos que se encuentran en la
memoria física pueden trasladarse a un fichero de intercambio real que se
encuentra en el HD.
El fichero de intercambio cambia de tamaño según las necesidades del
sistema, si el espacio de la unidad de disco empieza a escasear, se disminuye
el tamaño del fichero, si por el contrario a espacio suficiente y se necesita
memoria se aumenta el tamaño del fichero.
PLUG & PLAY (CONECTAR Y LISTO)
Es tanto una filosofía de diseño como un conjunto de especificaciones sobre
la arquitectura específicas de PC´s. Se trata de un conjunto independiente de
especificaciones desarrollado por un grupo de fabricantes de Hardware y de
empresas de Software.
La finalidad del PLUG & PLAY es permitir el cambio de la configuración
sin que sea necesaria la intervención del usuario. El sistema determina cual es
la configuración óptima y las aplicaciones se ajustan automáticamente con el
fin de aprovechar al máximo la nueva configuración.
Para las funciones Plug & Play Windows 95 incluye los siguiente
componentes:
• El administrador de configuraciones: Es el software que controla el
proceso de configuración y mediante el cual puede establecerse la
comunicación con todos los componentes que participan en dicho
proceso.
• El árbol de Hardware: Es una base de datos de información
almacenada en la memoria RAM que se utiliza para configurar el
sistema.
• Enumerador de Bus: Son controladores para identificar todos los
dispositivos de un bus concreto así como sus requisitos de recursos.
• Arbitro de Recursos: Son controladores que asignan recursos a todos
los dispositivos.
Arbitro de Recursos
Parte del sistema operativo que asigna tipos específicos de recursos a los
dispositivos que solicitan los mismos recursos. Si diferentes dispositivos
necesitan los mismos recursos, los dispositivos deben ser capaces de
proporcionar al sistema operativo información acerca de los requisitos de
recursos alternativos.
Siendo el Sistema Operativo quien utiliza esta información para identificar
una configuración que funcione. Son cuatro los recursos que controla el
arbitro de recursos:
⋅ Líneas de solicitud de interrupción (IRQ´s)
⋅ Canales de acceso directo a memoria (DMA´s)
⋅ Direcciones de memoria
⋅ Direcciones de puertos de E/S
30
Administrador de Configuraciones
Coordina todo el flujo de operaciones llevada a cabo por todo los
componentes implicados en la configuración.
Coordina la comunicación entre los enumeradores de Bus, el árbol de
hardware, el registro, los controladores de dispositivos y el arbitro de
recursos.
Notifica a los controladores de dispositivos y a las aplicaciones cualquier
cambio presente o pendiente en la distribución del sistema. Para trabajar o
configurar algo de manera manual lo haremos mediante el Administrador de
Dispositivos.
ADMINISTRADOR DE SISTEMAS DE ARCHIVOS INSTALABLES
Cada sistema operativo tiene un sistema de archivos diferente. El
administrador IFS(Install File System ) se encarga de la interacción de los
sistemas de ficheros.
Los controladores de los sistemas de ficheros son componentes del anillo 0.
Si falla el sistema de archivos, estará fallando inevitablemente el sistema
entero.
Windows 95 incluye tres sistemas de ficheros:
• VFAT: Tabla de asignación de ficheros virtual de 32 Bits.
• CDFS(CD Files System): Sistema de archivos del CDROM.
• REDIRECTOR: Se utiliza para el acceso a redes.
VFAT
Es el acceso a ficheros de 32 bits característico de Windows 95, se trata de un
fichero FAT de MSDOS virtual a 32 bits. El fichero VFAT.VxD es el
controlador que se encarga de la virtualización y utiliza código de 32 bits
para el acceso a todos los ficheros. Utiliza la FAT del MSDOS pero
ampliada.
COMPATIBILIDAD DE NOMBRES LARGOS
La longitud máxima de Windows 95 es de 255 caracteres, pero además le
asigna un nombre corto de 8 caracteres mas 3 de la extensión. Windows 95
no diferencia entre mayúsculas y minúsculas, pero si las respeta.
La ruta máxima que puede indicarse es de 260 caracteres.
El nombre de cada archivo es exclusivo. Para convertir un nombre largo a un
nombre corto Windows 95 coge los seis primeros caracteres e introduce el
símbolo ~ , le pone un indicador de frecuencia y coloca la extensión. Ej.:
Trabajo de Ciencias.Doc −> Nombre Largo
31
Trabja~1.Doc −> Nombre Corto
FINAL DEL PRIMER CUATRIMESTRE
SISTEMA OPERATIVO UNIX
⋅ ANTECEDENTES DE UNIX
• 1969: Ken Thompson de los laboratorios BELL desarrolla la primera
versión de este S.O. Unix podría funcionar con un solo usuario. Ken,
desarrollo este sistema para gobernar su propia maquina, pero con el
tiempo este sistema llegaría a los PC.
• 1971: Se rescribe el UNIX en lenguaje B. En este mismo año Dennis
Ritchie expande el lenguaje B dando paso al lenguaje C.
• 1973: Se vuelve a rescribir UNIX pero ahora en lenguaje C, dando
lugar a la versión UNIX 5.
• 1975: Aparece la versión UNIX 6 para entornos de investigación y
educación, además se comienzan a desarrollar los primeros permisos
de utilización( jerarquía de usuarios ).
• 1977: Se vuelve a rescribir el UNIX, dando paso a la versión UNIX
7, esta versión se lleva también a los PC.
• 1981: Aparece la versión UNIX III, es una actualización del UNIX 7.
Esta nueva versión incluye versiones de utilidades para el
mantenimiento de programas y es plataforma para los versiones
XENIX III y XENIX V (Xenix es un UNIX orientado al mundo del
PC.).
• 1983: Aparece la versión UNIX 5 ( también llamada UNIX
SYSTEM 5) y que es la esta actualmente en el mercado. El S.O ha
seguido evolucionado hasta ahora.
⋅ CARACTERÍSTICAS DEL ENTORNO UNIX
• Portabilidad: Es posible adaptar fácilmente el S.O a diferentes
ordenadores de distintos fabricantes. Puede ser un PC o un equipo
grande.
• Propósito General: Es un S.O al que se le pueden aplicar muchos y
diferentes entornos de usuario.
• Multitarea: Permite la ejecución simultanea de varias tareas.
• Tiempo Compartido: A cada tarea se le asigna un tiempo de
ejecución.
• Multiusuario: Mas de un usuario pueden acceder al sistema al
mismo tiempo. Vamos a utilizar una conexión al servidor para el
intercambio de ficheros, además para el intercambio de información
utilizaremos el protocolo FTP ( File Transfer Protocol ).
• Unix al igual que Windows 95 trabaja con el código ASCII(
American Standard Code )
• Interactivo: Cualquier usuario puede comunicarse con el sistema y
recibir respuesta inmediata a su solicitud de ejecución. Hay veces
que algún demonio se esta ejecutando y relentiza el funcionamiento
normal de la maquina.
• Fácil modificación y mantenimiento: Se debe a que es un S.O
escrito en lenguaje C, además es un sistema operativo abierto, por lo
que podemos modificar libremente los comandos y realizar su
mantenimiento.
32
• Estructura de Archivos: Utiliza una estructura jerárquica en forma
de arbol que permite una fácil organización de ficheros, tanto del
sistema como del usuario.
• Tenemos un directorio raíz, un directorio particular para cada
usuario, donde el usuario podrá realizar todas las operaciones en el,
sin embargo fuera de el solo lo que permita el administrador.
• Comunicaciones: Se pueden establecer redes de comunicación
UNIX a UNIX, por medio de unas utilidades aportadas por el propio
S.O ( Usa protocolo TCP/IP).
• Background Process: Consiste en pasar un proceso al estado
preparado para que se ejecute cuando la CPU esté desatendida,
devolviendo inmediatamente el control al usuario.
• Aporta facilidades para la automatización de procesos de oficina:
• Cada usuario tiene un correo dentro
del sistema.
• Dispone de un Noticiario para dar
noticias a todos los usuarios.
• Servicio de Mensajería en tiempo
real(CHAT).
• Permite la transferencia de
archivos entre usuarios.
⋅ ESTRUCTURA DE UNIX
Tiene una estructura de tres niveles y tiene forma de anillos ( Forma
envolvente).
La shell es diferente dependiendo del nivel de usuario.
KERNEL: También denominado núcleo del sistema operativo, en el se
gestionan los recursos del ordenador y se ocupa de los discos, cintas,
impresoras, terminales, líneas de comunicación, y cualquier otro dispositivo.
Cada vez que conectamos un terminal se lo tenemos que decir al S.O,
creando un fichero por cada terminal.( Todo lo que se conecta al sistema esta
representado por un fichero de configuración).
33
Las funciones del Kernel:
♦ Control de Acceso a discos.
♦ Control de Acceso a terminales y dispositivos de E/S
♦ Control de los procesos.
♦ Manejo de la memoria.
SHELL: Intermediario entre el usuario y el Kernell, y se encarga de
interpretar los comandos tecleados por el usuario y ejecutarlos. Existen
distintos tipos de Shell que dependen del nivel del usuario, por lo que existen
distintos intérpretes de comandos. ( El nivel lo asigna el administrador
cuando crea el usuario). Los distintos interpretes:
♦ Bourne Shell: Es la shell estándar, la mas corriente. Nos
permite hacer cosas importantes y tiene dos tipos de
PROMPT:
♦ $ : Lo utiliza el usuario final
♦ # : Lo utiliza el Súper Usuario.
⋅ C Shell : Es la shell utilizada en
programación C, se debe a que los comandos
son similares a los del lenguaje. Su prompt
es el % . Para usuarios que programen o
actualicen el sistema.
⋅ Virtual Shell: Exclusiva del S.O, enfocada a
entornos virtuales.
⋅ Restricted Shell: Es una shell en la que se
restringen los comandos a utilizar.
⋅ UUCP Shell: Shell especial orientada a la
transmisión de datos ( Cuando queremos
conectar dos equipos UNIX). Lo que hace es
que dependiendo del usuario hará unas cosas
u otras dentro del sistema.
APLICACIONES: Las aplicaciones siempre se ejecutan por
encima de la shell. Se divide en:
⋅ Lenguaje C, cobol, fortran, etc..
⋅ Utilidades ( Herramientas y comandos que
incluye el sistema operativo para facilitar la
labor al usuario.)
⋅ Otras aplicaciones que serán incluidas por el
administrador en el sistema operativo.
♦ CONCEPTOS BÁSICOS
♦ Concepto de Usuario: Es el propietario o creador de un
fichero o directorio. Persona que puede conectarse al
sistema. Podemos ceder la propiedad de un fichero o
directorio a otro usuario perdiendo los derechos sobre dicho
objeto.
♦ Concepto de Administrador: Encargado de mantener el
funcionamiento eficiente del sistema. Se encarga de las
siguientes funciones:
♦ Encendido y apagado lógico
del sistema.
♦ Instalar nuevas releases (
34
versiones ).
♦ Instalar nuevo software.
♦ Configuración de
dispositivo y usuarios.
♦ Optimización del sistema.
♦ Copias de seguridad (
Backup ).
♦ Concepto de Súper usuario:
Es un usuario especial que
tiene permitido el acceso a
las propiedades de todos los
usuarios y puede realizar
cualquier actividad. En
muchos entornos el súper
usuario también es el
administrador.
♦ Concepto de Grupo:
Conjunto de usuarios que
están dados de alta en el
sistema con las mismas
restricciones, permisos y
propiedades bajo un mismo
nombre.
Todo usuario pertenece a un
grupo de trabajo. Al crear
un usuario se le asigna una
Shell, un directorio y un
grupo de trabajo.
♦ Concepto de Resto: Todos
los usuarios que no
pertenecen al grupo del
propietario de un fichero.
Para los usuarios
pertenecientes a un mismo
grupo el resto se refiere a
todos los usuarios ajenos a
dicho grupo.
ALMACENAMIENTO
DEL S.O EN EL HD
Principales directorios:
/ ROOT: Directorio Raíz,
de este directorio parten
todos los demás directorios,
este directorio siempre
existe. Se representa con la
barra / y no con \ como en
Windows 9x, en ningún
35
caso se utilizara la palabra
ROOT para acceder al
directorio raíz.
◊ Directorio < bin >:
Contiene ordene o
comandos del
sistema. Cualquier
librería del sistema
esta dentro de este
directorio.
◊ Directorio < dev >:
En este directorio se
encuentran los
drivers o
dispositivos
periféricos
conectados al
sistema, ya que
cualquier periférico
que este conectado
al mismo tiene un
fichero de
configuración en
este directorio, por
lo que si no existe el
archivo dentro del
directorio no existe
el periférico.
◊ Directorio < etc >:
En el se encuentran
ficheros del sistema
y configuración,
este directorio
contiene a su vez
directorios y
archivos que pueden
ser modificados,
pero que en ningún
36
caso pueden ser
borrados.
◊ Directorio < lib >:
En este directorio se
encuentran las
librerías del sistema.
Podemos encontrar
programas que
podemos añadir al
S.O.
◊ Directorio < tmp >:
Almacena ficheros
temporales creados
por el sistema.
Existen más
directorios
temporales ( Para
poder añadir una
disquetera sobre
ellos ).
◊ Directorio < usr >:
Normalmente se
encuentran los
directorios de
trabajo de los
usuarios que están
dados de alta en el
sistema y existe un
directorio de trabajo
por cada usuario,
donde este podrá
hacer lo que quiera.
Además este
directorio contiene:
• Directorio
<
adm
>:
Contiene
ficheros
de
administració
• Directorio
<
bin
>:
Al
estar
enlazado
con
el
directorio
37
<
bin
>
ubicado
en
el
directorio
root,
siempre
van
a
contener
ambos
los
mismos
directorios
y
ficheros.
• Directorio
<
lib
>:
Al
igual
que
el
anterior
es
un
enlace
con
el
directorio
<
lib
>
ubicado
en
el
directorio
root.
• Directorio
<
spool
>:
Contiene
directorios
y
ficheros
relacionados
con
la
38
cola
de
impresión.
Cuando conectamos al
servidor, este nos sitúa
automáticamente en el
directorio correspondiente a
nuestro username y
password. A este directorio
se le denomina directorio de
conexión.( Cada usuario
dispone de su propio
directorio de conexión ).
PERMISOS EN UNIX
Todos los ficheros o
directorios del sistema
tienen tres tipos de permisos
que indican el tipo de
operación que se puede
realizar sobre ellos.
Dependiendo de si es un
fichero o un directorio se
podrá hacer una cosa u otra.
Los permisos son los
siguientes:
◊ Permiso de lectura
< r >: Para un
fichero significa
poder leer el
contenido del
mismo ( si este es
código ASCII o
ANSI ). En el caso
de un directorio, va
ha significar que los
archivos que estén
dentro del directorio
no están protegidos
contra lectura, y por
tanto, podremos
listar el contenido
del mismo y ver el
contenido de los
ficheros contenidos
en dicho directorio.
◊ Permiso de
escritura < w >: En
un fichero significa
39
que podemos
modificar el
contenido de un
fichero, al igual que
podemos eliminarlo.
En el caso de un
directorio nos
permite añadir
ficheros y borrarlos,
también podríamos
borrar el directorio.
◊ Permiso de
ejecución < x >: En
el caso de n fichero
nos permite
ejecutarlo siempre y
cuando este fichero
sea ejecutable. En el
caso de un
directorio, significa
que nos permite
posicionarnos
dentro del directorio
para ejecutar
cualquier programa
que este contenga.
Si el sistema no nos permite
modificar un archivo del
sistema, realizamos una
copia del fichero, al haber
creado nosotros dicha copia,
somos propietarios de ese
fichero, por lo podemos
hacer con el lo que
queramos, y por tanto
trabajar libremente sin
restricciones.
Cada fichero del sistema
dispone de 9 permisos:
3 para el propietario del
fichero o directorio.
3 para el grupo de trabajo.
3 para el resto de los
usuario.
El propietario de cada
fichero configura estos
permisos.
40
FORMATO GENERAL
DE LOS COMANDOS
◊ Un comando se
compone
generalmente de :
Nombre del comando:
Indica a la shell que debe
hacer o ejecutar.
Opciones: Son caracteres
que modifican las acciones
de los comandos y que van
precedidas por un guión. En
UNIX todas las opciones
que indiquemos en la línea
de comandos, irán
precedidas por un solo
guión que abarcará a todas
ellas.
Ej.:
$ comando −abcd
Argumentos: Serán
nombres de ficheros o
directorios sobre los que va
a actuar el comando. Los
comandos de UNIX admiten
más de un argumento. Los
argumentos se separan por
blancos.
Además podemos ejecutar
mas de un comando en la
línea de comandos,
separando cada comando
con un punto y coma,
ejecutándose de izquierda a
derecha todos ellos.
Ej.:
$ comando ; comando2 ;
comando3 ; comando4
−abcd
En el entorno UNIX cuando
llegamos al margen de la
pantalla ( columna 80 ), este
no salta automáticamente de
41
línea, si no que tendremos
que indicárselo
manualmente, escribiendo la
contrabarra y pulsando
ENTER. El S.O, nos dejará
terminar la línea de
comandos en la siguiente
línea, donde aparecerá el
prompt secundario
representado por el símbolo
>, sin empezar a ejecutar
ningún comando, hasta que
no pulsemos ENTER.
Ej.:
& comando ; comando2 ;
comando3; comando4 ;
comando5 ; \ ENTER
> comando5 ; comando6 ;
ENTER
Si el comando que
ejecutamos contiene algún
error UNIX salta al
siguiente y continua con la
ejecución de la línea de
comandos. Además de eso,
si algún comando que
ejecutemos tiene parte de
comillas, y por algún casual
se nos olvidará cerrar las
comillas el S.O detectaría el
error y nos pasaría al prompt
secundario ( > ) para
corregir la línea de
comandos.
La combinación de teclas
CONTROL + SUPRIMIR
para la ejecución de
cualquier proceso o
ejecución, devolviendo el
control del sistema al
prompt.
FICHEROS EN UNIX
El sistema entiende tres
tipos de ficheros:
42
⋅ Ordinarios:
Un fichero
ordinario es
aquel que
contiene
datos
secuenciales,
que puede
ser un
fichero de
texto, de
datos, de la
shell, o bien
un fichero
ejecutable.
Estos
ficheros son
normalmente
creados por
el usuario.
⋅ Directorios:
Este tipo de
ficheros son
entendidos
por el
sistema
como
ficheros que
contienen
información
sobre los
ficheros que
se
encuentran
a nivel
inferior.
⋅ Especiales:
Estos
ficheros se
identifican
con los
dispositivos
físicos que
tiene el
sistema. Ya
que cada
dispositivo
conectado
al sistema
debe tener
un fichero
43
de
identificación,
de lo
contrario el
dispositivo
no será
detectado.
En UNIX, como en todos
los S.O, no puede haber dos
nombres de ficheros iguales,
incluyendo en el nombre del
fichero todo el path que
abarca el mismo. De modo
que no puede haber dos
ficheros iguales en un
mismo directorio.
NORMAS DE
NOMBRADO DE
FICHEROS
La longitud del nombre no
es problema pero no puede
contener blancos, además
los ficheros en UNIX no
tienen extensión tal y como
la tienen en MSDOS o
Windows 9x.
Ej.:
/ empleados.madrid
Madrid no sería una
extensión si no que formaría
parte del nombre del archivo
al igual que el punto.
A la hora de nombrar
ficheros el sistema es Case
Sensitive, por tanto dos
fichero con el mismo
nombre, uno escrito en
mayúsculas y otro con
minúsculas no sería iguales
para el sistema. Ej.:
/ FICH1
/ Fich1
/ fich1
44
Son tres ficheros diferentes
e independientes.
Los nombres de ficheros no
deben empezar por
caracteres especiales, tales
como guión bajo y alguno
mas que veremos mas
adelante.
En ningún caso deben
usarse en los nombres de
ficheros los siguientes
caracteres:
^ , [ ] , * , ( ), < >, ; , & , ¿ ?
, ¡ !, \ , # , @ , |
Ya que todos estos
caracteres tienen un valor
especial para el sistema. De
cualquier forma, y a pesar
de que no deben utilizarse
para nombrar archivos, si
que podemos hacerlo, ya
que hay formas para poder
llamar a este tipo de
nombres de archivo.
Nota: Si creamos un
archivo que contenga en su
nombre un carácter
comodín, no podríamos
trabajar con el, ya que sería
imposible llamarle
correctamente, si no fuese
por la contrabarra `\', que
poniéndola delante de
cualquier carácter especial,
convierte a este en un
carácter normal.
COMANDOS DE UNIX
Todos los comandos han de
escribirse en minúsculas, ya
que el sistema operativo
UNIX es case sensitive (
Sensible a mayúsculas y a
minúsculas ).
◊ clear: limpia la
45
pantalla ( similar al
cls de MSDOS ).
◊ banner
<ARGUMENTO>
: El argumento lo
pone en letras
mayúsculas. Acepta
más de un
argumento, y entran
unos 10 caracteres
por línea, no es un
comando de gran
uso, pero el
administrador lo usa
para advertir al
usuario que debe
recoger sus
documentos en la
impresora u otros
avisos relevantes.
◊ cal [mes] [año]: Es
un calendario del
mes actual. Lo
puede sacar entre el
año 0 y el 9999. Si
no le indicamos
parámetros, nos
dará el calendario
del mes actual.
◊ echo
<ARGUMENTO>:
Visualiza en
pantalla el
argumento ( Tiene
argumentos para
tabular, saltar de
línea, y otras
utilidades a la hora
de programar).
◊ date : Saca la fecha
y la hora del
sistema. La hora y
la fecha solo puede
ser modificada por
el administrador. El
administrador
configura el formato
inicial que
posteriormente
podrá ser
modificado por
cualquier usuario o
46
grupo de trabajo.
Para modificarlo:
Date [+formato]
Donde en formato,
podremos incluir cadenas de
caracteres, cerrando el
formato entre comillas. Los
códigos de formato pueden
ir fuera de las comillas sin
causar ningún error.
Los códigos de formato son
los siguientes:
%d: Muestra el día del mes
actual.
%m: Muestra el mes del año
actual.
%y: Saca el año en dos
dígitos.
%D: Saca el formato mm /
dd / yy
%T: Añade la hora con el
formato hh: mm: ss
%r: Añade AM/PM a la
hora.
%j: Saca el número
correspondiente al numero
de día que ocupa un día
dentro de un año, este
lógicamente deberá estar
entre 1 y 365 o 366 si es
bisiesto).
%w: Número que ocupa un
día dentro de una semana.
Siendo el Domingo el 7.
%a: Saca los tres primeros
caracteres del nombre del
día de la semana.
%n: Produce un salto de
línea.
47
Ej.:
Date ` Hoy es: %d / %m /
%y `
◊ ls : Visualiza el
contenido de un
directorio.
ls [opciones] [Argumentos]
La información aparece en
columnas y ordenada
alfabéticamente, pero en
ningún caso diferencia entre
ficheros y directorios. Trata
por defecto de la misma
forma los directorios que los
ficheros.
Este comando, admite
varios argumentos, por lo
que podemos listar en una
misma línea de comando, el
contenido de diferentes
directorios. Ej.:
$ ls /bin /etc
Este comando acepta los
siguientes argumentos:
⋅ − F:
Diferencia
entre
ficheros y
directorios.
A los
nombres de
directorios
les añade
una barra al
final y
añade un *
al nombre
de los
ficheros que
tienen
permiso de
ejecución.
⋅ − s: Saca el
nombre de
los ficheros
48
y
directorios
y su tamaño
en bloques (
Cantidad
que el S.O
es capaz de
leer en un
solo golpe
del disco
duro). Los
bloques
tienen
tamaño de
512 bytes.
Por cada
archivo
reserva
como
mínimo 2
bloques ( 1
Kbyte) para
cada
fichero, de
este modo
puede
crecer de
tamaño sin
problemas.
⋅ − R:
Muestra el
contenido
del
directorio y
subdirectorio
que pueda
tener. Ej.:
$ ls −R /
Mostraría un listado
completo de todo el disco
duro.
Por cada directorio que no
pueda leer nos manda un
mensaje de error avisando
de un permiso de lectura
denegado.
⋅ − a:
Muestra los
ficheros
49
ocultos y
para el
sistema
todo fichero
oculto es
aquel que
empieza por
un punto.
Además de
esto
muestra los
ficheros
normales.
El fichero
oculto más
común es
<profile>.
Este archivo es un archivo
de configuración
personalizado para cada
usuario, figura en todos los
directorios de conexión. No
puede ser borrado ya que si
este archivo esta ausente, no
podremos conectar con el
sistema.
En este archivo podemos
incluir mensajes de
bienvenida, programas que
queremos ejecutar al iniciar,
etc... ya que funciona como
un fichero de configuración
personalizada que el sistema
ejecuta al iniciar la sesión.
⋅−l:
Muestra la
salida larga
de un
directorio.
Muestra la
máxima
información
que el
sistema
puede
ofrecernos
acerca de un
archivo o
directorio.
− rw_r__r__ 1 1 tbx primero
50
1360 12:27 12/12 Hola
En la primera columna
figura si el archivo es un
archivo o un directorio, si es
un archivo figurará un guion
y si es un directorio figurará
una d.
En la segunda columna
figuran los permisos, que se
agrupan de tres en tres. Los
tres primeros indican los
permisos para el propietario,
los tres siguientes indican
los permisos para el Grupo y
los tres siguiente para el
resto.
La tercera columna indica el
numero de enlaces que tiene
el archivo. Todo fichero
tiene como mínimo un
enlace al propio fichero y un
directorio tiene como
mínimo dos enlaces, un a si
mismo y otro al directorio
padre.
A continuación aparece el
propietario del fichero y
posteriormente el grupo del
fichero. Después el tamaño
en bytes del fichero.
En la siguiente columna
hora y fecha de la última
modificación. Si hay un
fichero que ha pasado un
año desde su creación, el
numero del año figurará en
el fecha. Por último figura el
nombre del fichero o
directorio.
◊ ln: Permite enlazar
ficheros y
directorios. (
Enlazar es parecido
a crear un acceso
directo al fichero o
directorio enlace en
51
otro directorio que
es el enlazado).
Ej.:
ln [opciones] Argumento1
Argumento2
Ej.:
ln fich1 fich2
Un fichero enlazado no
tiene por que llamarse igual
que el fichero de enlace. La
propiedad y los permisos del
fichero enlace se conservan
en el fichero enlazado. Para
enlazar un fichero habría
que tener permiso de lectura
/ escritura ( + r + w).
Para enlazar un directorio se
utiliza el parámetro −s.
Ej.:
ln −s dire1 dire2
Cuando hacemos un ls −l los
nombres de los directorios
aparecen con una l delante y
después el directorio
enlazado y el enlace.
◊ mail : Comando de
correo electrónico.
Sirve para la
comunicación con
los usuarios dentro
del sistema.
También podemos
dejarnos un mail
para nosotros a
modo de
recordatorio, ya que
al iniciar la
conexión nos
advertirá de que
tenemos correo.
Todo usuario tiene un buzón
que se encuentra en el
directorio en el que se
52
encontrará un archivo en
/var/mail/nombre_usuario.
Para recibir correo
deberemos tener un mensaje
como mínimo, después
bastará con ejecutar la orden
` mail `, apareciendo como
primer mensaje el mensaje
mas nuevo.
En la cabecera nos dará los
detalles y desde donde se ha
enviado el mail, y
posteriormente a la cabecera
se encuentra el cuerpo del
e−mail.
Después del cuerpo del
mensaje podremos utilizar
comandos relacionados con
el mail:
ENTER: Visualiza el
siguiente mensaje.
d : Borra el mensaje que
acabamos de visualizar.
− : Visualiza el mensaje
anterior, siempre que este
exista.
P : Repite el mensaje que
acabamos de visualizar.
S [fichero] : Guarda el
mensaje en un fichero y
además lo borra del buzón
de correo.
Cuando el cuerpo del
mensaje contiene símbolos
desconocidos, el cuerpo del
mensaje no aparecerá, y nos
mostrará el error
correspondiente.
Para visualizar el texto del
mensaje, deberemos utilizar
este comando para mandar
el cuerpo del mensaje a un
53
archivo, donde podremos
leerlo correctamente.
Cuando utilizamos esta
técnica, no machacamos el
archivo de
direccionamiento, si no que
se efectúa una
concatenación.
w [ fichero ]: Igual que la
anterior, pero este no graba
la cabecera del correo en el
archivo destino.
q : Abandona el servicio de
correo. Con este comando
podemos salir cuando lo
deseemos sin necesidad de
terminar de leer todos los
mensajes.
* : Muestra todos los
opciones o argumentos del
programa mail.
Ejemplo:
$ mail − p : Saca el mail
completo, todos los
mensajes recibidos, uno
detrás del otro, sin
paginación por defecto,
sería como visualizar el
contenido del fichero.
/ var / mail /
nombre_usuario
Para enviar un mail solo
tenemos que poner la orden
y el usuario al que queramos
enviar el mensaje. A partir
de aquí escribiremos el
mensaje.
Si queremos salir sin enviar
el mensaje CONTROL +
SUPR .
Para finalizar y enviar
ponemos un punto en la
54
siguiente línea y pulsamos
ENTER. O en vez del punto
también podemos usar
CONTROL + D.
No se puede borrar el
contenido de una línea que
hemos dejado atrás
escribiendo. Deberemos
borrar el mensaje y
escribirlo de nuevo con
CONTROL + SUPR.
◊ passwd : Permite
cambiar la
contraseña del
usuario en cuestión.
Cada usuario solo
puede cambiar la
suya propia y en
ninguna caso la de
cualquier otro
usuario.
El administrador aunque no
sabe las contraseñas de los
usuarios, si que puede
cambiarlas.
Como una medida de
seguridad, el sistema pedirá
una nueva contraseña
cuando esta cumpla un
tiempo de caducidad, en ese
momento habrá que
renovarla por otra que sea al
menos un 50 % diferente.
Para cambiar la contraseña
deberemos indicar primero
la antigua y posteriormente
la nueva, pidiendo después
una confirmación de la
misma.
◊ sleep tiempo :
Produce un retardo
de tiempo en
segundos.
Ej.:
Echo Mensaje; sleep 5
55
Este comando sacaría un
mensaje en pantalla y
esperaría 5 segundos.
El tiempo se establece en
segundos, el tiempo puede ir
entre 1 segundo y 65636
segundos.
La única forma de romper
esta espera es con las
siguientes combinaciones de
teclas:
CONTROL + D
CONTROL + SUPR
◊ who : Muestra
información sobre
los usuarios que
están conectados al
sistema con el
siguiente formato.
Las opciones de este
comando son las siguientes:
⋅ u : Añade a
la
información
un punto y
una cifra
numérica,
donde el
punto índica
el tiempo de
inactividad
del
terminal:
56
♦ Inact
en
el
últim
minu
Sino
hemo
hech
nada
en
el
últim
minu
en
lugar
del
punt
apare
en
panta
el
tiem
de
inact
♦ La
cifra
es
num
del
proc
asign
a
la
shell
Cuan
entra
al
siste
a
nues
intér
de
coma
se
le
asign
un
núm
que
sirve
como
matr
57
⋅ T: Además
de lo
anterior
saca un + o
un − . Estos
símbolos
indican el
estado del
terminal, si
esta abierto
muestra el
símbolo +
permitiendo
el tráfico
interactivo
de
mensajes.
De lo
contrario
muestra el
−.
◊ cat : Equivalente al
type de MSDOS,
visualiza el
contenido de uno o
varios ficheros
dependiendo de los
argumentos que
pongamos en su
llamada. Ej.:
$ cat fich1 /etc/fich2 fich3
Visualizaría el contenido del
fichero uno después el del
fichero dos y posteriormente
el del fichero tres, sin
distinguir entre el contenido
de un fichero y el contenido
del otro. Por tanto no usa
paginación a la hora de
mostrar la información.
Al igual que en MSDOS
podemos usar
redireccionamiento de salida
hacia cualquier nombre de
58
a
todas
las
ejecu
que
prod
fichero, lo que nos permite
la edición o copia de un
fichero.
También nos permite la
edición de un fichero, ya
que si ejecutamos cat y un
redireccionamiento hacia un
fichero, nos pasara al
segundo prompt para poder
escribir tantas líneas como
deseamos, para terminar de
escribir pulsaremos
CONTROL + D.
Todas las líneas que
hayamos escrito quedarán
guardadas en el archivo de
direccionamiento.
Ej.:
$ cat > fichero
texto 1
texto 2
texto 3
CONTROL + D
Si solo ponemos un
redireccionamiento el
contenido del fichero
destino será sobrescrito, si
ponemos dos símbolos de
redireccionamiento, la
nueva información se
concatena en el archivo
destino.
Este comando solo entiende
caracteres ASCII.
◊ cp: Copia uno o
varios ficheros a un
destino que debe ser
obligatoriamente un
directorio, y además
será indicado como
último argumento.
59
Ej.:
$ cp Argumento1
Argumento2
Directorio_Destino
Si indicamos varios
argumentos y un destino,
todos los archivos serán
copiados a un único
directorio destino, ya que
solo puede indicarse un
destino por llamada al
comando. Ej.:
$ cp fich1 fich2 fich3
Destino
Copiaría los ficheros fich1,
fich2, y fich3 al directorio
Destino.
◊ mv: Mueve los
ficheros o
directorios. Ej.:
$ mv / dir
◊ rm: Borra
únicamente
ficheros, si un
usuario no pone los
permisos
correspondientes, el
sistema no pide
confirmación.
Cuando borramos
un fichero, esto no
puede ser
recuperado.
Evidentemente no podremos
borrar un archivo del que no
dispongamos de permiso de
lectura − escritura.
Admite más de un
argumento y solo puede
borrar ficheros.
Ej.:
$ rm /fich1
◊ mkdir: Comando
60
que sirve para crear
uno o varios
directorios. Para
ello usaremos el
siguiente formato:
Ej.:
$ mkdir dire1 dire2
dire1/dire11
Tiene una opción que es la
−p , y que permite crear
rutas completas de un solo
golpe. Ej.:
$ mkdir −p dire1/dire11
Estamos creando de un
golpe dire1 y dentro de
dire1 dire11.
◊ rmdir: Este
comando elimina
directorios. Para que
esto sea posible el
directorio deberá
estar vacío y no
podremos estar
posicionados dentro
del mismo. Al igual
que mkdir, también
tiene la opción −p
para borrar rutas
completas. Ej.:
$ rmdir −p dire1/dire11
Borra tanto dire1 como
dire11. También podemos
combinar con la −p la −s
que hace que el sistema
muestre en pantalla las
acciones que esta
ejecutando.
Si queremos borrar el
directorio y todo el
contenido del mismo,
deberemos usar la opción
−r. Ej.:
$ rmdir −r /dir1
61
◊ cd: Comando que
nos sirve para
posicionarnos en un
directorio
determinado. Sus
argumentos son los
siguientes:
cd .. : Con blanco entre el cd
y los dos puntos, nos
posiciona en un nivel de
directorio inferior.
cd / : Nos posiciona en el
directorio raíz del disco
duro.
cd /etc : Nos posiciona en la
ruta indicada.
cd : Nos muestra el
directorio de conexión.
◊ pwd: Nos muestra
la ruta actual, el
path completo.
CARACTERES
COMODINES EN UNIX
* : Suple por cualquier
cadena desde donde ha sido
escrito. Ej.:
$ ls / f*e
Muestra los ficheros que
empiezan por f y terminan
por e.
$ ls / *.*
Muestra todos los ficheros
que tengan un punto en la
cadena.
? : Suple un carácter en la
posición en la que se
encuentra la interrogación.
Ej.:
$ cat f ?
62
Mostraría el contenido de
todos los archivos que
comiencen por f, y consten
de dos letras. (f1, ff, fe, fg,
etc..).
[ ] : Sustituyen por un solo
carácter en la posición
donde se encuentra,
admitiendo rangos. Ej.:
$ cat f [1234]
Mostraría el contenido de
los ficheros:
f1, f2 , f3, f4
Podemos usar el guión para
establecer el rango:
$ cat [a−j]
Incluso, podríamos incluir
una coma para ejecutar
varios argumentos:
$ cat f[a−j , x−z]
Mostraría todos los ficheros,
cuya posición de carácter
coincida con los rangos
especificados en la línea de
argumentos.
También podemos hacer que
este comando muestre los
archivos cuyo rango de
caracteres no se cumpla.
Esto lo haremos mediante el
cierre de exclamación. Ej.:
$ cat [ !Rango]
REDIRECCIONAMIENTOS
DE COMANDOS
Un redireccionamiente sirve
para modificar la salida o
entrada estándar de un
comando determinado. Al
igual que en el entorno no
63
gráfico de Windows 95,
para los redireccionamientos
usaremos el los símbolos
mayor o menor,
dependiendo de si lo que
queremos cambiar es la
entrada o la salida estándar
del comando.
Todo redireccionamiento
une un comando con un
fichero determinado.
• Redireccion
de
Entrada:
<
$ mail 1mbx < fich1
Con este comando le
mandamos el contenido de
un fichero al usuario 1mbx.
• Redireccion
de
Salida:
>
$ cat fich1 /etc/x >
fich_destino
Guarda el contenido de los
ficheros fich1 y x en el
fichero fich_destino. Si no
usamos un
redireccionamiento de salida
doble, el contenido del
fichero destino será
machacado.
• Redireccion
Doble
de
Salida:
>>
$ cat fich1 >> fich_destino
Este tipo de
redireccionamiento no
machaca el contenido del
fichero destino.
• Redireccion
64
de
Error:
2>
$ cat fich /etc/x 2> fich1
Todos los errores que se
produzcan ejecutando la
línea de comandos, no
saldrán por la salida
estándar, si no que se
guardarán en el fichero
destino, machacando el
contenido del mismo, si este
ya existía.
• Redireccion
Doble
de
Error:
2>>
Es exactamente igual que el
anterior, sin embargo no
machaca el contenido del
archivo destino, si no que si
este existe, concatena la
información.
TRANSFERENCIAS
Un transferencia sirve para
utilizar la salida de un
comando, como la entrada
de otro. Esto lo hacemos
mediante los tubos, que se
sacan con la combinación de
teclas ALT + 1.
Ej.:
$ Comando1 | Comando2
Podemos hacer un cat de un
fichero y entubarlo a un
mail de un usuario. De este
modo le estaremos enviando
un archivo vía correo
electrónico.
Ej.:
$ cat fich1 | mail 1mbx
65
$ banner hola | write 1mbx
Existe un comando llamado
more, que se encarga de
hacer una paginación de
cualquier comando que use
la salida estándar. El modo
de uso de este comando es
el siguiente:
$ ls −lR | more
Muestra un dir completo del
disco duro paginado.
OTROS COMANDOS
ÚTILES
◊ grep [Opciones]
patrón Argumento1
Este comando busca en los
ficheros especificados como
argumentos las líneas que
coinciden con el patrón
indicado y las muestra en
pantalla. Es capaz de
localizar tanto cadenas
como subcadenas. Este
comando es sensible a
mayúsculas y minúsculas.
Ej.:
$ grep 1ma /etc/x
Este comando muestra las
líneas del archivo x que
contengan la cadena
alfanumérica 1ma. Si
especificamos una cadena
con blancos deberemos
encerrarla entre comillas.
Acepta las siguientes
opciones:
⋅v:
Visualiza
las líneas
que no
contienen la
cadena.
⋅n:
66
Visualiza
las líneas
que
contienen la
cadena y el
numero de
la línea en
la que esta
posicionada
dentro del
fichero.
⋅c:
Devuelve el
número de
líneas que
contienen la
cadena
patrón.
⋅ i : No
diferencia
entre
mayúsculas
y
minúsculas.
⋅ l : Se utiliza
cuando se
ponen
comodines
dentro de
los
argumentos.
Aunque no hace falta, es
conveniente poner siempre
las comillas al patrón.
Este comando acepta todos
los comodines de búsqueda,
además de los siguientes:
⋅ . : El punto
es
equivalente
a la ?.
Sustituye en
su posición
por
cualquier
carácter.
⋅ [ ]:
Sustituye
por el rango
en la
67
situación
donde se
encuentra.
Ej.: 1ma
[a−z]
⋅ ^ : Es
equivalente
a la ! ya que
niega una
determinada
condición.
Ej.:
1ma[^a−z]
El comodín * también puede
ser utilizado aunque no tiene
mucho sentido ya que grep
por defecto hace búsqueda
de subcadenas. Para buscar
una carácter especial, como
siempre, deberemos
precederlo de la contra barra
\.
Si precedemos de un
símbolo de dólar $ a la
cadena patrón, grep
mostrará en pantalla las
líneas que terminen por esa
cadena o subcadena.
Por lo contrario si la cadena
patrón es precedida por el
símbolo circunflejo ^ , grep
mostrará en pantalla
aquellas líneas que
comiencen por esa cadena o
subcadena.
◊ fgrep [opciones]
Argumento1 ...
Es igual que el comando
grep, pero con la diferencia
que este no admite
comodines, y convierte a
estos en valores literales de
la cadena. Las opciones de
este comando son las
siguientes:
⋅ f : Esta
opción
indica a
68
grep que
busque las
cadenas
contenidas
en un
determinado
fichero,
correspondiendo
cada línea a
una cadena
determinada.
Ej.:
$fgrep −f
fichero_con_cadenas
fichero_de_busqueda
Este comando tiene una
opción para buscar varias
cadenas, una por una, y que
nos vaya mostrando las
líneas que tienen el patrón
por pantalla. Esta opción se
realiza de la siguiente
manera:
♦ Tecleamos $fgrep Cadena1
♦ Al dejar las comillas
abiertas indicamos al
comando que no hemos
terminado de escribir los
argumentos, por lo que nos
aparecerá el prompt
secundario.
♦ En el prompt secundario
escribiremos las cadenas
que queramos separadas por
ENTER, cerrando las
comillas cuando deseemos
terminar.
Ej.:
$fgrep Cadena1 ENTER
> Cadena2 ENTER
> Cadena3 ENTER
> Cadena4
◊ egrep Cadena1 |
Cadena2 | Cadena3
69
Este comando hace lo
mismo que los anteriores,
pero permite especificar
varias cadenas en una sola
línea de comandos. Cada
cadena muestra unos
resultados diferentes.
Estos tres comandos pueden
ser entubados como entrada
de cualquier otro comando
UNIX. Ej.: $ ls − l | grep ^d
Este ejemplo hace un listado
de los ficheros y directorios
del path actual y lo entuba
como entrada al comando
grep, que depura los
resultados y muestra las
líneas que comienzan por d
que en este caso coincide
con los directorios.
◊ chmod
permisos_Propietario
Pemisos_Grupo
Pemisos_Resto
Argumentos..
Este comando permite
modificar los permisos
existentes en ficheros y
directorios. Este comando
puede ser utilizado de dos
formas diferentes:
La diferencia entre asignar
permisos y poner o quitar
permisos es que mediante
una asignación deberemos
establecer los valores de
todos los permisos.
70
Mientras para añadir o
quitar un permiso podremos
hacer referencia directa a
ese permiso dejando el valor
de los demás permisos como
estaban.
Notación Octal:
De esta forma le indicamos
los permisos mediante tres
dígitos representados en
forma octal, y que por tanto,
cada dígito representa tres
estados binarios, esto es
debido a que a cada numero
octal le corresponde un
número binario compuesto
por tres dígitos. La tabla
octal es la siguiente:
rwx
0−> 0 0 0 Quita todos los
permisos
1−> 0 0 1 Solo permiso de
ejecución.
2−> 0 1 0 Solo permiso de
escritura,
3−> 0 1 1 Permisos de
escritura y ejecución
4−> 1 0 0 Solo permiso de
Lectura
5−> 1 0 1 Permisos de
Lectura y ejecución
6−> 1 1 0 Pemisos de
Lectura y Escritura
7 −>1 1 1 Asigna todos los
permisos
Cuando un permiso tiene
valor 1 asignamos el
permiso, si este tiene valor 0
damos ausencia de permiso.
71
Para asignar los permisos en
notación octal lo haremos de
la siguiente forma:
$ chmod 735 fich fich2
Este comando lo que hace es
dar todos los permisos al
propietario ( 1 1 1),
permisos de escritura y
ejecución al grupo (0 1 1)y
permisos de lectura y
ejecución al resto. Estos
permisos son asignados a
los archivos fich y fich2.
Si queremos cambiar los
permisos de un directorio
deberemos estar en su
directorio inmediato o
directorio padre.
Notación Simbólica:
Para hacerlo en notación
simbólica:
$chmod Quien Que Permiso
Argumentos....
Quien puede ser:
⋅ u : el
propietario
del archivo
o directorio.
⋅ g : el grupo.
⋅ o : el resto
de usuarios.
⋅ a : si
queremos
referirnos a
todos.
Que puede ser:
⋅ + : Para
añadir
permiso.
⋅ − : Para
quitar un
permiso.
⋅ = : Para
72
asignar
permisos.
Los permisos pueden ser:
⋅ r : Permiso
de Lectura
⋅ w : Permiso
de Escritura
⋅ x : Permiso
de
Ejecución
Ejemplo de un cambio de
permisos en forma
simbólica:
$chmod u + rxw , g = wx , o
= rx fich
En el ejemplo anterior se
puede distinguir poner
registros al propietario del
grupo, o asignar permisos al
grupo y al resto. Cuando
utilizamos el operador de
asignación =, considera que
los permisos a los que no se
ha hecho referencia deben
estar ausentes.
◊ wc [opciones]
Argumento ...
Este comando es capaz de
contar las líneas, palabras o
caracteres de cualquier
fichero o ficheros. Por
defecto si ejecutamos el
siguiente comando:
$wc fichero
Obtendremos en pantalla: 17
líneas 50 palabras 800
caracteres fichero
Por cada fichero que
pongamos en argumentos
nos devolverá una línea
independiente de
información.
Las opciones de este
comando, todas en
73
minúsculas, son las
siguientes:
⋅ l : Solo
cuenta el
numero de
líneas ( Para
distinguir
una línea de
otra se fija
en el
carácter
ENTER).
⋅ w : Solo
cuenta el
numero de
palabras,
que estén
separadas
entre enter,
espacios o
tabulaciones.
⋅ c : Cuenta
los
caracteres.
En unix
todo se
cuenta
como un
carácter, de
modo que
los blancos,
enter y
tabulaciones
serán
contados
como
caracteres.
Este comando es aun más
util se lo entubamos a otro
comando. Por ejemplo para
saber los usuarios que hay
conectados al sistema:
$who | wc −l
◊ more [opciones]
Argumento...
Este comando ya ha sido
explicado por encima
anteriormente, ahora
veremos todas las
74
posibilidades que nos
ofrece.
Cuando pulsamos ENTER
en mitad de una paginación
salta línea a línea.
Si pulsamos SPACE salta
directamente a la siguiente
página.
Las opciones de este
comando son las siguientes:
⋅ Nº entero:
Esta opción
permite
visualizar
un número
de líneas
determinado.
Ej.: $ more
−10 fichero
⋅ c : Limpia
la pantalla
antes de
comenzar
cada
paginación.
⋅ + Nº
Entero:
Mediante
esta opción
indicamos a
more la
línea del
archivo por
donde
deseamos
que
empiece a
leer. Ej.:
$more −10c +25 fichero
Este comando visualiza de
10 líneas en 10 líneas
borrando pantallas y
visualiza a partir de la línea
25 del fichero que le hemos
indicado.
◊ pg [opciones]
75
Argumento....
Complemento de more.
Hace lo mismo, paginar la
información. Pero además
este dispone de un prompt
interno, donde pagina
cualquier información en
pantalla, esto nos permite
recorrer el fichero hacia
delante o hacia atrás.
Para salirnos del prompt
solo deberemos teclar q
◊ head [opciones]
Argumento ...
Muestra la primera parte de
un fichero, por defecto
muestra las 10 primeras
líneas, aunque mediante las
opciones podemos cambiar
este parámetro. Las
opciones son las siguientes:
⋅ Nº Entero:
Numero de
líneas que
queremos
visualizar
de la
cabecera del
archivo.
◊ tail [opciones]
Argumento ...
Visualiza el final del
fichero. Por defecto sacas
las 10 últimas lineas. Tiene
las siguientes opciones:
⋅ Nº Entero:
Numero de
líneas que
queremos
visualizar
⋅ + Nº
Entero:
Permite
sacar desde
la línea
indicada
hasta el
final del
76
fichero.
⋅ l : Es la
opción por
defecto.
Visualiza el
numero de
líneas
establecidas.
⋅ c : Visualiza
los
caracteres.
⋅b:
Visualiza en
bloques
(512 bytes)
◊ tee [opciones]
Redirecciona la salida de un
comando a un fichero a la
vez que saca los datos por
pantalla ( Salida estándar ).
Ej.:
$ grep pepe fichero | tee
lineas.pepe
Saca por pantallas las líneas
del archivo fichero que
contienen la cadena pepe y
además las almacena en el
fichero líneas.pepe.
Este comando por defecto
machaca el contenido del
archivo de destino. Sin
embargo esta opción puede
ser modificada mediante las
opciones.
Estas son las opciones para
este comando:
⋅ a : Para que
el comando
no
machaque
el contenido
del archivo
destino y
concatene la
información
deberemos
indicar esta
77
opción en la
llamada al
comando.
Ej.:
$grep pepe fichero | tee
lineas.pepe | grep luis
Visualiza las líneas que
contienen Pepe y Luis y solo
guarda las líneas que
contengan la cadena pepe.
◊ comm [opciones]
Argumento1...
Argumento2...
Permite localizar partes
comunes dentro de dos
ficheros, básicamente,
compara dos ficheros línea a
línea. Visualiza las
diferencias tabuladas.
Líneas que pertenecen al
primer fichero y que son
diferentes a las del segundo.
Líneas que pertenecen al
segundo fichero y que son
diferentes a las del primero.
Líneas comunes a ambos
ficheros
Las opciones para este
comando son las siguientes:
⋅1:
Visualiza
las líneas
exclusivas
del fichero2
y las
comunes de
ambos
ficheros.
⋅ 2: Visualiza
las líneas
comunes
entre ambos
ficheros.
⋅ 3: Visualiza
78
las líneas
exclusivas
del archivo
1 y las
líneas
comunes.
Otros comandos
relacionados: diff y cmp .
diff compara líneas y cmp
compara por caracteres y
devuelve la información de
cual es el primer carácter
diferente. Informa de la
posición del primer carácter
diferente.
◊ cut [opciones]
Argumentos:
Este comando sirve para
visualizar por columnas o
campos, recorta líneas de un
fichero por columnas o
campos. Tiene como salida
estándar la pantalla y no
modifica el contenido del
fichero origen.
Podemos cortar columnas o
campos, dependiendo de
nuestro interés. Estos son las
opciones que acepta:
⋅ c : Corta
columnas.
Ej.:
$cut −c10 archivo
Muestra el carácter diez de
todas las lineas que
componen el archivo.
Podemos indicar más de
una posición de la siguiente
forma:
$cut −c10,11,12 fichero
Esto mostraría los caracteres
10,11 y 12 de cada línea del
fichero. También podemos
indicar un rango:
$cut −c10−12 fichero
79
Mostraría todos los
caracteres comprendidos
entre el 10 y el 12 de cada
lineas, ambos incluidos. Si
queremos indicar desde un
número hasta el final:
$cut −c10− fichero
Mostraría todos los
caracteres a partir del 10 y
hasta que termine la línea de
cada línea del archivo en
cuestión.
⋅ f : Esta
opción corta
campos
situados en
línea de un
fichero,
para ello
deberemos
indicarle el
separador
de campos
que se ha
utilizado
para crear la
estructura
del archivo.
Ej.:
$cut −d: −f2 empleados
De esta manera le indicamos
que el separador son los dos
puntos. Si el separador es un
carácter especial, el
separador deberá ir entre
comillas. El ejemplo
anterior cortaría el campo
numero dos de cada línea
del fichero empleados y lo
mostraría en pantalla.
Si queremos utilizar el
blanco como separador,
deberemos indicarlo entre
comillas, ej.:
$cut −d −f2 empleados
80
De la misma forma que para
cortar columnas, para cortar
campos se pueden indicar
un solo campo, varios, un
rango o desde un campo
hasta el final.
◊ paste [opciones]
Argumentos:
Este comando pega lineas
de varios ficheros formando
una sola línea. Su salida
estándar es la pantalla. Ej.:
Por defecto separa las
columnas por una
tabulación. Ejemplo de su
forma de uso:
$paste A B
Sacaría por pantalla el
resultante del grafico
anterior.
Si en vez de un tabulador
como separador, queremos
utilizar uno propio,
deberemos indicárselo con
−d. Ej.:
$paste −d: A B
Este comando generaría el
siguiente resultante:
Podemos indicar varias
fuentes, y de todas ellas al
final generará un solo
resultante. Ej.:
81
$paste A B C D
Si queremos indicar un
separador para cada campo,
deberemos indicar tantos
separadores como se vayan
a utilizar después del −d.
Ej.:
$paste −d:$% A B C D
Este comando usaría los dos
puntos para separar los
campos A y B, usaría el
dólar para separar los
campos B y C, y el
porcentaje para separar el
campo C del D. Ej.:
A:B$C%D
Este sería otro ejemplo:
$cut −f2 −d: empleados |
paste −d: − sueldos >
fichero
Este comando juntaría en
una sola línea, el campo
numero dos de cada línea
del archivo empleados, y las
lineas del fichero sueldos,
separando ambas por dos
puntos. El guión que hay
después del −d sirve como
variable, e indica donde ira
posicionada la información
que procede de la
transferencia ( Entubado ).
ESTRUCTURA DEL
FICHERO <PASSWD>
Este fichero es de
contraseñas, esta escrito en
código ASCII, y puede ser
visualizado mediante un cat.
Se encuentra en el directorio
de ficheros del sistema y
configuración del mismo ( /
etc / passwd ) y tiene una
línea por cada usuario que
82
este dado de alta en el
sistema.
En el se encuentra
información separada en
campos por el símbolo dos
puntos. Ej.:
( Siguiente Página )
FORMATO DEL
FICHERO <Group>
Este fichero contiene los
grupos existentes en el
sistema, esta escrito en
código ASCII, y se
encuentra en el directorio de
archivo y configuración del
sistema (/ etc / Group).
Tiene una línea por cada
grupo existente. Ej.:
◊ Umask: (el sistema
establece una
máscara o código
para la creación de
ficheros).
83
Establece una máscara para
la asignación de permisos a
la hora de crear un fichero.
La máscara es un número de
tres dígitos, donde el
primero es para el usuario,
el segundo para el grupo y
el tercero para el resto.
Los números oscilan entre el
0 y el 7, y la máscara por
defecto es 022.
Cuando se crea un directorio
tendrá como máximo la
máscara 777, y como la
máscara por defecto es 022:
◊ Para el usuario se
mantienen, por el 0,
los permisos R, W,
X.
◊ Para el grupo se
quita el permiso
dos, el de W.
◊ Para el resto se
quita también el
permiso de
escritura.
A la hora de crear un
fichero, como máximo se
puede crear con permisos de
Lectura y escritura. Sigue el
mismo funcionamiento que
el de los directorios, pero
con la máscara 666.
◊ Find: busca en la
estructura de árbol
ficheros o
directorios que
cumplan algún criterio. Una
vez localizado permite
realizar una acción sobre
ellos. Se divide en:
♦ DIRECTORIO INICIAL
DE BÚSQUEDA.
♦ CRITERIO DE
BÚSQUEDA.
♦ ACCIÓN.
84
DIRECTORIO INICIAL
DE BÚSQUEDA.
Es aquel en el que se va a
empezar la búsqueda, que
las hace por ramas. Desde el
primer fichero al último,
hacia abajo. Siempre hay
que ponerle un punto de
partida.
Por ejemplo: para buscar
desde el directorio actual:
con el . (punto).
Con : (dos puntos) desde el
directorio padre.
CRITERIO DE
BÚSQUEDA
Son las características que
cumplirán los ficheros o
directorios. Existen:
− Name fichero: busca
ficheros que coincidan con
el nombre que va entre
comillas.
♦ −size + ó − número: busca
ficheros que tengan un
determinado número de
bloques.
♦ −size + ó − número [c]: Por
ejemplo −size +3c Indica
que buscamos caracteres en
vez de bloques.
♦ −atime + ó − número:
selecciona ficheros o
directorios a los que se ha
accedido hace un número de
días.
♦ −mtime + ó − número: igual
que atime, pero para
ficheros que se han
modificado.
♦ −type tipo−fichero: indica
que tipo de fichero se está
seleccionando. Con F
indicamos ficheros y con D
directorios.
85
♦ −user login: busca ficheros
o directorios de un
determinado usuario.
♦ −group grupo: busca
ficheros o directorios de un
determinado grupo.
♦ −perm nº nº nº : busca
ficheros que tengan los
permisos indicados en octal.
♦ −links + ó − nº: busca
ficheros que tengan un
determinado número de
enlaces.
Se puede poner más de un
criterio, por ejemplo: find .
−size +3 −user pepe
El operador que une a dos o
más criterios es el AND,
como es por defecto no hace
falta ponerlo, pero si se
quiere poner se prepresenta
por −a.
Si queremos poner un OR,
ponemos −o, si ponemos
una ! significa un NOT.
Para dar prioridad a un
criterio se pone entre
paréntesis:
Find . \(−size +3 −o −user
pepe\) −type f
La barra \ se pone siempre
delante de un símbolo
especial, para borrar el valor
especial que posee.
ACCIONES.
Hay una acción por defecto
que es −print que visualiza
la ruta de los ficheros o
directorios que cumplen los
criterios.
⋅ exec
comando:
ejecuta el
86
comando
cada vez
que
encuentra el
fichero o
directorio
que cumpla
los criterios.
Por ejemplo: find . −size
−10c −exec rm {} \;
Las llaves hacen referencia
a los criterios nombrados, y
el punto y coma (;) es para
separar los ficheros cuando
los visualice.
⋅ ok
comando:
hace lo
mismo que
el exec, con
la diferencia
de que pide
confirmación
de
ejecución
del
comando.
◊ id: Muestra el
identificador del
usuario y el grupo al
que pertenece. Ej.:
$id
SALIDA: uid = 1mbx (503)
gid = primero (103)
◊ logname: Devuelve
el nombre del
usuario que esta en
el terminal. Ej.:
$logname
SALIDA: 1mb2
◊ sort: Muestra por
pantalla las lineas
de un fichero de
forma ordenada.
Ej.: $sort [opciones]
Argumento...
Podemos ordenar por un
87
campo determinado
indicándole el separador de
campos mediante la opción
−t y el separador. Ej.:
$sort −t: +2 empleados
Mediante esta orden,
sacaríamos por pantalla las
lineas del fichero
empleados, ordenadas por el
campo numero 3 del fichero,
esto se debe a que SORT
EMPIEZA A CONTAR
DESDE EL CAMPO 0.
También podemos ordenar
por más de un campo:
$sort −t: +2 +3 empleados
Indicamos los campos con
un + delante y el numero del
campo por el que queremos
ordenar, en este caso al ser
dos, dejamos un espacio
obligatorio entre ambos
campos.
Si queremos ordenar por un
campo numérico, por
ejemplo por los sueldos de
los empleados, lo
indicaremos con +n cuando
indiquemos el número del
campo por el que queremos
ordenar. Ej.:
$sort −t: +3n empleados
Este comando ordenaría los
empleados por el sueldo.
Otras opciones del comando
sort:
−r : Invierte la ordenación,
dando preferencia desde la
`z' a la `a'.
−o: Guarda la ordenación en
un fichero. Ej.:
88
$sort −t: +3 −o fichero
argumento
−m: Solo se utilizará cuando
le indiquemos más de un
argumento (Mas de un
fichero). Y lo haremos para
indicar que todos los
archivos que indicamos
están ya ordenados. Ej.:
$sort −t: +2n −m
empleados1 empleados2
−u : No pone lineas
duplicadas. Si hubiese dos
registros iguales coge uno
de ellos al azar.
Normalmente se utiliza
cuando se indica más de un
fichero en la línea de
comandos.
◊ split [opciones]
Argumento
[Nuevo_Nombre]....
Divide un fichero en
ficheros más pequeños. Esto
se debe a que un fichero en
UNIX puede ocupar un
espacio sin límite, hasta
agotar el espacio libre del
disco duro.
Por defecto divide al
archivo original en archivos
de 1.000 lineas. Con la
opción −Nº le indicamos el
número de lineas en que
tiene que agrupar el archivo.
Ej.:
$split −10 empleados
Genera tantos ficheros como
lineas pueda dividir. Los
archivos que genera, tienen
la siguiente nomenclatura:
Xaa
Xab
89
Xac
...
Podemos cambiar esta
nomenclatura estandar por
la que queramos de la
siguiente forma:
$split −10 empleados pepe
pepea
pepeb
pepec
...
−b : Esta opción divide por
bloques al argumento, por
defecto divide de 2 bloques
en 2 bloques. Pero podemos
indicarle el número de
bloque por los que
queremos dividir al archivo.
Ej.:
$split −10b empleados
nueva_serie
◊ chown
nuevo.propietario
Argumento...
Permite cambiar la
propiedad un fichero. Solo
podemos cambiar la
propiedad a nuestros
archivos. En el instante que
damos la propiedad a otro
usuario perderemos la
propiedad del mismo.
Si la propiedad se la damos
a alguien del grupo
heredaremos los permisos
del grupo.
◊ chgrp nuevo.grupo
Argumento...
Para cambiar de grupo a los
ficheros. Si cambiamos el
90
grupo, el usuario no pierde
la propiedad.
91
Descargar