12
Asignatura: Sistemas Operativos Shell de Linux: Tipos, propósitos, funcionamiento Alumna: Macías Sánchez Joselyne Claret Catedrático: Dr. Ruslan Gabbasov Semestre: 5º Grupo: 4 Ciclo Escolar: Julio-Diciembre 2014 UNIVERSIDAD AUTÒNOMA DEL ESTADO DE HIDALGO INSTITUTO DE CIENCIAS BASICAS E INGENIERIAS LICENCIATURA EN INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

Shell de Lunix

Embed Size (px)

DESCRIPTION

Investigación sobre que es una Shell de Lunix

Citation preview

1

Asignatura: Sistemas Operativos

Shell de Linux: Tipos, propósitos, funcionamiento

Alumna: Macías Sánchez Joselyne Claret

Catedrático: Dr. Ruslan Gabbasov

Semestre: 5º Grupo: 4

Ciclo Escolar: Julio-Diciembre 2014

UNIVERSIDAD AUTÒNOMA DEL ESTADO DE HIDALGO INSTITUTO DE CIENCIAS BASICAS E INGENIERIAS

LICENCIATURA EN INGENIERIA ELECTRONICA Y

TELECOMUNICACIONES

2

Índice

Introducción………………………………………….2

Definición de Shell de Linux………………………..3

Tipos de Shell de Linux……………………………..5

Características de Shell de Linux……………….....7

Opciones de Shell de Linux.……………………….8

Funcionamiento……………………………………..9

Hablando de Linux Shell…………………………..10

Conclusión…………………………………………11

Referencias………………………………………..12

3

Introducción

En esta investigación el objeto de estudio será Shell de Linux, para comprender

que es un Shell de Linux, vamos a recordar primero ¿qué es Linux?. Linux es un

sistema operativo multitarea y multiusuario concebido para funcionar en

computadoras personales. Está basado en el sistema operativo UNIX, creado en

1969 en los laboratorios Bell de la empresa AT&T, y se desarrolló inicialmente

como una versión gratuita de este último. Después de haber recordado un

concepto básico sobre que es Linux, a continuación vamos a tratar de explicar de

una manera simple los aspectos básicos de lo que es un Shell en el S.O Linux.

Además del entorno gráfico, en Linux es muy importante saber usar el

denominado terminal o Shell. En teoría es similar al intérprete de comando en

Windows que al igual es un sistema operativo y sirve para introducir órdenes y

ejecutar programas.

4

Shell de Linux

El Shell es el programa o software que provee la interface entre el usuario y el

núcleo (también conocido como kernel) del sistema operativo, en este caso el

núcleo de Linux. A grandes rasgos, el Kernel es un programa que se carga en

memoria al momento en el que el PC se inicia, y se encarga de administrar el

sistema hasta que apagamos el computador; es decir, crea y controla procesos,

gestiona la memoria, el sistema de archivos y mucho más.

El Shell es el programa de Linux que permite interactuar con el núcleo del sistema.

El Shell como software puede ser del tipo CLI o GUI, es decir, CLI (Command-Line

interface) en español Linea de comandos, y el GUI es Graphical User Interface

(Interfaz gráfica de usuario).

El Shell tradicional en Linux es el CLI prácticamente el 95% de su contenido está

basado en el Command- Line interface de Linux.

El Shell en Linux se ejecuta automáticamente al momento que lo damos de alta en

el sistema, es decir, cuando ustedes prenden su servidor de Linux y ve en pantalla

la palabra LogW. Donde debe colocar su nombre y su contraseña y el Shell se

ejecuta.

El Shell que se ejecuta en la mayoría de las distribuciones de Linux

automáticamente es el Shell bash ese Shell se encuentra en el directorio

/bin/bash. El bash es el más popular que existe en el Shell de Linux.

Fig. 1: Representación gráfica de la relación entre de los diferentes componentes

del sistema operativo con el Shell.

USUARIO

SHELL APLICACION

PL

LINUX KERNEL

ORDENADOR HARDWARE

5

A continuación les daré una breve explicación del anterior esquema, donde existe

una relación entre el usuario y el kernel del S.O y Hardware. El kernel es el

software que se comunica directamente con el Hardware de la máquina, se puede

decir que es el corazón del sistema, para que un usuario se pueda comunicar con

el kernel y el kernel con el hardware se utiliza un medio ósea una interfaz en este

caso es el Shell.

TIPOS DE SHELL

Dentro de Linux existen múltiples tipos de Linux Shell, recuerden que el Shell es la

interfaz entre el usuario y el núcleo del sistema operativo y en el tenemos CLI y

GUI. El intérprete de comandos más popular en Linux se llama bash.

A continuación se describirán las diferentes terminales Linux Shell:

bash. Que significa Bourne Again Shell el cual fue creado para usarlo en el proyecto GNU. BASH, por lo tanto, es un Shell o intérprete de comandos GNU que incorpora la mayoría de distribuciones de Linux. Es compatible con el Shell Sh. Además, incorpora algunas características útiles de ksh y csh, y otras propias como la edición de línea de comandos, tamaño ilimitado del historial de comandos, control de los trabajos y procesos, funciones y alias, cálculos aritméticos con números enteros, etc.

