Thursday, December 27, 2012

Instalación y Configuración básica de MySQL Community  Server 5.5.29 en Windows 7 sin instalador gráfico.

En este manual se va a explicar como instalar y configurar MySQL Community Server desde un archivo .zip (Sin instalador gráfico). Es realizado en base a la documentación que se encuentra en la página de Oracle/MySQL.

Primero que nada, ¿qué es MySQL Community Server?, pues es un Sistema Manejador de Bases de Datos , mejor conocido por sus siglas en inglés (DBMS - Database Management System). Un manejador de base de datos es el software encargado de definir, diseñar, crear y administrar tanto las bases de datos, así como sus objetos [tablas (tables), procedimientos almacenados (stored procedures), disparadores (trigers), vistas (views), etc], ni más ni menos.

Como no me gusta hacer las cosas tan automatizadas aunque en cierto modo son más fáciles, prefiero realizar el manual para aprender a instalar este software sin una interfaz gráfica donde solo le vas "puchando"   como dicen las mujeres xD en el botón de "siguiente" y de paso aprender también su configuración básica.

Manos a la obra, ¿qué necesitamos? Pues los paquetes que se descargan de la página http://dev.mysql.com/ ingresamos a la página y nos vamos a la pestaña de "Downloads (GA)" para descargar los paquetes.



Seleccionamos el paquete dependiendo de la arquitectura de nuestro ordenador, en mi caso selecciono el de 32bits.



Una vez descargado en nuestro equipo lo descomprimes en la raíz de tu disco duro (para evitar problemas con rutas), en este caso en la ruta C:\, nos va a quedar al final una carpeta, eliminamos el archivo con extensión .ZIP ya que no lo necesitaremos más y renombramos la carpeta mysql-5.5.29-win32.zip como "MySQL"



Al final debe quedar de la siguiente manera.



Ingresamos a la carpeta y deberá tener una vista como la siguiente:

Bien, explico que los archivos "my-huge", "my-innodb-heavy-4G" "my-large", "my-medium", "my small" son archivos de configuración.

my-huge <==== sistemas de 1G, 2G de RAM

my-innodb-4G <=== sistemas de más de 4G de RAM

my-large <=== sistemas de 250MB de RAM

my-medium <=== sistemas de 64MB de RAM

my-small <=== sistemas de menos de 64MB de RAM


En este caso la más recomendable es utilizar "my-huge" para sistemas de 1GB, 2GB de RAM, podemos eliminar las restantes para evitar confusiones. Abrimos el archivo "my-huge" y aparecerá un bloc de notas con la configuración, así como se muestra en la imagen.



En este archivo vamos agregar dos opciones, una es "basedir" que es donde se encuentra la carpeta de MySQL y "datadir" que es donde serán almacenadas nuestras bases de datos.

En mi caso yo quité la carpeta "data" de C:/MySQL/data , la moví a mis documentos quedando la ruta como C:/Users/G31M/Documents/Databases y aparte le cambié el nombre a "Databases", entonces en el bloc de notas en la parte de  abajo de [mysqld] se debe de agregar "basedir" y "datadir" con las rutas correspondientes. En mi caso queda de la siguiente manera

[mysqld]
basedir=C:/MySQL      <=== Es la ruta donde está la carpeta de MySQL
datadir=C:/Users/G31M/Documents/Databases     <== ruta donde serán almacenadas mis bases de datos

Si tú no hiciste el cambio de la carpeta data, por default debe de quedar como:

[mysqld]
basedir=C:/MySQL
datadir=C:/MySQL/data

También se pueden agregar diagonales inversas, pero se debe de agregar doble, si agregas diagonales invertidas quedaría de la siguiente manera:

[mysql]
basedir=C:\\MySQL
datadir=C:\\MySQL\\data

agrego una imágen para que se den una idea como queda.



Ya que agregamos esos datos a la configuración cerramos la pestaña del bloc de notas, nos indicará si deseamos guardar los cambios efectuados y seleccionamos que sí para que se guarden los cambios. Ahora lo que tenemos que hacer es renombrar el archivo "my-huge" a "my", sin las comillas, quedando de la siguiente forma:



Despues de renombrar el archivo "my-huge" como "my" lo que sigue es mover ese archivo al directorio de Windows, en mi caso es C:/Windows, pero si no sabes como localizar el directorio de windows, puedes abrir una consola de comandos y ejecutar lo siguiente

echo %windir%

Entonces la consola te mostrará la ruta del directorio de windows como en la imagen de abajo:



Ya que sabemos la ruta del directorio de windows movemos el archivo "my" a la ruta que te indicó la consola, en mi caso C:/Windows quedando así:



Cerramos el explorador de archivos y ahora tenemos que agregar el directorio C:/MySQL/bin a las variables de entorno y esto ¿para qué?.

Para que puedas ejecutar los comandos de mysql desde cualquier ruta en la consola sin necesidad de tener que movernos hasta ese directorio, pongo un ejemplo, si no agrego el directorio C:/MySQL/bin a las variables de entorno, cada vez que yo abra la consola de comandos por defecto abre en "Documents".

C:\Users\G31M\Documents>

si yo ejecuto el comando mysqld me va a mandar un mensaje de error que no se encontró el archivo, teniendo que hacer lo siguiente:

C:\Users\G31M\Documents>cd..
C:\Users\G31M>cd..
C:\Users>cd..
C:\>cd MySQL
C:\MySQL>cd bin
C:\MySQL\bin>mysql

De esta forma no mandará error ya que me moví hasta la ruta, sin embargo si agrego el directorio a las variables de entorno, puedo ejecutar los comandos de mysql desde cualquier ruta en la que me abra la consola.

