Herramientas de Programación: Introducción a Unix Dr. Gregorio Toscano Pulido Laboratorio de Tecnologı́as de Información Centro de Investigación y de Estudios Avanzados del IPN Cinvestav-Tamaulipas Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 1 / 24 Introducción a Unix Outline 1 Introducción a Unix Historia 2 Comandos necesarios Comandos necesarios 3 Comandos interesantes Comandos interesantes 4 Manejo de Paquetes dpkg, apt y wajig 5 Lenguajes de programación Introducción 6 Herramientas de programación ¿Cuáles son? Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 2 / 24 Introducción a Unix Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Historia Intro a Unix Cinvestav-LTI 3 / 24 Introducción a Unix Historia ¿Qué es un sistema operativo? suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades Años 1950s Batch: El primer sistema operativo (50s). Monitores residentes: eliminó la necesidad del operador. Almacenamiento temporal Años 1960s Multiprogramación Tiempo compartido: aparece Multics (GE, MIT y BELL) programado en el lenguajde de alto nivel PL/1. Tiempo real Multiprocesador Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 4 / 24 Introducción a Unix Historia ¿Qué es un sistema operativo? suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades Años 1950s Batch: El primer sistema operativo (50s). Monitores residentes: eliminó la necesidad del operador. Almacenamiento temporal Años 1960s Multiprogramación Tiempo compartido: aparece Multics (GE, MIT y BELL) programado en el lenguajde de alto nivel PL/1. Tiempo real Multiprocesador Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 4 / 24 Introducción a Unix Historia ¿Qué es un sistema operativo? suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades Años 1950s Batch: El primer sistema operativo (50s). Monitores residentes: eliminó la necesidad del operador. Almacenamiento temporal Años 1960s Multiprogramación Tiempo compartido: aparece Multics (GE, MIT y BELL) programado en el lenguajde de alto nivel PL/1. Tiempo real Multiprocesador Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 4 / 24 Introducción a Unix Historia ¿Qué es un sistema operativo? suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades Años 1950s Batch: El primer sistema operativo (50s). Monitores residentes: eliminó la necesidad del operador. Almacenamiento temporal Años 1960s Multiprogramación Tiempo compartido: aparece Multics (GE, MIT y BELL) programado en el lenguajde de alto nivel PL/1. Tiempo real Multiprocesador Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 4 / 24 Introducción a Unix Historia Años 1970s Multics, MVS, CP/M (CCP y BDOS). BELL se separa de GE y MIT y crea Unix (Ken Tompson y Dennis Ritchie. Brian Kernighan lo bautiza); posteriormente Ritchie desarrolla el C y se reescribe unix en este lenguaje (1973). Posteriormente, portan unix a una computadora diferente a la PDP (1977). Años 1980s Apple Macintosh MS-DOS Años 1990s Windows Linux Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 5 / 24 Introducción a Unix Historia Años 1970s Multics, MVS, CP/M (CCP y BDOS). BELL se separa de GE y MIT y crea Unix (Ken Tompson y Dennis Ritchie. Brian Kernighan lo bautiza); posteriormente Ritchie desarrolla el C y se reescribe unix en este lenguaje (1973). Posteriormente, portan unix a una computadora diferente a la PDP (1977). Años 1980s Apple Macintosh MS-DOS Años 1990s Windows Linux Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 5 / 24 Introducción a Unix Historia Años 1970s Multics, MVS, CP/M (CCP y BDOS). BELL se separa de GE y MIT y crea Unix (Ken Tompson y Dennis Ritchie. Brian Kernighan lo bautiza); posteriormente Ritchie desarrolla el C y se reescribe unix en este lenguaje (1973). Posteriormente, portan unix a una computadora diferente a la PDP (1977). Años 1980s Apple Macintosh MS-DOS Años 1990s Windows Linux Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 5 / 24 Introducción a Unix Historia Las dos corrientes principales de Unix: System V de Unix System Laboratories y BSD (Berkeley Software Distribution). Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 6 / 24 Introducción a Unix Historia Los Unixes actuales GNU/Linux Slackware Debian Redhat Stampede Damn Small Linux Ubuntu BSDs NetBSD OpenBSD FreeBSD Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 7 / 24 Introducción a Unix 1970 Historia 1980 1990 2000 FreeBSD 6.2 NetBSD BSD family Time 3.1 OpenBSD 4.1 BSD (Berkeley Software Distribution) Bill Joy Solaris (SUN) 10 Darwin NextStep 3.3 Xenix OS Microsoft/SCO GNU Project Richard Stallman Minix Linus Torvalds 3.1.2a Andrew S. Tanenbaum 10 Unix Time-Sharing System (Bell Labs) Ken Thompson Dennis Ritchie (C language) 11i v2 HP-UX 5 L 5.3 AIX (IBM) UnixWare (Univel/SCO) IRIX (SGI) 7.1.4 MP2 6.5.30 System III & V family Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 8 / 24 Comandos necesarios Outline 1 Introducción a Unix Historia 2 Comandos necesarios Comandos necesarios 3 Comandos interesantes Comandos interesantes 4 Manejo de Paquetes dpkg, apt y wajig 5 Lenguajes de programación Introducción 6 Herramientas de programación ¿Cuáles son? Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 9 / 24 Comandos necesarios Comandos necesarios Algunos comandos.. cd mkdir bin chmod u=rwx bin chmod go=rx bin cd bin cp ../fuentes/* . chmod u=rwx * chmod go=rx * Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 10 / 24 Comandos necesarios Comandos necesarios Manejo del sistema de archivos man ls cd cat cp mkdir rm ln head tail more less find grep Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 11 / 24 Comandos necesarios Comandos necesarios Permisos del sistema de archivos chmod chgrp chown correo navegar salir de la sesión Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 12 / 24 Comandos interesantes Outline 1 Introducción a Unix Historia 2 Comandos necesarios Comandos necesarios 3 Comandos interesantes Comandos interesantes 4 Manejo de Paquetes dpkg, apt y wajig 5 Lenguajes de programación Introducción 6 Herramientas de programación ¿Cuáles son? Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 13 / 24 Comandos interesantes Comandos interesantes Redireccionamientos cat /etc/passwd | more cat /etc/passwd > passwords.txt Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 14 / 24 Comandos interesantes Comandos interesantes Otros comandos tr sort uniq Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 15 / 24 Comandos interesantes Comandos interesantes rm -f /tmp/borrame cat $* > /tmp/borrame cat /tmp/borrame | tr -c ’a-zA-Z\341\351\355\363\372\361’ \ ’ ’ | tr ’ \t’ ’\n’ | sort | uniq > diccionario rm -f /tmp/borrame Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 16 / 24 Comandos interesantes Comandos interesantes cat $1 | tr -c ’a-zA-Z\341\351\355\363\372\361’ ’ ’ | \ tr ’ \t’ ’\n’ | sort | uniq | comm -23 - diccionario | more Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 17 / 24 Manejo de Paquetes Outline 1 Introducción a Unix Historia 2 Comandos necesarios Comandos necesarios 3 Comandos interesantes Comandos interesantes 4 Manejo de Paquetes dpkg, apt y wajig 5 Lenguajes de programación Introducción 6 Herramientas de programación ¿Cuáles son? Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 18 / 24 Manejo de Paquetes dpkg, apt y wajig dpkg y apt Es el software de base para manejar de paquetes de debian. dpkg es de bajo nivel y puede ser usado para instalar, remover, y proveer información sobre los paquetes .deb. Existen otras herramientas de más alto nivel como apt. El archivo de configuración de APT puede ser localizado en: /etc/apt/sources.list. Use las páginas man para aprender más sobre dpkg, apt-get y apt-cache. Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 19 / 24 Manejo de Paquetes dpkg, apt y wajig wajig Wajig es otra interface de alto nivel para manejar los paquetes deb. wajig es una herramienta escrita en python que es un front-end de dpkg, apt-get y apt-cache. Instale (usando wajig) y aprenda a usar los siguientes paquetes: screen, zshell y mrxvt pcmanfm, mc y ncftp subversion emacs make gdb texlive-latex-recommended, auctex y latex-beamer gnuplot y inkscape las fuentes del kernel Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 20 / 24 Lenguajes de programación Outline 1 Introducción a Unix Historia 2 Comandos necesarios Comandos necesarios 3 Comandos interesantes Comandos interesantes 4 Manejo de Paquetes dpkg, apt y wajig 5 Lenguajes de programación Introducción 6 Herramientas de programación ¿Cuáles son? Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 21 / 24 Lenguajes de programación Introducción ¿Cuántos lenguajes de programación existen? Instale los lenguajes python, gcc y g++. Realice el programa del factorial completo en C. Usando su editor favorito. Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 22 / 24 Herramientas de programación Outline 1 Introducción a Unix Historia 2 Comandos necesarios Comandos necesarios 3 Comandos interesantes Comandos interesantes 4 Manejo de Paquetes dpkg, apt y wajig 5 Lenguajes de programación Introducción 6 Herramientas de programación ¿Cuáles son? Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 23 / 24 Herramientas de programación ¿Cuáles son? ¿ Cuáles herramientas veremos? editor de textos creación de makefiles depurador de código controlador de versiones procesador de textos graficadores programación en shell documentador Dr. Gregorio Toscano Pulido (Cinvestav-Tamaulipas) Intro a Unix Cinvestav-LTI 24 / 24