Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

viernes, 9 de junio de 2023

Fallo Catastrófico: No module named 'apt_pkg' -> Solución

 Fallo Catastrófico: No module named 'apt_pkg'

                 -> Solución


Al instalar una versión de python3, se me produce un error cada vez que intento instalar .deb o probar comandos que no están instaladado:
Por ejemplo:

$ neofech
Traceback (most recent call last):
  File "/usr/lib/command-not-found", line 28, in <module>
    from CommandNotFound import CommandNotFound
  File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
    from CommandNotFound.db.db import SqliteDatabase
  File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'


Buscando, encuentro la solución a mis problemas:

1) cd /usr/lib/python3/dist-packages/

2) sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so


Fuente:

https://stackoverflow.com/questions/13708180/python-dev-installation-error-importerror-no-module-named-apt-pkg


miércoles, 24 de noviembre de 2021

ocr a un pdf usando tesseract

 


OCR a un pdf usando tesseract

1º Paso: convertir cada pagina del pdf a png:

Usar el siguiente comando en la terminal, suponiendo que el fichero se llame nombre.pdf:

$pdftoppm -png nombre.pdf  nombre

Creará tantos ficheros .png como páginas haya:

nombre-01.png

nombre-02.png

.....


2º Escanear las paginas generadas (formato .png) usando el idioma español:

$for i in nombre-??.png; do tesseract "$i" "text-$i" -l spa; done;

Y crea tantos ficheros .txt como páginas haya.


3º Unimos todos los ficheros txt que ha generado:

$cat text-nombre* > unidos.txt


Finalmente en el fichero "unidos.txt" estará todo el texto que haya podido extraer del pdf.

Ahora nos toca revisarlo :)


Fuente:

https://www.howtogeek.com/682389/how-to-do-ocr-from-the-linux-command-line-using-tesseract/


OTRA FORMA:

find ./ -name "*.jpg" | sort | while read file; do tesseract "$file" "`basename "$file" | sed 's/\.[[:alnum:]]*$//'`.txt" -l spa -psm 3; done



domingo, 9 de junio de 2019

SoloLinux: Blog, Revista y mucho más sobre linux

SoloLinux: Blog,  Revista y mucho más sobre linux 

En un canal de telegran encontré esta web, que no conocía, os dejo varios enlaces interesantes:


Revista Digital: https://www.sololinux.es/revista-digital-magazine/





Saludos !!



viernes, 7 de junio de 2019

Instalar WINE en Linux Mint 19 XFCE4 Correctamente


Instalar WINE en Linux Mint 19 XFCE4 Correctamente


Actualice hace tiempo  linux mint 19, y hoy me ha hecho falta usar wine. Me dio problemas instalarlo normalmente, y entonces encontré este video de Cesar donde explica como hacerlo:



Estos son los comandos:

sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/Release.key 
sudo apt-key add Release.key 
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' 
sudo apt-get update 
sudo apt-get install --install-recommends winehq-stable


Gracias Cesar !!!

sábado, 13 de abril de 2019

maratón linuxero: próximo 20 de abril


maratón linuxero: próximo 20 de abril

WEB: https://maratonlinuxero.org





No te olvides que dentro de una semana tenemos una nueva emisión de #MaratonLinuxero conmemorativa del #FLISOL2019. El sábado 20 a partir de las 21:00 (UTC) anímate y participa: preguntas a los Organizadores Nacionales, sorteos y mucho más. @maratonlinuxero

#CompartiendoLibertad


Mastodon:
https://mastodon.social/@maratonlinuxero/101915078055804290

Twitter:
https://twitter.com/maratonlinuxero/status/1116799091076415492

Facebook:
https://www.facebook.com/maraton.linuxero.7





Fuente: 
Canal de telegram: https://t.me/maratonlinuxero










domingo, 17 de febrero de 2019

Truco: Como cambiar la codificación de caracteres de windows a linux: ISO-8859-1 a UTF-8


Truco:

 Como cambiar la codificación de caracteres de windows a linux: ISO-8859-1 a UTF-8


Origen del problema:
Me descargué un archivo en formato txt de la web, y cuando lo fui a abrir desde libreoffice writer, me aparecían caracteres raros donde debían de ir caracteres acentuados:


¿que ha pasado? ¿por qué ocurre este problema?
Es problema es la codificación ASCII del juego de caracteres que usa Windows (la ISO-8859-1) que es diferente a la usa Linux (la UTF-8).