Ya que ah quedado más claro el porqué se debe de agregar, procedemos a realizarlo, para esto abrimos "Equipo" o "Computer" en la parte de arriba ingresamos a la opción de "Propiedades del Sistema" o "System Properties" y en el lado izquierdo aparecerá la opción "Configuración avanzada del sistema" o "Advanced system settings" como en la imagen de abajo, lo que hay que hacer es ingresar a esa opción.



Cuándo ingreses a esa opción te aparecerá una ventana como la siguiente en la cuál debes de seleccionar la opción "Variables de Entorno" o "Environment Variables".



Al entrar a esa opción abrirá otra ventana donde seleccionaremos "Path" y presionamos el botón de "edit" para agregar el directorio. Como en la imagen de abajo, hay que tener mucho cuidado el momento de editar ya que si por error lo hacemos mal el sistema no va a funcionar adecuadamente.



Una vez que presionamos el botón de "edit" aparecerá una última ventana más pequeña donde vienen direcciones separadas por un ";" aquí lo que tenemos que hacer es agregar el directorio

Ejemplo: tengo la ruta

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

para agregar el directorio primero agrego el símbolo de punto y coma ";" y luego agrego la dirección con diagonales invertidas C:\MySQL\bin , quedando de la siguiente forma:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\MySQL\bin

Una vez agregado, presionamos el botón de OK tanto en la primera ventana como en la segunda para guardar los cambios.



Una vez realizado esto, tenemos que probar el servidor de base de datos, para esto abrimos una nueva consola ("Windows+R" ,tipear cmd y presionar "Enter") y como ya agregamos el directorio C:/MySQL/bin a las variables de entorno ya podremos ejecutar los comandos desde cualquier parte que abra la consola, pues bien, para probar el servidor ejecutamos la sintaxis:

mysqld --console



Al ejecutar el comando empezará a correr el servidor y aparecerá una ventana del firewall de windows, esto aparece por que para comunicarte con el servidor se ocupa el puerto 3306, le damos en "Allow access" o "Permitir acceso" para agregar ese puerto a las excepciones del firewall de windows.



Ya que está corriendo el servidor de base de datos nos muestra un mensaje en consola "ready for connections" obviamente quiere decir que está puesto en marcha y listo para conectarnos.



Para hacer otra prueba vamos a intentar conectarnos al servidor, para esto abrimos otra consola y tipeamos la siguiente sintaxis:

mysql -u root



Donde -u [nombre de usuario] por defecto ahora solo tenemos 3 cuentas en mysql, la de root y dos cuentas sin nombre ni contraseña para "testear" (probar) el servidor en este caso ocupamos la cuenta de root, al presionar enter aparecerá algo como lo de abajo, notarás que ahora en vez de "C:\Users\G31M\Documents>" aparece "mysql>"  esto significa que ya estamos logeados en el servidor, para hacer una última prueba ejecuté la query "show databases;" la cuál me muestra las bases de datos que se instalan por defecto en mysql, esto quiere decir que está funcionando correctamente el servidor.



Ejecutando la query "show databases;" como última prueba y validando que funciona correctamente.



Ahora que ya validamos que corre bien el servidor de base de datos, tenemos que instalar el servicio para que puedamos conectarnos en cualquier momento ya que sino instalamos el servicio, tendremos que iniciarlo cada vez que desees conectarte, primero que nada tenemos que detener el servidor ya que en este momento se está ejecutando, entonces nos desconectamos del servidor tan solo escribiendo "exit" y presionando enter, ahora detenemos el servicio posicionandonos sobre la consola donde indica "ready for connections" y presionando la combinacion de teclas "Ctrl+C" (control más la letra "c" de nuestro teclado), ahora verificamos que en la consola aparece "Shutdown complete", esto nos indica que se ah parado el servidor y podemos proceder a instalar el servicio.



Hacemos una última prueba abriendo otra consola e intentando conectarnos de nuevo al servidor tipeando de nuevo en la consola

mysql -u root

Presionamos la tecla "Enter" y observamos en la imagen que ya nos devuelve un mensaje de error la consola, ya que no está corriendo el servidor, con esto terminamos de validar que se ah detenido por completo.



Bueno ahora para instalar el servicio tenemos que hacerlo desde una consola de windows pero con privilegios de administrador, nos vamos al menú de inicio y tipeamos "cmd" sin las comillas, aparecerá el símbolo del sistema, presionamos click derecho y seleccionamos "Run as administrator" "Ejecutar como administrador"



Una vez que estemos en la consola como administrador, por defecto nos abre la ruta "C:\Windows\windows32>" para instalar el servicio forzosamente tenemos que desplazarnos hasta la ruta "C:\MySQL\bin" ya que si desde la consola sin ingresar hasta ese directorio instalamos el servicio la próxima vez que reinicie el sistema no va a correr el servicio por que lo estará instalando con la configuración que trae por defecto que sería el directorio "C:\Program Files\MySQL 5.5.29\bin", entonces por obvias razones el servicio no va a inicar ya que no es la ruta correcta, entendido lo anterior procedemos a moverlos hasta la ruta:

C:\Windows\system32>cd..
C:\Windows>cd..
C:\>cd MySQL
C:\MySQL>cd bin
C:\MySQL\bin>

Ya que estemos en el directorio en la consola procedemos a instalar el servicio con la siguiente sintaxis:

mysqld --install MySQL --defaults-file=C:\Windows\my.ini

Donde:

--install MySQL <=== significa que le estamos indicando al sistema que instale el servicio con el nombre MySQL (esto puede ser sustituido por el nombre que tu gustes, ejemplo --install Datos ,etc, etc etc, pero lo recomendable es MySQL :) )

--defaults-file=C:\Windows\my.ini <=== significa que le estamos indicando al sistema que instale el servicio con la infomación que se encuentra en el archivo de configuración ubicado en "C:\Windows\my.ini"

Cuándo ejecutamos la sintaxis y se instala el servicio correctamente aparece una pantalla como la siguiente, la leyenda "Service sucessfully installed" por último debemos reiniciar el sistema, lo podemos realizar con el comando:

shutdown -r -t 30

Donde:

-r <=== significa "restart" (reiniciar), lo podemos sustituir por -s <=== que significa "shutdown" (apagar), pero lo recomendable es reiniciar

-t <=== es el tiempo en el que se va a reiniciar el sistema.



Después de que el sistema se reinició presionamos la combinación de teclas "Windows+R" (windows más la letra R de nuestro teclado) en donde aparecerá una ventana para ejecutar comandos, ahí tipeamos:

msconfig

presionamos enter y nos abrirá la ventana de configuración de inicio del sistema en la cuál nos vamos a ir a la pestaña "Services" o "Servicios" y vamos a buscar el servicio de nombre "MySQL", validamos que se encuentre seleccionado y con el estatus de "Running" o "Corriendo", si aparece así es que se ah instalado el servicio de forma correcta.

Para terminar de validar, vamos a intentar "loguearnos" en el servidor, anteriormente se indicó que es con la sintaxis:

mysql -u root

Presionamos enter y la consola no devuelve ningún error, y ahora muestra "mysql>" en vez de "C:\Users\G31M\Documents" lo que significa que ya estamos "loguados" en el servidor.



Anteriormente comenté que la instalación de MySQL trae por "default" 3 cuentas de acceso, una es la del usuario "root" y las otras dos son sin nombre de usuario ni contraseña, hasta ahora si nos mantenemos así es pontencialmente peligroso, para lo cuál de momento vamos a asignarle una contraseña al usuario "root", para esto tenemos que estar logueados dentro del servidor (tiene que aparecer en nuestra consola "mysql>"), bueno ya que estamos logueados para cambiar la contraseña de "root" basta con tipear la siguiente sintaxis:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('aquí vas a ingresar tu contraseña');

importante ingresar al final de la sintaxis el símbolo de punto y coma ";" hay que recordar que en la mayoría de los lenguajes de programación las instrucciones terminan con ";" pues MySQL no es la excepción así que tenemos que agregarla al final de cada instrucción

Donde:

SET PASSWORD FOR 'root'@'localhost' <== estamos indicando obviamente que vamos a cambiar la contraseña del usuario root

= PASSWORD('nueva contraseña') <===== estamos indicando que el nuevo password es .... recordar que la contraseña se delimita por comillas simples

; <====== fin de la sentencia.

Al ejecutar correctamente la sintaxis la consola solo devolverá el mensaje

"Query OK, 0 rows affected" <==== esto significa que se ah ejecutado correctamente.

ahora bien para borrar la caché que guarda el servidor es necesario "refrescarla" para que se apliquen los cambios de inmediado, esto lo hacemos con la sintaxis:

FLUSH PRIVILEGES;



Ahora para dar mayor seguridad a nuestro servidor de base de datos vamos a eliminar las cuentas sin nombre de usuario ni contraseña, para evitar que cualquiera ingrese de este forma, para borrarlas lo hacemos con la siguiente query:

DELETE FROM mysql.user WHERE user='';

Donde:

DELETE FROM mysql.user <=== estamos indicando que queremos eliminar un registro de la tabla llamada "user" ubicada en la base de datos de nombre "mysql"

| base de datos | | nombre de la tabla |
        mysql                    user

WHERE user='' <=== condición para que sea eliminado el registro de la tabla.

; <==== Fin de la instrucción o mejor llamada "Query"

Aquí ya estamos trabajando con sentencias del lenguaje SQL (Structured Query Language) no entraré en detalles en este manual, posteriormente realizaré uno de SQL con lo poco que sé por qué la verdad aún no le pego "chido" a las consultas, pero lo básico sí :)

con esta sintaxis hemos eliminado las dos cuentas por defecto que no tenían nombre de usuario ni contraseña, ahora en cierto modo podemos decir que tenemos un servidor de base de datos un poquito más seguro, para efectuar los cambios inmediatamente ejecutamos la siguiente "query" para eliminar la caché del servidor y aplicar cambios

FLUSH PRIVILEGES;



Después de hacer esto vamos a probar la nueva contraseña que asignamos al usuario "root" para esto primero nos desconectamos del servidor, solo hay que tipear "exit" sin las comillas y presionar enter, entonces estaremos desconectados del servidor, ahora vamos hacer la prueba, vamos a intentar iniciar sesión normalmente, ejecutamos la sintaxis en la consola:

mysql -u root

Y presionamos "enter", podemos ver en la imágen que la consola devuelve un error y es por que ya le agregamos una contraseña al usuario "root" que por default no tenía.



Esto se soluciona de manera muy sencilla, en la sintaxis tenemos que agregar el recursivo -p quedando de la siguiente forma:

mysql -u root -p

Donde:

mysql -u (usuario) -p (password) <====== estamos indicando que nos vamos a loguar en el servidor con una contraseña.

presionamos "enter" y en la parte de abajó debemos de tipear nuestra contraseña como aparece en la pantalla.



Al terminar de ingresar la contraseña presionamos "enter" y validamos que ya nos encontramos de nuevo conectados en el servidor.



