Presentación sobre La Estructura del Sistema de Archivos Gnu/Linux; como parte del Diplomado de Software Libre que se lleva a cabo en la Universidad Abierta para Adultos (UAPA), Santiago de los caballeros. #Linux #softwarelibre
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
[ES] Estructura del Sistema de Archivos Gnu/Linux
1. Diplomado en Software Libre
Estructura del sistema
de archivos GNU/Linux
Eudris Cabrera Rodríguez
15 Junio 2014, Santiago de los Caballeros, R. D.
@eudriscabrera @eudriscabrera
2. Todas las marcas registradas, así como todos los logotipos, imágenes,
fotografías, audio y vídeos mostrados en esta presentación son
propiedad de sus respectivos propietarios.
Su utilización es solamente para fines ilustrativos y no pretendo dar a
entender cualquier afiliación con esas empresas.
Los conceptos y juicios de valor emitidos en esta presentación son
responsabilidad personal y no se puede entender como una posición
oficial de alguna empresa con la que he tenido relación laboral.
Asuntos Legales
3. Agenda
❏ Organización del Sistema de Archivos
❏ Sistemas de Archivos Más Comunes
❏ Tipos de Archivos
❏ Particiones
❏ Utilidades para el Uso y Mantenimiento del Disco
❏ Comandos Básicos de la Administración de Archivos
❏ Búsqueda de Contenido en Archivos
4. Objetivos
❖ Conocer cómo está organizado el sistema de archivo
❖ Aprender técnicas avanzadas para el uso y mantenimiento del
disco.
❖ Asimilar comandos básicos para la administración del sistema de
archivos.
5. GNU/Linux reside bajo un árbol jerárquico de directorios muy similar a la
estructura del sistema de archivos de plataformas Unix.
Para garantizar la compatibilidad y portabilidad, los sistemas Linux cumplen
con el estándar FHS (Filesystem Hierarchy Standard, Estándar de jerarquía del
sistema de archivos).
FHS se define como un estándar que detalla los nombres, ubicaciones,
contenidos y permisos de los archivos y directorios.
Organización del sistema de archivo
6. Todos el sistema de archivos de Linux tiene un origen único la raíz o root
representada por /.
Bajo este directorio se encuentran todos los ficheros a los que puede acceder
el sistema operativo.
Estos ficheros se organizan en distintos directorios cuya misión y nombre son
estándar para todos los sistemas Linux.
GNU/Linux considera cada archivo, directorio, dispositivo, y
vínculo como un archivo colocado en esta estructura.
Organización del sistema de archivo
8. Inode (inodo, nodo-i o nodo índice) es una estructura de datos usada para
almacenar la información acerca de cada archivo, incluyendo:
1. Puntero a la posición física en el disco
2. El nombre
3. La identificación del dueño y grupo
4. Reglas de acceso
5. Tamaño
6. Fecha y tiempo que el archivo fue accedido por última vez
7. Fecha y tiempo de la última modificación
8. Fecha y tiempo de la última modificación del inode
9. Número de vínculos (links) al archivo
Inodes
9. El nombre del archivo es
almacenado en el directorio y
asociado a su propio inode .
Cada archivo tiene un inode
asociado a él, aunque cada
archivo puede tener más de
un nombre a través del uso
de vínculos, cada archivo
tiene sólo un inode.
Inodes
10. Use el comando ls -i para determinar el número de inodes de cualquier
archivo.
$ ls -i nombre-archivo
También podemos usar el comando stat para tales fines.
$ stat nombre-archivo
Inodes
11. Un sistema de archivos provee una forma de almacenar archivos que luego
podrán ser accesados al azar, incluyendo discos duro, disquetes, y CD -ROMs.
Algunos medios de almacenamiento no contienen un sistema de archivos real.
Por ejemplo:
Las cintas (tape drives) son accesadas secuencialmente.
Sistemas de archivos más comunes
12. FAT, FAT16, FAT32:
Sistema de archivos de MS-DOS,
Windows 95 y Windows 98.
Se sigue utilizando por su sencillez y
porque es reconocido por todos los
sistemas operativos.
Es un sistema de archivos muy frágil y no
es tolerante a fallos, además de ser lento
con respecto a los otros.
Sistemas de archivos más comunes
NTFS:
Sistema de archivos de Windows NT,
2000, XP y 2003.
Es un sistema más sofisticado y rápido
que es anterior y el actual estándar de
Microsoft.
Es un sistema de archivos cuya
implementación es propietaria y cerrada,
por lo que no es reconocido en su
totalidad por todos los sistemas
operativos.
13. EXT2:
Sistema de archivos estándar de Linux, su organización interna permite no necesitar
defragmentación (fenómeno que se da en otros sistemas por el cual los archivos se distribuyen de
forma que el tiempo que se tarda en acceder a ellos se incrementa, incrementando el tiempo de
acceso a disco).
EXT3: Es la extensión de EXT2, incorpora tolerancia a fallos permitiendo una rápida
recuperación del sistema cuando el ordenador se bloqueó o apagó inesperadamente.
ReinserFS y XFS:
Sistemas de archivos de alto rendimiento y rapidez que mejoran los sistemas anteriores.
Sistemas de archivos más comunes
14. GNU/Linux soporta diferente tipos de sistemas de archivos y utiliza el primer
carácter del bloque de permisos para identificar el tipo de archivo.
En su tabla de inode GNU/Linux no diferencia entre archivos y directorios.
El sistema operativo sabe si es un archivo regular o un directorio por el
carácter de tipo.
Tipos de Archivos
15. Archivos físicos:
Estos son los archivos en el sentido más conocido, es decir, un fragmento de
información con un nombre.
Directorios:
También llamados carpetas son archivos (nodos) que forman parte de la
estructura jerárquica. Se conceptualizan como contenedores de archivos,
aunque realmente son archivos que contienen una lista de de otros archivos.
Tipos de Archivos
16. Enlaces:
Son archivos especiales que permiten que contienen una suerte de atajo a
otros archivos y que permiten acceder a dichos archivos desde distintas rutas
sin tener que tener más que una copia del archivo original.
Los enlaces se clasifican en dos tipos:
Enlaces simbólicos y Enlaces físicos.
Tipos de Archivos
17. Enlaces simbólicos:
son punteros virtuales (accesos directos) a un archivo. El borrado de uno o todos los
enlaces simbólicos que apunten a un archivo no afectan al archivo original.
Para crearlos se utiliza el siguiente comando:
$ ln - s nombre_archivo nombre_enlace
Enlaces físicos: (También llamados rígidos)
Representan un nombre alternativo de un mismo archivo.
La eliminación de uno o varios enlaces físicos no afectará al archivo original mientras
no se eliminen todos los enlaces
Tipos de Archivos
18. Tienen como limitación el hecho de que sólo es posible crear enlaces físicos dentro de un
único e idéntico sistema de archivo.
Para crearlos se utiliza el siguiente comando:
$ ln nombre_archivo nombre_enlace
Archivos virtuales:
No son archivos reales, pues solo existen en la memoria en forma de procesos y son
accesibles desde el sistema de archivos.
La mayoría de estos archivos se ubican en el directorio /proc y como procesos se crean y
se destruyen en cada sesión. Acceder a ellos nos permite obtener información del
sistema (memoria,procesador, particiones, etc)
Tipos de Archivos
19. Archivos de dispositivo:
Estos archivos, ubicados en el directorio /dev permiten acceder a los distintos
dispositivos conectados al computador.
Las unidades de almacenamiento y otros dispositivos, al ser tratados como
archivos soportan tareas de direccionamiento y redireccionamiento.
Tipos de Archivos
21. Una partición de un disco duro es una división lógica en una unidad de
almacenamiento (por ejemplo un disco duro o unidad flash), en la cual se
alojan y organizan los archivos mediante un sistema de archivos.
Existen dos tipos de particiones para almacenar data, primaria y extendida.
Partición
22. Una partición primaria es formateada y entonces se puede utilizar para
almacenar archivos.
Además, un computador sólo puede ser arrancado desde una partición
primaria.
Solo puede haber 4 particiones primarias, ó 3 particiones primarias y una
extendida.
Partición Primaria
23. Una partición extendida es otro tipo de partición que actúa como una partición
primaria; sirve para contener múltiples unidades lógicas en su interior.
Fue ideada para romper la limitación de 4 particiones primarias en un solo
disco físico.
Solo puede existir una partición de este tipo por disco, y solo sirve para
contener particiones lógicas.
Por lo tanto, es el único tipo de partición que no soporta un sistema de
archivos directamente.
Partición Extendida
24. Una partición lógica, ocupa una porción de la partición extendida o la
totalidad de la misma, la cual se ha formateado con un tipo específico de
sistema de archivos (FAT32, NTFS, ext2,...) y se le ha asignado una unidad,
así el sistema operativo reconoce las particiones lógicas o su sistema de
archivos.
Puede haber un máximo de 23 particiones lógicas en una partición extendida.
Linux impone un máximo de 15, incluyendo las 4 primarias, en discos SCSI y
en discos IDE 8963.
Partición Lógica
25. GNU / Linux se ejecuta muy bien con dos particiones: la principal, montada en
el directorio raíz (/) y swap, que se usa para la memoria virtual temporal.
Es el mínimo suficiente en estos sistemas operativos.
Es importante destacar que las particiones de intercambio (swap) pueden
instalarse sin problemas dentro de una partición lógica.
¿Cuantas y de que Tamaño?
26. A las particiones de intercambio, al igual que a la memoria RAM, no se les asigna un
directorio; este tipo de particiones se usa para guardar ciertas réplicas de la memoria
RAM, para que de esta forma la RAM tenga más espacio para las tareas en primer plano,
guardando las tareas en segundo plano dentro de la partición de intercambio.
27. Permite crear particiones en el disco duro de la misma manera que su
contraparte de MS-DOS.
El particionamiento con fdisk puede dar lugar a la pérdida de todos los datos
del disco en cuestión.
Para invocar la utilidad debes utilizar el comando fdisk. Cuando fdisk sea
invocado sin argumentos, éste seleccionará la primera unidad de disco que
encuentre.
Fdisk
28. Pasa el nombre del dispositivo como argumento para seleccionar la unidad /
partición de tu elección (por ejemplo, el segundo disco duro IDE será
seleccionado):
$ fdisk /dev/hdb
Cabe señalar que la versión Linux de fdisk es más difícil de usar que la
versión de MS-DOS, por lo que se recomienda crear particiones desde
MS-DOS (Puedes crear un disco de inicio con el fin de dar formato a la
partición e instalar DOS después de haber instalado Linux).
Fdisk
29. Fdisk
La nomenclatura para los discos
duros
En Linux, los nombres de los dispositivos
de almacenamiento varían en función de
si son unidades SCSI o IDE.
Para los discos IDE, el primero se llama
hda, el segundo se llama hdb, etc.
Para discos SCSI, el primero se llama
sda, el segundo se llama sdb y así
sucesivamente.
Comandos de fdisk
31. FSCK
Es un utilitario usado para verificar la
estructura del sistema de archivos y
reparar cualquier inconsistencia en el
disco.
Los problemas más frecuentes
ocurren como resultado de apagados
incorrectos por razones de energía o
programas defectuosos que llevan al
sistema a colgarse .
Comando du
Reporta el monto de espacio que
ocupa un archivo o un directorio y
todos los archivos y subdirectorios
que él contiene.
Sintaxis:
$ du [opciones] [nombre-archivo]
32. Nos permite obtener información sobre el tamaño de dispositivos como son las
particiones.
Sintaxis:
$ df [opciones] [nombre-archivo]
1. El comando df retorna los valores de la siguiente información:
2. Tamaño del dispositivo
3. Número de bloques Libres en el Dispositivo
4. Número de bloques ocupados en el dispositivo
5. Porcentaje del total de bloques Libre
6. Nombre del Dispositivo
Comando df
34. Se utiliza para cambiar de posición en el sistema de archivos.
Al ingresar a su computador, se le coloca automáticamente en el directorio
home.
Para cambiar a otro directorio, usted ejecuta el comando cd (change directory)
seguido por el directorio al cual de se a dirigirse como argumento.
El directorio nuevo se convierte en su directorio actual.
Sintaxis:
$ cd [directorio]
Comando cd
35. Despliega el contenido del directorio
Este comando tiene un gran número de opciones que alteran su
comportamiento.
Si usted utiliza el shell bash (Bourne Again Shell), puede adquirir un listado de
los archivos del directorio actual (pwd) con uno de los comandos ls o dir.
Sintaxis :
$ ls [opciones] [nombre]
$ dir [opciones] [nombre]
Comando ls
36. Un archivo puede ser visto como una colección de información referenciada
por un nombre.
GNU/Linux ve los dispositivos periféricos como archivos, permitiéndole leer y
escribir a ellos así como puede hacerlo a cualquier otro archivo.
Tipos de archivos incluye :
- Archivos Ordinarios (texto o binarios)
- Directorios - CD -ROM
- Impresoras - Diskettes Floppy
- Disco Duro
Comando file
37. El utilitario file nos ayuda obtener información acerca del contenidos de un
archivo sin primero tener que examinar el archivo directamente.
La salida clasifica el archivo por tipo.
Aunque el utilitario file nos presenta información sobre cualquier archivo, esta
información no siempre es correcta.
Sintaxis :
$ file [opciones] nombre-de-archivo
Comando file
38. El comando cat (concatena archivos) y puede ser utilizado para crear archivos; es
utilizado principalmente para enviar contenido de uno o más archivos a la pantalla o a
otro dispositivo de salida.
Sintaxis:
$ cat [OPCIÓN] [ARCHIVO]
Para crear un archivo nuevo, escriba $ cat > nombre-del-archivo digite aquí su
contenido y cuando termine .... Ctrl-D
Ctrl-D es el carácter end of file (EOF), fin de archivo, y cerrará el archivo.
Para desplegar el contenido de uno o más archivos en la salida estándar, escriba:
$ cat archivo1 archivo2
Comando cat
39. Funcionalidad del comando cat puede ser incrementada usando los símbolos
de dirección > o > > .
El símbolo > es utilizado para direccionar la salida hacia otro sitio
que no sea la salida estándar, como lo es usualmente la pantalla.
El > puede ser usado para escribir la salida de un comando a un archivo o a
otro dispositivo, como lo es una impresora.
El uso de > > también redirecciona la salida, pero agrega a un archivo
existente en vez de sobrescribir.
40. Los paginadores (Pagers) son utilitarios usados para desplegar archivos y que
podamos mover hacia arriba y abajo a través de múltiples páginas una pantalla
a la vez, dentro de su contenido.
También nos permite buscar dentro de los archivos información específica.
More y less son los más comunes. Ambos nos permiten desplazarnos hacia
adelante utilizando la barra espaciadora y hacia atrás con la tecla b. less, tiene
más funciones que more.
Comando more y less
41. Otras características de less incluyen:
- La capacidad de utilizar las teclas del cursor (flechas) para desplazarse para
atrás y hacia alante.
- La capacidad de navegar con bookmarks, número de líneas, o porcentaje del
archivo.
- El less deja de ejecutarse al final del archivo, more continua
Ambos nos permiten buscar dentro del archivo.
Ambos utilitarios son utilizados con gran frecuencia en desplegar las páginas
del man (manual).
Comando more y less
42. El comando wc nos informa cuántas palabras, líneas, o caractere s contiene un
archivo.
Sintaxis:
$ wc [opciones] [nombre -arch ivo(s)]
Opciones para definir la salida de wc
Opción Salida
-c Número de Caracteres -w Número de Palabras -l Número de Líneas
Si se especifican múltiples archivos en la línea de comando, el número de palabras, líneas,y
caracteres será desplegado para cada archivo seguido por el total de palabras, líneas, y
caracteres para todos los archivos.
Comando wc
43. Permiten visualizar en principio o el fin de uno o más archivos.
Use la opción -n para designar cuantas líneas desea desplegar; el
número a desplegar por defecto son 10.
También puedes utilizar la opción -v o --verbose para imprimir
siempre el nombre del archivo como cabezal.
Comando head y tail
44. El comando touch se usa para cambiar la fecha y hora de acceso y de
modificación del archivo.
Sintaxis:
$ touch [opciones] [fecha] nombre-de-archivo
Si el archivo no existe será creado un archivo vacío. Si no
especificamos ni fecha ni tiempo, el tiempo actual del sistema será
aplicado.
Comando touch
45. El comando cp copia tanto archivos como directorios.
La acción de copiar puede reemplazar cualquier archivo existente con el
mismo nombre , así que debe ser utilizado con cuidado.
Para evitar esto, tu pue de usar la opción -b (back up del archivo) o -i
(interactivo).
Para copiar recursivamente un directorio y su contenido a otro, use la opción -r
o -R.
Esto también copiará recursivamente la estructura del directorio.
Comando cp
46. El comando dd (copia de dispositivo a dispositivo) es un utilitario de copiar especial. Su uso
primario es copiar archivos a otros dispositivos como lo son cintas o floppies.
Es muy útil al copiar desde un sistema operativo a otro cuando otros métodos fracasan.
Sintaxis:
$ dd [argumentos]
Existen varios argumentos disponibles.
Una característica del dd es la capacidad de poderle especificar el tamaño del block como
parte del comando dd, brindándote así un control superior sobre la operación del copiado.
Comando dd
47. Argumentos más comunes :
if=nombre-del-archivo Especifica el archivo a copiar
of=nombre-de-archivo Especifica el archivo de salida
bs=tamaño del block Especifica cuántos bytes a escribir y leer
simultáneamente
Ejemplo
$ dd if=/dev/fd0 bs=512 of=data.backup
Esta sentencia hace una copia del contenido del diskette a un archivo llamado
data.backup.
48. El comando mv es usado para renombrar y mover archivos de un lado a otro en el árbol de
directorio.
Sintaxis :
$ mv [Opción] [archivo entrada] [archivo salida]
.
Una manera de prevenir que se pierda un archivo es usando la opción -b, el cual le crea un
backup del archivo, si va ha ser sobrescrito.
Por ejemplo
$ mv -b prueba1 prueba2
$ ls prueba*
prueba1 prueba2~ prueba2
Comando mv
Debe tener mucho cuidado: Si mueves un archivo con
el comando m v y otro archivo con el mismo nombre ya
existe en esa localidad será sobrescrito
49. El comando rm puede ser utilizado
para remover archivos individuales o
múltiples y directorios.
Después que un archivo ha sido
borrado, ya no es posible recuperarlo,
así es que debes usarlo con cautela.
Cuidado con el comando rm y la
cuenta del root, usted puede tornar su
sistema inservible.
Comando rm
Opciones:
-i Requiere una confirmación
antes de que los archivos sean
eliminados.
-f Obliga la eliminación de los
archivos que se encuentran en
modo de protección contra
escritura.
-r Borrará recursivamente archivos
y directorios. Se le cuestionara la
confirmación para cada archivo a
eliminar.
50. Para eliminar archivos recursivamente sin confirmación use la
combinación de las dos opciones -rf.
No podrá usar rm para borrar directorios, incluyendo los vacío, sin el uso de
la opción -r.
Comando rm
51. Para crear directorios se usa el comando mkdir. Si se usa sin
opciones, el directorio padre debe estar ya presente para crear uno
dentro que sería el directorio hijo, aquí le damos unos ejemplos:
$ mkdir prueba
$ mkdir prueba/hijo
También se puede crear una jerarquía de directorios de múltiple
padre e hijos en una sola sentencia con la opción -p.
$ mkdir -p prueba/padre/hijo
Comando mkdir
52. El comando rmdir borra sólo directorio que estén completamente vacío. Use
la opción de padre (-p) para remover jerarquía de directorios. Un ejemplo es:
$ rmdir -p prueba/padre/hijo
Este comando borra el directorio hijo solamente. Si existen más
subdirectorios en el directorio padre , ellos no serán borrados. Pero, si usted
escribe :
$ rmdir -p prueba/padre/*
Todos los subdirectorios que se encuentre vacíos serán borrados.
Comando rmdir
54. El comando grep (global regular expresion print) busca un patrón
o cadena simple de caracteres dentro del contenido de un
archivo.
Sintaxis:
$ grep [Opciones] patrón [listado de archivos]
Hay tres comandos relacionados 'grep, egrep, y fgrep' que
pueden ser usados para buscar en archivos línea por línea.
Comando grep
55. Las diferencias entres ellos son mínimas.
El grep puede utilizar expresiones regulares.
El egrep, utiliza expresiones extendidas, tiene una sintaxis un poco
diferente; y fgrep utiliza cadenas de caracteres simples en vez de
Expresiones Regulares.
Comando egrep
56. El comando sed (stream editor) es un editor de línea no-interactivo.
Los comandos se le pasan a sed todos a la ve z, y entonces sed procesa
el o los archivos una línea a la vez.
Sintaxis:
$ sed [-n] [-e comandos] [-f nombre-de-script] archivo.txt [>
archivo.final.txt]
Comando sed
58. Referencias
Libros:
GNU/Básico : Antonio Perpiñan
http://codigolibre.org/
After the software wars : Keith Curtis
http://keithcu.com
http://es.kioskea.net/faq/10941-linux-el-comando-fdisk
http://es.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
http://www.ubuntu-es.org/node/177034#.U5kx83LC60w