domingo, 26 de noviembre de 2017

INTERPRETE DE COMANDOS DE LINUX (SHELL).

El intérprete de comandos actúa como una interfaz alfanumérica y a su vez es un programa informático, hace posible que el sistema operativo realice órdenes deseadas por el usuario mediante una serie de comandos. Su uso nos da una gran flexibilidad sobre el sistema, fundamental para todo aquel que quiera conocer mejor la esencia de los sistemas Linux o quiera profundizar en el área de administración de sistemas, programación, redes y servidores. También llamada interprete de línea de comandos (CLI).

 Los comandos tienen la siguiente sintaxis:

  •                   # programa arg1 arg2 ... argn



Se observa que, en la "línea de comando'', se introduce el programa seguido de uno o varios argumentos. Así, el intérprete ejecutará el programa con las opciones que se hayan escrito.

Cuando se quiere que el comando sea de varias líneas, se separa cada línea con el carácter barra invertida (_). Además, cuando se quiere ejecutar varios comandos en la misma línea, los separa con punto y coma (;). Por ejemplo:

  •                  # make modules ; make modules_install



En los comandos, también se puede utilizar los comodines:

El asterisco (*) es equivalente a uno o más caracteres en el nombre de un archivo.
  • Ejemplo: ls *.c lista todos los archivos con extensión c.

El signo de interrogación (?) es equivalente a un único carácter.
  • Ejemplo: ls curso.te? lista el archivo curso.tex completando el último carácter.

Un conjunto de caracteres entre corchetes es equivalente a cualquier carácter del conjunto.
  • Ejemplo: ls curso_linux.t[aeiou]x lista curso_linux.tex seleccionando la e del conjunto.


En el mundo Linux/Unix existen tres grandes familias de Shells. Estas se diferencian entre sí básicamente en la sintaxis de sus comandos y en la interacción con el usuario.

SISTEMA OPERATIVO DE LINUX

GNU/Linux, también conocido como Linux, es un sistema operativo libre tipo Unix; multiplataforma, multi-usuario y multi-tarea. El sistema es la combinación de varios proyectos, entre los cuales destacan GNU y el núcleo Linux.


Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos.

  • Contenido:
    1. Sistema de ficheros de LINUX 
    2. Interprete de comandos de LINUX (Shell)
    3. Principales ordenes de LINUX
    4. Configuración del entorno (variables)
    5. Entorno grafico Xwindows/X11
    6. Gestión de ventanas
    7. Procesos de LINUX
    8. Señales entre procesos
    9. Tareas programadas


SISTEMA DE FICHEROS DE LINUX

Linux soporta gran variedad de sistemas de ficheros, desde sistemas basados en discos, como pueden ser ext2, ext3, ReiserFS, XFS, JFS, UFS, ISO9660, FAT, FAT32 o NTFS, a sistemas de ficheros que sirven para comunicar equipos en la red de diferentes sistemas operativos, como NFS (utilizado para compartir recursos entre equipos Linux) o SMB (para compartir recursos entre máquinas Linux y Windows).

Los sistemas de ficheros indican el modo en que se gestionan los ficheros dentro de las particiones. Según su complejidad, tienen características como previsión de apagones, posibilidad de recuperar datos, indexación para búsquedas rápidas, reducción de la fragmentación para agilizar la lectura de los datos, etc. Hay varios tipos, normalmente ligados a sistemas operativos concretos. A continuación, se enumeran los más representativos:


  • ext2: Hasta hace poco era el sistema estándar de Linux. Tiene una fragmentación muy baja, aunque es algo lento manejando archivos de gran tamaño. Fue la continuación del sistema de ficheros ext, implementado en 1992 e integrado en Linux 0.96. Las principales ventajas que tenía sobre ext eran las siguientes:
    • Compatible con sistemas de ficheros grandes, admitiendo particiones de disco de hasta 4TB y ficheros de hasta 2GB de tamaño.
    • Proporciona nombres de ficheros largos, de hasta 255 caracteres.
    • Tiene una gran estabilidad.
    • Actualización.
  • ext3: Es la versión mejorada de ext2, con previsión de pérdida de datos por fallos del disco o apagones. En contraprestació, es totalmente imposible recuperar datos borrados. Es compatible con el sistema de ficheros ext2. Actualmente es el más difundido dentro de la comunidad GNU/Linux y es considerado el estándar. Sus ventajas frente a ext2 son:
    • Actualización. Debido a que los dos sistemas comparten el mismo formato, es posible llevar a cabo una actualización a ext3, incluso aunque el sistema ext2 esté montado.
    • Fiabilidad y mantenimiento.
  • ext4: Es la última versión de la familia de sistemas de ficheros ext. Sus principales ventajas radican en su eficiencia (menor uso de CPU, mejoras en la velocidad de lectura y escritura) y en la ampliación de los límites de tamaño de los ficheros, ahora de hasta 16TB, y del sistema de ficheros, que puede llegar a los 1024PB (Peta Bytes).
  • ReiserFS: Es el sistema de ficheros de última generación para Linux. Organiza los ficheros de tal modo que se agilizan mucho las operaciones con estos. El problema de ser tan actual es que muchas herramientas (por ejemplo, para recuperar datos) no lo soportan.
  • swap: Es el sistema de ficheros para la partición de intercambio de Linux. Todos los sistemas Linux necesitan una partición de este tipo para cargar los programas y no saturar la memoria RAM cuando se excede su capacidad. En Windows, esto se hace con el archivo pagefile.sys en la misma partición de trabajo, con los problemas que esto conlleva.