Por último vamos a instalar la interfaz gráfica MySQL Workbench y esto ¿para qué me sirve?

La interfaz gráfica Workbench nos permite conectarnos al servidor de base de datos de manera gráfica y en cierto modo "más fácil". Ingresamos de nuevo a la página http://dev.mysql.com/ y seleccionamos "MySQL Workbench GUI Tool".



Seleccionamos el paquete (en esta ocasión solo existe para sistemas operativos de 32Bits) y lo descargamos.



Una vez que se descargó en nuestro equipo lo buscamos y procedemos a descomprimir. Posteriormente lo Movemos a "C:/Program Files" y renombramos la carpeta a "MySQL Workbench"



Ingresamos a la carpeta, buscamos el ejecutable de nombre "MySQLWorkbench" y ya sea crear un acceso directo al escritorio o en mi caso como odio tener iconos en el escritorio solamente la papelera de reciclaje, arrastramos el programa al menú de inicio.



Ejecutamos el programa y la interfaz será igual a la de la imagen.



Ahora para conectarnos al servidor damos doble click en la opción "Local Instance MySQL" o en la barra de herramientas ir a la opción "Database" y posteriormente seleccionar "Query Database" abrirá una ventana en donde la primera opción que debemos seleccionar es "Local Instance MySQL" a final de cuentas da lo mismo, una vez que seleccionemos esa opción nos abrirá una pequeña ventana donde ingresamos el usuario que se conectará a la base de datos y abajo la contraseña, al terminar presionar "enter".



Ya que nos conectó la interfaz al servidor podemos ver que nos abre una pantalla como la siguiente, en la parte de arriba es donde empezaremos a ejecutar las query's para ejemplo ejecuté la consulta:

show databases; <=== me muestra las bases de datos

En la imagen se ve como en la parte de abajo me muestra los nombres de las bases de datos



Este programa es lo mismo que si utilizamos la consola, solo que en este se ve "más bonito" y es más fácil ejecutar consultas, etc que en la terminal, ahora en la terminal me conecto de igual forma a la base de datos y ejecuto la misma consulta, se puede apreciar que me devuelve los mismos resultados solo que en una es en modo texto y la otra gráfica.



Otra prueba, se puede observar otra vez que devuelve los mismos resultados que si ejecutamos las consultas en la consola.



Bueno pues espero les sirva de algo este manual para aprender a configurar lo básico de manera manual de un servidor de base de datos en windows, en este caso MySQL , posteriormente se hará un manual de SQL (Structured Query Language) con lo poco que aprendí en Soporte Elektra xD !!!. Reitero que no es "copy and paste" las imágenes son de mi equipo de hecho se puede ver la fecha y la hora en las imágenes, el hecho de hacer un manual no es tan fácil, en este me llevé aproximadamente 5 horas, pero como dije anteriormente, espero y les sea de ayuda si desean aprender un poco más.

Una última recomendación para las personas que van aprendiendo, recomiendo utilizar la consola y hacer las cosas de manera manual para aprender, una vez que sepas como se hace, adelante, no hay problema si haces todo automatizado, pero esta es la mejor opción para absorver conocimientos y aprender, un ejemplo un poco "chusco" imaginen que hay un problema en el servidor de la compañía donde laboran y tienen que entrar, pero ohh sorpresa, no puedes entrar por tu amiguita "las ventanitas" (interfáz gráfica), solo puedes entrar por consola, ¿como le harías tú como ingeniero o futuro ingeniero en sistemas para solucionar el problema? Hay que analizar un poco esto y reflexionar. Bueno ya basta de choros xD.

Gracias por visitar el blog.

:)

Wednesday, December 26, 2012

Administrar los programas que se ejecutan automáticamente al iniciar sesión en Windows 7

Actualmente existen bastantes programas en la red para "administrar tu computadora", uno de los más conocidos es el TuneUP Utilities, admito que es bueno y lo llegué a ocupar, tiene una interfaz muy amigable y cuenta con bastantes opciones de mantenimiento para el equipo. Pero bueno a mi en lo personal no me gusta llenar el registro de windows con programas y como futuro ingeniero en sistemas me gusta experimentar con mi computadora, "ver ¿para que sirve ese botón?, ¿qué pasa si le muevo ahí, acá?, etc".  Aparte de que si windows me da las herramientas para realizarlo, pues ¿para qué instalo otros programas? Me parece es bueno para cualquier tipo de usuario saber cómo funciona su computadora, ¿qué opciones tiene? ¿qué tanto se puede hacer?, si bien sabemos que para utilizar un equipo al 100% es muy difícil, pero  por lo menos tener la noción de "¿qué es lo que estoy haciendo cada que le muevo aquí?, etc.

Bueno, manos a la obra, esto no lo considero como un manual, sino un "Tip". Algunas veces cuándo instalamos programas en windows al final de la instalación nos pregunta si deseamos que el programa se ejecute al momento de iniciar sesión en el sistema, o algunos ni lo preguntan, ¿qué consecuencias tiene esto? Con el paso del tiempo y si constantemente instalamos programas y de esos programas que instalamos el 20% se ejecuta desde que inicio sesión pues el equipo cada vez se va haciendo más lento, agregando que hay veces que ni ocupamos esos programas pero sin embargo ahí se están ejecutando, bueno desde el punto de vista de cada usuario esto es molesto, al menos para mí, ya que no me gusta estar "gastando recursos del sistema" me considero un "tacaño" en ese aspecto.

