El usuario root en Ubuntu Linux

El sistema operativo Ubuntu Linux tiene desactivada por defecto la cuenta de usuario root. De este modo obtenemos dos ventajas fundamentales:

  • Que un usuario novato provoque destrozos en el sistema operativo Linux Ubuntu, ya que no sabe que el archivo que está tocando es importante para el buen funcionamiento del sistema operativo Linux.
  • Estar con privilegios totales constantemente es un agujero de seguridad importante que permitiría que algún programa malicioso dañara tu equipo.

Una vez que sepas activar la cuenta root por ti mismo, significará que ya estás preparado para usarla. Hasta entonces es mejor emplear el comando SUDO.

¿Cómo puedo trabajar con privilegios de root en Ubuntu Linux?

Si trabajas a través del entorno gráfico, él mismo ya te pide tu contraseña cada vez que se requieran permisos de administrador para realizar una acción. Esto suele ser para instalar programas a través de Synaptic, cambiar la configuración de red, crear un nuevo usuario, etc.
Si necesitas realizar alguna acción desde consola con privilegios de root en Ubuntu Linux, sólo debes escribir el comado sudo delante del comando a ejecutar.

Por ejemplo: sudo fdisk -l (para ver las particiones del ordenador)

¿Qué es Sudo en Ubuntu Linux?

Para ejecutar operaciones de administración en Ubuntu Linux se emplea un comando llamado «sudo». Este programa nos pregunta la contraseña de nuestro usuario actual para acceder a los poderes administrativos. Tras un tiempo de inactividad los permisos "caducan", un mecanismo de seguridad para evitar los mismos riesgos que tendría trabajar desde la cuenta root.
Este programa puede utilizarse en modo gráfico con «gksudo programa», por ejemplo:

gksudo gedit (para lanzar el editor de textos en modo administrador)

aunque la consola es el uso mas común de sudo.

¿Por qué no veo la contraseña cuando la escribo en el sistema operativo Linux Ubuntu para realizar tareas administrativas?


Por motivos de seguridad, es decir, para que nadie pueda ver nuestra contraseña, Ubuntu Linux NO muestra la contraseña mientras la escribimos, pero sí la está registrando. Lo correcto es escribir la contraseña y pulsar la tecla "Intro".

¿Cómo puedo trabajar gráficamente con permisos de Root en Ubuntu Linux?


A veces nos interesa trabajar con archivos y carpetas de los que nuestro usuario no tiene permisos de escritura en Ubuntu Linux. En estas situaciones trabajar por consola mediante el comando sudo puede ser muy lento y tedioso. Para poder trabajar desde el entorno de ventanas debemos trabajar con nautilus (el gestor gráfico de archivos de Gnome) con privilegios de usuario root.
Existen varias formas de realizar esto:

  • Instala desde Synaptic el paquete nautilus-gksu
  • Mediante el comando sudo nautilus

Programar con variables en Php

En PHP las variables se representan como un signo $ seguido por el nombre de la variable. El nombre de la variable en PHP es sensible a minúsculas y mayúsculas.
Los nombres de variables en PHP siguen las mismas reglas que otras etiquetas en PHP. Un nombre de variable valido tiene que empezar con una letra o un guion bajo, seguido de cualquier número de letras, números y rayas.

$var = "Sergio";

$Var = "Fabian";

echo "$var, $Var"; // muestra en pantalla "Sergio, Fabian"

$4site = 'algo'; // variable invalida en php; comienza con un numero

$_4site = 'algo'; // variable valida en php; comienza con un guion bajo

$täyte = 'algo'; // variable valida en php; 'ä' es ASCII 228 (Extendido)

?>

En PHP 3, las variables siempre se asignan por valor. Esto significa que cuando se asigna una expresión a una variable, el valor íntegro de la expresión original se copia en la variable de destino. Esto quiere decir que, por ejemplo, después de asignar el valor de una variable a otra, los cambios que se efectúen a una de esas variables no afectará a la otra.
PHP 4 ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable simplemente referencia (en otras palabras, "se convierte en un alias de" ó "apunta a") la variable original. Los cambios a la nueva variable afectan a la original, y viceversa. Esto también significa que no se produce una copia de valores; por tanto, la asignación ocurre más rápidamente. De cualquier forma, cualquier incremento de velocidad se notará sólo en los bucles críticos cuando se asignen grandes matrices u objetos.
Para asignar un valor a una variable por referencia, simplemente se antepone un signo ampersand "&" al comienzo de la variable cuyo valor se está asignando (la variable fuente). Por ejemplo, el siguiente trozo de código produce la salida 'Mi nombre es Sergio' dos veces:

$foo = 'Sergio'; // Asigna el valor 'Sergio' a $foo

$bar = &$foo; // Referencia $foo via $bar.

$bar = "Mi nombre es $bar"; // Modifica $bar...

echo $foo; // $foo tambien se modifica.

echo $bar;

?>

Algo importante a tener en cuenta es que sólo las variables con nombre pueden ser asignadas por referencia.

$foo = 25;

$bar = &$foo; // Esta es una asignacion valida.

$bar = &(24 * 7); // Invalida; referencia una expresion sin nombre.

function test() {

return 25;

}

$bar = &test(); // Invalida.

?>

Instalar una impresora en Ubuntu Linux

Instalar una impresora es un procedimiento bastante sencillo. El sistema operativo Ubuntu Linux incorpora una extensa base de datos de controladores para distintos modelos y marcas de impresoras. Pero incluso si su impresora no aparece en la lista bastará con tener a mano el archivo con extensión .ppd adecuado. Este archivo puede obtenerse en la mayoría de los casos directamente del fabricante o a partir de una instalación en Windows por el simple procedimiento de copiarlo a un disquete o a una memoria usb.

Antes de iniciar la instalación debemos asegurarnos de que la impresora está encendida y conectada al ordenador.

  1. Vamos al menú Sistema -> Administración ->Impresoras
  2. Hacemos doble clic sobre el icono Impresora nueva o bien seleccionamos Añadir impresora del menú Impresora.
    El asistente buscará entonces impresoras conectadas al equipo y las mostrará en una lista.
    Seleccionamos el modelo que corresponda a la impresora que deseamos instalar y hacemos clic en el botón Adelante.
    Si el asistente no fue capaz de detectarla marcamos la opción Use otra impresora especificando un puerto, seleccione el puerto del equipo al que está conectada y pulse Adelante
  3. Seleccionamos ahora el controlador adecuado para la marca y modelo de la impresora y pulsamos Adelante. Si el controlador no aparece en la lista hacemos clic en Instalar controlador y proporcionamos el archivo *.ppd suministrado por el fabricante.
  4. Escriba el nombre que deseamos para la impresora. Los campos Descripción y Ubicación son opcionales y podemos dejarlos en blanco.
  5. Pulsamos Aplicar para guardar los cambios. Si todo ha ido bien la impresora estará lista para ser usada.

Una vez instalada podemos editar sus características o imprimir una página de prueba haciendo clic con el botón derecho del ratón y seleccionando Propiedades del menú contextual.

Repositorios adicionales en Linux Ubuntu

Existen miles de programas disponibles para instalar en Linux Ubuntu. Estos programas estan almacenados en archivos de software (repositorios) y son de libre distribución para instalar a través de Internet. Esto hace muy fácil instalar programas en Linux Ubuntu, y además es muy seguro, porque cada programa que instalamos esta construido especialmente para Linux Ubuntu.

Para organizar el software, los repositorios de Linux Ubuntu estan catalogados en cuatro grupos:

  • Main
  • Restricted
  • Universe
  • Multiverse.

El criterio usado para determinar qué software va en cada categoría de los repositorios esta basado en dos factores:

  • El nivel de soporte que los equipos de desarrolladores le otorgan al programa.
  • El nivel de implicación del programa con la Filosofía del Software Libre.

El CD de instalación estándar de Ubuntu Linux contiene software proveniente de las categorías Main y Restricted.

Una vez que el sistema operativo Linux Ubuntu conoce la ubicación de estos repositorios en Internet, se dispone de muchos más programas para instalar en nuestro Linux Ubuntu. Utilizando las herramientas de gestión de paquetes ya instaladas nuestro sistema operativo, podemos buscar, instalar y actualizar cualquier paquete de software directamente desde Internet, sin tener que recurrir al CD.

Sin embargo, hay ocasiones en que el programa que queremos instalar no se encuentra en los repositorios que tenemos activos en nuestro sistema operativo Linux Ubuntu y debemos activar repositorios extras para poder instalarlos

Para activar los repositorios adicionales seguimos los siguientes pasos:

  1. Abrimos Sistema->Administración->Propiedades del software .
  2. Seleccionamos Añadir
  3. Para habilitar el repositorio Universe, marcamos la casilla Mantenido por la comunidad (Universe). Al añadir este repositorio, gran parte del universo del Software Libre estará disponible para ser instalado en nuestro sistema operativo Linux Ubuntu. Este software está soportado por una cuidada selección de grupos de voluntarios dentro de la Comunidad Ubuntu, pero no está soportado por el nucleo del equipo de desarrolladores de Ubuntu y puede no incluir actualizaciones de seguridad.
  4. Para habilitar el repositorio Multiverse, marque la casilla Software no libre (Multiverse). Añadir este repositorio significa que el software que ha sido clasificado como no libre estará disponible para instalarse en Ubuntu. De nuevo, este software puede no incluir actualizaciones de seguridad.
  5. Pulse sobre Cerrar para salvar sus cambios y salir.
  6. Para aplicar sus cambios, seleccione Recargar.

y listo... ya tenemos los repositorios que queriamos agregar.

Linux Ubuntu: Instalar y desinstalar archivos .deb

Los archivos .deb son paquetes Debian. Los archivos de paquetes asociados a Ubuntu tienen el sufijo .deb por la relación tan estrecha que Ubuntu tiene con la distribución Debian GNU/Linux. Necesitará privilegios de administrador (sudo o root) para instalar un archivo .deb en nuestro sistema operativo Linux Ubuntu.

De forma sencilla, podemos instalar y desintalar archivos .deb en nuestro Linux Ubuntu de las siguientes maneras:

  • Para instalar un archivo .deb, simplemente pulse dos veces sobre él, y después seleccione Instalar paquete

  • También puede instalar un archivo .deb abriendo una terminal y tecleando:
    sudo dpkg -i paquete.deb

  • Para desinstalar un archivo .deb , desmárquelo en su gestor de paquetes, o teclee:
    sudo dpkg -r nombre_paquete

Como gestionar paquetes mediante el comando APT en Ubuntu Linux

Synaptic (del inglés Advanced Packaging Tool, Herramienta Avanzada de empaquetado) es un potente sistema de gestión de paquetes, sobre el que se basan los programas gráficos descritos más arriba, tales como Añadir y quitar aplicaciones y Synaptic. APT gestiona las dependencias de forma automática, y realiza otras operaciones sobre los paquetes del sistema para permitir la instalación de los paquetes deseados.

La ejecución de APT requiere privilegios administrativos (es decir que el usuario debe ser root o debemos utilizar el comando sudo).

Algunos comandos que pueden usarse con APT en Ubuntu Linux son:

  • Instalar paquetes en Linux Ubuntu con APT:
    sudo apt-get install nombre-del-paquete

  • Eliminar paquetes en Linux Ubuntu con APT:
    s
    udo apt-get remove nombre-del-paquete

  • Obtener nueva lista de paquetes en Linux Ubuntu con APT:
    sudo apt-get update


  • Actualizar el sistema con las actualizaciones disponibles en Linux Ubuntu con APT:
    sudo apt-get upgrade

  • Mostrar comandos de ayuda y opciones del comando APT:
    apt-get help

Manipulación de Tipos de datos en Php

PHP no requiere la definición explícita de tipos en la declaración de variables; el tipo de una variable es determinado por el contexto en el que la variable es usada. Lo que quiere decir que si asigna un valor de cadena a la variable $var, $var se convierte en una cadena. Si luego asigna un valor entero a $var, ésta se convierte en entera.

Un ejemplo de la conversión automática de tipos de PHP es el operador de adición '+'. Si cualquiera de los operandos es un flotante, entonces todos los operandos son evaluados como flotantes, y el resultado será un flotante. De otro modo, los operandos serán interpretados como enteros, y el resultado será también un entero. Esto no modifica los tipos de los operandos mismos; el único cambio está en la forma como los operandos son evaluados.

<?php

$foo = "0"; // $foo es una cadena (ASCII 48)

$foo += 2; // $foo es ahora un entero (2)

$foo = $foo + 1.3; // $foo es ahora un flotante (3.3)

$foo = 5 + "10 Cerditos"; // $foo es entero (15)

$foo = 5 + "10 Cerdos"; // $foo es entero (15)

?>

Para cambiar el tipo de una variable, se utiliza settype().

El comportamiento de una conversión automática a matriz no se encuentra definido en el momento.

Asimismo, ya que PHP soporta el uso de índices en cadenas por medio de desplazamientos usando la misma sintaxis que la indexación de matrices, el siguiente ejemplo permanece válido para todas las versiones de PHP:

<?php

$a = 'carro'; // $a es una cadena

$a[0] = 'b'; // $a sigue siendo una cadena

echo $a; // barro

?>

Moldeamiento de Tipos de datos con Php

El moldeamiento de tipos en PHP funciona de forma muy similar a como ocurre en C: el nombre del tipo deseado es escrito entre paréntesis antes de la variable que debe ser moldeada.

<?php

$foo = 10; // $foo es un entero

$bar = (boolean) $foo; // $bar es un booleano

?>

Los moldeamientos permitidos son:

(int), (integer) - moldeamiento a entero

(bool), (boolean) - moldeamiento a booleano

(float), (double), (real) - moldeamiento a flotante

(string) - moldeamiento a cadena

(binary) - moldeamiento a cadena binaria (PHP 6)

(array) - moldeamiento a matriz

(object) - moldeamiento a objeto

El moldeamiento (binary) y el soporte del prefijo b fueron agregados en PHP 5.2.1

Note que las tabulaciones y los espacios son permitidos al interior de los paréntesis, así que las siguientes expresiones son funcionalmente equivalentes:

<?php

$foo = (int) $bar;

$foo = ( int ) $bar;

?>

Moldeamiento de cadenas literales y variables a cadenas binarias:

<?php

$binario = (binary)$cadena;

$binario = b"cadena binaria";

?>

nota: En lugar de moldear una variable a cadena, puede también rodear la variable de comillas dobles.

<?php

$foo = 10; // $foo es un entero

$cad = "$foo"; // $cad es una cadena

$fst = (string) $foo; // $fst es también una cadena

// Esto imprime "son lo mismo"

if ($fst === $cad) {

echo "son lo mismo";

}

?>

Introducción a Linux y su historia

