jueves, 19 de mayo de 2016

Desarrollo de una programa en ANSI C para GNU/Linux

             Verificación de un numero de cédula ecuatoriana 


  • Objetivo: 

Mediante la creación del programa, analizaremos los parámetros de la funcion main, el proceso de compilación/ejecución a través del bash de GNU/Linux y el procedimiento para que el programa pueda ser ejecutado desde cualquier lugar(rebound).

  • Desarrollo:

 Main:
               
"La funcion main sirve como punto de partida para la ejecución del programa. Normalmente, controla la ejecución del programa dirigiendo las llamadas a otras funciones del programa. Un programa deja de ejecutarse normalmente al final del main. "[1]
Usualmente, la declaración que adopta el main es : int main ( ); 

Sin embargo, para el lenguaje ansi C se utilizara 2 parámetros de entrada denominados argc (argument count) y argv (argument vector).
-argc es un entero que representa el numero de argumentos que se envia al programa.
-argv es un vector de punteros a caracteres(vector de cadena de caracteres). Cada cadena es uno de los argumentos que fue pasado al programa.

La declaración de main en el programa sera: int main (int argc, char *argv[])

Dentro del main, tambien aparece una funcion llamada atoi (address to int) la cual convierte una cadena de caracteres a un entero.  Su declaracion sera de la siguiente manera: n1x = atoi (argv[1]);

 
Proceso de compilación:

En el terminal, vamos primero que todo a compilar el programa; para eso escribimos el comando: 
gcc -o < nombre del ejecutable> <nombre del programa.c> 
En el caso del programa que vamos a usar, para compilar usamos: gcc -o ID cedula1.c






Ahora que ya hemos compilado el programa, vamos a ejecutarlo. Para eso escribimos ./ <nombre del ejecutable> <argumentos de entrada>. 
En el caso del programa de verificación de la cédula: ./ID <numero de cédula>





-PATH
-PATH es una variable de entorno en Linux que comunica al shell cual directorio buscar para ejecutar un programa. 
Para que nuestro programa pueda ser ejecutado desde cualquier directorio, es necesario ubicar en que directorio esta nuestro programa 
 y luego añadir este directorio a la variable de entorno path.
Para esto usamos el comando: export PATH=$PATH: <directorio del programa>


Vale recalcar, que estos cambios no son permanentes. Una vez que se haya apago el computador, nuevamente el programa no podrá ser ejecutable desde cualquier directorio. 

Para hacer los cambios permanentes debemos editar el archivo de configuración del shell Bash del usuario. Para esto usamos el siguiente comando:
echo export PATH=PATH$: <directorio del programa> >> <directorio principal>.bashrc
En en caso de mi programa:
echo export PATH=PATH$: /home/juan/Tareas> >> /home/juan/.bashrc

Ahora ya podemos ejecutar el programa desde cualquier directorio, aun despues de apagar el computador. Ya es un cambio permanente.


-BIBLIOGRAFIA:
[1] Microsoft, "Funcion main y ejecucion del programa",[online].Disponible en: https://msdn.microsoft.com/es-es/library/3ze4ytsc.aspx

lunes, 9 de mayo de 2016

Comandos basicos de Shell

Shell
Shell es un programa informático que permite al usuario interactuar/comunicar con el núcleo(kernel) del sistema operativo mediante comandos, cuyos significados son interpretados y transmitidos al sistema, es decir, shell brinda la interfaz entre el usuario y el sistema operativo del computador para así poder dar las ordenes necesarias para que se realicen diferentes tareas importantes. [1]

Comandos:
  • PWD(print working directory):                                                                                                           Este comando  permite imprimir el nombre del directorio de trabajo actual.



pwd-d: evita todos los symlinks -herramienta que sirve para gestionar enlaces simbólicos-. 







  • man (manual): Este comando especifica las funciones y características de otros comandos en shell.

man -a into: Este comando muestra en pantalla todos las paginas de manuales de Introducción de comandos de usuario disponible.











  • clear (limpiar): La funcion de este comando es la de limpiar la pantalla por completo de informacion anteriormente escrita.





  • cd (change directory): La función de este comando es la de cambiar del directorio actual en la que el usuario se encuentre a cualquier otro directorio existente.


cd .. : Este comando nos permite cambiar desde un directorio cualquiera a su respectivo directorio padre









  • ls (list directory contents): Su función es la de listar el contenido de un directorio especifico (el que usuario ordene).





