Publicado el

Comandos de MySQL por Consola

comandos-de-mysql-por-consola

Es normal que utilicemos MySQL a través de páginas PHP y para administrar la base de datos utilicemos un programa como PhpMyAdmin, pero a veces no nos queda otro remedio que acceder a la base de datos a través de la línea de comandos.

MySQL tiene un programa que se llama con el mismo nombre de la base de datos (mysql) que sirve para gestionar la base datos por línea de comandos.

Conectar con el servidor MySQL

Lo primero que tendremos que hacer es conectar con el sistema gestor de MySQL. Para ello, desde la línea de comandos invocamos a MySQL. Simplemente tenemos que escribir el comando “mysql” e indicarle unas opciones de conexión.

mysql

Con esa sentencia se conecta uno con la base de datos con los parámetros por defecto. Es decir, al servidor local, con usuario y password igual a cadenas vacías.

Lo más normal es que tengamos que indicar algún otro dato para conectar con la base de datos, como el usuario, la clave o la dirección del servidor con el que queremos conectar. La sintaxis sería la siguiente:

mysql -h nombre_servidor -u nombre_usuario -p

Si deseamos conectarnos a la base de datos en local y con nombre de usuario root tendríamos que escribir:

mysql -h localhost -u root -p

Lo primero que nos preguntará será el password para el usuario root. Una vez introducida la clave, ya estaremos dentro de la línea de comandos de MySQL. Con ello el prompt cambiará a algo como esto:

mysql>

Podríamos haber indicado la contraseña directamente en la línea de comandos para iniciar la sesión con MySQL, pero esto se desaconseja por razones de seguridad. De todos modos, la sintaxis hubiera sido:

mysql -h localhost -u root -pmi_clave

Nos fijamos que entre -h y el nombre del host hay un espacio en blanco, igual que entre -u y el nombre de usuario. Sin embargo, entre -p y la clave no debemos poner ningún espacio.

Dentro de la consola de MySQL

Una vez dentro, tendremos a nuestra disposición todas las sentencias de MySQL para el trabajo con la base de datos y el lenguaje SQL.

Lo más normal es que primero se tenga que conectar con una base de datos en concreto, de entre todas las que puede tener creadas en su servidor MySQL. Eso se hace con el comando use, seguido del nombre de la base de datos que desea conectar.

mysql> use mibasedatos;

Esto nos conectaría con la base de datos llamada “mibasedatos”.

Atención: Hay que fijarse que todas las sentencias dentro de la línea de comandos de MySQL acaban en “;”. Si no colocamos el punto y coma, lo más seguro es que no se ejecute el comando y nos vuelva a salir el prompt para que sigamos introduciendo el comando. Si lo que queríamos era ejecutar la sentencia que habíamos escrito antes, con simplemente entrar el “;” será suficiente. Es decir, no debemos escribir de nuevo la sentencia entera, sólo el “;” y volver a apretar “enter”.

Si queremos ver una lista de las bases de datos alojadas en nuestro servidor podemos escribir el comando show databases. Así:

mysql>show databases;

Con esto nos mostraría una lista de las bases de datos de nuestro servidor. Algo como esto:

mysql> show databases-> ;

 


5 rows in set (0.02 sec)

Si queremos crear una base de datos, podremos hacerlo con el comando “create database” seguido del nombre de la nueva base de datos.

mysql> create database miprueba;

Eso nos creará una base de datos que se llama “miprueba”. Como habíamos comentado, si queremos luego usar esa base de datos escribiríamos:

mysql> use miprueba;

Lógicamente, esta base de datos recién creada estará vacía, pero si estuviéramos usando una base de datos ya creada y queremos ver las tablas que tiene escribiríamos el comando “show tables”.

mysql> show tables;

Si no hay tablas, nos dirá algo como “Empty set”, pero si tenemos varias tablas dadas de alta en la base de datos que estamos usando, nos saldrá una lista de ellas:

mysql> show tables;


2 rows in set (0.00 sec)

Ahora, si deseamos obtener información sobre una tabla, para saber qué campos tiene y de qué tipo, podremos utilizar el comando describe seguido del nombre de la tabla.

 

mysql> describe administrador;

 


 4 rows in set (0.11 sec)

 

Otras Sentencias SQL:

