Flux rss

Linux - Shell

Introducción a la shell

El intérprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre inglés "shell", que significa "caparazón".

La shell es un caparazón entre el OS y el usuario

Por lo tanto, la shell actúa como un intermediario entre el sistema operativo y el usuario gracias a líneas de comando que este último introduce. Su función es la de leer la línea de comandos, interpretar su significado, llevar a cabo el comando y después arrojar el resultado por medio de las salidas.

La shell es un archivo ejecutable que debe interpretar los comandos, transmitirlos al sistema y arrojar el resultado. Existen varios shells. La más común es sh (llamada "Bourne shell"), bash ("Bourne again shell"), csh ("C Shell"), Tcsh ("Tenex C shell"), ksh ("Korn shell") y zsh ("Zero shell"). Generalmente, sus nombres coinciden con el nombre del ejecutable.

Cada usuario tiene una shell predeterminada, la cual se activará cuando se abra un indicador del comando. La shell predeterminada se especifica en el archivo de configuración /etc/passwd en el último campo de la línea que corresponde al usuario. Es posible cambiar de shell durante una sesión. Para esto, sólo debe ejecutar el archivo ejecutable correspondiente, por ejemplo:

/bin/bash

Indicador del sistema

La shell se inicia al leer su configuración completa (en un archivo del directorio /etc/) y después al leer la configuración propia del usuario (en un archivo oculto cuyo nombre comienza con un punto y que se ubica en el directorio básico del usuario, es decir /home/user_name/.configuration_file). A continuación, aparece el siguiente indicador (prompt en inglés):

equipo:/directorio/actual$
De manera predeterminada, para la mayoría de las shells, el indicador consiste en el nombre del equipo, seguido de dos puntos (:), el directorio actual y después un carácter que indica el tipo de usuario conectado:
  • "$" especifica un usuario normal
  • "#" especifica el administrador, llamado "root"

El concepto de línea de comandos

Una línea de comandos es una cadena de caracteres formada por un comando que corresponde a un archivo ejecutable del sistema o, más bien, un comando de shell como así también argumentos opcionales (parámetros):

ls -al /home/jf/
En el comando anterior, ls es el nombre del comando, -al y home/jean-francois/ son argumentos. Los argumentos que comienzan con - se denominan opciones. Por lo general, para cada comando, hay una cierta cantidad de opciones que se pueden detallar al introducir uno de los siguientes comandos:
comando --help comando -? man comando

Entrada-salida estándar

Una vez que se ejecuta un comando, se crea un proceso. Este proceso abre tres flujos:

  • stdin, denominado entrada estándar, en cuyo caso el proceso lee los datos de entrada. De manera predeterminada, stdin se refiere al teclado. STDIN se identifica con el número 0.
  • stdout, denominado salida estándar, en cuyo caso el proceso escribe los datos de salida. De manera predeterminada, stdout se refiere a la pantalla. STDOUT se identifica con el número 1.
  • stderr, denominado error estándar, en cuyo caso el proceso escribe los mensajes del error. De manera predeterminada, stderr se refiere a la pantalla. STDERR se identifica con el número 2.

entrada-salida estándar: STDOUT, STDIN, STDERR

Por lo tanto, de manera predeterminada, cada vez que se ejecuta un programa, los datos se leen desde el teclado y el programa envía su salida y sus errores a la pantalla. Sin embargo, también es posible leer datos desde cualquier dispositivo de entrada, incluso desde un archivo, y enviar la salida a un dispositivo de visualización, un archivo, etc.

Redirecciones

Como cualquier sistema Unix, Linux posee mecanismos que permiten redirigir la entrada-salida estándar a archivos.

Por lo tanto, si se usa el carácter ">", se puede redirigir la salida estándar de un comando que se encuentra a la izquierda a un archivo que se encuentra a la derecha:

ls -al /home/jf/ > toto.txt echo "Toto" > /etc/miarchivodeconfiguración
El siguiente comando equivale a una copia de los archivos:
cat toto > toto2
El propósito de la redirección ">" es el de crear un archivo nuevo. En el caso de que un archivo ya exista con el mismo nombre, se lo debe eliminar. El siguiente comando simplemente crea un archivo vacío:
> archivo
El uso del carácter doble ">>" permite agregar la salida estándar al archivo, es decir, permite agregar la salida después del archivo sin eliminarlo.

De manera similar, el carácter "<" indica una redirección de la entrada estándar. El siguiente comando envía el contenido del archivo toto.txt con el comando cat, cuyo único propósito es mostrar el contenido en la salida estándar (el ejemplo no es útil, pero es instructivo):

cat < toto.txt

Por último, el uso de la redirección "<<" permite la lectura, en la entrada estándar, hasta que se encuentre la cadena ubicada a la derecha. En el siguiente ejemplo, se lee la entrada estándar hasta que se encuentra la palabra STOP. Después, se muestra el resultado:

cat << STOP

Tuberías de comunicación

Las tuberías (en inglés "pipes") (literalmente “tuberías”) son mecanismos de comunicación específicos para todos los sistemas UNIX. Una tubería, simbolizada por una barra vertical (carácter "|"), permite asignar la salida estándar de un comando a la entrada estándar de otro, de la misma forma en que una tubería permite la comunicación entre la entrada estándar de un comando y la salida estándar de otro.