Linux es probablemente el acontecimiento más importante del software gratuito desde el original Space War, o, más recientemente, Emacs. Se ha convertido en el sistema operativo para los negocios, educación, y provecho personal. Linux ya no es solo para gurús de UNIX que se sientan durante horas frente a la resplandeciente consola (aunque les aseguro que un gran número de usuarios pertenece a esta categoría).
Linux es un clónico del sistema operativo UNIX que corre en ordenadores Intel 80386 y 80486. Soporta un amplio rango de software, desde TEX a X Windows al compilador GNU C/C++ a TCP/IP. Es una implementación de UNIX versátil, distribuida gratuitamente en los términos de la Licencia GNU.
Linux puede convertir cualquier PC 386 o 486 en una estación de trabajo. Le pondrá todo el poder de UNIX en la punta de sus dedos. En los negocios ya se instala Linux en redes enteras, usando el sistema operativo para manejar registros financieros y de hospitales, un entorno de usuario distribuido, telecomunicaciones, etc. Universidades de todo el mundo usan Linux para dar cursos de programación y diseño de sistemas operativos. Y, por supuesto, entusiastas de los ordenadores de todo el mundo están usando Linux en casa, para programar, entretenerse, y conocerlo a fondo.
Lo que hace a Linux tan diferente es que es una implementación gratuita de UNIX. Fue y aun es desarrollado por un grupo de voluntarios, principalmente en Internet, intercambiando código, comentando fallos, y arreglando los problemas en un entorno abierto. Cualquiera es bienvenido a sumarse al esfuerzo de desarrollo de Linux: todo lo que se pide es interés en producir un clónico gratuito de UNIX y algunos conocimientos de programación.

Breve historia de Linux

UNIX es uno de los sistemas operativos más populares del mundo debido a su extenso soporte y distribución. Originalmente fue desarrollado como sistema multitarea con tiempo compartido para miniordenadores y mainframes a mediados de los 70, y desde entonces se ha convertido en uno de los sistemas más utilizados a pesar de su, ocasionalmente, confusa interfaz con el usuario y el problema de su estandarización.
¿Cuál es la verdadera razón de la popularidad de UNIX? Muchos hackers consideran que UNIX es el auténtico y único sistema operativo. El desarrollo de Linux parte de un grupo en expansión de hackers de UNIX que quisieron hacer su sistema con sus propias manos.
Existen numerosas versiones de UNIX para muchos sistemas, desde ordenadores personales hasta supercomputadores como el Cray Y-MP. La mayoría de las versiones de UNIX para ordenadores personales son muy caras. Cuando se escribía este libro, una copia para una máquina 386 del UNIX System V de AT&T costaba unos 1500 dólares estadounidenses.
Linux es una versión de UNIX de libre distribución, inicialmente desarrollada por Linus Torvalds en la Universidad de Helsinki, en Finlandia. Fue desarrollado con la ayuda de muchos programadores y expertos de Unix a lo largo y ancho del mundo, gracias a la presencia de Internet. Cualquier habitante del planeta puede acceder a Linux y desarrollar nuevos módulos o cambiarlo a su antojo. El núcleo de Linux no utiliza ni una sola línea del código de AT&T o de cualquier otra fuente de propiedad comercial, y buena parte del software para Linux se desarrolla bajo las reglas del proyecto de GNU de la Free Software Foundation, Cambridge, Massachusetts.
Inicialmente, sólo fue un proyecto de aficionado de Linus Torvalds. Se inspiraba en Minix, un pequeño UNIX desarrollado por Andy Tanenbaum, y las primeras discusiones sobre Linux surgieron en el grupo de News comp.os.minix. Estas discusiones giraban en torno al desarrollo de un pqeueño sistema UNIX de carácter académico dirigido a aquellos usuarios de Minix que querían algo más.
El desarrollo inicial de Linux ya aprovechaba las características de conmutación de tareas en modo protegido del 386, y se escribió todo en ensamblador. Linus dice:

"Comencé a utilizar el C tras escribir algunos drivers, y ciertamente se aceleró el desarrollo. En este punto sentí que mi idea de hacer un Minix mejor que Minix' se hacía más seria. Esperaba que algún día pudiese recompilar el gcc bajo Linux. . ."
"Dos meses de trabajo, hasta que tuve un driver de discos (con numerosos bugs, pero que parecía funcionar en mi PC) y un pequeño sistema de ficheros. Aquí tenía ya la versión 0.01 [al final de Agosto de 1991]: no era muy agradable de usar sin el driver de disquetes, y no hacía gran cosa. No pensé que alguien compilaría esa versión."

No se anunció nada sobre esa versión, puesto que las fuentes del 0.01 jamás fueron ejecutables: contenían solo rudimentos de lo que sería el núcleo , y se asumía que se tenía acceso a un Minix para poderlo compilar y jugar con él.
El 5 de Octubre de 1991, Linus anunció la primera versión "oficial" de Linux, la 0.02. Ya podía ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hacía mucho más. La intención era ser un juguete para hackers. No había nada sobre soporte a usuarios, distribuciones, documentación ni nada parecido. Hoy, la comunidad de Linux aun trata estos asuntos de forma secundaria. Lo primero sigue siendo el desarrollo del kernel.
Linus escribía en comp.os.minix:

¿Suspiras al recordar aquellos días de Minix-1.1, cuando los hombres eran hombres y escribían sus propios drivers? ¿Te sentís sin ningún proyecto interesante y te gustaría tener un verdadero S.O. que pudiéras modificar a placer? ¿Te resulta frustrante el tener solo a Minix? Entonces, este artículo es para vos. Como dije hace un mes, estoy trabajando en una versión gratuita de algo parecido a Minix para ordenadores At-386. He alcanzado la etapa en la que puede ser utilizable y voy a poner las fuentes para su distribución. Es solo la versión 0.02. pero he conseguido ejecutar en él bash, gcc, gnu-make, gnu-sed, compress, etc.”

Tras la versión 0.03, Linus saltó a la versión 0.10, al tiempo que más gente empezaba a participar en su desarrollo. Tras numerosas revisiones, se alcanzó la versión 0.95, reflejando la esperanza de tener lista muy pronto una versión "oficial". (Generalmente, la versión 1.0 de los programas se corresponden con la primera teóricamente completa y sin errores). Esto sucedía en Marzo de 1992. Año y medio después, en Diciembre del 93, el núcleo estaba en la revisión 0.99.pl14, en una aproximación asintótica al 1.0. Actualmente, el núcleo se encuentra en la versión 1.1 parche 52, y se acerca la 1.2.2
Hoy Linux es ya un clónico de UNIX completo, capaz de ejecutar X Window, TCP/IP, Emacs, UUCP y software de correo y News. Mucho software de libre distribución ha sido ya portado a Linux, y están empezando a aparecer aplicaciones comerciales. El hardware soportado es mucho mayor que en las primeras versiones del núcleo. Mucha gente ha ejecutado tests de rendimiento en sus sistemas Linux 486 y se han encontrado que son comparables a las estaciones de trabajo de gama media de Sun Microsystems y Digital. >Quién iba a imaginar que este "pequeño" clónico de UNIX iba a convertirse en un estándar mundial para los ordenadores personales?

Software libre para windows

Muchos pueden ser los motivos por los que no podemos instalar Linux en nuestra Pc (por ejemplo una pc que compartimos con otros integrantes de la familia que no se animan a usar Linux).
Sin embargo, esto no es motivo para dejar de usar software libre. Es posible que máquinas con windows usen software libre. Esto ayuda muchas veces a que la transicion a linux sea mas natural y menos traumatica, ya que la mayoria de los programas que usamos en windows tambien los encontraremos a la hora de migrar a linux.
Dejo aqui una extensa lista de software libre que podemos usar en windows.

Software libre para Windows


Celestia
Celestia es un simulador del Sistema Solar y más allá. Permite viajar con total libertad por el espacio y observar los planetas y sus satélites, así como estrellas y otros objetos astronómicos. También se pueden ver las constelaciones y se puede permanecer inmóvil viendo como todo el Universo gira a nuestro alrededor.

Stellarium
Stellarium genera vistas fotorealistas en movimiento del cielo nocturno. Entre otras características, dibuja más de 120.000 estrellas del catálogo Hipparcos, 88 constelaciones y 70 nebulosas y permite hacer zoom sobre los planetas del Sistema Solar.

Virtual Moon Atlas
Virtual Moon Atlas es un atlas lunar que permite observar toda la superficie lunar, ampliar cualquier accidente geográfico y consultar información detallada sobre ellos. Desde la página web del programa puede descargarse una versión con mapas mucho más detallados. Al instalarse, el programa está en inglés, pero desde la página web del programa se puede descargar el archivo de traducción al español o catalán.

Indy build
Indy es un reproductor mp3 para descubrir música. El reproductor va descargando canciones (desde sitios web de descarga legal y gratuita) y el usuario va valorando las canciones.

iPodder
iPodder permite descargar los programas de radio o música de Internet que se distribuyen mediante podcasting.

iRATE radio
iRATE radio es un sistema de descarga filtrada de música. El reproductor va descargando canciones (desde sitios web de descarga legal y gratuita) y el usuario va valorando las canciones.

Audacity
Audacity es un editor de audio. Permite reproducir, grabar, editar, mezclar, aplicar efectos, etc. Al instalarse, el programa está en español, pero se puede cambiar al catalán mediante el menú Archivo > Preferencias > Entorno > Lenguaje,

WaveSurfer
WaveSurfer es una herramienta para la visualización y manipulación de sonido, cuyas capacidades pueden ampliarse mediante plug-ins.
El programa no necesita instalación: hay que descomprimir el archivo zip en una carpeta y ejecutar el programa wavesurfer.exe.

PyKaraoke
PyKarakoe es un reproductor de karaoke que puede reproducir archivos CDG, MIDI o MPEG.

vanBasco's Karaoke Player
vanBasco's Karaoke Player es un reproductor de archivos de Karaoke en formato MIDI. Entre otras funciones, permite crear listas personalizadas de canciones, modificar el tempo de la reproducción o silenciar de forma independiente cada uno de los instrumentos, así como utilizar diferentes skins.

1by1
1by1 es un minúsculo reproductor de MP3 que permite manejar y reproducir cómodamente los archivos MP3.

foobar2000
Foobar es un reproductor que permite reproducir/codificar audio en una enorme variedad de formatos, grabar CDs de audio, editar tags, etc., siempre maximizando la calidad y restringiendo los recursos utilizados al mínimo. Es altamente configurable, tiene una estructura abierta de componentes y una nutrida comunidad de usuarios que escriben plugins de lo más variados.

MusikCube
MusikCube es un reproductor de mp3, ogg, flac y audio-CD, que incluye también un extractor de pistas de CD.

onlineTV
onlineTV 2 permite escuchar cientos de emisoras de radio y televisión disponibles en Internet e incluso grabar las emisiones. Este programa es la versión gratuita de un programa comercial.

Quintessential Player
Quintessential Player es un completo reproductor de sonido que soporta numerosos formatos (mp3, mp3PRO, Ogg Vorbis, WMA, CD, streaming), es capaz de crear mp3, soporta Gracenote CDDB, y puede ser ampliado mediante plug-ins.

wxMusik
wxMusik es un reproductor de audio que soporta varios formatos (mp3, pgg, wav, flac, mpc, ape y aiff). Incorpora una base de datos SQL, con la que se genera una biblioteca musical a la que se puede realizar todo tipo de consultas.

Zinf
Zinf es un reproductor de audio que soporta varios formatos (Mp3, Ogg/Vorbis, WAV, Audio CD, HTTP streaming, etc).

Visual Music
Visual Music te permite tocar hasta 128 instrumentos musicales y grabar el resultado. También puedes escribir scripts para crear tus propias composiciones.

WaveFM
WveFM es un sintetizador que genera los sonidos de acuerdo con el método de síntesis FM.

Audiograbber
Audiograbber extrae canciones de los CD y los copia al disco duro. También puede conectarse a bases de datos (freebd) para obtener información sobre las canciones, normalizar el nivel de sonido de grupos de canciones, convertir a otros formatos con plug-ins externos, etc.

CDex
Cdex es un convertidor de formatos de audio (por ejemplo de WAV a MP3 y viceversa). Al instalarse, el programa está en inglés, pero se puede cambiar al español mediante el menú Options > Select Language > Spanish.

FLAC
FLAC (Free Lossless Audio Codec) es un formato de compresión de audio sin pérdida de calidad. El programa incluye tanto las herramientas de compresión/descompresión al formato FLAC como un plug-in para reproducir archivos flac en WinAmp.

Mixxx
Mixxx es un programa para DJs que permite mezclar archivos en formato wav, ogg o mp3 y que puede controlarse desde controladores externos.

MP3Gain
MP3Gain analiza y ajusta un conjunto de archivos mp3 para que tengan el mismo volumen, sin pérdida de calidad, y que no haya necesidad de ajustar el control de volumen en cada canción. En el proceso de instalación puede elegirse el idioma (español o catalán, entre otros).

Mp3tag
Mp3tag es una herramienta para editar metadatos (ID3, comentarios Vorbis y APE) de archivos de audio. Puede renombrar los archivos a partir de los metadatos, reemplazar caracteres, importar/exportar información, crear listas de reproducción, efectuar consultas a freedb, etc. En el proceso de instalación puede elegirse el idioma (español o catalán, entre otros).

The GodFather
The GodFather es un completo organizador de archivos de audio que permite, entre otras cosas, actualizar los tags, renombrar o reestructurar los archivos en el disco duro, crear y mezclar listas de reproducción, codificar/decodificar en varios formatos, exportar/importar, consultar freedb.org o allmusic.com, reproducir, catalogar los archivos en una biblioteca, etc. Al instalarse, el programa está en inglés, pero se puede cambiar al español mediante el menú File > Options > General > Use language file > Spanish.lng.

Ant Movie Catalog
Ant Movie Catalog es una base de datos diseñada especialmente para manejar una colección de películas. Permite importar los datos de las películas de bases de datos disponibles en Internet, exportar la información en varios formatos, realizar búsquedas, informes, préstamos, estadísticas, etc. Al instalarse, el programa permite elegir el idioma español o catalán, entre otros.

GCfilms
GCfilms es una base de datos diseñada especialmente para manejar una colección de películas. Permite importar los datos de las películas de bases de datos disponibles en Internet, exportar la información en varios formatos, realizar búsquedas, informes, préstamos, estadísticas, etc. Al instalarse, el programa está en inglés, pero se puede cambiar al español mediante el menú Settings > Preferences > Main > Language > Español.

Berkeley DB
Berkeley DB es un motor de base de datos de alto rendimiento y muy escalable que puede incluirse en cualquier aplicación.

DBDesigner
DBDesigner es un programa de diseño visual de bases de datos que integra el diseño, modelado, creación y mantenimiento. Está optimizado para MySQL.

Firebird
Firebird es una base de datos relacional que ofrece muchas características de ANSI SQL-92. El proyecto comenzó a partir de la versión libre de Interbase publicada por Borland en el año 2000, aunque ahora sigue su propio camino.

MySql
MySQL es un servidor de bases de datos SQL.
Para instalarlo una vez descargado de Internet, hay que descomprimir el archivo zip en una carpeta y ejecutar el programa Setup.exe.

MySQL Administrator
MySQL es una consola de administración gráfica que permite administrar y mantener cómodamente las bases de datos creadas con MySQL.