Nota: ¿como se que juego de caracteres tiene el archivo?
Con el comando file -i nombre_archivo.txt, nos informa del juego de caracteres que usa el fichero:



Varias Soluciones del problema

Solución 1:

He encontrado el comando iconv que realiza la conversión de los archivos codificados de un juego de caracterea a otro. Este sería la forma de convertir un archivo procedente de windows a linux:

iconv -f ISO-8859-1 -t UTF-8 archivo_original.txt > archivo_convertido.txt

fuente:
https://desarrolloweb.com/articulos/convertir-masa-archivos-utf8.html


Solución 2:
Os comento esta, porque fue la primera que encontré y además es muy "visual", y no necesita usar ningún comando. Se trata de abrir el archivo con sublime text, (este programa detecta el juego de caracteres y los muestra correctamente en linux), y luego procedemos a "copiar y pegar" el contenido del archivo en otro programa (por ejemplo en libreoffice) y ya lo tenemos convertido.


Saludos

viernes, 10 de agosto de 2018

VideoTutorial: Crear Macros en Linux con XNEE



VideoTutorial: 

Crear Macros en Linux con  XNEE




En linux podemos crear macros (pulsasión de teclas, movimientos del ratón,  hacer click con el ratón, etc), con la herramienta cnee, que nos permite sin saber programar crear macros para automatizar tareas tediosas. Os dejo una serie de videotutoriales para que veais como se hace:

Nota:
Para empezar a grabar la macro:
cnee --record --mouse --keyboard -o macro.xns 

Para ejecutar la macro:
cnee --replay -f macro.xns -ns


XNEE Creando y reproduciendo macros en linux (1º parte)



Xnee Trucos y Tips (2º parte):




Xnee: Editando el archivo .xns y asignar macros a gestos hechos con el ratón con el programa easystroke.



Lista de reproducción dedicada a los macros con linux:





 Fuente:
http://jsbsan.blogspot.com/2017/10/productividad-automatizacion-de-tareas.html
https://askubuntu.com/questions/752325/any-macro-recorder-programs-availiable
http://www.gnu.org/software/xnee/

martes, 19 de junio de 2018

Tips: Operaciones de Mantenimiento de tu sistema Linux


Tips: Operaciones de Mantenimiento de tu sistema Linux


-Limpieza de Programas Grandes
Con el paso del tiempo, vamos instalando programas y programas, y nos olvidamos de borrarlos... Con la siguiente linea de comando podemos ver los 20 programas instalados que ocupan más sitio en nuestro sistema:

 $ dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}' | tail -n 20


Y usando synaptic, podemos desinstalarlos los que no usemos.


-Quitar Kernels antiguos:
Los kernels ocupan poco sitio (sobre 150 mb),pero cada vez que se va a actualizar, se añaden y realmente solo nos interesa tener instalado 2 (el actual y uno anterior, por si da problemas el kernel actual con nuestro hardware).
Para hacerlo de forma aumática podeis usar este comando:
$sudo purge-old-kernels --keep 2
Nota:
Teneis que tener instalado la terminal byobu:
$sudo apt install byobu

-Identificar directorios y archivos "grandes":
Una aplicación muy visual, que nos muestra el tamaño que ocupan nuestros directorios (y los ficheros que contienen), es filelight

En la siguiente imagen, usamos filelight para ver lo que ocupan los directorios y ficheros:



-Revisión de la carpeta de Descarga:
Borrar ficheros que no sean necesarios, o ya no lo usemos

-Programas de descarga p2p:
Revisión de la carpeta donde se descarga contenido descargado por los programas como Telegram, transmission, Deluge, etc

-Vaciar la carpeta de Papelera:
Tanto de nuestro usuario, como de otros (esto lo podrá hacer el administrador) que tengan cuenta en nuestro sistema. Incluida la carpeta de papelera  del administrador que se encuentra en /root/.local/Trash

Video:


Añadido el 23/06/2018:

-BleachBit:
Este es un programa que me han recomendado para borrados de archivos relacionados con el cache, contraseñas, cookies, historial, etc.. de los navegadores web, y programas que guarden historial y el propio sistema. Os dejo un video






Fuentes:
https://paraisolinux.com/ver-que-programa-ocupa-mas-espacio-en-ubuntu-y-arch/
https://www.linuxadictos.com/como-eliminar-kernels-antiguos-en-debian.html

