Archive for 22 junio 2008

h1

Sobre el estándar W3C

22 junio 2008

Todo en esta vida, para que funcione bien, debe tener un orden, unas reglas preestablecidas, una lógica o una serie de hábitos y costumbres aprobadas y apoyadas por la sociedad para evitar el temible “caos“.

Existe un código civil, un código de circulación, unos reglamentos deportivos, una constitución, una serie de reglas matemáticas, leyes físicas… que son universalmente aceptadas y en las que a diario, nos basamos, en mayor o menor medida, para que las cosas salgan bien.

Todo esto que se aplica en la vida social, pocas veces se aplica a campos como la informática. Existen multitud de personas que “programan” y “desarrollan” desde una simple interface web a una completa aplicación informática.

Gracias a Dios, van apareciendo estándares y políticas de desarrollo (podéis leer la normativa para el desarrollo de Debian para haceros una idea) que hace que todo tenga un orden y cumpla una serie de normativas a la hora de desarrollar alguna aplicación con vistas a que ese código que alguien programó pueda ser entendible el día de mañana por terceros desarrolladores, para así seguir sumando.

En cierta medida, la entrada de hoy tiene mucho que ver con todo esto. Son (somos) muchos los que desarrollamos, en mayor o menor medida, bien un software para un aplicativo, o bien un desarrollo web.

Son millares de personas las que alguna vez han creado una web y han volcado su contenido a Internet en forma de web personal, incluso en ocasiones empresas han desarrollado portales webs sin pensar en la calidad y/o estandarización del código que ofrecen. Muchas de ellas utilizan herramientas de diseño web o frontends que con dos clics generan una web volcando cantidad de código erróneo o código basura.

El estándar W3C fue creado precisamente para evitar esto. El Consorcio W3C desarrolla pautas y normativas para que la web “no sufra“, y el código que esta contenga pueda ser entendible por cualquier navegador web, Internet Explorer, Opera, Mozilla Firefox… ofreciendo una serie de recomendaciones.

Es frecuente encontrar desarrollos webs (incluidas las de grandes empresas o universidades) que funcionan únicamente en ciertos navegadores y en otros no, o que se comportan de modo distinto usemos uno u otro. Una web que cumpla con las especificaciones de W3C, se asegura de tener un código “legible” en cualquier navegador, al mismo tiempo que evita tener código basura, ofreciendo mayor seguridad, calidad y rapidez a quienes la visitan.

W3C certifica que el código HTML, XHTML o XML) que contiene una web y el estilo o aspecto que esta va a tener (CSS) es óptimo y de calidad. Es decir, W3C certifica HTML, XHTML, XML + CSS.

Esta combinación de código base + estilo es donde se apoya cualquier web, y sobre ella, podremos incluir cualquier otro tipo de lenguaje (ASP, javascript, PHP…) quedando estas codificaciones fuera de los estándares W3C.

En resumen, W3C puede decirse que una web que cumpla con el estándar W3C, es una web que ha pasado un “corrector ortográfico” para su código.

Para quienes deseen desarrollar webs de calidad, os dejo un listado de Guías Breves de Tecnologías W3C, Internet os lo agradecerá, y utilizad Mozilla Firefox, es más saludable para todos. 😉

Puedes comprobar si tu web cumple con los estándares W3C desde esta URL:

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.w3c.es%2F

Desarrollar una web que cumpla con W3C no es fácil. Webs tan importantes como la de Microsoft tienen 145 errores de codificación según el estándar. La web de linux.org tiene tan sólo 6, y es que en cosas tan básicas como en la codificación de un portal web, los usuarios de Linux ganamos al Sr. B. Gates 😉

Pd.: Prometo que la mía la cumpla en un plazo breve

Anuncios
h1

Video de la devolución de un Ijam 5j

20 junio 2008

Imagino que muchos conocéis http://www.ijam.es/ y habréis visto el nuevo Ijam de Apple.

Este video, me lo pasó xabe. Se trata de unos chicos que “con un par” se presentan en un apple store de San francisco para devolver un Ijam , ya que le han dado “gato por liebre”, es decir, una paleta en vez de un Ijam. Buenísimo el vídeo 😉