Desde la consola de MySQL podemos indicar por línea de comandos todo tipo de sentencias en lenguaje SQL, como selecciones, inserciones, actualizaciones, creación de tablas, etc. El mecanismo es el que se puede deducir. Simplemente colocamos la sentencia a ejecutar seguida del punto y coma. Veamos una serie de sentencias seguidas y el resultado de ejecutarlas:

mysql> create table prueba (id_prueba int);
 Query OK, 0 rows affected (0.08 sec)
 
 mysql> insert into prueba (id_prueba) values (1);
 Query OK, 1 row affected (0.00 sec)
 
 mysql> insert into prueba (id_prueba) values (2);
 Query OK, 1 row affected (0.00 sec)
 
 mysql> insert into prueba (id_prueba) values (3);
 Query OK, 1 row affected (0.00 sec)
 
 mysql> select * from prueba;

 


3 rows in set (0.00 sec)

Para salir de la línea de comandos de MySQL:

Una vez hemos terminado de trabajar con MySQL, si queremos cerrar la conexión con el servidor, simplemente escribimos “quit” desde el prompt de MySQL:

mysql> quit

Para generar un archivo .sql desde una base de datos se debe ejecutar:

mysqldump -h servidor -u usuario -p base_de_datos > archivo_salida.sql

Para ejecutar un archivo .sql en una base de datos:

mysql -h servidor -u usuario -p base_de_datos < archivo_salida.sql
Publicado el

Comandos para Pruebas de Red

comandos-para-pruebas-de-red

Para poder ejecutar estos comandos debemos usar YUM para instalar netkit-ping, traceroute, dnsutils, ipchains (para el kernel 2.2), iptables (para el kernel 2.4 ) y el paquete net-tools.

Comando

Parámetros

Descripción 

ping

dominio.com

Verificar la conexión a Internet

traceroute

dominio.com

Rastrear paquetes IP

ifconfig

 

Verificar la configuración del servidor (host)

route

-n

Verificar la configuración de la ruta

dig

[@dns-server.com] host.dom [{a|mx|any}] |less

Verificar registros host.dom DNS [@ dns-server.com] para un registro [{mx|any}]

ichains

-L -n |less

Verificar filtrado de paquetes (kernel 2.2)

iptables

-L -n |less

Verificar filtrado de paquetes (kernel 2.4)

netstat

-a

Mostrar todos los puertos abiertos

netstat

-l –inet

Mostrar los puertos en escucha

netstat

-ln –tcp

Mostrar puertos tcp en escucha (numérico)

Publicado el

Tareas de Ejecución Cronometrada (cron y at)

tareas-de-ejecución-cronometrada-cron-y-at

El servicio crontab es el encargado de manejar las tareas de ejecución cronometrada (CRON). Es posible usar cron y at para planificar tareas en Linux.

Para crear o editar el archivo crontab para configurar los eventos planificados, ejecute el comando:

crontab -e

Ejemplo de un archivo crontab:

 # utilice /bin/sh para ejecutar los comandos sin importar lo que dice el /etc/passwd
 SHELL=/bin/sh
 # envíe un mensaje al "hostmaster" sin importar a quien pertenece el crontab
 MAILTO=hostmaster@1ahost.com
 # Minuto Hora Día_del_mes Mes Día_de_la_semana comando
 # Ejecutar todos los días a las 00:05
 5 0 * * * $HOME/bin/tarea.diaria >> $HOME/tmp/salida 2>&1
 # Ejecutar a las 14:15 el primer día de cada mes -- enviar salida al hostmaster
 15 14 1 * * $HOME/bin/mensual
 # Ejecutar a las 22:00 todos los días hábiles (1-5), recordar algo a Administración.
 # % para nueva línea, el último % para cc:
 0 22 * * 1-5 mail -s "Son las 10 de la noche" Admin %Admin: % %¿Ya se facturo todo? %. % %
 23 */2 1 2 * echo "Ejecutar el 1 de febrero a los 23 minutos después de 0am, 2am, 4am ..."
 5 4 * * sun echo "Ejecutar todos los domingos a las 04:05"
 # Ejecutar a las 03:40 el primer lunes de cada mes
 40 3 1-7 * * [ "$(date + %a)" == "Mon" ] && comando -args

A su vez, se puede ejecutar el comando at para planificar una tarea una sola vez:

$ echo "command -args"| at 3:40 Monday
Publicado el

Ejemplos de Comandos Combinados con Pipes

ejemplos-de-comandos-combinados-con-pipes-1