lunes, 14 de mayo de 2018

MiriadaX: Curso sobre linux

MiriadaX: Curso sobre linux


Os dejo un nuevo curso de MiriadaX que acaba de salir, sobre linux:

Descripción de curso:

El objetivo del curso es proporcionar a los estudiantes los conocimientos teóricos y prácticos necesarios para empezar a utilizar el sistema operativo LINUX/UNIX, junto con un conjunto básico de herramientas y servicios en red, como entorno de soporte para el desarrollo de aplicaciones del software.

El curso incluye principios de diseño y conceptos de computación básicos, una guía para instalación del sistema en entorno nativo o como máquina virtual, los fundamentos básicos de uso y administración del sistema, nociones de programación Shell, la aplicación de un conjunto básico de herramientas para desarrollo de aplicaciones y la consolidación práctica global mediante prácticas y un proyecto guiado para el desarrollo de una aplicación en red basada en tecnologías Web con repositorio despliegue en Github.

Módulos del curso:
  • Módulo 0. Presentación y organización del curso. 
  • Módulo 1. Instalación del sistema operativo Ubuntu 
  • Módulo 2. La interfaz gráfica de Ubuntu. 
  • Módulo 3. Introducción al sistema operativo UNIX.
  • Módulo 4. El sistema de archivos de UNIX. 
  • Módulo 5. La interfaz de usuario de UNIX. 
  • Módulo 6. Introducción a la programación Shell.
  • Módulo 7. Administración de sistema en Ubuntu. 
  • Módulo 8. Entorno básico de herramientas de desarrollo en Ubuntu. 
  • Módulo 9. Proyecto final. 



Enlace:
https://miriadax.net/web/introduccion-a-linux-como-entorno-de-desarrollo-de-sistemas-software

domingo, 4 de febrero de 2018

Solo 75 suscriptores más...




Solo 75 suscriptores más...

A fecha de hoy, 4 de febrero, solo me faltan que se suscriban 75 personas más a mi canal de youtube para seguir siendo Parthens de Youtube  (cosa que he sido durante los últimos años), pero con el cambio de política de youtube, ahora, los pequeños canales, nos dejan fuera de monetizar nuestros videos..





Os dejo el enlace para que os podais suscribiros:


https://www.youtube.com/channel/UCeLg4NVu3Ram9t_HtXGcevQ?sub_confirmation=1


Novedades:
Estoy pendiente de realizar una encuesta para el cambio de nombre del canal y empezar a subir un nuevo curso actualizado de video tutoriales sobre Gambas3, un softwarelibre para programar fácilmente en gnu/linux.



Para más información
http://jsbsan.blogspot.com.es/2018/01/ayuda-youtube-buscando-desesperadamente.html

jueves, 1 de febrero de 2018

Maratón Linuxero: Edición Multimedia con Softwarelibre. 31 de Marzo


 Maratón Linuxero: 

Edición Multimedia con Softwarelibre. 

31 de Marzo


Ya hay fecha para el próxima cita con maratón linuxero: el 31 de Marzo de 2018, y esta vez tocarán el tema de Edición Multimedia con softwarelibre.


Para más información:
https://maratonlinuxero.org/informacion/

Canal telegram: @maratonlinuxero

sábado, 25 de noviembre de 2017

Mundo Linux: Marathon Linuxero proximo domingo 3 de diciembre

Mundo Linux:  Marathon Linuxero próximo domingo 3 de diciembre


Otra entrega de este podcast, dedicado al mundo del softwarelibre:

"Nos ha encantado poder contactar con @gabocoronado890 y que se sume a nuestro proyecto. Estará el 3 de dciembre con nosotros. Nos hablará de los sistemas GNU/Linux frente a Windows y sus paradigmas."


Fuentes:
https://maratonlinuxero.org/
https://t.me/podcastlinux





domingo, 29 de octubre de 2017

[productividad] Automatización de Tareas: Grabar Macros en Linux con XNEE

[productividad] Automatización de Tareas:

Grabar Macros en Linux con XNEE


¿tienes algunas tareas repetitivas, que te gustaría automatizar?, pues aqui tienes el grabador de macros para tu sistema gnu linux: xnee





Instalación:
sudo apt-get install gnexx

De este modo instalaremos los programas necesarios:
Vista en Synaptic una vez instalado



Icono de XNEE

