Archivos mensuales: Febrero 2008

Clasificacion especial para usar un conjunto de clases y estructuras relacionadas, tambien se ocupa para aislar ese grupo de nombres en conjuntos de tipos de datos separados y distintos.

 

Es imposible tener dos clases con el mismo nombre en un espacio de nombres pero es posible que existan clases con el mismo nombre en espacios de nombres diferentes.

 

Los espacios de nombres pueden ser predefinidos o definidos por el usuario.El .net tiene clases en espacio de nombre predefinidos, por ejemplo systemPara definir un espacio de nombre se utiliza

 

 Namespace NombreEspacio

 

{

 

Clases del espacio de nombres

 

}

 

Clase:

 

Unidad basica de la programacion orientada a objetos, todo programa en C# se organiza en clases que encapusulan datos y comportamientos.Una clase se construye con la palabra class seguida del nombre de la clase y el simbolo de inicio y fin de un bloque para delimitar la codificacion de sus miembros.

 

Clase: mesa (conceptos generales)——–> Objetos (caracteristicas particulares de la clase)

 

Clase: animal——-> subclases carnivos, herbivoros



 

Metodos para escribir datos

 

Un metodo es roconocido por tener parentiesis y por los parametros que puede contener. Los metodos usados para escribir datos en pantalla son :Write escribe sin añadir el caracter de fin de linea de la cadenaWriteLine sí añade el caracter de fin de linea a la cadena de modo que lo siguiente que se escriba se colocara en la siguiente linea

 

Console. Write (“Hola”);

Console.WriteLine (“pepe”);

Console. Write (“¿Cómo estás, ”);

Console. WriteLine (“¿Bien?”);

Resultado en consola:HolaPepe

¿Cómo estas, bien ? 



 

Palabras reservadas

 

abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, lock, is, long, namespace, new, null, object, operator, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, void, whileTambién existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condición compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instrucción SWITCH.Esta instrucción es una instrucción de decisión múltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA, CHARACTER, STRING contra una lista de constantes apropiadas, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional.El formato de esta instrucción es el siguiente;

 

capturar o asignar variable de condición;switch(var OPCION)

 

{

case const1: instrucción(es);

break;case const2: instrucción(es);

break;case const3: instrucción(es);

break; ………………default: instrucción(es);

break;}; 



 

C# NET CICLO FOR

 

Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez.En C SHARP NET este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.Su formato general es:for (inicialización; condición; incremento){ instrucción(es); };En su forma simple la inicialización es una instrucción de asignación que carga una variable de control de ciclo con un valor inicial. 



 

CICLO WHILE C# NET

 

 

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte en falsa el ciclo termina. 



 

Su formato general es :

 

 

cargar o inicializar variable de condición; 



 

while(condición) 



{ 



grupo cierto de instrucciones;

instrucción(es) para salir del ciclo; 



};