Encontrar todos los archivos en /usr excluyendo los directorios indicados (/usr/var, /usr/tmp, /usr/local):

find /usr | egrep -v "/usr/var|/usr/tmp|/usr/local"


Convertir todos los caracteres del archivo ejemplo.txt de minúsculas a mayúsculas:

cat ejemplo.txt | tr "a-z" "A-Z" > mayusculas.txt


Ver todos los procesos del Apache que están en ejecución:

ps -aux | grep -e "httpd"


Obtener los últimos cuatro accesos de la IP 192.168.2.107 al Apache:

cat /var/log/httpd/access_log-20141207 | grep -e "192.168.2.107" | tail -n4


Ver todas las conexiones tcp correspondientes a mysql:

netstat -tap | grep mysql


Ver todas las conexiones al servidor en el puerto 22 (SSH):

netstat -ln | grep 22


Numerar en forma inversa las líneas del archivo ejemplo.txt y mostrarlo en pantalla:

cat -n ejemplo.txt | sort -r


Ver las primeras 100 líneas del archivo log de los correos (maillog) con paginación:

head -100 /var/log/maillog | more


Mostrar los archivos más pesados en tamaño de bytes en el directorio de logs y controlar la vista con less:

cd /var/log
ls -lhS | less


Listar todos los archivos abiertos por los procesos, que se relacionen con el directori usr y controlar la lista con less:

lsof | grep usr | less


Obtener los 5 comandos más usados por SSH:

history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5
Publicado el

Manejo de Permisos con chmod

manejo-de-permisos-con-chmod

Comando

Parámetros

Descripción

chmod

permisos archivos/directorio

Cambia los permisos de archivos/directorios

Los permisos se dividen en tres partes:

  • Permisos del propietario
  • Permisos del grupo
  • Permisos de todos

Al ejecutar el comando ls -l se mostrará algo como;

drwxrwxrwx

Donde la primera letra indica si es directorio (d) o no (-), los tres caracteres siguientes pertenecen a los permisos de propietario para lectura (r)escritura (w) y ejecución (x); las tres letras siguientes pertenecen al grupo y las tres últimas letras a los permisos de todos.

Forma de asignar los permisos por números:

lectura (4), escritura (2) y ejecución (1).

Ejemplo:

chmod 755 archivo

Asigna permisos de (7) lectura, escritura y ejecución al propietario del archivo, y de (5) lectura y ejecución al grupo y (5) de lectura y ejecución a todos.

Publicado el

Comandos de Administración de Sesiones

comandos-de-administración-de-sesiones

Comando

Parámetros

Descripción

su

 

Convierte al usuario en root después de introducir la clave de acceso

/usr/sbin/adduser

usuario

Registra y crea una cuenta de usuario

/usr/sbin/userdel

usuario

Borra la cuenta del usuario

passwd

 

Cambia la clave de acceso para el usuario actual.

passwd

usuario

Cambia la clave de acceso para el usuario si somos root

/usr/sbin/groupadd

grupo

Crea un nuevo grupo

/usr/sbin/groupdel

grupo

Borra un grupo

chown

usuario:grupo archivo

Cambia el propietario de un archivo ej chown root.root /usr/local/src/pepe

shutdown

 

Desconecta el sistema o lo cambia de estado

Publicado el

Comandos de Información del Sistema

comandos-de-información-del-sistema

Comando

Parámetros

Descripción

uname

-a

Información sobre el sistema operativo de la máquina.

hostname

 

Devuelve el nombre de la máquina.

free

-tm

Cantidad de memoria disponible y usada.

df

-h

Muestra los dispositivos montados en la máquina.

ps

 

Muestra los procesos del actual usuario, que se estan ejecutando.

ps

axu

Procesos que se estan ejecutando en la máquina.

du

-bh / | more

Espacio ocupado por cada subdirectorio, comenzando en el directorio raiz

finger

usuario

Información sobre el usuario.

who

 

Información sobre los usuarios conectados al sistema.

id

usuario

Información sobre UID, GID y GROUPS del usuario

last

 

Información sobre los ultimos usuarios que han usado el sistema

set

| more

Información sobre el entorno de usuario actual

ping

IP (dominio)

Comprueba si hay contacto con la máquina por IP/dominio

/sbin/route

 

Tabla de enrutamiento de nuestro sistema.

/sbin/ifconfig

 

Información sobre los distintos dispositivos de red

netstat

 

Información sobre la conexión de red

Publicado el

