martes, 31 de diciembre de 2013

REUNIÓN DEL LUGRo, VIERNES 03, 21 HORAS

Este viernes 03 de Enero a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

jueves, 19 de diciembre de 2013

No a la censura de twitter propuesta en Entre Rios

ESPECIAL (por Beatriz Busaniche* – Fundación Vía Libre).- El diputado provincial de Entre Ríos, Rubén Almará, presentó un proyecto de ley por el cual pide al Poder Ejecutivo Provincial establecer “políticas de regulación y restricción de los medios electrónicos de internet y las redes sociales, limitando todos los comentarios, expresiones y/o información de carácter delictivo, que lesionen la paz ciudadana y que promuevan el odio y la intolerancia” en casos de conmoción interior. El legislador insta al estado provincial para que solicite a la Nación “intervenir y emprender las acciones necesarias para solicitar a las empresas proveedoras de servicios el bloqueo de las redes sociales, en toda la provincia de Entre Ríos, para restablecer el orden público ante los delitos que atenten contra el orden constitucional y la vida democrática”. Es evidente que lo que atenta contra el orden constitucional y la vida democrática es este proyecto que amenaza la libertad de expresión en Internet y el derecho de acceso a la información. La legislación vigente en Argentina, en particular la Ley 26.032 establece que “la búsqueda, recepción y difusión de información e ideas por medio del servicio de Internet se considera comprendida dentro de la garantía constitucional que ampara la libertad de expresión”. El legislador que propone el bloqueo y control de Internet parece desconocer o prefiere ignorar los altos estándares que la legislación Argentina tiene en materia de libertad de expresión, al proponer una regulación que va a contramano de los principios democráticos. “El bloqueo obligatorio de sitios web, direcciones IP, puertos, protocolos de red o ciertos tipos de usos (como las redes sociales) constituye una medida extrema – análoga a la prohibición de un periódico o una emisora de radio o televisión – que sólo podría estar justificada conforme a estándares internacionales, por ejemplo, cuando sea necesaria para proteger a menores del abuso sexual” expresa la declaración sobre libertad de expresión en Internet de las relatorías de Libertad de Expresión de Naciones Unidas, Comisión Interamericana de Derechos Humanos de la Organización de Estados Americanos, la Organización para la Seguridad y la Cooperación en Europa y la Comisión Africana de Derechos Humanos y de los Pueblos. La medida propuesta por el Diputado Almará va contra los estándares internacionales de Derechos Humanos y contra el marco legal vigente en Argentina, es represiva y totalmente inútil. Además, tendría la consecuencia brutal de aislar a la ciudadanía entrerriana en un momento de crisis e incertidumbre, contribuyendo así a la angustia y la zozobra de las personas que el estado debería proteger. Estudios académicos sobre la aplicación de medidas similares en otros entornos y momentos históricos, como el corte de Internet en Egipto durante la presidencia de Hosni Mubarak el 28 de enero de 2011, demuestran que el efecto de este tipo de bloqueos de comunicaciones es exactamente contrario al deseado por el gobierno que la implementa. Navid Hassanpour, investigador de la Universidad de Yale, publicó documentación empírica que demuestra que el bloqueo de las redes sociales y las comunicaciones en Internet contribuye a descentralizar, acentuar y promover las protestas y revueltas sociales. Contrariamente a lo que el sentido común o los prejuicios podrían indicar, las redes sociales no son las causantes ni contribuyen de manera sustantiva a la movilización pública o a la protesta callejera. En esta misma lógica, el bloqueo de las redes tiene el efecto exactamente contrario: genera más movilizaciones, desconcentradas y dispersas, toda vez que deja en clara evidencia la intensión represiva de un gobierno que dispone medidas de esta naturaleza. La iniciativa del Diputado Almará contaría con el apoyo del Ministro de Cultura y Comunicaciones de la Provincia de Entre Ríos, Pedro Báez, quien justificó la iniciativa diciendo que “cualquiera que utilice las redes sociales pudo ver que en estos días fueron usadas libremente en todo el país para instigar al vandalismo, para organizar la comisión de delitos y para generar pánico en la ciudadanía. No podemos quedarnos de brazos cruzados y permitir que esto se repita”. Una sumatoria de prejuicios y desconocimiento se conjugan en estas declaraciones que muestran una elocuente vocación represiva de las libertades civiles. Atacar al mensajero, aislar a la ciudadanía entrerriana en momentos de crisis y tomar medidas contra la libertad de expresión están lejos de ser la forma más apropiada de evitar que los saqueos se repitan. 


 (*) Licenciada en Comunicación Social, Magister en Propiedad Intelectual y Candidata al Doctorado en Ciencias Sociales en FLACSO Argentina. 