Hay una herramienta de windows con la cuál podemos seleccionamos los servicios y los programas que se ejecutan al inicio del sistema. Para ingresar a esta herramienta basta con tan solo realizar lo siguiente:

presionar la combinación de teclas "Windows+R" <== Tecla de windows más la letra R de nuestro teclado, que sería la abreviación de "Run" (correr, ejecutar), al presionar esta combinación de teclas, se estará abriendo una ventana pequeña del lado inferior izquierdo.




 En esta ventana podremos ejecutar comandos, pues bien, para abrir la herramienta de configuración del sistema basta con tan solo tipear en esa ventana:

msconfig

Presionamos "Enter" y aparecerá una ventana como la siguiente, lo más probable es que les aparezca todo en español, disculpen pero a mi no me gusta instalar en español por eso las imágenes que agrego de mi equipo no aparecen en este idioma.



En esta ventana la primer pestaña "General" podemos configurar el tipo de inicio, como yo no la había configurado debido a que acabo de instalar de nuevo el sistema aparece por default "Normal" , explico las opciones que aquí aparecen

Normal <== Carga todos los drivers de los dispositivos y servicios

Diagnostic Startup <=== Carga los drivers básicos como el de el monitor, el mouse, el teclado, los discos duros, etc, se utiliza para realizar pruebas

Selective Startup <=== Al momento de que nosotros seleccionamos los servicios y programas que se ejecutarán al inicio en automático cambia a "Selective Startup" debido a que ya estamos modificando la configuración por defaul, en este caso la "Normal" donde carga todo.

La siguiente pestaña es la de "Boot" donde podemos de igual forma seleccionar que tipo de booteo queremos, si por disco duro, en red, consola ó reparación de active directory, así como seleccionar si no queremos una interfaz gráfica al momento de bootear, información del booteo, etc, También en esta opción se puede elegir si queremos que el sistema utilice más núcleos del procesador al momento de que este arranca, obviamente para que lo haga de manera más rápida.

La siguiente es "Services" aquí encontramos todos los servicios instalados en el sistema, viene el nombre del servicio, el desarrollador, el estatus en el que se encuentra que puede ser "Running" (corriendo) ó "Stoped" (detenido), así como la fecha en que fué desactivado, por defecto todos los servicios están seleccionados pero si desabilitamos uno, la próxima vez que ingresemos a esta herramienta nos va a indicar el día en que fué desactivado el servicio, hay que tener cuidado si vamos a desactivar servicios, un ejemplo claro puede ser si desabilitamos el servicio "MySQL", esto puede ocasionar problema al momento en que yo quiera iniciar sesión en el servidor MySQL alojado en mi sistema ya que como el servicio está desabilitado, me va a mandar un error, de igual forma va a ocurrir con otros programas que utilicemos y por error desactivemos el servicio.



La siguiente pestaña es la que nos interesa, "Startup" en la cuál están registrados todos los programas que inician automáticamente al iniciar sesión, en esta imágen como tengo pocos programas por ahora solo me aperecen el office, el antivirus y el gestor de actualizaciones de Acrobat Reader, como yo no necesito los dos últimos, los voy a desactivar para que no estén consumiento recursos, al desactivarlos no hay ningún problema ya que cuando ejecute los programas manualmente no mandarán ningún mensaje de error.



Al momento de desactivarlos, presionamos "Apply" para efectuar los cambios y aparecerá entonces una ventana como la siguiente donde nos indica que como fué modificada la configuración de inicio, el sistema necesita reiniciar para aplicar los cambios, ya sea que selecciones "Restart" o "Exit without restart" para reiniciar en ese momento o reiniciar después.



Y de esta forma es como podemos administrar los programas que se ejecutan en automático al momento de iniciar sesión en windows sin ninguna aplicación externa. Espero les sea de utilidad.

Gracias por visitar el blog.

Tuesday, December 25, 2012

Comandos Básicos en Linux

Pequeño manual dedicado a los comándos básicos en la consola del sistema, lo realizo con el propósito de que los usuarios pierdan el miedo a la terminal ya que es una de las principales causas por las cuáles las personas no entran de lleno en el mundo de linux porque piensan que es demasiado complicado instalar programas, copiar archivos, mover, eliminar, etc.

Como tal solo es un resumen de los más comunes y utilizados, como experiencia propia y recomendación que puedo dar es que traten de realizar todo desde la terminal y no como acostumbramos la mayoría a hacerlo tan automatizado con interfaces gráficas tipo Windows ("tan solo dar click y ya").

Bien, dicho lo anterior es hora de comenzar, en algunos comandos agregué imágenes de mi equipo para que se den una idea.

Hay que recordar que en linux hay distinción de mayúsculas y minúsculas, no como en windows, un ejemplo sencillo en windows al ejecutar el comando:

cd program files ó CD Program Files

da lo mismo, pero en linux no, hay que tenerlo presente.

===================================================
Lista de comandos:
 

ls <==== Muestra todos los archivos y carpetas en el directorio que nos encontremos

ls -l <=== Muestra todos los archivos y carpetas con detalles  como permisos de usuario, grupos, propietario del archivo, la fecha de la última modificación del archivo y el nombre

Ejemplo del comando ls y ls -l


===================================================================

Comando cd <==== para movernos entre carpetas

Ejemplo:

cd /admin/Desktop <==== Estoy indicado que deseo moverme hasta ese Directorio

cd /admin/Music/'House y Trance' <=== Para indicar que deseo moverme a este directorio, pero ¿Por qué agregué comillas simples?
R= Sencillo, debo de agregar comillas simples para indicar que House y Trance son una misma carpeta ya que si no agrego las comillas simples los toma como directorios distintos y va arrojar un error al final.

