60
Fundamentos de GNU/Linux Diplomado en Software Libre Eudris Cabrera Rodríguez @eudriscabrera @eudriscabrera 22 Febrero 2014, Santiago de los Caballeros, R. D.

[ES] Fundamentos de GNU/Linux

Embed Size (px)

Citation preview

Page 1: [ES] Fundamentos de GNU/Linux

Fundamentos de GNU/Linux

Diplomado en Software Libre

Eudris Cabrera Rodríguez

@eudriscabrera @eudriscabrera

22 Febrero 2014, Santiago de los Caballeros, R. D.

Page 2: [ES] Fundamentos de GNU/Linux

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

Page 3: [ES] Fundamentos de GNU/Linux

Agenda

❏ Particiones❏ Sistemas de Archivos Más Comunes❏ Organización del Sistema de Archivos❏ Tipos de Archivos❏ Utilidades para el Uso y Mantenimiento del Disco❏ Comandos Básicos de la Administración de Archivos❏ Búsqueda de Contenido en Archivos

Page 4: [ES] Fundamentos de GNU/Linux

Objetivos

❖ Aprender técnicas avanzadas para el uso y mantenimiento del disco.

❖ Conocer cómo está organizado el sistema de archivo

❖ Aprender comandos básicos para la administración del sistema de

archivos.

Page 5: [ES] Fundamentos de GNU/Linux

Particiones

Page 6: [ES] Fundamentos de GNU/Linux

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

Page 7: [ES] Fundamentos de GNU/Linux

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

Page 8: [ES] Fundamentos de GNU/Linux

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

Page 9: [ES] Fundamentos de GNU/Linux

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

Page 10: [ES] Fundamentos de GNU/Linux

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?

Page 11: [ES] Fundamentos de GNU/Linux

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.

Page 12: [ES] Fundamentos de GNU/Linux

Permite crear particiones en el disco duro de la misma manera que su contraparte de MS-DOS.

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

Page 13: [ES] Fundamentos de GNU/Linux

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.

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

Fdisk

Page 14: [ES] Fundamentos de GNU/Linux

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.

Fdisk

Page 15: [ES] Fundamentos de GNU/Linux

Comandos de fdisk

Fdisk

Page 16: [ES] Fundamentos de GNU/Linux

El sistema de archivos GNU/Linux organiza los archivos y directorios en una estructura jerárquica.

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.

Como cintas (tape drives) son accesadas secuencialmente , no contienen un sistema de archivos real.

Sistemas de archivos más comunes

Page 17: [ES] Fundamentos de GNU/Linux

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

Page 18: [ES] Fundamentos de GNU/Linux

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.

Sistemas de archivos más comunes

Page 19: [ES] Fundamentos de GNU/Linux

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).

Sistemas de archivos más comunes

Page 20: [ES] Fundamentos de GNU/Linux

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

Page 21: [ES] Fundamentos de GNU/Linux

GNU/Linux está organizado en una forma jerárquica.

GNU/Linux considera cada archivo, directorio, dispositivo, y vínculo como un archivo colocado en esta estructura.

Organización del sistema de archivo

Page 22: [ES] Fundamentos de GNU/Linux

Organización del sistema de archivo

Page 23: [ES] Fundamentos de GNU/Linux

El sistema operativo GNU/Linux almacena información acerca de cada archivo, incluyendo:

1. Puntero a la posición física en el disco2. El nombre3. La identificación del dueño y grupo4. Reglas de acceso5. Tamaño6. Fecha y tiempo que el archivo fue accedido por última vez7. Fecha y tiempo de la última modificación8. Fecha y tiempo de la última modificación del inode9. Número de vínculos (links) al archivo

Inodes

Page 24: [ES] Fundamentos de GNU/Linux

Una estructura de datos, llamada el inode , es usada para almacenar la información arriba mencionada de cada archivo con la excepción del nombre del archivo.

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

Page 25: [ES] Fundamentos de GNU/Linux

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