En el siguiente ejemplo, la salida estándar del comando ls -al se envía al programa sort, el cual debe extraer el resultado en orden alfabético.

ls -al | sort

Esto permite conectar una cierta cantidad de comandos a través de sucesivas tuberías. En el siguiente ejemplo, el comando muestra todos los archivos del directorio actual, selecciona las líneas que contienen la palabra "zip" (utilizando el comando grep) y cuenta la cantidad total de líneas:

ls -l | grep zip | wc -l
Este documento intitulado « Linux - Shell » de Kioskea (es.kioskea.net) esta puesto a diposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.

Résultats pour Linux Shell

Kit de supervivencia Linux Resumen de comandos de uso frecuente En este artículo encontrarás un compendio de comandos Linux de uso frecuente que todos tenemos en la cabeza, pero de los que a menudo no recordamos alguna parte de su sintaxis o quizás toda, algunos de estos... es.kioskea.net/faq/sujet-805-kit-de-supervivencia-linux
Shell en LINUX (Resuelto) Hola, Como hago para saber que Shell estoy usando en Linux? Espero respuesta Saludos es.kioskea.net/forum/affich-1167-shell-en-linux
Arrancar con cd de Linux Hola, Cuando intento arrancar un ordenador con un cd de Linux (ya probé con varias distribuciones: Knoppix, UBuntu,...) me sale el siguiente error: No es posible encontrar la imagen del sistema. Llevando usted a un shell (muy limitado). Reinicie la... es.kioskea.net/forum/affich-6003-arrancar-con-cd-de-linux

Résultats pour Linux Shell

[Bash] La variable de entorno PATHLa variable de entorno PATH I. Preámbulo II. ¿Qué es el shell? III. Definición IV. Sección de análisis V. Añadir un directorio a la variable PATH VI. Y luego... I. Preámbulo En los sistemas GNU/Linux queramos o no, nos convertimos en... es.kioskea.net/faq/sujet-315-bash-la-variable-de-entorno-path
Guia de uso del Shell para principiantesSHELL BASH – GUIA DE USO – Nivel Principiante Introducción Llamado a los miembros de Kioskea II. ¿Qué es el Shell? III. Cómo acceder a la línea de comandos IV. Las consolas virtuales Ejemplo: Acceder a la consola 3 desde la interfaz... es.kioskea.net/faq/sujet-387-guia-de-uso-del-shell-para-principiantes
[Linux] Iniciarse en LinuxSUS PRIMEROS PASOS EN LINUX ¿Qué es Linux? Si vienes de Windows I - LOS LIVE-CDs I-1 ¿Qué distribuciones elegir? I-2 Cómo utilizarlos II - INSTALAR LINUX II-1 Particionar el disco duro II-2 Multibooteo Windows/Linux II-3 ¿Qué... es.kioskea.net/faq/sujet-267-linux-iniciarse-en-linux

Résultats pour Linux Shell

Como ejecutar un programa en linuxHola, soy nuevo en linux, pero quiero aprender mucho de este sistema y quiero saber como puedo ejecutar una aplicacion de linux en linux porue baje un programa y no pasa nada no me deja quiero saber como puedo hacer esto o es muy facil o es milinux es.kioskea.net/forum/affich-26863-como-ejecutar-un-programa-en-linux

Résultats pour Linux Shell

Descargar DiskInternals Linux RecoveryDiskInternals Linux Recovery es una herramienta que te permitira recuperar archivos borrados o dañados de Linux desde Windows. Basicamente el programa crea una particion virtual con la que podras acceder a estos archivos otra vez y recuperarlos.... es.kioskea.net/telecharger/telecharger-493-diskinternals-linux-recovery
Descargar ShellLess ExplorerShellLess Explorer es una explorador local, para todos los archivos que se encuentran en tu PC. Si bien windows trae su propio explorador, muchas veces se complica encontrar lo que buscamos. Con esta aplicacion podras encontrar todo lo que busques... es.kioskea.net/telecharger/telecharger-956-shellless-explorer
Descargar Linux KernelCon Linux Kernel podremos controlar simplemente nuestro hardware y software. Ademas de eso controlaremos de manera eficiente nuestra memoria destinada a administrar el tiempo que nuestro procesador toma para manejar a su vez nuestra PC. Una... es.kioskea.net/telecharger/telecharger-697-linux-kernel

Résultats pour Linux Shell

Linux - Introducción Este sistema operativo completamente gratuito es la creación de Linus B. Torvalds. A comienzos de la década de 1990, Torvalds quiso crear su propio sistema operativo para su proyecto de graduación. Linus Torvalds intentó desarrollar una versión de... es.kioskea.net/linux/linintro.php3
Sistema UNIX: El shell El intérprete de comandos es la interfaz entre el usuario y el sistema operativo, por este motivo se le da el nombre "shell", que en castellano significa "caparazón". Por lo tanto, el shell actúa como un intermediario entre el sistema operativo y el... es.kioskea.net/unix/unix-shell.php3
Linux - Estructura de árbol de archivos Para garantizar la compatibilidad y portabilidad, los sistemas Linux cumplen con el estándar FHS (Estándar de jerarquía del sistema de archivos). La jerarquía básica es la siguiente: /La raíz, que contiene los directorios principales /binContiene... es.kioskea.net/linux/linarb.php3