cd .. <===== Para regresar a un directorio anterior

Ejemplo: me encuentro en la ruta /home/admin/Documentos/Pictures , si deseo regresar a un directorio anterior, en este caso el directorio anterior es Documentos tan solo ejecuto la sintaxis

cd .. y presiono enter, entonces ahora estaré en la ruta /home/admin/Documentos


==================================================================

Comando rm <==== para eliminar archivos 

rmdir <== para eliminar directorios vacíos

rm -r <==== para eliminar carpetas que contienen archivos


Ejemplos:

rm reporte.txt <== estamos indicando que deseamos borrar el archivo reporte.txt

rmdir Consultas <== estamos indicando que deseamos eliminar la carpeta Consultas que está vacía

rm -r Documentos <== estamos indicando que deseamos borrar la carpeta Documentos con todos los archivos que contenga.

Ejemplo: Se va a eliminar el archivo derelict_house-1366x768.jpeg , como es solamente un archivo la sintaxis es la siguiente:

rm derelict_house-1366x768.jpeg

En la pantalla de abajo al presionar enter la consola no devuelve mensaje de error, lo que significa que ejecutamos correctamente el comando.



Cuando se empieza en linux y que no estamos muy acostumbrados a utilizar la terminal, tendemos a cometer ciertos errores como los siguientes.




En esta pantalla se muestra como al intentar eliminar Mirrors la consola nos devuelve un mensaje de error indicándonos que Mirrors no es un archivo, sino una carpeta que aparte contiene archivos, esto se soluciona fácilmente agregando el recursivo, la sintaxis quedaría entonces de la siguiente manera

rm -r Mirrors


Abajo se muestra la sintaxis correcta y se observa que al presionar enter la terminal no devuelve ningún error y para terminar de validar se observa que en el escritorio ya desapareció la carpeta mirrors




Otro error que podemos cometer cuando estamos empezando es al querer eliminar un archivo que contiene espacios en su nombre, anteriormente se mencionó que para que la máquina entienda que un conjunto de palabras son un mismo archivo o directorio se agregan comillas simples.

Ejemplo: quiero eliminar el archivo 'Texto de Prueba'

si lo intento eliminar con la sintaxis

rm Texto de Prueba

Se observa en la imagen de abajo que devuelve varios errores la consola y esto es porque esta tomando cada palabra como si fuera un archivo o carpeta independiente, por obvias razones no lo encuentra.




Para corregir el error solo se agregan comillas simples a 'Texto de Prueba' para que los tome como un mismo archivo, presionamos enter, se muestra en la pantalla que no devolvió ya ningún error y el archivo 'Texto de Prueba' desapareció del escritorio.



Otro error un poco más compicado es cuando tenemos un archivo que queremos eliminar y aparte de contar con espacios en el nombre, también tiene carácteres especiales, si agregamos comillas simples nos va a mandar el mismo error.

Ejemplo: tengo el archivo negrocan - cada vez que te veo (tribe remix).mp3

Al ejecutar:

rm negrocan - cada vez que te veo (tribe remix).mp3

Manda mensaje de error.




Observamos que aparte de tener espacios cuenta con carácteres especiales, en este caso los paréntesis y el guión medio, para poder eliminarlo sin ningún problema agregamos comillas dobles, la sintaxis quedará de la siguiente manera

rm "negrocan - cada vez que te veo (tribe remix).mp3"

En la imágen de abajo se muestra que al ejecutar el comando no devuelve mensaje de error y el archivo desapareció del escritorio.




Con lo entendido hasta ahora viene un ejemplo de una carpeta vacía con espacios en el nombre y carácteres especiales.

Ejemplo: Tengo la carpeta "Configuracion de Red (2)" y la quiero eliminar, entonces la sintaxis será la siguiente:

rmdir "Configuracion de Red (2)"




El ejecutar el comando será eliminada la carpeta "Configuracion de Red (2)" solo si esta se encuentra vacía, si contiene archivos entonces solo se agrega el recursivo y se sustituye rmdir por rm ,quedando de la siguiente manera:

rm -r "Configuracion de Red (2)"

Por último, si deseamos eliminar varios archivos a la vez, tan solo basta con separarlos con un espacio.

Ejemplo: Tengo los archivos 'Config' , 'Archivo1' y 'Texto 3' en el escritorio, si deseo eliminar los tres en un solo comando la sintaxis será la siguiente

rm 'Texto 3' Config Archivo1

En la imagen se observa que separamos solo por un espacio cada archivo y en caso de tener espacios en el nombre o carácteres especiales agregar ya sean comillas simples o dobles para delimitar el nombre completo del archivo.



Lo mismo aplicará para carpetas, si deseamos eliminar más de una en una sola sintaxis.

Ejemplo: Tengo las carpetas vacías 'Enero' 'Febrero' 'Marzo' en el escritorio, si deseo eliminar las tres en una sola línea de igual forma separamos las carpetas por un espacio y en caso de contener carácteres especiales y espacios, ya sea que agreguemos comillas simples o dobles. En este ejemplo como ninguna tiene nombre con espacios o carácteres especiales nos limitamos a solo separarlas con un espacio como en la imagen de abajo y presionamos enter, observamos que la consola no devuelve mensaje de error, lo que significa ejecutamos correctamente la sintaxis y eliminamos tres carpetas en una sola línea de comandos.


rmdir Enero Febrero Marzo





=====================================================

Comando mkdir <== sirve para crear nuevas carpetas