Page 26: [ES] Fundamentos de GNU/Linux

Utilidades para el uso y mantenimiento del disco

Page 27: [ES] Fundamentos de GNU/Linux

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 apagadosincorrectos por razones de energía o programas defectuosos que llevan al sistema a colgarse .

Fsck

Page 28: [ES] Fundamentos de GNU/Linux

El 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]

Du

Page 29: [ES] Fundamentos de GNU/Linux

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 dispositivo3. Número de bloques Libres en el Dispositivo4. Número de bloques ocupados en el dispositivo5. Porcentaje del total de bloques Libre6. Nombre del Dispositivo

Df

Page 30: [ES] Fundamentos de GNU/Linux

Comandos Básicos de la Administración de Archivos

Page 31: [ES] Fundamentos de GNU/Linux

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]

Cd

Page 32: [ES] Fundamentos de GNU/Linux

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]

Ls

Page 33: [ES] Fundamentos de GNU/Linux

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

File

Page 34: [ES] Fundamentos de GNU/Linux

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

File

Page 35: [ES] Fundamentos de GNU/Linux

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.

Cat

Page 36: [ES] Fundamentos de GNU/Linux

Para desplegar el contenido de uno o más archivos en la salida estándar, escriba:

$ cat archivo1 archivo2

Cat

Page 37: [ES] Fundamentos de GNU/Linux

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 sitioque 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.

Page 38: [ES] Fundamentos de GNU/Linux

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.

More y Less

Page 39: [ES] Fundamentos de GNU/Linux

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 continuaAmbos nos permiten buscar dentro del archivo.

Ambos utilitarios son utilizados con gran frecuencia en desplegar las páginas del man (manual).

More y Less

Page 40: [ES] Fundamentos de GNU/Linux

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 wcOpció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.

Wc

Page 41: [ES] Fundamentos de GNU/Linux

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.

Head y Tail

Page 42: [ES] Fundamentos de GNU/Linux

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.

Touch

Page 43: [ES] Fundamentos de GNU/Linux

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.

Cp

Page 44: [ES] Fundamentos de GNU/Linux

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]

Dd

Page 45: [ES] Fundamentos de GNU/Linux

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.

Page 46: [ES] Fundamentos de GNU/Linux

Argumentos más comunes :if=nombre-del-archivo Especifica el archivo a copiarof=nombre-de-archivo Especifica el archivo de salidabs=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.

Page 47: [ES] Fundamentos de GNU/Linux

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]

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.

Mv

Page 48: [ES] Fundamentos de GNU/Linux

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

Mv

Page 49: [ES] Fundamentos de GNU/Linux

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.

Rm

Page 50: [ES] Fundamentos de GNU/Linux

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.

Rm

Page 51: [ES] Fundamentos de GNU/Linux

Para eliminar archivos recursivamente sin confirmación use lacombinació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.

Rm

Page 52: [ES] Fundamentos de GNU/Linux

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

Mkdir

Page 53: [ES] Fundamentos de GNU/Linux

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.

Rmdir

Page 54: [ES] Fundamentos de GNU/Linux

Búsqueda de Contenido en Archivos

Page 55: [ES] Fundamentos de GNU/Linux

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.

Grep

Page 56: [ES] Fundamentos de GNU/Linux

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.

Grep

Page 57: [ES] Fundamentos de GNU/Linux

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]

Sed

Page 58: [ES] Fundamentos de GNU/Linux

¡Gracias por acompañarnos!

Page 59: [ES] Fundamentos de GNU/Linux

Referencias

Libros:GNU/Básico : Antonio Perpiñanhttp://codigolibre.org/

After the software wars : Keith Curtishttp://keithcu.com

http://es.kioskea.net/faq/10941-linux-el-comando-fdisk

Page 60: [ES] Fundamentos de GNU/Linux

@eudriscabrera

@eudris

@ecabrerar

@eudriscabrera

Eudris Cabrera Rodríguez Ingeniero Telemático

Desarrollador de Software / Consultor Informático

[email protected]