prog14.aspx:

 

 La condición es una expresión relacional que evalúa la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo.Se deben separar esos 3 argumentos con punto y coma (;)El preprocesador no interpreta de ninguna manera el código fuente del fichero, sino que sólo interpreta de dicho fichero lo que se denominan directivas de preprocesado. Estas directivas son líneas de texto del fichero fuente que se caracterizan porque en ellas el primer carácter no blanco que aparece es una almohadilla (carácter #) Por ejemplo:

 #define TEST

#error Ha habido un error fatal 



 

No se preocupe ahora si no entiendo el significado de estas directivas, ya que se explicarán más adelante. Lo único debe saber es que el nombre que se indica tras el símbolo # es el nombre de la directiva, y el texto que se incluye tras él (no todas las directivas tienen porqué incluirlo) es el valor que se le da. Por tanto, la sintaxis de una directiva es:

 

 

# 

Es posible incluir comentarios en la misma línea en que se declara una directiva, aunque estos sólo pueden ser comentarios de una línea que empiecen con // Por ejemplo, el siguiente comentario es válido:

 

 

#define TEST // Ha habido algún error durante el preprocesado 

Pero este otro no, pues aunque ocupa una línea tiene la sintaxis de los comentarios que pueden ocupar varias líneas: 

#define TEST /* Ha habido algún error durante el preprocesado */ 
Como se ha repetido varias veces a lo largo del tema, la principal utilidad del preprocesador en C# es la de permitir la compilación de código condicional, lo que consiste en sólo permitir que se compile determinadas regiones de código fuente si las variables de preprocesado definidas cumplen alguna condición determinada. Para conseguir esto se utiliza el siguiente juego de directivas: 


 

#if 

#elif 
… 
#else 

#endif 



 

El significado de una estructura como esta es que si se cumple entonces se pasa al compilador el , si no ocurre esto pero se cumple entonces lo que se pasaría al compilador sería , y así continuamente hasta que se llegue a una rama #elif cuya condición se cumpla. Si no se cumple ninguna pero hay una rama #else se pasará al compilador el , pero si dicha rama no existiese entonces no se le pasaría código alguno y se continuaría preprocesando el código siguiente al #endif en el fuente original. 



 

Aunque las ramas #else y #endif son opcionales, hay que tener cuidado y no mezclarlas ya que la rama #else sólo puede aparecer como última rama del bloque

 

 #if…#endif.

 


Es posible anidar varias estructuras #if…#endif, como muestra el siguiente código: 


 


#define PRUEBA
using System; 


 

class A 
{ 
public static void Main() 
{ 
#if PRUEBA 
Console.Write (“Esto es una prueba”); 
#if TRAZA 
Console.Write(“ con traza”);#elif !TRAZA 
Console.Write(“ sin traza”); 
#endif 
#endif

 

}

 


}

 

Como se ve en el ejemplo, las condiciones especificadas son nombres de identificadores de preprocesado, considerándose que cada condición sólo se cumple si el identificador que se indica en ella está definido. O lo que es lo mismo: un identificador de preprocesado vale cierto (true en C#) si está definido y falso (false en C#) si no. 


 

El símbolo ! incluido en junto al valor de la directiva #elif es el símbolo de “no” lógico, y el #elif en el que se usa lo que nos permite es indicar que en caso de que no se encuentre definido el identificador de preprocesado TRAZA se han de pasar al compilador las instrucciones a continuación indicadas (o sea, el Console.Write(“sin traza”);) 



 

El código fuente que el preprocesador pasará al compilador en caso de que compilemos sin especificar ninguna opción /d en la llamada al compilador será: 
using System;
class A 
{ 
public static void Main() 
{ 
Console.Write(“Esto es una prueba”); 
Console.Write(“ sin traza”);} 
} 

Nótese como en el código que se pasa al compilador ya no aparece ninguna directiva de preprocesado, pues lo que el preprocesador le pasa es el código resultante de aplicar al original las directivas de preprocesado que contuviese. 


 [Imagen+2.png]

Asimismo, si compilásemos el código fuente original llamando al compilador con /d:TRAZA, lo que el preprocesador pasaría al compilador sería: 

using System; 

class A{public static void Main(){Console.Write (“Esto es una prueba”);Console.Write(“ sin traza”);}} 

Hasta ahora solo hemos visto que la condición de un #if o #elif puede ser un identificador de preprocesado, y que este valdrá true o false según esté o no definido. Pues bien, estos no son el único tipo de condiciones válidas en C#, sino que también es posible incluir condiciones que contengan expresiones lógicas formadas por identificadores de preprocesado, operadores lógicos (! para “not”, && para “and” y || para “or”), operadores relacionales de igualdad (==) y desigualdad (!=), paréntesis (( y )) y los identificadores especiales true y false. Por ejemplo: 

#if TRAZA // Se cumple si TRAZA esta definido.

 

#if TRAZA==true // Idem al ejemplo anterior aunque con una sintaxis menos cómoda

 

#if !TRAZA // Sólo se cumple si TRAZA no está definido.#if TRAZA==false // Idema al ejemplo anterior aunque con una sintaxis menos cómoda

 

#if TRAZA == PRUEBA // Solo se cumple si tanto TRAZA como PRUEBA están // definidos o si no ninguno lo está.

 

#if TRAZA != PRUEBA // Solo se cumple si TRAZA esta definido y PRUEBA no o // viceversa

 

#if TRAZA && PRUEBA // Solo se cumple si están definidos TRAZA y PRUEBA.#if TRAZA || PRUEBA // Solo se cumple si están definidos TRAZA o PRUEBA.

 

#if false // Nunca se cumple (por lo que es absurdo ponerlo)#if true // Siempre se cumple (por lo que es absurdo ponerlo) 



 

Es fácil ver que la causa de la restricción antes comentada de que no es válido dar un como nombre true o false a un identificador de preprocesado se debe al significado especial que estos tienen en las condiciones de los #if y #elif 

A toda variable que se use en un programa, se debera declarar de preferencia al principio del programa.

 

En C# NET (tambien se le conoce como C# ) existen los siguientes tipos de variables:En particular cada tipo de dato que se menciona aqui es en realidad un OBJETO, que se deriva a su vez de una clase que provee el framework de microsoft net es por eso que se incluye la clase de la cual proviene el tipo de dato.Es decir en un programa se podra declarar una variable por ejemplo float pi; o tambien se podra declarar y crear un objeto derivado de esa clase, por ejemplo System.Float alfa = new System.Float(); para este caso observar y tener en cuenta dos cosas:

 

Observar como se declara y crea un objeto ( este formato de creación de objetos aprenderlo bien).

 

Como objeto alfa podra usar todas las propiedades y metodos asociadas al objeto, mas adelante se ve un tema donde se analiza mas a fondo el concepto de clases y objetos.Signed significa que se puede usar el signo + o – al usar la variable.Por ultimo variables strings o variables cadena, se podran crear usando la clase STRING que creara un objeto de dicho tipo.Para declarar un variable en un script o programa solo usar el siguiente formato:Tipo de dato lista de variables; ejemplo: 

string nombre, ciudad;int alfa, beta;string ciudad=“tijuana”;float pi=3.1416; 



 

Para el caso de objetos numericos derivados de la clase respectiva, solo usar el formato que se indico en los parrafos de arriba.

 

Recordar que c# net es case-sensitive, es decir reconoce la diferencia que hay entre mayusculas y minusculas, en otras palabras no declarar alfa e intentar capturar o desplegar ALFA.

 

Para convertir numeros a strings no hay problema, solo cargar o asignar el numero o variable numerica a la variable string, pero para convertir strings a numeros existen y deberan usarse los metodos Parse de las clases respectivasejemplo;String beta1=“100”;Int beta2 = System.Int32.Parse(beta1)

Práctica 1 



 

Responda en su blog a las siguientes preguntas:

 



1. ¿Qué tipos de permisos existen? 



 

lectura – r, 
escritura – w, 
ejecución – x


 

2. ¿Qué tipos de perfiles de usuario existen? 



 

Dueño, grupo, Todos los demás
unix sistema operativo multiusuario y jerárquico.


 

3. ¿Con qué letra identificamos a un directorio al escribir el comando ls -l?

 

d= directorio rwx (dueño) rwx (grupo) rwx (todos los demas) file.txt

 



4. ¿Qué permisos están asignados en los siguientes modos?





a)    600 el dueño puede leer y escribir, todos los demás no pueden hacer nada

b)   514 el dueño puede leer y ejecutar, el grupo puede ejecutar, los demás pueden leer