Modo Terminal: CNEE

Para Grabar:

cnee --record --mouse --keyboard -o prueba.xns --stop-key Q

Nota:
Con el parámetro --stop-key le hemos dicho que para terminar la grabación de la macro, el usuario pulsará las letras "MAYS" + "q" (Q)

Para Reproducir

cnee --replay -f prueba.xns -ns



Modo Gráfico: GNEE

Módo gráfico del XNEE: GNEE

Para iniciar la grabación de macros, en modo gráfico, tendremos que configurarlo.
Por simplicidad, me gusta mucho más el modo "terminal".




Fuentes:
http://www.gnu.org/software/xnee/

Videos de ejemplo en inglés:
https://youtu.be/fupThBxwp_E
https://youtu.be/O3YKwrYaJAg -> linux mint 16

jueves, 22 de junio de 2017

videotutoriales: LMMS: Vamos a hacer música...

videotutoriales: 

LMMS: Vamos a hacer música... 

Empezamos por el principio: ¿que es LMMS?...
Linux MultiMedia Studio o LMMS es una estación de trabajo de audio digital de software libre (con licencia GPL) y multiplataforma que permite producir música con la computadora. Es una alternativa a programas como FL StudioLogic Pro o Cubase puesto que es de corte profesional. Está disponible para GNU/LinuxOpenBSDMicrosoft Windows y Mac OS X1 La música puede ser producida al crear o sintetizar sonido, organizar muestras de audio y mediante su teclado MIDI. 


Os dejo una lista de videotutoriales, que os van a explicar como hacer música con este programa




Indice de videos:

  1.  Basico: Produción musical
  2.  Base de Ritmos
  3.  Piano Roll
  4.  Sample LMMS
  5.  Uso del Mixer
  6.  Función de apergio y acorde
  7.  Subir Jessie Music Box y Vst Plugin




domingo, 30 de abril de 2017

Comando: screenfetch, muestra información de tu sistema.


Comando: screenfetch

  mostrando  información de tu sistema.


El comando screenfetch, nos muestra información de nuestro equipo (ram, cpu, gpu) y distribución gnu/linux (nombre de la distro, kernel, tiempo que lleva encendido el ordenador, paquetes instalados, shell que usamos, resolucion, gestos de ventanas, tema de iconos y GTK y tipo de letra)




Información del comando screenfetch de mi sistema....
Para instalarlo:

$sudo apt-get install screenfetch

y ejecutarlo:
$screenfetch

Para más información:
https://geekland.eu/personalizar-terminal-con-screenfetch/
http://www.ivoox.com/linux-particiones-instalacion-gestores-paquetes-audios-mp3_rf_18032138_1.html



lunes, 26 de diciembre de 2016

Gestor de Software: Como tener disponible 83950 paquetes facilmente

Gestor de Software: 

Como tener disponible 83950 paquetes fácilmente



La forma más sencilla de instalar software en nuestra distribución linux mint, es usar el gestor de paquete, que nos muestra por categorías los programas disponibles:



Entrando en una de ellas, podemos "navegar" por una gran cantidad de software de todo tipo y con un simple click, instalarlo en nuestro sistema.

Gestor de Software: Categoría Internet

Os dejo un vídeo para que veáis como se usa:






Saludos y Felices Fiestas !!!


jueves, 15 de diciembre de 2016

[Hardware] Conoce el hardware de tu ordenador



[Hardware] 

Conoce el hardware de tu ordenador



Existen multitud de comandos y herramientas que nos pueden ayudar a conocer el hardware de nuestro equipo, os dejo un resumen, de los que he encontrado más útiles:

Desde la terminal:

Listado resumido de nuestro hardware:

$sudo lshw -short



Conocer detalles de tu cpu:
Tenemos varias utilidades:
$lscpu

$cat /proc/cpuinfo

$cpuid

(es necesario tenerlo instalado: sudo apt-get install cpuid)


Conocer detalles de tu tarjeta gráfica:
Si tienes una ATI:
$lspci |grep ati
Si tienes una NVIDIA:
$lspci |grep nvidia
          Si tienes una INTEL:
$lspci |grep intel

Discos duros:

$sudo fdisk -l

y mostrando la información en forma de árbol:

$sudo lsblk -fm




Herramienta gráfica:

$hardinfo

Nota:
Para instalarla: $sudo apt-get install hardinfo





Fuentes:

domingo, 20 de noviembre de 2016

Para saber más: Postcad sobre Linux, estructura de Directorios y Logs


Para saber más: Postcad sobre Linux estructuras de  Directorios y Logs


Encontré hace varios días un Postcad  llamado Reality Cracking  , donde tenían varios episodios dedicados a explicar la organización interna de las carpetas del sistema operativo linux (estructuras de los directorios) , y también nos hablaban de los logs ( https://es.wikipedia.org/wiki/Log_(registro) ), registros donde nuestro sistema va informando de lo que ocurre o/y problemas que surgen.

Son temas que seguros que si habéis tenido curiosidad os serán muy interesantes

Organización de las carpetas en un sistema Linux
Salida del comando less, mostrando información del syslog


Os dejo los enlaces, para que os lo podáis escuchar y/o descargar :

  1. Estructura de directorios en linux
  2. Logs en gnu/linux



Saludos


Más Fuentes:
https://computernewage.com/2015/06/14/el-arbol-de-directorios-de-linux-al-detalle-que-contiene-cada-carpeta/
https://es.wikipedia.org/wiki/Log_(registro)
Filesystem Hierarchy Standard

viernes, 4 de marzo de 2016

Un BASIC para gnu linux: Gambas3

Un BASIC para gnu linux: Gambas3

Muchos de mi "quinta", empezamos con microordenadores de 8 bits como los MSX, SPECTRUM, CPC, COMODORE, etc.. donde venía "de fábrica"  el lenguaje de programación BASIC (con algunas variantes entre los distintos modelos de microordenador).

El antiguo lenguaje BASIC, ha tenido muchos prejuicios por los programadores profesionales, al ser un lenguaje que generaba el llamado "código espagueti". (por ejemplo por el uso  de la sentencia "GOTO"). Pero esto es algo propio del quehacer de los programadores, no de propio lenguaje, otros lenguajes también tiene la instrucción GOTO (como C o como ensamblador) y no tienen esa mala fama. 

BASIC se ha usado muchísimo tiempo en los  institutos para enseñar a los alumnos programación y en la universidades del todo el mundo, por universitarios que lo han usado como herramienta "rápida" para elaborar programas para tediosos cálculos o crear prototipos de programas.

Con el paso de los años BASIC ha evolucionado. Un proyecto de softwarelibre llamado GAMBAS creado por Benoît Minisini  nos permite tener un  Basic Visual para nuestro sistema favorito Gnu/Linux que., capaz de crear aplicaciones gráficas con GTK ó QT, de una manera fácil y sencilla. Además sigue el paradigma de la programación orientada a objetos y programación orientada a eventos., teniendo a nuestra disposición clases, objetos, herencia, observadores, etc. 

¿es lento Gambas?
Aqui podeis ver una tabla comparativa entre varios lenguajes y resultado de diversos test Benchmark:
Execution times are measured in seconds.
BenchmarkPythonPerlGambasGambas + JIT
sort4,30 8,52 5,36 0,43 
polynom12,47 22,54 9,20 0,60 
primes5,98 9,49 3,84 0,68 
nbody6,02 7,77 5,43 0,93 
mandelbrot6,68 4,96 3,83 0,12 
string9,42 8,16 6,10 6,11 

Os dejo un video donde podéis ver los programas que se pueden crear con esta poderosa herramienta: Gambas






Para más información:
Alojamiento del proyecto: http://gambas.sourceforge.net/en/main.html
Para instalación: http://cursogambas.blogspot.com.es/2012/08/instalacion-desde-repositorios-del.html
Documentación Oficial: http://gambaswiki.org/wiki
Curso de gambas3 en castellano: http://cursogambas.blogspot.com.es/p/indice.html
Foro en español: http://www.gambas-es.org/
Wikipedia: https://es.wikipedia.org/wiki/Gambas

viernes, 12 de febrero de 2016

GNU/Linux: DIRECTORIOS de SISTEMA y sus SISTEMAS de FICHEROS




GNU/Linux: DIRECTORIOS de SISTEMA y sus SISTEMAS de FICHEROS


No suelo copiar y pegar articulos de otros blogs, pero he hecho una mezcla entre varios artículos que hablan sobre los directorios y sistemas de fichero en gnu linux:



"Al ejecutar $ ls / listamos el contenido del nodo raíz del sistema de ficheros. Aparecen directorios como:
/dev, /etc, /proc, /sys, /var, /tmp y otros."



  • / es el directorio raíz. De aquí cuelgan todos los directorios del sistema. Dentro del directorio raíz encontramos varios subdirectorios importantes:
    • /bin contiene ficheros de comandos ejecutables utilizables por todos los usuarios. Aquí tenemos los programas que pueden lanzar todos los usuarios del sistema.
    • /sbin es para ejecutables de uso exclusivo por el superusuario. Son los necesarios para arrancar y montar el directorio /usr.
    • /home es un directorio donde se encuentran los directorios personales de los usuarios del sistema.
    • /usr contiene utilidades y programas generales de usuario:
      • /usr/bin contiene programas de uso general.
      • /usr/share contiene archivos compartibles, independientes de la arquitectura.
        • /usr/share/doc contiene cierta documentación del sistema.
        • /usr/share/man contiene los manuales.
      • /usr/etc contiene archivos de configuración de uso global.
      • /usr/include contiene las cabeceras de C y C++.
      • /usr/lib contiene las bibliotecas de nuestros programas.
      • /usr/sbin contiene los programas de administración del sistema.
      • /usr/src contiene los códigos fuente de nuestros programas.
    • /dev contiene archivos especiales de bloques y caracteres asociados a dispositivos hardware. Aquí encontramos todos los dispositivos físicos del sistema (todo nuestro hardware).
    • /lib contiene librerías y compiladores del sistema. Contiene las bibliotecas necesarias para que se ejecuten los programas que tenemos en /bin y /sbin únicamente.
    • /proc contiene los archivos que reciben o envían información al núcleo. No deberíamos modificar el contenido de este directorio.
    • /etc contiene los ficheros de configuración y utilidades para la administración.
    • /var contiene ficheros para el administrador. Este directorio contiene información variable, como registros, datos de los servidores, etc.
    • /boot contiene los archivos de configuración del arranque del sistema, como por ejemplo GRUB.
    • /media contiene todas las unidades físicas que tenemos montadas: discos duros, unidades de DVD, pen drives, etc.
    • /opt sirve para admitir ficheros nuevos creados tras la modificación del sistema. Es un punto de montaje desde el que se instalan los paquetes de aplicación adicionales. Podemos usarla para instalar aplicaciones que no vienen en los repositorios, por ejemplo, aquellas que compilamos a mano.
    • /tmp es donde se almacenan los archivos temporales.
Además  hay 2 directorios especiales:
  • Directorio actual (.): es un directorio especial que hace referencia al directorio en el que estamos. Si referenciamos al directorio . nos estaremos refiriendo al directorio actual.
  • Directorio padre (..): es un directorio especial que hace referencia al directorio padre del directorio en el que estamos. Si referenciamos al directorio .. nos estaremos refiriendo al directorio padre del actual. El único directorio que no tiene directorio padre es el directorio raíz /.

AVERIGUAR QUÉ SISTEMAS DE FICHEROS ESTÁN MONTADOS


Dos comandos nos permiten examinar qué sistemas de ficheros y dónde están montados en nuestro sistema.

$ mount
ó 
$ cat /etc/mtab


Su respuesta será algo similar a ésto:
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.22-14-generic/volatile type tmpfs (rw)
securityfs on /sys/kernel/security type securityfs (rw)


Estamos específicamente interesados en estos directorios: /proc, /sys, /var/run, /var/lock, /dev, /dev/shm, /dev/pts, /sys/kernel/security




El directorio /proc


procfs es un sistema de ficheros virtual, creado dinámicamente en memoria. Está usualmente montado en /proc.

El sistema de ficheros proc nos proporciona una interfaz a las estructuras de datos internas del kernel. Así podemos obtener información acerca del sistema y cambiar algunos parámetros del kernel en tiempo de ejecución (sysctl).


Podemos acceder a éste sistema de ficheros en modo texto:

P.ej: $ cat /proc/meminfo # muestra como está distribuida la memoria.



El directorio /proc/sys nos permite cambiar parámetros del kernel.

P.ej: $ sudo echo "fooname" > /proc/sys/kernel/hostname # cambia hostname de nuestro sistema.


Cada proceso tiene un subdirectorio en el sistema de ficheros proc denominado por su PID.


MONTAR EL SISTEMA DE FICHEROS: proc

$ mount -t proc proc /mnt/proc # Este comando monta un sistema de ficheros proc en /mnt/proc.




El directorio /sys


sysfs es un sistema de ficheros almacenado en la RAM e inicialmente basdo en ramfs. Proporciona una manera de exportar estructuras de datos del kernel, sus atributos y la relaciones entre ellos a espacio de usuario.


MONTAR EL SISTEMA DE FICHEROS: sys

$ sudo mount -t sysfs sysfs /sys # El sistema de ficheros sys está siempre activo y con éste comando podemos acceder siempre a él.




Sistema de ficheros tmpfs


Básicamente, tmpfs es un sistema de ficheros que utiliza la memoria RAM (y el swap) como su dispositivo, pero que reserva la memoria dinámicamente, al contrario que en un ramdisk. Por éso únicamente emplea la RAM que necesita.

tmpfs es un sistema de ficheros, no un dispositivo de bloques; símplemente lo montas y está allí. No es necesario usar el comando mkfs.

Este sistema de ficheros es usado en varios archivos y dispositivos como /tmp, /dev/shm, etc.


MONTAR UN SISTEMA DE FICHEROS tmpfs

$ sudo mount -t tmpfs tmpfs /mnt/tmpfs

/mnt/tmpfs tendrá una capacidad inicial muy pequeña, pero conforme se copien y creen nuevos ficheros, el driver de tmpfs reservará más memoria virtual e incrementará dinámicamente la capacidad del sistema de ficheros. Por lo mismo, conforme se vayan borrando ficheros de /mnt/tmpfs, el driver del sistema de ficheros tmpfs dinámicamente disminuirá el tamaño del sistema de ficheros y liberará los recursos de memoria.

La velocidad es la gran ventaja de tmpfs. Como reside en la RAM, el acceso es casi instantáneo. El swap también tiene un rendimiento elevado.

tmpfs no se preserva entre reinicios del sistema porque la memoria RAM es volátil.


Para evitar consumir toda la memoria virtual podemos pasar la opción size a tmpfs:

$ sudo mount tmpfs /tmp -t tmpfs -o size=64m 
# Limita su tamaño a 64 megabytes. (muy interesante!!)


Más información en:

http://www.ibm.com/developerworks/library/l-fs3.html#2




El directorio /dev


En la filosofía Unix cada dispositivo tiene asociado un fichero.
El direcotrio /dev es el lugar donde los ficheros que representan dispositivos están almacenados.

http://en.wikipedia.org/wiki/Udev

udev es el controlador de dispositivos para la serie del kernel linux 2.6. Su función principal es manejar los nodos de dispositivos en /dev. Es el sucesor de devfs y hotplug, lo que significa que se encarga de actualizar el directorio /dev y llevar a cabo las acciones necesarias en espacio de usuario cuando se añaden o quitan dispositivos, incluyendo la carga de firmware.

$ sudo mount -t tmpfs udev /dev


El directorio /dev/pts


El sistema de ficheros devpts proporciona una interfaz para los pseudo dispositivos de terminal (pty). Habitualmente se montan en /dev/pts. Se crea dinámicamente un nuevo dispositivo cuando el dispositivo maestro multiplexador de pty, /dev/ptmx, se abre.

$ sudo mount -t devpts devpts /dev/pts


El directorio /dev/shm


Este dispositivo implementa la memoria compartida POSIX.

P.ej: La memoria compartida puede ser usada como una forma rápida de compartir datos entre programas.


$ sudo mount -t tmpfs shm /dev/shm


El directorio /tmp


Este directorio es donde los programas almacenan sus archivos temporales. No está garantizado que esos datos se preserven entre diferentes invocaciones al mismo programa.

/tmp debe ser borrado cada vez que el sistema se reinicia.

$ sudo mount -t tmpfs tmpfs /tmp

El sistema de ficheros securityfs


Este es un sistema de ficheros que utilizan los módulos del seguridad del kernel linux.
Está montado en /sys/kernel/security

$ sudo mount -t securityfs securityfs /sys/kernel/security


El directorio /var/run


Contiene información de sistema y se borra cada vez que el sistema se reinicia.

$ sudo mount -t tmpfs varrun /var/run


El directorio /var/lock

Los ficheros de bloqueo (lock files) deben ser colocados en este directorio.

$ sudo mount -t tmpfs varlock /var/lock

REFERENCIA


La documentación del kernel proporciona buena información sobre sistemas de ficheros.

Para leerla, ejecuta estos comandos:

$sudo aptitude install linux-doc-2.6.22
$zless /usr/share/doc/linux-doc-2.6.22/Documentation/filesystems/proc.txt.gz
$zless /usr/share/doc/linux-doc-2.6.22/Documentation/filesystems/sysfs.txt.gz
$zless /usr/share/doc/linux-doc-2.6.22/Documentation/filesystems/tmpfs.txt.gz

NOTA: Sustituye 2.26.22 por tu versión del kernel.


A continuacion teneis una lista con los directorios mas importantes del sistema y para que se usan. Para acceder a los mismos podeis usar el comando cd 'nombre del directorio'. Para ver el contenido de los mismos podeis usar el comando ls -l 'nombre del directorio'.
Directorio        Descripción
-----------------------------------------------------------------------------------------
/bin/  Comandos/programas binarios esenciales (cp, mv, ls, rm, etc.),
/boot/  Ficheros utilizados durante el arranque del sistema (núcleo y discos RAM)
/dev/  Dispositivos esenciales, discos duros, terminales, sonido,
  video, lectores dvd/cd, etc

/etc/  Ficheros de configuración utilizados en todo el sistema y que
  son específicos del ordenador

/etc/opt/ Ficheros de configuración utilizados por programas alojados dentro
  de /opt/

/etc/X11/ Ficheros de configuración para el sistema X Window (Opcional)
/etc/sgml/ Ficheros de configuración para SGML (Opcional)
/etc/xml/ Ficheros de configuración para XML (Opcional)

/home/  Directorios de inicios de los usuarios (Opcional)
/lib/  Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y
  el núcleo del sistema.

/mnt/  Sistemas de ficheros montados temporalmente.
/media/  Puntos de montaje para dispositivos de medios como unidades lectoras
  de discos compactos.

/opt/  Paquetes de aplicaciones estáticas.
/proc/  Sistema de ficheros virtual que documenta sucesos y estados del
  núcleo. Contiene principalmente ficheros de texto.

/root/  Directorio de inicio del usuario root (super-usuario) (Opcional)
/sbin/  Comandos/programas binarios de administración de sistema.
/tmp/  Ficheros temporales
/srv/  Datos específicos de sitio servidos por el sistema.
/usr/  Jerarquía secundaria para datos compartidos de solo lectura (Unix system
  resources). Este directorio puede ser compartido por
  múltiples ordenadores y no debe contener datos específicos del
  ordenador que los comparte.

/usr/bin/ Comandos/programas binarios.
/usr/include/ Ficheros de inclusión estándar (cabeceras de cabecera utilizados
  para desarrollo).

/usr/lib/ Bibliotecas compartidas.
/usr/share/ Datos compartidos independientes de la arquitectura del
  sistema. Imágenes, ficheros de texto, etc.

/usr/src/ Códigos fuente (Opcional)
/usr/X11R6/ Sistema X Window, versión 11, lanzamiento 6 (Opcional)
/usr/local/ Jerarquía terciaria para datos compartidos de solo lectura
  específicos del ordenador que los comparte.

/var/  Ficheros variables, como son logs, bases de datos, directorio raíz
  de servidores HTTP y FTP, colas de correo, ficheros temporales, etc.

/var/cache/ Cache da datos de aplicaciones.
/var/crash/ Depósito de información referente a caidas del sistema (Opcional)

/var/games/ Datos variables de aplicaciones para juegos (Opcional)
/var/lib/ Información de estado variable. Algunos servidores como MySQL y
  PostgreSQL almacenan sus bases de datos en directorios subordinados de éste.

/var/lock/ Ficheros de bloqueo.
/var/log/ Ficheros y directorios de registro del sistemas (logs).
/var/mail/ Buzones de correo de usuarios (Opcional)
/var/opt/ Datos variables de /opt/.
/var/spool/ Colas de datos de aplicaciones.
/var/tmp/ Ficheros temporales preservados entre reinicios.




Fuentes Originales:
http://claves-de-linux.blogspot.com.es/2012/05/linux-directorios-sistemas-de-ficheros.html
http://linuxclues.blogspot.com.es/2008/03/linux-system-directories-and-their.html
http://www.redesyseguridad.es/la-estructura-de-directorios-en-linux/
http://www.linux-es.org/node/112
http://mural.uv.es/oshuso/823_directorios_ms_importantes_en_linux.html