Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Anúncio
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Curso: Unixware
Próximos SlideShares
Evolucion de los sistemas operativos Evolucion de los sistemas operativos
Carregando em ... 3
1 de 124
Anúncio

Mais conteúdo relacionado

Anúncio

Mais de Jack Daniel Cáceres Meza(20)

Anúncio

Curso: Unixware

  1. UNIXWARE Autor: Ing. Jack Daniel Cáceres Meza May - 1,915 Agradecemos de antemano cualquier sugerencia que nos hagan llegar Cualquier sugerencia sobre el material aquí expuesto, sírvase hacerla directamente a: Ing. Jack Daniel Cáceres Meza al siguiente teléfono: 5114-475866 ó por escrito a la siguiente dirección: Av. Paseo de La República 3937, Dpto. 102, Surquillo Lima - Perú
  2. UNIXWARE BÁSICO JDCM UNIX SVR4 - NB i TABLA DE CONTENIDO ILUSTRACIONES: Pág Figura No. 1: Integración del Sistema Operativo UNIX __________________________________ 1 Figura No. 2: Resumen Arquitectónico del Sistema Operativo UNIX _______________________ 5 Figura No. 3: Jerarquía del Sistema Operativo UNIX____________________________________ 8 Figura No. 4: Funcionamiento del shell _____________________________________________ 11 PARTES CONSTITUTIVAS: Pág BASES DEL SISTEMA OPERATIVO UNIX ______________________________________________ 1 COMANDOS BASICOS ______________________________________________________________ 17 COMUNICACIONES ________________________________________________________________ 38 APENDICES ________________________________________________________________________ a CONTENIDO: Pág TABLA DE CONTENIDO..................................................................................................................i Comandos de Referencia en Línea iii BASES DEL SISTEMA OPERATIVO UNIX ______________________________________________ 1 A. ESTRUCTURA DEL SISTEMA UNIX.........................................................................................1 01. DEFINICION DEL SISTEMA UNIX 1 02. CARACTERISTICAS UNIX 1 03. UN POCO DE HISTORIA SOBRE EL SISTEMA UNIX 1 04. COMPOSICION DEL SISTEMA OPERATIVO UNIX 5 05. CAPAS QUE LO CONFORMAN 5 06. CLASIFICACION DE ARCHIVOS 6 07. CONVENCIONES PARA NOMBRAR ARCHIVOS 6 08. CARACTERES DE REDIRECCIONAMIENTO 7 09. METACARACTERES 7 10. INTERPRETACION DE LOS METACARACTERES 7 11. SU LUGAR EN EL SISTEMA DE ARCHIVOS 7 12. NAVEGANDO POR LA ESTRUCTURA DE ARCHIVOS 7 13. DESCRIPCION DE DIRECTORIOS IMPORTANTES 8 B. ACCESO AL SISTEMA UNIX .....................................................................................................9 01. QUE ES NECESARIO? 9 02. CONVENCIONES GENERALES 9 C. LINEAS DE COMANDO............................................................................................................10 01. INTRODUCCION 10 02. SINTAXIS O COMO EJECUTARLOS 10 03. COMO EJECUTA EL SISTEMA UNIX UN COMANDO 11 D. EDITORES DE TEXTOS............................................................................................................11 01. INTRODUCCION 11 02. COMO TRABAJAN 11 03. EDITOR ‘ed’ 12 04. EDITOR ‘vi’ - PARTE I 13 COMANDOS BASICOS ______________________________________________________________ 17 A. MANEJO DE DIRECTORIOS Y ARCHIVOS............................................................................17 01. Comando ‘pwd’ 17
  3. JDCM UNIX SVR4 - NB ii 02. Comando ‘ls’ 17 03. Comando ‘mkdir’ 18 04. Comando ‘rmdir’ 18 05. Comando ‘rm’ 19 06. Comando ‘cd’ 19 07. Comando ‘cp’ 20 08. Comando ‘mv’ 20 09. Comando ‘file’ 21 10. Comando ‘cat’ 21 11. Comando ‘pg’ 22 12. Comando ‘head’ 22 13. Comando ‘tail’ 23 14. Comando ‘diff’ 23 15. Comando ‘wc’ 24 16. Comando ‘grep’ 24 17. Comando ‘sort’ 25 18. Comando ‘cut’ 25 19. Comando ‘find’ 26 B. OTROS COMANDOS.................................................................................................................26 01. Comando ‘date’ 27 02. Comando ‘cal’ 27 03. Comando ‘calendar’ 28 04. Comando ‘banner’ 28 05. Comando ‘split’ 28 C. IMPRESION DE ARCHIVOS - PARTE I....................................................................................29 01. Comando ‘lp’ 29 02. Comando ‘lpstat’ 29 03. Comando ‘cancel’ 30 D. MANEJO DE ACCESOS ............................................................................................................30 01. CONSIDERACIONES EN LOS PASSWORD 30 02. FACTORES PARA VIGENCIA DEL PASSWORD 31 03. Comando ‘passwd’ 32 04. Comando ‘chown’ 35 05. Comando ‘id’ 35 06. Comando ‘groups’ 35 07. Comando ‘chgrp’ 36 08. Comando ‘newgrp’ 36 09. MANEJO DE LOS PERMISOS DE ACCESO 36 10. Comando ‘chmod’ 37 COMUNICACIONES ________________________________________________________________ 38 A. COMUNICACIONES EN EL AMBIENTE UNIX ......................................................................38 01. INTRODUCCION 38 02. ARCHIVOS PARA MENSAJES BASICOS 38 03. Comando ‘tty’ 38 04. Comando ‘stty’ 39 05. Comando ‘news’ 39 06. Comando ‘mesg’ 40 07. Comando ‘who’ 40 08. Comando ‘finger’ 41 09. Comando ‘write’ 41 10. Comando ‘wall’ 42 11. Comando ‘mailx’ 43 APENDICES ________________________________________________________________________ a ACCESO A MS-DOS.........................................................................................................................a BIBLIOGRAFIA a Notas b
  4. JDCM UNIX SVR4 - NB iii Comandos de Referencia en Línea  Los siguientes comandos UNIX le brindan acceso en línea a la información del manual de referencia: • MAN Accesa a las entradas del manual de referencia en el sistema. • MANDEX Accesa a un sistema indexado manejado por menú con el fin de buscar los manuales en línea seleccionados para un determinado asunto o comando.  Utilícelos siempre!
  5. JDCM UNIX SVR4 - NB 1 BASES DEL SISTEMA OPERATIVO UNIX A. ESTRUCTURA DEL SISTEMA UNIX 01. DEFINICION DEL SISTEMA UNIX a) DEFINIMOS UNIX COMO  Un sistema operativo o conjunto especial de programas (software) que controla el funcionamiento del computador.  Una colección de programas aplicativos denominados a menudo “herramientas” o “utilitarios”. b) QUE ES UN SISTEMA OPERATIVO?  Un conjunto de programas que controla y organiza las actividades de un computador.  Actúa como nexo entre el computador y sus usuarios, terminales, impresoras y dispositivos para almacenamiento de información como discos y unidades de cinta.  Distribuye los recursos del computador al:  Controlar la memoria del mismo,  Controlar y organizar las tareas a realizarse,  Mantener eficientemente el uso de la memoria y dispositivos periféricos. 02. CARACTERISTICAS UNIX  Provee un medio computacional simple, eficiente, flexible.  Ofrece las siguientes ventajas:  Ser un sistema de propósito general para realizar una gran variedad de trabajos o aplicaciones.  UNIX es un ambiente interactivo que permite comunicarse directamente con el computador y recibir respuestas inmediatas a sus requerimientos y mensajes.  Es un ambiente multi-usuario que le permite compartir los recursos del computador con otros usuarios sin sacrificar su productividad.  Es un ambiente multi-tarea que le permite a cualquier usuario el ejecutar más de un programa simultáneamente.  Es portable ya que existe en muchos tipos de computadores y es debido a que está escrito de modo que no se centra en un hardware específico.  Posee herramientas poderosas para desarrollo.  El UNIX SVR4 unifica las versiones importantes de UNIX (BSD, SunOS, XENIX, AT&T) en un producto robusto que sigue los estándares de la industria. XENIX UNIX SVR4 SunOS 4.3BSD UNIX SVR3 Figura No. 2: Integración del Sistema Operativo UNIX 03. UN POCO DE HISTORIA SOBRE EL SISTEMA UNIX
  6. JDCM UNIX SVR4 - NB 2 En 1965, los Bell Telephone Laboratories participaron en un proyecto junto con la General Electric Company y el Projecto MAC del MIT (Massachusetts Institute of Technology) para desarrollar un nuevo sistema operativo denominado MULTICS (Multiplexed Information and Computing System). Las metas del sistema MULTICS eran las de proveer acceso simultáneo al computador por parte de una gran comunidad de usuarios, amplio poder de cómputo y almacenamiento de información, y permitir a los usuarios el compartir fácilmente su información, si así lo deseaban. Aunque hacia 1969 estaba corriendo una versión primitiva del sistema MULTICS en un computador General Electric 645, no brindaba el servicio general de computación que se suponía ni tampoco estaba claro para cuándo se lograrían sus metas por lo tanto, la Bell Laboratories suspendió su participación en el proyecto. Sin embargo, puesto que otros sistemas operativos de esos dias eran orientados al proceso batch, Ken Thompson, Dennis Ritchie y otros, miembros del Computing Science Research Center de los Bell Laboratories y participantes en el desarrollo de MULTICS, permanecieron leales a él y decidieron escribir su propio sistema operativo basado en sus mejores características, a la vez que incorporaban algunos conceptos propios. Este sistema operativo fue escrito en lenguaje ensamblador en 1969 y fue llamado UNIX en 1970, habiendo cambiado su nombre del original UNICS (Uniplexed Information and Computing System), dado por Kernighan. Para probar este nuevo sistema operativo se escogió el computador PDP-7 de Digital Equipment Corporation en 1971 (realmente, se encontraba sin uso), y aunque de alguna manera primitivo según los estándares actuales, el PDP-7 UNIX brindó a Thompson y Ritchie un ambiente para programación más amigable que sus alternativas. En este ambiente, los dos continuaron implementando ideas para el Sistema UNIX. Cimentaron las bases para un interpretador de comandos al que denominaron “shell”i. Este shell actúa como intermediario entre el usuario y el computador al traspasar al sistema los comandos ingresados por el usuario y al disponer la ejecución de los mismos. El trabajo con el sistema operativo continuó y durante ese tiempo, el Sistema UNIX fuere-escrito en un lenguaje de alto nivel denominado “B” por su creador Thompson, el cual era interpretativo. En 1971, Ritchie refinó “B” y agregó características de programación estructurada renombrándolo “C”, a la par que ya se podía generar código máquina, declaración de tipos de datos, y definición de estructuras de datos. Pero como un sistema operativo escrito en lenguaje ensamblador es dependiente de la máquina para la cual se escribió, no puede transferirse de una máquina a otra. Hoy sólo unas cuantas rutinas del núcleo del sistema operativo están escritas en lenguaje ensamblador. Puesto que el Sistema UNIX fué re- escrito en el nuevo lenguaje “C” en 1973, tiene la habilidad adicional de ser transportable entre diferentes computadores. Este fué el primer intento de codificar un sistema operativo entero en un lenguaje de alto nivel, y la portabilidad que se consiguió está ampliamente considerada como una de las razones principales de la popularidad que el Sistema Operativo UNIX goza hoy. Durante este período se introdujeron los “pipes” (enlaces, tubos o cauces). Al enlazar la salida (resultado) de un comando con la entrada (órdenes) de otro comando, se pueden encadenar comandos que evitan la creación de excesivos archivos temporales. Por esos años también se iniciaron las herramientas para proceso de textos lo que condujo a que el primer cliente real del sistema UNIX fuera la Oficina de Abogados de Patentes de los Laboratorios Bell. Las mejoras a la estructura del sistema de archivos básico condujeron a la creación de la estructura jerárquica o de árbol, existente hoy. La descripción absoluta del nombre de un archivo en esta jerarquía permite al usuario moverse a través de todos los directorios y redes de archivos en el sistema. Se asignaron nombres a dispositivos tales como terminales, discos, o cintas y a través de estos nombres, el Sistema Operativo UNIX puede comunicarse con cada dispositivo. Dado que el Sistema UNIX tuvo sus raíces en el centro de desarrollo de los laboratorios Bell y en las salas de cómputo de las universidades -ya que éstas escucharon acerca de las actividades en los Laboratorios Bell y empezaron a indagar por el Sistema Operativo UNIX, a través de los años se han desarrollado muchas versiones del sistema UNIX las cuales incorporaron las mejoras y modificaciones creadas por estos esfuerzos de desarrollo. Esto dió lugar a que a finales de los ‘70ii una generación completa de profesionales en informática aprendiera su profesión con el sistema UNIX y que apareciera toda una ola de innovaciones entre las que destaca la ampliamente utilizada versión de la Universidad de California en Berkeley iii -la cual estuvo involucrada en el Sistema UNIX desde 1974 gracias a Thompson. Esta versión es tan importante que la Defense’s Advanced Research Projects Agency (DARPA) de Estados Unidos decidió basar su entorno de computación universal en el Sistema UNIX y lo encargó a Berkeley. El sistema UNIX pasó por varias revisiones internas antes que estuvieran disponibles fuera de los Laboratorios Bell unas pocas copias de la Versión 4 y a fines de 1973 la Versión 5, ésta última por una mínima regalía, pero sin ofrecer soporte para él. En 1976 la Versión 6 fué la primera versión ampliamente difundida y en 1978, el Grupo de Investigaciones de los Laboratorios Bell liberó la Versión 7 para la PDP- 11, seguida por la 32V para sistemas VAX de DEC la cual adiciona paginación de memoria, produciendo el 3BSD (Release 3 de la BSD). Posteriormente, los Laboratorios Bell ATT han desarrollado la Edición Octava y Edición Novena, como investigación interna. Desarrollos posteriores incluyen la Edición Sexta en 1975 y la Edición Séptima en 1977 iv . Las versiones comerciales del Sistema UNIX empezaron en 1977 con el “Programmer’s Workbench System” (PWB/UNIX), que se derivó de la Versión 6. En 1980 Microsoft introdujo el Sistema XENIX v , una variante del Sistema UNIX Séptima Edición y algunos utilitarios del 4.1BSD, que fue diseñado para ejecutarse en microcomputadoras. El System III apareció en 1981 y combinaba características del PWB/UNIX y de la Versión 7.
  7. JDCM UNIX SVR4 - NB 3 Sin embargo, algunas restricciones gubernamentales previnieron comercializar esta versión fuera de Bell por el Decreto de Concesión de 1956 del Departamento de Justicia, que impedía que el sistema contuviera tecnología del momento. Una vez que estas restricciones fueron removidas, debido al desmembramiento judicial de las Bell Operating Companies, se anunció el UNIX System V en 1983 vi . Esta versión ofrecía un paquete sofisticado para comunicaciones entre procesos el cual incluía semáforos, mensajes y memoria compartida, así como algunas características tomadas de la versión del sistema de Berkeley de ese entonces como por ejemplo, el editor ‘vi’, el ‘C-shell’, el manejador de base de datos relacional INGRES, control de tareas, redes -las cuales, en 1984 vii , con el 4.2BSD permitieron un amplio acceso a los protocolos Ethernet y TCP/IP los cuales fueron adoptados por muchos vendedores, así como otras nuevas facilidades-. Debido a la portabilidad de los Sistemas UNIX, durante los siguientes dos años se captó rápidamente el interés comercial y compañías como Rand Corp., Yourdon Inc., y Onyx Systems adquirieron las primeras licencias de uso comercial. Luego aparecieron el UNIX System V Release 2 en 1984 -que introdujo protección de archivos durante cortes de potencia, bloqueo de archivos y registros para uso exclusivo por un programa, control de trabajos, entre otras cosas- y el UNIX System V Release 3 en 1987, conocidos como SVR2 y SVR3 respectivamente. Esta última ha incorporado la facilidad de comunicaciones STREAMS y la TLI (Transport Layer Interface) las cuales permiten el soporte de servicios para red en forma independiente del medio y del protocolo, y el FACE (Framed Access Command Environment), que proporciona una interfaz de usuario orientada a menú. Esta sofisticación técnica en aumento, junto con una campaña de mercadeo por parte de ATT, puso al System V en una posición de liderazgo en el mercado mundial, mientras que las versiones BSD resultaban dominantes en las comunidades universitarias y técnicas. En Enero de 1985 ATT liberó la SVID (System V Interface Definition) el cual es un documento legal y protegido para sistemas abiertos no propietarios, la que codificaba muchas de las interfaces del System V Release 2. Fué influenciado por el ‘/usr/group’ Standard viii de 1984, adoptando facilidades como bloqueo de archivos. Al igual que el ‘/usr/group Standard’, la intención del SVID es la de promover la portabilidad de aplicaciones y es de la misma manera, independientes del hardware. Se evitó la información específica de la implementación en lo posible y se utilizaron nombres simbólicos para valores numéricos. El primer volumen del SVID define el sistema base y las extensiones del kernel mientras que el segundo define utilitarios básicos y avanzados, soporte al desarrollo de software, administración del sistema y extensiones para la interface de terminales. Un tercer volumen dado a conocer en 1987 incluye una adición al sistema base que actualiza los dos primeros volúmenes, así como material acerca de nuevas facilidades en el System V Release 3. Este volumen incluye los últimos desarrollos técnicos específicos al System V, como la facilidad de comunicaciones STREAMS y redes. Un nuevo capítulo, titulado SVID89 incluye características del también nuevo System V Release 4, el cual soporta muchas interfaces y comandos adoptados de sistemas BSD y XENIX, interfaces para ventanas, mayor soporte para la administración del sistema, internacionalización y tiempo real, además de incluir el soporte a la X/OPEN Portability Guide Version 3 ix , ANSI-C y POSIX.1 x . A pesar de estos estándares, el mover aplicaciones de una arquitectura de procesadores a otra o aún, entre un equipo de un vendedor y otro utilizando la misma arquitectura resulta costoso y lento. Aquí empezó un esfuerzo para unificar las muchas variantes de UNIX. A principios de 1987, ATT anunció un acuerdo con Microsoft para unir su XENIX en el System V. En octubre del mismo año, ATT y SUN Microsystems anunciaron una alianza en la cual SUN trabajaría con ATT para unir su sistema operativo SunOS -basado en el 4.2BSD- con el SVR4, junto con XENIX. Esto hubiera conducido a un único estándar -unificado- de UNIX si los temores de la competencia no hubieran intervenido. La decisión de ATT de adoptar el microprocesador SPARC como la arquitectura para afinar el sistema UNIX asustó a los competidores de SUN en el mercado de las estaciones de trabajo, que temieron que el rendimiento de UNIX estuviera comprometido en sus propias arquitecturas. Es así que Hewlett Packard, DEC e IBM formaron la OSF xi (Open Software Foundation) en mayo de 1988 para desarrollar su propia implementación de UNIX. En respuesta, los vendedores de hardware y software leales al SVR4 formaron UNIX INTERNATIONAl (UI) xii . El 15 de mayo de 1990, la OSF liberó oficialmente un nuevo estándar para la computación distribuída, el DCE (Distributed Computing Environment). UNIX International ha definido un producto más competitivo que el DCE utilizando la arquitectura ODC (Open Distributed Computing) de UNIX Software Laboratories como el núcleo de su arquitectura la cual denomina ATLAS, y está presente desde el 16 de Setiembre de 1991. a) LA NECESIDAD DEL MERCADO DE UN ESTANDAR A medida que el Sistema Operativo UNIX ha incrementado su sofisticación, también lo han hecho las necesidades de sus usuarios. Los tipos de hardware y diferentes sistemas continúan en aumento. las velocidades y capacidades han aumentado dramáticamente, el sistema corre en hardware que va de micros a minis, multiprocesadores, mainframes y supercomputadores.
  8. JDCM UNIX SVR4 - NB 4 Los usuarios de Sistemas UNIX no son más meros programadores o están vigentes sólo en ambientes de investigación académica. La base de usuarios se extiende ahora también al mundo de los negocios: ejecutivos, grupos de soporte, personal de mercadeo e investigadores industriales. Nuevas clases de usuarios demandan nuevas clases de aplicaciones. A medida que los vendedores han adicionado nuevas facilidades a los sistemas para soportar estas nuevas demandas de aplicaciones, sus productos han adquirido a menudo diferentes facilidades y nuevas implementaciones de interface. Con esto, los diferentes sistemas han diferido y se acrecienta la necesidad de estándares. b) ¿POR QUE ESTANDARES? Un estándar de interface para sistema operativo que sea seguido por todos los vendedores permitiría que los programas sean escritos para un ambiente específico en el cual éstos pudieran ser ejecutados sin modificaciones en diferentes sistemas. Para la industria, una portabilidad como ésta es importante ya que permite mayor producción y distribución de aplicaciones. De esta manera, los estándares ahorran tiempo y dinero a los usuarios y a los proveedores, a la par que ofrecen una base firme en un mercado incierto. c) LA ARQUITECTURA ATLAS  Un ambiente completo de servicios y aplicaciones distribuídas: amplia.  Una solución de estado del arte que impulsa la tecnología existente: está establecida.  Una metodología que integra la computación heterogénea sin interrumpir aplicaciones existentes, comunicaciones y/o formatos de datos: no invade otros terrenos. d) ¿QUE PROVEE LA ARQUITECTURA UI-ATLAS?  Necesidades computacionales totales:  Toma las necesidades de tres audiencias claves: » Usuarios finales/centro de datos, » Administradores de sistemas distribuídos, » Desarrolladores de aplicaciones distribuídas.  Administradores de Sistemas.  Administradores de Transacciones.  Compatibilidad con bases instaladas (ahora y en el futuro).  Evolución transparente a partir de tecnología disponible hoy en el System V.  Evolución controlada por la industria (basada en estándares).  Soporte de tecnologías que prometan reducir significativamente el costo del desarrollo/portabilidad de aplicaciones. e) BIBLIOGRAFIA UNIX International UNIFORUM Unix System V Version 4 Kenneth H.Rosen - Richard R. Rosinski - James M. Farber, Osborne/McGraw Hill, 1991 The Design of the UNIX Operating System Maurice J. Bach Prentice-Hall INC./ATT,1987
  9. JDCM UNIX SVR4 - NB 5 04. COMPOSICION DEL SISTEMA OPERATIVO UNIX Manipulación de archivos Utilidades Matemáticas Utilidades para manejar impresoras Redes y Comunicaciones Herramientas para Desarrollo de Software Procesamiento de Textos (vi) Compilador 'C' Utilidades para manejar terminales kernel shell Figura No. 3: Resumen Arquitectónico del Sistema Operativo UNIX 05. CAPAS QUE LO CONFORMAN a) KERNEL  Maneja la memoria.  Mantiene el sistema de archivos.  Controla el acceso al computador.  Distribuye los recursos del sistema entre los usuarios. b) FILESYSTEM  Piedra angular del Sistema Operativo UNIX.  Proporciona un método lógico para organizar, obtener y manejar información.  Su estructura es jerárquica, semeja un árbol invertido u organigrama.  Su unidad básica es el archivo. c) SHELL  Es un programa que sirve como interpretador de comandos y permite la comunicación con el sistema operativo.  Pasa los requerimientos al kernel y se asegura que son ejecutados.  El más popular es el Bourne shell.  También es un lenguaje de programación.  Puesto que puede leer las entradas que se le den y retornar mensajes, se le describe como interactivo. d) APLICACIONES O HERRAMIENTAS  Son un conjunto de intrucciones para el computador.
  10. JDCM UNIX SVR4 - NB 6  Si un conjunto de instrucciones es ejecutado por el computador sin necesidad de traducirlo entonces a este conjunto se denomina “programa ejecutable” o “comando”.  Son utilitarios diversos (procesadores de texto, hojas de cálculo, graficadores, etc.)  Se utilizan para comunicaciones (comunicaciones simples como entre el terminal del usuario y el computador hasta comunicaciones con otros computadores utilizando protocolos específicos -SNA, X.25, OSI)  Algunas permiten el manejo de información (desde crear un archivo hasta manejar bases de datos con construcciones complejas como disco espejo, etc.)  Otras preparan un ambiente para programación (todos los compiladores disponibles en el mercado) 06. CLASIFICACION DE ARCHIVOS a) ARCHIVO ORDINARIO  Es una colección de caracteres que se trata como una unidad.  Se usan para almacenar información.  Esta información puede ser texto, reporte, comando, etc. b) DIRECTORIO  Es un super archivo que contiene un grupo de archivos relacionados.  Su función es la de ser un puntero a otros archivos o directorios.  A esta relación (jerarquía) se denomina relación padre - hijo ya que los archivos contenidos en un directorio están subordinados a éste. c) ARCHIVOS ESPECIALES  En realidad es un puntero a un dispositivo (impresora, terminal, disco).  Se ubican en general en el directorio /dev.  El sistema los lee y escribe de la misma forma que lo hace con los archivos ordinarios sin embargo,  Los requerimientos de lectura y escritura no activan el mecanismo normal de acceso a archivos sino que activan el manejador del dispositivo asociado con el archivo. 07. CONVENCIONES PARA NOMBRAR ARCHIVOS  Deben ser descriptivos.  Los nombres pueden tener hasta un máximo de 14 caracteres de longitud para el sistema de archivos tipo ‘ s5 ‘ y 256 para el tipo ‘ ufs ‘.  Pueden consistir de: 1. Letras mayúsculas : ( A - Z ) 2. Letras minúsculas : ( a - z ) 3. Números : ( 0 - 9 ) 4. Puntos : ( . ) 5. Comas : ( , ) 6. Caracter subrayado : ( _ )  No pueden tener caracteres especiales (esto es, caracteres diferentes a los mencionados antes).  Deben empezar con un caracter alfanumérico.  No debe haber espacios dentro del nombre.  Las mayúsculas se diferencian de las minúsculas.  Dentro de un directorio los nombres deben ser únicos.
  11. JDCM UNIX SVR4 - NB 7 08. CARACTERES DE REDIRECCIONAMIENTO  Input desde un archivo.  Salida hacia un archivo.  Adiciona a un archivo. 09. METACARACTERES  El caracter ‘ ? ‘ identifica un solo caracter: fi? encuentra “fig”, “fin”  El caracter ‘ * ‘ identifica cualquier combinación de cualquier número de caracteres: fi* encuentra “fig”, “figura”, “finura”  El conjunto de caracteres ‘ [ ] ‘ identifica un agrupamiento de caracteres:  fi[gn] encuentra “fig”, “fin”  file[1-4] encuentra “file1”,”file2”,”file3”,”file4”  [Ff]ile encuentra “File” o “file”  [F,g,h]ile encuentra “File” o “gile” o “hile”  file[!1-3] encuentra aquellos archivos que no terminan en 1 o 2 o 3 10. INTERPRETACION DE LOS METACARACTERES  Encerrarlos entre apóstrofes simples ( ‘ ) para tratar todo el dato entre ellos como un solo literal.  Las comillas permiten interpretar dentro del dato algunos caracteres especiales como: $, `, . .  El backslash ( ) que precede a un metacaracter neutraliza su significado.  Los acentos graves o apóstrofes invertidos ( ` ) permiten la sustitución de un comando por su resultado. Ejemplos: $ echo “No haga eso !” No haga eso ! $ echo *** *** $ echo x `*` y x * y $ echo “La fecha es: `date`” La fecha es: Thu Nov 20 12:45:16 EDT 11. SU LUGAR EN EL SISTEMA DE ARCHIVOS  Cada vez que Ud. interactúa con el sistema UNIX, lo hace desde una ubicación precisa dentro de su estructura de archivos.  El Sistema UNIX lo posiciona automáticamente en un punto específico de su sistema de archivos cada vez que Ud. lo accesa.  Desde ese punto Ud. puede moverse a través de la jerarquía para trabajar con sus directorios y archivos y accesar a aquellos que pertenecen a otros usuarios y sobre los cuales Ud. tiene permiso de acceso.  Igualmente, aquí puede crear o borrar archivos y directorios así como controlar el acceso a los mismos. 12. NAVEGANDO POR LA ESTRUCTURA DE ARCHIVOS  Una estructura de archivos UNIX siempre se inicia con un directorio proporcionado por el sistema, denominado “root” y representado por el símbolo “ / “.  Este directorio es la raíz, origen o punto de partida de cualquier otro directorio o archivo que se cree en el sistema.  Un directorio es un archivo que contiene punteros hacia otros archivos u otros directorios. Estos directorios denominados “subdirectorios” pueden a su vez contener punteros hacia otros archivos o directorios, y así sucesivamente.  El formato utilizado para referirse a un archivo en esta estructura es: /directorio/directorio/nombre_del_archivo
  12. JDCM UNIX SVR4 - NB 8  Esta estructura de concatenación de archivos utilizando el caracter “ / “ se denomina nombre completo o “pathname”. cuando a Ud. se le asigna un nombre de usuario, también se le asigna un directorio y a éste directorio se le denomina “directorio base”, pudiendo estar localizado en cualquier parte de la estructura de archivos UNIX. El sistema UNIX busca a lo largo del camino correcto hasta que ubica su directorio base; cuando Ud. accesa al sistema UNIX, automáticamente es puesto en ese directorio. El camino entre el directorio raíz y su directorio base es un ejemplo de “pathname”.  En la medida que Ud. continúe trabajando en su directorio base, éste se considera su “ directorio de trabajo “ o “ directorio actual ”.  Si cambia a otro directorio, este nuevo directorio se convierte en su nuevo directorio actual.  Al directorio actual se le representa con un punto ( . ) y es denominado también “ directorio hijo “  El directorio del cual parte o al cual pertenece este último, denominado a su vez “directorio padre”, se representa con dos puntos ( .. ).  Ud. puede navegar a través de la estructura de archivos especificando la “trayectoria absoluta” (o “trayectoria completa”), o la “trayectoria relativa” de un archivo.  Una trayectoria absoluta o completa es el camino hacia un archivo empezando en el directorio raíz.  Una trayectoria relativa es el camino hacia un archivo relativo a su directorio actual o de trabajo. / (root) stand sbin dev etcunix term console home jose maria tmp var usr bin lib sbin ls cat = Directorios = Archivos Ordinarios = Archivos Especiales = Enlaces Figura No. 4: Jerarquía del Sistema Operativo UNIX 13. DESCRIPCION DE DIRECTORIOS IMPORTANTES /bin Contiene programas ejecutables y utilitarios propios del sistema. /dev Contiene archivos especiales que representan dispositivos periféricos como la consola, impresora, terminales, discos, cintas. /etc Contiene programas y archivos que UNIX utiliza para su administración. /lib Contiene librerías para programas y lenguajes (compiladores). Es un enlace simbólico con el directorio ‘ /usr/lib ‘, y es creado para compatibilidad con versiones anteriores de UNIX. /tmp Contiene archivos temporales que pueden ser creados por cualquier usuario o el mismo sistema operativo. /usr Contiene archivos, programas, o utilitarios que son adicionales a los del sistema operativo.
  13. JDCM UNIX SVR4 - NB 9 /hinv Contiene archivos de configuración de hardware. Sistema de archivos propio de UNISYS. /home Directorio por defecto para los directorios de los usuarios. /proc Punto de montaje para otro tipo de sistema de archivos. Los archivos aquí contenidos representan los procesos en ejecución en memoria y su nombre es el número de identificación del proceso. /sbin Contienen los programas requeridos por el comando ‘ init ‘ para el proceso de carga o para recuperación a partir de una falla del sistema. También contiene los comandos administrativos para el modo mono_usuario. /stand Punto de montaje para el sistema de archivos de carga (bfs). E. ACCESO AL SISTEMA UNIX 01. QUE ES NECESARIO?  Un terminal con las siguientes características:  Debe estar en línea.  Configurado a:  FULL DUPLEX.  NO PARITY.  BAUD RATE (acorde con el computador).  Generar letras minúsculas siempre.  Se define con la variable TERM:  TERM=tipo_de_terminal  Se hace que el sistema la reconozca para toda la sesión de trabajo con: export TERM  Un nombre para acceso (login) mediante el cual el sistema UNIX lo identifique como usuario autorizado.  Una palabra clave (password) que verifique su identidad. 02. CONVENCIONES GENERALES  Los comandos deben ser ingresados en minúsculas (a menos que se especifique lo contrario)  Existen caracteres especiales simples: • # para borrar un caracter • @ para borrar una línea entera  o compuestos: xiii ### ^d CTRL d, salir del sistema ### ^s / ^q CTRL s / CTRL q, XON/XOFF ### ^h CTRL h, borrar caracter ### ^u CTRL u, borrar línea ### ^c CTRL c, interrumpir la ejecución del comando  o teclas especialmente etiquetadas: • CR Termina una línea y posiciona el cursor en una nueva línea. • ESC Realiza una función específica al usarse con otra tecla. • DEL Anula la línea de comando actual. • BREAK Detiene la ejecución de un comando o programa.  Los nombres para login deben ser de 3 a 8 caracteres, en minúsculas e iniciándose siempre por una letra, sin símbolos. Cada vez que desee ingresar al sistema debe usarlo. La expresión “ login “ se deriva del hecho que el sistema mantiene un “ log “ por cada usuario que ingresa al sistema. La línea que aparece en el terminal:
  14. JDCM UNIX SVR4 - NB 10 login: indica que el sistema está esperando su ingreso al mismo.  El nombre para los password debe seguir las siguientes normas:  De 6 a 8 caracteres, pero su longitud se puede definir en el archivo ‘/etc/default/passwd’.  Por lo menos dos caracteres alfanuméricos (mayúsculas o minúsculas) y por lo menos 1 caracter especial o numérico.  Debe ser diferente del login incluso, no debe ser el inverso o rotación de éste. Para la verificación, mayúsculas y minúsculas son lo mismo.  Por razones de seguridad, el sistema UNIX no muestra este nombre en pantalla. Aparece inmediatamente después que ha ingresado el login: login: empleado CR password: F. LINEAS DE COMANDO 01. INTRODUCCION  Un programa es un conjunto de instrucciones para el computador.  Todos aquellos programas que puede ejecutar el computador sin necesitar transformación previa se denominan archivos ejecutables o comandos.  El sistema UNIX le brinda muchos programas estandard y herramientas con los cuales Ud. puede:  Procesar textos (editarlos).  Manejar información esto es, organizar el filesystem.  Transmitir y/o recibir información de otros sistemas (comunicación electrónica).  Desarrollar software (establecer ambiente para programación amigable).  Accesar a utilitarios adicionales (para gráficos o cálculos). 02. SINTAXIS O COMO EJECUTARLOS  Con el fin de que sus requerimientos sean comprensibles para el sistema UNIX, Ud. debe presentar cada comando en el formato o sintaxis de comando correcto.  La sintaxis define el orden en el que debe ingresar los componentes de una línea de comando: comando opcion(es) argumento(s) donde: • comando Es el nombre del comando/programa que se desea ejecutar • opción Modifica la forma en que el comando se ejecuta (usualmente precedido por “ - “). • argumento Especifica la información sobre la que opera ese comando.  Las palabras que componen un comando completo se separan por lo menos con un blanco (un espacio o una tabulación).  Si un argumento contiene blancos debe encerrarlo entre comillas.  Algunos comandos le permiten especificar múltiples opciones y/o argumentos en una línea de comandos.  Las opciones deben estar separadas por un guión ( - ) y espacios en blanco entre ellas.  O por lo menos un guión y las demás opciones juntas, sin espacios en blanco ni guiones. Ejemplo: incorrecto correcto wcfile wc file
  15. JDCM UNIX SVR4 - NB 11 wc-lfile wc -l file wc -l w file wc -l -w file wc file1file2 wc file1 file2 03. COMO EJECUTA EL SISTEMA UNIX UN COMANDO USUARIO SHELL KERNEL PROGRAMAS COMANDOS UTILITARIOS ETC. Figura No. 7: Funcionamiento del shell  Luego de presionar la tecla CR para ejecutar un comando, el shell:  Chequea que exista el comando.  Chequea los permisos.  Analiza los argumentos y opciones de la línea de comando.  Inicia el proceso.  Al terminar vuelve al prompt. H. EDITORES DE TEXTOS 01. INTRODUCCION  Un editor de textos realiza las tareas de insertar, adicionar, borrar o transponer textos y finalmente, preparar una copia limpia y corregida de éstos logrando que su escritura y revisión sea mucho más fácil y rápida que si se hiciera manualmente.  Para el sistema UNIX, los editores de textos son programas interactivos que aceptan comandos propios y luego realizan las funciones requeridas. 02. COMO TRABAJAN  Tan pronto como un editor es invocado éste separa un espacio de trabajo temporal denominado “buffer de edición” y cualquier información que pueda ingresar mientras se edita un archivo, se almacena en este buffer donde puede modificarse.  No importa si Ud. crea o actualiza un archivo, el texto dentro del buffer está organizado en líneas que son simplemente una serie de caracte-res que aparecen horizontalmente en la pantalla y terminan cuando presiona la tecla RETURN.  Se diferencian dos modos de operación: de comando y de operación.  Cuando se inicia una sesión de edición, ésta comienza en modo comando pero sólo puede modificar, adicionar o crear un texto en el modo texto y en este modo, todos los caracteres que tipee se colocan en el buffer como parte de su archivo texto.  El editor de líneas es muy rápido. Manipula texto línea por línea de modo que se necesita especificar el número de la línea que desea trabajar.  El editor de pantalla es una herramienta interactiva orientada a la visualización de un texto en toda la pantalla, página por página. Esto permite posicionar el cursor en cualquier punto de la pantalla en donde se quiera modificar algo, logrando resultados inmediatos. Este editor consume recursos del computador:
  16. JDCM UNIX SVR4 - NB 12 procesador (debido al reformateo de la pantalla por cada cambio realizado), disco (ya que genera archivos intermedios para su trabajo), si los cambios son mayores. 03. EDITOR ‘ed’ a) INGRESO Y SALIDA DEL EDITOR Ingresamos: $ed archivo Aparece: • ? archivo Si no existe, indicando que es nuevo. • xxx Donde ‘xxx’ es el número de bytes existentes en el archivo. Salimos: • q En modo comando. b) CARACTERISTICAS GENERALES  Pasamos a modo comando al presionar “ . “ como único caracter en la línea.  Guardamos el texto en el archivo especificado al presionar “ w “ como único caracter en la línea.  En general, todo comando debe ser ingresado solo, como único caracter en la línea.  El editor no indica en qué modo se está trabajando a menos que se ejecute el comando “P” el cual muestra un “ * “ cada vez que se ingresa al modo comando.  Si deseamos cambiar el “ * “ (prompt), lo podemos hacer en el momento que invocamos el editor y usamos la opción: “ -p “ (este prompt puede ser uno o varios caracteres) $ed -p prompt archivo  Un comando ‘ed’ consta de hasta 3 componentes: posición comando opción donde la posición se refiere a la línea (o líneas) sobre las que se desea trabajar. Si no se especifican líneas, la operación se realiza sobre la línea actual en el buffer (la última en la que se estuvo trabajando).  Dos líneas separadas por una coma se interpreta como un rango de líneas.  Cuando una sesión de edición termina anormalmente, el sistema operativo UNIX trata de salvar el contenido del buffer de edición en el archivo ‘ed.hup’ en el directorio de trabajo. c) COMANDOS PROPIOS • [.]a Adiciona líneas tras la actual. • [.,.]c Modifica un rango de líneas. • [.]i Inserta líneas delante de la actual. • [.,.]p Muestra un rango de líneas. • . Indica la línea actual en modo comando o, pasa de modo texto a modo comando. • $ Indica la última línea. • ! cmnd Ejecuta un comando externo en forma temporal. Ejemplos: 3i Ingresa al modo texto e inserta un texto digitado antes de la línea 3. 8c Ingresa al modo texto y reemplaza la línea 8 por otro texto digitado. 1,5c Ingresa al modo texto y reemplaza las líneas 1 a la 5. 5p Muestra la línea 5. 2,6p Muestra las líneas 2 a la 6. $c Ingresa al modo texto y cambia el texto de las líneas 10 hasta el final del archivo. !ls Muestra el contenido del directorio actual y retorna al editor. La salida de este comando no es parte del archivo que se edita.
  17. JDCM UNIX SVR4 - NB 13 d) OTROS COMANDOS • 1,$p Muestra todo el archivo. ### ,p Igual al anterior. • .,$p Muestra el contenido del archivo entre la línea actual ( . ) y la última línea ( $ ). • n Muestra la línea y el número de la línea actualmente en el buffer. • 1,$n Muestra todas las líneas con número de línea. ### = Muestra el número de líneas del buffer. ### + o RETURN, pasa a la siguiente línea, mostrándola. ### - Pasa a la línea anterior, mostrándola. • l Muestra caracteres visibles y no visibles de la línea actual. • [.,.]mn Mueve el rango de líneas especificado por [.,.] después de la línea ‘n’. • [.,.]tn Copia las líneas especificadas por [.,.] después de la línea n. • [.,.]d Remueve las líneas especificadas por el rango [.,.]. ### /texto/ Búsqueda del “texto”xiv hacia adelante. ### / Siguiente ocurrencia xv hacia adelante del “texto” previamente establecido. • ?texto? Búsqueda del “texto” hacia atrás. • ? Siguiente ocurrencia hacia atrás del “texto” previamente establecido. • [.,.]s/antiguo/nuevo/ Sustitución simple de la primera ocurrencia en la línea del texto “antiguo” por el “nuevo”. • [.,.]s/antiguo/nuevo/g Sustitución global del texto “antiguo” por el “nuevo” en la línea. • [.,.]s/antiguo/nuevo/p Muestra el resultado de la sustitución del texto “antiguo” por el “nuevo”. • u Deja sin efecto el último comando efectuado. • H Causa que automáticamente se muestre un mensaje de error cada vez que aparece “ ? “. • h Causa que se muestre un mensaje de error explicando la razón del “ ? “ más reciente. • [1,$]w[archivo] Graba el contenido del buffer actual en un “archivo” diferente al original. Ejemplos: .= Muestra el número de la línea actual m4 Mueve la línea actual después de la línea 4 $m0 Mueve desde la línea 5 hasta la última hacia el inicio del archivo 1,4t10 Copia las líneas 1 a 4 colocándolas después de la línea 10 +3p Muestra las 3 líneas posteriores a la actual 5p Muestra las 5 líneas anteriores a la actual 5d Remueve la linea 5 5,6d Remueve las líneas 5 y 6 s/a 12/b 14/ Reemplaza la primera ocurrencia de “a 12” por “b 14” en la línea actual. s2s/azul//g Borra todas las palabras “azul” de la línea 2. $s/azul/mar/gp xvi Reemplaza todas las ocurrencias de la palabra “azul” por la palabra “mar” y muestra los resultados. 04. EDITOR ‘vi’ - PARTE I a) INGRESO Y SALIDA DEL EDITOR Ingresamos: $vi archivo Aparece: ~ ~ . . . ~ “archivo” [New file]
  18. JDCM UNIX SVR4 - NB 14 Salimos: ### :q Pasamos a modo comando y digitamos ‘ q ‘ seguido de CR. b) CARACTERISTICAS GENERALES  Pasamos a modo comando al presionar ESC.  Invocamos a la línea de comando con “ : “ (siempre aparece en la última línea).  Guardamos la información con la siguiente secuencia: ESC + “ : “ + “ w “  Utiliza toda la pantalla, el cursor aparece en la columna superior izquierda, llena la pantalla con tildes ( ~ ) indicando que no hay información.  Al igual que el editor `ed`, `vi` nos proporciona una forma de distinguir entre el Modo Comando y el Modo Texto: $vedit archivo el editor muestra el modo de operación en la esquina inferior derecha de la pantalla.  Depende de las características específicas y capacidades de cada terminal.  Cuando una sesión termina anormalmente, UNIX salva el contenido del buffer de edición en un archivo en el directorio de trabajo teniendo el mismo nombre que el archivo de trabajo. Se recupera con la opción siguiente: vi -r nombre_de_archivo c) COMANDOS BASICOS (1) ADICION E INSERCION DE TEXTO • a Adiciona caracteres a la derecha del cursor. • A Adiciona caracteres después del último caracter de la línea. • i Inserta caracteres antes del cursor. • I Inserta caracteres al inicio de la línea. • o Abre una línea en blanco bajo la línea actual. • O Abre una línea en blanco sobre la actual. Ejemplos: Texto original : Una línea de texto Adicionamos : xxzz Cursor ubicado en : ‘e’ de ‘línea’ Comando Resultado a Una línexxzza de texto A Una línea de textoxxzz i Una línxxzzea de texto I xxzzUna Línea de texto o Una línea de texto xxzz O xxzz Una línea de texto (2) BORRADO DE TEXTOS • e Del cursor al final de la palabra. • w Del cursor al inicio de la palabra. • $ Del cursor al final de la línea. • 0 Del caracter antes del cursor hasta el inicio de la línea. • b Del caracter antes del cursor hasta el inicio de la palabra. • [n] Número de caracteres a borrar hacia la derecha (x) o izquierda (X). • xp Intercambia el caracter bajo el cursor por el de su derecha.
  19. JDCM UNIX SVR4 - NB 15 d) MOVIMIENTO DEL CURSOR (1) MOVIMIENTOS BASICOS DEL CURSOR • [n]k Mueve el cursor ‘ n ‘ líneas hacia arriba. • [n]j Mueve el cursor ‘ n ‘ líneas hacia abajo. • [n]G Mueve a la línea ‘ n ‘ • H A la primera fila, primera columna de la pantalla. • G A la última línea del archivo. • M A la mitad de la pantalla. • L A la última línea de la pantalla. • CTRL b Muestra página anterior. • CTRL f Muestra siguiente página. • CTRL d Mueve 12 líneas hacia abajo. • CTRL u Mueve 12 líneas hacia arriba. • CTRL g Muestra la línea actual, el número total de líneas del archivo y el porcentaje que esta línea representa del total. (2) MOVIMIENTO DENTRO DE UNA PANTALLA • nH Mueve el cursor hacia la línea ‘ n ‘ contada desde la línea superior de la pantalla. • nL Mueve el cursor hacia la línea ‘ n ‘ contada desde la línea inferior de la pantalla. ###^E Baja la ventana una línea. ###^Y Sube la ventana una línea. ###^L Blanquea y redibuja la pantalla. (3) MOVIMIENTO DENTRO DE LINEAS • 0 Cero al inicio de la línea. ###^ Primer caracter de la línea actual (ignora espacios y tabulaciones). • $ Al final de la línea. • CR Inicio de la línea siguiente. ###+ Inicio de la línea siguiente (en el primer caracter no blanco). ###- Inicio de la línea anterior (en el primer caracter no blanco). • w Una palabra hacia adelante. • b Una palabra hacia atrás. • [n]h Mueve el cursor ‘ n ‘ caracteres a la izquierda. • [n]l Mueve el cursor ‘ n ‘ caracteres a la derecha. Igual a la barra espaciadora. ###^D Resetea el margen izquierdo de una autoedición. (4) MOVIMIENTO POR BLOQUE DE TEXTO • e Fin de palabra. • E Fin de palabra (ignorando puntuación). • b Retrocede una palabra. • B Retrocede una palabra, ignorando puntuación. • w Adelanta una palabra. • B Adelanta una palabra, ignorando puntuación. ###// Dos slashes: repite la última búsqueda. (5) MODIFICAR TEXTO • D Borra desde el cursor hasta el final. • dd Borra toda la línea incluyendo el CR. • [n]c[rango] Modifica el texto que se especifica en “rango”, el número de líneas especificado en ` n `. • cc Cambia toda la línea sin el CR. • [n]yy Copia las líneas especificadas por ` n ` a un buffer temporal. • [n]Y Igual que ` yy `. • p Copia la(s) línea(s) del buffer temporal debajo de la línea actual. • P Copia la(s) línea(s) del buffer temporal encima de la línea actual. • CR En el modo texto parte la línea a partir del caracter sobre el que está el cursor. • J Une dos líneas. • u Deshace el comando anterior. • U Deshace todos los comandos dados a la línea actual.
  20. JDCM UNIX SVR4 - NB 16 ###/patrón Busca hacia adelante el patrón indicado. ###/ La siguiente ocurrencia hacia adelante del texto anterior. ###/patrón/- Posiciona el cursor en el inicio de la línea sobre ‘patrón’. ###/patrón/+2 Posiciona el cursor dos líneas por debajo de ‘patrón’. • ?texto Busca hacia atrás el texto indicado. • ? La siguiente ocurencia hacia atrás del texto anterior. • n Repite el comando de búsqueda en la dirección previamente especificada. • s Sustituye caracteres (actúa igual al comando ‘ cl ‘). • S Sustituye líneas (actúa igual al comando ‘ cc ‘). • N Repite el comando de búsqueda en la dirección opuesta. ###:wCR Graba el archivo. ###:qCR Sale del editor. ###:wqCR Graba el archivo y sale del editor. ###:q!CR Sale del editor sin grabar nada. • r Reemplaza el caracter bajo el cursor. • R Reemplaza un texto a partir del cursor (hasta presionar la tecla Escape: ESC). • n- Corre ‘ n ‘ columnas a la izquierda. • n- Corre ‘ n ‘ columnas a la derecha. • mx Marca la posición del cursor con el caracter especificado por ‘ x ‘. • ‘x Acento grave: mueve el cursor a la posición marcada por ‘ x ‘. • d`x Acento grave: borra desde el cursor hasta (pero no incluyendo) la posición marcada uniendo las líneas parciales restantes. • d’x Apóstrofe: borra todas las líneas completas desde donde está el cursor hasta incluir la posición marcada. (6) COMANDOS ‘:’ ###:e [file] Blanquea el buffer y carga “ file “ en el buffer (edita otro archivo). ###:r [file] Inserta “ file “ debajo de la línea donde se encuentra el cursor. ###:r!cmd Carga la salida de un comando shell en el texto y donde está ubicado el cursor. ###:!cmd Ejecuta un solo comando shell y luego retorna al editor. ###:n Edita el siguiente archivo de la lista. ###:g/x/cmd Ejecuta un comando ‘ ed ‘ en todo lo que concuerde con ‘ x ‘. ###:m,nwfile Adiciona líneas desde la ‘ m ‘ hasta la ‘ n ‘ al ‘ file ‘. ###:m,nm# Mueve las líneas desde la ‘ m ‘ hasta la ‘ n ‘ después de la línea ‘ # ‘. ###:m,nco#/m,nt# Copia las líneas desde la ‘ m ‘ hasta la ‘ n ‘ después de la línea ‘ # ‘. (7) BUSQUEDA Y REEMPLAZO TOTAL ###:[.,.]s/texto_antiguo/texto_nuevo/opciones Sustituye el “texto_antiguo” por el “texto_nuevo” dentro del rango especificado. Las opciones son las del editor ‘ ed ‘. ###:1,30s/texto1/texto2/gc Pide confirmar cada reemplazo (si se acepta se presiona ‘ Y + CR ‘, para ignorar se presiona sólo CR. ###:s/est.e/este Asumiendo que ‘est007e’ sea lo primero, se remueve ‘007’. ###:%s/texto1/texto2/g Busca todas las líneas y reemplaza todas las ocurrencias de ‘texto1’ por ‘texto2’. ###:g/texto1/s//texto2/g Busca el patrón ‘texto1’ en forma global, luego reemplaza toda ocurrencia de este ‘texto1’ por ‘texto2’ en las líneas encontradas. ###:g/texto1/s/texto2/texto3/g Busca el patrón ‘texto1’ en forma global, luego reemplaza toda ocurrencia de ‘texto2’ por ‘texto3’ en las líneas encontradas. ###:.,+3 Muestra desde la línea actual ( . ), 3 líneas más. Si se usa el signo negativo, serán 3 líneas menos. ###:1,$s Busca en todas las líneas del archivo. ###:%s Igual al anterior.
  21. JDCM UNIX SVR4 - NB 17 COMANDOS BASICOS A. MANEJO DE DIRECTORIOS Y ARCHIVOS 01. Comando ‘pwd’ Propósito: Mostrar el nombre del directorio de trabajo. Sintaxis: /usr/bin/pwd Opciones: Ninguna Consideraciones: Ninguna Ejemplo: $ pwd /usr/lib 02. Comando ‘ls’ Propósito: Mostrar el contenido de uno o más directorios. Sintaxis: /usr/bin/ls [-RalFs] { nombres } Opciones: • R Muestra sucesivamente todos los subdirectorios encontrados. • a Lista todas las entradas, incluso aquellas que empiezan con ( . ), normalmente ocultas. • l Listado detallado. • F Pone un ( / ) después de cada nombre de archivo si éste es un directorio o un ( * ) si es un archivo ejecutable. • s Proporciona el tamaño en bloques, incluyendo bloques indirectos. Consideraciones:  La salida está sorteada alfabéticamente por defecto.  Cuando no se da el argumento (‘nombres’ en este caso), se trabaja sobre el directorio actual.  La salida detallada incluye (todo esto por cada archivo mostrado): 1. Modo 2. Número de enlaces ó número de nombres con que se le reconoce en todo el sistema 3. Nombre del propietario 4. Nombre del grupo de trabajo al cual pertenece el propietario 5. Tamaño en bytes 6. Fecha y hora en que el archivo fué modificado por última vez 7. Nombre del archivo.  El ‘modo’ consiste en 10 caracteres.  El primero puede ser uno de los siguientes: • d Si la entrada es un directorio • b Si la entrada es un archivo especial de acceso por bloques.
  22. JDCM UNIX SVR4 - NB 18 • c Si la entrada es un archivo espe-cial de acceso por caracter. • p Si la entrada es un archivo especial FIFO (denominado ‘pipe’). ### - Guión, si la entrada es un archivo ordinario.  Los siguientes 9 caracteres se interpretan como conjuntos de 3 bit cada uno.  El primer conjunto se refiere a los permisos del propietario sobre el archivo.  El segundo conjunto se refiere a los permisos de los demás componentes del grupo de trabajo sobre este archivo.  El tercer grupo se refiere a todos los demás usuarios que no son propietarios ni pertenecientes al mismo grupo de trabajo.  Dentro de cada conjunto, los tres caracteres indican permisos para: • r leer • w modificar • x ejecutar ### - no se brinda permiso alguno Ejemplo: $ ls -la total 9 drwxr-xr-x 2 stu2 stud 480 Aug 30 10:25 letra -rw-r—r-- 1 stu2 stud 264 Sep 05 09:37 memo -rw-rw-rw- 1 stu2 stud 230 Aug 25 09:50 .carta 03. Comando ‘mkdir’ Propósito: Crear un directorio. Sintaxis: /usr/bin/mkdir [-p] { nombre_de_directorio } Opciones: • p Se crea el ‘nombre_de_diretorio’ solicitado creando antes todos los directorios padres necesarios. Consideraciones:  Las entradas estandard en un directorio (archivo ‘ . ‘ para el mismo directorio y ‘ .. ‘ para el directorio padre) se hacen automáticamente.  Este comando no las puede crear por nombre.  Se requiere tener permiso en el directorio padre para crear un directorio.  Si se trata de crear un directorio con la opción ‘-p’ y éste existe, se envía un mensaje de error. Ejemplo: $ mkdir user1 Crea el directorio ‘user1’ debajo del directorio de trabajo actual $ mkdir -p /usr1/user3 Crea el directorio ‘usr1’ y luego el directorio ‘user3’, asumiendo que ninguno exista. 04. Comando ‘rmdir’ Propósito: Remover un directorio (vacío). Sintaxis: /usr/bin/rmdir [-p] { nombre_de_directorio } Opciones: • p Permite la remoción del directorio ‘nombre_de_directorio’ y sus directorios padres.
  23. JDCM UNIX SVR4 - NB 19 Consideraciones:  Usando la opción ‘-p’ se imprime un mensaje indicando si parte o toda la trayectoria es removida o permanece por alguna razón (no tiene permiso de escritura, no pertenece al usuario). Ejemplo: $ rmdir /usr/acct/user1 05. Comando ‘rm’ Propósito: Removemos archivos. Sintaxis: /usr/bin/rm [-fir] { archivo / directorio } Opciones: • f Ocasiona la remoción de todos los archivos (protegidos o no) sin notificar al usuario. No se remueven los archivos de un directorio protegido. • i Se pide confirmación para la remoción de un archivo protegido en forma interactiva. • r Ocasiona la remoción de todos los directorios y subdirectorios de la lista de argumentos. Consideraciones:  Con la opción ‘ -r ‘ primero se borran los archivos contenidos en el directorio especificado y luego se borra éste.  Se pide confirmación cuando se remueve cualquier archivo protegido.  La confirmación se inactiva cuando se utiliza la opción ‘ -f ‘.  No se pueden borrar los directorios ‘ . ‘ ni ‘ .. ‘.  Un directorio/archivo está protegido cuando no tiene permiso de modificación (escritura) o cuando no pertenece al usuario. Ejemplo: $rm -r /usr1/local $rm -f /usr1/local/prg $rm [A-Z]file*.cob 06. Comando ‘cd’ Propósito: Cambiamos de un directorio de trabajo a otro. Directorio de residencia: Comando interno del shell. Sintaxis: cd {directorio} Opciones: Ninguna Consideraciones:  Si no se especifica ‘directorio’ se utiliza el directorio base como directorio de trabajo es decir, se retorna al directorio base desde cualquier directorio donde se encuentre.  Si se especifica ‘directorio’, éste se convierte en el nuevo directorio de trabajo. Ejemplo:
  24. JDCM UNIX SVR4 - NB 20 $ pwd /usr/acct/user1 $ cd /usr/lib/ter2 $ pwd /usr/lib/ter2 $ cd $ pwd /usr/acct/user1 Muestra directorio actual Cambio a otro directorio de trabajo Muestra nuevo directorio de trabajo Cambia a directorio original Confirma el cambio 07. Comando ‘cp’ Propósito: Copiar archivos. Sintaxis: /usr/bin/cp [opciones] [full_pathname/ [full_pathname/ archivo_fuente] archivo_destino] Opciones: • i Pide confirmación antes de sobreescribir en un archivo_destino. • r Si el archivo_fuente es un directorio, lo copia así como a sus archivos, incluyendo subdirectorios. Consideraciones:  Las respuesta posibles son: Y para SI y cualquier otro caracter para NO.  Si el “archivo_destino” existe, es reemplazado por el “archivo_fuente”.  Dentro de un mismo directorio, “archivo_fuente” y “archivo_destino” deben tener nombre distinto.  Si el archivo_fuente es un directorio, el archivo_destino también debe serlo y deben encontrarse en el mismo sistema de archivos.  Si el archivo_destino es un archivo, su contenido se sobreescribe pero el modo, propietario, y grupo asociados no cambian pero sí el tiempo de modificación y acceso. Ejemplo: $cp -r /usr1/file1 /usr2 $cp -i cp: overwrite /usr2/file5? /usr1/file1 /usr2/file5 $cp file1 file4 08. Comando ‘mv’ Propósito: Mover o renombrar archivos. Sintaxis: /usr/bin/mv [-fi] { archivo_fuente } { archivo_destino } Opciones: • f Renombra el “archivo_fuente” sin importar sus permisos. • i Pide confirmación antes de renombrar un archivo existente. Consideraciones:  Las respuesta posibles son: Y para SI y cualquier otro caracter para NO.  Dentro de un mismo directorio no puede haber dos archivos con el mismo nombre.  Si existen “archivo_destino” y “archivo_fuente”, éste último reemplaza al primero.  Si se determina que los permisos del “archivo_destino” prohíben su modificación, el comando muestra estos permisos requiriendo una respuesta (sí o no).
  25. JDCM UNIX SVR4 - NB 21 Ejemplo: $mv /usr1/file1 /usr2 $mv file3 /usr1/file9 $mv /usr1/file3 /usr2/file5 09. Comando ‘file’ Propósito: Identificar el tipo de archivo. Sintaxis: /usr/bin/file [-c] { argumento } [-f archivo] Opciones: • c Causa que el comando revise los “argumentos” buscando errores de formato. • f Ocasiona que se tome “archivo” como aquel que contiene los nombres de los archivos a ser examinados (argumentos). Consideraciones:  Normalmente no se emplea la opción ‘ -c ‘ por razones de eficiencia.  El comando lee cada argumento y distingue los siguientes tipos de archivos: archivos de clasificación datos data shell scripts command text ejecutables executable programas texto xxx text 10. Comando ‘cat’ Propósito: Mostrar el contenido de un archivo. Sintaxis: /usr/bin/cat [-sve] { archivo } Opciones: • s Elimina mensaje de error cuando no se encuentra algún archivo. • v Muestra los caracteres no visibles normalmente (excepto tabuladores, saltos de página, nuevas líneas). • e Ocasiona que al final de la línea y antes del caracter de nueva línea se imprima un caracter “ $ “. Consideraciones:  El comando lee cada archivo en secuencia y lo escribe en la salida estandard.  Los caracteres de control ASCII (octal 000 - 037) se imprimen como ‘ ^n ‘, donde n es el caracter ASCII correspondiente en el rango octal 100 - 137 es decir: @, A, B, .... ,X, Y, Z, [, , ], ^, _ .  Para mostrar más de 23 líneas utilizar ^s, ^q Ejemplo: $ cat Texto Imprime el contenido de “Texto” en pantalla
  26. JDCM UNIX SVR4 - NB 22 11. Comando ‘pg’ Propósito: Otra forma de mostrar el contenido de un archivo, esta vez formateado. Sintaxis: /usr/bin/pg [-p string -c +línea +/patrón/] { archivo } Opciones: • p string Por cada pantalla imprime ‘string’ al término de ésta. • c Mueve el cursor a la posición (0,0), borra la pantalla antes de continuar. • +línea Desde qué línea empieza a mostrar el archivo • +/patrón/ Busca un patrón específico y muestra el archivo a partir de la primera ocurrencia del ‘patrón’. Consideraciones:  Permite visualizar el contenido de un archivo una pantalla a la vez.  Cada pantalla es seguida por un prompt ‘string’ o el valor por defecto (default) ‘ : ‘.  Se pasa de una pantalla a la otra presionando CR.  Se termina la visualización presionando la tecla ‘ q ‘.  Permite retroceder en la visualización del texto.  Entre las respuestas que pueden darse cuando el comando ‘pg’ espera por ellas se encuentran: • $ Muestra la última pantalla del archivo (las últimas líneas del archivo que pueden contenerse en una pantalla). ###/patrón/ Busca hacia adelante la ocurrencia de ‘patrón’. • ?patrón? Busca hacia atrás la ocurrencia de ‘patrón’. • h Muestra un resumen abreviado de los comandos internos posibles. • q Finaliza el comando Ejemplo: $ pg -p “Su comando?: “ ---------------------------------- ---------------------------- -------------------------------- ------ Su comando?: q $ 12. Comando ‘head’ Propósito: Muestra determinado número de líneas a partir del inicio del archivo. Sintaxis: /usr/local/bin/head [opciones] archivo(s) Opciones: • x Proporciona las primeras ‘ x ‘ líneas de los archivos especificados. Consideraciones:  Por default imprime siempre las primeras diez líneas. Ejemplo: (El archivo ‘cat21’ contiene las siguientes líneas) Línea No.1 Línea No.2 Línea No.3 Línea No.4 Línea No.5 Línea No.6 Línea No.7 Línea No.8
  27. JDCM UNIX SVR4 - NB 23 $ head -4 cat21 Línea No.1 Línea No.2 Línea No.3 Línea No.4 13. Comando ‘tail’ Propósito: Muestra determinado número de líneas o caracteres a partir del final del archivo. Sintaxis: /usr/bin/tail [opciones] archivo(s) Opciones: • +/- número Muestra +número desde el inicio o -número desde el final del archivo. • lbc Cuenta en líneas, bloques o caracteres. Consideraciones:  Por default cuenta en líneas.  El comando “tail” copia el “archivo” indicado a la salida estándard, empezando en el lugar designado.  El comando “tail” sólo mostrará los últimos 4096 bytes de un “archivo” sin importar su número de líneas.  Puede ocurrir un comportamiento extraño con archivos conteniendo caracteres especiales o multibyte.  Por default imprime siempre las últimas diez líneas. Ejemplo: (El archivo ‘cat21’ contiene las siguientes líneas) Línea No.1 $ tail -2 cat21 Línea No.2 Línea No.3 Línea No.3 Línea No.4 Línea No.4 14. Comando ‘diff’ Propósito: Muestra las diferencias entre archivos. Sintaxis: /usr/bin/diff [opciones] archivo1 archivo2 Opciones: • b Ignora los espacios y tabulaciones tras el dato. • e Produce un script conteniendo comandos del editor ‘ ed ‘ para hacer que archivo1 sea idéntico al archivo2. Consideraciones:  Nos informa qué líneas deben cambiarse entre dos archivos de modo que sean idénticos.  La salida normal contiene líneas que semejan la siguiente forma: • n1 a n3,n4 • n1,n2 d n3 • n1,n2 c n3,n4 3. Estas líneas son comandos del editor ‘ ed ‘ para convertir el “archivo1” en “archivo2”.  Los números después de las letras pertenecen al “archivo2”.  Lo que sigue a estas líneas son las líneas afectadas en el “archivo1” etiquetadas con el caracter ‘ ‘ y les siguen las afectadas en el “archivo2” etiquetadas con el caracter ‘ ‘.
  28. JDCM UNIX SVR4 - NB 24 Ejemplo: $ cat group1 users:NONE:100:dcr,banco ofis:700:ofis,demo,boss curso:1001:user01,user02,user03 $ cat group2 ofis:700:ofis,demo,boss curso:1001:user01,user02,user03 $ diff group1 group2 1d0 users:NONE:100:dcr,banco $ diff -e group1 group2 1d $ diff group2 group1 0a1 users:NONE:100:dcr,banco $ diff -e group2 group1 0a users:NONE:100:dcr,banco . 15. Comando ‘wc’ Propósito: Contar el número de líneas, palabras y caracteres que posee un archivo. Sintaxis: /usr/bin/wc [opciones] [archivos] Opciones: • l Muestra sólo el número de líneas. • w Muestra sólo el número de palabras. • c Muestra sólo el número de caracteres. Consideraciones: Ejemplo: $wc times 8 52 1325 times 16. Comando ‘grep’ Propósito: Búsqueda de un texto en un archivo. Sintaxis: /usr/bin/grep [opciones] expresión [archivos] Opciones: • c Muestra el número de líneas que concuerda con “expresión” en lugar del patrón mismo. • l Muestra el(los) nombre(s) del(de los) archivo(s) cuyo contenido concuerda con “expresión” (una sola vez). • n Muestra el número de linea en que apare-ce alguna concordancia. • i Trata mayúsculas y minúsculas por igual. • v Muestra las líneas que no concuerdan con “expresión”. • s Suprime los mensajes de error. Consideraciones: Ejemplo: $ grep [Ff]inanciero reporte $ grep [4-9]. reporte $ grep -lc l[0-3] * $ grep ” estado financiero$” reporte $ grep ”^Resultados del campeonato” reporte $ grep ’.pic’ archivo
  29. JDCM UNIX SVR4 - NB 25 17. Comando ‘sort’ Propósito: Ordenamiento de líneas de texto xvii Sintaxis: /usr/bin/sort [opciones] [campo.caracter] [archivos] Opciones: • b Ignora blancos al inicio. • f Trata mayúsculas y minúsculas por igual. • n Sort numérico. • r Orden descendente. • o ‘file’ Graba los resultados en “file”. • t ‘carac’ “carac” es un caracter utilizado como separador de campo en el archivo a sortearse. Consideraciones:  Primero, se sortean los espacios en blanco.  Segundo, se sortean los números iniciádose con el primer dígito del número (de 0 a 9).  Tercero, se sortean las letras mayúsculas.  Cuarto, se sortean las letras minúsculas. Ejemplo: $cat archivo $sort archivo $sort -n archivo 4980 12 4 12 4 12 40 40 40 4 4980 636 636 636 4980 8010 8010 8010 $cat archi1 Pedro Martinto:Las Acacias 328:223160 Miguel Pereira:Zona4, Lima:440624 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512345 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512331 Miguel Pereira: Zona 3, Lima:440634 Angel Martinelli:Los Eucaliptos 340: 475866 $sort -t: -b +2 archivo Pedro Martinto:Las Acacias 328:223160 Miguel Pereira:Zona4, Lima:440624 Miguel Pereira: Zona 3, Lima:440634 Angel Martinelli:Los Eucaliptos 340: 475866 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512331 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512345 $sort -t: -b +1 -2 +2n archivo Pedro Martinto:Las Acacias 328:223160 Angel Martinelli:Los Eucaliptos 340: 475866 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512331 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512345 Miguel Pereira: Zona 3, Lima:440634 Miguel Pereira:Zona4, Lima:440624 $sort -t: -b +2.4 -2.6 archivo Miguel Pereira:Zona4, Lima:440624 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512331 Miguel Pereira: Zona 3, Lima:440634 Sandra Villavicencio: Poma de Ayala 1324, Lince: 512345 Pedro Martinto:Las Acacias 328:223160 Angel Martinelli:Los Eucaliptos 340: 475866 18. Comando ‘cut’ Propósito: Seleccionar parte de un texto.
  30. JDCM UNIX SVR4 - NB 26 Sintaxis: /usr/bin/cut [opciones] [archivos] Opciones: • c ‘lista’ Designa una ‘lista’ con las posiciones de caracteres a cortar: • c1-40 Corta los primeros 40 caract. • c1-3,7 Corta los 3 primeros y el 7mo. • c20- Corta desde el 20mo. • f ‘lista’ Designa una ‘lista’ de campos a cortar: • f1,4 Corta el 1er y 4to campos. • d ‘carac’ ‘carac’ identifica el caracter actúa como separador de campo. Consideraciones: Ninguna Ejemplo: $ ls -l | cut -c1-8 $cat archi1 $ cut -d’:’ -f2 archi1 Las Acacias 328 Zona4, Lima Poma de Ayala 1324, Lince Poma de Ayala 1324, Lince Zona 3, Lima Los Eucaliptos 340 19. Comando ‘find’ Propósito: Búsqueda de archivos dentro del Sistema UNIX. Sintaxis: /usr/bin/find [trayectoria] [criterio de búsqueda] [acción] Opciones: xviii • atime n Selecciona los archivos que han sido accesados hace ‘n’ dias. • mtime n Selecciona los archivos que han sido modificados hace ‘n’ dias. • name file Selecciona todas las ocurrencias de ‘file’. • print Muestra los archivos encontrados. • user ID Busca los archivos que pertenecen al usuario con identificación ID (número de usuario). Se puede buscar por nombre directamente. • exec cmd {} ; Ejecuta el comando ‘cmd’, y las llaves representan cada archivo a evaluarse. • size n[c] Selecciona los archivos cuya longitud es de ‘n’ bloques. La ‘c’ corresponde a caracteres. Consideraciones:  Desciende recursivamente por la jerarquía de directorios de cada trayectoria incluída en la lista de trayectorias.  No olvidarse de la opción ‘print’ de lo contrario, no se mostrará lo que se busca o no se realizarán las órdenes dadas. Ejemplo: $ find /usr/acct -name “*.0456” -print $ find / -user juan -print $ find -atime +10 -name ‘*.c’ -print -exec rm {} ; $ find ( -mtime 5 -o -name ‘*.c’ ) -print $ find /usr/ng /usr/mp -size -10000c -print B. OTROS COMANDOS
  31. JDCM UNIX SVR4 - NB 27 01. Comando ‘date’ Propósito: Mostrar y/o fijar la fecha y hora del sistema. Sintaxis: /usr/bin/date [+formato] /usr/bin/date [mmddHHMMaa] Opciones: Formato (precedido por %): • D Fecha como mm/dd/aa • H Hora (00 - 23) • M Minuto (00 - 59) • S Segundo (00 - 59) • T Tiempo como hh:mm:ss • Y Año en formato de 4 dígitos • d Día del mes (01 - 31) • m Mes del año (01 - 12) • y Año de la centuria (00 - 99) • n Inserta un caracter de nueva línea Para fijar Fecha y Hora: • mm Número de mes • dd Número de día • HH Número de hora (formato de 24 horas) • MM Número de minuto • yy Número de año (últimos 2 dígitos y es opcional) Consideraciones:  Si no se da un argumento, se muestra la fecha y hora actuales  Si el argumento empieza con el signo más ( + ), la salida del comando está bajo control del usuario.  Todas las salidas son de tamaño fijo.  Cada descriptor de campo se precede con el signo porcentaje ( % ) y es reemplazado (el descriptor) en la salida por su correspondiente valor. Ejemplo: $ date Wed May 27 18:12:56 EDT 1989 $ date ‘+FECHA:%m/%d/%y%nHORA:%H:%M:%S’ FECHA:08/01/91 HORA:14:05:09 02. Comando ‘cal’ Propósito: Calendario electrónico. Sintaxis: /usr/bin/cal [mes] { año } Opciones: • mes Dato numérico entre 1 (enero) y 12 (diciembre). • año Dato numérico entre 1 y 9999. Consideraciones:  Los años no deben abreviarse.
  32. JDCM UNIX SVR4 - NB 28  Se imprime el calendario del mes y/o año especificado. Ejemplo: $ cal 1 1988 (Muestra el calendario del mes de enero del año 1,988) 03. Comando ‘calendar’ Propósito: Recordatorio de eventos. Sintaxis: /usr/bin/calendar Opciones: Ninguna Consideraciones:  Crear un archivo llamado “calendar” (en su directorio de trabajo). Este comando consulta este archivo en el directorio de trabajo e imprime todas las líneas que contienen las fechas de “hoy” y “mañana”.  Cada línea debe contener una fecha en el formato mes - día.  Si ejecuta el programa un viernes, aparecen los eventos del viernes, sábado, domingo y lunes.  Formatos de fechas: October 10, Oct 10, 10/10. 04. Comando ‘banner’ Propósito: Genera posters. Sintaxis: /usr/bin/banner { argumentos } Opciones: Ninguna. Consideraciones:  Los argumentos deben tener un máximo de 10 caracteres. Se imprime con letras grandes en la salida estándard (usando el caracter ‘ # ‘).  Los caracteres en exceso se ignoran. Ejemplo: $ banner UNIX # # # # ### # # # # ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## # # # #### # # ### # # 05. Comando ‘split’ Propósito: Separo archivos grandes en pequeños.
  33. JDCM UNIX SVR4 - NB 29 Sintaxis: /usr/bin/split [opciones] archivo_fuente nombre_destino Opciones: • n Cantidad de líneas por las que separa el archivo (lo normal es 1000 líneas). Consideraciones:  El “archivo_fuente” se separa en archivos pequeños cuyos nombres empiezan con “nombre_destino”.  A estos pequeños archivos se les adiciona al nombre ‘ aa ‘ y así sucesivamente (en forma lexicográfica), hasta la ‘ zz ‘.  Se puede tener un máximo de 676 archivos pequeños a partir de uno grande.  El “nombre_destino” no debe sobrepasar los 12 caracteres.  Si no se especifica el “nombre_destino”, se utiliza la letra ‘ x ‘. Ejemplo: $ split -10 status chunk $ ls chunkaa chunkab chunckac C. IMPRESION DE ARCHIVOS - PARTE I 01. Comando ‘lp’ Propósito: Envía un listado al spooler. Sintaxis: /usr/bin/lp [opciones] Opciones: • d ‘printer’ Identifica una impresora. • n x Imprime ‘x’ copias del listado. • s Suprime mensajes (fecha, banner, etc.). • t ‘título’ Imprime ‘título’ como título del listado. • w Envía un mensaje al usuario cuando ha terminado la impresión. Si el usuario no está logeado, se envía un correo. Consideraciones:  Los archivos se imprimen en el orden en que aparecen en la línea de comando.  El comando ‘lp’ asocia una única identificación con cada requerimiento y lo imprime en la salida estándard. Ejemplo: $ lp -dserial1 /usr/acct/pruebas/file1 $ lp -dlaser3 -n3 /usr/file3 $ lp -s -w /work/acct/administ/master.c 02. Comando ‘lpstat’ Propósito: Muestra el estado general del spooler.
  34. JDCM UNIX SVR4 - NB 30 Sintaxis: /usr/bin/lpstat [opciones] Opciones: • d Muestra el destino default del sistema. • s Muestra un estado resumido del sistema spooler. • t Muestra toda la información del estado de todas las impresoras y del sistema spooler. Consideraciones:  Las opciones pueden aparecer en cualquier orden.  Si no se dan opciones, el comando ‘lpstat’ imprime el estado de todos los requerimientos hechos a la impresora principal (default). Ejemplo: $ lpstat -t scheduler is running system default destination: printer device for printer: /dev/tty106 printer accepting requests since Mon Feb 4 15:37:10 1991 printer printer is idle. enabled since Wed Apr 3 11:01:59 1991. available 03. Comando ‘cancel’ Propósito: Cancela un trabajo de impresión. Sintaxis: /usr/bin/cancel [identificación de trabajo spool] impresora Opciones: Ninguna Consideraciones:  La identificación del listado así como el nombre de las impresoras se obtiene con el comando “lpstat”.  Al especificar una “identificación de trabajo spool”, se cancela el trabajo asociado aún cuando esté en impresión.  Al especificar una “impresora” se cancela el trabajo que se está imprimiendo en esa impre-sora.  En cualquier caso, la cancelación de un trabajo en ejecución libera la impresora para imprimir el siguiente trabajo (a menos que se haya especificado una impresora en cuyo caso, ningún otro trabajo será impreso hasta que se habilite la misma). Ejemplo: $ lp nombres request id is pr1-398 $ cancel pr1-398 request “pr1-398” cancelled D. MANEJO DE ACCESOS 01. CONSIDERACIONES EN LOS PASSWORD  Todos los login ID deben tener asignado un password en el archivo ‘/etc/passwd’.  Posibles excepciones son login ID simples o de un solo propósito como “who”.
  35. JDCM UNIX SVR4 - NB 31  Si existe un login ID pero no se requiere activarlo, puede protegerse editando el campo de password correspondiente y colocando cualquier texto en él incluyendo espacios en blanco y asteriscos.  El password debe tener por lo menos 6 caracteres aunque sólo los ocho primeros son significativos.  Debe consistir de por lo menos dos caracteres alfanuméricos y por lo menos uno numérico o caracter especial (mayúsculas o minúsculas).  Debe ser diferente del login ID incluyendo formas inversas o circulares.  El nuevo password debe diferenciarse del nuevo en por lo menos tres caracteres. 02. FACTORES PARA VIGENCIA DEL PASSWORD  Editar el campo de password en el archivo ‘/etc/passwd’.  Adicionar los valores de vigencia en el formato “,xy” donde: • x Número máximo de semanas antes de requerir un cambio. • y Número mínimo de semanas antes de permitir un cambio. Ejemplo: juan:gZZ6x3kTw9p49,42:130:100:J.P.:/usr/acct/juan:/bin/sh esto es, no podrá cambiar su password en por lo menos 2 semanas y debe cambiarlo luego de 4 semanas. a) ARCHIVO ‘/etc/passwd’ (1) PROPOSITO  Es el archivo de control maestro que determina el acceso al Sistema Operativo UNIX.  Es muy importante para la seguridad del sistema que sólo el administrador del mismo sea el que modifique este archivo. (2) DESCRIPCION  Existen siete campos (separados por “:”) que forman un registro por cada usuario identificado en el sistema y son, en orden: • login Nombre de login, un máximo de 8 caracteres y en minúsculas. • password Un máximo de 18 caracteres de los cuales los 13 primeros se utilizan para el password encriptado (creado por el comando “passwd”), tres caracteres para el período de vigencia de este password y dos caracteres reservados para las rutinas del sistema. • UID Es el número de identificación del usuario, mediante el cual el sistema determina la propiedad y permisos de acceso. Deben empezar desde 100 (los primeros 99 están reservados para la administración del sistema y logins especiales) y no ser mayores de 65,535. • GID Número de identificación del grupo, mediante el cual el sistema determina los permisos de acceso para el grupo. Deben corresponder a las entradas en el archivo “/etc/group”. • comment Hasta un máximo de 30 caracteres, que tradicionalmente se usan para identificar al usuario. • home_dir El nombre completo o absoluto del directorio base del usuario. Debe existir antes que el usuario pueda ingresar al sistema. • shell Es el nombre completo del archivo ejecutable (típicamente un shell interactivo) que se ejecuta al momento que el usuario ingrese al sistema. Ejemplo: usr1:gZZ6x3kTw9p49:130:100:user 1 ID:/usr/usr1:/bin/sh b) ARCHIVO ‘/etc/group’ (1) PROPOSITO  Permite la adición de usuarios a un grupo específico.
  36. JDCM UNIX SVR4 - NB 32 (2) CARACTERISTICAS  El nombre de usuario debe existir en el archivo /etc/passwd.  Las entradas en este archivo son de la forma: users::100:suzie,aldo,tomás,user1  Los cuatro campos que lo forman son:  Nombre de grupo.  El password del grupo, normalmente no se utiliza.  GID, número que identifica el grupo.  Lista de miembros del grupo (separados por comas). c) ARCHIVO ‘/etc/profile’ (1) PROPOSITO  Fija las variables ambientales de todo el sistema. (2) CARACTERISTICAS  Es leído por el shell Burne.  Muestra el mensaje del día.  Notifica al usuario si tiene correo.  Permite fijar las características estándares del terminal.  Fija el valor “umask”.  Permite ver las variables ambientales mediante los comandos “set” y “env”.  El comando interno “env” muestra las variables que se exportan hacia ó por el shell.  El comando interno “set” muestra todas las variables del sistema. 03. Comando ‘passwd’ Propósito: Cambiar la palabra clave del usuario (password). Sintaxis: /usr/bin/passwd [-sdf] { login_de_usuario } Opciones: • s Para mostrar los atributos de password para el login_de_usuario. • d Borra el password del login_de_usuario. • f Fuerza el cambio de password en el siguiente acceso al sistema. Mensajes: • Old password: • New password: • Re-type new password: Consideraciones:  Los password se almacenan en el archivo ‘/etc/shadow’.:  Debe ser diferente del login en por lo menos 3 caracteres..  Por razones de seguridad, el sistema UNIX no muestra este nombre en pantalla.  Sólo los super-usuarios pueden cambiar cualquier password.  Un super-usuario puede crear un password nulo con sólo presionar CR en respuesta al requerimiento por nuevo password.  El formato de salida es el siguiente: login estado mm/dd/aa min max aviso Donde: • login Login del usuario.
  37. JDCM UNIX SVR4 - NB 33 • estado PS: con password LK: bloqueado NP: sin password • mm/dd/aa Fecha de último cambio. • min Mínimo número de días entre cambios de password. • max Máximo número de días en que el password es válido. • aviso Días de aviso antes que el password expire. Ejemplo: $ passwd ernesto old password: new password: re-type new password: # passwd carlos new password: re-type new password:
  38. JDCM UNIX SVR4 - NB 35 04. Comando ‘chown’ Propósito: Modificar la propiedad de un archivo o directorio. Sintaxis: /usr/bin/chown [-R] { destino } Opciones: • R Desciende por la estructura del directorio y efectúa el cambio indicado en forma recursiva. Consideraciones:  El usuario debe tener acceso a su directorio base y puede mantener su propio ambiente de trabajo. Ejemplo: Cambiamos la propiedad: # chown memo /usr/acct/memo 05. Comando ‘id’ Propósito: Muestra los nombres e identificaciones de usuario y grupo. Sintaxis: /usr/bin/id [-a] Opciones: • a Reporta todos los grupos a los que pertenece el usuario. Consideraciones:  La información se toma del archivo ‘/etc/passwd’ Ejemplo: $ id uid = 101(user1) gid = 100(grp100) $ id -a uid = 101(user1) gid = 100(grp100) groups = 100(grp100). 300(grp300) 06. Comando ‘groups’ Propósito: Muestra a qué grupos pertenecen los usuarios. Sintaxis: /usr/bin/groups Opciones: Ninguna Consideraciones:  La primera salida pertenece al grupo primario identificado en el archivo ‘/etc/passwd’.  Las otras entradas muestran a qué otros grupos se pertenece, según el archivo ‘/etc/group’. Ejemplo: $ groups grp100 grp100
  39. JDCM UNIX SVR4 - NB 36 $ groups user2 grp100 grp200 $ groups user2 user3 user2: grp100 grp200 user3: grp100 grp300 07. Comando ‘chgrp’ Propósito: Modificar el grupo de trabajo. Sintaxis: /usr/bin/chgrp [-R] { destino } Opciones: • R Desciende por la estructura del directorio y efectúa el cambio indicado en forma recursiva. Consideraciones:  El directorio base debe estar asociado con el grupo del usuario.  Un usuario puede pertenecer a varios grupos para lo cual debe estar listado como miembro en cada grupo en el archivo ‘/etc/group’ sin embargo, la identificación de grupo asociado con los archivos permanece como el grupo primario. Ejemplo: Verificamos la asociación del grupo: # chgrp users /usr/acct/memo 08. Comando ‘newgrp’ Propósito: Cambia la asociación de grupo a un usuario. Sintaxis: /usr/bin/newgrp [-] { grupos } Opciones: • - Se reinicia la secuencia de logeado permitiendo al usuario pertenecer al nuevo grupo. Consideraciones:  El usuario debe pertenecer al nuevo grupo. Los archivos y directorios creados luego que se efectúan los cambios reflejan la nueva pertenencia.  Sin argumentos, se regresa al grupo primario. Ejemplo: $ groups other root bin sys adm mail tty lp daemon uucp $ id uid=0(root) gid=1(other) $ pp $ ls -l -rw-r—r-- 1 root other 0 Dec 10 17:21 pp $ newgrp bin $ pp1 $ ls -l -rw-r—r-- 1 root other 0 Dec 10 17:21 pp -rw-r—r-- 1 root bin 0 Dec 10 17:21 pp1 09. MANEJO DE LOS PERMISOS DE ACCESO  El Sistema Operativo UNIX controla el ingreso al sistema utilizando nombres de usuario (login) y palabras clave (password) que guarda en archivos especiales.
  40. JDCM UNIX SVR4 - NB 37  Tales archivos, junto con los permisos para los directorios, son utilizados para controlar quién puede utilizar un determinado archivo o directo-rio.  Existen tres tipos de usuarios: • propietario Aquel que creó el archivo o directorio. • grupo El propietario pertenece a este grupo luego todo el grupo tiene acceso a este archivo o directorio pero con restricciones (si las hubiera). • otros Cualquier otro usuario.  Existen tres tipos de acceso: • lectura Controla quién puede mirar el contenido de un archivo. • escritura Controla quién puede modificar el contenido de un archivo o directorio. • ejecución Controla quién puede ejecutar un programa. 10. Comando ‘chmod’ Propósito: Modificar los atributos de un archivo. Sintaxis: /usr/bin/chmod modo archivo(s) Opciones: • modo Representa un número octal que sirve para la modificación de los atributos del archivo. Consideraciones:  Se debe ser propietario del archivo o el administrador del sistema para ejecutar este comando.  Notación: Octal Permisos Usuario Grupo Otros lectura 400 040 004 escritura 200 020 002 ejecución 100 010 001 2. Notación: Simbólica Permisos Acción Tipo u (usuario) + r g (grupo) - w o (otros) = x a (todos) Ejemplos: $ chmod 755 archivo1 Brinda permiso de lectura, escritura y ejecución para el propietario, permiso de lectura y ejecución al grupo y otros. $ chmod 700 archivo2 Brinda permiso de lectura, escritura y ejecución para el propietario pero ningún permiso al grupo u otros. $ ls -ld budget drwxr-xr-x 2 user1 grp100 512 Jun 4 15:04 budget $ chmod go -x budget $ ls -ld budget drwxr—r-- 2 user1 grp100 512 Jun 4 15:04 budget
  41. JDCM UNIX SVR4 - NB 38 COMUNICACIONES A. COMUNICACIONES EN EL AMBIENTE UNIX 01. INTRODUCCION  Las redes juegan un rol importante en la era informática actual. La necesidad de compartir información y recursos hace de las redes una necesidad y puesto que el ambiente computacional está en constante desarrollo, también ellas se desarrollan.  Debido a su simplicidad y a su disponibilidad en la comunidad educativa e investigadora, el sistema UNIX ha sido el favorito para el desarrollo de redes desde mediados de los ‘70.  De aquí nace el UUCP.  UUCP es un conjunto de programas que permiten transferencia de archivos, ejecución remota, mantenimiento y administración en una red UNIX.  UUCP ha sido siempre popular debido a que es de bajo costo.  Es eficiente en términos de dispositivos periféricos, ciclos de procesamiento, experiencia administrativa.  Es un sistema de redes genérico.  La comunicación electrónica UNIX le permite:  Enviar y recibir correo.  Transmitir mensajes rápidos, y hasta mantener “conversaciones” entre dos usuarios.  Mostrar el calendario de un año (o mes) específico.  Mostrar un recordatorio diario. 02. ARCHIVOS PARA MENSAJES BASICOS ARCHIVO /etc/issue  Proporciona un mensaje de bienvenida.  Es un mensaje que se muestra previo al login.  Consta de cualquier texto que se requiera mostrar (incluyendo atributos de pantalla). ARCHIVO /etc/motd  Muestra un mensaje general a los usuarios.  Se muestra cada vez que un usuario ingresa al sistema.  Consta de cualquier textoque se desee mostrar (incluyendo atributos de pantalla). 03. Comando ‘tty’ Propósito: Mostrar el nombre completo del terminal donde se ejecuta este comando. Sintaxis: /etc/tty [-l] [-s] Opciones: • l Imprime el número de la línea sincrónica a la cual está conectado el terminal (si se encuentra en una línea sincrónica). • s Inhibe la respuesta de este comando permitiendo chequear sólo el “código de salida”. Consideraciones: Los “códigos de salida” son: • 0 Si la entrada estándard es un terminal. • 1 Cualquier otra cosa.
  42. JDCM UNIX SVR4 - NB 39 • 2 Si se especifican opciones inválidas.  Originalmente su nombre era un acrónimo de “teletypewriter” (teleimpresora) pero ahora viene a significar cualquier dispositivo terminal. Ejemplo: $ tty /dev/tty100 04. Comando ‘stty’ Propósito: Fija las opciones de entrada y/o salida del terminal. Sintaxis: /bin/stty [-a] opciones/argumentos Opciones: • a Muestra todas las opciones. • parenb(-parenb) Habilita (deshabilita) la generación y detección de paridad. • cs8 Selecciona el tamaño del caracter. • 1200 2400 4800 9600 Fija la velocidad en baudios del terminal al valor dado. • caracteres_de_control valor Fija el “caracter_de_control” al “valor”. Si “valor” está precedido por un ‘ ^ ‘ (previa secuencia de ESCAPE), entonces su valor es el correspondiente caracter ‘CTRL’. Consideraciones:  Sin argumentos, reporta los valores de algunas opciones.  Si un caracter está precedido por un ( ^ ), entonces el valor de esa opción es el caracter CTRL correspondiente i.e.: ^h es CTRL h. Ejemplo: $ stty kill ^c $ stty (APARECEN ALGUNOS VALORES DE ALGUNAS OPCIONES) 05. Comando ‘news’ Propósito: Mostrar noticias del sistema. Sintaxis: /bin/news [-ans] Opciones: • a Muestra todas las noticias sin importar la actualidad de las mismas. • n Muestra sólo los nombres de los archivos de noticias recientes. • s Muestra el número actual de noticias. Consideraciones:  Las noticias se basan en la actualidad (fecha de modificación del archivo ‘.news_time’ en el directorio base, y sólo se muestran los más recientes comparados con la fecha de este archivo).  Sin argumentos se muestran las noticias contenidas en el directorio ‘/var/news’. Ejemplo: $ news -n * item4 item3 item2 item1 $ news -s
  43. JDCM UNIX SVR4 - NB 40 4 new items $ news item3 ---------------------- ------ ------ ---- ----- ---- ------- -- --- ---- ------ -- -------- ---- ------- -------- ---- --. 06. Comando ‘mesg’ Propósito: Permitir o negar el ingreso de mensajes. Sintaxis: /bin/mesg [-n] [-y] Opciones: • n Previene que los usuarios le envíen mensajes. • y Permite que se le envíen mensajes. Consideraciones:  No bloquea los mensajes enviados por el super-usuario mediante el comando ‘wall’.  Solamente bloquea los usuarios ordinarios (incluso utilizando ‘wall’).  El comando sin opciones reporta el estado actual sin modificarlo. Ejemplo: $ mesg-n 07. Comando ‘who’ Propósito: Determinar quién ha ingresado al sistema. Sintaxis: /usr/bin/who [-uqH] /usr/bin/who am i Opciones: • u Información completa de usuarios activos en el sistema. • q Número de usuarios activos (y sus nombres). • H Precede la salida con una cabecera. • s Muestra sólo el nombre, terminal/línea usado(a), tiempo. Es la salida por defecto. Consideraciones:  La información mostrada por este comando se obtiene del archivo ‘/etc/utmp’ en el momento de accesar al sistema.  Usualmente se obtiene la información requerida a partir del archivo ‘/etc/wtmp’ el cual contiene una historia de todos los ingresos al sistema desde que este archivo fué creado.  El formato general de salida es: nombre línea tiempo libre PID coment donde: • nombre Es el nombre del login del usuario. • línea Nombre de la línea conforme se encuentra en el directorio ‘/dev’. • tiempo Hora en que el usuario ingresó al sistema. • libre Horas y minutos desde la última actividad de esa línea en particular. Un punto ( . ) indica que ha habido actividad en el terminal en el último minuto. Una línea sin actividad por más de 24 horas es marcada como ‘old’.
  44. JDCM UNIX SVR4 - NB 41 • PID Identificación del proceso del shell del usuario. • coment Comentario asociado con esta línea tal y como se encuentra en el archivo de configuración ‘/etc/inittab’. Ejemplo: $ who -Hu NAME LINE TIME IDLE PID COMMENT user1 tty04 Jan 26 13:11 . 8875 usert8 tty101 Jan 26 10:48 . 123 08. Comando ‘finger’ Propósito: Muestra información sobre usuarios logeados, remotos y locales. Sintaxis: /bin/finger [-fqlb] Opciones: • f Suprime la línea e cabecera. • q Muestra sólo el nombre, terminal, y tiempo de ingreso al sistema. • l Muestra la salida en forma detallada. • b Suprime el directorio base y el shell de la presentación. Consideraciones:  Incluye información de usuario como el nombre de login, su descripción (tomada del archivo ‘/etc/passwd’), nombre de terminal, tiempo sin uso, hora en que ingresó al sistema, y ubicación (si es conocida).  Un ‘ * ‘ al inicio del nombre de terminal indica que no permite recibir mensajes. Ejemplo: $finger Login Name TTY Idle When Where wjnr Bill Radognmia *console 1.17 Thu 08:10 root 0000-Admin *term/15 1 Thu 08:11 italy root 0000-Admin term/10 20 Fri 10:19 $ finger -f wjnr Bill Radognmia *console 1.17 Thu 08:10 root 0000-Admin *term/15 1 Thu 08:11 italy root 0000-Admin term/10 20 Fri 10:19 $ finger -q Login TTY When wjnr *console Thu 08:10 root *term/15 Thu 08:11 root term/10 Fri 10:19 $ finger -l Login name: userb (messages off) In real life: bourne shell Directory: /home/userb Shell: /sbin/sh On since Oct 8 08:47:08 on term/18 09. Comando ‘write’ Propósito: Escribir a otro usuario, enviar mensajes. Sintaxis: /bin/write usuario [línea]
  45. JDCM UNIX SVR4 - NB 42 Opciones: • usuario Usuario logeado en el sistema. • línea Se utiliza para indicar a qué terminal se desea escribir (asumiendo que un usuario está logeado más de una vez en el sistema i.e., está utilizando varios terminales). Consideraciones:  El comando ‘ write ‘ copia las líneas que digita en su terminal en el de otro usuario.  Cuando se invoca por primera vez, envía el mensaje: Message from usuario (tty?) [date] .. a la persona con la que se desea comunicar.  En este punto, se permite responder al que recibe el mensaje.  La comunicación continúa hasta que se envíe una interrupción.  Si se envía un mensaje a un usuario logeado más de una vez y sin la opción ‘ línea ‘, aparece el siguiente mensaje: User is logged on more than one place. You are connected to “terminal”. Other locations are: terminal  El primer “terminal” del mensaje anterior se refiere al terminal en que primero ingresó el usuario con el que se desea contactar.  Conversaciones bidireccionales: Se debe tener alguna forma de indicar al otro lado de la línea cuándo es su turno de comunicarse y cuándo se acaba la conversación. Ejemplo: $ write leo Oye Leopoldo, te invito una rubia. CTRL d $ write leo Oye Leopoldo, ahora?.. o Mensaje de `leo` Acepto, pero la hora?... o A las 3 pm, te parece? o Bien, chau oo EOF CTRL d Mensaje de `pedro` Oye Leopoldo, ahora?.. o $ write pedro Acepto, pero la hora ?... o A las 3 pm te parece? o Bien, chau oo CTRL d $ 10. Comando ‘wall’ Propósito: Escribir a todos los usuarios a la vez. Sintaxis: /etc/wall Opciones: Ninguna Consideraciones:  Este comando lee la entrada estándard hasta que encuentre un fin de archivo y lo toma como el mensaje a enviar.  Envía este mensaje a todos los usuarios actualmente logeados y lo precede por: Broadcast message from: ....
  46. JDCM UNIX SVR4 - NB 43 Ejemplo: $ wall Atención.! Debido a fallas en la impresora principal, sírvanse enviar sus trabajos a la impresora secundaria. CTRL d 11. Comando ‘mailx’ Propósito: Herramienta interactiva para el envío o recepción de correo electrónico. Sintaxis: /usr/bin/mailx [-s cabecera] { usuarios } ENVIO /usr/bin/mailx [-f archivo][-HN] RECEPCION Opciones: • s ‘cabecera’ Asigna una “cabecera” al correo. • f ‘archivo’ Lee los mensajes desde un ‘archivo’ alterno. • H Imprime sólo el resumen de cabecera. • N No imprime la cabecera inicial. Consideraciones:  El correo que llega se almacena en un archivo estandard para cada usuario en el directorio ‘/var/mail’.  Cada mensaje que se lee se marca y mueve a un archivo secundario denominado ‘mbox’ en el directorio base.  Al leerse el correo, “mailx” se encuentra en ‘modo comando’.  La cabecera o asunto a tratar no debe sobrepasar los 1024 caracteres.  A cada mensaje se le asigna un número secuencial, y siempre se sabe que existe un mensaje.  Ingrese un mensaje y presione CR al término de cada línea.  Envíe el mensaje presionando CTRL-d o ~ al inicio de una línea y sólo esta secuencia o caracter.  Las letras ‘ N ‘ (nuevo) y ‘ U ‘ (no leído) designan el estado de cada mensaje, seguido de una información descriptiva que muestra el nombre del que envía el mensaje así como la fecha y hora en que se envió, su longitud en líneas y caracteres, y el asunto del mismo. Comandos Internos: • ? Muestra una lista de posibles comandos ‘ ~ ‘. • ~!cmd Ejecuta el comando especificado por cmd. • ~h Requiere: asunto, a, copias. • ~q Termina salvando el mensaje en el archivo ‘dead.letter’ del directorio de trabajo. Es una interrupción (exit). • ~rfile Lee un archivo insertándolo en su mensaje. • d Borra los mensajes del mailbox. • ~x Sale del mailbox sin modificar el mismo i.e., el mensaje no se salva. • ~. Salida estándar: envía el mensaje y termina el comando.
  47. JDCM UNIX SVR4 - NB a APENDICES ACCESO A MS-DOS a) Conjunto de Comandos ‘DOS’: • doscat Muestra uno o más archivos en formato DOS. • doscp Copia archivos entre un disco DOS y un filesystem UNIX/XENIX. • dosdir Lista el contenido de un directorio DOS en ese formato. • dosls Lista el contenido de un directorio DOS en formato UNIX/XENIX. • dosrm Remueve archivos de un directorio o disco DOS. b) Consideraciones:  Los argumentos archivo o directorio en formato DOS tienen la forma: dispositivo:nombre donde: • dispositivo Es el nombre completo del dispositivo que posee formato DOS y, • nombre Es el nombre completo de un archivo o directorio en el dispositivo DOS.  Se usan slashes ( / ) y no backslashes ( ) para la separación de archivos y directorios.  Cuando se copia un archivo a DOS, se trunca el nombre del primero a la longitud estandard del DOS: 8 caracteres. Las extensiones siguen el mismo patrón: más de tres, se truncan. Los caracteres extraños también se remueven. No se pueden utilizar metacaracteres para referenciar directorios DOS.  Por conveniencia, existe un archivo que puede ser configurado por el usuario: /usr/default/msdos en el cual se definen los nombres de dispositivos DOS asociados con los nombres de dispositivos: A=/dev/fd0 C=/dev/hd0d de esta manera, en lugar de especificar el nombre de dispositivo /dev/fd0, utilizamos simplemente la letra “A”. Ejemplo: $ doscat /dev/fd0:/docs/memo.txt $ doscat /tmp/f1 /tmp/f2 /dev/fd0:/src/file.asm $ dosdir /dev/fd0:/src $ doscp /tmp/myfile.txt /dev/fd0:/docs/memo.txt $ dosls /dev/fd0:/src $ dosrm /dev/fd0:/docs/memo.txt $ dosdir A:/src A:/dev $ dosrm a:/docs/memo1.txt BIBLIOGRAFIA UNIX Networking Stephen Kochan Patrick Wood Hayden Books UNIX System Library UNIX System Administration David Fiedler Bruce Hunter Hayden Books UNIX System Library UNIX Shell Programming Stephen Kochan Patrick Wood Hayden Books UNIX System Library Tricks of the UNIX Masters Russell Sage The Waite Group SAMS System V Operating System User’s Guide, ATT
Anúncio