Muchachas y muchachos,
En la humilde opinión del autor, esta distro es la pomada canaria para extender la vida de compus viejitas que de otra forma habría que descartar:
http://lxle.net/
Si la máquina corría XP, puede correr este Life Extender sin problema.
Se trata de un Lubunto con entorno de escritorio LXDE, que lo hace todavía más liviano.
Provecho!
Les agradezco me indiquen si el post les ha sido de utilidad.
Pura Vida!
miércoles, 11 de diciembre de 2013
domingo, 6 de octubre de 2013
Java - Cómo convertir un elemento de un ArrayList a Int
int z;
z = (Integer) ArrayListEjemplo.get( 2);
viernes, 4 de octubre de 2013
BigBlueButton - Plataforma Open Source para enseñanza remota - Clase Virtual
BigBlueButton facilita el proceso de enseñanza virtual. Distribuido bajo licencia GPL.
http://www.bigbluebutton.org
Cómo funciona la vista del moderador (audio en inglés)?
http://www.youtube.com/watch?v=PHTZvbL1NT4&feature=youtu.be
Preguntas frecuentes:
http://code.google.com/p/bigbluebutton/wiki/FAQ#Why_is_this_project_called_BigBlueButton_?
No corre de forma nativa en Windows, pero se puede instalar utilizando una máquina virtual. Ver el FAQ.
Esto podría ser una alternativa a webex.
Más Videos!
http://www.bigbluebutton.org/videos/
Espero les sea de utilidad. Saludos!
http://www.bigbluebutton.org
Cómo funciona la vista del moderador (audio en inglés)?
http://www.youtube.com/watch?v=PHTZvbL1NT4&feature=youtu.be
Preguntas frecuentes:
http://code.google.com/p/bigbluebutton/wiki/FAQ#Why_is_this_project_called_BigBlueButton_?
No corre de forma nativa en Windows, pero se puede instalar utilizando una máquina virtual. Ver el FAQ.
Esto podría ser una alternativa a webex.
Más Videos!
http://www.bigbluebutton.org/videos/
Espero les sea de utilidad. Saludos!
miércoles, 2 de octubre de 2013
Múltiples líneas en un JtextArea - Java
En mi ejemplo, el jTextArea se llama "areaResultados".
Si se utiliza sólo el método setText, TODO el texto del jTextArea cambia con cada asignación, por lo que es común que al intentar utilizar esto para agregar várias líneas sólo se despliegue la última.
Solución: utilizar el método .getText dento del setText, para que no se borren las líneas anteriores a la última y se despliegue todo lo que necesitamos
areaResultados.setText(areaResultados.getText () + " Total = " + resultadoTotal);
Espero les sirva, pura vida!
Si se utiliza sólo el método setText, TODO el texto del jTextArea cambia con cada asignación, por lo que es común que al intentar utilizar esto para agregar várias líneas sólo se despliegue la última.
Solución: utilizar el método .getText dento del setText, para que no se borren las líneas anteriores a la última y se despliegue todo lo que necesitamos
areaResultados.setText(areaResultados.getText () + " Total = " + resultadoTotal);
Espero les sirva, pura vida!
martes, 24 de septiembre de 2013
domingo, 25 de agosto de 2013
Cómo verificar que freeradius está corriendo en GNU/Linux Mint ?
ps -ef | grep freeradius
Al ejecutar el comando anterior, deberían ver alguna línea que contenga el proceso de freeradius.
Al ejecutar el comando anterior, deberían ver alguna línea que contenga el proceso de freeradius.
sábado, 24 de agosto de 2013
FTP server en Linux mint
1. Instalamos vsftpd
sudo apt-get install vsftpd
2. Config de un usuario anónimo
Editar el archivo:
sudo vi /etc/vsftpd.conf
Modificar las siguientes opciones:
sudo apt-get install vsftpd
2. Config de un usuario anónimo
Editar el archivo:
/etc/vsftpd.conf:sudo vi /etc/vsftpd.conf
Modificar las siguientes opciones:
local_enable=YES
write_enable=YES
anonymous_enable=YES
3. Reiniciar el servicio:
sudo /etc/init.d/vsftpd restart
Autenticación para acceso Telnet, Switch Cisco 3500XL con Freeradius en Linux Mint
1. Instalación de freeradius
sudo apt-get install freeradius
2. Nota: Cuando se instala freeradius en Debian o distros deribadas, se crean los usuarios del servidor y los grupos, se crean symlinks en /etc/freeradius/certs para los certificados de servicios SSL de prueba, por último inicializa el daemon de freeradius.
3. Detener el servicio:
4. Crear un usuario de prueba:
Se deben agregar las siguientes líneas al archivo /etc/freeradius/users
# test user, se debe borrar luego de este test
usuarioPrueba Cleartext-Password := "pruebaPass"
5. Se inicializa freeradius en modo debugging
mint@mint ~ $sudo freeradius -X
al final deberían ver algo como esto:
... adding new socket proxy address * port 47410 Listening on authentication address * port 1812 Listening on accounting address * port 1813 Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel Listening on proxy address * port 1814 Ready to process requests.
6. Abrimos una nueva ventana consola y digitamos lo siguiente:
mint@mint ~ $ sudo radtest usuarioPrueba pruebaPass localhost 0 testing123
Se debe obtener algo como lo siguiente:
mint@mint ~ $ sudo radtest usuarioPrueba pruebaPass localhost 0 testing123 Sending Access-Request of id 166 to 127.0.0.1 port 1812 User-Name = "usuarioPrueba" User-Password = "pruebaPass" NAS-IP-Address = 127.0.1.1 NAS-Port = 0 Message-Authenticator = 0x00000000000000000000000000000000
mint@mint ~ $sudo vi /etc/freeradius/clients.conf
9. Configuramos el acceso para el usuario lrodrigo dentro de la config de freradius
sudo vi /etc/freeradius/users
Parte II Configuración en el switch Cisco
1. Configurar un usuario local:
username cisco privilege 15 password cisco
// Esto se hace porque al habilitar la autenticación con radius eventualmente es posible perder acceso al switch
2. Asignar una ip a la interfaz de VLAN 1:
int vlan 1
ip address 192.168.1.4 255.255.255.0
no shut
3. Config de AAA en el switch:
aaa new-model
radius-server host 192.168.1.1 auth-port 1812 acct-port 1813 key secretPass
aaa authentication login default group radius local
line vty 0 4
login authentication default
line con 0
login authentication default
aaa authorization exec default group radius if-authenticated
aaa accounting exec default start-stop group radius
aaa accounting system default start-stop group radius
//cuando escribimos group radius loca, configuramos la autenticación utilizando radius en primera instancia y si fallase utilizamos la base de datos local. Es por esto que anteriormente se configuró un usuario local.
4. Por último se prueba accesar al switch cisco via Telnet des de la laptop que estamos utlizando como cliente.
http://evilrouters.net/2008/11/19/configuring-freeradius-to-support-cisco-aaa-clients/
sudo apt-get install freeradius
2. Nota: Cuando se instala freeradius en Debian o distros deribadas, se crean los usuarios del servidor y los grupos, se crean symlinks en /etc/freeradius/certs para los certificados de servicios SSL de prueba, por último inicializa el daemon de freeradius.
3. Detener el servicio:
/etc/init.d/freeradius stop4. Crear un usuario de prueba:
Se deben agregar las siguientes líneas al archivo /etc/freeradius/users
# test user, se debe borrar luego de este test
usuarioPrueba Cleartext-Password := "pruebaPass"
5. Se inicializa freeradius en modo debugging
mint@mint ~ $sudo freeradius -X
al final deberían ver algo como esto:
... adding new socket proxy address * port 47410 Listening on authentication address * port 1812 Listening on accounting address * port 1813 Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel Listening on proxy address * port 1814 Ready to process requests.
6. Abrimos una nueva ventana consola y digitamos lo siguiente:
mint@mint ~ $ sudo radtest usuarioPrueba pruebaPass localhost 0 testing123
Se debe obtener algo como lo siguiente:
mint@mint ~ $ sudo radtest usuarioPrueba pruebaPass localhost 0 testing123 Sending Access-Request of id 166 to 127.0.0.1 port 1812 User-Name = "usuarioPrueba" User-Password = "pruebaPass" NAS-IP-Address = 127.0.1.1 NAS-Port = 0 Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=166, length=20
Si el test anterior funciona, se sabe que los más importantes métodos de autenticación funcionan: PAP, CHAP, MS-CHAPv1, MS-CHAPv2, PEAP, EAP-TTLS, EAP-GTC, and EAP-MD5.
Descripción del comando anterior:
- sudo: lo utilizamos para ejecutar comandos con privilegios que de otra forma nos serían negados (al menos en la config default de linux mint).
- radtest: comando que ejecuta las pruebas
- usuarioPrueba: el nombre de usuario que configuramos en el punto 4.
- pruebaPass: password que configuramos en el punto 4
- radius-server: hostname del servidor, se configura en clients.conf
- 0: número de puerto nas. Cualquier Integer de 0 hasta 2^31 va a funcionar en este caso.
- testing123: "shared secret" entre el NAS (Network Access Server o el famos Authenticator) y el servidor freeradius. En este caso testing123 es el "shared secret" por defecto para propósitos de prueba. Esto se puede ver en /etc/freeradius/clients.conf en la sección "client localhost".
7. Configurar un cliente (NAS o Authenticator que en este caso es un Switch Cisco 3500):
mint@mint ~ $sudo vi /etc/freeradius/clients.conf
client 192.168.1.4 {
secret = secretPass
shortname = cisco3500
nastype = cisco
}
8. Agregamos un usuario en nuestra máquina corriendo linux mint
sudo useradd lrodrigo
sudo passwd lrodrigo
//Aca se confirma el password "miPasword" del usuario "lrodrigo" q acabamos de crear.
sudo useradd lrodrigo
sudo passwd lrodrigo
//Aca se confirma el password "miPasword" del usuario "lrodrigo" q acabamos de crear.
9. Configuramos el acceso para el usuario lrodrigo dentro de la config de freradius
sudo vi /etc/freeradius/users
#usuario de test que autentia telnet por medio del switch
lrodrigo Auth-Type := System
Service-Type = NAS-Prompt-User,
cisco avpair = "shell:priv-1v1=15"
Reply-Message = "Bienvenido, su autenticacion ha sido exitosa"
# cisco-avpair es un atributo que nos permite asignar el privilegio 15 al usuario cuando se autentica
#esto significa que no va a tener que utilizar el comando "enable" para aumentar el nivel de privilegio
lrodrigo Auth-Type := System
Service-Type = NAS-Prompt-User,
cisco avpair = "shell:priv-1v1=15"
Reply-Message = "Bienvenido, su autenticacion ha sido exitosa"
# cisco-avpair es un atributo que nos permite asignar el privilegio 15 al usuario cuando se autentica
#esto significa que no va a tener que utilizar el comando "enable" para aumentar el nivel de privilegio
En este punto la config del servidor está lista! Falta configurar el NAS (Authenticator) y el Cliente.
La info anterior está basada en el siguiente artículo:
http://www.openlogic.com/wazi/bid/188089/Authenticating-Wi-Fi-Users-with-FreeRADIUS
![]() | |
| Diagrama de red para esta prueba |
Parte II Configuración en el switch Cisco
1. Configurar un usuario local:
username cisco privilege 15 password cisco
// Esto se hace porque al habilitar la autenticación con radius eventualmente es posible perder acceso al switch
2. Asignar una ip a la interfaz de VLAN 1:
int vlan 1
ip address 192.168.1.4 255.255.255.0
no shut
3. Config de AAA en el switch:
aaa new-model
radius-server host 192.168.1.1 auth-port 1812 acct-port 1813 key secretPass
aaa authentication login default group radius local
line vty 0 4
login authentication default
line con 0
login authentication default
aaa authorization exec default group radius if-authenticated
aaa accounting exec default start-stop group radius
aaa accounting system default start-stop group radius
//cuando escribimos group radius loca, configuramos la autenticación utilizando radius en primera instancia y si fallase utilizamos la base de datos local. Es por esto que anteriormente se configuró un usuario local.
4. Por último se prueba accesar al switch cisco via Telnet des de la laptop que estamos utlizando como cliente.
Nota: Para esta segunda parte utilizé la guia de config que se presenta en el siguiente post:
http://evilrouters.net/2008/11/19/configuring-freeradius-to-support-cisco-aaa-clients/
sábado, 20 de julio de 2013
Como habilitar la captura de datos en minicom - GNU/Linux
1. para ejecutar minicom, simplemente digite ¨minicom¨ (sin comillas) en la terminal
2. para iniciar la captura de datos presione:
Ctrl + A para accesar al menú de config
Z para modificar las opciones
L para habilitar la captura de datos
3. puede modificar el nombre del archivo
4. Puede utilizar find en GNU/Linux para verificar donde se guardó el archivo (ver posts previos acerca de find)
2. para iniciar la captura de datos presione:
Ctrl + A para accesar al menú de config
Z para modificar las opciones
L para habilitar la captura de datos
3. puede modificar el nombre del archivo
4. Puede utilizar find en GNU/Linux para verificar donde se guardó el archivo (ver posts previos acerca de find)
Como accesar un switch Cisco via Cable USB-Serial desde Fedora Linux
1. Para accesar vamos a utilizar minicom, si no lo tienes instalado procede con la instalacion (¨yum install minicom¨ en el caso de Fedora)
2. Necesitamos saber con que nombre está reconociendo Linux el cable serial:
[root@localhost ]# dmesg |grep tty
[ 0.000000] console [tty0] enabled
[ 1.213545] tty tty53: hash matches
[ 71.322059] usb 3-1: pl2303 converter now attached to ttyUSB0
[ 72.455437] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 74.168465] usb 4-1: pl2303 converter now attached to ttyUSB0
[ 986.250821] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 989.200373] usb 2-2: pl2303 converter now attached to ttyUSB0
----> Con lo anterior sabemos que lo está reconociendo como ttyUSB0
2. Posteriormente es necesario configura minicom, para esto necesitamos datos que nos brinda el comando ¨find / -name ttyUSB0 - print¨
[root@localhost ]# find / -name ttyUSB0 -print
/sys/bus/usb-serial/devices/ttyUSB0
/sys/bus/usb-serial/drivers/pl2303/ttyUSB0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/ttyUSB0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/ttyUSB0/tty/ttyUSB0
/sys/class/tty/ttyUSB0
/dev/ttyUSB0
3. Configuracion de minicom:
3.1 Ejecute el comando ¨minicom -s¨
3.2 Selecione ¨Configuracion de la puerta serial¨ y presione ENTER
3.3 Modifique los parámetros A,B, con los datos que obtuvimos en el paso 2:
A - Dispositivo Serial : /dev/ttyUSB0 |
| B - Localización del Archivo de Bloqueo : /sys/bus/usb-serial/devices |
| C - Programa de Acceso : |
| D - Programa de Salida : |
| E - Bps/Paridad/Bits : 9600 8N1 |
| F - Control de Flujo por Hardware: No |
| G - Control de Flujo por Software: No
Nota: Los parámetros E y F tambien fueron modificados para cumplir con los requerimientos de consola del switch
4. Luego minicom va a solicitar una IP, como en este caso se trata de una conexión serial, simplemente vamos a digitar enter hasta que nos muestre el prompt del switch:
Switch>
Espero les sirva!
2. Necesitamos saber con que nombre está reconociendo Linux el cable serial:
[root@localhost ]# dmesg |grep tty
[ 0.000000] console [tty0] enabled
[ 1.213545] tty tty53: hash matches
[ 71.322059] usb 3-1: pl2303 converter now attached to ttyUSB0
[ 72.455437] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 74.168465] usb 4-1: pl2303 converter now attached to ttyUSB0
[ 986.250821] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 989.200373] usb 2-2: pl2303 converter now attached to ttyUSB0
----> Con lo anterior sabemos que lo está reconociendo como ttyUSB0
2. Posteriormente es necesario configura minicom, para esto necesitamos datos que nos brinda el comando ¨find / -name ttyUSB0 - print¨
[root@localhost ]# find / -name ttyUSB0 -print
/sys/bus/usb-serial/devices/ttyUSB0
/sys/bus/usb-serial/drivers/pl2303/ttyUSB0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/ttyUSB0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/ttyUSB0/tty/ttyUSB0
/sys/class/tty/ttyUSB0
/dev/ttyUSB0
3. Configuracion de minicom:
3.1 Ejecute el comando ¨minicom -s¨
3.2 Selecione ¨Configuracion de la puerta serial¨ y presione ENTER
3.3 Modifique los parámetros A,B, con los datos que obtuvimos en el paso 2:
A - Dispositivo Serial : /dev/ttyUSB0 |
| B - Localización del Archivo de Bloqueo : /sys/bus/usb-serial/devices |
| C - Programa de Acceso : |
| D - Programa de Salida : |
| E - Bps/Paridad/Bits : 9600 8N1 |
| F - Control de Flujo por Hardware: No |
| G - Control de Flujo por Software: No
Nota: Los parámetros E y F tambien fueron modificados para cumplir con los requerimientos de consola del switch
4. Luego minicom va a solicitar una IP, como en este caso se trata de una conexión serial, simplemente vamos a digitar enter hasta que nos muestre el prompt del switch:
Switch>
Espero les sirva!
jueves, 11 de julio de 2013
Permission Denied al tratar de compilar en CodeBlocks instalado en Windows 7
Al tratar de compilar un programa en Code Blocks instalando Windows 7 se genera un mensaje de error diciendo que la compilación falla por "Permission Denied" ( ld.exe)
El problema se debe a un conflicto con la seguridad de Windows 7.
Solución: Copiar el folder donde se tiene el programa a "Documentos", de esta manera el usuario tiene privilegios y no se generará el error.
Espero les sirva. Saludos!
El problema se debe a un conflicto con la seguridad de Windows 7.
Solución: Copiar el folder donde se tiene el programa a "Documentos", de esta manera el usuario tiene privilegios y no se generará el error.
Espero les sirva. Saludos!
miércoles, 26 de junio de 2013
Software Libre para hacer diagramas de red
Dia es un programa de software libre (distribuido bajo GPL v2) para hacer Diagramas de Red y otros.
Lo he utilizado y es fácil de usar y bastante util.
Funciona con Windows, Mac OS y GNU/Linux.
Lo pueden descargar aca:
http://dia-installer.de/download/index.html
Lo he utilizado y es fácil de usar y bastante util.
Funciona con Windows, Mac OS y GNU/Linux.
Lo pueden descargar aca:
http://dia-installer.de/download/index.html
miércoles, 19 de junio de 2013
Herramienta para calcular md5sum en Windows
Hola,
Esta herramienta es bastante útil para calcular el MD5sum en Windows:
http://www.winmd5.com/
Provecho!
Esta herramienta es bastante útil para calcular el MD5sum en Windows:
http://www.winmd5.com/
Provecho!
viernes, 14 de junio de 2013
Linux Essentials Listo!
Hola gente,
Hoy pasé el exámen de Linux Essentials de LPI.
Desafortunadamente no puedo dar detalles respecto al exámen (tipo de preguntas, notas) porque me denegarían mi certificación.
Si les puedo decir que el manual de linup front que anuncié en un post previo es suficiente para el exámen.
De igual forma, yo también me preparé con el libro de Sybex como lectura complementaria.
Pura vida!
Hoy pasé el exámen de Linux Essentials de LPI.
Desafortunadamente no puedo dar detalles respecto al exámen (tipo de preguntas, notas) porque me denegarían mi certificación.
Si les puedo decir que el manual de linup front que anuncié en un post previo es suficiente para el exámen.
De igual forma, yo también me preparé con el libro de Sybex como lectura complementaria.
Pura vida!
jueves, 13 de junio de 2013
Diferencia entre apropos y whatis en GNU/Linux
Si al igual que yo, están estudiando para obtener la certificación "Linux Essentials" de LPI, estos dos comandos los pueden confundir:
whatis: busca PALABRAS COMPLETAS en la base de datos whatis
apropos: busca STRINGS en la base de datos whatis.
- La base de datos whatis contiene descripciones cortas de los comandos
Ejemplo:
whatis ls
Aca obtengo como resultado ls páginas man que contengan la "plalabra" ls
apropos ls
Normalmente arroja más resultados, aquí, una palabra como "chanels" haria match porque dicha palabra contiene ls.
whatis: busca PALABRAS COMPLETAS en la base de datos whatis
apropos: busca STRINGS en la base de datos whatis.
- La base de datos whatis contiene descripciones cortas de los comandos
Ejemplo:
whatis ls
Aca obtengo como resultado ls páginas man que contengan la "plalabra" ls
apropos ls
Normalmente arroja más resultados, aquí, una palabra como "chanels" haria match porque dicha palabra contiene ls.
viernes, 24 de mayo de 2013
Atajos en el shell de GNU/Linux
La siguiente es una lista de comandos que nos van a ayudar a movernos con propiedad al trabajar en el shell de GNU/Linux:
Para moverse en una línea
- Ctrl + a: Se mueve al final de la línea
- Ctrl + e: Mueve el cursor al final de la línea
- Ctrl + flecha: se mueve a la derecha o izquierda
Para borrar cosas específicas:
- Ctrl + u: Borra desde el punto actual donde se encuentra el cursor hasta el principio de la línea
- Ctrl + k: Borra desde el punto actual del cursor hasta el final de la línea
Para limpiar la pantalla:
- Ctrl + l
Provecho!
Para moverse en una línea
- Ctrl + a: Se mueve al final de la línea
- Ctrl + e: Mueve el cursor al final de la línea
- Ctrl + flecha: se mueve a la derecha o izquierda
Para borrar cosas específicas:
- Ctrl + u: Borra desde el punto actual donde se encuentra el cursor hasta el principio de la línea
- Ctrl + k: Borra desde el punto actual del cursor hasta el final de la línea
Para limpiar la pantalla:
- Ctrl + l
Provecho!
jueves, 23 de mayo de 2013
Uso del editor de texto vim en GNU/Linux. Nociones elementales
- Vim puede ser poco amigable para usuarios novatos.
- Nociones elementales:
1. Vi trabaja en 3 diferentes modos:
- Modo de Comandos: Este es el modo por defecto. Hay diferentes tipos de comandos, por ejemplo:
dd ----> borra una línea y la coloca en el buffer
de ----> borra la siguiente palabra y la coloca en el buffer
db ----> borra la palabra anterior y la coloca en el buffer
a ------> ingresa a modo "Insert"
p ------> pega lo que haya en el buffer en la posición indicada
u ------> deshace el cambio anterior
gg -------> para ir al principio del documento
G --------> para ir al final del documento
:5 --------> para ir a la línea 5
/test ------> busca la palabra test dentro el archivo, si luego de encontrar la palabra test presionamos "n" buscamos la próxima palabra que coincida, si presionamos "N" se devuelve a la palabra anterior
- Modo Insert: Aca es donde podemos escribir y/o borrar palabras. Para ingresar a este modo debes digitar primero "i", "a", u "o". La diferencia entre las primeras dos y "o" es que o agrega una nueva línea y pone el cursor al inicio de la nueva línea.
**Para salir del modo Insert hay que digitar ESC, esto nos devuelve al modo de Comandos.
- Modo Ex: En este modo podemos guardar los archivos o salir de Vi, por ejemplo:
:w ----------> guarda los cambios en el archivo. La "w" corresponde a "Writte"
:q! ----------> salir de Vim sin guardar los cambios
:wq ----------> guardar los cambios y salir
Anotaciones finales
- Si es un usuario nuevo en Linux y tiene una "bronca" tratando de utilizar Vim, le recomiendo que utilice "nano", pués es mucho más amigable.
- La mejor forma de aprender vim es practicando.
Para practicar puede hacer algo como lo siguiente:
1. ir a /opt/installtemp
cd /opt/installtemp
2. Crear un archivo invocando vim
vim nombreDelArchivoDePractica
3. Practique ir al insert mode, escribir, luego volver al modo de comandos con ESC, borrar una palabra, pegarla, borrar una línea. Estas son algunas de las prácticas comunes en vim.
Siempre se puede buscar en google.com por ejemplo "vim cheat sheet" para tener una lista específica de comandos y opciones.
- Nociones elementales:
1. Vi trabaja en 3 diferentes modos:
- Modo de Comandos: Este es el modo por defecto. Hay diferentes tipos de comandos, por ejemplo:
dd ----> borra una línea y la coloca en el buffer
de ----> borra la siguiente palabra y la coloca en el buffer
db ----> borra la palabra anterior y la coloca en el buffer
a ------> ingresa a modo "Insert"
p ------> pega lo que haya en el buffer en la posición indicada
u ------> deshace el cambio anterior
gg -------> para ir al principio del documento
G --------> para ir al final del documento
:5 --------> para ir a la línea 5
/test ------> busca la palabra test dentro el archivo, si luego de encontrar la palabra test presionamos "n" buscamos la próxima palabra que coincida, si presionamos "N" se devuelve a la palabra anterior
- Modo Insert: Aca es donde podemos escribir y/o borrar palabras. Para ingresar a este modo debes digitar primero "i", "a", u "o". La diferencia entre las primeras dos y "o" es que o agrega una nueva línea y pone el cursor al inicio de la nueva línea.
**Para salir del modo Insert hay que digitar ESC, esto nos devuelve al modo de Comandos.
- Modo Ex: En este modo podemos guardar los archivos o salir de Vi, por ejemplo:
:w ----------> guarda los cambios en el archivo. La "w" corresponde a "Writte"
:q! ----------> salir de Vim sin guardar los cambios
:wq ----------> guardar los cambios y salir
Anotaciones finales
- Si es un usuario nuevo en Linux y tiene una "bronca" tratando de utilizar Vim, le recomiendo que utilice "nano", pués es mucho más amigable.
- La mejor forma de aprender vim es practicando.
Para practicar puede hacer algo como lo siguiente:
1. ir a /opt/installtemp
cd /opt/installtemp
2. Crear un archivo invocando vim
vim nombreDelArchivoDePractica
3. Practique ir al insert mode, escribir, luego volver al modo de comandos con ESC, borrar una palabra, pegarla, borrar una línea. Estas son algunas de las prácticas comunes en vim.
Siempre se puede buscar en google.com por ejemplo "vim cheat sheet" para tener una lista específica de comandos y opciones.
viernes, 10 de mayo de 2013
PortQuiz -- Herramienta para probar puertos TCP abiertos hacia afuera en una red
Ejemplo:
http://portquiz.positon.org:123/
El ejemplo anterior accesa a la herramienta (portquiz.position.org) utilizando el puerto 123 que es usado por el protocolo NTP. Si la prueba funciona, significa que mis "requests" de NTP pueden salir sin problemas al internet.
http://portquiz.positon.org:123/
El ejemplo anterior accesa a la herramienta (portquiz.position.org) utilizando el puerto 123 que es usado por el protocolo NTP. Si la prueba funciona, significa que mis "requests" de NTP pueden salir sin problemas al internet.
domingo, 28 de abril de 2013
Error al llamar un método desde otro método de la misma clase C++ - expected unqualified-id before '.' token|
Esta bronca me tuvo ocupado un par de días
Estoy usando Codeblocks.
Al tratar de llamar un método desde otro método en una misma clase y tengo el siguiente error:
error: expected unqualified-id before '.' token|
Estaba teniendo el error dentro de un switch:
switch (caso){
case 0: { Configuration.setCategory ("Switching"); }
El error se resuelve colocando :: en lugar de . en el código del case, por ejemplo:
switch (caso){
case 0: { Configuration::setCategory ("Switching"); }
En cuanto averigue porqué debe ser así les actualizo!
Estoy usando Codeblocks.
Al tratar de llamar un método desde otro método en una misma clase y tengo el siguiente error:
error: expected unqualified-id before '.' token|
Estaba teniendo el error dentro de un switch:
switch (caso){
case 0: { Configuration.setCategory ("Switching"); }
El error se resuelve colocando :: en lugar de . en el código del case, por ejemplo:
switch (caso){
case 0: { Configuration::setCategory ("Switching"); }
En cuanto averigue porqué debe ser así les actualizo!
jueves, 25 de abril de 2013
Como hacer un método get para un arreglo char en C++
Usando apuntadores!
Ej.
//metodo get
char *getArregloComandos () {
return *arregloComandos; // el parámetro arregloComandos fue definido anteriormente
}
viernes, 29 de marzo de 2013
Bash Scripts - Como hacer para determinar el tamano de un archivo y asignar el valor a una variable.
Se utiliza el comando stat para obtener el tamano del archivo:
stat -c%s nombreDelArchivo
Ejemplo:
#!/bin/bash
NUM1=$(stat -c%s testScript.sh)
echo "$NUM1"
El script anterior asiagna el tamano del archivo "testScript.sh" a la variable NUM1 y luego muestra el resultado en pantalla:
user@linuxComputer ~/Archive/$ ./testScript.sh
59
stat -c%s nombreDelArchivo
Ejemplo:
#!/bin/bash
NUM1=$(stat -c%s testScript.sh)
echo "$NUM1"
El script anterior asiagna el tamano del archivo "testScript.sh" a la variable NUM1 y luego muestra el resultado en pantalla:
user@linuxComputer ~/Archive/$ ./testScript.sh
59
sábado, 16 de marzo de 2013
Comando para verificar el nivel de carga en la batería de una laptop
Al usar Fedora 16 es común tener problemas debido a que no se muestra el icono de carga de la batería.
Este comando nos muestra el porcentaje de carga:
[usuario@localhost ~]$ acpi -b
Battery 1:, 80%
Espero les sea de útil.
domingo, 17 de febrero de 2013
Sistema de Seguridad en Linux - Instalación de "motion" en Xubuntu GNU/Linux
Motion es un software para monitoreo de cámaras. Se utiliza en sistemas de seguridad. Básicamente genera una imagen de un escenario y si esa imagen cambia (cuando pasa una persona por ejemplo) motion toma una foto y la archiva.
NOTA: Puede tomar varias fotos por segundo
1. Antes de comenzar, y sobre todo si esta es una nueva instalación de xubunto, es importante actualizar los programas con el siguiente comando:
apt-get update
A mi me pasó, que al tratar de instalar motion sin haber actualizado (apt-get install motion) me daba el siguiente error:
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-mising?
2. Una vez hecho el apt-get update, es posible instalar motion con el siguiente comando:
apt-get install motion
3. Inicializar motion con el comando "motion" (sin comillas) o "sudo motion", en caso de que no estén utilizando el usuario "root".
4. Si ya tienes una cámara conectada a la computadora puedes probar que motion funciona abriendo un web browser y digitando lo siguiente:
localhost:8081
5. En la ventana de la terminal donde inicializaste motion verás lo siguiente:
[1] File of type X saved to: /tmp/motion/01-YYYYMM FFHHMMSS-0X.jpg
donde X representa un num de secuencia
YYYY = año,MM = mes, FF = fecha, HH = Hora, MM = minutos, SS = Segundos.
6. Configurar motion para que se inicie automáticamente al iniciar xubuntu:
a. Inicio / Settings Manager / Session and Startup
b. Seleccionar la pestaña que dice: "Aplication Autostart"
7. Que hacer con las fotos una vez que fueron tomadas?
- Una solución práctica, pero que puede consumir mucho espacio es sincronizar el directorio donde se guardan las fotos con dropbox.
Para hacer esto deben seguir estos pasos:
7.1 Instalar Dropbox
7.2 Modificar el archivo de configuración de motion, para que las fotos se guarden en el folder de dropbox
- El archivo de configuración de motion (motion.conf) se guarda por defecto en:
/etc/motion/
- Editar el parámetro "target_dir" para que apunte a "/usr/share/doc/dropbox" en lugar de "/tmp/motion".
Esto se puede hacer con nano o vi.
En mi caso, por defecto "motion" guardó las fotos en el siguiente directorio:
/tmp/motion
- Si se tienen conocimientos de programación en bash, es posible enviar los archivos via correo, cada vez que se tome una foto.
- Una tercera opción sería configurar motion, para que utilizando un cliente ftp, envíe las fotos a un servidor FTP cada vez que se generen.
Password del usuario "root" xubuntu
Para poder utilizar el usuario root en xubuntu es necesario configurar el password primero:
1. Ira a Inicio / Accesorios / Terminal
2. Digitar: sudo passwd
3. Digitar el password de usuario root y confirmarlo.
4. Una vez hecho esto es posible hacer "sudo root"
OTRA ALTERNATIVA PARA TENER PRIVILEGIOS DEL USUARIO ROOT
1. Ejecutar el siguiente comando:
sudo su
2. Se ingresa el password del usuario actual
Nota:
passwd es un comando utilizado para cambiar el password de un usuario, por ejemplo, si yo soy el usuario test1, yo puedo utilizar passwd para cambiar mi password. Sólo utilizando el usuario root yo puedo cambiar el password de cualquier usuario utilizando el nombre de usuario como parámetro, ejemplo "passwd test1". Bajo condiciones normales, Linux no permite a un usuario normal hacer "sudo passwd", porque esto pone en riesgo la seguridad de todo el sistema. Este post toma en cuenta una instalación inicial de xubuntu.
1. Ira a Inicio / Accesorios / Terminal
2. Digitar: sudo passwd
3. Digitar el password de usuario root y confirmarlo.
4. Una vez hecho esto es posible hacer "sudo root"
OTRA ALTERNATIVA PARA TENER PRIVILEGIOS DEL USUARIO ROOT
1. Ejecutar el siguiente comando:
sudo su
2. Se ingresa el password del usuario actual
Nota:
passwd es un comando utilizado para cambiar el password de un usuario, por ejemplo, si yo soy el usuario test1, yo puedo utilizar passwd para cambiar mi password. Sólo utilizando el usuario root yo puedo cambiar el password de cualquier usuario utilizando el nombre de usuario como parámetro, ejemplo "passwd test1". Bajo condiciones normales, Linux no permite a un usuario normal hacer "sudo passwd", porque esto pone en riesgo la seguridad de todo el sistema. Este post toma en cuenta una instalación inicial de xubuntu.
miércoles, 13 de febrero de 2013
Interfaz en línea para practicar comandos de GNU/Linux
Interfaz para practicar algunos comandos de GNU/Linux:
http://simpleshell.com/
Super útil, no permite practicar todos los comandos, pero si ayuda bastante.
Sólo hagan click en el botón de "Start" para iniciar una sesión de 15 minutos.
jueves, 31 de enero de 2013
Uso del progama tar - Linux
tar viene de "tape archive" porque se usaba originalmente con cintas magnéticas.
Para que sirve:
- tar me permite archivar documentos.
Entiéndase archivar como el proceso de consolidar varios archivos en uno solo.
En linux las labores de archivar y comprimir generalmente se manejan por separado. Así las cosas, "tar" nos permite archivar y gzip nos permite comprimir.
Nota: Aunque la función principal de tar es archivar, también es posible comprimir archivos utilizando la opción "z" que utiliza gzip para comprimir el archivo que estamos archivando
Opciones más importantes del programa tar:
- c : crea un nuevo archivo, en lugar de sustituir el actual
- f: archivo : crea un nuevo archivo (o lee un archivo existente de) donde vamos a guardar los archivos almacenados. // Nota, esto no lo tengo del todo claro... puede ser que necesite corregirse.
- v : verbose. Muestra lo que tar está haciendo al momento de ejecutarse
- z: comprime o descomprime un archivo usando gzip
- x : para extraer (descomprimir) archivos.
Ejemplo de uso 1:
tar -cvfz miArchivo.tar /var/log/messages*
El ejemplo anterior crea un archivo llamado "miArchivo.tar" donde incluyen todos los documentos que empiecen con el nombre "messages" dendro del directorio "/var/log". Adicionalmente el archivo tar será comprimido utilizando gzip debido a que utilizamos la opción "z"
Ejemplo de uso 2:
Una vez que tenemos el archivo comprimido, podemos utilizar el siguiente comando para extraer los archivos:
tar -xvfz miArchivo.tar // nótese que se utiliza "x" en lugar de "c" porque en este caso vamos a extraer el archivo en lugar de crearlo
Para que sirve:
- tar me permite archivar documentos.
Entiéndase archivar como el proceso de consolidar varios archivos en uno solo.
En linux las labores de archivar y comprimir generalmente se manejan por separado. Así las cosas, "tar" nos permite archivar y gzip nos permite comprimir.
Nota: Aunque la función principal de tar es archivar, también es posible comprimir archivos utilizando la opción "z" que utiliza gzip para comprimir el archivo que estamos archivando
Opciones más importantes del programa tar:
- c : crea un nuevo archivo, en lugar de sustituir el actual
- f: archivo : crea un nuevo archivo (o lee un archivo existente de) donde vamos a guardar los archivos almacenados. // Nota, esto no lo tengo del todo claro... puede ser que necesite corregirse.
- v : verbose. Muestra lo que tar está haciendo al momento de ejecutarse
- z: comprime o descomprime un archivo usando gzip
- x : para extraer (descomprimir) archivos.
Ejemplo de uso 1:
tar -cvfz miArchivo.tar /var/log/messages*
El ejemplo anterior crea un archivo llamado "miArchivo.tar" donde incluyen todos los documentos que empiecen con el nombre "messages" dendro del directorio "/var/log". Adicionalmente el archivo tar será comprimido utilizando gzip debido a que utilizamos la opción "z"
Ejemplo de uso 2:
Una vez que tenemos el archivo comprimido, podemos utilizar el siguiente comando para extraer los archivos:
tar -xvfz miArchivo.tar // nótese que se utiliza "x" en lugar de "c" porque en este caso vamos a extraer el archivo en lugar de crearlo
lunes, 7 de enero de 2013
Uso del comando mv en GNU / Linux
A veces tiende a confundirse el uso de este comando porque tiene dos funciones:
1. Cambiar el nombre de un archivo
2. Mover un archivo de un directorio a otro.
El comando recibe dos parámetros: el archivo a modificar o mover y el nuevo nombre o archivo de destino.
Ejemplo del uso 1
En este caso se cambia el nombre del archivo test.txt y se sustituye con prueba.txt
mv test.txt prueba.txt
Ejemplo del uso 2
El siguiente comando se mueve el archivo test.txt del directorio actual a ¨directorio1¨.
mv test.txt /directorio1
Hay varias opciones que pueden utilizarse con el comando. Esas se explicarán luego en una ampliación de esta entrada.
1. Cambiar el nombre de un archivo
2. Mover un archivo de un directorio a otro.
El comando recibe dos parámetros: el archivo a modificar o mover y el nuevo nombre o archivo de destino.
Ejemplo del uso 1
En este caso se cambia el nombre del archivo test.txt y se sustituye con prueba.txt
mv test.txt prueba.txt
Ejemplo del uso 2
El siguiente comando se mueve el archivo test.txt del directorio actual a ¨directorio1¨.
mv test.txt /directorio1
Hay varias opciones que pueden utilizarse con el comando. Esas se explicarán luego en una ampliación de esta entrada.
domingo, 6 de enero de 2013
Linux para principiantes (como Yo!)
Desde hace algún tiempo andaba buscando un buen material introductorio para GNU/Linux.
Resulta que LPI creó una certificación llamada ¨Linux Essentials¨:
https://www.lpi.org/linux-certifications/introductory-programs/linux-essentials
Una empresa alemana (LInupFront) hizo un documento que cubre todo el material de la certificación y que se puede bajar sin costo del sitio de ellos:
shop-download.linupfront.de/cc/lxes-en-manual-cc.pdf
El documento está en Inglés. La certificación todavía no está disponible para América Latina, pero es muy probable que esté para el primer trimestre de este año. El documento me parece una muy buena lectura
Otra cosa. En este sitio hay un curso introductorio gratis en video:
/http://www.udemy.com/free-technology-guild/
sábado, 5 de enero de 2013
Como dividir un archivo ¨.pcap¨ grande en varios más pequeños - GNU/Linux
Escenario: Tengo una captura de paquetes de 1.1 Gb.
Para partirlo utilizo editcap en Fedora 17.
[root@localhost opt]# ls // antes
libreoffice3.5 log02.pcap
[root@localhost opt]# editcap -i 900 log02.pcap log02.pcap
// Nota, el "-i" indica el número de segundos que voy a incluir en cada archivo más pequeño, en este caso 900.
// El segundo log02.pcap indica el nombre que tendrán los archivos nuevos, en este caso editcap agregará un número de secuencia a cada uno.
[root@localhost opt]# ls // después!
libreoffice3.5
log02_00000_20121031091449.
log02_00003_20121031095949.
log02_00001_20121031092949.
log02.pcap
Nótese que se crean 4 archivos con número de secuencia del 0 al 3.
Espero les sea de utilidad.
viernes, 4 de enero de 2013
Como copio varios archivos (con nombre similar) al mismo tiempo de un directorio a otro en Linux?
Para copiar se usa el comando cp
Ej. cp archivo_origen directorio_de_destino
cp doc1.txt /home
El comando anterior copia el archivo doc1.txt que está en el directorio donde se encuentra el usuario hasta el directorio /home.
Ahora, para copiar varios archivos a la vez podemos usar el patrón de búsqueda "*" si los archivos tienen un nombre similar.
Ej. Si tenemos logs que vienen ordenados por fechas:
log20130103.txt
log20130104.txt
Utilizamos el patrón de búsqueda para decir "quiero que se copie todo lo que empiece con log201301"
Ejemplo del comando completo para copiar varios archivos:
cp log201301* /home/copia_logs
El comando anterior copia todos los archivos que comiencen con log201301 al directorio "copia_logs" dentro de /home.
Comentarios/Sugerencias/Quejas bienvenidos!
Para copiar se usa el comando cp
Ej. cp archivo_origen directorio_de_destino
cp doc1.txt /home
El comando anterior copia el archivo doc1.txt que está en el directorio donde se encuentra el usuario hasta el directorio /home.
Ahora, para copiar varios archivos a la vez podemos usar el patrón de búsqueda "*" si los archivos tienen un nombre similar.
Ej. Si tenemos logs que vienen ordenados por fechas:
log20130103.txt
log20130104.txt
Utilizamos el patrón de búsqueda para decir "quiero que se copie todo lo que empiece con log201301"
Ejemplo del comando completo para copiar varios archivos:
cp log201301* /home/copia_logs
El comando anterior copia todos los archivos que comiencen con log201301 al directorio "copia_logs" dentro de /home.
Comentarios/Sugerencias/Quejas bienvenidos!
Suscribirse a:
Comentarios (Atom)




