Imagen

Volvemos

volvemos

Anuncios

DATE (comando)

Hola! Buenas a tod@s!: Hoy vamos a ver un comando que a simple vista parece no tener demasiado importancia, el comando ” date ” además de proporcionar la fecha y la hora (el nombre del día también) también maneja el ” UTC “, esto es el ” Tiempo Universal Coordinado “o sea el estándar mundial de la hora dónde este regula el tiempo y los relojes.
Téngase en cuenta que la hora del sistema solo la puede cambiar el administrador ( sudo/root ).
El comando ” date ” estuvo presente desde las primeras versiones de UNIX y sistemas tipo UNIX.

usos_horarios

El fichero de configuración de la ” hora local ” lo tenemos en /etc/localtime

SINTAXIS: $:  date [opción]…[+formato]
date –universal [MMDDhhmm[[SS]AA][.ss]]

Algunas opciones del comando que son útiles para los usuarios comunes son:

Con la opción ” -r ” podremos ver la última modificación del fichero

# date -r [fichero de referencia]

Time Zones: En tzselect tenemos la opción de ver la hora en diferentes partes del mundo tan solo tipeando el siguiente comando y sus opciones.

# tzselect

Podremos ver la UTC ( la hora  universal )con la siguiente sintaxis:

# date -u

También podremos cambiar la hora especificando el formato ( superusuario requerido :)):

# date -s [formato]

Con la opción ” -d ” agregando ” una string ” tendremos por consola algunas opciones interesantes:

# date -d “yesterday”
# date -d “tomorrow”
# date -d “4 weeks”
# date -d “4 weeks ago”
# date -d “6 months 1 week”
# date -d “1 year 1 month 2 weeks 1 day 3 hour 4 minutes 6 seconds”
# date -d “August 1” (Mi cumpleaños ;))
# date -d “+/-12 days/hours/minutes”

Les dejo un pequeño script para cambiar la hora fácil y sin complicaciones.
Link descarga Script: date_change_easy.sh

Md5: dd412a33d97dc41a1904f7e7a5914af9
Algunos Formatos para la sintaxis # date +[opciones]

Mostrar el día de forma abreviado o completo (Lun o Lunes), respectivamente: %a  |  %A
Mostrar el mes abreviado o completo: %b  |  %B
Día de la semana (1-7, 1 = Lunes):  %u
Día de la semana (0-6, 0 = Lunes): %w
Día del mes: %d
Día del año: %j
Mes del año: %m
Mostrar fecha en formato %m/%d/%y : %D
Mostrar hora completa en formato 12h: %r
Hora en formato 24h: %H
Hora en formato 12h: %I
Minutos: %M
Acompañar la hora de AM o PM: %p
Igual que el anterior pero en minúsculas: %P
Representar la fecha de forma local (01/27/2015): %x
Representar la hora de forma local (22:31:43): %X
Representar la fecha y hora local (Martes Feb 3 12:25:44 2014): %c

Fuente:

Linuxtotal
Wikipedia
Linux Manpages
Wikipedia (02):
Crédito por la foto de usos horarios: «Standard World Time Zones» de TimeZonesBoy – Trabajo propio. Disponible bajo la licencia CC BY-SA 4.0 vía Wikimedia Commons
4sysadmins

PYTHON [01]

python_logo

Hola! Buenas a tod@s!: Hoy vamos a dar comienzo a un taller nuevo: PYTHON.
En ésta primera entrada voy a explicar brevemente que es Python, como instalarlo con un simple Script en GNU/Linux con un respectivo IDE ( integrated development environment ) y algunos manuales para leer acerca del tema.
El IDE que uso es NINJA-IDE (También estará como opción para instalar en el script).
NOTA: Obviamente el script no está escrito en Python porque así como Uds. estoy empezando a aprender a usar éste lenguaje de programación. 😉

¿Qué es Python?

Según “Python para todos”, Python es un lenguaje de programación creado por Guido Van Rossum a principios de los ’90. Cuenta con una sintaxis muy limpia que favorece un código legible.
Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertemente tipado, multiplataforma y también orientado a objetos.

¿ Qué quiere decir interpretado o de script ?