MySQL Query Browser
MySQL Query Browser es una herramienta gráfica para crear, ejecutar y optimizar consultas SQL contra un servidor de bases de datos MySQL.

pgAdmin3
pgAdmin3 es una herramienta de administración y desarrollo para la base de datos PostgreSQL.
El programa no necesita instalación: hay que descomprimir el archivo zip en una carpeta y ejecutar el programa pgadmin3.msi.

PostgreSQL
PostgreSQL es un sistema gestor de bases de datos relacional y orientado a objetos (ORDBMS), de gran escalabilidad.

SQLCommand
SQLCommand está enfocado al aprendizaje de SQL. Permite crear bases de datos, ejecutar comandos SQL y navegar por la BD como en una página web, entre otras características.

PECL
PECL (PHP Extension Community Library) es un conjunto de módulos para ampliar las capacidades de PHP (creación de pdf, manipulación de archivos zip, etc.). Varios de estos módulos estaban incluidos en PHP 4, pero ya no lo están en PHP 5.

PHP
PHP (PHP Hypertext Preprocessor) es un lenguaje de programación dirigido a la creación de páginas web en el servidor. Este instalador de Windows sólo contiene CGI y soporte MySQL, sin extensiones externas; instala y configura PHP y configura automáticamente IIS, PWS y Xitami.

PHP Designer
PHP Designer es un entorno de desarrolo que combina PHP, HTML, XHTML, CSS y SQL. Incluye un navegador de clases, integración del manual de PHP, indicación de parámetros, cliente FTP, plantillas, gestor de archivos y proyectos, etc.

Tulip
Tulip es un editor de PHP creado en PHP y que utiliza GTK para el interfaz de usuario. Además de autocompletado, resaltado de sintaxis y documentación de PHP, Tulip incluye controles FTP y CVS, así como un navegador de bases de datos (MySQL y PostgreSQL).

Drupal
Drupal es un sistema de gestión de contenidos (CMS) basado en PHP y MySQL o PostgreSQL que permite la administración de usuarios, documentos, discusiones o noticias. Desde la página web del programa se pueden descargar muchos módulos para ampliar las capacidades de Drupal.

Joomla!
Joomla! es un sistema de gestión de contenidos (CMS) basado en PHP y MySQL. Los desarrolladores de Joomla! son los antiguos creadores de Mambo que, por desavenencias con la Fundación Mambo, en septiembre de 2005 comenzaron este nuevo proyecto.

Mambo
Mambo es un sistema de gestión de contenidos (CMS) basado en Apache, PHP y MySQL.

Moodle
Moodle (Modular Object-Oriented Dynamic Learning Environment) es un sistema de gestión de contenidos (CMS) basado en PHP y MySQL (o PostgreSQL), especialmente dirigido a la enseñanza. En el proceso de instalación puede elegirse el idioma (español, catalán, gallego o vasco, entre otros). Esta es la última versión de la rama estable.

Plone
Plone es un sistema de gestión de contenidos (CMS) basado en Zope y en CMF (Content Management Framework). Puede utilizarse como servidor de intranet o extranet, como sistema de publicación de documentos, como portal y como herramienta de trabajo en grupo.

XOOPS
XOOPS (eXtensible Object Oriented Portal System) empezó siendo un sistema de portales, aunque ha ido evolucionando hacia un sistema de gestión de contenidos (CMS) basado en PHP y MySQL.

EasyPHP
EasyPHP es un paquete que combina el servidor Apache, la base de datos MySQL y el lenguaje de programación PHP.

PHP Home Edition
PHP Home Edition es un paquete que combina el servidor Apache, la base de datos MySQL y el lenguaje de programación PHP.

Uniform Server
Uniform Server es un paquete que combina el servidor Apache, la base de datos MySQL y el lenguaje de programación PHP. Este paquete está configurado para un entorno de producción.

XAMPP
XAMPP es un paquete que combina Apache 2.2.0, MySQL 5.0.18, PHP 5.1.1 + PEAR, Perl, mod_php, mod_perl, mod_ssl, OpenSSL, phpMyAdmin 2.7.0, Webalizer, Mercury Mail Transport System para Win32 y NetWare Systems v3.32, JpGraph, FileZilla FTP Server, mcrypt, eAccelerator, SQLite, y WEB-DAV + mod_auth_mysql.

MediaWiki
MediaWiki es el paquete de software
Wiki utilizado en la enciclopedia libre WikiPedia.

Zope
Zope es un servidor de aplicaciones web escrito principalmente en Python. Contiene una base de datos transaccional orientada a objetos que puede almacenar contenido, datos personales, plantillas dinámicas HTML, scripts, un motor de búsqueda y conexiones con bases de datos relacionales.

MOZiE
MOZiE permite a los diseñadores de páginas web comparar el resultado de su trabajo en Mozilla e IE simultáneamente, así como a diferentes resoluciones.

Mozilla ActiveX Control
Mozilla ActiveX Control es un control ActiveX que permite utilizar el motor de Mozilla en cualquier aplicación de Windows.

Resize Browser
Resize Browser permite modificar el tamaño de las ventanas de los navegadores con un sólo clic. Está pensado para que el diseñador de páginas web pueda probar fácilmente cómo quedan sus páginas a diferentes resoluciones (640x480, 800x600, 1024x768, etc).

FreeDOS
FreeDos es un sistema operativo compatible con MS-DOS. Para instalar FreeDOS, el ordenador debe permitir arrancar desde el CD-ROM. Desde la página web del programa es posible descargar programas y utilidades libre

Childsplay
Childsplay es un conjunto de 11 juegos y actividades educativas para niños entre 2 y 7 años. El programa se instala en el idioma del sistema (español, etc).

GCompris
GCompris es un conjunto de actividades educativas para niños entre 2 y 10 años. El programa se instala en el idioma del sistema, pero se puede cambiar a otros idiomas mediante el menú Configuración.

Logisim
Logisim es un programa de diseño y simulación de circuitos lógicos digitales, desde los más sencillos hasta CPUs completas.

Seterra
Seterra permite comprobar y ampliar conocimientos de Geografía mediante 70 ejercicios diferentes sobre países, banderas y ciudades de todo el mundo. Además, como el programa funciona en 5 idiomas, también se puede practicar inglés, francés, alemán y sueco.

World Wind
World Wind es un programa desarrollado por la NASA que permite explorar la superficie terrestre y lunar utilizando las imágenes de satélites y mapas topográficos disponibles en Internet.

WW2D
WW2D permite explorar la superficie terrestre utilizando las imágenes de satélites y mapas topográficos disponibles en Internet.

WXTide
WXTide es un programa de predicción de mareas que recoge información de 8800 lugares del mundo y la ofrece en forma gráfica o tabular.

Selingua
Selingua permite practicar vocabulario en cinco idiomas (Inglés, Alemán, español, Francés y Sueco, con más de 2000 palabras en cada uno de ellos). Contiene seis tipos diferentes de ejercicios (entre ellos, crucigramas), cada uno con diferentes niveles de dificultad.

Selingua Columns
Selingua Columns es un juego similar al Tetris que permite aprender inglés, francés, alemán, sueco o español. Las piezas que caen están rotuladas con palabras en dos idiomas y se trata de hacer coincidir las palabras con el mismo significado.

Anagramarama
Anagramarama es un juego para practicar vocabulario. A partir de siete letras, en cinco minutos deben construirse el mayor número de palabras posibles.
El programa no necesita instalación: hay que descomprimir el archivo zip en una carpeta y ejecutar el programa ag.exe.

Sephonics
Sephonics permite practicar el alfabeto fonético inglés mediante siete ejercicios diferentes.

CubeTest
CubeTest es un programa para practicar la visión espacial, dirigido a la escuela primaria. El usuario tiene que contestar diez preguntas tipo test. En cada una de ellas, CubeTest muestra un cubo y cuatro posibles vistas diferentes del mismo cubo (sólo una de ellas es correcta).

TuxMathScrabble
TuxMathScrabble es un juego de
Scrabble matemático, con números y las cuatro operaciones elementales. El juego dispone de cuatro modos de juego que se distinguen en el rango de valores y operaciones disponibles.

Gtypist
GNU Typist es un programa para aprender a escribir a máquina. Es un programa MS-DOS con un interface muy elemental, pero dispone de lecciones en español.

TuxType2
TuxType2 es un programa para aprender a escribir a máquina dirigido a un público infantil. Contiene lecciones, ejercicios y juegos protagonizados por el pingüino Tux. Al instalarse, el programa está en inglés, pero se puede cambiar al español, catalán o vasco mediante el menú Options > Setup Language.

TypeFaster
TypeFaster es un programa para aprender a escribir a máquina, con lecciones modificables, estadísticas de progreso y un juego incluido. Al instalarse, el teclado que muestra es el teclado inglés, pero se puede cambiar al español mediante el menú Edit Settings > Change Layout Enabled.

gmorgan
gmorgan es una caja de ritmos que permite secuenciar, crear, mezclar, reproducir y grabar ritmos y melodías MIDI.

Lilypond
Lilypond permite generar partituras musicales de gran calidad visual a partir de archivos de texto. Los archivos de texto deben estar escritos siguiendo una notación especial propia de Lilypond.

Solfege
Solfege es un programa dirigido al entrenamiento del oído musical, mediante ejercicios simples y mecánicos (reconocimiento de intervalos, comparación de intervalos, dictado, etc.). Al instalarse, el programa está en inglés, pero se puede cambiar al español

EQTabla
EQTabla proporciona multitud de datos y varios gráficos relativos a los elementos químicos. El programa se instala en el idioma del sistema, pero se puede cambiar al español o catalán mediante el menú Idiomas.

PyMOL
PyMOL es un visualizador molecular que soporta animaciones, renderizado de alta calidad, cristalografía, etc.

Alice
Alice es un entorno para aprender a programar a través de la creación de mundos virtuales animados.

Clic
Clic es una aplicación que permite realizar diversos tipos de actividades educativas: asociaciones, rompecabezas, ejercicios de texto, palabras cruzadas ...

JClic
JClic es una aplicación que permite realizar diversos tipos de actividades educativas: asociaciones, rompecabezas, ejercicios de texto, palabras cruzadas ...

Recuerda Más
Recuerda Más es un programa de ayuda al estudio. Permite crear colecciones de fichas con preguntas y respuestas que incluyen texto e imágenes e incluye varias colecciones de muestra.

Squeak
Squeak es una herramienta y un entorno de creación multimedia, especialmente adecuado para fines educativos. Squeak es una implementación de SmallTalk-80.

Tales Animator
Tales Animator permite crear películas de dibujos animados. Una vez escrito el guión (definiendo el fondo, los personajes, su desplazamiento, comportamiento, diálogos, etc), se puede exportar la película en formato avi.

Bitstream Vera
El proyecto GNOME ha financiado la creación de estas fuentes, realizadas por la casa Bitstream, que ahora se distribuyen bajo una licencia libre. En total son 10 fuentes (tres fuentes básicas -sérif, sans-sérif y monospace-, más varias variantes en negrita e itálica).

Gentium
Gentium es una fuente que incluye todos los caracteres latinos de Unicode, así como los caracteres griegos antiguos y modernos.

Art of Illusion
Art of Illusion es un estudio de modelado y renderizado 3D.

AutoQ3D
AutoQ3D es un programa de modelado 3D potente, flexible y fácil de utilizar.

Blender
Blender es una suite de creación de gráficos 3D que permite modelar, animar, renderizar y crear y reproducir juegos y gráficos 3D interactivos en tiempo real.

POV-Ray
POV-Ray (Persistence of Vision Raytracer) es una herramienta para crear imágenes tridimensionales fotorealistas mediante la técnica de trazado de rayos.

Wings 3D
Wings 3D es un modelador de subdivisiones en 3D.

Yafray
Yafray (Yet Another Free RAY tracer) es un motor de renderizado externo que puede utilizarse como plug-in de Blender.

Configuración de redes en Linux

La configuración de las redes en Linux se realiza principalmente en el archivo etc/network/interfaces, donde se especificaran las características de las tarjetas de red, su IP si es fija, puerta de acceso, redes, etc… en la pagina man (man 1 interfaces) hay una completa guía de cada uno de los parámetros que se le pueden poner.

La IP de los servidores de nombre de dominio se pondrán en el archivo /etc/resolv.conf así como el dominio al que pertenece ese ordenador. El nombre de la red debe estar también en /etc/networks

El nombre del PC debe estar en /etc/hostname, el par nombre IP debería estar también en el archivo /etc/hosts para asegurar el correcto funcionamiento de todos los programas.

Iptables:
En caso de que el PC tenga varias tarjetas de red, o que proporcione servicios de red a otros ordenadores, debe activarse las opciones de iptables y ipforwarding en el núcleo y pasarle al inicio las reglas de funcionamiento.
Todo esto se realiza a través de ficheros en /etc/init.d

Servicios SAMBA:
Samba es un conjunto de programas que permiten la integración de Linux con otros Unix o con los sistemas operativos de Microsoft, gracias a samba es posible sustituir un Servidor NT o XP Profesional con un servidor Linux, principalmente proporciona dos servicios:

  • Compartir Archivos
  • Compartir Impresoras

Adicionalmente proporciona acceso a archivos e impresoras en sistemas con Windows, servicios de identificación, gestion de dominios, y otras opciones.
Se controla desde el archivo /etc/samba/smb.conf, y si esta instalado swat, tiene un interfaz grafico funcionando como un servidor web en http://localhost:691, ademas tambien esta disponible un simple interfaz grafico.

Servicios de DNS:
DNS es el sistema que convierte las direcciones IP en nombre de dominio, mas faciles de recordar.
Configuración local: La resolucion de nombres en Linux se controla con dos archivos:
/etc/resolv.conf controla el orden de los sistemas a los que se preguntara, aquí es donde hay que poner las IP de los DNS
/etc/hosts contiene una lista de pares, IP – Nombre de dominio que pueden ser resueltos sin falta de consultar al dns, util en pequeñas intranets donde no merezca la pena montar un dns.
En cuanto a los servidores de DNS, tenemos dos opciones en funcion de las necesidades:

Pdns: Es un proxy dns, su mision es reducir y acelerar el trafico entre la intranet e internet, es util en pequeñas intranets con acesso a internet.
Sirve ademas para resolver nombres de dominio a pequeña escala, cogiendolos del archivo /etc/hosts.
Su principal ventaja es su pequeño tamaño y facil configuración, en contra su limitada funcionalidad

Bind: En el caso de necesitar servicios de resolución de nombres mas avanzadas, bien por tener que proporcionar un gran numero de respuestas, por servir varios dominios u otras características se utiliza bind.
Bind se controla a través de una serie de archivos, de sintaxis concreta.

Servicios de web y ftp

Servicios Web