Es docente de la Universidad de Buenos Aires y Secretaria de la Fundación Vía Libre. www.vialibre.org.ar http://www.vialibre.org.ar/2013/12/18/estado-de-sitio-para-internet/

martes, 17 de diciembre de 2013

REUNIÓN DEL LUGRo, VIERNES 20, 21 HORAS


Este viernes 20 de Diciembre a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

miércoles, 4 de diciembre de 2013

Arnet usa secretamente el protocolo TR-069 para controlar las conexiones de 6M en adelante

Yo tengo desde hace tiempo un modem CISCO x1000 que usa una versión propia de un open-wrt (lo de open no lo pude verificar) muy similar al que usan los Pirelli DRG A112... desde que me ofrecieron por el mismo precio cambiar de la conexión de 3M a 6M, hace dos meses se me corta la conexión de manera aleatoria casi 3 veces por dia... 

Primero intento enviar mi queja por el webchat de arnet, el tipo dice que la carga del par está bien, y cuando le digo que me de el número de reclamo, me pregunta sobre el tipo de modem, cuando se lo digo .... el guacho me corta en seco, ese no es un modem de la empresa no podemos dar curso a su reclamo... WHAT? 

Leyendo los foros me sugieren que diga que tengo un modem cisco 677, de vuelta hago el reclamo por teléfono ,,, acepta el reclamo, me da el número y me dice que me van a mandar un tecnico para ver la instalacióny me va a dar en comodato un Pirelli DRG A112,, pues el 677 estaba GASTADO eh? ... me hice el sota y dije que si,, que venga,,, viendo en los foros me entero que arnet habilita el protocolo tr-069 para configuración remota de sus modem y no lo dice en ningún lado!!!... esto no solo hace eso sino también puede espiar tus datos personales... 

Ahora que tengo el número de reclamo si el técnico se pone pesado,, además de rechazar esa porquería de modem... haré la denuncia a la CNC...

lunes, 2 de diciembre de 2013

Estadística Noviembre 2013




     9 pptp
      6 Como gestionar/administrar un Mail Server a lo ISP!
      5 RAID 1
      4 Consulta: Problemas con teclado en netbook + Manjaro
      3 visor de archivos XPS para linux
      3 No actualizaciones para UTUTO
      2 Se vienen las versiones 4.0 del kernel...
      2 Consulta: Archlinux error PGP
      2 badBIOS: El virus del futuro



REUNIÓN DEL LUGRo, VIERNES 06, 21 HORAS

Este viernes 06 de Diciembre a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

miércoles, 20 de noviembre de 2013

Estadísticas Octubre 2013




      6 Partes de PC y PCs en funcionamiento a donar
      5 Sobre TOR y HTTPS
      5 editor de base de datos DBF para migrar a soft libre
      5 Duda con licencia linux
      4 Consulta sobre repositorio de Ubuntu
      4 Consulta sobre bash
      3 Quitar una de las dos instalaciones de Linux
      2 SPAM
      2 Reportaje al fundador del proyecto Mate
      2 palienwarey

martes, 19 de noviembre de 2013

REUNIÓN DEL LUGRo, VIERNES 22, 21 HORAS

Este viernes 22 de Noviembre a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba). Están todos invitados.

Pta: Lamentablemente sigo sin recibir los correos del Lugro, el BOFH de la lista hace caso omiso a mis reclamos

lunes, 4 de noviembre de 2013

REUNIÓN DEL LUGRo, VIERNES 08, 21 HORAS

Este viernes 08 de Noviembre a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

martes, 29 de octubre de 2013

Estadísticas Septiembre 2013



      11 Presentación de Huayra Linux
      7 problema wifi netbook CDR
      6 Algún manual de LUA?
      4 Streaming SFD
      3 Reservorio de palabras para traducciones
      2 Tuneles http...
      2 Openlibra
      2 El asunto este del UEFI
      2 Dos charlas del SFD de ayer
      2 Consulta sobre bash
      2 Colaboradores para el Software Freedom Day 2013


martes, 8 de octubre de 2013

REUNIÓN DEL LUGRo, VIERNES 11, 21 HORAS

Este viernes 11 de Octubre a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

lunes, 23 de septiembre de 2013

Estadísticas Agosto 2013

      8 Instalar GNU/Linux en una notebook HP con Secure Boot
      4 Nginx contra Apache2
      3 SFD Dia del Software Libre Streaming en VIVO
      3 Open Office 3.4 de Apache
      2 !! RECORDATORIO=3A REUNIóN DEL LUGRo,
      2 Mensaje de prueba