Ejemplo: me encuentro en la ruta /Desktop y quiero crear una carpeta que se llame Documentos para que ahí pueda empezar almacenar archivos, la sintaxis es la siguiente:

mkdir Documentos <== estamos indicando que crearemos la carpeta Documentos en la ruta en la cuál nos encontramos que en este caso es /Desktop


En la pantalla de abajo ejecuto el comando ls para mostrar todos los archivos y carpetas que hay en el escritorio, por el momento no muestra nada ya que no hay archivos o carpetas, posteriormente de crear la carpeta con la sintaxis anterior vuelvo a ejecutar el comando ls y aparecerá la carpeta que acabamos de crear.




También podemos crear otras carpetas aunque no estemos en el directorio, pero tendremos que agregar la ruta completa donde queremos crear la carpeta

Ejemplo: Me encuentro en la ruta /etc/share y deseo crear una carpeta llamada 'Backup' dentro de el directorio de admin, para eso la sintaxis será la siguiente:


mkdir /usr/local/users/admin/Backup

En la pantalla se muestra como ejecutamos el comando y no devuelve mensaje de error, posteriormente me muevo hasta el directorio /usr/local/users/admin y ejecuto el comando ls para enlistar archivos y carpetas, podemos observar que ya aparece una carpeta llamada 'Backup' dentro de admin.



Aplicando lo aprendido hasta ahora, también podemos crear bastantes carpetas con una sola línea de comandos, dependiendo del nombre que se le dé a la carpeta aplicaremos las reglas, ya sea comillas simples o dobles.

Ejemplo: deseo crear las carpetas 'Base de Datos', 'Música (Trance)' y Reportes en el directorio /usr/local/users/admin/Desktop

Hay dos formas de hacerlo, la primera es despalzarte hasta esa ruta y ejecutar

mkdir 'Base de Datos' "Música (Trance)" Reportes

Y la otra forma desde el directorio donde te encuentres (no importa cuál), ejecutar:

mkdir /usr/local/users/admin/Desktop/'Base de Datos' "Música (Trance)" Reportes

En la pantalla se observa que la consola no devuelve error y en el escritorio ya aparecen las tres carpetas que acabamos de crear.




=============================================================

Comando mv <== Tiene dos funciones, una es mover archivos o carpetas de directorio o cambiarles el nombre tanto a carpetas como archivos, dos ejemplos.

Ejemplo 1: Deseo mover la carpeta 'Prueba' que se encuentra en /usr/local/users/admin a el escritorio que se encuentra en /usr/local/users/admin/Desktop, el comando a ejecutar entonces será

mv Prueba /usr/local/users/admin/Desktop

En la imágen se muestra como va la sintaxis, consola no devuelve error y muestra la carpeta Prueba en el escritorio.




Ejemplo 2: ahora esa misma carpeta que se encuentra en el escritorio, deseo cambiarle el nombre a 'Pruebas 2', como el nombre tiene espacios, recuerden ingresar en la sintaxis comillas simples para delimitar el nombre completo del archivo como se muestra en la imágen de abajo. La sintaxis es la siguiente:

mv Prueba 'Pruebas 2'

Ahora observamos que el nombre de la carpeta es 'Pruebas 2'




Ejemplo 3: Ahora deseo mover la carpeta que se encuentra en el escritorio llamada 'Pruebas 2' al directorio /usr/local/users/admin/Videos y aparte cambiarle el nombre a 'Clasicos', entonces el comando será el siguiente:

mv 'Pruebas 2' /usr/local/users/admin/Videos/Clasicos
En la pantalla de abajo se muestra que no devuelve ningún error la consola al momento de realizar el movimiento y cambio de nombre de la carpeta 'Pruebas 2' al directorio /usr/local/users/admin/Videos/ y posteriormente me desplazo hasta ese mismo directorio y ejecuto el comando ls para validar que se movió la carpeta 'Pruebas 2' y al mismo tiempo le cambiamos el nombre a 'Clasicos'.


=============================================================

Comando cp <=== copia archivos a otra ubicación.

Ejemplo:

cp libflash-player.so /lib/firmware/mozilla/plugins

Con este comando estamos indicando que deseamos copiar el archivo libflash-player.so a la ruta /lib/firmware/mozilla/plugins

cp -r <== copia una carpeta completa a otra ubicación

Otro ejemplo: copiar el archivo derelict_house-1366x768.jpeg al escritorio.

cp derelict_house-1366x768.jpeg /usr/local/users/admin/Desktop




Se puede cometer el error de querer copiar una carpeta a otra ubicación con el comando cp, como el ejemplo de abajo. En el que se desea copiar la carpeta 'Mirrors' a la ubicacion /usr/local/users/admin/Desktop


Se observa que la terminal nos devuelve un error, y es por lo descrito anteriormente, este problema se soluciona agregando el recursivo a la sintaxis para que copie todo el contenido de la carpeta en otra ruta. La forma correcta de hacerlo es:

cp -r Mirrors /usr/local/users/admin/Desktop

En la siguiente pantalla la terminal ya no devuelve el mensaje de error y se observa que la carpeta 'Mirrors' ya aparece en el escritorio.




Otro error común, tratar de mover un archivo que en su nombre contiene carácteres especiales sin ingresar comillas dobles en nuestra sintaxis, como se observa en la imagen de abajo.




Para solucionar este problema solo agregamos comilas dobles al nombre del archivo, se observa que la pantalla no devuelve mensaje de error y el archivo de música ya se encuentra en el escritorio.



==============================================================

Comando cal <== muestra el calendario en la terminal.



================================================================

Comando date <== muestra la el día de la semana, mes, día del mes y la hora en la terminal, así como el año.