ls-l: Este comando  lista el contenido de un directorio de manera detallada; es decir, para cada archivo indica usuario, grupo, tamaño, permisos,etc.  



  • mkdir (make directories): Permite al usuario crear un nuevo directorio, si es que este aun no existe.



mkdir -v <nombre de directorio>: Este comando imprime un mensaje de confirmación cuando se crea un directorio.








  • history: Imprime los comandos o lineas recientemente escritas por el usuario.


history !!: Su función es la de mostrar solamente el comando utilizado anteriormente.









  • nano: Es un editor que nos permite crear y editar archivos de texto.












nano -v <nombre de archivo> : La funcion de este comando es permitir al usuario ver el archivo pero no modificarlo; parecido al comando cat.
















  • cat: Permite al usuario observar el contenido de un archivo sin poder editarlo.






cat -b <nombre del archivo>: Su funcion es la de enumerar las lineas que no están vacías dentro del archivo.









  • echo: permite imprimir un mensaje por consola.

                                                                                   



echo -n <mensaje>: Imprime el mensaje por consola pero no se ejecuta un salto de linea.











  • touch: Permite crear diferentes tipos de archivos, como archivos de texto.

touch -c <nombre del archivo>: Este comando no creo ningun archivo dentro del directorio actual.








  • cp: La funcion de este comando es la de copiar un archivo a otro directorio que el usuario especifique.




cp -v<archivo> <destino>:Este comando nos imprime un mensaje de la acción que se esta ejecutando y el directorio  hacia donde se copia el archivo. 









  • mv: La funcion de este comando es la de mover un archivo a otro directorio que el usuario especifique.