Existen una gran multitud de servidores web disponibles bajo Linux, aunque el mas ampliamente utilizado es apache.
La configuración de apache se realiza a través de varios archivos localizados en /etc/apache/ siendo el principal /etc/apache/httpd.conf donde se configura los posibles servidores virtuales (apache puede responder a distintos nombres y proporcionar webs diferentes a cada uno de ellos), y todo lo relacionado con su funcionamiento.
Apache tiene una serie de módulos que le permiten aumentar o mejorar las características que trae, son controlados desde /etc/apache/modules.conf

Servicios de FTP

Entre todos los servidores de ftp disponibles, porFTPD destaca por ser seguro y fácil de administrar.
En /etc/protfpd.conf en archivo con una estructura similar a la de los html, es posible controlar por un lado el aspecto del servidor, nombre, puerto que escucha, etc…
Por defecto deja entrar a los usuarios no root, y navegar por el sistema de ficheros como si estuviesen en una sesión de shell. Limitarlos a su propio directorio es tan simple como añadir una línea que ponga DefaultRoot ~ y reiniciar el demonio.
Es posible controlar además el acceso de usuarios anónimos, a que directorios pueden acceder, subir cosas, etc...
Así mismo se puede controlar la velocidad, numero de accesos simultáneos, cuota de disco y al igual que en apache, crear servidores virtuales que respondan de manera diferente a distintos nombres.

Servicios de Acceso Remoto

Existen cuatro posibilidades de acceso remoto a un ordenador con Linux

Servidor X
Un ordenador ejecutando un servidor X, puede recibir peticiones desde otro conectado en red para mostrar en su pantalla un programa, este sistema solo es util en equipos conectados en la misma red local.

VNC
Este sistema es similar al anterior, pero además permite ser utilizado en conexiones lentas, incluso de modem y tiene persistencia, esto es, si desconectas el cliente, y conectas desde otro sitio, todo sigue como lo dejaste.

Telnet
Es el sistema mas simple y antiguo, abre una session en modo texto en otro ordenador, el principal problema es que todo viaja por Internet sin seguridad, incluyendo contraseñas o otros datos sensibles.

SSH
SSH permite la ejecución remota de programas, incluyendo el shell, lo que en la practica lo hace una alternativa a Telnet, su diferencia esta en que todo viaja por la red de forma cifrada, lo que aumenta la seguridad, también es posible comprimir los datos o utilizarlo como túnel y así tener p.e. una sesión de VNC segura gracias al ssh.

Como compiliar / recompilar el Kernel en linux

En Linux el 99% de los drivers de hardware, así como algunas características especiales, vienen en un paquete llamado Kernel, que se distribuye en código fuente, y que es necesario configurar y compilar cuando se quiera cambiar o añadir alguna de estas características.
El 1% restante lo forman fabricantes de Hardware que en lugar de proporcionar el código fuente del driver, dan ya el driver compilado, en forma de modulo insertable, siendo las principales desventajas de este sistema el que debes utilizar la versión de kernel para la que el fabricante creo el modulo (que nunca suele ser la ultima), y que no puedes confiar en su seguridad (ni puede ser auditada externamente).
El kernel tiene un numero de versión compuesto por tres cifras, la segunda si es impar indica un kernel en desarrollo, y no utilizable en entornos de producción, si es par, es un kernel estable, la ultima indica el numero de revisión, y suele actualizarse cada poco tiempo, con soluciones a fallos y nuevos drivers.
Cada cierto tiempo la versión en desarrollo se convierte en estable, añadiendo a Linux nuevas características.
Debido a que cada vez son mas y mas las características que tiene el kernel, muchas de ellas están separadas en módulos, piezas de kernel que solo se utilizan cuando son necesarias, y permiten reducir el tamaño general del kernel y hacerlo mas manejable, durante la configuración del kernel deberemos decidir que partes del kernel estarán disponibles como módulos, cuales de manera permanente y cuales no estarán disponibles.
Así por ejemplo si no tenemos un sistema bluetooth, podemos configurarlo como no disponible. El sistema de Acceso a CD podemos ponerlo como modulo, si el CD no lo utilizamos constantemente, en cambio el soporte para Discos Duros deberemos tenerlo disponible constantemente, pues de lo contrario no podremos usar el S.O.
Como durante el proceso hay que compilar el kernel, es necesario tener instalado el compilador de C, así como sus herramientas auxiliares, y las librerías de TK, o a partir de la versión 2.6 QT o GTK si quieres configurarlo de manera grafica.
El kernel puede ser bajado desde www.kernel.org donde encontraremos una lista de mirrors, esto es sitios iguales, que tienen el paquete, ya que es un archivo muy grande, con tamaños próximos a los 30 Mb, también están disponibles parches, para en el caso de tener la versión anterior del kernel, ahorrar tiempo de descargar.

Pasos para compilar / recompilar el kernel de linux

El kernel debe ser descomprimido en /usr/src.

Se ejecuta make clean para asegurar una compilación limpia, o si quieres empezar de cero make mrproper.

Se ejecuta el programa de configuración make xconfig (modo grafico), make gtkconfig (modo gnome solo
a partir de 2.6), make qtconfig (modo KDE solo a partir de 2.6), make menuconfig (modo texto).

Una vez echo esto se procede a compilar he instalar:


Make dep (solo en versiones previas a la 2.6, o si cambias opciones y recompilas)

make bzImage; make modules; make modules-install


Tras lo cual queda copiar el “kernel” un archivo llamado vmlinuz desde /
usr/src/Linux/arch/i386/boot/bzImage a /boot o al lugar donde le tengamos indicado a LILO (o GRUB) que busque el kernel, ejecutamos LILO (o GRUB) para actualizar los cambios y reiniciamos.
Opcionalmente puedes hacer make install, que realizara las ultimas opciones por ti.

El sistema X Windows de linux

Linux es un sistema en modo texto, como puede serlo el MS-Dos. Además, incluye una extensión, el sistema X Windows versión 11, conocido como las X, o como X11.

Este sistema se carga encima del de modo texto, pero a diferencia de lo que sucede con MS-Dos + windows no disminuye su rendimiento, al ser ya de por sí Linux un sistema multitarea de 32 bits.

Por lo anterior dicho, es conveniente empezar a aprender a manejar Linux desde modo texto.

Además hay que tener en cuenta que el sistema de ventanas de Linux, se basa en una arquitectura Cliente-Servidor, mas o menos esto significa que el programa no tiene por que ejecutarse en el mismo ordenador en que lo estas viendo, y que un mismo ordenador puede ejecutar varios programas o sesiones X para una o mas pantallas,

En la práctica esto simplemente significa que si tuvieses que proporcionar ordenadores a 10 personas que en un determinado momento necesitasen mucha potencia, podrías darles 10 ordenadores muy potentes, o 10 ordenadores normales y un gran ordenador que todos compartirán cuando necesiten potencia (que suele ser lo mas barato, quizás no con 10 pero sí con 100).

El sistema X Windows, en un principio se creo para solucionar la necesidad de ciertas personas de ver gráficos de sus aplicaciones, o de tener mas de una pantalla a la vez, estas personas normalmente eran científicos o programadores, así que las X se limitan a dar un trozo de pantalla donde puedes dibujar o leer.

Más tarde la gente descubrió que lo del ratón era intuitivo y que en lugar de teclear largas líneas de comandos era más fácil hacer clic con el ratón apuntando sobre un cuadrado con unas letras (botón).

Además como les quedaba muy pobre lo de los tres o cuatro trozos en la pantalla decidieron añadir un marco a esos trozos llamados ventanas.

Surgen así dos temas, bastante controvertidos en Linux.

  • Los Widget, o ventartilugios, como alguien llamo ( los botones y demás)
  • Los Windows Manager, los administradores de ventanas ( lo bordes)

Los Windows Manager son el programa que se encarga de dar marco a las ventanas, como cada uno hace lo que quiere, hay cientos, desde basicos como el TWM, eficaces como el Fvwm 2. A vistosos y barrocos como el Enlightment. Además suelen proporcionar unos menús y alguna aplicación para hacer un poco menos inhóspitas las X, (principalmente menús, o una barra de herramientas para ejecutar aplicaciones).

Los widget son los que dan aspecto a los programas, es lo que diferencia un botón de Mac de uno de Win95 y de uno de SCO. Aquí ya no depende de lo que tu elijas, si no de lo que elija el programador, aunque se puede cambiar a través de temas, algunos de los mas conocidos son el polémico QT, Motif, Gtk, Athena, Xform. Como cada programador hace lo que quiere, suele pasar que tengas varias aplicaciones y no se parezcan nada entre ellas.

Últimamente ha surgido una serie de movimientos que intentan cambiar esto, así aparecen los gestores de escritorio.

Entorno Grafico

Un gestor de ventanas, una librería de widgets, un montón importante de aplicaciones tontas ( el buscaminas, el reloj, la agenda), y algunas más importantes, ( Procesador de Textos, Hoja de Calculo, Base de Datos, Navegador de Internet, Programa de Presentaciones) y algunas utilidades para configurar todo esto a base de ventanas.
Su interés es conseguir unas X atractivas y fáciles de manejar, algunos como OpenStep, un entorno que imita NextStep, o xfce que intenta hacer un gnome más liviano, aunque hay dos que destacan sobre los demás en cuanto a porcentaje de utilización:

Kde

Ya en su versión 3.1 junto con Koffice, su principal achaque es que el widget esta desarrollado por una empresa privada, y puede cortar su futuro desarrollo, aunque esta posibilidad es mínima gracias a que QT ya es software libre, el aspecto es soberbio. Esta programado en su mayoría en C++
Entre los programas que destacan de KDE están:
Quanta: Editor de paginas Web, con opción wysiwyg, similar a dreamweber
Qcad: Programa de CAD
Scribus: Programa de autoedición similar al Quark Express
K3B: Programa de grabación de CD similar al Nero

Gnome

Esta basado en gtk, un widget completamente libre, y con unas vistas un poco mas altas (gnome no solo da las aplicaciones con un aspecto único, intenta dar toda una serie de objetos para el desarrollo de aplicaciones, programables en una multitud de lenguajes) Ya va por la versión 2.0, y también tiene un conjunto ofimático tipo Office, aunque menos integrado que este y con la falta de algunos programas.
Interesa destacar que OpenOffice.org va a sacar próximamente una versión nativa de su suite ofimática para Gnome, además de la propia que gnome desarrolla.
Uno de sus productos estrella es Evolution, un clon del Microsoft Outlook, del que es compatible y superaen prestaciones.
Gimp, un programa a la altura de photoshop para el retoque grafico.
GnuCash es un excelente programa de contabilidad tanto a nivel empresarial como del hogar.

Apagar el sistema operativo linux

El ordenador no se puede apagar por las buenas, como harías con la tele. Debes antes decirle que lo vas a apagar, para que el ordenador deje las cosas en orden.
Apagar es algo que solo puede hacer el root, o habitualmente el que esta situado en la consola (consola es el conjunto de monitor-teclado principal, es decir el que esta conectado directamente al ordenador y no a un puerto serie, o por telnet)
Si estas situado en la consola, pulsa ctrl-alt-del, esto debería iniciar el proceso de apagado o reinicio de la maquina, según lo configures. Al final, deberías ver un mensaje que pone SYSTEM HALTED, o el típico mensaje de la bios al arrancar, ahora es cuando debes apagar el equipo.
Suponiendo que seas root, para apagar el equipo teclea shutdown -fh now, no es necesario que estés en la consola.
La f significa que el próximo arranque sea rápido, es decir que no compruebe los discos al iniciarse.
La h significa que se pare, ( al final veras el mensaje system halted).
Si hubieses puesto una r se reiniciaría,
y verías el mensaje de la bios.
Now, significa que apagues o reinicies en ese instante
Si pones una hora, el reinicio se realizara a esa hora.
Si pones
+n, el reinicio se hará en n minutos, esto es útil, por que se envía un mensaje a todos los usuarios que hay indicándoles que en n minutos ( o a la hora x) se reinicia el ordenador, y de paso impide nuevas entradas de usuarios.
Si hubiese un proceso de reinicio en curso ( por ejemplo has dicho que reinicie dentro de 5 minutos) puedes cancelarlo con shutdown -c.

Permisos Linux

Veamos el sistema de permisos en Linux.

Linux / Unix son sistemas operativos multiusuario, donde mucha gente puede estar usando el mismo disco duro, así que es necesario un sistema que sea capaz de poner un poco de orden a todo esto y decidir de quien es cada cosa, y quien puede usarla.

Permisos Linux

Todo en Linux tiene un dueño y un grupo. El dueño es generalmente el que lo creo, aunque se puede cambiar, y el grupo es un grupo de usuarios que tiene privilegios especiales sobre el resto de los usuarios. Imagina que una empresa usa una computadora, y dentro de esa empresa, hay departamentos de marketing, investigación y dirección, es posible crear grupos de usuarios que pertenezcan a uno o mas de esos grupos, y tener ficheros que un grupo vea y otro no ( por ejemplo para evitar que los de marketing vean lo que hacen los de investigación).
El dueño, adema puede tener otro tipo de privilegios sobre el grupo, por ejemplo puede además de verlo, modificarlo.

Privilegios o permisos de archivos Linux

Para ver los permisos y dueños de un fichero utiliza ls -l, veras que aparecen columnas, la primera es una letra (que indica el tipo de archivo que es) y un grupo de guiones, x,w, y r, luego un numero, y luego dos nombres o números. El primero, el dueño del fichero y el segundo el grupo, luego aparece tamaño y fecha de creación y por ultimo el nombre del fichero.
Para cambiar el dueño se utiliza el comando chown nombre fichero(s), para cambiar el grupo chgrp nombre fichero(s), o todo de una vez, chown nombre.grupo fichero(s).
La primera columna de ls -l indica los privilegios o permisos en Linux de cada tipo de usuario, además del tipo de fichero.
La primera letra será una d si es un directorio, un guión si es un fichero normal y otro signo si es un fichero especial.
Luego hay tres conjuntos de letras xrw, o en su lugar guiones, indican los permisos en Linux del dueño, del grupo y del resto de usuarios.
La x indica que es un fichero ejecutable, un programa, y según donde aparezca lo podrán ejecutar el dueño, grupo y/o todos los usuarios.
La r indica quien puede leer ese fichero.
La w indica quien puede escribir ( o modificar o borrar) ese fichero.
Así puedes hacer que un documento solo lo puedas ver tu dándole permisos de archivo -rw------, o que lo pueda ver y modificar la gente de tu grupo, y el resto solo leerlo, -rw-rw-r-.

chmod y los permisos Linux

Cambiar los permisos Linux es un poco complicado, hay que usar chmod permisos nombredeficheros
Los permisos puede ser gente+accion+permiso, siendo gente u - usuario, g - grupo, o - los otros, la acción un guión para quitar el permiso y el signo + para darlo y luego x,r y/o w según el permiso, así:

chmod go+rw fichero hace que el grupo y todo el mundo puede leer y escribir el fichero.

chmod o-rwx fichero hace que los otros no pueden ni leer ni escribir ni ejecutar el fichero.

Además si sabes un poco de binario y octal puedes sustituir eso por un numero:

xrwxr-xr ( tu puedes leer/modificar y ejecutar, el resto solo leer y ejecutar) seria chmod 755 fichero

