
LUNES 19 DE FEBRERO DE 2018
Clase con Josep, seguimos con la aplicación para gestión de usuarios, vamos a trabajar con la seguridad,
Iniciar sesión:
Iniciar una actividad en un determinado entorno en un determinado intervalo de tiempo.
Función session_start registra la sesión de usuario. el navegador genera una id única que registra en la variable global $_SESSION
La variable $_SESSION almacena información de sesión
Se aplica con el siguiente script:
session_start(); $session_id = session_id(); if ($_SESSION["autentificado"] != $session_id) { header ("location: ../index.php"); exit(); }
Comenzamos a crear un nuevo archivo php llamado seguridad.php con el script de arriba
y Ahora tenemos que añadir las variables y la función session_start(); en el archivo login de la siguiente manera:
session_start(); $session_id = session_id(); $_SESSION ["autentificado"] $session_id; $_SESSION ["usuari"] $usuari;
De esta manera recogemos los datos de usuario y contraseña del login
Una vez hecho el script y añadido las variables y funciones en el archivo login que hace las comparaciones de contraseña y usuario con la base de datos, hemos puesto un required_once al archivo seguridad en todos los archivos que nos interesa que compruebe la id de sesión.
Llevamos toda la clase con un error y no lo hemos podido solventar aun, estamos matando el tiempo con estilos y demás sandeces.
Al estar trabajando en «grupo» es difícil centrarse en el php puro y duro que es lo que interesa en estas clases, hasta que no trabajemos individualmente no podremos atacar como dios manda al código php.
Clase poco productiva, mañana mas y espero que mejor, saludos!
MARTES 20 DE FEBRERO DE 2018
Clase con Albert, hoy toca estilos CSS y HTML.
Comenzamos con el padding que sirve para dejar aire entre las letras y su caja, se hace por pixels y se puede adaptar cada lado al valor que queramos.
Después utilizamos el margin que lo utilizamos para dar margenes de la caja hacia fuera, de ese modo podemos hacer un botón ganando amplitud con el padding y ubicarlo con el margin.
También aplicamos un borde solido con la etiqueta border: 3px solid gree;
El código para crear un boron con un link seria este:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> Paddings y Margins</title> </head> <body> <style> body { padding: 0; margin: 0; } a{ display: inline-block; text-decoration: none; background: red; color: black; padding:10px 20px; margin: 10px; border: 3px solid green; } </style> <a href="https://www.simracingirona.com"target="_blank"> BOTÓN </a> </body> </html>

abajo podemos el resultado visual en el navegador
Ahora seguimos con el header que estábamos haciendo la semana pasada hemos aprendido a crear una cabecera con un logo y un menú de manera que quede bien estructurado, lo hemos hecho con el siguiente código:
style @import url('https://fonts.googleapis.com/css?family=Kavivanar|Source+Sans+Pro:400,600i,700'); /* font-family: 'Source Sans Pro', sans-serif; */ /* font-family: 'Kavivanar', cursive; */ /* cabecera */ body{ margin: 0; } header { background-color: yellow; height: 60px; } header div { /* background-color: red; */ display: inline-block; width: 30%; float: left; } header div img{ width: 200px; margin-top: 3px; } header nav { /* background-color: black; */ display: inline-block; float: left; width: 70%; text-align: right; } /* Fin cabecera */ header nav ul{ list-style: none; margin: 0px; } header nav ul li { display:inline-block; font-size: 20px; font-family: 'Source Sans Pro', sans-serif; /* margin: 10px 5px; */ } header nav ul li a { padding: 15px 5px; display: inline-block; } header nav ul li a:hover{ border: solid gray; } style
abajo dejo la vista de navegador:

Por hoy ya hemos acabado mañana mas y mejor!
MIERCOLES 21 DE FEBRERO DE 2018
Clase con Josep, seguimos con la seguridad, vamos ha incluir la función isset para que compruebe si los datos vienen desde el botón de enviar del formulario, esto es para impedir que envíen datos sin pasar por el formulario o mediante url.
para aplicar la función añadiremos un escript en cada archivo que inserte o modifique datos:
if (isset ($_POST["nombredelbotonenviar"])) {
dentro de claudator el script de ejecutar o modificar
{
Ahora vamos a ver las diferentes opciones que podemos añadir en la función select son algunas de las mas utilizadas:
<?php //Seleccionar resultats $sql= "SELECT camp1,camp2,camp3 FROM taula ORDER BY camp LIMIT 5"; $sql= "SELECT camp1,camp2,camp3 FROM taula WHERE id >= '1' ORDER BY id"; $sql= "SELECT camp1,camp2,camp3 FROM taula WHERE id BETWEEN '1' AND '5' ORDER BY id"; $sql= "SELECT * FROM usuarios WHERE apellido like ‘M%’ ORDER BY id ASC" --> //Comença per M $sql= "SELECT * FROM usuarios WHERE apellido1 NOT LIKE ‘%t%’ ORDER BY id DESC--> Conté una T $resultat= mysqli_query ($connect,$sql); ?>
Con la función SELECT * FROM usuarios WHERE apellido1 NOT LIKE ‘%t%’ ORDER BY id DESC podemos buscar por una campo especifico y de esa manera crear un buscador mediante formulario que recoja en variables POST los campos y los pase al archivo php que hará la consulta en la base de datos.
JUEVES 22 DE FEBRERO DE 2018
Clase con Albert, continuamos con los css.
Para no crear conflicto con los estilos de esta web, no puedo seguir colgando códigos por que me la lia, voy hacer capturas de pantalla.
Estamos añadiendo cajas que contengan diferentes apartados de la web, en este caso hemos hecho un mensaje en forma de baner, para ello hemos utilizado la etiqueta div para hacer un mensaje grande en medio de la web con texto blanco y fondo rojo, como aparece en la foto de abajo.
Voy a intentar enseñar el código sin que me coja estilos y me deforme la web..
div class=»mensaje»
h1 creamos herramientas y soluciones para su negocio h1
div
Y le aplicado estos estilos:
} .mensaje { text-align: center; display: inline-block; } .mensaje h1 { margin: 2px; padding: 48px 21px; font-size: 60px; background-color: red; color: white; }
Como le hemos asignado una clase al div ya podemos utilizar la clase directamente para hacer el estilo y no hace falta poner las etiquetas solo lo haríamos en caso de querer ser mas específicos y prevalecería el mas especifico como estilo principal.
Después hemos añadido un formulario con una fotografía al lado lo hemos hecho agregando una nueva sección y dentro de la sección un div que contiene el formulario con la clase form y un div que contiene la imagen con la clase img.
y le he dado los siguientes estilos:
.form{ display: inline-block; width: 50%; float: left; } .form form{ padding: 20px; } .form input{ color: red; margin-bottom: 18px; padding: 5px 30px; font-size: 20px; border: 2px solid black; } .form textarea{ color: red; margin-bottom: 12px; padding: 5px 30px; font-size: 20px; border: 2px solid black; } .form .submit{ color: black; border: 2px solid black; } .mapa { display: inline-block; width: 50%; float: left; } .mapa img{ width: 100%;
Abajo vemos la vista navegador:
Ahora vamos con las posiciones de las etiquetas:
- STATIC es la que viene por defecto
- RELATIVE
- ABSOLUTE
- FIXED
hemos creado un botón redondo que se queda fijo en un lateral inferior de la web y aunque hagamos escroll seguirá estando en la misma posición, lo hemos hecho con el siguiente código:
span +span
y los siguientes estilos:
span{ position: fixed; right: 10px; bottom: 10px; color: white; background: red; width: 40px; height: 30px; border-radius: 300px; text-align: center; padding-top: 10px; }
Y el resultado en navegador es este:
Ahora hemos añadido un div con una imagen y un titulo y le hemos añadido un texto novedad con un link.
las posiciones son muy importantes para poder ubicar textos y objetos en diferentes puntos de la web.
VIERNES 23 DE FEBRERO DE 2018
Clase con David flores, vamos hacer directamente ejercicios respondiendo preguntas sobre lo hablado el viernes pasado.
Comenzamos!
El comando «ls» lista el contenido de los directorios. Busca que opciones se pueden añadir detrás de este comando.
-la para que muestre los permisos de usuario sobre archivos y directorios, muy util para buscar posibles errores.
-a todos los archivos, incluso los que comienzan con punto (.).
-A Lista todos los ficheros en los directorios, excepto los que comienzan con punto . (.) y los que comienzan con doble punto (..).
-F indica tipo: / directorio, * ejecutable, @ enlace simbólico.
-h indicará el tamaño en KB, MB, etc.
-l listado en formato largo (o detallado).
-S clasifica los contenidos de los directorios por tamaños, con los ficheros más grandes en primer lugar.
-r invierte el orden de la salida.
-R Lista recursivamente los subdirectorios encontrados.
-t ordenar por fecha de última modificación.
-u ordenar por fecha de último acceso.
-x presenta los ficheros por columnas.
-i precede la salida con el número de i-node (ver el comando ln)
d indica directorio.
l enlace simbólico (ver el comando ln).
c dispositivos de caracteres.
b dispositivos de bloques.
s conexiones con el dominio local.
p conexiones.
Explica la igualdad y la diferencia entre CHMOD y CHOWN.
La igualdad es que los dos necesitan como mínimo permisos de escritura (rewrite) para poder ejecutarse.
La diferencia es que CHMOD cambia los permisos a un archivo o directorio y CHOWN cambia el propietarios de los archivos o directorios.
Completa el ejercicio con el comando CHMOD o CHOWN.
Tengo el archivo hola.txt su propietario es Manel y quiero que el propietario se Ariadna.
Para poder hacer el cambio de propietario utilizaremos el comando chown Ariadna hola.txt (vigilar con las mayúsculas)
Por que código sustituirías las xxx si quisieras….
A. condecir permisos de lectura: 4
B. condecir permisos de lectura y escritura: 6
C. Quitar todos los permisos: 0
D. Concedir Todos los permisos: 7
Ahora comenzamos las practicas con comandas en linux.
marc@marc-VirtualBox:~$ cd Escritorio/ marc@marc-VirtualBox:~/Escritorio$ ls -a . .. Apuntes comanda log.png comandas permisos.png fichero.txt gentis marc@marc-VirtualBox:~/Escritorio$ ls -A Apuntes comanda log.png comandas permisos.png fichero.txt gentis marc@marc-VirtualBox:~/Escritorio$ ls -lh total 452K -rwxrwxrwx 1 pepito marc 2,3K feb 16 19:05 Apuntes -rw-rw-r-- 1 marc marc 196K feb 16 18:06 comanda log.png -rw-rw-r-- 1 marc marc 242K feb 16 18:58 comandas permisos.png -rw-rw-r-- 1 marc marc 215 feb 23 16:17 fichero.txt drwxrwxr-x 2 marc marc 4,0K feb 23 16:19 gentis marc@marc-VirtualBox:~/Escritorio$ ls -l total 452 -rwxrwxrwx 1 pepito marc 2298 feb 16 19:05 Apuntes -rw-rw-r-- 1 marc marc 200273 feb 16 18:06 comanda log.png -rw-rw-r-- 1 marc marc 247691 feb 16 18:58 comandas permisos.png -rw-rw-r-- 1 marc marc 215 feb 23 16:17 fichero.txt drwxrwxr-x 2 marc marc 4096 feb 23 16:19 gentis marc@marc-VirtualBox:~/Escritorio$ mkdir prueba 1 marc@marc-VirtualBox:~/Escritorio$ ls 1 Apuntes comanda log.png comandas permisos.png fichero.txt gentis prueba marc@marc-VirtualBox:~/Escritorio$ ls -la total 468 drwxr-xr-x 5 marc marc 4096 feb 23 16:24 . drwxr-xr-x 18 marc marc 4096 feb 23 16:18 .. drwxrwxr-x 2 marc marc 4096 feb 23 16:24 1 -rwxrwxrwx 1 pepito marc 2298 feb 16 19:05 Apuntes -rw-rw-r-- 1 marc marc 200273 feb 16 18:06 comanda log.png -rw-rw-r-- 1 marc marc 247691 feb 16 18:58 comandas permisos.png -rw-rw-r-- 1 marc marc 215 feb 23 16:17 fichero.txt drwxrwxr-x 2 marc marc 4096 feb 23 16:19 gentis drwxrwxr-x 2 marc marc 4096 feb 23 16:24 prueba marc@marc-VirtualBox:~/Escritorio$ ls -lar total 468 drwxrwxr-x 2 marc marc 4096 feb 23 16:24 prueba drwxrwxr-x 2 marc marc 4096 feb 23 16:19 gentis -rw-rw-r-- 1 marc marc 215 feb 23 16:17 fichero.txt -rw-rw-r-- 1 marc marc 247691 feb 16 18:58 comandas permisos.png -rw-rw-r-- 1 marc marc 200273 feb 16 18:06 comanda log.png -rwxrwxrwx 1 pepito marc 2298 feb 16 19:05 Apuntes drwxrwxr-x 2 marc marc 4096 feb 23 16:24 1 drwxr-xr-x 18 marc marc 4096 feb 23 16:18 .. drwxr-xr-x 5 marc marc 4096 feb 23 16:24 . marc@marc-VirtualBox:~/Escritorio$ cd - /home/marc marc@marc-VirtualBox:~$ cd Escritorio/ marc@marc-VirtualBox:~/Escritorio$
Los comandos ls – se pueden aplicar en conjunto por ejemplo ls -lar.
marc@marc-VirtualBox:~/Escritorio$ ls -l total 452 -rwxrwxrwx 1 pepito marc 2298 feb 16 19:05 Apuntes -rw-rw-r-- 1 marc marc 200273 feb 16 18:06 comanda log.png -rw-rw-r-- 1 marc marc 247691 feb 16 18:58 comandas permisos.png -rw-rw-r-- 1 marc marc 215 feb 23 16:17 fichero.txt drwxrwxr-x 2 marc marc 4096 feb 23 16:19 gentis marc@marc-VirtualBox:~/Escritorio$ mkdir prueba 1 marc@marc-VirtualBox:~/Escritorio$ ls 1 Apuntes comanda log.png comandas permisos.png fichero.txt gentis prueba marc@marc-VirtualBox:~/Escritorio$ ls -la total 468 drwxr-xr-x 5 marc marc 4096 feb 23 16:24 . drwxr-xr-x 18 marc marc 4096 feb 23 16:18 .. drwxrwxr-x 2 marc marc 4096 feb 23 16:24 1 -rwxrwxrwx 1 pepito marc 2298 feb 16 19:05 Apuntes -rw-rw-r-- 1 marc marc 200273 feb 16 18:06 comanda log.png -rw-rw-r-- 1 marc marc 247691 feb 16 18:58 comandas permisos.png -rw-rw-r-- 1 marc marc 215 feb 23 16:17 fichero.txt drwxrwxr-x 2 marc marc 4096 feb 23 16:19 gentis drwxrwxr-x 2 marc marc 4096 feb 23 16:24 prueba marc@marc-VirtualBox:~/Escritorio$ ls -lar total 468 drwxrwxr-x 2 marc marc 4096 feb 23 16:24 prueba drwxrwxr-x 2 marc marc 4096 feb 23 16:19 gentis -rw-rw-r-- 1 marc marc 215 feb 23 16:17 fichero.txt -rw-rw-r-- 1 marc marc 247691 feb 16 18:58 comandas permisos.png -rw-rw-r-- 1 marc marc 200273 feb 16 18:06 comanda log.png -rwxrwxrwx 1 pepito marc 2298 feb 16 19:05 Apuntes drwxrwxr-x 2 marc marc 4096 feb 23 16:24 1 drwxr-xr-x 18 marc marc 4096 feb 23 16:18 .. drwxr-xr-x 5 marc marc 4096 feb 23 16:24 . marc@marc-VirtualBox:~/Escritorio$ cd - /home/marc marc@marc-VirtualBox:~$ cd Escritorio/ marc@marc-VirtualBox:~/Escritorio$ clear marc@marc-VirtualBox:~/Escritorio$ ls 1 Apuntes comanda log.png comandas permisos.png fichero.txt gentis prueba marc@marc-VirtualBox:~/Escritorio$ ls -i 422224 1 413861 Apuntes 422342 comanda log.png 420726 comandas permisos.png 132770 fichero.txt 422210 gentis 422255 prueba marc@marc-VirtualBox:~/Escritorio$ cd gentis/ marc@marc-VirtualBox:~/Escritorio/gentis$ cd .. marc@marc-VirtualBox:~/Escritorio$ ls 1 Apuntes comanda log.png comandas permisos.png gentis prueba marc@marc-VirtualBox:~/Escritorio$ mv Apuntes gentis marc@marc-VirtualBox:~/Escritorio$ cd gentis/ marc@marc-VirtualBox:~/Escritorio/gentis$ ls Apuntes fichero.txt marc@marc-VirtualBox:~/Escritorio/gentis$ mv fichero.txt prueba marc@marc-VirtualBox:~/Escritorio/gentis$ ls Apuntes prueba marc@marc-VirtualBox:~/Escritorio/gentis$ cp prueba prueba2 marc@marc-VirtualBox:~/Escritorio/gentis$ ls Apuntes prueba prueba2 marc@marc-VirtualBox:~/Escritorio/gentis$ rm prueba2 marc@marc-VirtualBox:~/Escritorio/gentis$ ls Apuntes prueba marc@marc-VirtualBox:~/Escritorio/gentis$ cd .. marc@marc-VirtualBox:~/Escritorio$ ls 1 comanda log.png comandas permisos.png gentis prueba marc@marc-VirtualBox:~/Escritorio$ cd prueba marc@marc-VirtualBox:~/Escritorio/prueba$ ls marc@marc-VirtualBox:~/Escritorio/prueba$ nano prueba.txt marc@marc-VirtualBox:~/Escritorio/prueba$ ls prueba.txt marc@marc-VirtualBox:~/Escritorio/prueba$ cd .. marc@marc-VirtualBox:~/Escritorio$ ls 1 comanda log.png comandas permisos.png gentis prueba marc@marc-VirtualBox:~/Escritorio$ rm prueba rm: no se puede borrar 'prueba': Es un directorio marc@marc-VirtualBox:~/Escritorio$ rm -r prueba marc@marc-VirtualBox:~/Escritorio$ ls 1 comanda log.png comandas permisos.png gentis marc@marc-VirtualBox:~/Escritorio$
Mas comandas de terminal linux:
Si hacemos el mismo comando pero con barra more nos muestra solo lo que cabe en pantalla y después apretando intro nos muestra mas, ps aux | more.
marc@marc-VirtualBox:~$ apt-get install filezilla E: No se pudo abrir el fichero de bloqueo «/var/lib/dpkg/lock» - open (13: Permiso denegado) E: No se pudo bloquear el directorio de administración (/var/lib/dpkg/), ¿está como superusuario? marc@marc-VirtualBox:~$ sudo apt-get install filezilla [sudo] password for marc: Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se instalarán los siguientes paquetes adicionales: filezilla-common libfilezilla0 libpugixml1v5 libwxbase3.0-0v5 libwxgtk3.0-0v5 Se instalarán los siguientes paquetes NUEVOS: filezilla filezilla-common libfilezilla0 libpugixml1v5 libwxbase3.0-0v5 libwxgtk3.0-0v5 0 actualizados, 6 nuevos se instalarán, 0 para eliminar y 368 no actualizados. Se necesita descargar 8.977 kB de archivos. Se utilizarán 36,9 MB de espacio de disco adicional después de esta operación. ¿Desea continuar? [S/n] s Des:1 http://es.archive.ubuntu.com/ubuntu xenial/universe amd64 filezilla-common all 3.15.0.2-1ubuntu1 [2.036 kB] Des:2 http://es.archive.ubuntu.com/ubuntu xenial/universe amd64 libfilezilla0 amd64 0.4.0.1-1 [32,1 kB] Des:3 http://es.archive.ubuntu.com/ubuntu xenial/universe amd64 libpugixml1v5 amd64 1.7-2 [82,9 kB] Des:4 http://es.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 libwxbase3.0-0v5 amd64 3.0.2+dfsg-1.3ubuntu0.1 [971 kB] Des:5 http://es.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 libwxgtk3.0-0v5 amd64 3.0.2+dfsg-1.3ubuntu0.1 [4.344 kB] Des:6 http://es.archive.ubuntu.com/ubuntu xenial/universe amd64 filezilla amd64 3.15.0.2-1ubuntu1 [1.512 kB] Descargados 8.977 kB en 11s (777 kB/s) Seleccionando el paquete filezilla-common previamente no seleccionado. (Leyendo la base de datos ... 177454 ficheros o directorios instalados actualmente.) Preparando para desempaquetar .../filezilla-common_3.15.0.2-1ubuntu1_all.deb ... Desempaquetando filezilla-common (3.15.0.2-1ubuntu1) ... Seleccionando el paquete libfilezilla0 previamente no seleccionado. Preparando para desempaquetar .../libfilezilla0_0.4.0.1-1_amd64.deb ... Desempaquetando libfilezilla0 (0.4.0.1-1) ... Seleccionando el paquete libpugixml1v5:amd64 previamente no seleccionado. Preparando para desempaquetar .../libpugixml1v5_1.7-2_amd64.deb ... Desempaquetando libpugixml1v5:amd64 (1.7-2) ... Seleccionando el paquete libwxbase3.0-0v5:amd64 previamente no seleccionado. Preparando para desempaquetar .../libwxbase3.0-0v5_3.0.2+dfsg-1.3ubuntu0.1_amd64.deb ... Desempaquetando libwxbase3.0-0v5:amd64 (3.0.2+dfsg-1.3ubuntu0.1) ... Seleccionando el paquete libwxgtk3.0-0v5:amd64 previamente no seleccionado. Preparando para desempaquetar .../libwxgtk3.0-0v5_3.0.2+dfsg-1.3ubuntu0.1_amd64.deb ... Desempaquetando libwxgtk3.0-0v5:amd64 (3.0.2+dfsg-1.3ubuntu0.1) ... Seleccionando el paquete filezilla previamente no seleccionado. Preparando para desempaquetar .../filezilla_3.15.0.2-1ubuntu1_amd64.deb ... Desempaquetando filezilla (3.15.0.2-1ubuntu1) ... Procesando disparadores para hicolor-icon-theme (0.15-0ubuntu1) ... Procesando disparadores para man-db (2.7.5-1) ... Procesando disparadores para libc-bin (2.23-0ubuntu9) ... Procesando disparadores para gnome-menus (3.13.3-6ubuntu3.1) ... Procesando disparadores para desktop-file-utils (0.22-1ubuntu5.1) ... Procesando disparadores para bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Procesando disparadores para mime-support (3.59ubuntu1) ... Configurando filezilla-common (3.15.0.2-1ubuntu1) ... Configurando libfilezilla0 (0.4.0.1-1) ... Configurando libpugixml1v5:amd64 (1.7-2) ... Configurando libwxbase3.0-0v5:amd64 (3.0.2+dfsg-1.3ubuntu0.1) ... Configurando libwxgtk3.0-0v5:amd64 (3.0.2+dfsg-1.3ubuntu0.1) ... Configurando filezilla (3.15.0.2-1ubuntu1) ... Procesando disparadores para libc-bin (2.23-0ubuntu9) ...
Este comando de arriba sirve para instalar paquetes (aplicaciones)
ifconfig es como ipconfig de windows
marc@marc-VirtualBox:~$ ifconfig enp0s3 Link encap:Ethernet direcciónHW 08:00:27:66:81:68 Direc. inet:10.0.2.15 Difus.:10.0.2.255 Másc:255.255.255.0 Dirección inet6: fe80::19a1:47ac:be76:b1a9/64 Alcance:Enlace ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1 Paquetes RX:17611 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:7183 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:16021451 (16.0 MB) TX bytes:629288 (629.2 KB) lo Link encap:Bucle local Direc. inet:127.0.0.1 Másc:255.0.0.0 Dirección inet6: ::1/128 Alcance:Anfitrión ACTIVO BUCLE FUNCIONANDO MTU:65536 Métrica:1 Paquetes RX:432 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:432 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:51650 (51.6 KB) TX bytes:51650 (51.6 KB)
pwd para saber en que directorio estamos.
Dejar una contestacion