Este documento proporciona una introducción a los comandos básicos de Linux, incluyendo comandos para manipular archivos y directorios, redireccionar entrada/salida, crear tuberías entre comandos, y programar scripts de shell. También explica conceptos clave como variables de entorno, alias, y la historia de comandos.
El documento contiene 3 ejercicios de JavaScript que piden datos al usuario y muestran mensajes en función de las respuestas. El primero pide la edad y muestra si puede conducir. El segundo pide notas escolares y clasifica la calificación. El tercero concatena cadenas de texto introducidas hasta cancelar, mostrando el resultado final.
Este documento describe la metodología RUP (Rational Unified Process), la cual proporciona guías para el desarrollo de software de manera ordenada y eficiente. La metodología RUP se basa en UML y se caracteriza por estar guiada por casos de uso, centrarse en la arquitectura desde las primeras fases, y ser un proceso iterativo e incremental. El documento consta de siete capítulos que explican los conceptos fundamentales de RUP como sus fases, disciplinas, organización y su relación con UML.
Este documento presenta una metodología para la elicitación de requisitos de sistemas software. Describe seis tareas clave para la elicitación de requisitos, incluyendo obtener información sobre el dominio del problema, preparar sesiones de elicitación, identificar objetivos del sistema, identificar requisitos de información y funcionales, e identificar requisitos no funcionales. También proporciona plantillas y técnicas recomendadas como entrevistas, JAD, brainstorming y casos de uso para llevar a cabo cada tarea. El resultado es un document
El documento describe los estándares para el diseño de interfaces gráficas de usuario. Explica que una interfaz gráfica incluye elementos como ventanas, menús y botones que permiten la interacción del usuario. También describe características clave como facilidad de uso, representación consistente y elementos fácilmente identificables. Finalmente, detalla varios estándares y directrices importantes para el diseño de interfaces como ISO 9241 e ISO 13407.
Este documento describe diferentes estilos de organización y descomposición de sistemas de información. Explica arquitecturas centradas en datos, en capas, distribuidas y de aplicaciones, así como descomposiciones modulares orientadas a objetos y flujos de funciones. También cubre modelos de control centralizado y basado en eventos para la coordinación de subsistemas.
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
El documento describe los contratos de operaciones en UML, incluyendo sus secciones, propósito y ejemplos. Explica que los contratos describen el comportamiento del sistema después de la ejecución de una operación y cómo las postcondiciones detallan los cambios en el estado de los objetos, como la creación, modificación de atributos y formación de asociaciones. También proporciona un ejemplo de contrato para la operación "IntroducirArticulo".
El documento describe las técnicas utilizadas para mejorar el paralelismo en los procesadores superescalares, incluyendo la duplicación de recursos, la emisión desordenada de instrucciones y el renombramiento de registros. También explica conceptos como la predicción de saltos, la ejecución especulativa y los diferentes tipos de predictores de saltos usados para mejorar el rendimiento.
El documento contiene 3 ejercicios de JavaScript que piden datos al usuario y muestran mensajes en función de las respuestas. El primero pide la edad y muestra si puede conducir. El segundo pide notas escolares y clasifica la calificación. El tercero concatena cadenas de texto introducidas hasta cancelar, mostrando el resultado final.
Este documento describe la metodología RUP (Rational Unified Process), la cual proporciona guías para el desarrollo de software de manera ordenada y eficiente. La metodología RUP se basa en UML y se caracteriza por estar guiada por casos de uso, centrarse en la arquitectura desde las primeras fases, y ser un proceso iterativo e incremental. El documento consta de siete capítulos que explican los conceptos fundamentales de RUP como sus fases, disciplinas, organización y su relación con UML.
Este documento presenta una metodología para la elicitación de requisitos de sistemas software. Describe seis tareas clave para la elicitación de requisitos, incluyendo obtener información sobre el dominio del problema, preparar sesiones de elicitación, identificar objetivos del sistema, identificar requisitos de información y funcionales, e identificar requisitos no funcionales. También proporciona plantillas y técnicas recomendadas como entrevistas, JAD, brainstorming y casos de uso para llevar a cabo cada tarea. El resultado es un document
El documento describe los estándares para el diseño de interfaces gráficas de usuario. Explica que una interfaz gráfica incluye elementos como ventanas, menús y botones que permiten la interacción del usuario. También describe características clave como facilidad de uso, representación consistente y elementos fácilmente identificables. Finalmente, detalla varios estándares y directrices importantes para el diseño de interfaces como ISO 9241 e ISO 13407.
Este documento describe diferentes estilos de organización y descomposición de sistemas de información. Explica arquitecturas centradas en datos, en capas, distribuidas y de aplicaciones, así como descomposiciones modulares orientadas a objetos y flujos de funciones. También cubre modelos de control centralizado y basado en eventos para la coordinación de subsistemas.
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
El documento describe los contratos de operaciones en UML, incluyendo sus secciones, propósito y ejemplos. Explica que los contratos describen el comportamiento del sistema después de la ejecución de una operación y cómo las postcondiciones detallan los cambios en el estado de los objetos, como la creación, modificación de atributos y formación de asociaciones. También proporciona un ejemplo de contrato para la operación "IntroducirArticulo".
El documento describe las técnicas utilizadas para mejorar el paralelismo en los procesadores superescalares, incluyendo la duplicación de recursos, la emisión desordenada de instrucciones y el renombramiento de registros. También explica conceptos como la predicción de saltos, la ejecución especulativa y los diferentes tipos de predictores de saltos usados para mejorar el rendimiento.
El diagrama de clases modela las entidades principales como Película, Sala, Localidad, Cliente, Reserva, Compra y sus relaciones. El diagrama de secuencia muestra el proceso de reserva de una película por un cliente.
O documento descreve as diferenças entre as arquiteturas CISC e RISC, discutindo como elas estão convergindo com o tempo. Originalmente, RISC tinha vantagens de desempenho, mas CISC melhorou com técnicas como pipeline e cache. Hoje, a escolha depende mais de fatores como custo, suporte a software e hardware do que da arquitetura do processador em si.
1) El documento describe las partes principales de un microprocesador, incluyendo la unidad central de procesamiento (CPU), la unidad de control (UC), la unidad aritmético lógica (ALU) y los registros. 2) La CPU se compone de estas unidades, donde la UC controla la ALU y los registros. 3) La velocidad de un microprocesador se mide en hercios y gigahertz, representando el número de operaciones que puede realizar por segundo.
Guía de arquitectura de computadoras II-Preguntas y RespuestasMari Cruz
El documento describe las características de los microprocesadores Intel desde el Intel 8008 hasta el Intel Pentium II. Explica las arquitecturas CISC y RISC, los componentes de un microprocesador, y características de los registros del procesador 80386. También describe la ejecución de programas en los modos real y virtual del 80386, y los bloques que conforman los procesadores 80486 y Pentium II.
Los sistemas operativos multimedia son capaces de procesar información en tiempo real como video, audio e imágenes. Gestionan recursos como la memoria y dispositivos de entrada y salida para procesar datos multimedia. Se caracterizan por requerir determinismo, sensibilidad, control del usuario, fiabilidad y tolerancia a fallos para procesar datos en tiempo real de forma fiable.
Este documento describe varios métodos de ordenamiento codificados en C++, incluyendo ordenamiento por selección, inserción directa, inserción binaria, Shell, quick sort y heap sort. Explica las características clave de cada algoritmo como complejidad temporal, requerimientos de memoria y estabilidad.
Los buses son sistemas digitales que permiten transferir datos entre componentes de una computadora o entre varias de ellas. Se diferencian en buses paralelos y seriales y han evolucionado a través de tres generaciones principales. Los buses incluyen buses de datos, buses de control y buses de dirección que cumplen funciones específicas en el sistema.
El documento trata sobre la generación de código intermedio en los compiladores. Explica que el código intermedio facilita la optimización, aumenta la portabilidad del compilador y divide el proceso de compilación en fases. Describe diferentes representaciones intermedias como RPN, código P y códigos de tres direcciones, y explica cómo se generan tercetos y tercetos indirectos a partir del análisis semántico.
La sentencia if-then es la más básica de las sentencias de control de flujo y le indica al programa que ejecute cierta parte del código solamente si una condición evalúa a true. La sentencia if-then-else permite ejecutar código diferente dependiendo de si la condición es true o false. Estas sentencias pueden escribirse en una o varias líneas y permiten anidar condiciones elseif y else.
El documento describe el mecanismo de interrupciones en computadoras. Las interrupciones son señales que indican al procesador suspender la ejecución actual para ejecutar código de respuesta. Los dispositivos generan interrupciones a través de líneas IRQ asignadas. El controlador de interrupciones gestiona las líneas IRQ y prioriza las interrupciones entrantes para el procesador.
Este documento describe las técnicas de administración de memoria en sistemas operativos, incluyendo particionamiento, paginación simple, segmentación simple, y sus estrategias de solicitud, ubicación y reemplazo. Explica cómo estas técnicas permiten la multiprogramación optimizando el uso de la memoria principal.
Este documento describe las cinco generaciones de sistemas operativos desde 1945 hasta la actualidad. Cada generación se caracteriza por los avances tecnológicos de la época como tubos de vacío, transistores, circuitos integrados, computadoras personales y la inteligencia artificial. También menciona algunos sistemas operativos representativos de cada generación y las novedades que introdujeron en sus interfaces y funcionalidades.
Este documento describe diferentes algoritmos y políticas de planificación de procesadores. Explica que la planificación es realizada por el sistema operativo para administrar el tiempo del procesador entre los procesos. Luego describe algoritmos como FCFS, Round Robin, más corto primero, más corto tiempo restante, prioridad y colas múltiples, y explica sus objetivos, políticas y métricas como tiempo de servicio y espera.
El documento describe los problemas de concurrencia que surgen cuando múltiples transacciones acceden a una base de datos de forma concurrente, y los mecanismos utilizados para controlar la concurrencia, como bloqueos y estampas de tiempo. Explica que el objetivo del control de concurrencia es garantizar que las transacciones concurrentes produzcan resultados equivalentes a una ejecución secuencial, para evitar problemas como actualizaciones perdidas o análisis inconsistentes.
O documento discute os fundamentos de sistemas operacionais, com foco no Orbis OS. Aborda tópicos como gerenciamento de processos, memória e dispositivos de E/S no Orbis OS, demonstrando alguns de seus mecanismos como fork(), kill, paginação e tabelas de páginas.
El documento describe el procesamiento paralelo. Está basado en varios procesadores que realizan operaciones de manera simultánea. Existen dos modelos principales de organización de la memoria: memoria compartida, donde todos los procesadores comparten el mismo espacio de direcciones, y memoria distribuida, donde cada procesador tiene su propia memoria. También describe diferentes paradigmas y modelos de comunicación entre procesadores como paso de mensajes y memoria compartida.
Este documento describe los conceptos clave del diseño arquitectónico de sistemas de información. Explica diferentes estilos arquitectónicos como la arquitectura centrada en datos, en capas y distribuida. También cubre temas como la descomposición modular, estilos de control y documentación de la arquitectura.
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Juan Lopez
Este documento trata sobre la administración de la memoria virtual. Explica que la memoria virtual divide los programas en páginas y la memoria en marcos de página. También habla sobre el swapping que mueve procesos entre la memoria principal y secundaria. Finalmente, menciona estrategias de búsqueda como la búsqueda por demanda que espera a que se haga referencia a una página antes de traerla a la memoria principal.
Este documento presenta información sobre el modelo CMMI (Capability Maturity Model Integration) y su enfoque para mejorar los procesos de desarrollo de software. Explica las categorías de áreas de procesos de CMMI como gestión de proyectos, ingeniería, soporte y gestión de procesos. También cubre los usos inadecuados de CMMI y concluye resumiendo que CMMI apunta a lograr la madurez organizacional estableciendo estándares de calidad para el desempeño de grupos de trabajo.
Este documento describe los conceptos básicos de entrada y salida estándar en Linux y cómo redirigir flujos de entrada y salida. Explica que la entrada estándar (stdin) suele provenir del teclado y la salida estándar (stdout) suele dirigirse a la pantalla. Usa los operadores > y >> para redirigir stdout a archivos y < para redirigir stdin desde archivos. También describe cómo los procesos heredan descriptores de archivo stdin, stdout y stderr y cómo examinarlos usando /proc.
El diagrama de clases modela las entidades principales como Película, Sala, Localidad, Cliente, Reserva, Compra y sus relaciones. El diagrama de secuencia muestra el proceso de reserva de una película por un cliente.
O documento descreve as diferenças entre as arquiteturas CISC e RISC, discutindo como elas estão convergindo com o tempo. Originalmente, RISC tinha vantagens de desempenho, mas CISC melhorou com técnicas como pipeline e cache. Hoje, a escolha depende mais de fatores como custo, suporte a software e hardware do que da arquitetura do processador em si.
1) El documento describe las partes principales de un microprocesador, incluyendo la unidad central de procesamiento (CPU), la unidad de control (UC), la unidad aritmético lógica (ALU) y los registros. 2) La CPU se compone de estas unidades, donde la UC controla la ALU y los registros. 3) La velocidad de un microprocesador se mide en hercios y gigahertz, representando el número de operaciones que puede realizar por segundo.
Guía de arquitectura de computadoras II-Preguntas y RespuestasMari Cruz
El documento describe las características de los microprocesadores Intel desde el Intel 8008 hasta el Intel Pentium II. Explica las arquitecturas CISC y RISC, los componentes de un microprocesador, y características de los registros del procesador 80386. También describe la ejecución de programas en los modos real y virtual del 80386, y los bloques que conforman los procesadores 80486 y Pentium II.
Los sistemas operativos multimedia son capaces de procesar información en tiempo real como video, audio e imágenes. Gestionan recursos como la memoria y dispositivos de entrada y salida para procesar datos multimedia. Se caracterizan por requerir determinismo, sensibilidad, control del usuario, fiabilidad y tolerancia a fallos para procesar datos en tiempo real de forma fiable.
Este documento describe varios métodos de ordenamiento codificados en C++, incluyendo ordenamiento por selección, inserción directa, inserción binaria, Shell, quick sort y heap sort. Explica las características clave de cada algoritmo como complejidad temporal, requerimientos de memoria y estabilidad.
Los buses son sistemas digitales que permiten transferir datos entre componentes de una computadora o entre varias de ellas. Se diferencian en buses paralelos y seriales y han evolucionado a través de tres generaciones principales. Los buses incluyen buses de datos, buses de control y buses de dirección que cumplen funciones específicas en el sistema.
El documento trata sobre la generación de código intermedio en los compiladores. Explica que el código intermedio facilita la optimización, aumenta la portabilidad del compilador y divide el proceso de compilación en fases. Describe diferentes representaciones intermedias como RPN, código P y códigos de tres direcciones, y explica cómo se generan tercetos y tercetos indirectos a partir del análisis semántico.
La sentencia if-then es la más básica de las sentencias de control de flujo y le indica al programa que ejecute cierta parte del código solamente si una condición evalúa a true. La sentencia if-then-else permite ejecutar código diferente dependiendo de si la condición es true o false. Estas sentencias pueden escribirse en una o varias líneas y permiten anidar condiciones elseif y else.
El documento describe el mecanismo de interrupciones en computadoras. Las interrupciones son señales que indican al procesador suspender la ejecución actual para ejecutar código de respuesta. Los dispositivos generan interrupciones a través de líneas IRQ asignadas. El controlador de interrupciones gestiona las líneas IRQ y prioriza las interrupciones entrantes para el procesador.
Este documento describe las técnicas de administración de memoria en sistemas operativos, incluyendo particionamiento, paginación simple, segmentación simple, y sus estrategias de solicitud, ubicación y reemplazo. Explica cómo estas técnicas permiten la multiprogramación optimizando el uso de la memoria principal.
Este documento describe las cinco generaciones de sistemas operativos desde 1945 hasta la actualidad. Cada generación se caracteriza por los avances tecnológicos de la época como tubos de vacío, transistores, circuitos integrados, computadoras personales y la inteligencia artificial. También menciona algunos sistemas operativos representativos de cada generación y las novedades que introdujeron en sus interfaces y funcionalidades.
Este documento describe diferentes algoritmos y políticas de planificación de procesadores. Explica que la planificación es realizada por el sistema operativo para administrar el tiempo del procesador entre los procesos. Luego describe algoritmos como FCFS, Round Robin, más corto primero, más corto tiempo restante, prioridad y colas múltiples, y explica sus objetivos, políticas y métricas como tiempo de servicio y espera.
El documento describe los problemas de concurrencia que surgen cuando múltiples transacciones acceden a una base de datos de forma concurrente, y los mecanismos utilizados para controlar la concurrencia, como bloqueos y estampas de tiempo. Explica que el objetivo del control de concurrencia es garantizar que las transacciones concurrentes produzcan resultados equivalentes a una ejecución secuencial, para evitar problemas como actualizaciones perdidas o análisis inconsistentes.
O documento discute os fundamentos de sistemas operacionais, com foco no Orbis OS. Aborda tópicos como gerenciamento de processos, memória e dispositivos de E/S no Orbis OS, demonstrando alguns de seus mecanismos como fork(), kill, paginação e tabelas de páginas.
El documento describe el procesamiento paralelo. Está basado en varios procesadores que realizan operaciones de manera simultánea. Existen dos modelos principales de organización de la memoria: memoria compartida, donde todos los procesadores comparten el mismo espacio de direcciones, y memoria distribuida, donde cada procesador tiene su propia memoria. También describe diferentes paradigmas y modelos de comunicación entre procesadores como paso de mensajes y memoria compartida.
Este documento describe los conceptos clave del diseño arquitectónico de sistemas de información. Explica diferentes estilos arquitectónicos como la arquitectura centrada en datos, en capas y distribuida. También cubre temas como la descomposición modular, estilos de control y documentación de la arquitectura.
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Juan Lopez
Este documento trata sobre la administración de la memoria virtual. Explica que la memoria virtual divide los programas en páginas y la memoria en marcos de página. También habla sobre el swapping que mueve procesos entre la memoria principal y secundaria. Finalmente, menciona estrategias de búsqueda como la búsqueda por demanda que espera a que se haga referencia a una página antes de traerla a la memoria principal.
Este documento presenta información sobre el modelo CMMI (Capability Maturity Model Integration) y su enfoque para mejorar los procesos de desarrollo de software. Explica las categorías de áreas de procesos de CMMI como gestión de proyectos, ingeniería, soporte y gestión de procesos. También cubre los usos inadecuados de CMMI y concluye resumiendo que CMMI apunta a lograr la madurez organizacional estableciendo estándares de calidad para el desempeño de grupos de trabajo.
Este documento describe los conceptos básicos de entrada y salida estándar en Linux y cómo redirigir flujos de entrada y salida. Explica que la entrada estándar (stdin) suele provenir del teclado y la salida estándar (stdout) suele dirigirse a la pantalla. Usa los operadores > y >> para redirigir stdout a archivos y < para redirigir stdin desde archivos. También describe cómo los procesos heredan descriptores de archivo stdin, stdout y stderr y cómo examinarlos usando /proc.
Este documento presenta tres temas clave sobre problemáticas en ingeniería de software: 1) Problemas comunes como imprecisión en costos y planificación, baja productividad y calidad variable; 2) Mitos de gestión, clientes y desarrolladores que afectan negativamente el desarrollo de software; 3) La necesidad de adoptar un enfoque de ingeniería para derribar mitos y mejorar el desarrollo y producto de software.
El documento describe el Modelo CMMI (Capability Maturity Model Integration), el cual ayuda a las organizaciones a mejorar sus procesos de desarrollo de software mediante la definición de niveles de madurez. El modelo se centra en áreas de proceso clave y establece mejores prácticas para pasar de una empresa inmadura a una empresa madura con procesos definidos y resultados predecibles.
Este documento describe el proceso de diseño de software y sus componentes clave. Explica que el diseño consta de tres etapas: diseño de datos, diseño arquitectónico y diseño procedimental. Además, destaca que el diseño es fundamental para traducir los requisitos en un producto final y sentar las bases para el desarrollo y mantenimiento exitosos del software.
Este documento describe diferentes estrategias para implementar un sistema de software, incluyendo implementaciones paralelas, graduales, piloto y abruptas. Explica que la implementación depende de las necesidades organizacionales y que el objetivo es introducir el nuevo sistema de la manera menos disruptiva posible.
Este documento describe el paradigma de construcción de prototipos para el desarrollo de software. El paradigma implica la recolección de requisitos, el diseño rápido de un prototipo, la construcción y evaluación del prototipo por el cliente, y el refinamiento iterativo del prototipo hasta satisfacer los requisitos del cliente. Aunque el paradigma puede presentar desafíos como prototipos poco funcionales, también ofrece flexibilidad y una estrecha interacción con el cliente.
El documento describe los fundamentos del diseño de software, incluyendo la abstracción, refinamiento, modularidad y arquitectura. También cubre la documentación de diseño y la importancia de sintetizar los conceptos clave del diseño.
Este documento describe las métricas y mediciones utilizadas en el desarrollo de software. Explica que las métricas ayudan a medir el proceso de desarrollo y la calidad del producto final. También cubre temas como la gestión de proyectos, estimaciones, análisis de riesgos, seguimiento y control, así como métricas específicas para medir la calidad y productividad del software.
El documento describe el Modelo de Madurez de Capacidad Integrada (CMMI), incluyendo sus dos representaciones (escalonada y continua) y los niveles de madurez. Explica que la representación escalonada define 5 niveles de madurez organizacional, mientras que la representación continua permite a las organizaciones determinar el nivel de capacidad en diferentes áreas de proceso. También resume brevemente los contenidos de la semana sobre CMMI y síntesis.
Este documento presenta los métodos y técnicas de estimación de proyectos de software discutidos en la semana 8. Explica que la estimación de costos y esfuerzos nunca será exacta debido a factores humanos y técnicos. Luego, describe la técnica de descomposición, que divide el problema en subproblemas más pequeños para una mejor resolución, y cómo se pueden estimar las líneas de código y puntos de función usando valores óptimos, más probables y pesimistas. Finalmente, resume que las técnicas de estimación ayudan
Este documento describe los conceptos clave de ámbito y estimaciones de proyecto en ingeniería de software. Explica que el ámbito del software debe delimitar claramente los datos cuantitativos, restricciones y factores de mitigación. También cubre las funciones, rendimiento, interfaces y restricciones que deben considerarse al definir el ámbito. Finalmente, enfatiza la importancia de definir correctamente las características ambientales del sistema para llevar a cabo estimaciones de proyecto precisas.
Este documento describe los conceptos clave de estimación de proyectos de software. Explica que la estimación requiere experiencia y datos históricos confiables. Identifica factores que aumentan el riesgo como la complejidad, tamaño y estructuración del proyecto. También cubre la estimación de recursos humanos, hardware y software requeridos, y concluye que las estimaciones son fundamentales para la planificación pero no garantizan el éxito del proyecto.
Este documento describe diferentes tipos de pruebas de software, incluyendo pruebas de caja blanca, pruebas de caja negra, pruebas de sistema en tiempo real, y síntesis. Explica que las pruebas se enfocan en detectar errores en el software y deben diseñarse para garantizar la calidad.
Este documento discute tres temas clave de la ingeniería de software: 1) La combinación de paradigmas de desarrollo, donde los enfoques pueden combinarse para aprovechar las mejores prácticas de cada uno; 2) La visión genérica del proceso de ingeniería de software, que incluye las fases de definición, desarrollo y mantenimiento independientemente del paradigma; 3) La síntesis, donde la combinación de paradigmas es el resultado de integrar tareas de otros enfoques de manera consecuente con la solución.
El documento describe las etapas del análisis de riesgo en la planificación de proyectos de ingeniería de software. Estas etapas incluyen la identificación de riesgos, la proyección de riesgos mediante la estimación de probabilidades y consecuencias, la evaluación de riesgos para priorizarlos, y la gestión y supervisión de riesgos para mitigarlos. Un análisis de riesgo adecuado es fundamental para mantener el control del proyecto y enfrentar los riesgos de manera preventiva en lugar de reactiva
Este documento presenta los conceptos de planificación, reingeniería y plan de proyecto en el contexto del desarrollo de software. Explica que la planificación es fundamental para distribuir las tareas y estimar los costos y plazos del proyecto. También cubre los pasos para realizar la reingeniería de software existente. Finalmente, indica que el plan de proyecto documenta el alcance, costos y riesgos para comunicar la estrategia a las partes interesadas.
El documento describe tres temas clave: 1) El paradigma de desarrollo en espiral, el cual incorpora el análisis de riesgos como una etapa clave; 2) Las herramientas de cuarta generación que facilitan el desarrollo de software a través de la generación automática de código; 3) Una síntesis que destaca las ventajas del paradigma en espiral y las herramientas de cuarta generación para la simplificación del desarrollo de software.
Este documento describe diferentes tipos de métricas y mediciones para software. Explica métricas orientadas al tamaño, función y calidad que miden aspectos como líneas de código, puntos de función, productividad, errores y costos. También cubre el objetivo de definir métricas para medir aspectos del software y su desarrollo que puedan usarse para planificación.
Este documento explica cómo crear copias de seguridad y restaurar bases de datos en SQL Server 2005 Management Studio Express. Detalla los pasos para hacer una copia de seguridad de una base de datos existente, restaurar una base de datos a partir de una copia de seguridad, e incluso restaurar una base de datos con un nombre diferente.
Este documento presenta una introducción a los comandos de Linux. Explica comandos básicos como cd, ls, cp y grep. También cubre temas como ejecución de procesos en segundo plano, variables de entorno, redireccionamiento de entrada/salida y programación shell para automatizar tareas. En general, provee una visión general de la interfaz de línea de comandos de Linux y las herramientas disponibles para la administración de sistemas.
Este documento presenta una introducción a los comandos de Linux. Explica comandos básicos como cd, ls, cp y grep. También cubre temas como ejecución de procesos en segundo plano, variables de entorno, redireccionamiento de entrada/salida y programación shell para automatizar tareas. En general, provee una visión general de la interfaz de línea de comandos de Linux y las herramientas disponibles para manipular archivos, directorios y procesos.
Este documento presenta una introducción a los comandos básicos de Linux. Explica la organización de directorios en Linux y lista los directorios más comunes como /, /home, /usr, /var, etc. Luego describe comandos para manipular archivos y directorios como ls, cd, cp, mv, rm, entre otros. También cubre temas como variables de entorno, alias, redireccionamiento de entrada/salida y tuberías. Finalmente, introduce conceptos como filtros, programación shell y automatización de tareas.
Este documento proporciona una introducción a los comandos y conceptos básicos de Linux. Explica comandos como cat, cd, ls, grep y mv. También cubre temas como redireccionamiento de E/S, tuberías, variables de entorno, alias y programación shell para automatizar tareas. El documento proporciona una guía completa para usuarios principiantes de Linux.
Este documento proporciona una introducción a los comandos básicos de Linux. Explica que Linux usa un shell o intérprete de comandos para interactuar con el sistema a través de líneas de comandos. Describe cómo acceder al shell desde el modo gráfico o de texto y los conceptos básicos de sintaxis de comandos como el uso de argumentos y comodines. También resume los directorios más importantes del sistema de archivos de Linux como /bin, /dev, /home y /usr, y presenta algunos comandos simples como date, cal,
Este documento proporciona una introducción a los comandos y conceptos básicos de Linux. Explica comandos como cat, cd, ls, grep y más, así como temas como redireccionamiento de entrada/salida, tuberías, variables de entorno y programación shell para automatizar tareas. Además, cubre temas avanzados como ejecutar procesos en segundo plano y diferentes tipos de intérpretes de comandos o shells.
El documento proporciona una introducción a los comandos de Linux, incluyendo comandos básicos para manipular archivos y directorios, ejecutar comandos en segundo plano, e información sobre los intérpretes de comandos (shell) y variables de entorno. Se explican comandos como cat, cd, ls, mkdir y más, así como cómo ejecutar tareas en segundo plano con "&" y cambiar entre foreground y background. También cubre los tipos principales de shell (Bourne, C, Korn) e identifica variables comunes como HOME, PATH y SHE
Este documento proporciona una introducción a los comandos y conceptos básicos de Linux, incluyendo una lista de comandos comunes, cómo ejecutar tareas en segundo plano, los diferentes intérpretes de comandos o shells, y cómo redireccionar la entrada y salida de los comandos. También explica conceptos como variables de entorno, alias y programación básica de shell para automatizar tareas.
Este documento proporciona una introducción a los comandos básicos de Linux. Explica que Linux usa un shell o intérprete de comandos para interactuar con el sistema a través de líneas de comandos en lugar de interfaces gráficas. Describe varios comandos básicos como ls, cd, pwd y sus opciones para listar, cambiar de directorio y ver la ruta actual. También cubre la estructura básica de directorios en Linux, incluyendo directorios como /home, /bin, /usr y otros.
Este documento proporciona una introducción a los comandos básicos de Linux, incluyendo comandos para manipular archivos y directorios, ejecutar comandos en segundo plano, e información sobre los intérpretes de comandos (shell) y sus variables de entorno. Explica los comandos más comunes de Linux y sus equivalentes en DOS, y cómo ejecutar tareas en segundo plano mediante el uso del símbolo &. También describe los diferentes tipos de shell como Bourne, C shell y Korn shell, así como la sintaxis básica de
Este documento proporciona una introducción a varios comandos básicos de Linux, incluidos comandos para navegar entre directorios, ver archivos y carpetas, copiar y mover archivos, eliminar archivos, ver el contenido de archivos, e imprimir archivos. También cubre comandos para ver información sobre usuarios, fecha y hora, y gestionar correo electrónico de forma básica. El documento explica la sintaxis y parámetros de cada comando.
Este documento proporciona una introducción a los comandos básicos de Linux, incluyendo comandos para la navegación de directorios, visualización de archivos y carpetas, copia y movimiento de archivos, eliminación de archivos y directorios, y más. Explica los comandos cd para cambiar de directorio, ls para listar archivos, cp para copiar archivos, rm para eliminar archivos, y otros comandos comunes de Linux en detalle con sus sintaxis y parámetros. El documento también cubre comandos para la comunicación, cor
Este documento presenta una introducción a los scripts de shell en Linux. Explica que la shell interpreta las órdenes del usuario para ejecutar programas, y que Bash se ha convertido en el estándar. También describe comandos básicos como ls, cd y grep, y conceptos como redirección, tuberías y comentarios, los cuales son fundamentales para crear scripts de shell simples.
Este documento proporciona una introducción al sistema operativo GNU/Linux, incluyendo una descripción de su árbol de directorios, rutas absolutas y relativas, shells como Bash, y comandos básicos como ls, cd, mkdir y más. También incluye ejercicios prácticos para familiarizarse con estos conceptos.
Este documento proporciona un manual de comandos de Linux para principiantes. Incluye instrucciones para montar y desmontar unidades, navegar entre directorios, copiar y borrar archivos, ejecutar programas y comandos de shell básicos. También cubre la compilación de código fuente con GCC e incluye un anexo sobre la creación y configuración de variables de entorno para la compilación.
Este documento proporciona una guía de los 40 comandos básicos de Linux más utilizados. Explica brevemente cada comando, incluyendo cd para navegar entre directorios, ls para ver el contenido de un directorio, y cp para copiar archivos. También cubre comandos para buscar, mover y eliminar archivos, y gestionar el espacio en disco. El objetivo es ayudar a los usuarios de Linux a utilizar de manera efectiva su distribución.
Este documento proporciona una introducción a los comandos básicos de Linux, incluyendo comandos para obtener ayuda (man), mostrar información de usuarios (who, finger), mostrar la fecha y calendario (date, cal), limpiar la pantalla (clear), ejecutar scripts (sh), medir el tiempo de ejecución de comandos (time), visualizar el espacio en disco (df), comunicarse con otros usuarios (write, talk, wall), gestionar correo electrónico (mail), moverse entre directorios (cd), ver el contenido de directorios (ls),
Este documento proporciona información sobre varios comandos y herramientas de línea de comandos en sistemas operativos GNU/Linux. Explica el shell bash, cómo acceder a la consola, comandos como help, man, ls, cd, mkdir y más para navegar el sistema de archivos, crear y manipular archivos y directorios. También cubre redirección de entrada/salida, empaquetado con tar y gzip, y permisos de archivos.
Este documento proporciona información sobre varios comandos y herramientas de línea de comandos en sistemas operativos GNU/Linux. Explica el shell bash, cómo acceder a la consola, comandos como help, man, ls, cd, touch, mkdir, cp, rm y mv para manipular archivos y directorios. También cubre permisos, redirección, tar para empaquetar archivos, y gzip para comprimirlos.
El documento proporciona una lista de comandos básicos de Linux organizados en diferentes categorías como comandos de ayuda, archivos y directorios, usuarios, procesos, discos, sistema, red, impresoras y combinaciones de teclas. Incluye una breve descripción de cada comando y su función."
Este documento describe los conceptos clave de los permisos de archivos en Linux, incluyendo: (1) cada archivo tiene un propietario de usuario, un grupo propietario y permisos; (2) hay tres tipos de permisos (lectura, escritura y ejecución) y tres clases de acceso (usuario, grupo y otros); y (3) los comandos chmod, chgrp y chown se pueden usar para modificar la propiedad y los permisos de los archivos. También proporciona ejemplos de cómo se aplican los permisos predetermin
Semana 9 standard io and pipes guia de ejercicios resueltavictdiazm
Este documento describe conceptos clave sobre entrada y salida estándar, error estándar y tuberías en sistemas Unix. Explica que la entrada estándar suele estar conectada al teclado, la salida estándar a la pantalla y el error estándar a la pantalla. También describe cómo redirigir estos flujos mediante operadores en la shell como >, >>, 2>, | y cómo examinar los archivos /proc/self/fd para ver a qué archivos están conectados los descriptores de archivo de un proceso. Incluye varias preguntas de opción
Semana 7 y 8 the linux filesystem guia de ejercicios resueltavictdiazm
El documento describe los conceptos clave de los archivos en Linux. Los archivos tienen atributos como propietario, grupo, permisos y tiempo que se almacenan en una estructura de datos llamada inodo. Los nombres de archivo se almacenan en estructuras de datos llamadas dentries. Los sistemas de archivos se montan en puntos de montaje y se pueden examinar con comandos como mount, umount y df.
Semana 4 y 5 la shell bash guia de ejercicios resueltavictdiazm
La shell bash es la shell predeterminada en Red Hat Enterprise Linux. Puede usarse de forma interactiva o para ejecutar scripts. Tras el arranque, bash ejecuta comandos en el archivo ~/.bashrc para personalizar la shell. Guarda el historial de comandos ejecutados que se pueden recuperar usando expansiones de historial.
Semana 2 y 3 file ownerships and permissions guia de ejercicios resueltavictdiazm
Este documento trata sobre propiedades de archivos y permisos. Explica que los archivos tienen un usuario propietario, grupo propietario y permisos de lectura, escritura y ejecución. Detalla los comandos chmod, chgrp y chown para modificar propiedades y permisos. Luego presenta varias preguntas sobre permisos de archivos específicos.
Semana 1 quick tours guia de ejercicios resueltavictdiazm
Este documento proporciona una introducción a Linux, incluyendo conceptos clave sobre inicio de sesión, consolas virtuales, el sistema de archivos y ejecución de comandos. Explica que los usuarios deben iniciar sesión para usar una máquina Linux, y pueden hacerlo a través de una interfaz gráfica o consola virtual. También describe los componentes clave de Linux como el kernel, programas, procesos y shell, y cómo se usan comandos como ls, cat y touch para navegar el sistema de archivos y actualizar archivos.
(1) Un proceso es una instancia de un programa en ejecución identificada por un ID de proceso. (2) Los procesos tienen diferentes estados como ejecutable, dormido voluntario o involuntario, detenido o zombi. (3) Los comandos ps y top pueden usarse para examinar y controlar los procesos actualmente en ejecución.
El documento proporciona una introducción a la shell bash en Linux. La shell bash es la shell predeterminada en Red Hat Enterprise Linux y puede usarse de forma interactiva o para escribir scripts. Mantiene un historial de comandos que permite recuperar y editar comandos anteriores. Los usuarios pueden personalizar su shell bash editando el archivo ~/.bashrc.
Este documento explica los conceptos básicos de propiedad de archivos y permisos en Linux. Cada archivo tiene un propietario de usuario, un grupo propietario y permisos que controlan el acceso. Los permisos incluyen lectura, escritura y ejecución para el propietario del archivo, el grupo propietario y otros. El comando chmod se usa para cambiar los permisos de un archivo. Por ejemplo, chmod o-r quita los permisos de lectura para otros, mientras que chmod o+r los restaura.
Este documento proporciona una introducción a Linux y conceptos clave relacionados con el inicio de sesión de usuarios, el kernel, programas y procesos, el sistema de archivos, y la ejecución de comandos. Explica que los usuarios deben iniciar sesión para usar una máquina Linux, y que pueden hacerlo a través de consolas virtuales o una interfaz gráfica. También describe que el kernel proporciona un entorno para la ejecución de procesos a partir de programas almacenados como archivos, y que las shells permit
El documento describe los diferentes métodos para iniciar sesión en Linux, incluyendo el uso de consolas virtuales, entornos gráficos como X Window y conexiones remotas a través de SSH. Explica que el kernel de Linux proporciona un entorno para la ejecución de procesos, los cuales son instancias en ejecución de programas almacenados en el sistema de archivos. También describe cómo ver los procesos activos usando el comando ps.
Este documento trata sobre los usuarios y grupos en Linux. Explica conceptos como usuarios, grupos, los archivos /etc/passwd y /etc/group que almacenan la información de usuarios y grupos respectivamente. También describe comandos como id, whoami, finger y su para examinar y cambiar la identidad de usuario.
Este documento presenta una introducción a las aplicaciones de redes en Linux. Cubre temas como impresión, correo electrónico, herramientas de diagnóstico de red, clientes FTP y SSH, así como conceptos clave sobre sockets TCP/IP, clientes/servidores, puertos y direcciones IP. También explica el sistema de impresión CUPS y cómo administrar trabajos de impresión, así como herramientas para ver y convertir documentos PostScript y PDF.
Este documento describe los conceptos básicos del sistema de archivos en Linux, incluyendo la estructura del árbol de directorios con la raíz "/", el directorio de trabajo actual, y los comandos para navegar (cd, pwd), administrar archivos (cp, mv, rm) y directorios (mkdir, rmdir). También explica directorios importantes como /home, /tmp, /etc, /bin y su propósito.
Este documento trata sobre la administración de procesos en Linux. Explica conceptos clave como que un proceso es una instancia de un programa en ejecución, los diferentes estados de un proceso, y herramientas como ps, top, nice y renice para monitorear y administrar procesos. También cubre temas como como se inician los procesos a través de bifurcación, los cinco estados posibles de un proceso, y cómo afectan el niceness y la prioridad la programación de procesos.
Semana 9 entradas salidas estandar y pipesvictdiazm
Este documento explica los conceptos de entrada y salida estándar, error estándar y tuberías en Linux. Describe cómo la entrada estándar (stdin) suele estar conectada al teclado y la salida estándar (stdout) a la pantalla. Explica cómo redirigir stdin, stdout y stderr a archivos y cómo conectar la salida de un programa a la entrada de otro usando tuberías.
Semana 8 herramientas de procesos de stringvictdiazm
Este documento describe varias herramientas de procesamiento de cadenas de texto en Linux, incluidas herramientas para contar palabras, buscar texto, ordenar datos, extraer y unir texto, rastrear diferencias, traducir texto y revisar ortografía. Explica el uso de comandos como wc, grep, sort, uniq, cut y paste para manipular cadenas de texto.
Este documento describe los sistemas de archivos en Linux. Explica que los archivos están compuestos de datos, metadatos e información de nombre almacenada en estructuras llamadas inodos y dentries respectivamente. También cubre temas como enlaces duros y blandos, directorios, nodos de dispositivo, formatos de sistemas de archivos, montaje de discos y permisos de acceso a dispositivos.
El documento explica los scripts de Bash, incluyendo su estructura, variables, comandos condicionales y otros elementos clave. Los scripts automatizan tareas mediante la ejecución secuencial de líneas de comandos y pueden incluir variables, entrada/salida, condicionales if/then/else y case/in/esac.
Linux es un sistema operativo multitarea porque permite ejecutar múltiples programas de forma simultánea en una sola CPU, ahorrando recursos. SSH permite acceder de forma remota y segura a otra máquina, mientras que ps-aux muestra detalles de procesos en ejecución y top muestra los procesos que más uso de CPU tienen. El directorio /home almacena los archivos de los usuarios y /etc contiene la configuración del sistema.
1. Tutorial de Linux
Extraído de http://es.tldp.org/Tutoriales/CURSOLINUX/curso_linux/curso_linux.html
Comandos básicos
Los comandos son esencialmente los mismos que cualquier sistema UNIX. En la tablas
que se presentan a continuación se tiene la lista de comandos mas frecuentes.
Comando/Sintaxis Descripción Ejemplos
cat fich1 [...fichN] Concatena y muestra un archivos cat /etc/passwd
archivos cat dict1 dict2 dict
cd [dir] Cambia de directorio cd /tmp
chmod permisos fich Cambia los permisos de un archivo chmod +x miscript
chown usuario:grupo
fich
Cambia el dueño un archivo chown nobody miscript
cp fich1...fichN dir Copia archivos cp foo foo.backup
diff [-e]arch1 arch2
Encuentra diferencia entre
archivos
diff foo.c newfoo.c
du [-sabr] fich Reporta el tamaño del directorio du -s /home/
file arch Muestra el tipo de un archivo file arc_desconocido
find dir test acción Encuentra archivos.
find . -name ``.bak'' –
print
grep [-cilnv] expr
archivos
Busca patrones en archivos grep mike /etc/passwd
head -count fich Muestra el inicio de un archivo head prog1.c
mkdir dir Crea un directorio. mkdir temp
mv fich1 ...fichN dir
Mueve un archivo(s) a un
directorio
mv a.out prog1
mv fich1 fich2 Renombra un archivo. mv .c prog_dir
less / more fich(s)
Visualiza página a página un
archivo.
more muy_largo.c
less acepta comandos vi. less muy_largo.c
ln [-s] fich acceso
Crea un acceso directo a un
archivo
ln -s /users/mike/.profile
.
2. ls Lista el contenido del directorio ls -l /usr/bin
pwd
Muestra la ruta del directorio
actual
Pwd
rm fich Borra un fichero. rm foo.c
rm -r dir Borra un todo un directorio rm -rf prog_dir
rmdir dir Borra un directorio vacío rmdir prog_dir
tail -count fich Muestra el final de un archivo tail prog1.c
vi fich Edita un archivo. vi .profile
Comandos Linux/Unix de manipulación de archivos y directorios
Comando/Sintaxis Descripción Ejemplos
at [-lr] hora [fecha] Ejecuta un comando mas tarde at 6pm Friday miscript
cal [[mes] año] Muestra un calendario del mes/año cal 1 2025
date [mmddhhmm]
[+form]
Muestra la hora y la fecha Date
echo string
Escribe mensaje en la salida
estándar
echo ``Hola mundo''
finger usuario
Muestra información general sobre
un usuario en la red
finger
nn@maquina.aca.com.co
id Número id de un usuario id usuario
kill [-señal] PID Matar un proceso kill 1234
man comando Ayuda del comando especificado
man gcc
man -k printer
passwd Cambia la contraseña. passwd
ps [axiu]
Muestra información sobre los
procesos que se están ejecutando en
el sistema
ps -ux
who / rwho
Muestra información de los usuarios
conectados al sistema.
who
Comandos Linux/Unix más frecuentes
3. Linux DOS Significado
cat type Ver contenido de un archivo.
cd, chdir cd, chdir Cambio el directorio en curso.
chmod attrib Cambia los atributos.
clear cls Borra la pantalla.
ls dir Ver contenido de directorio.
mkdir md, mkdir Creación de subdirectorio.
more more Muestra un archivo pantalla por pantalla.
mv move Mover un archivo o directorio.
rmdir rd, rmdir Eliminación de subdirectorio.
rm -r deltree Eliminación de subdirectorio y todo su contenido.
Equivalencia de comandos Linux/Unix y DOS
Comandos en background
Linux, como cualquier sistema Unix, puede ejecutar varias tareas al mismo tiempo. En
sistemas monoprocesador, se asigna un determinado tiempo a cada tarea de manera que,
al usuario, le parece que se ejecutan al mismo tiempo.
Para ejecutar un programa en background, basta con poner el signo ampersand (&) al
término de la línea de comandos. Por ejemplo, si se quisiera copiar el directorio
/usr/src/linux al directorio /tmp:
#cp -r /usr/src/linux /tmp &
#
Cuando ha terminado la ejecución del programa, el sistema lo reporta mediante un
mensaje:
#
[Done] cp -r /usr/src/linux /tmp
#
Si se hubiese ejecutado el programa y no se hubiese puesto el ampersand, se podría
pasarlo a background de la siguiente manera:
1. Se suspende la ejecución del programa, pulsando Ctrl+Z.
2. Se ejecutamos la siguiente orden: bg
4. Interprete de comandos: Shell
El interprete de comandos es el programa que recibe lo que se escribe en la terminal y lo
convierte en instrucciones para el sistema operativo.
En otras palabras el objetivo de cualquier intérprete de comandos es ejecutar los
programas que el usuario teclea en el prompt del mismo. El prompt es una indicación que
muestra el intérprete para anunciar que espera una orden del usuario. Cuando el usuario
escribe una orden, el intérprete ejecuta dicha orden. En dicha orden, puede haber
programas internos o externos: Los programas internos son aquellos que vienen
incorporados en el propio intérprete, mientras que los externos son programas separados
(ej: aplicaciones de /bin,/usr/bin,...).
En el mundo Linux/Unix existen tres grandes familias de Shells como se muestra en la
siguiente tabla . Estas se diferencian entre sí básicamente en la sintaxis de sus comandos
y en la interacción con el usuario.
Tipo de Shell Shell estándar Clones libres
AT&T Bourne shell sh ash, bash, bash2
Berkeley "C" shell csh tcsh
AT&T Korn shell ksh pdksh, zsh
Otros interpretes -- esh, gush, nwsh
Interpretes de comandos en Linux/Unix
Sintaxis de los comandos
Los comandos tienen la siguiente sintaxis:
# programa arg1 arg2 ... argn
Se observa que, en la “línea de comandos”, se introduce el programa seguido de uno o
varios argumentos. Así, el intérprete ejecutará el programa con las opciones que se hayan
escrito.
Cuando se quiere que el comando sea de varias líneas, se separa cada línea con el carácter
barra invertida (). Además, cuando se quiere ejecutar varios comandos en la misma
línea, los separa con punto y coma (;). Por ejemplo:
# make modules ; make modules_install
En los comandos, también se puede utilizar los comodines:
5. El asterisco (*) es equivalente a uno o más caracteres en el nombre de un archivo.
Ejm: ls *.c lista todos los archivos con extensión c.
El signo de interrogación (?) es equivalente a un único carácter. Ejm: ls
curso.te? lista el archivo curso.tex completando el último carácter.
Un conjunto de caracteres entre corchetes es equivalente a cualquier carácter del
conjunto. Ejm: ls curso_linux.t[aeiou]x lista curso_linux.tex seleccionando
la e del conjunto. .
Variables de entorno
Una variable de entorno es un nombre asociado a una cadena de caracteres.
Dependiendo de la variable, su utilidad puede ser distinta. Algunas son útiles para no
tener que escribir muchas opciones al ejecutar un programa, otras las utiliza el propio
shell (PATH, PS1,...). La siguiente tabla muestra la lista de variables más usuales.
Variable Descripción
DISPLAY Donde aparecen la salidas de X-Windows.
HOME Directorio personal.
HOSTNAME Nombre de la máquina.
MAIL Archivo de correo.
PATH Lista de directorios donde buscar los programas.
PS1 Prompt.
SHELL Intérprete de comandos por defecto.
TERM Tipo de terminal.
USER Nombre del usuario.
Variables de entorno más usuales
La forma de definir una variable de entorno cambia con el interprete de comandos, se
muestra tcsh y bash siendo los dos mas populares en el ámbito Linux:
bash:
export VARIABLE=Valor
tcsh:
setenv VARIABLE Valor
Por ejemplo, para definir el valor de la variable DISPLAY:
bash:
export DISPLAY=localhost:0.0
6. tcsh:
setenv DISPLAY localhost:0.0
Alias
Un “alias” es un nombre alternativo para un comando. Así, en lugar de escribir el
comando propiamente dicho, escribiríamos el alias de dicho comando.
Un alias se puede definir por varios motivos, por ejemplo:
Dar nombres familiares a comandos comunes:
alias md='mkdir'
Crearía un alias para el comando mkdir, similar al de DOS.
Dar nombres a comandos largos:
alias tbz2='tar -cv --use-compress-program=bzip2 -f'
Crearía un alias para el comando tar para que use el compresor bzip2 en lugar de
gzip.
Redireccionamiento de E/S
La filosofía de Linux/Unix es en extremo modular. Se prefieren las herramientas
pequeñas con tareas puntuales a las meta-herramientas que realizan todo. Para hacer el
modelo completo es necesario proveer el medio para ensamblar estas herramientas en
estructuras mas complejas. Esto se realiza por medio del redireccionamiento de las
entradas y las salidas.
Todos los programas tiene por por defecto una entrada estándar (teclado) y dos salidas: la
salida estándar (pantalla) y la salida de error (pantalla). En ellos se puede sustituir la
entrada y salidas estándar por otro dispositivo utilizando los caracteres > y <, es decir,
hacer que se lea un archivo que contenga las opciones a ejecutar y un archivo de salida,
respectivamente. Por ejemplo:
Entrada:
Se desea realizar una transferencia de archivos por ftp automática. Para ello se va
a utilizar el programa ncftp con unas determinadas instrucciones preestablecidas.
Se crea un archivo entrada con dichas instrucciones:
open linuxcol.uniandes.edu.co
cd /pub/linux/utils
get *
quit
y se ejecuta el programa: ncftp < entrada .
7. Salida:
Se quiere saber los archivos que empiezan por i o I y almacenarlo en un archivo:
ls [iI]* > listado.txt
Es importante resaltar que el carácter de redirección de salida > destruirá el archivo al
cual apunta, si este existe, para ser reemplazado por uno nuevo con los resultados del
proceso. Si se desea anexar la información a uno ya existente debe usarse doble carácter
>>
Tuberías o pipes
En la línea de comandos la integración entre diferentes programas se realiza por medio de
la re-dirección de las entradas y salidas a través de pipes o tuberías.
Una tubería o pipe es una combinación de varios comandos que se ejecutan
simultáneamente, donde el resultado del primero se envía a la entrada del siguiente. Esta
tarea se realiza por medio del carácter barra vertical | . Por ejemplo si se quiere ver todos
los archivos que hay en el directorio /usr/bin, se ejecuta lo siguiente: ls /usr/bin |
more. De este modo, la salida del programa ls (listado de todos los archivos del directorio
/usr/bin) irá al programa more(modo paginado, es decir, muestra una pantalla y espera a
que pulsemos una tecla para mostrar la siguiente).
Dentro de esta estructura se han construido una serie de programas conocidos como
“filtros” los cuales realizan procesos básicos sobre textos
Filtros Función
sort Ordena las lineas de un texto
cut Corta secciones de una linea
od Convierte archivos a forma octal u otras
paste Une líneas de diferentes archivos
tac Concatena e imprime archivos invertidos
tr Traduce o borra caracteres
uniq Remueve líneas repetidas
wc Cuenta bytes, palabras y líneas
Algunos Filtros en línea de comandos Linux/Unix
Algunos filtros han llegado a ser tan complejos que son en si, un lenguaje de
procesamiento de texto, de búsqueda de patrones, de construcción de scripts, y muchas
otras posibilidades. Estas herramientas pasan a ser parte de la siguiente sección. Entre
8. ellos podemos mencionar herramientas tradicionales en Linux/Unix como awk y sed y
otras mas modernas como Perl.
Programación shell
La programación del shell es una de las herramientas mas apreciadas por todos los
administradores y muchos usuarios de Linux/Unix ya que permite automatizar tareas
complejas, comandos repetitivos y ejecutarlas con un solo llamado al script o hacerlo
automáticamente a horas escogidas sin intervención de personas.
La programación shell en Unix/Linux es, en cierto sentido, equivalente a crear archivos
.BAT en DOS. La diferencia es que en Unix/Linux es mucho mas potente. Estos scripts
pueden usar un sinnúmero de herramientas como:
Comandos del sistema Linux/Unix (ejm: ls, cut)
Funciones intrínsecas del shell (ejm: kill, nice)
Lenguaje de programación del shell (ejm: if/then/else/fi)
Programas y/o lenguajes de procesamiento en línea. (ejm: awk, sed, Perl)
Programas propios del usuario escritos en cualquier lenguaje.
El lenguaje de programación de cada shell provee de una amplia gama de estructuras de
control como se muestra a continuación
for name [ in word; ] do list ; done
select name [ in word ; ] do list ; done
case word in [ pattern [ | pattern ]ldots ) list ;; ]ldots esac
if list then list [ elif list then list ]ldots [ else list ] fi
$while list do list done
$until list do list done
[ function ] name () { list; }
Instrucciones bash para programación shell
Un sencillo ejemplo es realizar un backup de solo ciertos directorios (prog_dir1 y
prog_dir2), luego comprimirlos usando bzip2 y enviarlos a un area de almacenamiento
(digamos una unidad ZIP previamente montada en /mnt/zipdrive), y además con que el
nombre del archivo contenga la fecha del día. Suena difícil? Realmente no lo es.
Se crea un archivo texto con cualquier nombre, por ejemplo mibackup que contenga las
instrucciones que se desea ejecutar.
#!/bin/sh
#
echo "---------- Captura fecha -----------"
fecha=`date +%Y%m%d`
#
echo "---------- Haciendo Tar -----------"
tar cvf backup$fecha.tar prog_dir1 prog_dir2
9. #
echo "----------- Comprimiendo -----------"
bzip2 backup$fecha.tar
#
echo "---------- Enviándolos a zip -------"
cp ./backup$fecha.tar /mnt/zipdrive
#
echo "----------- Limpiando --------------"
rm -f ./backup$fecha.tar
#
echo "----------- Final -------------"
Luego, se le asigna permisos de ejecución con el comando
chmod +x mibackup
y esta listo para ser ejecutado.
En el script aquí mostrado es importante resaltar varios principios importantes: la primera
línea determina el shell que se esta usando (sh o bash); las variables no se declaran solo
se asignan; su valor es retornado usando el símbolo $.
Re-utilización de comandos
El shell almacena una historia de los comandos que el usuario ha escrito. Por medio de
esta historia es posible volver a ejecutar una orden que ya se ha escrito anteriormente sin
tener que escribirla de nuevo.
El comando history muestra la secuencia de comandos, con un número a su izquierda.
Con este número es posible llamar de nuevo el comando utilizando el carácter admiración
``!''; Por ejemplo history retorna
1 history
2 ls
3 cd public_html
4 ls
5 rm *.bak
6 history
y para ejecutar nuevamente el comando rm *.bak solo es necesario escribir !5. También
se puede pedir el último ``rm'' que se ha ejecutado escribiendo !rm.
El último comando se repite con doble admiración ``!!''. Es posible también editar el
último comando utilizando el carácter ``^'' pero este conocimiento se esta volviendo poco
útil, ya que los nuevos shells permiten viajar por la ``historia'' y editar los comandos
usando únicamente las flechas del teclado.
10. Archivos de bash
Cada shell posee ciertos archivos donde mantiene su configuración. Estos tiene una
jerarquía que va desde el archivo general de configuración del sistema para todos los
shells, pasando por el archivo propio del shell, hasta los archivos personales del usuario.
A continuación, se muestran los archivos utilizados para especificar opciones dentro de
bash. Es importante aclarar que no es necesario que todos estos archivos existan dentro
del directorio personal, el sistema posee su configuración por defecto.
Archivo Descripción
/bin/bash Ejecutable bash.
/etc/profile Archivo de inicialización utilizado por los shells.
/.bash_profile Archivo(s) de inicialización personal
/.profile utilizado por los shells
/.bash_login Ejecuta cuando entra al shell
/.bash_logout Ejecuta cuando sale del shell
/.bashrc Archivo personal de inicialización del shell.
/.inputrc Archivo de inicialización individual.
Archivos de bash
11. Organización de los directorios
Linux organiza la información en archivos, los cuales están contenidos en directorios. Un
directorio puede contener subdirectorios, teniendo así una estructura jerárquica, como en
cualquier otro sistema operativo.
Las nuevas versiones de Linux (incluido Red Hat) siguen el estándar FSSTND (Linux
Filesystem Standard) el cual estipula los nombres, la ubicación y la función de la mayoría
de los directorios y los archivos del sistema.
Conociendo esta estructura básica, el usuario/administrador podrá moverse más
fácilmente por los directorios, ya que la mayoría de éstos, tienen un determinado uso.
Directorio Descripción
/ Raíz (root), forma la base del sistema de archivos.
/boot Archivos del kernel (compilados).
/bin Archivos ejecutables esenciales para todos los usuarios.
/dev Archivos de dispositivos.
/etc Archivos de configuración.
/etc/rc.d Archivos de inicialización (Red Hat).
/home Generalmente, directorios de los usuarios.
/home/ftp Contenido del servidor FTP.
/home/httpd Contenido del servidor WWW.
/lib Librerías esenciales y módulos del kernel.
/mnt Directorios donde ``montar'' diversos dispositivos temporalmente.
/mnt/cdrom Directorio donde se ``monta'' el CD-ROM.
/mnt/floppy Directorio donde se ``monta'' el disquete.
/proc Información sobre partes del sistema.
/root Directorio del usuario principal del sistema.
/sbin Archivos ejecutables para tareas de administración.
/tmp Temporal.
/usr Programas, documentación, fuentes,...compartidos por todo el sistema
/var Archivos variables del sistema, bitácoras, temporales,...
Directorios de Linux más frecuentes
12. La siguiente tabla muestra los principales subdirectorios del directorio usr.
Directorio Descripción
/usr/X11R6 Paquete XFree86 (X-Windows) Release 6.
/usr/bin Archivos ejecutables para usuarios.
/usr/dict Listados de palabras (diccionarios).
/usr/doc Documentación.
/usr/doc/FAQ F.A.Q. (o P.U.F.).
/usr/doc/HOWTO HOWTO's.
/usr/etc Archivos de configuración del sistema.
/usr/games Juegos.
/usr/include Archivos de encabezado.
/usr/info Sistema de información GNU info.
/usr/lib Librerías
/usr/local Jerarquía de archivos locales.
/usr/man Manuales.
/usr/sbin Archivos ejecutables de administración no vitales.
/usr/share Datos independientes de la arquitectura.
/usr/src Código fuente.
/usr/src/linux Código fuente del kernel de Linux.
Subdirectorios de usr
13. La siguiente tabla muestra los principales subdirectorios del directorio var.
Directorio Descripción
/var/catman Manuales formateados localmente.
/var/lib Información del estado de aplicaciones.
/var/local Variables del aplicaciones en /usr/local.
/var/lock Archivos de cerrojo.
/var/log Bitácoras del sistema.
/var/named Archivos del DNS.
/var/nis Base de datos para NIS (Network Inf. Service).
/var/preserve Archivos de respaldo después de una caída para vi o ex.
/var/run Archivos relevantes a programas corriendo.
/var/spool Colas de trabajos para realizar mas tarde.
/var/spool/at Archivos creados por comando at.
/var/spool/cron Archivos creados por comando crontab.
/var/spool/lpd Archivos de impresora.
/var/spool/mail Archivos de correo de cada usuario.
/var/spool/mqueue Archivos de correo de salida.
/var/spool/news Archivos de noticias de salida.
/var/spool/smail Archivos de correo de smail.
/var/tmp Temporal.
Subdirectorios de var
Permisos
Linux, como cualquier sistema Unix, es multiusuario, por lo que, los permisos de los
archivos están orientados a dicho sistema. Los permisos de cualquier archivo tienen tres
partes: permisos del propietario, permisos del grupo y permisos del resto. Así, se ve que
un archivo pertenece a un determinado propietario y a un determinado grupo y,
dependiendo de los permisos que tenga asociado dicho archivo, se podrá tener acceso a él
o no
Los permisos son de lectura (r), escritura (w) y ejecución (x). Estos se definen mediante
letras (parecido al comando attrib de DOS). Con el signo + añadimos un permiso y con el
signo - se lo quitamos. Además, los permisos pueden ser generales o no, es decir, si se
14. pone sería permiso de ejecución a todos, sin embargo, si se pone sólo el propietario
podría ejecutarlo. De este modo, se tiene: para propietario, para grupo y para el resto.
Ejemplo: Se tiene una serie de archivos después de listar con ls -l el cual muestra el
propietario (skina), el grupo (users) y los permisos de izquierda a derecha: propietario,
grupo y el resto.
[]$ ls -l
-rw-r--r-- 1 skina users 17680 Nov 29 16:52 GNU-GPL.tex
-rw-r--r-- 1 skina users 2573 Nov 30 19:52 Makefile
-rw-r--r-- 1 skina users 1562 Nov 29 13:47 autorizacion.txt
-rw-r--r-- 1 skina users 461 Oct 24 21:43 biblio.tex
drwxr-xr-x 2 skina users 1024 Nov 23 01:02 bin/
-rw-r--r-- 1 skina users 949 Nov 30 19:26 creditos.tex
-rw-r--r-- 1 skina users 550 Nov 30 19:48 curso_linux.tex
drwxr-xr-x 2 skina users 3072 Nov 30 22:55 images/
drwxr-xr-x 3 skina users 1024 Nov 30 00:09 install/
-rw-r--r-- 1 skina users 61566 Oct 26 22:29 lista_paquetes_mdk.tex
-rw-r--r-- 1 skina users 53227 Nov 23 01:08 lista_paquetes_rh.tex
-rw-r--r-- 1 skina users 3864 Nov 30 19:56 parte1.tex
parte3_sistemas_archivos.tex
[]$
Estos permisos llevan ``asociado'' un número: el cuatro para lectura, el dos para la
escritura y el uno para la ejecución. De esta manera, un archivo tiene tres números
asignados: propietario, grupo y resto. Por ejemplo, si tenemos un fichero con los
permisos 644 correspondería a: el propietario puede leer/escribir, el grupo sólo puede leer
y el resto sólo puede leer. Vemos que, para asignar lectura y escritura, basta con sumar
lectura(4)+escritura(2).
El comando para modificar los permisos es chmod y tiene la siguiente sintaxis: chmod
permisos archivo(s). Por ejemplo se desea que todos las personas puedan ver escribir
sobre el archivo creditos.tex, entonces
# chmod a+w creditos.tex
o su equivalente en números
# chmod 666 creditos.tex
15. Montar un sistema de archivos
Ya se ha visto que Linux accede a los dispositivos mediante archivos (directorios de
/dev), y, por este motivo, en Linux no hay el concepto de unidades, ya que todo está bajo
el directorio principal . En Linux no se accede a la primera disquetera mediante la orden
A: como en DOS sino que hay que “montarla”.
De este modo, tenemos dos conceptos nuevos:
“montar”
Decirle a Linux que se va a utilizar un determinado dispositivo con un
determinado sistema de archivos y estará en un directorio específicado
Tipo Descripción
ext2 Sistema de archivos de Linux.
msdos Sistema de archivos de DOS.
vfat Sistema de archivos de Windows 9X (nombres largos).
iso9660 Sistema de archivos de CD-ROM.
nfs Sistema de archivos compartido por red (``exportado'').
Sistemas de archivos más comunes
“desmontar”
Decirle a Linux que se ha dejado de utilizar un determinado dispositivo.
Para “montar” un determinado sistema de archivos de un dispositivo, se utiliza el
comando mount. La sintaxis es la siguiente:
# mount -t sistema_archivos dispositivo directorio [-o opciones]
donde: sistema_archivos puede ser cualquiera de los que aparece en la tabla anterior;
dispositivo puede ser cualquier dispositivo del directorio /dev o, en el caso de nfs, un
directorio de otro ordenador; directorio es el directorio donde estará el contenido del
dispositivo y opciones pueden ser cualquiera de la tabla de opciones, en el caso de no
poner ninguna opción, mount utilizará las opciones por defecto. Una vez “montado” el
dispositivo, si no se va a volver utilizar se puede “desmontarlo” con el comando umount
con la siguiente sintaxis:
# umount directorio
Siempre, después de utilizar un dispositivo hay que “desmontarlo”, para que se
almacenen correctamente los datos en dicho dispositivo. Un ejemplo de ello, es el hecho
16. de que, un lector de CD-ROM, que haya sido “montado”, no se abrirá hasta que no se
“desmonte”.
Opción Descripción
rw Lectura/escritura.
ro Sólo lectura.
exec Se permite ejecución.
user Los usuarios pueden ``montar''/``desmontar''.
suid Tiene efecto los identificadores de propietario y del grupo.
auto Se puede montar automáticamente.
async Modo asíncrono.
sync Modo síncrono.
dev Supone que es un dispositivo de caracteres o bloques.
Opciones del comando mount
Se muestran unos cuantos ejemplos:
1. Disquete de DOS:
mount -t msdos /dev/fd0 /mnt/floppy -o rw,noexec
umount /mnt/floppy
2. Disquete de Windows 9X:
mount -t vfat /dev/fd0 /mnt/floppy -o user,rw
umount /mnt/floppy
3. CD-ROM:
mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro
umount /mnt/cdrom
4. Directorio exportado de host2:
mount -t nfs host2:/tmp /mnt/host2
umount /mnt/host2
Archivo /etc/fstab
En ocasiones, cuando se tienen varios dispositivos que se suelen “montar”, se puede
ahorrar tener que escribir continuamente la oportuna orden mount, simplemente
incluyendo una línea en el archivo /etc/fstab.
El archivo /etc/fstab contiene líneas donde se indica qué dispositivo debe “montar”, el
lugar donde “montarlo”, así como el sistema de archivos y las opciones (en este archivo,
se pueden poner dos opciones más: auto y noauto, que indican si se debe “montar”
automáticamente al arrancar el sistema o no, respectivamente).
17. Un ejemplo de /etc/fstab puede ser:
# Dispositivo Directorio FS Opciones
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults 1 2
/dev/hda3 /tmp ext2 defaults,noexec
/dev/hda4 none swap defaults
none /proc proc defaults
/dev/fd0 /mnt/floppy ext2 noauto,user,noexec,rw
/dev/fd0 /mnt/msdos vfat noauto,user,noexec,rw
/dev/cdrom /mnt/cdrom iso9660 noauto,user,noexec,ro
/dev/sda4 /mnt/iomegazip vfat noauto,user,noexec,rw
host2:/tmp /mnt/host2 nfs defaults
Con un archivo /etc/fstab como el anterior, cualquier usuario podría hacer:
$ mount /mnt/msdos+
$ umount /mnt/msdos+
para “montar” y “desmontar” un disquete, respectivamente. Sin embargo, sólo el
administrador podría “montar” y “desmontar” el directorio /mnt/host2.
Uso de mtools
El hecho de tener que “montar” y “desmontar” puede ser un poco engorroso a la hora de
utilizar determinados dispositivos (comúnmente, la disquetera). Por ello, se dispone de
las herramientas mtools. Dichas herramientas, utilizan los dispositivos sin tener que
“montar” y “desmontar”; y su sintaxis es parecida a la de los programas de DOS.
Comando Descripción
mdir Muestra el contenido del dispositivo dir.
mcopy Copia archivos copy.
mdel Borra archivos del.
mformat Formatea la unidad format.
mcd Cambia de directorio cd.
mmd Crea un directorio md.
mrd Borra un directorio rd.
Herramientas mtools