c)    677 el dueño puede leer y escribir, el grupo puede leer, escribir y ejecutar, los demás pueden leer, escribir y ejecutar

d)   766 el dueño puede leer, escribir y ejecutar, el grupo puede leer y escribir, los demás pueden leer y escribir

e)    333 el dueño puede escribir y ejecutar, el grupo puede escribir y ejecutar, los demás pueden escribir y ejecutar





5. ¿Qué modo tiene el archivo en cuyos permisos el dueño sólo puede leer y ejecutar, el grupo sólo modificar y todos los demás leer y ejecutar?

 

525





6. ¿Qué modo tiene el archivo en cuyos permisos el dueño sólo puede leer, el grupo modificar y ejecutar y todos los demás sólo ejecutar? 



 

431

 

7. ¿Cuál es la sintáxis del comando chmod?

 



cambiar los permisos que el programa puede ejecutar

 

8. ¿Qué hacen los siguientes comandos? 



 

a) cd .. 

 llevar a un archivo

b) bc 

 abrir la calculadora

c) cd / 

lleva al disco duro

d) ls -l > lista.txt  ver los permisos de programa



e) chmod 606 file.txt 

cambiar los permisos en el archivo 606

 

9. ¿Para qué sirve el caracter * (asterisco)?

 



 Para remplazar un acadena de caracteres

 