permisos -rw-r---- seria 640, sustituye cada letra por un uno binario, y cada guión por un cero binario, y luego pásalo a octal, con la practica es muchísimo mas rápido de usar que la opción anterior.

Con esta explicación, ya tendremos un poco mas claro de que se tranan los permisos Linux, y como asignar permisos a los archivos de linux.

Servicios en Linux

Desde que se arranca el ordenador hasta que aparece login se ejecutan una serie de programas, que se encargan de configurar el ordenador, y lanzar los diferentes demonios o servicios que estarán funcionando todo el tiempo.
Para hacer mas versátil al ordenador, se le ha dotado de la posibilidad de definir niveles (quizás fuese mejor llamarlos roles, pues no todos tienen un orden con respecto a los demás) en función de los servicios necesarios.
Este sistema esta basado en el Unix System V, existe otra opción basada en el Unix BSD, pero no es tan utilizada.
Así el nivel 0 se ejecuta al arrancar, el 6 al reiniciar y 1 es el modo monousuario, para administración.
Los niveles 2 al 5 están disponibles para que el usuario defina hasta 4 roles de funcionamiento.
Así por ejemplo el 5 suele ser el único en que se ejecuta el servidor grafico X, aunque todo esto es configurable.
Existe un directorio /etc/init.d donde están shellscripts de cada uno de los servicios disponibles.
Existen además una serie de directorios /etc/rc.N donde N es el runlevel, que contienen enlaces simbolicos a los shellscripts de /etc/init.d
El nombre del enlace tiene una forma especial: XNNshellscript, donde X puede ser una S (Star) o un K (kill) y controlara que ese servicio se inicie o se termine al entrar en ese runlevel, después NN es la prioridad de ese servicio, servicios con la prioridad mas baja se iniciaran antes que aquellos con la prioridad mas alta, de esta manera es posible p.e. controlar que el servidor web (S80apache por ejemplo) no se inicie hasta que se haya iniciado la red (S30 network por ejemplo).
Además de administrar los servicios a través de los nombre y los enlaces, están disponibles herramientas graficas una administración mas cómoda.

Inetd: Existe un tercer tipo de servicios, normalmente de red, que no se ejecutan como demonios, si no bajo demanda, estos servicios se controlan desde un archivo de texto en /etc/inetd.conf.
El que un servicio, por ejemplo un servidor de paginas web, se ejecute como demonio o bajo demanda, dependerá del uso, si va ha ser intensivo, o solo se utilizara de vez en cuando. Además los demonios consumen mas memoria del sistema, pero los servicios de inetd tardan mas tiempo en empezar a funcionar.

Procesos en ejecución Linux

Con el comando ps o top que es interactivo se pueden ver los procesos (programas) que están funcionandoen ese momento en el ordenador.
Algunos de estos programas están funcionando de manera transparente desde el inicio del sistema operativo linux y se los denomina daemons, demonios, y son los encargados de que funcionen los distintos servicios que da el sistema operativo.
Entre otra información muestran el PID, un numero único en ese momento para cada proceso, que nos permitirá mas adelante modificar el proceso.
Estos procesos se pueden controlar de varias maneras, pues es posible cambiarles la prioridad, para hacer que estén funcionando pase lo que pase, o solo en momentos de poco uso del ordenador, así como enviarlos a segundo plano, para poder seguir trabajando en el shell mientras se ejecutan, o terminarlos antes de tiempo.
Si cuando lanzamos un programa añadimos & al final, este se ejecutara en segundo plano, devolviéndonos inmediatamente al prompt.
Un programa normal puede ser suspendido pulsando ctrl.-Z o cancelado con ctrl.-Z.
Para continuar la ejecución de un programa suspendido escribiremos fg, o bg si queremos que se siga ejecutando en segundo plano.
Jobs nos muestra que programas hemos ejecutado en esa sesión, así como cuales están parados y cuales funcionando en segundo plano, muestra además un numero después del signo %, que es relativo y puede ser utilizado en lugar del PID, por ejemplo bg %2 llevaría a segundo plano el penúltimo (el ultimo seria %1) programa que hallamos ejecutado (y que aun no halla terminado).
Nice prioridad programa, o renice prioridad PID, permiten lanzar un programa con una prioridad diferente, o cambiar la de uno que ya se esta ejecutando, desde 20, que es la mínima prioridad, 0 la prioridad normal o -19 máxima prioridad (solo root puede poner prioridades negativas).
Kill PID, termina el programa que tenga ese PID.
killall programa
, termina todos los programas que se ejecuten con ese nombre, es posible terminar el programa de diversas maneras, con Kill -9 o Kill -15, en función del tipo de terminación que queramos.

Comandos del sistema operativo Linux

rm archivo(s) elimina el/los archivo(s) que le indiques.

Además rm -rf directorio borra el directorio y todo lo que hubiese dentro.

El comando para mover, mv, permite dos operaciones, por un lado nos permite cambiar un archivo de sitio, para esto es necesario que tengamos permiso de escritura sobre ese archivo y el lugar de destino, simplemente indicando mv nombre_origen ruta_destino. Cabe destacar que es posible no solo mover fichero, si no también directorios, o todos los ficheros de un directorio utilizando comodines.

La otra operación que se puede realizar con mv es el cambio de nombre, así basta con indicar el nombre de un archivo o directorio, y luego su nuevo nombre.

Otra cosa interesante es saber cuanto espacio estamos ocupando en un determinado directorio, basta con escribir du.

Para saber el espacio que hay libre en el disco, utilizaremos df.

Si queremos borrar la pantalla utilizaremos clear.

El valor NULL en Php

Si nos dedicamos a la programación con Php, es necesario aprender a utilizar el valor NULL en Php

El valor NULL Php


El valor especial NULL representa que una variable no tiene valor. NULL es el único valor posible del tipo NULL.

El tipo null se introdujo en PHP 4.

Una variable es considerada como NULL si :

  • se ha asignado la constante NULL a la variable.
  • no ha sido definida con valor alguno.
  • ha sido eliminada con unset().

Sintaxis del valor NULL en Php

Existe un solo valor de tipo NULL en Php, y ese es la palabra clave NULL, insensible a mayúsculas y minúsculas.

<?php

$var = NULL;

?>

Ahora ya sabes como utilizar el valor NULL en programación Php.

Programar objetos con Php

Inicialización de Objetos

Para inicializar un objeto, use la sentencia new, lo que instancia el objeto a una variable.

<?php

class foo

{

function hacer_foo()

{

echo "Haciendo foo.";

}

}

$bar = new foo;

$bar->hacer_foo();

?>

Conversión a objeto

Si un objeto es convertido a un objeto, éste no es modificado. Si un valor de cualquier otro tipo es convertido a objeto, una nueva instancia de la clase stdClass es creada. Si el valor era NULL, la nueva instancia será vacía. Las matrices son convertidas a objeto usando las claves de la matriz como nombres de propiedades y con sus valores correspondientes. Para cualquier otro valor, una variable miembro llamada scalar contendrá el valor.

<?php

$obj = (object) 'ciao';

echo $obj->scalar; // imprime 'ciao'

?>

Programar matrices en Php

Una matriz o array en PHP es en realidad un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado en varias formas, de modo que puede usarlo como una matriz real, o una lista (vector), tabla asociativa (caso particular de implementación de un mapa), diccionario, colección, pila, cola y probablemente más. Ya que puede tener otra matriz o array PHP como valor, es realmente fácil simular árboles.

Especificación con array()

Un array puede ser creado por la construcción de lenguaje array(). Ésta toma un cierto número de parejas clave => valor separadas con coma.


array( clave => valor

, ...

)

// clave puede ser un integer o string

// valor puede ser cualquier valor


<?php

$matriz = array("foo" => "bar", 12 => true);

echo $matriz["foo"]; // bar

echo $matriz[12]; // 1

?>

Una clave puede ser un integer o un string. Si una clave es la representación estándar de un integer, será interpretada como tal (es decir, "8" será interpretado como 8, mientras que "08" será interpretado como "08"). Los valores flotantes en clave serán truncados a valores tipo integer. No existen tipos diferentes para matrices indexadas y asociativas en PHP; sólo existe un tipo de matriz, el cual puede contener índices tipo entero o cadena.

Un valor puede ser de cualquier tipo en PHP.

 

<?php

$matriz = array("unamatriz" => array(6 => 5, 13 => 9, "a" => 42));

echo $matriz["unamatriz"][6]; // 5

echo $matriz["unamatriz"][13]; // 9

echo $matriz["unamatriz"]["a"]; // 42

?>

Si no especifica una clave para un valor dado, entonces es usado el máximo de los índices enteros, y la nueva clave será ese valor máximo + 1. Si especifica una clave que ya tiene un valor asignado, ése valor será sobrescrito.

<?php

// Esta matriz es la misma que ...

array(5 => 43, 32, 56, "b" => 12);

// ...esta matriz

array(5 => 43, 6 => 32, 7 => 56, "b" => 12);

?>

Al usar TRUE como clave, el valor será evaluado al integer 1. Al usar FALSE como clave, el valor será evaluado al integer 0. Al usar NULL como clave, el valor será evaluado a una cadena vacía. El uso de una cadena vacía como clave creará (o reemplazará) una clave con la cadena vacía y su valor; no es lo mismo que usar corchetes vacíos.

No es posible usar matrices u objetos como claves. Al hacerlo se producirá una advertencia: Illegal offset type.

Creación/modificación con sintaxis de corchetes cuadrados

Es posible modificar una matriz existente al definir valores explícitamente en ella.
Esto es posible al asignar valores a la matriz al mismo tiempo que se especifica la clave entre corchetes. También es posible omitir la clave, agregar una pareja vacía de corchetes ("[]") al nombre de la variable en ese caso.

$matriz[clave] = valor;

$matriz[] = valor;

// clave puede ser un integer o string

// valor puede ser cualquier valor

Si $matriz no existe aun, ésta será creada. De modo que esta es también una forma alternativa de especificar una matriz. Para modificar un cierto valor, simplemente asigne un nuevo valor a un elemento especificado con su clave. Si desea remover una pareja clave/valor, necesita eliminarla mediante unset().


<?php

$matriz = array(5 => 1, 12 => 2);

$matriz[] = 56; // Esto es igual que $matriz[13] = 56;

// en este punto del script

$matriz["x"] = 42; // Esto agrega un nuevo elemento a la

// matriz con la clave "x"

unset($matriz[5]); // Esto elimina el elemento de la matriz

unset($matriz); // Esto elimina la matriz completa

?>

Como se menciona anteriormente, si provee los corchetes sin ninguna clave especificada, entonces se toma el máximo de los índices enteros existentes, y la nueva clave será ese valor máximo + 1. Si no existen índices enteros aun, la clave será 0 (cero). Si especifica una clave que ya tenía un valor asignado, el valor será reemplazado.

A partir de PHP 4.3.0, el comportamiento de generación de índices descrito ha cambiado. Ahora, si agrega un elemento al final de una matriz en la que la clave máxima actual es negativa, la siguiente clave creada será cero (0). Anteriormente, el nuevo índice hubiera sido definido como la mayor clave + 1, al igual que ocurre con los índices positivos.

Note que la clave entera máxima usada para este caso no necesita existir actualmente en la matriz. Tan solo debe haber existido en la matriz en algún punto desde que la matriz haya sido re-indexada. El siguiente ejemplo ilustra este caso:

 

<?php

// Crear una matriz simple.

$matriz = array(1, 2, 3, 4, 5);

print_r($matriz);

// Ahora eliminar cada ítem, pero dejar la matriz misma intacta:

foreach ($matriz as $i => $valor) {

unset($matriz[$i]);

}

print_r($matriz);

// Agregar un ítem (note que la nueva clave es 5, en lugar de 0 como

// podría esperarse).

$matriz[] = 6;

print_r($matriz);

// Re-indexar:

$matriz = array_values($matriz);

$matriz[] = 7;

print_r($matriz);

?>

El resultado del ejemplo seria:

Array

(

[0] => 1

[1] => 2

[2] => 3

[3] => 4

[4] => 5

)

Array

(

)

Array

(

[5] => 6

)

Array

(

[0] => 6

[1] => 7

)

Funciones útiles

Existe un buen número de funciones útiles para trabajar con matrices. Consulte la sección funciones de matrices.

La función unset() le permite remover la definición de claves de una matriz. Tenga en cuenta que la matriz NO es re-indexada. Si sólo usa "índices enteros comunes" (comenzando desde cero, incrementando en uno), puede conseguir el efecto de re-indexación usando array_values().

 

<?php

$a = array(1 => 'uno', 2 => 'dos', 3 => 'tres');

unset($a[2]);

/* producirá una matriz que hubiera sido definida como

$a = array(1 => 'uno', 3 => 'tres');

y NO

$a = array(1 => 'uno', 2 =>'tres');

*/

$b = array_values($a);

// Ahora $b es array(0 => 'uno', 1 =>'tres')

?>

La estructura de control foreach existe específicamente para las matrices. Ésta provee una manera fácil de recorrer una matriz.

Recomendaciones sobre matrices y cosas a evitar

¿Porqué es incorrecto $foo[bar]?

Siempre deben usarse comillas alrededor de un índice de matriz tipo cadena literal. Por ejemplo, use $foo['bar'] y no $foo[bar]. ¿Pero qué está mal en $foo[bar]? Es posible que haya visto la siguiente sintaxis en scripts viejos:

 

<?php

$foo[bar] = 'enemigo';

echo $foo[bar];

// etc

?>


Esto está mal, pero funciona. Entonces, ¿porqué está mal? La razón es que este código tiene una constante indefinida (bar) en lugar de una cadena ('bar' - note las comillas), y puede que en el futuro PHP defina constantes que, desafortunadamente para su código, tengan el mismo nombre. Funciona porque PHP automáticamente convierte una cadena pura (una cadena sin comillas que no corresponda con símbolo conocido alguno) en una cadena que contiene la cadena pura. Por ejemplo, si no se ha definido una constante llamada bar, entonces PHP reemplazará su valor por la cadena 'bar' y usará ésta última.

Esto no quiere decir que siempre haya que usar comillas en la clave. No querrá usar comillas con claves que sean constantes o variables, ya que en tal caso PHP no podrá interpretar sus valores.

 

<?php

error_reporting(E_ALL);

ini_set('display_errors', true);

ini_set('html_errors', false);

// Matriz simple:

$matriz = array(1, 2);

$conteo = count($matriz);

for ($i = 0; $i < $conteo; $i++) {

echo "\nRevisando $i: \n";

echo "Mal: " . $matriz['$i'] . "\n";

echo "Bien: " . $matriz[$i] . "\n";

echo "Mal: {$matriz['$i']}\n";

echo "Bien: {$matriz[$i]}\n";

}

?>


El resultado del ejemplo seria:

Revisando 0:

Notice: Undefined index: $i in /path/to/script.html on line 9

Mal:

Bien: 1

Notice: Undefined index: $i in /path/to/script.html on line 11

Mal:

Bien: 1

Revisando 1:

Notice: Undefined index: $i in /path/to/script.html on line 9

Mal:

Bien: 2

Notice: Undefined index: $i in /path/to/script.html on line 11

Mal:

Bien: 2

Más ejemplos para demostrar este hecho:

 

<?php

// Mostrar todos los errores

error_reporting(E_ALL);

$matriz = array('fruta' => 'manzana', 'vegetal' => 'zanahoria');

// Correcto

print $matriz['fruta']; // manzana

print $matriz['vegetal']; // zanahoria

// Incorrecto. Esto funciona pero también genera un error de PHP de

// nivel E_NOTICE ya que no hay definida una constante llamada fruta

//

// Notice: Use of undefined constant fruta - assumed 'fruta' in...

print $matriz[fruta]; // manzana

// Definamos una constante para demostrar lo que pasa. Asignaremos el

// valor 'vegetal' a una constante llamada fruta.

define('fruta', 'vegetal');

// Note la diferencia ahora

print $matriz['fruta']; // manzana

print $matriz[fruta]; // zanahoria

// Lo siguiente está bien ya que se encuentra al interior de una

// cadena. Las constantes no son procesadas al interior de

// cadenas, así que no se produce un error E_NOTICE aquí

print "Hola $matriz[fruta]"; // Hola manzana

// Con una excepción, los corchetes que rodean las matrices al

// interior de cadenas permiten el uso de constantes

print "Hola {$matriz[fruta]}"; // Hola zanahoria

print "Hola {$matriz['fruta']}"; // Hola manzana

// Esto no funciona, resulta en un error de intérprete como:

// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'

// Esto se aplica también al uso de superglobales en cadenas, por supuesto

print "Hola $matriz['fruta']";

print "Hola $_GET['foo']";

// La concatenación es otra opción

print "Hola " . $matriz['fruta']; // Hola manzana

?>

Cuando habilita error_reporting() para mostrar errores de nivel E_NOTICE (como por ejemplo definiendo el valor E_ALL) verá estos errores. Por defecto, error_reporting se encuentra configurado para no mostrarlos.

Tal y como se indica en la sección de sintaxis, debe existir una expresión entre los corchetes cuadrados ('[' y ']'). Eso quiere decir que puede escribir cosas como esta:

 

<?php

echo $matriz[alguna_funcion($bar)];

?>


Este es un ejemplo del uso de un valor devuelto por una función como índice de matriz. PHP también conoce las constantes, tal y como ha podido apreciar aquellas E_* antes.

<?php

$descripciones_de_error[E_ERROR] = "Un error fatal ha ocurrido";

$descripciones_de_error[E_WARNING] = "PHP produjo una advertencia";

$descripciones_de_error[E_NOTICE] = "Esta es una noticia informal";

?>

Note que E_ERROR es también un identificador válido, asi como bar en el primer ejemplo. Pero el último ejemplo es equivalente a escribir:

<?php

$descripciones_de_error[1] = "Un error fatal ha ocurrido";

$descripciones_de_error[2] = "PHP produjo una advertencia";

$descripciones_de_error[8] = "Esta es una noticia informal";

?>

ya que E_ERROR es igual a 1, etc.

Tal y como lo hemos explicado en los anteriores ejemplos, $foo[bar] aun funciona pero está mal. Funciona, porque debido a su sintaxis, se espera que bar sea una expresión constante. Sin embargo, en este caso no existe una constante con el nombre bar. PHP asume ahora que usted quiso decir bar literalmente, como la cadena "bar", pero que olvidó escribir las comillas.

¿Entonces porqué está mal?

En algún momento en el futuro, el equipo de PHP puede querer usar otra constante o palabra clave, o puede que usted introduzca otra constante en su aplicación, y entonces se ve en problemas. Por ejemplo, en este momento no puede usar las palabras empty y default de esta forma, ya que son palabras clave reservadas especiales.

Reiterando, al interior de un valor string entre comillas dobles, es válido no rodear los índices de matriz con comillas, así que "$foo[bar]" es válido. Consulte los ejemplos anteriores para más detalles sobre el porqué, asi como la sección sobre procesamiento de variables en cadenas.

Conversión a matriz

Para cualquiera de los tipos: integer, float, string, boolean y resource, si convierte un valor a un array, obtiene una matriz con un elemento (con índice 0), el cual es el valor escalar con el que inició.

Si convierte un object a una matriz, obtiene las propiedades (variables miembro) de ese objeto como los elementos de la matriz. Las claves son los nombres de las variables miembro con algunas excepciones notables: las variables privadas tienen el nombre de la clase al comienzo del nombre de la variable; las variables protegidas tienen un caracter '*' al comienzo del nombre de la variable. Estos valores adicionados al inicio tienen bytes nulos a los lados. Esto puede resultar en comportamiento inesperado.

 

<?php

class A {

private $A; // Este campo se convertirá en '\0A\0A'

}

class B extends A {

private $A; // Este campo se convertirá en '\0B\0A'

public $AA; // Este campo se convertirá en 'AA'

}

var_dump((array) new B());

?>


En el ejemplo anterior parecerá que se tienen dos claves llamadas 'AA', aunque en realidad una de ellas se llama '\0A\0A'.

Si convierte un valor NULL a matriz, obtiene una matriz vacía.

Comparación

Es posible comparar matrices con array_diff() y mediante operadores de matriz.

Ejemplos

El tipo matriz en PHP es bastante versátil, así que aquí se presentan algunos ejemplos que demuestran el poder completo de las matrices.

 

<?php

// esto

$a = array( 'color' => 'rojo',

'sabor' => 'dulce',

'forma' => 'redonda',

'nombre' => 'manzana',

4 // la clave será 0

);

// es completamente equivalente a

$a['color'] = 'rojo';

$a['sabor'] = 'dulce';

$a['forma'] = 'redonda';

$a['nombre'] = 'manzana';

$a[] = 4; // la clave será 0

$b[] = 'a';

$b[] = 'b';

$b[] = 'c';

// resultará en la matriz array(0 => 'a' , 1 => 'b' , 2 => 'c'),

// o simplemente array('a', 'b', 'c')

?>

Ejemplo de uso de array()


<?php

// Array como mapa de propiedades

$mapa = array( 'versión' => 4,

'SO' => 'Linux',

'idioma => 'inglés',

'etiquetas_cortas' => true

);

// claves estrictamente numéricas

$matriz = array( 7,

8,

0,

156,

-10

);

// esto es lo mismo que array(0 => 7, 1 => 8, ...)

$cambios = array( 10, // clave = 0

5 => 6,

3 => 7,

'a' => 4,

11, // clave = 6 (el índice entero máximo era 5)

'8' => 2, // clave = 8 (¡entero!)

'02' => 77, // clave = '02'

0 => 12 // el valor 10 será reemplazado por 12

);

// matriz vacía

$vacio = array();

?>

Ejemplo de colección de array

 

<?php

$colores = array('rojo', 'azul', 'verde', 'amarillo');

foreach ($colores as $color) {

echo "¿Le gusta el $color?\n";

}

?>


El resultado del ejemplo seria:

¿Le gusta el rojo?

¿Le gusta el azul?

¿Le gusta el verde?

¿Le gusta el amarillo?

Modificar los valores de la matriz directamente es posible a partir de PHP 5, pasándolos por referencia. Las versiones anteriores necesitan una solución alternativa:

Ejemplo de Colección de array

<?php

// PHP 5

foreach ($colores as &$color) {

$color = strtoupper($color);

}

unset($color); /* se asegura de que escrituras subsiguientes a $color

no modifiquen el último elemento de la matriz */

// Alternativa para versiones anteriores

foreach ($colores as $clave => $color) {

$colores[$clave] = strtoupper($color);

}

print_r($colores);

?>


El resultado del ejemplo seria:

Array

(

[0] => ROJO

[1] => AZUL

[2] => VERDE

[3] => AMARILLO

)

Este ejemplo crea una matriz con base uno.

Ejemplo de indice con base 1

<?php

$primercuarto = array(1 => 'Enero', 'Febrero', 'Marzo');

print_r($primercuarto);

?>

El resultado del ejemplo seria:

Array

(

[1] => 'Enero'

[2] => 'Febrero'

[3] => 'Marzo'

)

Ejemplo de llenado de una matriz con Php

<?php

// llenar una matriz con todos los ítems de un directorio

$gestor = opendir('.');

while (false !== ($archivo = readdir($gestor))) {

$archivos[] = $archivo;

}

closedir($gestor);

?>

Las matrices son ordenadas. Puede también cambiar el orden usando varias funciones de ordenamiento. Vea la sección sobre funciones de matrices para más información. Puede contar el número de items en una matriz usando la función count().

Ejemplo de ordenamiento de una matriz con Php

<?php

sort($archivos);

print_r($archivos);

?>

Dado que el valor de una matriz puede ser cualquier cosa, también puede ser otra matriz. De esta forma es posible crear matrices recursivas y multi-dimensionales.

Ejemplo de matrices recursivas y multi-dimensionales con Php

<?php

$frutas = array ( "frutas" => array ( "a" => "naranja",

"b" => "banano",

"c" => "manzana"

),

"numeros" => array ( 1,

2,

3,

4,

5,

6

),

"hoyos" => array ( "primero",

5 => "segundo",

"tercero"

)

);

// Algunos ejemplos que hacen referencia a los valores de la matriz anterior

echo $frutas["hoyos"][5]; // imprime "segundo"

echo $frutas["frutas"]["a"]; // imprime "naranja"

unset($frutas["hoyos"][0]); // elimina "primero"

// Crear una nueva matriz multi-dimensional

$jugos["manzana"]["verde"] = "bien";

?>

Debe advertir que la asignación de matrices siempre involucra la copia de valores. También quiere decir que el apuntador interno de matriz usado por current() y otras funciones similares es reestablecido. Necesita usar el operador de referencia para copiar una matriz por referencia.

<?php

$matriz1 = array(2, 3);

$matriz2 = $matriz1;

$matriz2[] = 4; // $matriz2 cambia,

// $matriz1 sigue siendo array(2, 3)

$matriz3 = &$matriz1;

$matriz3[] = 4; // ahora $matriz1 y $matriz3 son iguales

?>

Subprocesos del maestro de replicación en bases de datos Mysql

La siguiente lista muestra los estados más comunes que puede ver en la columna State del flujo maestro Binlog Dump . Si no ve ningún flujo Binlog Dump en un servidor maestro, esto significa que la replicación no está corriendo, esto es, que no hay ningún esclavo conectado.
  • Envío de eventos del binlog al esclavo
    Los logs binarios consisten en eventos, donde un evento usualmente es una actualicación más otra información. El flujo lee un evento del log binario y lo envía al esclavo.
  • Finished reading one binlog; switching to next binlog
    El flujo ha acabado de leer un fichero de log binario y está abriendo el siguiente para enviar al esclavo.
  • Has sent all binlog to slave; waiting for binlog to be updated
    El flujo ha leído todas las actualizaciones destacadas del log binario y las ha enviado al esclavo. El flujo ahora está en espera, esperando nuevos eventos en el log binario que resulten en nuevas actualizaciones en el maestro.
  • Waiting to finalize termination
    Estado muy breve que ocurre cuando el flujo está parando.

Requisitos del sistema para instalar Ubuntu Linux

Ubuntu Linux es un sistema operativo completo preparado para ser ejecutado en Live CD o instalado en disco duro, de manera que pueda comenzar inmediatamente a utilizar herramientas de productividad como procesadores de texto, navegadores de Internet, retoque fotográfico, etc. ya incluidas junto al propio sistema, por lo tanto es necesario disponer de un hardware capaz de ejecutarlo.

Ubuntu Linux no es especialmente voraz con los recursos de la máquina, sin embargo, cuanto mayores prestaciones posea nuestra instalación, más rápido y ágil se comportará el sistema. En general podríamos apuntar los siguientes requerimientos para una correcta ejecución de Ubuntu Linux:

Requisitos Mínimos para instalar Ubuntu Linux

  • Procesador Intel™ o compatible a 200 Mhz
  • 256 Mb de RAM
  • Tarjeta SVGA
  • 3 Gib de espacio libre en el disco duro

Requisitos Recomendados para instalar Ubuntu Linux

  • Procesador Intel™ o compatible a 1 Ghz
  • 512 Mb de RAM
  • Aceleradora gráfica 3D compatible con OpenGL
  • 5 Gb de espacio libre en el disco duro

Uso de unidades de disco en el sistema operativo Linux

En una computadora normal, (si trabajamos en una red, y estamos detrás de un terminal, esto no tendría tanto sentido) tenemos unidades de disco, Zips, CD-Rom, etc... en los que tendremos cosas que ver.
En Linux, no existe el concepto de unidad de disco, que existe en otros S.O.
En Linux, las unidades se "montan" como directorios, que cuelgan de donde elijamos. Así lo normal es que la disquetera este en /floppy o en /mnt.
Linux es un sistema multiusuario, eso significa que puede haber varias personas que usan los dispositivos a la vez. Imagínate que pasaria si están dos trabajando en el mismo ordenador, y al 2º se le ocurre sacar el CD de donde tu estas copiando cosas para meter uno suyo, tú aplicación daría error y tu si no estas delante de la unidad no tendrías ni idea de por que.
Para evitar eso, Linux tiene dos "defensas", por un lado, el root, es en principio, el único que tiene permiso para montar y desmontar discos. La otra defensa ( que no es útil para los discos) es que hasta que no desmontes la unidad ( esto es que la hagas no disponible a los usuarios) no podrás sacar el CD, Zip, o lo que sea de la unidad.
Para montar un dispositivo se utiliza:
mount -t tipo_fs dispositivo lugar_montaje
tipo_fs es el tipo de sistema de ficheros, es la manera en que se almacenan los datos en el disco. Normalmente cada sistema operativo tiene el suyo propio, así por ejemplo msdos usa fat , Windows 95 usa vfat, iso9660 para los CD-Rom, os2 usa hpfs, Windows nt usa ntfs, y Linux usa ext2. En la practica bastara con montar los disco Linux con ext2, iso9660 para los CDs y el resto con vfat.
dispositivo es el nombre del dispositivo a utilizar, en Linux, todos los dispositivos del sistema se encuentran en un directorio especial, en /dev/. Así la disquetera suele ser /dev/fd0 o /dev/fd1, el disco duro suele ser /dev/MdXY siendo M la letra h si es IDE y la letra s si es SCSI, X una letra entre al a y la d si es IDE ( en función de donde este , primario master, primario slave, secundario master, etc... ) o un numero del ID SCSI, y por ultimo Y es el numero de partición, en aquellos sistemas que tengan. Por lo general el CD-Rom será /dev/hdb o /dev/hdc.
lugar_montaje es donde quieres que se monte, es la ruta de un directorio que este vació. Así para montar el típico disco de MS-Dos, puesto en la unidad a:, seria mount -orw -t fat /dev/fd0 /mnt. Un cd seria mount -t iso9660 /dev/hdb /mnt
Si te has fijado ambos se montan en /mnt, no es posible montar los dos a la vez, así que antes hay que desmontarlos, o montarlos en sitios diferentes.