Comandos de Fechas Horas y Procesos

comandos-de-fechas-horas-y-procesos

Comando

Parámetros

Descripción

Ejemplo

at

[-lr] hora [fecha]

Ejecuta un comando mas tarde

at 6pm Friday miscript

cal

[[mes] año]

Muestra un calendario del mes/año

cal 1 2025

date

[mmddhhmm] [+form]

Muestra la hora y la fecha

date

echo

cadena

Escribe mensaje en la salida estándar

echo “Hola mundo”

finger

usuario

Información de usuario en red

finger pepe@dominio.com

id

Número

id de un usuario

id pepe

kill

[-señal] PID

Matar un proceso

kill -9 1234

man

comando

Ayuda del comando especificado

man gcc, man -k printer

passwd

 

Cambia la contraseña

passwd

ps

[axiu]

Informa sobre procesos en ejecución

ps ux, ps -ef

who

 

Información de usuarios conectados

who

rwho

 

Información de usuarios conectados

rwho

who

-a

Información detallada usuarios conectados

who -a

last

 

Histórico de usuarios que se han conectado

last

Publicado el

Comandos de Manipulación de Archivos y Directorios

comandos-de-manipulación-de-archivos-y-directorios

Comando

Parámetros

Descripción

Ejemplo

cat

arch1 […archN]

Concatena y muestra un archivo

cat /home/miarchivo 

cd

[dir]

Cambia de directorio

cd /tmp

chmod

permisos arch

Cambia los permisos de un archivo

chmod +x miarchivo

chown

usuario:grupo arch

Cambia el dueño de un archivo

chown nobody miarchivo

touch

dir/arch

Crea un archivo vacío

touch /usr/local/pepe.txt

cp

arch1…archN dir

Copia archivos

cp miarchivo miarchivo.viejo

diff

[-e]arch1 arch2

Encuentra diferencias entre archivos

diff pepe.c nuevopepe.c

du

[-sabr] arch

Reporta el tamaño del directorio

du -s /home/

file

arch

Muestra el tipo de un archivo

file miarchivo

find

dir test acción

Encuentra archivos

find . -name “.bak” -print

grep

[-cilnv] expr archivos

Busca patrones en archivos

grep pepe /home/miarchi

head

-count arch

Muestra el inicio de un archivo

head miarchivo.c

mkdir

dir

Crea un directorio.

mkdir /home/midir/temp

mv

arch1 …archN dir

Mueve un archivo(s) a un directorio

mv a.out /home/midir

mv

arch1 arch2

Renombra un archivo

mv pepe.c juan.c

less

arch(s)

Visualiza página a página un archivo

less muy_largo.c

more

arch(s)

Visualiza página a página un archivo

more muy_largo.c

ln

[-s] arch acceso

Crea un acceso directo a un archivo

ln -s /home/juan/miarch .

ls

-l -a

Lista el contenido del directorio

ls -l /usr/bin

pwd

 

Muestra la ruta del directorio actual

pwd

rm

arch

Borra un archivo

rm miarchivo.c

rm

-r dir

Borra todo un directorio

rm -rf /home/pepe/prog_dir

rmdir

dir

Borra un directorio vacío

rmdir /home/pepe/prog_dir

tail

-count arch

Muestra el final de un archivo

tail miarchivo.c

nano

arch

Edita un archivo

nano miarchivo.c

locate

archivo

Encontrar un archivo o directorio

locate pepe.c

updatedb

 

Actualiza la BD para busquedas con locate

updatedb

clear

 

Borra el contenido de la pantalla

clear

gzip

archivo

Comprime un archivo

gzip pepe

gzip

-9 archivo

Descomprime un archivo

gzip -9 pepe.zip

tar

archivo

Empaqueta un archivo tar

tar pepe

tar

cvf arch1.tar arch2.tar

Empaqueta archivos tar

tar cvf pepe.tar juan.tar

tar

xvf archivo.tar

Desempaqueta archivo tar

tar xvf pepe.tar

tar

czf destino.tar.gz origen.ext

Empaqueta un archivo tar.gz sin info de salida

 

tar

czvf destino.tar.gz dir_origen/

Empaqueta un archivo tar.gz mostrando el directorio

 

tar

xzf archivo.tar.gz

Desempaqueta un archivo tar.gz sin info de salida

 

tar

xzvf archivo.tar.gz

Desempaqueta un archivo tar.gz mostrando info de salida