10. ¿Para qué sirve el comando find? 




 

Para ala búsqueda de archivos

 

Práctica 2

 



1. Haga un script dentro de nano que realice lo siguiente: 



a)    Limpie la pantalla


b) Despliegue el contenido del directorio de trabajo actual usando ls -l 


c) Haga un archivo cuyo contenido sea la palabra Hola, y que se guarde en el directorio de trabajo actual bajo el nombre uno.txt

d) Haga un archivo cuyo contenido sea la palabra amigo, y que se guarde en el directorio de trabajo actual bajo el nombre de dos.txt 
e) Concatene (una, junte) los dos archivo previos en un tercero que tenga el nombre de su grupo y sección, por ejemplo 601a.txt (Este paso es indispensable para validar la práctica 2)



 

2. Corra el script. En caso de ser necesario, cambie los permisos del mismo y verifique que el script realizó lo solicitado.

 

3. Copie las instrucciones de esta práctica, escritas en la Terminal, a su blog.

#!/bin/bashclearls -lecho “hola”> uno.txtecho “amigo”> dos.txtcat uno.txt dos.txt> 601b.txt

Un script es un conjunto de funciones instrucciones en un archivo que el sistema operativo puede ejecutar.  Un script puede tener:1. Comandos de Unix 2. Variables, condicionales y cualquier otra herramienta de un lenguaje de programación.El script se puede escribir en cualquier editor de textos como por ejemplo nano.En todos los casos la primer línea del script debe ser la siguiente:#!/bin/bashPara ejecutar un script  se debe de escribir:./ antes del nombre del mismo y se deben tener los permisos correspondientes.clear, limpia la terminalls -l, muestra un listado más amplio del directorio chmod, cambia los permisos de programa para poder ejecutar un comando 

El lenguaje B por Ken Thompson en 1970: recodificar el sistema operativo UNIX. Inspirado en el BCPL de Martin Richard, diseñado tres años antes.

En 1972 es Dennis Ritchie diseña finalmente C a partir del B, aportando un diseño de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior.
Durante muchos años no existen reglas estándar para el lenguaje, pero en 1983 se decide formar un comité con el objetivo de crear el estándar ANSI (Instituto Nacional Americano de Estándares). El proceso dura seis años y a principios de los 90 el estándar es reconocido por la ISO (Organización Internacional de Estándares) y comienza a comercializarse con el nombre ANSI C.
1980 surge C++ de la mano de Bjarne Stroustrup (Bell de AT&T). Diseña este lenguaje con el objetivo de añadir a C nuevas características: clases y funciones virtuales (de SIMULA67), tipos genéricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un auténtico motor de objetos con herencia múltiple que permite combinar la programación imperativa de C con la programación orientada a objetos. 
Evolución de C++ incorporación de la librería STL años más tarde, obra de Alexander Stepanov y Adrew Koening. Debido al éxito del lenguaje, en 1990 se reúnen las organizaciones ANSI e ISO para definir un estándar que formalice el lenguaje. El proceso culmina en 1998 con la aprobación del ANSI C++.
2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseñado por Anders Hejlsberg), que servirá de lenguaje principal de la plataforma. C# es un híbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia múltiple) con la plena orientación a objetos del segundo. La orientación a objetos es tal que el propio programa está encapsulado en una clase.
2001 se aprueba el ECMA y en el 2003 el ISO.

 