miércoles, 11 de septiembre de 2013

REUNIÓN DEL LUGRo, VIERNES 13, 21 HORAS

Este viernes 13 de Setiembre a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

martes, 27 de agosto de 2013

REUNIÓN DEL LUGRo, VIERNES 30, 21 HORAS

Este viernes 30 de Agosto a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

Día de la Libertad del Software

El Grupo de Usuarios de Software Libre de Rosario (LUGRo) anuncia la celebración del "Día de la Libertad del Software" el sábado 21 de Septiembre de 2013.

Fecha: Sábado 21 de Septiembre de 2013
Horario: de 14 a 19Hs
Lugar: Complejo Astronómico Municipal (Al lado del Planetario)

El "Día de la Libertad del Software" se celebra todos los años y es el evento global más grande de difusión de las ideas éticas, sociales y culturales que hacen posible al Software Libre. Junto con cientos de ciudades participando en todo el mundo, nuestro propósito es comunicar al público la importancia del uso de tecnologías libres.

El evento contará con demostraciones, festival de instalación y charlas sobre Software Libre.

Pronto más novedades.
http://www.lugro.org.ar/sfd2013

lunes, 12 de agosto de 2013

REUNIÓN DEL LUGRo, VIERNES 16, 21 HORAS

Este viernes 16 de Agosto a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

martes, 6 de agosto de 2013

Estadísticas Julio 2013



     17 Problema con sitio
      9 Se acaba la fiesta Open Source
      9 Llamado a ponencias de la Conferencia Internacional de
      8 Control de brillo desde las teclas en Notebookk
      4 Cafecito
      3 HBO pide a Google retirar link de VLC
      3 Consulta sobre tecla Fn en netbook


martes, 30 de julio de 2013

REUNIÓN DEL LUGRo, VIERNES 02, 21 HORAS

Este viernes 02 de Agosto a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el entre piso del bar "811" de Francia 811 (Francia y Córdoba).

Están todos invitados.

jueves, 4 de julio de 2013

Estadísticas Junio 2013



      9 Software Libre en la Municipalidad de Pergamino
      5 Extraer un archivo comprimido.
      5 Bootear notebook nueva desde cd
      3 Liberando una Mac viejita
      2 Video de la visita del Librebus a Rosario
      2 Quiero saber de un software libre para hacer diagramas
      2 El fin de la privacidad, ahora vox populi



martes, 2 de julio de 2013

REUNIÓN DEL LUGRo, VIERNES 05, 21 HORAS

Este viernes 05 de Julio a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Mateo's (Córdoba y Caferata).

Están todos invitados.

miércoles, 19 de junio de 2013

Estadística, Mayo 2013


     19 Linux moderno para una Asus 701 4G
     12 Problema para conectar por ssh
      9 Video FLISOL! Zentyal Parte 1
      7 Consulta sobre terminal TERRA
      6 Consulta rsync + curlftpfs
      5 OFF-TOPIC
      3 ubuntu 12.10 se perdio menu unty
      3 Slides charla python.
      3 Nodo de LUGRo-Mesh para el PyDay
      3 Elegir distribución



martes, 18 de junio de 2013

Reunión Viernes 21 de Junio. Cambio de Bar...

Este viernes 21 de Junio a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Mateo's (Córdoba y Caferata).

Están todos invitados.

lunes, 3 de junio de 2013

REUNIÓN DEL LUGRo, VIERNES 07, 21 HORAS


Este viernes 07 de Junio a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Industria Argentina (Caferata entre Urquiza y Tucuman).

Están todos invitados.

Pta: se va a definir cambiar de bar... ya que Industria Argentina se ha tornado un bar de karaoke, donde van la jovatas del PAMI a levantar jovenes apuestos... :)

jueves, 9 de mayo de 2013

El intérprete de órdenes VI


En esta entrega seguiremos con las sentencias de control del BASH, la siguiente es:

for [condición] ; do {instrucciones}; done.

Esta instrucción de control es mas similar al "for" de python o perl, que su homónimo en C/C++...

Por ejemplo:

#!/bin/bash

for VAR in `cat list.txt`; do
echo "$VAR was found in list.txt"
done

exit 0


en este caso el contenido de la variable interna del shell ($VAR) toma los valores que da la ejecución del comando "cat list.txt", aqui las comas invertidas `...` le indica al shell que debe ejecutar de manera prioritaria los comandos encerrados por estas. "exit 0" devuelve al shell padre el valor que corresponde ejecución normal, es decir que no murió el proceso por errores. Para saber esto basta con hacer "echo $?"