===================================================================

Comando slocate <== hace una búsqueda de archivos en nuestro sistema dependiendo de las palabras que ingresemos, es importante actualizar la base de datos de nuestro sistema constantemente con el comando

updatedb <== update database, lo que realiza este comando actualiza la cache de la base de datos para realizar las búsquedas de manera más rápida y eficaz.

Es muy útil para buscar archivos de los cuales no tenemos idea de su ubicación.

Ejemplo: Deseo buscar el archivo de configuración del gestor de arranque en mi sistema, se llama "lilo.conf" pero no se en donde se encuentra, para ello realizamos lo siguiente:

updatedb

slocate lilo.conf

En la imagen de abajo se muestra como realiza la búsqueda y nos trae los resultados obtenidos de acuerdo a las palabras que coinciden con la búsqueda
.



====================================================================

Comando history <=== nos muestra el historial de comandos ejecutados en la terminal.


====================================================================

comando df <== muestra los dispositivos montados, la ruta donde están montados, el porcentaje que lleban ocupado, el tamaño disponible, tamaño en bytes.



======================================================================

Comando free <== muestra la memoria RAM disponible, la ocupada y la memoria secundaria SWAP, la vista por defecto es en bytes, aunque se puede cambiar a kilobytes, megabytes y gygabytes con los recursivos.

free -k <== muestra memoria en kilobytes

free -m <== muestra memoria en megabytes

free -g <== muestra memoria en gygabytes

===============================================================

Comando top <=== muestra los procesos activos del sistema, si deseamos ver solo los procesos que está ejecutando un usuario lo podemos cambiar como:

top -u [user]

Ejemplo: deseo ver los procesos que está corriendo el usuario admin, entonces ejecutamos.

top -u admin




==============================================================

Comando cat <=== tiene dos funciones, el de ver archivos que no son de texto y el de concatenar archivos, por el momento solo veremos la opción para ver archivos que no son de texto.

Ejemplo: Deseo ver el archivo shells si obvervan bien en la imágen no es un archivo de texto que pueda ver con el editor nano. Para esto ejecutamos la sintaxis


cat /etc/shells

y podremos ver en terminal el contenido del archivo.




=====================================================================

Comando lynx <== Básicamente es un navegador de internet pero en terminal, un ejemplo muy simple es ejecutar el comando

lynx www.google.com

Entonces en la terminal se verá la página web de google pero en modo texto, aquí si podemos utilizar el mouse en algunos links, pero lo recomendable es navegar con tabulación y flechas de desplazamiento. Agrego una imágen de la página web de google vista desde la terminal. Este comando es utilizado más que nada cuando se está instalando un sistema linux desde la red e ingresamos al navegador en terminal para navegar en la página donde vamos a descargar los paquetes para la instalación por mirrors.




=====================================================================

Comando wget <== wget es un gestor de descargas en terminal.

Ejemplo: deseamos descargar el archivo README-2.11.1 de la página http://ftp.gnu.org/gnu/binutils/README-2.11.1, primero nos desplazamos hacia el directorio donde deseamos que sea guardado, como ejemplo el directorio /usr/local/users/admin/Downloads:

cd /usr/local/users/admin/Downloads

Después solo ejecutamos la sintaxis para proceder a descargar el archivo, quedando de la siguiente manera:

wget http://ftp.gnu.org/gnu/binutils/README-2.11.1

Presionamos enter y comenzará a descargar el archivo.




La otra opción es indicarle al gestor donde deseamos que guarde el archivo, en vez de desplazarnos primero hasta el directorio, se agrega -P (mayúscula).

wget -P <==== Descarga el archivo en la ruta que le indicamos

Ejemplo: deseo descargar el archivo http://ftp.gnu.org/gnu/binutils/README-2.11.1 en el escritorio, pero yo me encuentro en otro directorio distinto, entonces la sintaxis es la siguiente para indicarle que queremos que lo guarde en el escritorio.


wget http://ftp.gnu.org/gnu/binutils/README-2.11.1 -P /usr/local/users/admin/Desktop

y entonces lo abrá guardado en el escritorio y se puede visualizar en la imágen de abajo.



===================================================================

Comando tar <== es un descompresor de archivos

Ejemplo: tengo el archivo binutils-2.8.1.tar.gz y deseo descomprimirlo, se ejecuta el siguiente comando

tar xf binutils-2.8.1.tar.gz

Presionamos enter y la consola no muestra error, lo que significa que ya descomprimió el archivo y por lo tanto ahora se abrá creado una nueva carpeta donde están los archivos que se descomprimieron, en la sintaxis

tar <=== es el descompresor

x <=== significa extract (extraer)

f <=== significa file (archivo que vamos a descomprimir)

y podemos agregar otraz opciones, la más comun des agregar:

v <=== significa verbose (muestra el progreso de descompresión del archivo).











=================================================================

Comando groups <=== muestra los grupos del sistema a los cuales pertenece tu usuario

ejemplo: Deseo saber a que grupos pertenece mi usuario en este caso admin

groups admin

ejemplo 2: deseo saber a que grupos pertenece el usuario root

groups root





================================================================

Por el momento es todo, ojalá sea de su agrado el manual, en cierto modo un poco redundante en algunos términos pero es para que tengamos una idea más clara de como hacer tareas sencillas en la terminal y practicar más, existen muchos comandos que me hicieron falta, es muy extensa la lista, pero por el momento solo me enfoqué a estos que son los más utilizados para empezar aprender a utilizar la terminal.

Espero les sea de ayuda si están aprendiendo Linux.

Gracias por visitar el Blog.