Fig.2. Pantalla bash

sh (Shell Bourne). Fue creado por Steve Bourne, es el más utilizado en la actualidad. Su símbolo del sistema es $. Es el shell estándar y el que se monta en casi todos los sistemas UNIX/Linux. Se encuentra en el directorio /bin/sh.

csh (C-Shell). Procedente del sistema BSD, proporciona funciones tales como control de trabajos, historial de órdenes, etc. Ofrece importantes

6

características para los programadores que trabajan en lenguaje C. Su símbolo del sistema es %.

jsh (Shell job). Incorpora algunas características de control al shell estándar del sistema.

ksh (Shell Korn). Escrito por David Korn, amplía el shell del sistema añadiendo historial de órdenes, edición en línea de órdenes y características ampliadas de programación.

Estos fueron los principales tipos de Linux Shell

Para acceder al Terminal debemos ir al menú>Aplicaciones>Luego Accesorios>

seleccionaras Terminal. Y nos aparece una pantalla como la siguiente:

Fig.3. Ejemplo de una terminal

COMANDOS DEL SHELL

Los comandos del Shell consisten en palabras.

Separadas por espacios

La primera palabra es el comando

Los demás palabras son llamadas opciones o argumentos.

7

Por ciertas razones algunos comandos son llamados builtin u otros external.

Donde Builtin se refiere aquellos que pertenecen a la Shell de Linux. Y a los que

nombran external son los que se encuentran en el sistema de Linux pero no a la

Shell.

La sintaxis que llevan las palabras después del comando son pasadas a estos

como opciones o argumentos.

La mayoría de los comandos agrupa los argumentos en dos grupos:

Opciones regularmente comienzan con el simbolo “-”.

Nombres de archivos

Las opciones menos criticas comienzan con “- -”.

CARACTERÍSTICAS DEL SHELL

Flujos

El Shell le otorga a cada programa en ejecución 3 flujos:

Entrada Estándar (teclado, archivo, dispositivo E/S).

Salidas Estándar (terminal, archivo, dispositivo E/S).

Error Estándar (terminal, archivo, dispositivo E/S).

Ejecución del Shell

Una vez que usted se ha registrado en la consola virtual, el sistema carga el

intérprete de comandos en memoria. Este lee primero el archivo /etc/profile que

contiene la configuración común del entorno para todo el sistema y sus usuarios,

luego lee el archivo .bash_profike ubicado en directorio home del usuario recién

ingresado.

Historial de comandos

La Shell de Linux tiene un historial, ya que graba todos tus movimientos, inclusive

los que tu no recuerdas. La utilidad para acceder al historial de comandos que

hemos escrito es el comando history, éste mostrará un historial enumerado de los

últimos comandos digitados.

8

OPCIONES DEL SHELL

El Shell proporciona varias opciones a la hora de digitar los comandos, tales

como:

Símbolo Significado

* Metacaracteres para usar varios archivos o directorios.

? Reemplazar un solo carácter.

& Comandos en background, ej: find>archive &

; Ejecutar varios comandos, ej: $ ls ; pine

l Para dirigir salidas standard.

> Redireccionar la salida estándar a un archivo.

>> Lo mismo que el anterior pero no sobrescribe.

< Para tomar los datos de un archivo

El Shell nos brinda un “prompt” y espera por los comando. A continuación se

muestra en la tabla los caracteres especiales de prompt.

Carácter Significado \t La hora actual en formato HH.MM.SS

\d La fecha en formato “Dia de la semana”, como por ejemplo, “Sun Feb 4”

\n Salto de línea

\s Nombre del Shell

\w El directorio actual

\W El nombre base del directorio actual. Por ejemplo, del directorio /home/shrek, el nombre base es shrek.

\u Nombre del usuario.

\h Nombre de máquina.

\# Numero de comando del comando actual.

\! Posición en el historial de comando del comando actual.

\$ Si la EUID es 0(root), el carácter “#”. En cualquier otro caso el carácter es $.

\\ La barra inclinada hacia atrás.

\nnn El carácter correspondiente al número octal nnn.

\[ Comienza una secuencia de caracteres no imprimibles, como los caracteres de escape o las secuencias de control. Estos caracteres pueden ser usados para definir colores.

\] Fin de la secuencia de caracteres no imprimibles.

Tabla 2. Caracteres especiales de la variable prompt

9

Funcionamiento

Uno de las mayores utilidades que posee una Shell es el permitirnos crear funciones para realizar tareas repetitivas fácilmente. El funcionamiento de estas funciones es parecido al que posee cualquier lenguaje de programación, en el cual se agrupan conjunto de comandos y se los llama por un nombre.

El formato de las funciones es el siguiente:

Estas funciones pueden ser definidas en cualquier lugar, incluso en las mismas líneas de comandos. Lo que habrá que recordar que hechas de esta forma se borraran de la memoria una vez que ha salido del Shell. Una forma de hacer que quede disponible en forma permanente es incorporarla en el archivo de inicio del Shell, el .bash_profile, en el cual se pondrá la función. De esta forma podremos seguir utilizándola dado que será cargada en memoria cada vez que ejecute el Shell.

Ejemplo de una función simple:

Aquí podemos ver dos factores en la creación de funciones. Primero se nombra a la función, seguida de un par de paréntesis "( )" con lo cual se indica al Shell que lo que viene a continuación deberá ser tomado como una función. Inmediatamente después de los paréntesis se abrirá una llave "{", con lo que se indica que comienzan los comandos de la función. Al terminar se cierra la llave "}".

El otro punto es el reemplazo que efectúa el shell de las variables. Aquí la variable se asigna directamente y es un número que vendrá después del signo "$". Este número indica el número del argumento de que tomara su valor y que es dado al invocar a la función. En este caso su valor pasa a ser "shrek". Podremos asignar más variables de este tipo que serán tomadas de acuerdo a su valor numérico como el número del argumento.

10

Hablando de Linux Shell

El Shell o intérprete de comandos, como antes habíamos dicho, es una interfaz con nuestro sistema operativo. Gracias a él podremos dar las órdenes y mandatos necesarios para que nuestro sistema informático realice las tareas que necesitamos. No debemos confundir al intérprete de comandos con el sistema operativo. Este es solo un programa que hará de mediador entre nosotros y el kernel del sistema. El Shell puede ser tanto gráfico (Ej. La interfaz X-Windows), como de texto (Ej. bash).

Hablaremos el tema de Shell al nivel de solo texto y en especial veremos un intérprete de comando que por su utilidad y su gran aceptación, es él más usado tanto en Unix como en Linux. Como veremos luego, el intérprete de comandos no solo tiene la labor de interpretar nuestros mandatos, también es un potente lenguaje de programación que nos será de gran utilidad a la hora de elaborar guiones (script) para poder automatizar nuestras tareas. Los usuarios de DOS estarán acostumbrados a la utilización de los archivos de procesamiento por lotes (.bat) o más bien denomina "batch".

Existen varios tipos de intérpretes de comandos en UNIX de los cuales los más famosos e importantes son el "Bourne Shell" (sh) y el "C Shell" (csh). El intérprete de comandos Bourne, usa una sintaxis de comandos usada en los primeros sistemas UNIX, como el System III. El nombre de intérprete Bourne en la mayoría de los Unix es /bin/sh (sh por shell). El C Shell posee una sintaxis muy parecida al lenguaje de programación C y se lo encontrara como /bin/csh. El más usado en el mundo Linux, como antes dijimos, es el bash por "Bourne Again Shell y se lo encontrará en /bin/bash. Bash posee toda la funcionalidad del sh con características avanzadas de C Shell, por esto cualquier guión escrito para un intérprete de comandos sh correrá perfectamente en él. Si lo que se prefiere es el uso del intérprete de comandos basado en el lenguaje C, en Linux se podrá encontrar el tcsh en /bin/tcsh, que es una versión extendida del C Shell. Los gustos de los usuarios son los que deciden que intérprete de comandos se usará, por esto es posible configurar para cada usuario un intérprete de comandos distintos y no afectar el funcionamiento de programas como el ls, cat o cp. Solo se verá afectada la funcionalidad de algún guión que esté preparado para ejecutar con un intérprete de comandos determinado, lo que veremos cómo se puede corregir al ver programación de script de Shell.

11

Conclusión

Muchos usuarios que recién empiezan en Linux sienten un fuerte temor hacia agarrar esa pantallita negra y ejecutar algunos comandos. Esa pantallita negra es la del Shell de Linux, y empezar a conocer los comandos para manejarla te va a ser sencillo, solo es cuestión de empezar y dar el primer paso.

En un principio, Linux fue utilizable sólo mediante comandos y poco a poco se ha ido implementando de manera gráfica las cosas que se podían hacer en modo texto. Aun así, las cosas que se pueden hacer mediante comandos es increíble. Inclusive hay gente que no usa el entorno gráfico para sus actividades diarias, pueden hacer todas sus tareas como leer los mails hasta ver videos con solo utilizar esta pantallita negra.

Si quieres utilizar Linux, es sumamente recomendable que puedas manejarte con algunos comandos que siempre te ayudaran en alguna situación.

12

Referencias

http://recursostic.educacion.es/observatorio/web/ca/software/software-general/295-jose-ignacio-lopez

http://docencia.udea.edu.co/cci/linux/dia8/shell.html

http://www.ant.org.ar/cursos/curso_intro/c920.html

https://www.youtube.com/watch?v=Wsog1hPPipQ&list=PLB8258D62B44EAB78&index=3

http://mural.uv.es/oshuso/831_tipos_de_shell.html

http://www.linfo.org/shell.html