Implementación de un algoritmo en un determinado lenguaje de programación, conformando un programa.

Programa:  Concepto desarrollado por Von Neumann en 1946, unión de una secuencia de instrucciones que una compu puede interpretar y ejecutar y una estructura de datos que almacenan la información independiente  de las instrucciiones que dicha secuencia maneja.

Para elllos se usan lengujes de programación que sirven para programar la secuencia de instrucciones requeridas. Según Niklaus Wirth un programa está formado por algoritmos y estructura de datos

Lenguaje de programación:

Tiene un número limitado de palabras y también un numero limitado de simbolos

Constituido por un punto de reglas sintacticas(se refiere a la especificación de laformacón de instrucciones válidas) y semánticas(especifican el significado de estas insrucciones)

La escritura o codificación del programa puede resultar una tarea sencilla si conocemos las reglaas sintácticas y semánticas que constituyen el lenguaje de programación


 

1. ¿Qué es autenticación?

utenticación o autentificación, en términos de seguridad de redes de datos, se puede considerar uno de los tres pasos fundamentales (AAA). Cada uno de ellos es, de forma ordenada:
Autenticación En la seguridad de ordenador, la autenticación es el proceso de intento de verificar la identidad digital del remitente de una comunicación como una petición para conectarse. El remitente siendo autenticado puede ser una persona que usa un ordenador, un ordenador por sí mismo o un programa del ordenador. En un web de confianza, “autenticación” es un modo de asegurar que los usuarios son quién ellos dicen que ellos son – que el usuario que intenta realizar funciones en un sistema es de hecho el usuario que tiene la autorización para hacer así.

2. ¿Qué requieren las opciones de autenticación?

Las opciones de autenticación requieren que la parte del enlace que realiza la llamada introduzca la información de autenticación. Esto ayuda a garantizar que el usuario tenga el permiso del administrador de la red para efectuar la llamada. Los routers pares intercambian mensajes de autenticación.

3. ¿Cuantos tipos de protocolo para la autenticación en PPP? ¿Cuales son?

Al configurar la autenticación PPP, el administrador de la red puede seleccionar el Protocolo de autenticación de contraseña (PAP) o el Protocolo de autenticación de intercambio de señales (CHAP). Por lo general

4. ¿Cual es el protocolo de preferencia? ¿Porqué?

el protocolo de preferencia es CHAP por su establecimiento del enlace, autenticación y fase del protocolo de la capa de red.

5. ¿En que nivel se realiza la autenticación PPP?

PAP ofrece un método sencillo para que un nodo remoto establezca su identidad, mediante el intercambio de señales de dos vías. Una vez que se ha completado la fase de establecimiento del enlace PPP, el nodo remoto envía el conjunto de nombre de usuario/contraseña por el enlace repetidas veces hasta que se acusa recibo de la autenticación o la conexión se termina.

6. ¿Porqué PAP no es un protocolo sólido?

PAP no es un protocolo de autenticación sólido. Las contraseñas se envían por el enlace en texto no cifrado, y no hay protección contra la reproducción o los intentos de descubrimiento mediante intentos reiterados de ensayo y error. El nodo remoto tiene control de la frecuencia y la temporización de los intentos de conexión.

7. ¿Cómo es el proceso de autenticación CHAP? Descríbelo