Para desmontarlos se utiliza

umount dispositivo
o umount lugar_montaje.

Todo este proceso se puede automatizar, con la configuración adecuada.

Salida y entrada estandar (Tuberías) en el sistema operativo Linux

En Unix existen los conceptos de entrada estándar, salida estándar y tuberías que debemos aprender a manejar.
En Unix, se utiliza una filosofía diferente a Windows, en Windows estamos acostumbrados a megaprogramas que hacen de todo, en Linux, lo normal es utilizar pequeños programas específicos que saben hacer una y solo una cosa, estos programas normalmente recogen los datos que necesitan de la entrada estándar, y de la línea de comandos ( parámetros y opciones), y dan sus resultados por la salida estándar.
Después, puedes recoger la salida de un programa y pasárselo como datos a otro, para realizar tareas más complejas.
Esto se realiza con las tuberías (el carácter | que se obtiene con ALTGR+1), y mediante shell scripts ( pequeños programas como los .bat del ms-dos) si la tarea es complicada, o se va a repetir varias veces.
Por defecto la entrada estándar es el teclado, y la salida estandar es la pantalla, pero puedes hacer que sea un fichero con las teclas a pulsar. Para ello usar comando < fichero, si el resultado del programa quieres que pase a un fichero, en lugar de a pantalla usar comando > nombredefichero, pero ojo que > borra el fichero que hubiese, y lo sustituye por el resultado del programa, comando >> fichero no lo borra, si no que lo añade al final.
Por último se pueden usar tuberías, hay ocasiones en que lo que nos interesa no es conservar el resultado de un programa, si no pasárselo a otro como datos, como entrada estándar, sin necesidad de usar un fichero temporal como podríamos hacer con comando1 > file.tmp; comando2 < file.tmp; rm file.tmp. Para esto utilizamos las tuberías, quedando el conjunto de tres comandos anteriores como comando1 | comando2.
Así por ejemplo sort recoge lo que haya a la entrada y lo ordena y lo pone a la salida, si quieres ver un ls ordenado usar ls | sort. Si además quieres que el resultado aparezca en un fichero usar ls | sort > fichero.
Además puedes usar la salida de un programa como opciones para otro, si pones el comando entre acentos graves find / -name `ls` por ejemplo buscaría por todo el disco duro fichero que se llamasen igual que los del directorio actual ( dados por ls).

Comodines en la linea de comandos del sistema operativo Linux

Como shell ( interprete de comandos, el programa que intenta comprender lo que tu dices y lo ejecuta) Bash permite usar comodines a la hora de escribir un nombre de fichero ( además la tecla tab te permite completar rutas a la hora de escribir, escribe /ho y pulsa tab veras como aparece /home/).
Los principales son *,? y los corchetes [ ].
El asterisco sustituye a cualquier grupo de letras, poe ejemplo pe* sirve para pepe, pepa, película y el ? sólo sirve para una letra, así pep? sirve para pepe, pepa, pero no para película.
Los corchetes valen por un conjunto así pep[aAe] sirve para pepa, pepA, pepe, pero no para peps, ni para pepE. En unix y Linux son muy importantes las mayúsculas y la minúsculas, hasta el punto de que puedes tener dos ficheros que se llamen igual, por ejemplo pepe y Pepe, ya que uno tiene mayúsculas y otro no.
Además puedes usar [letrainicio-letrafinal], ejemplo [a-d]* sirve por cualquier fichero que empiece por a,b,c o d.
Hay que tener en cuenta que los nombre que empiezan por . (punto) se supone que están ocultos, ( al hacer un ls no salen, necesitas ls -a, pruébalo en tu home, verás como aparecen varios ficheros que no sabias que estaban ahí) y el asterisco no los reconoce. Es necesario indicar .* para que los liste.

Conseguir información sobre los comandos del sistema operativo Linux