Es aquel que se ejecuta utilizando un programa intermedio llamado intérprete (en nuestro caso usaremos NINJA-IDE o yo por lo menos :)) en lugar de compilar el código a lenguaje máquina se usa el lenguaje compilado para ejecutar directamente.
La ventaja es que su ejecución es más rápida y su contra es que no son tan flexibles y portables.
Hay maneras de generar el bytecode como en otros lenguajes por medio de un seudo-código de máquina.

¿ Y el tipado dinámico ?

La característica de tipado dinámico se refiere a que no es necesario declarar el tipo de dato que va a tener una determinada variable, sino que se determinará en tiempo de ejecución, ésta puede cambiar si se le asigna un valor de otro tipo.

¿ Fuertemente tipado ?

Quiere decir que por ejemplo tenemos una variable de tipo string no podemos tratarla como un número ya que generaría errores.

¿ Multiplataforma ?

Podremos correr nuestro programa en los principales SO (Sistemas Operativos) sin grandes cambios.

¿ Orientado a objetos ?

Python es un lenguaje que todo el mundo debería conocer.  Su sintaxis simple, clara y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad de librerías disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una aplicación en Python sea sencillo, muy rápido y, lo que es más importante, divertido (¿Divertido? el autor de éste libro si sabe como vender Python :)).

Link descarga script: 01_python_operadores_aritmeticos.py

MD5: d9f9d57a6f9d48598d5724561fd64a8d

Link descarga libro: python_para_principiantes.pdf

MD5: 1bc7b1975e0aa08142507251541ec04c

Link descarga script: instalación: tools_python_install.sh

MD5: 0024fc30323d980ca0252b7e48370741

Espero le haya gustado y saben que sus comentarios o correcciones ayudaran al blog y a su autor a seguir creciendo. Saludos 😉

“Rescatando al soldado DT-102-G2 Kingston”

Hola a todxs!: Hace un tiempo experimentando (jugando :)) con un pendrive Kingston DT-102-G2 con los comandos de GNU/Linux ” dd “ ó ” fdisk “, si mal no recuerdo, dejé muerto a éste pendrive.
Leyendo un blog que sigo nebul4ck, hablaban sobre particionar dispositivos y me dispuse a tratar de darle vida a éste soldado que tanto me ha acompañado y sufrido formateadas y pruebas varias.Consultando por ahí me plantearon varias alternativas:

  1. DMESG: Lo primero que probé es ver si mi GNU/Linux estaba al tanto de la existencia del pendrive y por suerte si.

kingston_dt_102_G2

2. FDISK: La siguiente recomendación era ver si ” fdisk -l “  lo reconocía para poder darle formato nuevo y para luego poder montarlo, pero nada… 😦

fdisk_captura_03

3. PARTED: La tercer opción era darle caña con ” parted  -l “ pero seguimos igual que con el anterior… 😦

parted_04

4. DISKPART: Ya con esto he traicionado mis principios linuxeros y he intentado con la consola de Windows que por cierto sigo pensando que es muy débil. Ah! nada solucionado aún 😦

Supongo que a alguien haya tenido éste problema o sepa solucionarlo se sume a la causa por lo pronto el soldado sigue en la enfermería agonizando.

REDES [01] “Modelo OSI”

image3063Hola buenas a todxs!: Hoy empiezo con nueva sección dedicada a “Redes” como es costumbre del blog vamos a empezar desde los conceptos más básicos. Empecemos!

MODELO DE REFERENCIA OSI

El modelo de referencia OSI (Open System Interconnections Basic Reference Model) es una descripción abstracta basada en capas para las comunicaciones y el diseño de protocolos de redes

(Ref. Libro “Redes GNU/Linux”).

En un breve resumen el modelo OSI se crea para estandarizar ó normalizar los protocolos y las comunicaciones a través de internet.

OSI está dividido en capas (más precisamente siete) gracias a esto los procesos pueden funcionar de manera independiente. Su estructura modular facilita la comunicación entre las capas sin depender exclusivamente como ya dijimos anteriormente para facilitar las normalizaciones y procesos.

Pasamos a describir capa por capa:

CAPA 7 (Aplicación): Esta capa provee al usuario los medios para acceder a la información en la red. Sin darnos cuenta es la que usa desde el usuario novato hasta el experto a través de ciertas aplicaciones y protocolos, algunas de ellas son:

– SMTP (Simple Mail Transfer Protocol) = Clientes de Correo electrónico.

IMAP (Internet Message Access Protocol) = Clientes de Correo electrónico.

