Aparece en1969 en los laboratorios Bell y lo desarrolló Ken... Estaba escrito en ensamblador y era para un único usuario.

Anuncio
Aparece en1969 en los laboratorios Bell y lo desarrolló Ken Thompson.
Estaba escrito en ensamblador y era para un único usuario.
En 1971 reescribe UNÍX en lenguaje B y a la vez coincide en los laboratorios con Dennis Ritchie, creador del
lenguaje C.
En 1973 vuelven a rescribir UNÍX en lenguaje C y lo denominan UNÍX 5.
En 1975 aparece la versión UNÍX 6 para entornos de investigación y educación. También en este año se
conceden las primeras licencias de uso.
En 1977 aparece la versión UNÍX 7 la cual se prepara para la instalación en micros.
En 1981 aparece la versión UNÍX III, que es una actualización del UNÍX 7, e incluye utilidades para el
mantenimiento de programas, incluyéndole librerías. Esta versión es plataforma de las versiones XENIX III y
XENIX IV que eran versiones orientadas a Pc. Paralelamente a este desarrollo se desarrollaron los sistemas de
redes y comunicaciones con lo que esto desapareció.
En 1983 aparece UNÍX V que posteriormente se llamaría UNÍX SYSTEM V, que es el UNÍX que se
comercializa actualmente.
CARACTERÍSTICAS
• Portátil: Es un sistema fácilmente adaptable a diferentes ordenadores de diferentes fabricantes.
• Propósito general: Se puede aplicar a únicos y diferentes entornos de usuario.
• Multitarea: Permite la ejecución simultánea de varias tareas a las que llama proceso.
• Tiempo compartido: Asigna un periodo de tiempo máximo de ejecución en el procesador a cada
proceso. Sólo trabaja uno en cada instante de tiempo.
• Multiusuario: Permite la entrada de varios usuarios al sistema al mismo tiempo.
• Interactivo: El usuario hará peticiones al sistema y varios a recibir información casi inmediata. No
puede ser inmediata al usuario o volumen de usuarios.
• Fácil modificación y almacenamiento: Se debe al uso del lenguaje C. Puedo modificar los fuentes.
Usuario con privilegios para hacerlo.
• Estructura de ficheros: Tiene una estructura jerárquica en forma de árbol. Esta estructura es la
misma para ficheros del sistema y ficheros de usuario. (las carpetas aquí se llaman directorios). Todo
usuario tiene su propio directorio de trabajo, son lo cual se puede hacer absolutamente todo (grabar,
borrar, crear ficheros, ...). El administrador no le pone ningún límite, pero fuera de ese directorio de
trabajo se encuentra con todas las limitaciones posibles. Se puede leer pero no escribir cualquier
fichero o directorio del sistema.
• Comunicaciones: Permite comunicación entre sistema UNÍX a UNÍX mediante utilidades aportadas
por el propio sistema operativo.
• Procesos Background: Consiste en pasar un proceso a estado suspendido preparado hasta que la
CPU esté desocupada.
• Facilidades para la automatización de procesos de oficina:
♦ Correo electrónico: Tiene un correo electrónico. Mandan mensajes a usuarios que estén
dados de alta en el sistema, o a sí mismos.
♦ Noticiarios: Es a título general. Cualquier usuario que se conecte al sistema puede leerlo.
1
♦ Comunicación interactiva entre terminales: Un chat a lo pobre (entre dos, por ejemplo).
ESTRUCTURA DEL SISTEMA OPERATIVO
Unix tiene una estructura de anillo envolvente de tres niveles (windows tiene 4). En el nivel más interno está
el KERNEL, en el central la SHELL y en el externo las UTILIDADES. (No numera los anillos y los utiliza
todos).
KERNEL
UTILIDADES
SHELL
KERNEL: También llamado núcleo del sistema operativo, gestiona los recursos del ordenador ocupándose de
los discos, cintas magnéticas, terminales, impresoras, líneas de comunicación y cualquier otro dispositivo
conectado. Sus funciones son:
• Control de acceso a los dispositivos de almacenamiento.
• Control de acceso a terminales y otros dispositivos.
• Control de los procesos.
• Administrar la memoria.
SHELL: Intermediario entre usuario y núcleo. Se encarga de interpretar los comandos tecleados por el
usuario y ejecutarlos. Tipos:
♦ BOURNE SHELL: Es la más estándar y la que utilizan la mayoría de los usuarios. Da acceso
a todo el disco, a casi todos los comandos, ... Su prompt es $ aunque es configurable.
También tiene un prompt especial que es # y está asignado al superusuario.
♦ C SHELL: Es para usuarios encargados de la modificación y el mantenimiento del sistema.
Los comandos son muy similares a los de lenguaje C. Tiene un prompt especial que es %.
♦ VISUAL SHELL: Es exclusiva del sistema operativo orientada a entornos gráficos.
♦ RESTRICTED SHELL: Restringe el uso de algunos comandos.
♦ UUCP SHELL: Shell especial orientada a la transmisión de datos.
UTILIDADES: Tendremos en ellas:
◊ Lenguajes (C, COBOL, BASIC,...).
◊ Librerías del sistema (aportados por el sistema operativo).
◊ Otras aplicaciones (programas que incluye el administrador dentro del sistema).
USUARIOS
Administrador: Es el encargado de mantener el funcionamiento eficiente del sistema. Sus funciones son:
• Encender y apagar el sistema.
• Instalar nuevos release (actualizaciones del sistema).
• Instalación de software.
• Configurar dispositivos y usuarios.
• Optimizar el sistema.
• Realizar copias de seguridad.
2
Superusuario: Es un usuario especial que tiene permitidos todos los accesos y puede realizar cualquier
actividad.
Usuario: Aquel que puede entrar a trabajar en el sistema. Es el propietario o creador de un fichero o un
directorio.
Grupo: Es el conjunto de usuarios que están dados de alta en el sistema con las mismas atribuciones,
permisos y propiedades bajo un nombre común.
Resto: Son todos los usuarios que no pertenecen al grupo del propietario de un fichero.
PRINCIPALES DIRECTORIOS
• ROOT: Directorio raíz, del que cuelgan el resto de los directorios y/o ficheros. Se va a representar
con la barra normal /.
• bin: Contiene herramientas y comandos del sistema.
• dev: Contiene los driver o dispositivos periféricos conectados al sistema. Dentro, por cada dispositivo
conectado al sistema tiene un fichero asociado.
• etc: Contiene ficheros del sistema y configuración. Estos ficheros serán modificables, pero no se
pueden borrar.
• lib: Contiene la librería del sistema.
• tmp: Almacena ficheros temporales creados por comandos del sistema.
• home: Algunas veces puede contener los directorios asignados a cada usuario. Pueden estar aquí o en
el usr (por decisión administrativa).
• Usr: Normalmente, contiene los directorios asignados a cada usuario. Dentro podemos encontrar:
♦ adm: Contiene ficheros de administración.
♦ bin: Contiene herramientas y comandos del sistema. Es el mismo que el del directorio raíz
(un directorio al que accedemos por dos sitios) y se llama enlace (directorio enlazado). Sirve
para posibilitar la modificación de ficheros por más de un usuario (como si fuese un acceso
directo en windows).
♦ lib: Otro enlace como el bin.
♦ spool: Contiene ficheros relacionados con la cola de impresión.
Cuando entro al sistema, éste siempre me posiciona en mi directorio de trabajo (directorio de conexión).
PERMISOS
Todo fichero y directorio dispone de tres permisos que indican las operaciones que se pueden realizar sobre
ellos.
• Lectura (r):
♦ Si tengo permiso de lectura para un fichero éste nos permite leerlo.
♦ Si tengo permiso de lectura para un directorio éste nos permite listar el contenido del
directorio.
Si quito el permiso de lectura del directorio, no podré leer los ficheros
• Escritura (w):
♦ Si tengo permiso de escritura para un fichero éste nos permite escribir sobre ese fichero.
♦ Si tengo permiso de escritura para un directorio éste nos permite añadir y borrar ficheros y
directorios.
3
¡¡OJO!! Si puedo escribir también puedo leer
• Ejecución (x):
♦ Para un fichero, permite utilizar el nombre del fichero como si fuera un comando ejecutable
(debe contener comandos ejecutables).
♦ Para un directorio, permite posicionarme en el directorio, convirtiéndolo al directorio actual.
PERMISOS
Lectura (r)
Escritura (w)
Ejecución (x)
FICHEROS
Leer
Escribir
Ejecutar
DIRECTORIOS
Listar
Añadir/borrar
Posicionar
• Cada fichero y directorio tienen 9 permisos: 3 para el usuario, 3 para el grupo y 3 para el resto.
• Por defecto, se dan los permisos de lectura y escritura, para un fichero nuevo, al usuario y al grupo
y al resto sólo de lectura.
• Para un directorio le da los 3 permisos al usuario y al grupo, y al resto les da al de lectura y el de
ejecución.
FORMATO GENERAL DE LOS COMANDOS
Siempre ejecutamos a partir del prompt $.
Un comando está compuesto, por regla general, de un nombre (indicativo a la Shell de lo que hace el
comando), siempre, obligatoriamente, detrás del nombre irá un espacio en blanco. Detrás opciones (caracteres
o números precedidos de un guión que modifican la ejecución de un comando). Detrás irá otro blanco y al
final los argumentos (nombre de un fichero, nombre de un directorio, cadena, ... sobre los que actúa el
comando).
En windows poníamos dir/p/s/w y ejecutaba las tres opciones.
En Uníx −psw y ejecuta las tres opciones sin hacer falta los tres guiones
Formato:
$nombre opciones argumentos
• Unix permite ejecutar más de un comando en la misma línea separados por punto y coma. Si uno falla
ejecutará el aviso del error y entrará en el siguiente comando.
$comando1;comando2;comando3
• Si escribo un comando muy largo al final de la línea escribo / y ENTER y pasará a la siguiente línea
poniendo al principio > (pone > porque indica que no se ha terminado la ejecución) y continuará con
el comando.
$
Prompt primario
> Prompt secundario
COMANDOS (UTILIDADES BÁSICAS)
4
• clear: Borra pantalla.
• banner (cadena): Visualiza la cadena en letras grandes.
• cal: Visualiza un calendario perfectamente formateado, que puede oscilar entre el año 1 y el año
9999. Por defecto saca el mes actual. Admite dos argumentos; [mes][año]. Ej:. cal 12 2015 (mostrará
el calendario del mes de diciembre del año 2015. Si utilizas un solo parámetro detrás de cal,
visualizará el calendario de todo ese año.
• date: Visualiza la fecha y la hora del sistema. El usuario sólo puede consultar (excepto para modificar
su formato), siendo el administrador quien puede modificarla. Formato: date[+formato]. También
admite literales, que deberán ir siempre entre comillas (simples o dobles, pero iguales a principio y
fin). Ej:. date +Hoy es: %D%nLa hora es:%T.
Algunos ejemplos de opciones date:
date +%d
Día del mes
date +%d/%m
Día del mes y mes
date +%d/%m/%y
Día, mes, año (sólo dos dígitos)
date +%D
mm/dd/yy (Fecha dos dígitos en inglés)
date +%T
hh:mm:ss (Hora, minutos , segundos)
date +%a
Pone los 3 primeros caracteres del día de la semana (lun, mar, mie,...)
date +%j
Número que ocupa el día dentro del año
date +%w
Número que ocupa el día dentro de la semana
date +%r
Aparece am ó pm para las horas
date +%n
Salto de línea
• echo (argumento): Visualiza el argumento en pantalla (si pones comillas no las visualizará). Si pones
sólo echo, visualizarás una línea en blanco.
• man: Es la ayuda (Manual). Si le ponemos un comando, visualizará toda la ayuda referente a ese
comando de forma paginada. En la paginación nos indicará el porcentaje de información que vamos
obteniendo. Con Enter ves la paginación línea a línea y con el espaciador página a página. Con el
CTRL. + SUPR termina la paginación (¡¡OJO!!, esto también se puede lograr con el CTRL + D, pero
si lo dejas pulsado o lo pulsas más de una vez se sale y finaliza la ejecución del programa). Toda la
información de este comando viene en inglés.
• ls: Equivalente al DIR de windows (visualiza el contenido de un directorio). Muestra la información
encolumnada y ordenada alfabéticamente sin diferenciar los ficheros o los directorios (no salen
paginados). Formato:
ls [opciones] [argumentos]
Ejemplo: ls/bin/usr
• ls −F: Añade una barra al final del nombre de un directorio. A un fichero ejecutable o con permiso de
ejecución le añade al final un *. Ej:. dire1/
fich*
• ls −s: Muestra el nombre del fichero y su tamaño en bloques (bloque =512 bytes) (un fichero por
norma tiene reservado 1K = 2 bloques).
• ls −R: Visualiza de forma recursiva un directorio (su contenido). Ej:. ls −R/ (visualiza el disco
entero).
• ls −a: Visualiza incluyendo ficheros ocultos (aquel que empieza por punto). El más famoso es el
.profile (existe en cada directorio de conexión de cada usuario). Es un fichero de configuración, que
5
se lee cada vez que se entra en el sistema. En él puedo poner lo que quiera para cada vez que entre.
¡¡OJO!! Si se borra no puedes acceder al sistema.
• ls −l: Visualiza la salida larga de un directorio, es decir:
Total 3 permisos
− rw− r−− r−− 1 i1tbx primero 136 13mar 19:30 fich
d rwx r−x r−x 2 i1tbx primero 96 13mar 19:30 dire1
Permisos
Tipo dato: − fichero ordinario / d fichero directorio.
Permisos: 3 lectura (r), 3 escritura (w), 3 ejecución (x) (siempre en el mismo orden).
Tamaño: En bytes.
Fecha/hora: de la creación o de la última modificación. Si pasa más de un año, quita la hora y pone el año.
1 fichero siempre tiene como mínimo un enlace (a él mismo).
1 directorio siempre tiene como mínimo 2 enlaces (a él mismo y al directorio padre).
• mail: Correo electrónico del sistema (todo usuario por el hecho de estar dado de alta tiene uno
asignado). Sólo se puede hacer con él dos cosas:
♦ Enviar correo: $mail usuario . Cuando se pone eso, justo después se pone en modo edición
y todo lo que escribo va al correo. Se finaliza la edición cuando en la última línea, al
principio, ponga punto y pulse Enter (también puedo finalizar pulsando CTRL + D, pero es
peligroso puesto que si pulso varias veces o lo dejo pulsado se finaliza la edición y me salgo
del sistema).
♦ Recibir correo: Si no estamos en el sistema cada vez que entremos nos avisará de que
tenemos correo. Si pulsamos $mail + Enter nos mostrará el correo del siguiente modo:
♦ Una cabecera (quién lo envía, a que hora,...)
♦ Texto
♦ ? (El prompt del mail). Tengo varias opciones aquí:
◊ Enter: Salta al siguiente mensaje
◊ D: Borra el mensaje y muestra el siguiente.
◊ −: Permite visualizar el mensaje anterior.
◊ s [fichero]: Permite crear un fichero con el contenido del mail y borra el mensaje del
mail. Envía la cabecera y el texto.
◊ w [fichero]: Es igual que el anterior pero sólo guarda el texto.
◊ q: Abandona el prompt del mail.
◊ *: Muestra toda la lista de opciones.
También se puede recibir con $mail −p, lo que listará todos los correos del más
reciente al más antiguo y con el $mail −r listará todos los correos del más antiguo al
más reciente.
Mi correo se encuentra en el directorio /var/mail
⋅ passwd: Permite cambiar la contraseña.
⋅ sleep (tiempo): Produce un retardo (que espere un tiempo oscilable entre 1
segundo y 65536 segundos). Ej ls −l; sleep 5; ls −l/dev
6
⋅ who: Visualiza información sobre los usuarios conectados al sistema. Saca el
login, el terminal y la fecha y hora de conexión. Ej:. i1tbx pts001 13mar
13:15
⋅ who −u: Añade 2 columnas, un punto y un número. El punto indica que el
usuario está trabajando . Si pasa un minuto, el punto desaparece y aparece el
tiempo de inactividad. El número es el asignado al proceso de la SHELL. Ej:.
i1tbx pts001 13mar 13:15 . 7153
⋅ who −T: Añade entre el usuario y el terminal un más y un menos. El más
indica que el terminal está abierto para la comunicación y el menos que está
cerrado. Ej:. i1tbx + pts001 13mar 13:15 . 7153
⋅ who am I: Aparece ltoda la información referente a mi terminal.
⋅ write usuario [terminal]: Establece comunicación con otro usuario en otro
terminal. A diferencia del mail sólo se puede enviar si el otro terminal está
conectado. El funcionamiento de edición es igual que el del mail. Para
terminar CTRL. +D y aparece <EOT> (En d Of Transmisión).
⋅ mesg −y/n: Cierra y abre el terminal (por defecto siempre está abierto).
⋅ Talk usuario [terminal]: Establece comunicación entre 2 usuarios (algo así
como un chat). Con CTRL + SUPR rompe el comando y se sale.
FICHEROS
El sistema distingue 3 tipos de ficheros:
⋅ Ordinarios: Aquel que contiene datos secuenciales (de datos, de la
SHELL,...)
⋅ Directorios: Ficheros que contienen información sobre los ficheros que se
encuentran a un nivel inferior dentro de él. A diferencia con los directorios de
windows, en unix tienen tamaño.
⋅ Especiales: Están asociados con dispositivos. Se encuentran en el directorio
/dev.
Nunca puede haber nombres de ficheros iguales. El nombre de un fichero está
compuesto por su ruta. Ej.: /home/primero/i1tb1/carta
NORMAS PARA NOMBRES DE FICHEROS Y DIRECTORIOS
⋅ No tenemos límite en la longitud del nombre, aunque hay algún tipo de
Unix que limita a 14 caracteres.
⋅ Los nombres no pueden tener blancos.
⋅ Los nombres pueden ser alfanuméricos (letras, números, letras y
números) pero recordando que mayúsculas y minúsculas son
significativas.
⋅ Como símbolos se admite el punto y el guión bajo, pero el punto no
separa nombre de extensión como ocurre en windows. El punto puesto al
principio nos indica que es un fichero oculto.
⋅ El nombre de un fichero no puede empezar por un símbolo, salvo el
punto.
⋅ No utilizaremos símbolos del sistema ($,^,[ ],(),; ,@,#,<,>,*,?,|,!,...)
COMANDO cat
Es el equivalente al type (visualiza el contenido de un fichero o ficheros). Se
diferencia del type en que puede visualizar más de un fichero. Cuando visualiza
más de uno los visualiza como un único bloque.
7
Ej.: cat fich1 fich2 fich3
Lee cualquier tipo de ficheros pero sólo entiende aquellos que tengan su
equivalente ASCII (no identifica la Ñ).
cat>fichero me permite la creación de un fichero.
CARACTERES ESPECIALES
Unix los llama metacaracteres.
* Sustituye caracteres a partir de la posición en que se encuentra.
? Sustituye un carácter y en la posición en que se encuentre.
[valores] Sustituye un carácter, en la posición en que se encuentre admitiendo
como válidos los valores de los corchetes.
Ej.: F[1234]* es como si pusiésemos F1*, F2*, F3*, F4*
Admite también rangos:
Ej:. FICH[0−9] rangos de 0 a 9.
[fich][FICH][a−f,A−F] rangos de a−f y de A−F
! Se utiliza en combinación con los corchetes y sirve para excluir caracteres.
Ej:. F[!1234]* Empieza por F y el 2º no puede ser 1,2,3 ó 4.
COMANDOS RELACIONADOS CON FICHEROS
⋅ mv: Es el equivalente al move. Mueve o renombra ficheros y directorios.
La diferencia con windows es que admite más de un argumento.
Ej:. mv fich1 fich2 fich3
⋅ cp: Es exactamente igual al copy de windows.
⋅ rm: Borra ficheros.
⋅ mkdir [opciones][argumentos]: Crea directorios.
Ej:. mkdir uno dos uno/tres dos/cuatro
Mkdir −p dire1/dire2/dire3
uno dos
tres cuatro
⋅ rmdir: Elimina directorios que tienen que estar vacíos y no puedo estar
posicionado ni dentro ni encima de él.
rmdir −p: Elimina toda la ruta.
rm −r dire1: Elimina un directorio y su contenido.
8
⋅ cd [argumentos]: Sirve para posicionarnos, convirtiendo el directorio en
actual.
cd .. Ojo hay que poner un blanco entre cd y ..
Si ponemos sólo cd nos posiciona en le directorio de conexión.
⋅ pwd: Es el equivalente al cd de windows indicándolos la ruta completa
del directorio actual.
REDIRECCIONAMIENTOS Y TRANSFERENCIAS
⋅ Redireccionamientos: Un redireccionamiento consiste en modificar la
entrada o salida estándar de un comando (entrada sería el texto que
envíamos y salida, su muestra por pantalla). Existen varios tipos y son
iguales para windows:
• De entrada: Redirecciona la entrada estándar de un comando. Se
representa con < y une un comando con un fichero.
Ej:. $mail i1tb1 < fichero (envío el contenido del fichero)
• De salida: Redirecciona la salida estándar de un comando. Se
representa con > y une un comando con un fichero o dispositivo.
Ej:. $cat fich1 fich2 (los visualiza en un solo bloque)
$cat fich1 fich2 > fich3 (lo que salía por pantalla lo envía a un fichero. Si fich3
no existe lo crea y si existe machaca la información que contenía).
⋅ Doble de salida: >> y es igual al de salida excepto en el fichero destino, si
existe en lugar de machacarlo, lo concatena.
⋅ De error: Es un redireccionamiento especial, redirecciona errores de
ejecución. Se representa como 2> y une un comando con un fichero o
dispositivo.
Ej:. $cat fich1 fich2 fich3 (en el que fich2 no existe, visualiza fich1, da el error de
fich2 y visualiza fich3)
$cat fich1 fich2 fich3 2> fich.error (hace lo mismo sin indicar el error que
produce fich2)
El problema que puede dar esta orden sería que si ejecuto una orden nunca
sabré sei se ha producido el error ni cual ha podido ser.
⋅ Doble error: 2>> se diferencia del de error en lo mismo que el de salida y
el de doble salida.
⋅ Transferencias: Consisten en aprovechar la salida de un comando como
la entrada del siguiente, por tanto, lo que une son comandos. Los une con
|
Ej:. $cat fich | mail i1tb1 (la salida del fichero lo envío al mail igual que el de
salida).
$banner hola | write i1tb1 (envía hola en letras grandes)
Todo aquello que sale por pantalla se puede paginar ($cat fich [1−9] |
more)
9
⋅ ln: Genera enlaces. Se pone el nombre del fichero origen y el del fichero
enlace. Si borro el primer fichero queda el segundo. Ej:. ln fich1 fich2
◊ ln −s: Enlaza directorios. Ej:. ls −sdire1 dire2
◊ ls −l: Muestra el enlace.
⋅ chmod: Permite modificar los permisos asignados a ficheros y
directorios. Tiene dos formas de trabajo, por notación octal o por
notación simbólica.
r w X
4 2
1
0 0
0
0
0 0
1
1
0 1
0
2
0 1
1
3
1 0
0
4
1 0
1
5
1 1
0
6
1 1
1
7
◊ Octal: El primer número está relacionado con los
permisos del usuario o propietario del fichero. El
segundo con el grupo y el tercero con el resto. Si
el permiso es 0 significa ausencia de permiso. Ej:.
chmod 745 fich1
Siempre hay que poner los tres permisos. Si ponemos chmod 700 ../1tbx
indicamos la ruta ya que damos permiso al usuario actual, yo, y se lo quito a los
demás.
◊ Simbólica: Formato:
Chamod quienquepermisos Argumentos
¿a quien? ¿qué hacemos con los permisos? ¿qué permisos?
Usuario
u
Ponerlos Quitarlos Asignar
r
10
Descargar