En Linux, lo normal es que tenga información de todos los comandos que puedes utilizar, esta se encuentra principalmente en:
  • Las paginas man: a estas se accede escribiendo man capitulo nombre_de_comando donde capítulo es el capítulo del manual a consultar ( déjalo en blanco, y el ordenador suele acertar solo, capitulo es un numero, el 1 corresponde a los comandos que los usuarios normales pueden utilizar, 2 es la referencia del programador, 6 son los juegos, 8 los comandos que solo root puede usar, etc., hay varios).
  • Si simplemente te interesa saber que hace un comando, bastante mas útil que las paginas del man será la orden apropos nombre_del_programa que te dice que hace el programa, o te informa de programas similares. Si no sabes que comandos existen pulsa TAB.
    TAB te da todas las posibles opciones que tienes a la hora
    de escribir comandos ( quizá tengas que pulsarlo dos veces, y contestar s o y a la pregunta de si quieres verlos todos) además te permite completar comandos, así para escribir shutdown, basta con escribir shut y TAB para que el ordenador lo complete (si quieres ver todos los comandos que empiezan por a pulsa la a y luego tab.
    También te puede ser de utilidad saber que todas las paginas del man se encuentran almacenadas en tres o cuatro directorios, por ejemplo /usr/man y /usr/local/man, dentro de este encontraras una serie de carpetas, con los idiomas disponibles, ej es para el español, de para el alemán, y carpetas con man1, man2, etc, que son los capítulos, dentro de estas estarán los ficheros de ayuda, que suelen estar comprimidos, pero sirve para sacar el nombre, así la ayuda del less será algo así como less.gz less.x.gz o less.1.gz o algo similar.
    Para salir del man suele bastan con pulsar q e intro.
  • Las páginas info, para ello teclea info, y accedes a un programa donde veras una lista de todas las opciones, info es útil para algunos programas no hay pagina man, solo info.
    Además sueles tener mas información y/o ayuda en la documentación, que siempre se encuentra en /usr/share/doc/nombredeprograma. Para verla, entra en el directorio que te interese y utiliza cat, more o less ( son tres programas que te permitirán ver ficheros, al cual más cómodo, en ese orden) seguido del nombre del fichero. Si el fichero acaba el gz lo usual es que este comprimido, usa zless para verlo, si acabase en .html, .tex, .dvi, .ps, .pdf, podrás verlo utilizando el programacorrespondiente al tipo de fichero.
  • Si tienes suerte y tienes Gnome o Kde instalados, tendrás un bonito programa que te permitirá ver la anterior documentación de una manera muy cómoda.
  • Si estas en X deberías probar cosas como xman, tkman, tkinfo, que son versiones gráficas de los anteriores programas.

Moverse por el sistema operativo Linux

Según entras en una sesión de Linux, estas en tu home, también llamado ~, es un sitio del disco duro, reservado para ti, donde vas a poder hacer lo que quieras, fuera de este sitio no vas a poder tocar nada.
Normalmente suele ser /home/nombredelogin, a veces aparece delante del prompt, si no teclea pwd y te dirá donde estas.
Si eres root, lo normal es estar el /root y puedes ver y tocar todo, absolutamente todo. Por eso no se suele recomendar entrar como root.
El disco duro esta organizado en directorios o carpetas, unas dentro de otras, por ejemplo esta la principal, el raíz / y de ahi cuelgan varias, home, usr, var, lib. Tu estas dentro de home, de está cuelgan a su vez otras, tu estarás en una en concreto, yo entro con login pepe, y estoy ahora en /home/pepe.
Como una esta dentro de otra, las puedes escribir juntas separándolas por el signo/, la carpeta en la que ahora estas sea cual sea la puedes llamar como "." y la carpeta de la que cuelga en la que estas el "..", cualquier carpeta puede tener mas carpetas, o ficheros, los ficheros son como hojas de papel dentro de las carpetas, puede ser una carta, una foto o un programa, eso da lo mismo. Cada una tiene un nombre que la identifica, y que es diferente al resto de esa misma carpeta, aunque puede ser igual al de otro fichero o carpeta que este en otro sitio diferente.
Para ver lo que hay en la carpeta en la que estas escribe ls -p, ( el -p puede que no sea necesario, según que Linux/Unix utilices) veras que aparecen todos los archivos y las carpetas que cuelgan de él aparecerán con el signo / detrás ( -p hace que aparezca este signo, sin el no habría diferencia entre carpetas y ficheros).
También es posible que aparezcan de colores, o con otros signos ( * y @ por lo menos son comunes) también puedes ver el contenido de otra carpeta, si escribes su ruta detraes, ej; ls -p / , ls -p / usr/doc , ls -p /home/pepe.
Si lo que quieres es moverte por las carpetas utiliza cd seguido de donde quieres ir, así cd / te llevara a la raíz, cd ~ a tu home ( cd a secas hace lo mismo, útil si te pierdes).
cd /usr/doc por ejemplo te lleva al directorio
de documentación del sistema.
Investiga un poco por tu ordenador con ls y cd, para ver lo que hay.
Si quieres crear una carpeta ( o varias) lo puedes hacer en tu home, usando mkdir y el nombre de la carpeta que quieres crear, y luego entrar en ella con cd.
Para borrar una carpeta escribe rmdir nombre, pero la carpeta tiene que estar vacía y tienes que tener permiso para borrarla.


Opciones de Comandos del sistema operativo Linux

Normalmente todos los programas permiten opciones, por ejemplo ls permitía -a -p -l, etc.

Las opciones se suelen colocar justo detrás del nombre del programa, antes que los otros parámetros, por ejemplo en el caso de ls seria:

ls -l /usr/doc

aunque suele funcionar si lo colocas en otro sitio, lo normal es ahí, por facilidad a la hora de leer el comando y pensar lo que hace.

Cuando hay varias opciones, lo normal es que se puedan colocar juntas, así podríamos poner

ls -pla

para usar las tres opciones. En ciertos casos especiales se podrá además omitir el guión, aunque lo normal es ponerlo.

También en algunos casos es posible utilizar opciones largas, así es lo mismo usar

ls -a

que

--all

en estos casos se utiliza un doble guión, para diferenciar --all de -a -l -l (-all)


Shell y Comandos del sistema operativo Linux - Bash

Una vez entrado en una session en Linux, si esta es en modo texto, lo primero que nos encontramos es el prompt del sistema, y esto es debido a que se esta ejecutando un Shell, y este espera ordenes. Este Shell, es el programa que interactua con nosotros, y transforma nuestras ordenes en acciones para el S.O.

En la mayoria de los casos suele ser BASH, Bourne Again SHell, una versión mejorada del shell creado en la universidad de Bourne y que se considera un estándar dentro de Unix.

Si en este shell escribimos una palabra, el shell comprobara primero si es un comando interno, y lo ejecutara, o después buscara, a traves de una serie de directorios predefinidos un archivo con ese nombre, y si es ejecutable lo ejecutara, pasandole el control de la session hasta que le programa acabe y volvamos al shell en espera de otra orden.

Hay que destacar que no sirve que un programa este en el directorio en el que estamos, ya que por seguridad, el shell no busca el programa en el directorio actual, solo en una lista de sitios (directorios) donde sabe que hay programas seguros, evitando así una de las formas de entrada de virus.

Para saber por que sitios busca podemos escribir set | grep PATH que nos mostrara la lista separada por “:”.


Manejo de usuarios en el sistema operativo Linux

Por ser multiusuario, varios usuarios, personas ( o una misma persona en varios sitios) puede estar usando el ordenador a la vez, bien por varios terminales, en el caso de que estén conectados al ordenador ( por el puerto serie, por ejemplo) a través de telnet, o mediante las consolas virtuales ( a estas se acede de manera general pulsando ALT+Fx siendo x un numero generalmente entre el 1 y el 6, aunque esto varia y se puede configurar a tu gusto, como todo en Linux.
Si estando en una sesión X, no funcionara, tendremos que usar CTRL+ALT+Fx, que nadie se espere encontrar otra sesión X vacía, aparecerá otra sesión en modo texto. Si queremos tener dos pantallas X a la vez, deberemos lanzar la a mano desde la sesión de modo texto ( es fácil, pero consume mucha memoria) o utilizar los escritorios virtuales, que es bastante mas practico.
Al principio te pide un login, esto es el nombre por el que se te conoce dentro de la maquina, después de eso una clave, que te debe haber proporcionado tu administrador, y al menos la de root deberias haberla definido durante la instalacion, si la has hecho tu.
Si no te gusta después de haber entrado, esto es introducido los dos valores correctamente ( el primero aparecerá en pantalla, pero el segundo no, es una medida de seguridad, para que no puedan ver lo que tecleas) puedes cambiarlo. Basta con escribir passwd , y te pedirá el antiguo ( para comprobar) y que escribas es nuevo dos veces ( para verificar que esta bien escrito).
Ahora estas en el prompt del sistema, veras algunas cosas y al final el signo

$

si entraste como usuario normal y

#

si entraste como root, si has entrado como root, créate un nuevo usuario, con

adduser nombre,

te hará un par de preguntas, nombre, clave, grupo al que pertenece, dirección, teléfono, directorio del home, introduce el nombre que quieras para el login, la clave, y el resto admite los que te propone, por ahora vale con lo que el ordenador da, luego cuando estés mas experimentado, ya comprenderás para que sirven y como modificarlos.
Ahora lo interesante es salir, si quieres acabar la sesión, por ejemplo, para entrar como otro usuario basta con escribir:

logout

o

exit

Como root ademas puedes cambiar las contraseñas de otros usuarios, incluso sin falta de recordar la antigua, con

passwd usuario

muy util en casos de olvidar la contraseña.

Hay ocasiones en que necesitas hacer algo como otro usuario, la orden

su usuario

nos preguntara la contraseña de usuario, y si es correcta nos transformaremos en ese usuario hasta que salgamos de la session, momento en que volveríamos a ser el usuario anterior, esta opcion puede estar desactivada por motivos de seguridad en algunos ordenadores, así que quiza necesites consultar al administrador del sistema.

La Administración de Usuarios tambien se puede hacer de manera grafica.


Dónde conseguir el sistema operativo Linux

Existen dos opciones, comprarla o conseguirla gratis de internet.

Comprarla: Hay algunas distribuciones como Red Hat Enterprise, solo esta disponible a través de suscripciones, con una cuota periódica, otras requieren un único pago. Tiene las ventajas de incluir un manual, programas comerciales y soporte técnico por un periodo de tiempo.
Con una revista, tiene la ventaja de poder comprarla en el quiosco de la esquina, y es relativamente barato, como desventaja sola suele ser el primer CD y no siempre tiene la calidad espera.
Por último puedes comprar un conjunto de CDs pregrabado (idénticas a las que te bajarías gratis de internet) de http://www.linuxiso.com o http://www.cheapbytes.com a un precio muy ajustado.

Obtenerla "gratis": Puedes bajarla de la pagina principal de la distribución. Además hay sitios dedicados a almacenar imágenes ISO que luego puedes grabar en CD, como
http://www.linuxiso.org


Las distribuciones deLinux

Linux es libre, eso significa que cualquiera puede bajarlo y vendértelo, o regalártelo, pero Linux además es solo un pequeño programa, el kernel, que solo no vale de nada, así que existen una serie de empresas, o grupos de gente que se dedica a unir Linux a un grupo de aplicaciones, en muchos casos libres también, en otros no, meterlo todo en un CD o discos y distribuirlo. Eso es lo que llamamos distribuciones Linux

Distribuciones Linux

Las principales distribuciones del sistema operativo Linux que hay son:

Red Hat: Red Hat es una de las empresas que más influye en el mundo Linux actualmente, tiene dos tipos de distribución. Una, la de pago, que incluye software comercial, y otra, la gratuita que sustituye este software comercial por otro con licencia Libre.
A Red Hat hay que agradecerle el sistema de paquetes RPM, que es el adoptado por el LBS ( Linux Base Standar es un conjunto de normas para conseguir que un programa funcione perfectamente sin importar en que distribución se instale).
La instalación de Red Hat muy sencillo con menús que guían al usuario en la instalación, y una instalación gráfica permiten, junto a una guía bastante bien echa, que cualquiera pueda instalar esta distribución. El unico problema es cierta costumbre de red hat a apurarse al sacar las distribuciones, lo que hace que sea necesario recoger varios parches de Internet si tienes una versión vieja.

Debian: Esta distribución siempre ha sido famosa por su fiabilidad, estabilidad y por ser completamente gratuita ( el resto de las distribuciones suelen incorporar programas shareware, o con licencias restrictivas). Tiene el sistema de paquetes.deb, bastante más potente que el RPM, aunque menos extendido.
Incorpora la herramienta Alien que le permite utilizar paquetes de cualquier otra distribución. Su instalación es sencilla, destacando sobre las otras en que dispone de varios paquetes de programas para una misma tarea, llegando a acumular mas de 7000 paquetes.

SUSE: Esta distribución alemana, basada en RPM, es la segunda opción empresarial mas utilizada, Incluye KDE y la herramienta de configuración YAST, muy cómoda de usar.
Recientemente ha sido adquirida por Novell, he IBM tiene una gran influencia sobre ella.

Slackware: Esta distribución tiene el mérito de haber sido mantenida por una única persona, usa el sistema de paquetes TGZ ( este sistema es muy rudimentario, he incluye muy pocas facilidades para el usuario). No cumple la organización estándar de ficheros de Linux, y no incorpora ningún programa de configuración con lo que todo se configura a mano. Así todo es una de las más veteranas, y la gente que la instalo ( normalmente por primera vez) es reacia a cambiar, además es ideal para experimentar.

Mandrake: Esta distribución francesa esta basada en red hat y se diferencia de esta en:

  • Esta compilada para Pentium, con lo que todo funciona mas fluido, en contra no podrás instalarla en un 486.
  • Tiene el sistema de instalación más cómodo y automatizado, auto detectando y configurando la mayoría del hardware.
Esta distribución esta muy indicada para entornos de escritorio.

Gentoo: Esta distribución, de reciente aparición, se diferencia de las demás por instalar todos los programas desde el código fuente, recompilandolos, lo cual es lento, pero asegura la máxima optimización y estar a la ultima en cuanto a versiones, requiere amplios conocimientos de Linux.

Ubuntu, Kubuntu, etc: esta distribución basada en debian, esta siendo muy popular en la actualidad por ser de fácil uso / aprendizaje, por lo que es recomendada para los principiantes.

Que distribución Linux elegir

Esa es una pregunta complicada, lo ideal seria que probases varias y eligieses en función de con cual estas mas a gusto.
Si un usuario de escritorio probablemente la mejor sea Mandrake, Ubuntu o Kubuntu.
Otra opción es red hat, tan fácil como mandrake pero con mucha mas experiencia en el mercado, esta es también la recomendada si necesitas instalar un servidor, o requieres el respaldo y soporte de una empresa detrás.
Si Quieres un sistema GNU/Linux 100% y gratis, entonces Debian.

Total en el fondo da igual, son todas son distribuciones Linux.

Características del sistema operativo Linux

Estas son algunas de las características del sistema operativo Linux. Tal vez despues de conocerlas te interese aprender y utilizar Linux.

El sistema operativo Linux y sus principales características


32 Bits: Gracias a los 32 bits el sistema operativo es rápido eficaz, seguro y fiable, sin que una aplicación pueda causar problemas a las otras, al no tener que guardar compatibilidad con los sistemas operativos anteriores de 16 bits. En la actualidad ya soporta 64 bits.

Multitarea: El ordenador puede estar haciendo varias cosas a la vez, y no tendrás que esperar a que acabe una para hacer otra, la multitarea esta controlada por el sistema operativo no por las aplicaciones, por lo que a diferencia de otros sistemas operativos nunca se quedara parado por culpa de una mala aplicación que consuma todos los recursos del ordenador. Con el sistema operativo Linux si podrás bajar correo de Internet, formatear un disco, imprimir 100 hojas y jugar al Quake a la vez, y sin problemas.

Multiusuario: Si has manejado antes un ordenador, seguramente usarías MAC OS o Windows. En estos sistemas operativos tú eres el único que lo usas, en Linux, puede haber varias personas usando el ordenador, compartiendo el microprocesador, así puedes ponerle un par de pantallas y teclados y estar otra persona navegando por Internet, escribiendo una carta, jugando en su pantalla, mientras tu estas en otra haciendo otra cosa completamente diferente, y estaran ambos en el mismo ordenador. Linux garantiza la privacidad y la seguridad de los datos entre usuarios.

POSIX: Aunque para los usuarios normales esto importa poco, POSIX es un estándar de la industria, que asegura una calidad mínima en ciertas partes del sistema operativo y asegura su compatibilidad, a nivel de código, es decir, programas POSIX que funcionan en otros Unix, no tendrán problema para compilarse y ejecutarse en Linux, Para muchas empresas esto es muy importante, a la hora de decantarse por un sistema operativo u otro (por eso Windows NT es compatible POSIX).

Compatibilidad: Cuando tocamos este tema, siempre pasa lo mismo, la gente desconfia. No puedo ejecutar mi aplicación favorita XXXX para Windows 95, etc. Ten en cuenta que tampoco alguien que utiliza MAC, ni con IRIX, etc. En Linux debemos tener en cuenta que:

  • Ficheros: Linux No tiene ningún problema para tragarse cualquier tipo de disco de cualquier cosa que exista, leerlo y usar su contenido, además existen Suites como OpenOffice o Corel WordPerfect que permiten leer y usar ficheros de aplicaciones comunes como puedan ser Word o Excel. Además cuando se trabaja en red, Linux es capaz de entenderse y de mediar entre todo tipo de redes, permitiendo entornos heterogéneos sin ningún problema.
  • Programas: Si puedes ejecutar programas de otros sistemas operativos para MAC tienes basilisk2, capaz de crear un Macintosh virtual y ejecutar MacOs para M68K sin problemas. Para windows existen varios programas que permiten hacer funcionar programas de windows, crossoffice para entornos de oficina, wineX para juegos, y la versión libre de estos Wine, que permite ejecutar la mayoría de los programas. Si el programa es para MS-Dos existe DosEmu, un emulador de MS-Dos donde podrás ejecutar a pantalla completa, como en la realidad, o en ventana de X Windows, cualquier programa para este sistema operativo. Además de estos existen vmware (comercial) y bosh que crean PC virtuales donde ejecutar cualquier sistema operativo.

Estabilidad: Linux es robusto, no se colgara ( el sistema operativo una aplicación si esta mal echa por supuesto que se colgara, pero no afectara al resto del sistema, nunca tendrás que reiniciar el ordenador por que un programa lo ha colgado), hay que notar que es posible bloquear el teclado o la pantalla, pero eso no significa que se cuelgue el ordenador, puedes entrar al ordenador por otro sitio ( un terminal, por red) y desbloquearlo, y seguir usándolo, o si se te bloquea un programa mientras estabas conectado a Internet y leyendo el correo, quizás no puedas usar el ordenado, pero seguirá bajando el correo sin problemas.

Es libre: Es decir no te costara nada, no tendrás que pagar licencias, podrás copiarlo, venderlo, instalarlo donde quieras sin problemas, pero lo más importante es que dispones del código fuente, esto significa que si un día te encontrases con un problema del sistema operativo no tendrías que esperar inútilmente a que su creador decidiese que era un problema importante y crease un service pack para el sistema operativo, tu mismo puedes solucionar el problema. O puedes indicarle a una 3º personal el problema, y esta no tendrá que ser de la empresa que creo el sistema operativo para poder solucionártelo.

Soporte: Las empresas que venden cd's de Linux como Mandrake, SUSE, o RedHat ofrecen soporte tècnico, y existen miles de personas que te ayudarán a solucionar cualquier problema que tengas con Linux en foros, blogs y listas de correo. No dudes de unirte a las listas de distribución que hay en Internet, no solo aprenderás, podrás ayudar a otros en los problemas que tengan.

Adaptación: Linux es uno de los sistema operativo. que más rápido evoluciona, se adapta al mercado y soluciona los problemas rápidamente, como por ejemplo el bug F00F del Pentium, Linux fue el primero en tener solución.
Prácticamente las mayores dificultades que se le puede atribuir al Sistema Operativo
Linux son:

  • Dificultad de Configuración – No es exacto, simplemente no hay botones, se hace todo por ficheros de configuración ASCII, además actualmente las distribuciones incluyen su propio GUI (Interfaz Grafica para el Usuario) para la configuración del equipo, aunque esta depende de cada distribución.
  • Hay pocos juegos - Si hay juegos para Linux como Quake I & II, Doom, Abuse, Freeciv, Descent, etc.

Sugiero probar el sistema operativo Linux para aprender a usarlo.
No hay mejor manera de aprender Linux que tomar contacto con el sistema operativo y de a poco migrar de sistema operativo
.

Origenes del sistema operativo Linux

Entre los sistemas operativos que había hace una década estaba Minix, un sistema operativo tipo Unix, de fuentes publicas, que se había escrito a modo didáctico para los estudiantes de ingeniería informática. Funcionaba en un 8086, por lo que era un poco limitado.
Linus Tolvards un estudiante finlandés de informática que investigando y profundizando en los microprocesadores 386 decidió hacer, partiendo de cero, un sistema operativo, basado en Minix,
pero que aprovechase toda la potencia del 386, memoria virtual, multitarea y otras cosas.
Así que empezó a crearlo, las primeras versiones eran poco atractivas, apenas ejecutabas el GCC (un compilador de C creado según el estilo GNU) el bash (el equivalente al command.com).
Pero Linus, lo publico en Internet, con sus fuentes, y un montón de gente se intereso en él, modificándolo, mejorándolo y añadiéndole cosas, a la vez que Linus lo mejoraba y coordinaba todo el trabajo que hacían el resto de la gente. Y así sigue siendo hoy, cientos de versiones después hasta convertirse en lo que tenemos delante.
La gente de GNU creó un montón de programas para su sistema operativo que gracias a que son software libre son también usados e Linux y por eso a Linux se le llama muchas veces GNU/Linux.
El nucleo de Linux, el kernel, se distribuye bajo la licencia GPL, es un tipo de licencia, dentro de lo que podríamos llamar el Open Source Software, básicamente dice que cojas el programa, lo uses, aprendas, lo mejores y compartas esas mejoras con el resto del mundo. Además la licencia GNU fija una serie de derechos a programador que le protegen, pero en resumidas cuentas:
  • Un Programa con Licencia GPL puede ser vendido, alquilado, prestado modificado
  • No se puede limitar el número de usuarios, copias o tiempo de uso.
  • No se puede cobrar por usar el programa (pero sí por distribuirlo)
  • No se puede impedir que otros lo vendan o distribuyan
  • Tienes que dar las fuentes del programa de una manera pública
  • Puedes modificar el programa, o aprovechar parte del código, pero el resultado tiene que seguirla misma filosofía.
Es básicamente lo que llamaríamos un programa Freeware, o Gratis. Linux sigue esta licencia. Por eso te encontraras a revistas que lo regalan a gente que cobra por él, a gente que lo baja de Internet.


Que cd de ubuntu linux descargar e instalar

Ubuntu Linux pone a disposición de los usuarios la descarga del sistema operativo desde su pagina web. Esto puede generar dudas sobre cual de las opciones de Ubuntu Linux es la que necesitamos.
Existen cuatro tipos de cd / dvd de ubuntu que se pueden descargar e instalar:


Descargar el Desktop CD de Ubuntu linux

Es el medio físico más utilizado y el más recomendable para la mayoria de personas. Un CD que arranca nuestro sistema con Ubuntu sin instalar nada en nuestro disco duro, de manera que nos permite probarlo sin modificar nada. Antes se denominaba Live CD, pero se decidió cambiar su nombre ya que ahora incluye un icono en el escritorio que nos permite instalar Ubuntu de manera gráfica y sencilla.

Descargar el Alternate CD de Ubuntu linux

Anteriormente conocida como Install CD, es una versión especial donde nos encontramos una instalación más completa y flexible pensada para usuarios mas veteranos. Al autoarrancar nos presenta un sistema de instalación muy completo pero en modo texto, aunque tambien nos instala un entorno gráfico de escritorio.

Descargar el Server CD de Ubuntu linux

Es una versión especial para utilizarse en servidores. Está optimizada para mejorar el rendimiento en este tipo de tareas (servidor de ficheros, de páginas web, correo, compartir ficheros, etc.) Esto se consigue utilizando un kernel más adecuado para estas funciones y prescindiendo de entorno gráfico así como de las aplicaciones de escritorio que no son necesarias.
Tambien incluye una opcion para instalar el conocido servidor LAMP (Linux-Apache-MySQL-PHP) en una manera sencilla y ágil

Descargar el DVD de Ubuntu linux

Al tener más capacidad incluye en un sólo soporte el Desktop CD, el Alternate CD, y además muchos más paquetes de sofware que las otras versiones. Puede ser muy útil para aquellas personas que no cuentan con fácil acceso a internet.

Que version de Linux Ubuntu instalar

Existen varias versiones del sistema operativo linux Ubuntu, que difieren entre sí según el entorno grafico que utilizan y las aplicaciones que tienen instaladas por defecto.
Encontramos las siguientes cinco versiones de Ubuntu Linux:

Ubuntu

Es la versión «original», que utiliza la interfaz gráfica por defecto GNOME. Es la versión más utilizada y la más recomendable para principiantes.

Kubuntu

Versión oficial de Ubuntu linux que hace uso de la interfaz gráfica KDE por defecto.

Xubuntu

Versión oficial de Ubuntu linux que hace uso del interfaz gráfico Xfce, diseñado para usuarios con computadores que poseen recursos limitados de video, o para usuarios que buscan un entorno de escritorio liviano.

Edubuntu

Versión oficial de Ubuntu linux orientada a usos educativos, tanto particulares como en centros de enseñanza. Utiliza la interfaz gráfica GNOME personalizado y aplicaciones específicas para la enseñanza.

Gobuntu

No incluye ningún software que no sea libre en todos los sentidos a que el término se aplica. Ha sido la última en añadirse a la familia Ubuntu linux, y por ello no dispone de LiveCD ni de instalador gráfico. No es recomendable para novatos.