CHAP se utiliza al iniciar un enlace y verifica, de forma periódica, la identidad del nodo remoto por medio de un intercambio de señales de tres vías. CHAP se realiza al establecer el enlace inicial y se repite durante el tiempo que dure el enlace.

El siguiente ejemplo activa el encapsulamiento PPP en una interfaz serial 0/0:

Router#configure terminal
Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp

8. Escribe los pasos de forma breve para configurar la autenticación PPP

Para configurar la compresión en PPP, introduzca los siguientes comandos:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#compress [predictor | stac]

El siguiente ejemplo activa el encapsulamiento PPP en una interfaz serial 0/0:

Router#configure terminal
Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
La compresión de software de punto a punto puede configurarse en las interfaces seriales que utilizan encapsulamiento PPP. La compresión se ejecuta en el software y puede afectar el rendimiento del sistema de forma significativa. No se recomienda la compresión si la mayor parte del tráfico está compuesto por archivos comprimidos.

Para configurar la compresión en PPP, introduzca los siguientes comandos:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#compress [predictor | stac]
Introduzca los siguientes comandos para monitorear los datos que se pasan al enlace y para evitar la formación de bucles en las tramas:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp quality percentage

El siguiente ejemplo activa el encapsulamiento PPP en una interfaz serial 0/0:

Router#configure terminal
Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
La compresión de software de punto a punto puede configurarse en las interfaces seriales que utilizan encapsulamiento PPP. La compresión se ejecuta en el software y puede afectar el rendimiento del sistema de forma significativa. No se recomienda la compresión si la mayor parte del tráfico está compuesto por archivos comprimidos.

Para configurar la compresión en PPP, introduzca los siguientes comandos:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#compress [predictor | stac]
Introduzca los siguientes comandos para monitorear los datos que se pasan al enlace y para evitar la formación de bucles en las tramas:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp quality percentage
Los siguientes comandos ejecutan el equilibrio de las cargas en múltiples enlaces:

Router(config)#interface serial 0/0
Router(config-if)#encapsulation ppp
Router(config-if)#ppp multilink

Comandos Basicos
Control C: se detiene comando en instruccion.
kill id Comando: El ID del proceso.
man Nombre del comando: me da ayuda sobre ese comando, abre el manual.
q: salir del manual
b: avanzar una pantalla.
echo “Hola”.
Demostrando que podemos manejar constantes y variables al nivel del prompt.
cat file.txt: se muestra el contenido del archivo con dicho nombre.Imprime el contenido o muestra el contenido de un archivo y tambien concatena archivos. (concatenar: pegar, unir) solo UNIX tiene este comando que permite concatenar o juntar varios archivos en uno solo.

Terminal

Para entrar a la terminal te vas a disco duro, applications, Utilities, terminal.
En la ventanda de a terminal se tiene:
La fecha en la que se abrio por ultima vez
Una bienvenida
Nombre de computadora, sesión con la que se inicio el trabajo , hasta el signo $ se le llama (shell prompt)
Para cerrar un sesión:
Menu terminal – Quit terminal
Comando Q
Teniendo abierta la terminal escribir (logout y enter) te aseguras que darwin te diga si tienes algun procedimiento corriendo, es la opción mas recomendada.
Partes de lineas de comando:

grep -1 success *.txt > outfile

grep —– comando de UNIX es necesario ponerlo
-1 ———Option Swich Flag Son opciones del comando (opcional)
success *.txt outfile ——- argumentos
——— Operadores (logicos y matemáticos )
Como obtener ayuda sobre un comando:
Dentro de la terminal el comando que sirve para obtener ayuda sobre un comando se llama ( man nombre del comando)
nos abre el manual de UNIX para obtener información sobre el comando.

La barra espaciadora sirve para avanzar una pagina
b — retocede una pagina
q—- para salirte del manual

COMANDOS BÁSICOS

cd ————- nos lleva al home
pwd ———– directorio del trabajo actual
ls ————– listar el contenido del directorio donde estamos trabajando