otro ejemplo:

hcaste@azul:~$ for i in `ls`; do echo $i; done

cd-como.txt
cdrdao.txt
Clave
Sync
de
Firefox.html

uno podría pensar que es análogo al comando "ls" de UNIX, pero no, basta comparar con la salida de ls..

cd-como.txt                  
cdrdao.txt                    
Clave Sync de Firefox.html  

El motivo se debe a que se toma como separadores de campos los espacios en blanco.

Otra sentencia de control es: while [condición]; do {instrucciones}; done
Esta es una sentencia de control por anticipación. Un ejemplo es:

#!/bin/bash

count="0"
max="10"

while [ $count != $max ]; do count=`expr $count + 1`
        echo "Ya llegue a : $count"
done

exit 0

en cambio esta sentencia de control es por pos-condición until [condición]; do {instrucciones}; done

y por último la sentencia de control "case" cuyo formato es...

case [condición]
   patron-1) lista de comandos separados por ";;"
   patron-2) idem..
esac

por ejemplo:

#!/bin/bash

case "$1" in
    --ayuda)
    echo "Uso: $0 [--ayuda] [--puerto ] [--fecha]"
    ;;
    --puerto)
    telnet $3 $2
    ;;
    --fecha)
    date
    ;;
esac
exit 0

la próxima entrega se posteará sobre funciones.

lunes, 6 de mayo de 2013

REUNIÓN DEL LUGRO, VIERNES 10, 21 Hs

Este viernes 10 de mayo a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Industria Argentina (Caferata entre Urquiza y Tucuman). Están todos invitados.

viernes, 3 de mayo de 2013

Estadisticas, Abril 2013


     18 Lista de tareas para colaboradores FLISOL
     11 Huayra Linux y Conectar Igualdad en el FLISOL
      9 Flisol 2013 novedades + info
      6 Actualizar Silverlight en netflix-desktop
      5 Fotos del evento
      3 Micrositios Flisol Cordoba 2013



martes, 23 de abril de 2013

REUNIÓN DEL LUGRo, VIERNES 26, 21 HORAS

Este viernes 26 de Abril a partir de las 21 horas se llevara a cabo
la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Industria Argentina (Caferata entre Urquiza y Tucuman).

Están todos invitados.

viernes, 19 de abril de 2013

El intérprete de órdenes V

Ejemplos útiles en "if..."

La vez anterior se estuvo usando la sentencia de control "if ... ; then ...; else...; fi" en esta ocasión se analizarán estos ejemplos

if [ "$user" != "gnu" ]; then
echo "Eh! fierita."
else
echo "Hola usuario de gnu !"
fi

El corchete [ expresión ] es equivalente a la función "test expresión" cuya función es evaluar lógicamente un predicado y devolver un valor lógico, en este caso el predicado es: "$user" != "gnu", se evalúa si el contenido de la variable LOCAL user no es igual a la cadena "gnu".

otro ejemplo sería:

 if [ "x$one" = "x-x" ]; then
echo "$one es -x"
else
echo "$one es not -x"
fi

que el castellano se traduce:

if (contenido de $one) es igual a  -x (suprima mensaje de error), then
diga (contenido de $one) es -x
en otro caso
diga (contenido de $one) es no -x

En este ejemplo uno se ampara ante el hecho que la variable no pueda contener valor lo que causaría que la evaluación del predicado de un mensaje de error.

if [ "$user" = "gnu" -o "$user" = "ung" ]; then
echo "Hola $user !"
else
echo "Y a vos quien te juna $user..."
fi

Aquí "-o" es un OR lógico dentro del predicado.

Los posibles operadores de predicado que reconoce la función "test" son los siguientes:

! EXPRESIÓN, negación lógica o NOT

EXPRESIÓN1 -a EXPRESIÓN2, AND lógico

EXPRESIÓN1 -o EXPRESIÓN2, OR lógico

-n STRING, da "true" si la longitud de la cadena es no nula.

-z STRING, da "true" si la longitud de la cadena es nula.

STRING1 = STRING2, da "true" si las cadenas coinciden.

STRING1 != STRING2, da "true" si las cadenas no coincide.

INTEGER1 -eq INTEGER2, da "true" si los enteros coinciden.

INTEGER1 -ge INTEGER2, idem,,, si entero1 >= entero2

INTEGER1 -gt INTEGER2, idem,,, si entero1 > entero2

