Programación estructurada Ambiente de trabajo en UNIX SunOS Oscar Alvarado Nava oan@correo.azc.uam.mx Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana, Unidad Azcapotzalco 15-Otoño, septiembre de 2015 Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 1/55
Contenido 1 Ambiente de trabajo en UNIX Acceso servicios Cliente SSH Comandos básicos Manuales Comando ls Sistema de archivos Comando cd Comando mkdir Editor de texto Comando rm Comando mv Comando cp Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 2/55
Oscar Alvarado Nava Fig. 1-1. UAMA Azcapotzalco network with two Ambiente clients de trabajo andenone UNIXserver. SunOS 3/55 Acceso servicios Acceso a Internet Client Server Network
Acceso servicios Cliente-servidor Para acceder a un sistema de cómputo remoto (server) a través de una red de computadoras (network), es necesario una aplicación en el sistema de cómputo local (client) Los tradicionales en UNIX/Linux telnet, rsh, ftp etc. Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 4/55
Acceso servicios Acceso a servicio Client Server Network Fig. 1-1. A network with two clients and one server. Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 5/55
Acceso servicios Flujo de paquetes en cliente y servidor Router Subnet Sending host B D Receiving host A E C Sending process Packet Router C makes a choice to forward packets to E and not to D Receiving process Fig. 1-10. A stream of packets from sender to receiver. Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 6/55
Cliente SSH Cliente SSH Si deseamos que el acceso al servidor sea segura, es recomendable cifrar los mensajes que viajan a través de una red insegura Será necesario un cliente y servidor SSH (Secure Shell) Se debe contar con una cuenta en el servidor: login y password Hay clientes SSH para winbugs y Linux Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 7/55
Cliente SSH Cliente WinSSH Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 8/55
Cliente SSH Acesso al servidor ce Servidor Hostname: ce.azc.uam.mx Dirección IP: 148.206.79.83 Puerto o servicio: 22 Usuario login: ip-14-01 password: Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 9/55
Comandos básicos Comandos básicos Comando man ls mkdir cd pwd passwd pico rm mv cp Descripción Manuales del sistema Lista archivos Crea directorio Cambio de directorio Muestra ruta actual Cambio de password Editor de texto Eliminar archivos Cambia nombre Copia archivos Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 10/55
Comandos básicos Información del sistema Comando who uname -a hostname ifconfig Descripción Usuarios conectados Información del sistema Nombre del sistema Estadísticas de red Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 11/55
Comandos básicos Información del usuario Comando whoami id tty netstat Descripción Información del usuario Información del usuario Información de la terminal Información de conexiones Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 12/55
Comandos básicos Prompt del sistema < /users/ip/14/ip-14-01 > $ <comando> <opciones> <argumentos> Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 13/55
Manuales Manuales del sistema Los manuales de referencia se pueden acceder con el comando man Por ejemplo, veamos el manual del comando ls < /users/ip/14/ip-14-01 > $ man ls Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 14/55
Manuales Manual del comando ls en UNIX 1 User Commands ls (1) 2 3 NAME 4 ls - list contents of directory 5 6 SYNOPSIS 7 /usr /bin /ls [- aabccdeeffghhillmnopqrrstuvvx1@ ] [file ]... 8 9 /usr /xpg4 /bin /ls [- aabccdeeffghhillmnopqrrstuvvx1@ ] 10 [ file ]... 11 12 /usr /xpg6 /bin /ls [- aabccdeeffghhillmnopqrrstuvvx1@ ] 13 [ file ]... 14 15 DESCRIPTION 16 For each file that is a directory, ls lists the contents of 17 the directory. For each file that is an ordinary file, ls 18 repeats its name and any other information requested. The 19 output is sorted alphabetically by default. When no argument 20 is given, the current directory (.) is listed. When several 21 arguments are given, the arguments are first sorted Para avanzar una página: barra espaciadora Para salir del manual: tecla q Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 15/55
Manuales Manual del manual Para mayor información, se puede consultar el manual de los manuales < /users/ip/14/ip-14-01 > $ man man Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 16/55
Manuales Seccciones de los manuales Tanto en UNIX como en Linux, los manuales están divididos en secciones Cada sección es un manual de referencia para los diferentes usuarios del sistema El usuario El programador El administrador Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 17/55
Manuales Búsqueda de manuales en UNIX Para la búsqueda del manual de un comando o función en UNIX < /users/ip/14/ip-14-01 > $ man -l printf printf (1) -M /usr/share/man printf (3c) -M /usr/share/man printf (3ucb) -M /usr/share/man Seleccionamos el que nos interesa < /users/ip/14/ip-14-01 > $ man -s 3c printf Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 18/55
Manuales Manual de la función printf en UNIX 1 Standard C Library Functions printf (3C) 2 3 NAME 4 printf, fprintf, sprintf, snprintf, asprintf - print format - 5 ted output 6 7 SYNOPSIS 8 # include <stdio.h> 9 10 int printf ( const char * restrict format, 11 /* args */...) ; 12 13 int fprintf (FILE * restrict stream, const char * restrict format, 14 /* args */...) ; 15 16 int sprintf (char * restrict s, const char * restrict format, 17 /* args */...) ; 18 19 int snprintf (char * restrict s, size_t n, 20 const char * restrict format, /* args */...) ; Para avanzar una página: barra espaciadora Para salir del manual: tecla q Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 19/55
Comando ls Listar archivos del directorio actual El comando ls lista los archivos de un directorio Si el comando ls no tiene argumentos, se listará el directorio actual, en este caso, ip-14-01 < /users/ip/14/ip-14-01 > $ ls holamundo holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 20/55
Comando ls Listar archivos de un directorio Si al comando ls se le pasa como argumento la ruta absoluta de un directorio existente, listará los archivos y subdirectorios que contiene < /users/ip/14/ip-14-01 > $ ls /bin alias analyzer aspell awk... bash banner bzip2 cat clear... Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 21/55
Comando ls Archivos ocultos Si al comando ls se le agrega la opción -a, mostrará todos los archivos, incluyendo los archivos ocultos < /users/ip/14/ip-14-01 > $ ls -a....bash history.profile holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 22/55
Comando ls Listar archivos y atributos La opción -l muestra todos los atributos de los archivos < /users/ip/14/ip-14-01 > $ ls -l total 4 -rw-r--r-- 1 ip-14-01 ip 386 Apr 22 15:30 holamundo.c Se pueden conjuntar varias opciones, por ejemplo -al < /users/ip/14/ip-14-01 > $ ls -al total 14 drwx------ 3 ip-14-01 ip 512 Apr 24 13:33. drwxr-xr-x 42 root root 1024 Apr 18 21:35.. -rw------- 1 ip-14-01 ip 1374 Apr 24 14:40.bash history -rwx------ 1 ip-14-01 ip 752 Apr 18 21:35.profile -rw-r--r-- 1 ip-14-01 ip 386 Apr 22 15:30 holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 23/55
Sistema de archivos Sistema de archivos en UNIX / bin boot dev etc users lib proc root var grub log mail www bus disk net snd edoo mn ip 12 13 14 ip-14-01 ip-14-02 ip-14-03 holamundo holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 24/55
Sistema de archivos Ruta (path) de archivos El sistema de archivos de UNIX es jerárquico Todo archivo tiene una ruta absoluta, la cual inicia desde la raíz (/) Todo archivo puede tener una ruta relativa al directorio de trabajo Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 25/55
Sistema de archivos Ruta absoluta de un archivo / bin boot dev etc users lib proc root var grub log mail www bus disk net snd edoo mn ip 12 13 14 ip-14-01 ip-14-02 ip-14-03 holamundo holamundo.c /users/ip/14/ip-14-01/holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 26/55
Sistema de archivos Ruta actual El prompt de servidor nos muestran en todo momento nuestra ruta actual, en otros sistemas se puede utilizar el comando pwd print work directory < /users/ip/14/ip-14-01 > $ pwd /users/ip/14/ip-14-01 Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 27/55
Sistema de archivos Directorio actual y directorio padre El directorio actual se denota con un punto (.) y el directorio padre se denota con dos puntos seguidos (..) < /users/ip/14/ip-14-01 > $ ls -al total 14 drwx------ 3 ip-14-01 ip 512 Apr 24 13:33. drwxr-xr-x 42 root root 1024 Apr 18 21:35.. -rw------- 1 ip-14-01 ip 1374 Apr 24 14:40.bash history -rwx------ 1 ip-14-01 ip 752 Apr 18 21:35.profile -rwxr-xr-x 1 ip-14-01 ip 386 Apr 22 15:30 holamundo -rw-r--r-- 1 ip-14-01 ip 386 Apr 22 15:30 holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 28/55
Sistema de archivos Directorio actual / bin boot dev etc users lib proc root var grub log mail www bus disk net snd edoo mn ip 12 13 14 ip-14-01 ip-14-02 ip-14-03 holamundo holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 29/55
Comando cd Cambio de directorio El comando cd nos permite cambiar de directorio, ingresar o salir de ellos Por ejemplo, para ir al directorio padre < /users/ip/14/ip-14-01 > $ cd.. El cambio de directorio actualizará el prompt < /users/ip/14 > $ ls ip-14-01 ip-14-06 ip-14-11 ip-14-16 ip-14-21 ip-14-02 ip-14-07 ip-14-12 ip-14-17 ip-14-22 Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 30/55
Comando cd Directorio actual / bin boot dev etc users lib proc root var grub log mail www bus disk net snd edoo mn ip 12 13 14 ip-14-01 ip-14-02 ip-14-03 holamundo holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 31/55
Comando cd Cambio de directorio < /users/ip/14 > $ cd.. < /users/ip > $ ls 1 11 13 15 17 19 20 22 10 12 14 16 18 2 21 23 Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 32/55
Comando cd Directorio actual / bin boot dev etc users lib proc root var grub log mail www bus disk net snd edoo mn ip 12 13 14 ip-14-01 ip-14-02 ip-14-03 holamundo holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 33/55
Comando cd Cambio de directorio < /users/ip > $ cd 13 < /users/ip/13 > $ ls ip-13-01 ip-13-06 ip-13-11 ip-13-16 ip-13-21 ip-13-02 ip-13-07 ip-13-12 ip-13-17 ip-13-22 Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 34/55
Comando cd Directorio actual / bin boot dev etc users lib proc root var grub log mail www bus disk net snd edoo mn ip 12 13 14 ip-14-01 ip-14-02 ip-14-03 holamundo holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 35/55
Comando mkdir Crear directorio El comando mkdir crea un nuevo directorio en la ruta actual o en la ruta especificada como argumento < /users/ip/14/ip-14-01 > $ mkdir dir suma Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 36/55
Comando mkdir Crear directorio / bin boot dev etc users lib proc root var grub log mail www bus disk net snd edoo mn ip 12 13 14 ip-14-01 ip-14-02 ip-14-03 holamundo dir_suma holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 37/55
Comando mkdir Atributos del directorio Se puede mostrar los atributos del archivo directorio recien creado < /users/ip/14/ip-14-01 > $ ls -l -rwx------ 1 ip-14-01 ip 752 Sep 13 20:52.profile drwxr-xr-x 2 ip-14-01 ip 512 Apr 24 14:25 dir suma -rwxr-xr-x 1 ip-14-01 ip 386 Apr 22 15:30 holamundo -rw-r--r-- 1 ip-14-01 ip 386 Apr 22 15:30 holamundo.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 38/55
Comando mkdir Ingresar al nuevo directorio < /users/ip/14/ip-14-01 > $ cd dir suma < /users/ip/14/ip-14-01/dir suma > $ ls -al total 4 drwxr-xr-x 2 ip-14-01 ip 512 Sep 21 12:11. drwx------ 3 ip-14-01 ip 512 Sep 21 12:11.. Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 39/55
Editor de texto Editor de texto pico (pine composer) es un editor de texto sin formato Es muy simple de usar, ofrece justificación de párrafos y cortar/pegar Comparable al block de notas de windogs La sencillez tiene como precio ser muy limitado en funciones comparados con otros editores, como vi, vim y emacs Búsqueda y reemplazo con expresiones regulares y trabajar con múltiples archivos al mismo tiempo Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 40/55
Editor de texto Editor de texto pico Se puede invocar sin argumentos. El primer argumento será el nombre del archivo a editar < /users/ip/14/ip-14-01/dir suma > $ pico suma.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 41/55
Editor de texto Editor de texto pico Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 42/55
Editor de texto Funciones básicas ˆ O (ctrl+o) guardar cambios ˆ X (ctrl+x) salir ˆ K (ctrl+k) borra ĺınea ˆ U (ctrl+k) agrega ĺınea ˆ W (ctrl+w) buscar Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 43/55
Editor de texto Suma de dos números: suma.c 1 /* Programacion Estructurada 15O 2 Oscar Alvarado Nava, Ing. Electronica 3 Descripcion : solicita dos numeros enteros, los suma 4 y muestra resultado 5 */ 6 # include <stdio.h> 7 8 int main () 9 { 10 int x; 11 int y; 12 int z; 13 14 printf (" Ingrese un numero entero : "); 15 scanf (" %d",&x); 16 17 printf (" Ingrese otro numero entero : "); 18 scanf (" %d",&y); 19 20 z = x + y; 21 22 printf ("la operacion %d mas %d es igual %d\n",x,y,z); 23 24 return 0; 25 } Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 44/55
Editor de texto Compilación y ejecución Compilación < /users/ip/14/ip-14-01/dir suma > $ gcc suma.c -o suma Listar < /users/ip/14/ip-14-01/dir suma > $ ls suma suma.c Ejecutar < /users/ip/14/ip-14-01/dir suma > $./suma Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 45/55
Comando rm Eliminar archivos < /users/ip/14/ip-14-01/dir suma > $ ls suma.c suma < /users/ip/14/ip-14-01/dir suma > $ rm suma < /users/ip/14/ip-14-01/dir suma > $ ls suma.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 46/55
Comando mv Renombrar archivos < /users/ip/14/ip-14-01/dir suma > $ ls suma.c < /users/ip/14/ip-14-01/dir suma > $ mv suma.c prog2 suma.c < /users/ip/14/ip-14-01/dir suma > $ ls prog2 suma.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 47/55
Comando mv Renombrar archivos directorios < /users/ip/14/ip-14-01/dir suma > $ ls prog2 suma.c < /users/ip/14/ip-14-01/dir suma > $ cd.. < /users/ip/14/ip-14-01 > $ mv dir suma p2 suma < /users/ip/14/ip-14-01 > $ cd p2 suma Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 48/55
Comando cp Copiar archivos < /users/ip/14/ip-14-01/p2 suma > $ ls prog2 suma.c < /users/ip/14/ip-14-01/p2 suma > $ cp prog2 suma.c prog3 multiplica.c < /users/ip/14/ip-14-01/p2 suma > $ ls prog2 suma.c prog3 multiplica.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 49/55
Comando cp Editar archivo fuente < /users/ip/14/ip-14-01/p2 suma > $ pico prog3 multiplica.c Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 50/55
Comando cp Multiplicación de dos números: prog3 multiplica.c 1 /* Programacion estructurada 15O 2 Oscar Alvarado Nava, In. Electronica 3 Descripcion : solicita dos numeros enteros, los multiplica 4 y muestra resultado 5 */ 6 # include <stdio.h> 7 8 int main () 9 { 10 int x; 11 int y; 12 int z; 13 14 printf (" Ingrese un numero entero : "); 15 scanf (" %d",&x); 16 17 printf (" Ingrese otro numero entero : "); 18 scanf (" %d",&y); 19 20 z = x * y; 21 22 printf ("la operacion de %d por %d es igual %d\n",x,y,z); 23 24 return 0; 25 } Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 51/55
Comando cp Compilación y ejecución Compilación < /users/ip/14/ip-14-01/p2 suma > $ gcc prog3 multiplica.c -o prog3 multiplica Listar < /users/ip/14/ip-14-01/p2 suma > $ ls -al prog3 multiplica.c prog3 multiplica Ejecutar < /users/ip/14/ip-14-01/p2 suma > $./prog3 multiplica Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 52/55
Comando cp Copiar archivos directorios con su contenido < /users/ip/14/ip-14-01/p2 suma > $ ls prog2 suma.c prog3 multiplica.c prog3 multiplica < /users/ip/14/ip-14-01/p2 suma > $ cd.. < /users/ip/14/ip-14-01 > $ cp -r p2 suma p2 suma multiplica < /users/ip/14/ip-14-01 > $ ls holamundo.c p2 suma p2 suma multiplica Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 53/55
Comando cp Eliminar directorios y su contenido < /users/ip/14/ip-14-01 > $ ls holamundo.c p2 suma p2 suma multiplica < /users/ip/14/ip-14-01 > $ rm -rf p2 suma < /users/ip/14/ip-14-01 > $ ls holamundo.c p2 suma multiplica Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 54/55
Comando cp Cambiar password Por seguridad se recomienda cambiar el password. El password deberá ser de al menos 8 caracteres alfa-numéricos < /users/ip/14/ip-14-01 > $ passwd New Password: Re-enter new Password: Oscar Alvarado Nava UAM Azcapotzalco Ambiente de trabajo en UNIX SunOS 55/55