mv -i <nombre de archivo> <directorio> : Cuando se mueve un archivo a un directorio, pero el archivo tiene el mismo nombre que otro archivo ya existente en el directorio, el comando mv -i pregunta al usuario si quiere sobre escribirlo.





  • tr -s ' ': esta funcion elimina espacios.
  • chmod <nombre> : esta funcion modifica los permisos de un programa                                                    r(4) - lectura      w(2) - escritura            x(1) - ejecucion                                                                    chmod ugo +rwx <nombre de archivo>
  • bzip2: comprime algun determinado archivo
  • gzip: <nombre.gz> <nombre.txt> este comando sirve para comprimir un archivo
  • tar -cvf <nombre.tar> <nombre.txt> este comando sirve para empaquetar un archivo                                tar -tvf : Enlista que archivos tiene el empaquetado                                                                        tar -czvf <nombre.tar.gz> <nombre.txt>. crea y empaqueta archivos                                             tar -xzvf <nombre.tar.gz> desempaqueta y descomprime archivos
  • who : Enlis los usuarios que han iniciado sesion.
  • cat /etc/passwd contiene 7elementos :      nombre del usuario, passwrod, User ID, GID identificad de grupo, nombre del grupo, directorio home del usuario y el sheel que esta ejecutando el comando
  • grep: realiza un filtrado basado en un patron que va a enviar como argumento de entrada
  • du -h: en lista cada archivo con su peso
  • find /home -name <\*.sh> -and -mmin -50 encuentra los archivos a partir del directorio home que con extension sh y que han sido modificados en los ultimos 50 min. (m-modificar; a-accedido, c- cambiado)
  • Kill <pid> : sirve para matar un proceso determinado
  • pidof <comando> : sirve para visualizar el PID de un comando
  • sed 's/^ [ \t]*//' : sirve para eliminar espacios tabulados
  • sed -n '1p' 
  • sudo su: sirve para cambiar a super usuario
  • rm : sirve para eliminar archivos o direcotorios.     rm -rf elimina direcotorio con su contenido
  • wc : imprime el numero de lineas, palabras y caracteres. (-l numero de lineas; -w numero de palabras; -m numero de caracteres)
  • ps : muestra la informacion de un procesos                                                                                             ps axo pid,ppid,command: este comando enlista el pid, ppid y el comando que se esta ejecutando en ese momento
  • nombre = "usuarios"$(date +%d+%m%y) este comando crea un archivo con fecha en que se crea el programa
  • diff -u <archivo1><archivo2>: compara dos archivos diferentes
  • mv <nombre archivo1> <nombre archivo2>: cambia de nombre al archivo1 a archivo2
  • if config: para visualizar que otros usuario estan conectados en la red
  • ping: para verficiar si tengo conectividad.
  • sudo apt-get update seguido de sudo apt-get upgrade sirve para actualizar paquete
  • apt -cache show : muestra especificaciones del paquete
  • crontab (# m h dom mon dow user command)
 Bibliografia:
[1] Jose Miguel, "Que es un shell? [novato]",[online].Disponible en: http://linuxgnublog.org/%C2%BFque-es-shell/

sábado, 30 de abril de 2016

Tutorial de instalacion de VirtualBox y Ubuntu.



            Tutorial de instalación de Virtual Box 

Antes de realizar la instalación de virtualBox, primero tengamos en claro qué es y para qué nos sirve.
"VirtualBox es un programa de gran utilidad para todos aquellos que necesiten utilizar un sistema operativo puntualmente pero no quieran crear una partición en su equipo y por consiguiente tener que instalar dos sistemas operativos en el mismo ordenador. VirtualBox nos permite virtualizar un sistema operativo, es decir, crear un ordenador virtual en el que podremos instalar cualquier otro sistema.[1]"
Para conseguir el instalador de Virtualbox, podemos ingresar a https://www.virtualbox.org/wiki/Downloads, en donde podremos escoger diferentes link de descarga dependiendo del sistema operativo que usemos en nuestras computadoras. En mi caso, he escogido VirtualBox 2.0.20 para usuarios de Windows.


                                                                                                                             

Una vez finalizada la descarga, abrimos el instalador y nos aparecerá una ventana de seguridad preguntado si queremos ejecutar el archivo.

Ya que hemos descargado el software directamente de la pagina oficial de VirtualBox no hay riesgo en continuar, así que daremos click en Run (ejecutar).








Una vez abierto el instalador de VirtualBox, aparecerá un mensaje de bienvenida al asistente de configuración. 
Damos click en Next para permitir al asistente de configuración instalar Oracle VM VirtualBox 5.0.20 en nuestra computadora (en caso de querer anular la instalación, damos damos click en cancel)




La ventana de configuración personalizada permite al usuario cambiar la manera en la que las características serán instaladas. 

Cada característica del programa es importante para el buen funcionamiento de este, así que recomiendo no cambiar nada.
En la parte inferior de la ventana podemos ademas escoger el destino en donde sera instalado VirtualBox.
Una vez escogido el destino de instalación del programa, daremos click en Next para proseguir con la instalación.


En esta ventana podemos escoger si queremos:
1. Crear un acceso directo en el escritorio.
2. Crear un acceso directo en la barra de inicio.
3. Registrar asociación de archivos.
 Las primeras dos opciones son de preferencia personal; sin embargo, la tercera opción es recomendable.
Para continuar con la instalación, damos nuevamente click en Next.                                                                                                                                           



La ventana de advertencia de interferencia de red nos comunica que al instalar la característica de red de Oracle VirtuaBox 5.2.20 nos desconectara temporalmente de la red.

Para proceder con la instalación daremos click en yes (si).








Ahora el programa esta listo para ser instalado en nuestro computador. Para esto debemos dar click en Install (instalar).
En caso de querer cambiar algún ajuste de instalación, dar click en back (atrás).









Ahora hay que esperar que VirtualBox se instale en nuestro computador. Esto podría tardar alguno minutos. Durante este proceso habrá una interrupción.










Durante el proceso de instalación, aparecerá un mensaje de seguridad de Windows solicitando la aprobación de la instalación de Oracle Corporation Controladoras de bus. Para continuar hay que dar click en Instalar. 




En esta ventana tenemos la opción de empezar VirtualBox justo después de terminar con la instalación.
Para finalizar con la instalación, daremos click en Finish(finalizar).
Ventana principal de VirtualBox.

Tutorial de instalación del Sistema Operativo Ubuntu en VirtualBox

Bien, ahora que ya hemos finalizado con la instalación de VirtualBox, es hora de instalar el sistema operativo Ubuntu; pero antes, conozcamos más acerca de este S.O. 
"Ubuntu es una distribución de GNU/Linux, un sistema operativo enfocado a computadoras personales (escritorio y laptops), es una de las más importantes distribuciones de Linux a nivel mundial. El nombre de la distribución proviene del concepto zulú y xhosa de ubuntu que significa"humanidad hacia otros" o "yo soy porque nosotros somos.[2]"
Para instalar el sistema operativo Ubuntu en VirtualBox, lo primero que debemos hacer es descargarlo desde la página oficial de ubuntu. http://www.ubuntu.com/download/desktop/contribute/?version=16.04&architecture=amd64

 

Si queremos descargar Ubuntu de forma totalmente gratuita, damos clic en la opción Not now, take to the download (no ahora, ir directo a la descarga). Este archivo (.iso) lo usaremos luego de crear una máquina virtual en VirtualBox.

En VirtualBox damos clic en la opción New (nuevo) para poder crear una nueva máquina virtual.



Se nos abrirá una ventana para dar nombre a la máquina virtual, seleccionar  el tipo de Sistema Operativo y la versión. En nuestro caso podemos nombrar a nuestra máquina virtual Ubuntu, seleccionamos Linux como tipo de S.O y la version con la que más se acomode a las características de nuestro computador (en mi caso Ubuntu de 64 bits).

Para seguir con la instalación del O.S damos clic en Next.











En la ventana de Tamaño de memoria seleccionamos la cantidad de memoria RAM que queramos usar en nuestra máquina virtual. Les recomiendo que sí es que tienen más de 6 GB de RAM es su computador, entonces le den 2GB a su maquina virtual, pero si es que tienen inferior a los 6GB, pues solo compartan 1GB. Esto es para que no se les vuelva lenta la computadora.
Una vez seleccionado la cantidad de memoria, damos clic en Next para seguir con la creación de la maquina virtual.   


                                                                        
En la ventana de disco duro, se puede escoger una de las 3 opciones:
  • No añadir un disco duro virtual.
  • Crear un disco duro virtual.
  • Usar un disco virtual existente.
Como yo no tengo un disco virtual existente, escogeré la opción dos.
Para continuar, den clic en Create (crear).














En esta ventana hay que escoger el tipo de archivo que nos gustaría usar para el nuevo disco duro virtual. Si no necesitamos usar la maquina virtual con otro software de visualización, escogemos VDI (virtualBox Dis Image) el cual es la opción predeterminada y damos clic en Next para continuar con la creación de la maquina virtual.














Esta ventana nos permite escoger la manera como nuestro disco duro virtual trabajará.
Un archivo de disco duro Dynamically allocated (Asignación Dinámica) solamente ocupara memoria de nuestro disco duro físico acorde se vaya llenando, mientras que un archivo de disco duro Fixed size (tamaño fijo) ocupara todo el espacio asignado desde un comienzo. 
Escoja la opción que crea mas conveniente para Usted. Luego damos clic en Next para continuar con la creación de la maquina virtual. 






La ventana de localización y tamaño de archivo nos permite crear un nombre y seleccionar la cantidad de memoria ( en MB) de nuestro archivo de disco duro virtual.
Para finalizar con la creación de la máquina virtual, simplemente damos clic en Create (crear). 








































Para iniciar nuestra maquina virtual, damos clic en Start (Inicio).


Ya que no hemos todavía instalado el S.O Ubuntu en nuestra máquina virtual, nos aparecerá una ventana para seleccionar la ubicación del archivo (.iso) previamente descargado.
              
Seleccionamos nuestro archivo (.iso) y damos clic en open (abrir).




Si nos aparece esta ventana, quiere decir que ubuntu esta listo para ser instalado en nuestra maquina virtual.








Seleccionamos el idioma con el que vamos a trabajar en nuestro sistema operativo.











En esta ventana podemos habilitar dos opciones para nuestro sistema operativo.
-Descargar actualizaciones al instalar Ubuntu.
-Instalar software para terceros para multimedia, mp3,etc.
Luego de seleccionar las opciones que creamos convenientes damos clic en continuar.





En esta ventana seleccionamos la opción Borrar disco e instalar Ubuntu; ya que no existe ningún otro Sistema Operativo instalado en nuestra maquina virtual no habrá ningún cambio.






En esta ventana, muestra los dispositivos  que se han modificado y las particiones que se formatearan; dar clic en continuar para seguir con la instalación.



Seleccionar su ubicación en el mapa mostrado en la ventana y dar clic en continuar.








En la siguiente ventana seleccionamos el lenguaje del teclado y hacemos clic en continuar.











En esta ventana Personalizamos el sistema operativo; luego de llenar cada cuadro, dar clic en continuar.









Esta ventana nos muestra el progreso de la instalación del sistema operativo en nuestra maquina virtual. Este proceso puede tardar varios minutos.

                                                                                              Bienvenidos al sistema operativo Ubuntu!

Bibliografia:
[1] Miquel Ferrer Amer, "Como utilizar virtualBox, virtualizando sistemas operativos completos",[online].Disponible en: http://rootear.com/virtualizacion/como-utilizar-virtualbox
[2] Jorge Martinez Mauricio, "Sistema Operativo Ubuntu/Linux", [online]. Disponible en: http://blogsiglo.com/archivo/123.sistema-operativo-ubuntu-linux.html