h1

Grabar video de tu escritorio con gtk-recordmydesktop

18 junio 2008

A cuento de que estoy preparando una charla sobre el software libre en las empresas (invitado por Manuel77), he tenido que capturar un vídeo desde mi propio escritorio, es decir, he capturado un vídeo de lo que yo iba manejando y haciendo en mi pantalla.

Esto es muy fácil de hacer en Debian (y derivadas Ubuntu, LinEx, GuadaLinEx…), tan sólo necesitamos instalar un paquete llamado: gtk-recordmydesktop. En Debian está disponible para Debian Lenny, y lógicamente para la versión Sid (unstable).

Esta es la información del paquete en cuestión:
(#dpkg – p gtk-recordmydesktop)


debian:/home/alberto# dpkg -p gtk-recordmydesktop
Package: gtk-recordmydesktop
Priority: optional
Section: graphics
Installed-Size: 548
Maintainer: José L. Redrejo Rodríguez
Architecture: all
Version: 0.3.7.2-1
Depends: python, python-gtk2, python-support (>= 0.7.1), recordmydesktop (>= 0.3.7)
Size: 82540
Description: Graphical frontend for recordmydesktop
Adds an easy to use graphical icon on the GNOME toolbar
to make a pleasure use and configure the audio and video
capture application recordMyDestkop
Homepage: http://recordmydesktop.iovar.org/

Para instalarlo:


debian:/home/alberto# apt-get install gtk-recordmydesktop

Esta aplicación es muy útil para capturar lo que sucede en nuestro escritorio, grabar tutoriales, alguna explicación, conversaciones o videoconferencias…

Lo mejor, es que la salida de video está en formato .ogg (formato de video libre). Si lo queremos pasar a .avi o cualquier otro formato, ya sabéis cómo utilizar ffmpeg o mencoder, sino echad un vistazo a este otro post que explica cómo hacerlo.

$mencoder video.ogg -o video.avi -ovc lavc -oac mp3lame

Aquí tenéis el ejemplo de una captura de mi escritorio. 😉

h1

Capítulo V: Primeras tareas de administración desde la consola Linux

16 junio 2008

Seguimos en este capítulo tratando, a modo de puente, el tema del intérprete de comandos, para enlazar con las primeras ordenes de administración desde una consola o terminal.

Como ya hemos visto anteriormente, el intérprete de comandos será ese terminal donde un administrador de sistemas Linux pasará la mayor parte del su tiempo de trabajo, así que, merece la pena volver a hablar de él.

El intérprete de comandos es el equivalente al MS-DOS de Microsoft, aunque en realidad, es bastante más potente, pero creados con la misma finalidad. Existen diferentes intérpretes de comandos en Linux, los más conocidos son: bash y sh.

Recordemos que al abrir un intérprete de comandos, nos encontraremos con un prompt (solicitud) parecido al siguiente:

[albertux@debian]$

Por lo general, el intérprete de comandos aparecerá de la siguiente forma: nombre_usuario@nombre_máquina, seguido de $ o #.

El símbolo $ significa que soy un usuario final (sin privilegios), mientras que el símbolo # nos avisa de que tenemos abierta una sesión como ‘root’.

Para pasar de usuario normal a ‘root’, basta con teclear la palabra ‘su’ y hacer intro para introducir la clave de administrador. Para salir teclearemos la palabra ‘exit’ y para cambiar a cualquier otro usuario del sistema escribiremos ‘su nombre_del_usuario’.

[albertux@debian]$ su
contraseña:

Nota: Los sistemas Unix/Linux son case sensitive, es decir, diferencian ente mayúsculas y minúsculas, por lo que no será lo mismo teclear ‘su’ que ‘SU’.

5.1 Personalizando nuestro bash:

Vamos a utilizar bash como nuestro intérprete de comandos a usar. Podremos personalizar este intérprete de comandos, del modo que más útil nos sea.

Ejecutando el comando ‘alias -p‘, veremos cómo lo tenemos definido.

[albertux@debian]$ alias -p
alias l = ‘ls -CF’
alias la = ‘la -A’

alias ll = ‘ls -l’
alias ls = ‘ls –color=auto’

El archivo donde configurar nuestro bash se llama ‘bashrc’ y está oculto en cada /home de usuario. Podemos editarlo con cualquier editor de textos.

[albertux@debian]$ nano /home/usuario/.bashrc

Si nos fijamos, existen definidos cierto alias que hacen referencia a una orden concreta. Según la configuración anterior, si tecleo en mi intérprete de comandos la orden ‘la‘, este alias ejecutará el comando ‘ls -A‘, cuyo ejecución provoca un listado de todos los archivos y directorios, incluido los ocultos.

Según esto, nosotros podremos incluir alias a nuestro antojo, y según nuestras necesidades.

Un ejemplo curioso podría ser el crearnos un alias que nos mostrara todos los procesos que están ejecutándose en mi sistema. Para ello, editaremos este archivo y crearemos el alias ‘procesos‘ el cuál realizará la orden: ‘ps aux

alias procesos = ‘ps aux’

Únicamente bastará con reiniciar mi consola o terminal para ver el resultado.

5.2 Colección de comandos I:

Una vez estamos algo más familiarizados con nuestro intérprete de comandos, es buen momento para comenzar a conocer algunos comandos básicos que me permitan administrar mi máquina.

El comando por excelencia y más importante de todos es el comando ‘man‘. Este comando es la base y guía del resto de comandos, ya que nos ayudará a conocer la sintaxis correcta y opciones de cualquier otro comando.

Anteriormente hemos usado en nuestro alias el comando ‘ps‘. Si queremos conocer la sintaxis y el resto de opciones para este comando haremos:

[albertux@debian]$ man ps

Un intérprete de comandos no tiene sentido si no sabemos sacarle su “jugo”, es decir, nos interesa conocer una serie de comandos básicos para darle funcionalidad.

Fuente: www.tiraecol.net

5.2.1 Los relativos a directorios y archivos:

Recordemos antes un poco, cómo es el árbol de directorios de Linux:

Como vemos, todo pasa por el directorio raíz, el directorio /. La orden para movernos de un directorio a a otro será: cdy su sintaxis básica es la siguiente:

cd /ruta/del/directorio

Podemos usar la ruta absoluta (partiendo del directorio raíz) o la ruta relativa. Imaginemos que estamos en el directorio /home y queremos llegar a un subdirectorio llamado usuario1.

Podemos utilizar la ruta absoluta:

[albertux@debian]$ cd /home/usuario1

o utilizar la ruta relativa: (en el caso de estar ya en /home sería):

[albertux@debian]$ cd usuario1

Al estar ya situados en el directorio /home, no es necesario pasar antes por el directorio raíz (/), ni por home, directamente apuntaremos al directorio de destino.

Sería un error estando en ‘/home’ escribir ‘cd /usuario1′, ya que estamos intentando llegar a un directorio llamado ‘usuario1’ que no cuelga del directorio raíz ‘/’, sino del directorio ‘home’.

Nota: En caso de no saber exactamente en qué directorio estamos es más recomendable utilizar siempre la ruta absoluta.

Dentro de todo directorio existen dos directorios especiales que son ‘.‘ y ‘..‘.

El primero hace referencia al directorio actual, es decir, si haces ‘cd .‘ te quedas donde estás (el directorio especial ‘.’ ).

El segundo hace referencia al directorio padre, o sea, si estamos en /home/usuario1 y hacemos ‘cd ..‘ terminaremos en /home.

[albertux@debian]$ cd .
[albertux@debian]$ cd ..

Si nos hemos perdido por movernos entre tantos directorios… ¡¡que no cunda el pánico!!, tenemos el maravilloso comando “pwd” que nos “chiva” donde estamos situados.

[albertux@debian]$ pwd

[albertux@debian]$ /home/usuario1/documentos

Algunos comandos básicos para comenzar a manejar nuestro intérprete de comandos pueden ser:

COMANDO

ACCIÓN

ls

Igual que el dir. Listado de archivos y directorios.

Ej.: ls -la (muestra los ocultos y con detalles)

cp

Copia archivos. Con -R copia en modo recursivo los directorios:

Ej.: cp -R /home/usuario1 /home/usuario2

mv

Mueve directorios y archivos:

Ej.: mv /home/usuario1 /tmp

rm

Elimina archivos. Con -R elimina directorios de modo recursivo:

Ej.: rm -R /tmp/directorio

mkdir

Crea un directorio nuevo:

Ej.: mkdir mi_directorio

df

Nos indica la cantidad de espacio de disco ocupado:

Ej.: df -h

Como ya hemos dicho antes, TODOS los comandos pueden apoyarse en el comando ‘man‘ para obtener su ayuda.

5.2.2 Los relativos a procesos, usuarios y grupos:

Podemos utilizar diferentes comandos de manera útil con diferentes finalidades.

Por ejemplo el comando ‘cat nos da la posibilidad de pasar a un archivo el contenido de una salida.

[albertux@debian]$ cat > compra-para-barbacoa.txt
patatas fritas
vino
cervezas
cocacola
panceta
pan

Esto nos guardará en el archivo ‘compra-para-barbacoa.txt’ toda la lista anteriormente escrita.

Para verlo:

[albertux@debian]$ cat compra-para-barbacoa.txt

O cualquier otro editor de textos bajo terminal, por ejemplo:

[albertux@debian]$ nano compra-para-barbacoa.txt

Utilizaremos la opción ‘>>‘ para sobrescribir sobre lo anterior sin borrar nada.

Se nos olvidaba lo básico…

[albertux@debian]$ cat compra-para-barbacoa.txt
carbón

PROCESOS:

Interesante también es el uso del comando ‘ps‘, que nos mostrará los procesos que están corriendo en nuestro sistema. Para saber más:

[albertux@debian]$ man ps

Así vemos que con ‘ps aux‘ nos muestra todos los procesos y sus PID (Identificador de Procesos). Si recordamos este comando es el que utilizamos en el alias ‘procesos’ anteriormente.

Si queremos guardar este listado de procesos en un archivo de texto ‘procesos.txt‘, ya sabemos como hacerlo:

[albertux@debian]$ ps aux > procesos.txt

Recordando más…

Para renombrarlo:

[albertux@debian]$ mv procesos.txt procesos-activos.txt

Para borrarlo:

[albertux@debian]$ rm procesos.txt

Otro comando interesante es el comando ‘grep‘ que nos ayudará en muchas ocasiones para filtrar y buscar una cadena determinada.

Imaginemos que quiero buscar el proceso que está ejecutando mi navegador web mozilla (iceweasel). Para ello combinaremos ‘ps y ‘grep‘ con las famosas tuberías (|) de este modo:

[albertux@debian]$ ps aux | grep iceweasel
usuario1 1787 0.0 3332 760 pts/0 R+ 12:02 0:00 grep iceweasel

Vemos que el PID de su proceso es el 1787. Imaginemos que como administrador vemos que este proceso nos ha fallado o nos está dando problemas. Podemos matarlo con la orden ‘kill‘.

[albertux@debian]$ kill 1787

Otros comandos muy útiles para un administrador de Linux son los relativos a la gestión de permisos, usuarios y grupos de archivos y directorios:

COMANDO:

ACCIÓN:

chmod

Cambia los permisos de un archivo. Con ‘-R’ los hará de modo recursivo a los directorios.

Ej.: chmod -R 755 procesos.txt

chown

Cambia de propietario a un archivo. Con ‘-R’ lo aplica de modo recursivo a los directorios.

Ej.: chown -R alberto /home/alberto

chgrp

Cambia de grupo a un archivo. Con ‘-R’ lo aplica de modo recursivo a los directorios.

Ej.: chgrp -R www-data /home/alberto

adduser

Añade un nuevo usuario.

deluser

Elimina un usuario existente.

addgroup

Añade un nuevo grupo de usuarios.

delgroup

Elimina un grupo de usuarios ya existente.

En sucesivos capítulos trataremos con más profundidad la administración de usuarios, grupos y permisos para mantener una política de seguridad precisa en nuestros equipos.

Esta obra está protegida por la Licencia Creative Commons, bajo las condiciones de: Reconocimiento – No comercial – Compartir igual: El material creado por un artista puede ser distribuido, copiado y exhibido por terceros si se muestra en los créditos. No se puede obtener ningún beneficio comercial y las obras derivadas tienen que estar bajo los mismos términos de licencia que el trabajo original.

ReconocimientoReconocimiento (Attribution): El material creado por un artista puede ser distribuido, copiado y exhibido por terceras personas si se muestra en los créditos.

No comercialNo Comercial (Non commercial): El material original y los trabajos derivados pueden ser distribuidos, copiados y exhibidos mientras su uso no sea comercial.

Compartir IgualCompartir Igual (Share alike): El material creado por un artista puede ser modificado y distribuido pero bajo la misma licencia que el material original.

Podéis descargar este capítulo en formato PDF, desde aquí.
Para ver los capítulos anteriores: pincha aquí.
Resto de Posts de estos capítulos: http://albertux.es/?s=capitulo

Versión: 1.0
Autor: Alberto Reynolds Moreno.
alberto.reynolds[@]gmail.com
Revisión: Isabel Rueda Rodríguez
rueda.isabel[@]gmail.com

h1

El A,B,C de Linux

9 junio 2008

Este video explica muy bien la idea de Linux. Entre algunas de sus frases está el A,B,C de quienes amamos esta filosofía:

Recoger datos es sólo el primer paso hacia la sabiduría, pero compartir información es el primer paso hacia la comunidad“.

Lo que el aprende, todo lo aprendemos. Lo que él sabe, nos beneficia a todos“.

Res publica non dominetur – Lo que es público no tiene dueño“.

Aún así, hay gente que nos mira raro … 😉

h1

Capítulo IV: La consola y el árbol de directorios de Linux

3 junio 2008

Seguimos con la guía de administración de Linux, esta vez hablaremos de la consola de Linux y de su árbol de directorios, pero antes de comenzar a profundizar en el árbol de directorios, es buen momento para, a modo de prólogo, hablar muy superficialmente de una de las herramientas que como administradores de sistemas Linux vamos a utilizar a diario, se trata de la consola o terminal.

4.1 La consola, nuestra herramienta de trabajo:

Como ya hemos repetido varias veces, un buen administrador de Linux trabajará, la mayor parte de su tiempo, con una terminal de texto o consola desde donde ejecutará las órdenes y comandos necesarios para una buena administración del equipo.

La consola o terminal, será esa “pantalla negra” que nos aparecerá con un intérprete de comandos cuando no tenemos entorno gráfico o aquella ventana que, aún teniendo entorno gráfico, abriremos para ejecutar comandos.

La consola por defecto presenta una apariencia similar a la siguiente:

[albertux@debian]$

La información que nos ofrece esta terminal y su intérprete de comandos es la siguiente:

  • Nombre del usuario con el que se ha logeado: en este caso “albertux”.

  • Nombre del host que le hemos dado durante la instalación al equipo en el que estamos trabajando: en este caso “debian”.

  • El símbolo $ que indica que estamos trabajando como un usuario final sin privilegios de administración.

Nota: cuando estemos trabajando como administrador, el símbolo $ pasará a ser una #.

De este modo sabremos si somos administrador o no desde una terminal.

Tras el símbolo $ o #, tenemos preparado y paradeando nuestro intérprete de comandos, a través del cual, comenzaremos a pasarle los comandos y órdenes que necesitemos.

A lo largo de los capítulos iremos viendo algunos de los comandos fundamentales para poder administrar nuestra máquina Linux, lógicamente no servirá cualquier entrada en el intérprete:

[albertux@debian]$ hola

bash: hola: command not found

En el ejemplo anterior, la consola nos muestra la salida provocada al ejecutar el comando ‘hola’ sobre nuestro intérprete de comandos bash: ‘command not found’ (veremos más adelante que existen diferentes intérpretes de comandos).

Con esto tenemos una primera idea de lo que puede ser una consola o terminal y para qué vamos a utilizarla.

Nota: durante los sucesivos capítulos de este howto, indicaremos con el color verde la respuesta del intérprete de comandos al ejecutar una orden y con el color blanco el intérprete de comandos y la orden o comando a ejecutar.


4.2 Los principales directorios en Linux:

Si somos usuarios noveles de Linux, quizás esta jerarquía de árbol de directorios nos pueda resultar algo confusa o desordenada, pero nada más lejos de la realidad, nos daremos cuenta a lo largo de este howto que cada elemento está perfectamente ubicado en un directorio concreto.

Fuente:www.tiraecol.net

Como hemos comentado, la estructura de árbol de directorios que ofrece Linux, puede ser, a primera vista, algo confusa; pero presume de ser de las estructuras de directorios más organizadas que se conocen.

Los principales directorios en Linux son:

DIRECTORIO

DESCRIPCIÓN

/

Es el directorio RAÍZ, la base del resto de directorios y por donde debe comenzar cualquier ruta.

/boot

Contiene los archivos del kernel y archivos de configuración del ARRANQUE del sistema.

/bin

Son los archivos EJECUTABLES ESENCIALES por todos los usuarios.

/dev

Directorio donde se encuentran los DISPOSITIVOS.

/etc

Directorio que contiene los archivos de CONFIGURACIÓN.

/etc/rc.d

Archivos de configuración de INICIALIZACIÓN.

/home

Directorio de los USUARIOS.

/lib

LIBRERÍAS esenciales y módulos del kernel.

/mnt

Directorio donde “MONTAR” los distintos dispositivos y/o particiones.

/mnt/cdrom

Directorio donde se monta el CD-ROM.

/mnt/floppy

Directorio donde monta la DISQUETERA.

/mnt/usb

Directorio donde monta un USB.

/proc

Información sobre partes del sistema (PROCESOS)

/root

Directorio del ROOT.

/sbin

Directorio que contiene los EJECUTABLES DEL ROOT.

/tmp

Directorio TEMPORAL

/usr

PROGRAMAS, documentación, fuentes… de los usuarios del sistema.

/var

Archivo de VARIABLES, logs…


Como se puede apreciar, la raíz del árbol es llamada con “/”, en Linux no existe c:, d:, a: …

Otro tema a tener en cuenta, es que si disponemos de distintos discos duros podremos “montar” los distintos directorios en el disco que queramos, es decir, podremos instalar la mayoría de estos directorios en un primer disco duro maestro y, por ejemplo, los datos de usuario (directorio HOME) y el directorio de VAR en un segundo disco duro, como medida de seguridad para no perder estos datos en caso de pérdida del Sistema.

Este reparto será siempre transparente para la jerarquía de directorios. No deberemos indicar en que disco duro está el archivo o directorio al que quiero llegar como sucede en Windows (con C: o D:), sino que bastará con indicar simplemente la ruta; ej.: cd /home/usuario

Como usuario final, únicamente tendremos acceso y permisos, dentro de nuestro directorio personal ubicado en /home.

Si somos administrador (root), seremos responsables de la política de seguridad y mantenimiento del resto de directorios.

Recordatorio: como administrador (root) tendremos acceso y permisos para configurar y manipular cualquier directorio y archivo del sistema.

Un usuario que se valide como usuario final, sólo podrá “jugar” dentro de su directorio /home.

Lo realmente atractivo de Linux es ser ese administrador (root). Este Howto trata de la figura del administrador, así que estamos de suerte 😉


4.3 Tipos de archivos en Linux:

En Linux, existen cuatro tipo diferentes de archivos: archivos normales, especiales, directorios y enlaces.

  • Archivos normales: pueden contener texto, código fuente en C, archivos de orden shell (programas, interpretados), programas binarios ejecutables…

  • Archivos especiales: son archivos con una función especial en el sistema. Suelen hacer referencia a los dispositivos.

  • Los directorios: incluyen en su interior otros archivos y subdirectorios. Los ficheros son identificados por el sistema por su número de inodo, el cuál es el único identificador del fichero para el sistema de ficheros.

Un directorio es una lista de números de inodo con sus correspondientes nombres de fichero. Cada nombre de fichero en un directorio es un enlace a un inodo particular.

  • Los enlaces: existen dos tipos de enlaces, enlaces duros y enlaces simbólicos.

4.3.1 Intérprete de comandos I:

Visto lo anterior, comencemos a utilizar nuestro intérprete de comandos para realizar estas tareas.

Por ejemplo, supongamos que tenemos un fichero ‘hola.txt‘ en un directorio. Usando el comando ‘ls -i‘, desde una terminal, veremos el número de inodo para ese fichero.

[albertux@debian]$ ls -i hola.txt

22192 hola.txt

En este ejemplo, el fichero ‘hola.txt‘ tiene el número de inodo ‘22192′ en el sistema de ficheros.

Los enlaces duros: son un tipo de enlace que nos permite crear una especie de ‘acceso directo’ entre un archivo o directorio original y otro, llamado enlace.

Mediante la orden ‘ln’ ejecutada en nuestro intérprete de comandos desde una consola, podremos crear múltiples enlaces para un fichero.

Supongamos que queremos crear un archivo, al que llamaremos ‘hola2.txt’ que será un enlace (‘acceso directo’) a ‘hola.txt’:

[albertux@debian]$ ln hola.txt hola2.txt


Con ‘ls -i’ veremos que los dos ficheros tienen el mismo inodo:

[albertux@debian]$ ls -i hola.txt hola2.txt

22192 hola.txt

22192 hola2.txt

Ahora, accediendo a uno o a otro accederemos al mismo fichero, ya que es el mismo inodo. Si haces cambios en ‘hola.txt‘, estos cambios también serán efectuados en ‘hola2.txt‘ puesto que, a todos los efectos, son el mismo fichero.

Nota: sólo podemos crear enlaces duros entre ficheros del mismo sistema de ficheros, no sucede lo mismo con los enlaces simbólicos.

Un fichero sólo está definitivamente borrado del sistema cuando no quedan referencias a él. Puedo borrar ‘hola.txt‘ y seguirá existiendo ‘hola2.txt‘.

Los enlaces simbólicos: los enlaces simbólicos son otro tipo de enlace, que es diferente al enlace duro. Un enlace simbólico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo.

La orden ‘ln -s‘ crea un enlace simbólico a un fichero:

[albertux@debian]$ ln -s adios.txt adios2.txt

Crearemos un enlace simbólico ‘adios2.txt‘ apuntando al fichero ‘adios.txt‘. Si usamos ‘ls -i‘, veremos que los dos ficheros tienen inodos diferentes, en efecto:

[albertux@debian]$ ls -i adios.txt adios2.txt

22195 adios.txt

22341 adios2.txt

Si ahora borramos el original, ‘adios.txt‘, el contenido de ‘adios2.txt‘ se perderá, aunque seguirá existiendo el archivo ‘adios2.txt’ (vacío).

Esta obra está protegida por la Licencia Creative Commons, bajo las condiciones de: Reconocimiento – No comercial – Compartir igual: El material creado por un artista puede ser distribuido, copiado y exhibido por terceros si se muestra en los créditos. No se puede obtener ningún beneficio comercial y las obras derivadas tienen que estar bajo los mismos términos de licencia que el trabajo original.

ReconocimientoReconocimiento (Attribution): El material creado por un artista puede ser distribuido, copiado y exhibido por terceras personas si se muestra en los créditos.

No comercialNo Comercial (Non commercial): El material original y los trabajos derivados pueden ser distribuidos, copiados y exhibidos mientras su uso no sea comercial.

Compartir IgualCompartir Igual (Share alike): El material creado por un artista puede ser modificado y distribuido pero bajo la misma licencia que el material original.

Podéis descargar este capítulo en formato PDF, desde aquí.
Para ver los capítulos anteriores: pincha aquí.
Resto de Posts de estos capítulos: http://albertux.es/?s=capitulo

Versión: 1.0
Autor: Alberto Reynolds Moreno.
alberto.reynolds@gmail.com
Revisión: Isabel Rueda Rodríguez
rueda.isabel@gmail.com