Download Introducción a Unix - Cinvestav

Document related concepts
no text concepts found
Transcript
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