FTP (File Transfer Protocol) = Clientes o servidores de transferencia de archivos.

HTTP (Hypertext Transfer Protocol) = Navegadores Web

SSH (Secure Shell) = Clientes o servidores de conexión segura a través de la consola

IRC (Internet Relay Chat) = Chat seguro

DNS (Domain Name System) = El que transforma IP en nombre (ya lo explicaremos)

Básicamente a esta capa la manejan las aplicaciones así que no hay mucho en que ahondar.

CAPA 6 (Presentación): La capa seis del modelo OSI funciona a modo de traductor, osea modifica las entradas y salidas de datos para que las capas de aplicación puedan tener una comunicación estándar. En esta capa hay procedimientos importantes como el encriptado, compresión y codificación.

CAPA 5 (Sesión): Esta capa es la que se encarga de los diálogos entre dos computadoras, por ejemplo el login para una sesión remota. Establece, administra y finaliza las conexiones.

También es parte del llamado “cierre exitoso”, una característica de TCP.

La capa de sesion puede sufrir de colisiones por el exceso de “mini-conversaciones” entre computadoras pero cuenta con dos alternativas: Half duplex y Full duplex.

CAPA 4 (Transporte): Luego de que datos hayan pasado por las capas anteriores, la capa de transporte libera a estos de la preocupación y le asegura una transferencia confiable de la información.

Diferentes tipos de datos maneja ésta capa, uno es en TCP (Transfer Control Protocol) y el otro en UDP (User Data Protocol) estos protocolos se usan dependiendo el servicio que esté corriendo y sus necesidades.

CAPA 3 (Red): La capa 3 es una de las más interesantes, acá aparecen en escena los routers por ende vamos a tener que adentrarnos en conceptos de ruteo y como funciona el protocolo IP (Internet Protocol).

En este proceso se suma un header más a los datos que es el de IP y también van encapsulada la información a los routers para saber donde tiene que ir dirigida.

CAPA 2 (Enlace de Datos): Provee los medios funcionales y procedurales para transferir información entre entidades de red y para detectar y posiblemente corregir errores que pudiesen ocurrir en la capa física. Es la encargada de ordenar las piezas de información de la capa física a piezas de información lógica, conocidas como frames o marcos.

Estándares que están en ésta capa por ejemplo es el IEEE 802, dentro del cual están: Ethernet, Token Ring, Wi-Fi, Bluethooth, etc. En estos casos es posible dividir esta capa en dos distintas:

1- Capa de control de acceso al medio (–MAC Media Access Control–).

2- Capa de enlace de control lógico (–LLCLogical Link Control–).

CAPA 1 (Capa Física): Como su nombre lo indica es la que define las características físicas de la conexión de una computadora a una red de datos. Este conjunto de especificaciones físicas describe el medio de transferencia de información:

Con respecto al medio físico:

Medios guiados: cable coaxial, cable de par trenzado, fibra óptica y otros tipos de cables.

Medios no guiados: radio, infrarrojos, microondas, láser y otras redes inalámbricas.

Forma de la transferencia de la información:

– Codificación de señal

– Niveles de tensión/intensidad de corriente eléctrica

– Modulación de la señal, tasa binaria, etc.

Se debe tomar éste artículo a modo de referencia muy por encima de la totalidad que éste abarca, ya que cada capa de la pila es muy extensa, quien necesite saber más debe ahondar en cada una de ellas.

Cadenas de texto y filtros [ 1 ]

Una cosa importante en GNU/Linux es conocer las herramientas que nos propone shell,la importancia de sus funciones y el tiempo que esto nos puede ahorrar no tiene desperdicio, ahora otra cosa y no menos importante es el entender y darse cuenta que también se pueden integrar otras funciones del SO para poder aún sacarle otro vaso de jugo al limón, por ejemplo: ya nos aprendimos todas las funciones de Shell Scripting pero no estamos familiarizados con las cadenas de texto, filtros, monitorización del sistema y el hardware que tenemos. Entonces les propongo empezar con las cadenas de texto y filtros para sumar recursos y más adelante seguiremos con otras cuestiones para seguir sacando filo a nuestra navaja suiza. Algunas veces no podemos topar con situaciones donde no nos cuesta hacer un script para saber que IP tenemos en nuestra red local, podemos lanzar un comando <$ ip -a> ó <ifconfig -a> y sin problemas vamos a encontrar lo que buscabamos, la cuestión es que en la salida estándar de éstos comandos no tira mucha información que quizás en ese momento no es de nuestra importancia, en este caso metemos la mano en la galera y recordamos que podemos usar las “cadenas de texto” y los “filtros” para que lleven a cabo esta tarea. Este es un ejemplo de los muchos que podemos tener a diario, para cerrar esta idea que les comento es que teniendo ó sabiendo cuanta herramienta GNU/Linux nos ponga a disposición en nuestra distro favorita nos facilitará mucho las cosas, es muy distinto conocer de antemano la solución al problema que forzosamente aprender durante la marcha.