INTEGER1 -le INTEGER2, idem,, si entero1 <= entero2

INTEGER1 -ne INTEGER2, idem,, si entero1 < entero2

FILE1 -ef FILE2, da "true" si los archivos tienen el mismo dispositivo es i-nodo.

FILE1 -nt FILE2, da "tuee" si el archivo1 tiene dato de modificación posterior al archivo2

FILE1 -ot FILE2, idem,, pero archivo1 anterior a archivo2

-b FILE, da "true" si el archivo apunta a un dispositivo (UNIX-like)

-c FILE, idem,, si es un dispositivo de caracteres (UNIX-like)

-d FILE, idem,, si es un directorio y existe

-e FILE, idem,, si el archivo existe

-f FILE, idem,, si el archivo existe y no es un puntero a dispositivo

-w FILE, idem,, si existe y tiene permisos de escritura

-x FILE, idem,, si tiene permisos de ejecución.

Existen otras opciones más pero son muy específicas del sistema UNIX-like

martes, 9 de abril de 2013

REUNIÓN DEL LUGRo, VIERNES 12, 21 HORAS


Este viernes 12 de Abril a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Industria Argentina (Caferata entre Urquiza y Tucuman).

Están todos invitados.

lunes, 1 de abril de 2013

El intérprete de órdenes IV


Un repaso de metacaracteres:

|  = Caño, donde se dirige la salida estándar del primar comando a la entrada estándar del segundo.
|| = OR, si el primer comando falla se tomará el segundo.
|= = OR IS (es usado dentro del control de flujo if.. then ... fi)
&& = AND, si el primer comando se ejecuta correctamente se ejecuta el segundo.
!  = NOT (es usado dentro del control de flujo if.. then ... fi), pero como comando del shell este abre un subshell para ejecutar un comando, por ejemplo `! ls ..`
!= = NOT IS (es usado dentro del control de flujo if.. then ... fi)
!$ = último argumento del último comando
!! = repite el último comando
=  = IS (es usado dentro del control de flujo if.. then ... fi)
;  = separa dos comando consecutivos
;; = terminador de la función case...
$  = prefijo de variable del shell por ejemplo "$PATH"
$$ = PID del proceso actual
$0 = Muestra el nombre del proceso actual.
$1 = Primer argumento ingresado.
$2 = Segundo argumento ingresado
$# = Muestra el número de argumentos ingresados.
$? = Cualquier argumento (es usado dentro del control de flujo if.. then ... fi)
$_ = último argumento/comando
$* = Todos los argumentos
$@ = Todos los argumentos
#  = comentario (no se interpreta)
#! = indica que intérprete usar
{  = inicio de definición de función
}  = cierre de función
[  = comienzo de múltiples argumentos
]  = fin de anterior
@  = $@ es equivalente a  "$1" "$2" etc. (todos los argumentos)
*  = caracter comodín (* pude sustituir cualquier número de caracteres)
?  = caracter comodín (? puede sustituir un solo caracter)
"  = comillas
'  = apostrofe exacto.
`  = apostrofe de comando. (variable=`ls -la` hace que $variable adquiera como valores el directorio actual)
.  = lea y ejecute comandos desde un archivo, ( . .bashrc )
&  = ejecute un programa en segundo plano (./program &)
0> = redirección de entrada estándar
1> = redirección de salida estándar
2> = redirección de error estándar
%  = caracter de taréa, %1 = tarea 1 a segundo plano, %2 = tarea 2 a segundo plano , etc.
>> = redirección de salida estándar sin sobre impresión
<< = redirección de entrada estándar. (cat > file << EOF ; cualquier cosa ; EOF)
>  = redirección implícita de salida estándar  (en la sentencia de control "if" se usa para comparaciones
\  = back-slash, elimina la interpretación de meta caracter, por ejemplo \$var no será tratado como una variable.
>& = redireccionador múltiple, ie. echo "a" 1>/dev/null 2>&1 redireciona  2> al mismo lugar que 1>

Esta es la estructura estándar del árbol archivos

/ (root)
 _______________________________|____________________________________
 |    |    | |     |    |    |      |   |  |    |    |
bin/ boot/ dev/ etc/ home/ lib/ lost+found/ proc/ root/ sbin/ usr/ var/
 |    |     |    |     |    |       |         |    |      |    |    |
 |    |     |    |     |    |       |         |    |      |    |    |-> Varios
 |    |     |    |     |    |       |         |    |      |    |
 |    |     |    |     |    |       |         |    |      |    |-> Espacio de usuarios.
 |    |     |    |     |    |       |         |    |      |  
 |    |     |    |     |    |       |         |    |      |-> Binarios del administrador
 |    |     |    |     |    |       |         |    |
 |    |     |    |     |    |       |         |    |-> Directorio del administrador
 |    |     |    |     |    |       |         |  
 |    |     |    |     |    |       |         |-> sistema de archivos de procesos
 |    |     |    |     |    |       |        
 |    |     |    |     |    |       |-> archivos huérfanos
 |    |     |    |     |    |      
 |    |     |    |     |    |-> bibliotecas del sistema
 |    |     |    |     |  
 |    |     |    |     |-> Directorios de usuarios
 |    |     |    |
 |    |     |    |-> Archivos de configuración
 |    |     |
 |    |     |-> Dispositivos
 |    |
 |    |-> Sector de booteo del kernel
 |
 |-> archivos con permiso de ejecución a todos.


Ahora nos abocaremos a la creación de shell script

Un script de ejemplo podría ser este:

#!/bin/bash
echo -n "contraseña: "
read contra
echo "Su contraseña es $contra"

que con cualquier editor de textos puede ser guardado como "miguion.sh", luego por medio de "chmod u+x miguion.sh" le damos permisos de ejecución... el resultado es:

hcaste@azul:~/tmp$ sh miguion.sh
contraseña: 3456
Su contraseña es 3456

la primera línea indicamos que el intérprete será el bash.

bash soporta aritmética entera, por ejemplo:

hcaste@azul:~/tmp$ echo $[ 4 * 2 ]
8

hcaste@azul:~/tmp$ echo $(( 10 + 5 ))
15

COOL! no?

Este es un ejemplo de la sentencia de control "if" que se finaliza con "fi", chistes del señor BASH.

#!/bin/bash

echo -n "entre un nombre: "
read var1
echo -n "otro : "
read var2

if [ "$var1" = "$var2" ]; then
echo "los nombres son los mismos"
else
echo "los nombres no son los mismos"
fi

exit 0

Cabe observar que el formato de la sentencia de control es "if ... ; then ...; else...; fi"

La próxima entrega más sentencia de control.

martes, 26 de marzo de 2013

El intérprete de órdenes III


Para poder continuar, es necesario comprender un poco mejor lo que es un comando y como es interpretado por el shell. El comando más simple es una palabra aislada, que evoca por lo general a un archivo con permisos de ejecución por parte del usuario. Por ejemplo:
hcaste@azul:~$ who
hcaste   pts/1        2013-03-20 11:35 (:3)
hcaste   tty7         2013-03-20 07:12
un comando se ingresa con una nueva-linea o retorno, pero “;” también es un terminador de comando para poder hacer concatenación secuencial. Por ejemplo:
hcaste@azul:~$ date; who
mié mar 20 11:38:45 ART 2013
hcaste   pts/1        2013-03-20 11:35 (:3)
hcaste   tty7         2013-03-20 07:12
Uno de los mecanismos IPC (Inter Process Comunication) mas usados a nivel de shell son los “pipes” o ñocas para los amigos… yo usaré indistinto el término “pipe” o caño para referirme a dicho IPC. El mecanismo de caño es redireccionar la salida estándar de un comando a la entrada estándar de otro, por ejemplo:
hcaste@azul:~$ date; who|wc
mié mar 20 11:42:16 ART 2013
      2       9      83
aquí solo la salida estándar comando “who” se dirigió a la entrada estándar del “wc” esto se debe a un hecho conocido como “precedencia”, la precedencia de “|” es mayor que la de “;”. Pero el “( )” tiene mayor precedencia aún, entonces:
hcaste@azul:~$ (date; who)|wc
      3      15     113
Otro terminador de comando es “&” este le indica al shell que no espere a que el comando finalice, esto se lo conoce como ejecución en segundo plano o “background”, esto permite la ejecución de comandos de manera paralela. Un ejemplo:
hcaste@azul:~$ (sleep 5; date) & date
[1] 17067
mié mar 20 11:49:20 ART 2013
hcaste@azul:~$ mié mar 20 11:49:25 ART 2013

[1]+  Hecho                   ( sleep 5; date )
En este caso lo que estaba entre () se ejecuta en paralelo con el siguiente, “&” devuelve el PID (Identificador de proceso).
Nota: En Unix-like todos los procesos se los identifican con números, para saber los procesos de usuario que corren en la terminal basta con ingresar el comando “ps”.
hcaste@nubehoracio:~$ ps x
  PID TTY      STAT   TIME COMMAND
25968 ?        S      0:00 sshd: hcaste@pts/0
25969 pts/0    Ss     0:00 -bash
26000 pts/0    R+     0:00 ps x
Aquí el pid del shell bash es “25969″. El campo TTY identifica el tipo de terminal, el campo STAT identifica el estado, en general es R=corriendo, S=”durmiendo”, D=”bloqueado”, Z=”sombi”. TIME es el tiempo de ejecución virtual y COMMAND es el nombre de comando.
Los caracteres reservados para el shell son: “<”, “>”, “|”, “;”, “.”, “..”, “/” y “&”.
Su significado es:
">" desvío de la salida estándar con sustitución, ">>" con concatenación.
"<" desvío de la entrada estándar
"|" caño
";" terminador de comando
"." directorio actual
".." directorio padre o superior
"/" separador de directorio o constructor de camino (PATH)
"&" terminador de comando con ejecución en segundo plano.

El intérprete de órdenes II






Recordemos lo que se mencionó en la última entrega. Un shell, básicamente, es un intérprete de órdenes en línea. Su trabajo consiste en leer las instrucciones que da el usuario, realizar una serie de funciones de análisis y pasar la instrucción interpretada al SO.
En los unnixlike, el mecanismo clásico de ejecución de una orden por parte del shell es llamar a un conjunto de operaciones llamadas “primitivas” o en inglés “system calls”. En la siguiente listas se dan las primitivas más conocidas.
El System Calls para el sub-sistema de manejo de archivos provee:
Acceso a archivos existentes: open, read, lseek, close.
Creación de nuevos archivos: create, mknod.
Manejo atraves del file system: chdir, chown, chmod.
Creación y borrado de links: link y unlink.
El System Calls para el subsitema de control de procesos prove:
Creación de proceso Hijo: Fork
Ejecución de proceso: Exec
Evío de señales: Kill y signal
El mecanismo clásico (ver figura), sin entrar en detalles profundos, de ejecución de una instrucción por parte del shell es llamar la primitiva “fork”(1) se crean dos procesos idénticos uno el proceso hijo y otro el padre. Se duplican las pilas y las tablas de datos en áreas de memoria incompatibles. El proceso shell padre se pone a dormir con la primitiva “wait” a espera que el shell hijo termine. El shell hijo ejecuta las instrucciones con la primitiva “exec”; una vez que finalice este le indica al shell padre que terminó con la primitiva “exit”. Además por un mecanismo de comunicación entre procesos (IPC) el hijo le comunica al padre los resultados de la ejecución de los comandos.
(1) No confundir con la primitiva “clone” que pertenece al POSIX 1001.
El shell tiene incorporado algunas órdenes dentro de sus propio código, es decir, no existe como programa ejecutable en ningún directorio. Estas son intrínsecas del shell como ser cd, pwd, echo, etc. Cuando se ejecuta una órden interna al shell no crea proceso hijo. Las funciones internas se puden ver con la instrucción “help” en BASH.
Un ejemplo de ejecución interna es:
hcaste@azul:~$ x=37
hcaste@azul:~$ cadena="hola"
hcaste@azul:~$ echo "$cadena $x"
hola 37
En la primera se le crea la variable con etiqueta “x” y se le asocia el contenido 37. En el segundo caso se crea la variable con etiqueta “cadena” se le asocia la cadena de caracteres (string en inglés) “hola”. Luego la instrucción interna echo muestra los contenidos de cada variable, observar el signo “$” que indica “contenido”. En cambio si hago:
hcaste@azul:~$ echo "cadena x"
cadena x
para saber que hace echo, basta con hacer “help echo”
hcaste@azul:~$ help echo
echo: echo [-neE] [arg ...]
Escribe argumentos en la salida estándar.
Muestra los argumentos en la salida estándar seguidos por un carácter
de fin de línea.
también se puede consultar al manual “man echo” pero este en general está en inglés…
ECHO(1) User Commands ECHO(1)
NAME
 echo - display a line of text
SYNOPSIS
 echo [SHORT-OPTION]... [STRING]...
 echo LONG-OPTION
DESCRIPTION
 Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of backslash escapes
En la próxima entrega se focalizará ya en el shell-scrypt.

El intérprete de órdenes I


En esta primera entrega haré una introducción para dar una cosmovisión sobre para que sirve y como se usa un “shell” asociado a sistemas operativos Linux, FreeBSD, Irix, etc.. conocidos como “Unixlike”
Cuando iniciamos una sesión en un sistema Unixlike respondiendo a lo que nos solicita el programa “login”
con nuestro nombre de usuario y contraseña correcta, el sistema ejecuta automáticamente un programa conocido en la jerga como “shell”, ó intérprete de órdenes, este queda esperando las órdenes de manera interactiva con una marca llamada “prompt”. El prompt por defecto, que se puede cambiar, el en interprete BASH es “$” para un usuario sin privilegios. Por ejemplo
hcaste@roja:~$
“hacaste” es el nombre del usuario y “roja” es el nombre de la máquina no su dominio. Esto permite al usuario saber de antemano donde está ubicado.
La traducción de “shell” sería caparazón en un viejo paradigma de los años 1960 donde se suponía que un sistema operativo seguía el modelo de la cebolla y el shell era lo que recubría a la cebolla, y este es la interfaz entre el usuario y el resto del sistema. Ahora lo mas correcto sería suponer que un sistema operativo fuera una almeja o un molusco bibalvo, pues lo que recubre a la cebolla es el la piel o “skin”… una de los interrogantes más del mundo misterioso que es la informática…
Muchas personas tienden a confundir los términos de intérprete de órdenes (IO) con sistema operativo (SO). Esto no es así, el IO es un programa más como lo puede ser un navegador web. La razón del mal entendido radica en que el IO actúa como interfaz entre el usuario y el SO. Más aún en los sistema Unixlike el usuario puede elegir que IO quiere, este está definido en el archivo /etc/passwd.
La zoología de IO existentes el basta pero los más conocidos son:

bash = Bourne again shell
sh = shell
csh = C shell
tcsh = Tenex C shell (not permite tab-completado)
tclsh = Tcl shell
ksh = Korn shell
ash = a shell
bsh = bourne shell (en muchos unixlike es un enlace a /bin/ash)
zsh = the Z shell

De todos mi explicaciones estarán enfocadas al estándar de facto el “BASH“.
Un shell, básicamente, es un IO en línea de comandos. Su tarea consiste en leer las instrucciones que le ingresa el usuario, a través de teclado, o a través de un archivo de texto ASCII conocido como script o guión; realiza una serie de operaciones de reducción a primitivas de sistemas y pasa la instrucción convertida a primitiva de sistema al SO.

lunes, 25 de marzo de 2013

REUNIÓN DEL LUGRo, VIERNES 29, 21 HORA


Este viernes 29 de Marzo a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Industria Argentina (Caferata entre Urquiza y Tucuman).

Están todos invitados.

miércoles, 13 de marzo de 2013

Estadística Marzo 2013



      9 Miguel de Icaza abandona Linux y se pasa a Mac
      7 Lugro-Mesh
      7 Direcciond eip estática
      4 Argentina presente en v3.9
      2 Charlas 2013




martes, 12 de marzo de 2013

REUNIÓN DEL LUGRo, VIERNES 15, 21 HORAS


Este viernes 15 de Marzo a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Industria Argentina (Caferata entre Urquiza y Tucuman).

Están todos invitados.

lunes, 25 de febrero de 2013

REUNIÓN DEL LUGRo, VIERNES 01, 21 HORAS


Este viernes 01 de Marzo a partir de las 21 horas se llevara a cabo la reunión del Grupo De Usuarios de Software Libre de Rosario en el bar Industria Argentina (Caferata entre Urquiza y Tucuman).

Están todos invitados.

domingo, 17 de febrero de 2013

Temas Enero 2013




    10 Recomendaciones para un NAS
      9 PyCon 2013 en Rosario?!?!
      7 Actividades en Rosario
      2 The HTML5 Operating System



Temas Diciembre 2012




     24 GPG key
      9 software para simulación
      6 REUNION DEL LUGRo, VIERNES 07, 21 HORAS
      4 Feedback SFD 2012

Temas Noviembre 2012




     21 Mozilla, esta vez te pasaste me parece...
     13 Gestor de contenido que no use PHP
     12 Sobre la mecanica del derecho de autor
      7 Comunicar de manera simple
      7 Bootear desde USB aunque no se pueda
      6 Github markdown preview
      6 Autocompletar los comandos precedidos por sudo
      5 Cliente torrent TRANSMISSION -> problemas de navegacion
      5 audit printk skb
      5 Audio en motherboard Intel Atom

jueves, 14 de febrero de 2013

Reunión del Lugro Viernes 15 de Febrero


Recordamos que hoy viernes 15 de Febrero a partir de las 21 horas se efectuara la reunión del Grupo de Usuarios de Software Libre de Rosario (LUGRo) en el bar Industria Argentina (Caferata entre Tucuman y Catamarca).

Están todos invitados.