Teniendo como referencia lo que se explica en www.ibm.com para la certificación profesional en ambientes UNIX y LINUX.

Interconectando con “ | ” [Pipe]

Las salidas estándar de un comando pueden ser la entrada para otro, solo eso nos importa ahora.

Ejemplo: Necesitamos una aplicación para leer ó editar hojas de calculo, sabemos que Libre Office es una de las más conocidas de software libre. El tema está en que dicha aplicación es muy completa y quizás no nos interese instalar todo el paquete completo. Entonces si buscamos libreoffice en nuestra terminal la salida estándar de esto nos llenaría la pantalla, para eso usamos nuestro buen amigo “pipe” y filtramos lo que nos interesa.

# apt-cache search libreoffice | grep calc

libreoffice-calc – office productivity suite – spreadsheet

Lo que hicimos acá es que apt nos muestre que tiene en el caché de los repositorios acerca de libreoffice y con pipe aprovechamos la salida del comando anterior para que nos filtre con “grep” lo que tiene sobre hojas de cálculo.

Redireccionando con “ > ”

Una de las funciones más comunes de éste “signo mayor” es que muchas veces no queremos ver el resultado en nuestra pantalla y por ejemplo lo queremos guardar en un fichero para luego revisarlo o tenerlo como fichero log de algo que estemos monitorizando por ejemplo.

Ejemplo: Queremos saber que dispositivos tenemos conectados en nuestra pc vía USB, entonces mediante el comando dmesg (éste nos muestra variada info de nuestro kernel) y sumando lo antes aprendido con “pipe” y agregando “>” para guardarlo en un fichero nos quedaría de esta manera.

# dmesg | grep -i usb > /home/usuario/info_dmesg_usb.txt

Paso a paso:

* Dmesg no brinda la info.

* “Pipe” nos interconecta para la entrada del siguiente comando.

* Grep es el filtro que utilizaremos.

* Usb es la info que nos interesa.

* “ > ” nos enviará lo que solicitamos a un fichero, en este caso /home/usuario/info_dmesg_usb.txt

Bonus: Otras funciones interesantes de “ > ” es agregando uno más “ >> ” nos agregará al final de un fichero ya creado lo que redirijamos.

También lo podemos mandar al mismisimo agujero negro del espacio ¿Saben como se hace? Muy facil… > /dev/null.

También podremos hacer una salida de errores y porque no usarlo al revés “ < ” pero por el momento lo dejo picando para que sigan buscando.

CD [comando]

CD: (Change Directory) Se usa para cambiar o movernos por directorios.

Sintaxis: cd [directorio | ~ | ./ | ../ | – ]

Opciones: -L (Usar la estructura física del directorio).
-P (Fuerza enlaces simbólicos).

Ejemplos:

1- Tecleando solo “cd” nos lleva al directorio inicial del usuario “home.

$ pwd (¿dónde estoy?)
/etc/apt
$ cd (Enter)
/home/$USER/
2- Ahora a “cd” le agregamos “..” esto nos ayudara volver un directorio.

$ pwd (¿dónde estoy?)
/etc/apt/
$ cd .. (Enter)
$ pwd
/etc

3- Si de ahorrar tipeos se trata “cd” + “~” nos llevara a nuestra home.

$ pwd (¿dónde estoy?)
/etc/apt/
$ cd ~
/home/$USER

4- También podemos dar un destino especifico “cd” + “directorio_donde_quiero_ir“.

cd /home/$USER/Descargas
$ pwd
/home/$USER/Descargas

5- Si queremos regresar al último directorio donde estuvimos “cd” + “

$ pwd
/home/$USER/Descargas
$ cd –
$ pwd
/etc/apt/