Los fundamentos de usar el shell en Linux tutorial

  
 

El significado de shellshell es "shell", de hecho, ha sido una ilustración muy vívida de la función del shell en el sistema Linux. El shell es un programa "shell" fuera del kernel de Linux. Todas las tareas realizadas por el usuario en el sistema operativo se implementan a través de la interacción del shell con el kernel de Linux. Deberíamos estar familiarizados con el programa command.com en el sistema DOS. La función del shell es similar, pero el shell es más poderoso y más utilizable.

Todos los sistemas operativos tienen sus propios shells. Tome DOS como ejemplo. Su shell es el programa command.com. También hay muchos intérpretes de comandos de terceros bajo DOS, como 4DOS, NDOS, etc. Estos intérpretes de comandos pueden reemplazar completamente el programa estándar command.com. De manera similar, además del shell predeterminado Bourne (bash) para Linux, hay muchos otros shells, como el shell C (csh), el shell Korn (ksh), el shell Bourne (sh) y el shell Tenex C (tcsh). Cada versión de la función de shell es básicamente la misma, pero cada una tiene sus propios méritos. Ahora las distribuciones de Linux generalmente usan bash como el shell predeterminado.

El shell en sí es un programa escrito en lenguaje C, que es el puente entre el usuario y el kernel del sistema operativo. El shell es tanto un intérprete de comandos como un lenguaje de programación interpretado poderoso Como intérprete de comandos, el shell interpreta los comandos ingresados ​​por el usuario, los envía al kernel para su procesamiento y, finalmente, devuelve los resultados al usuario. Para acelerar la operación del comando y personalizar el programa shell de manera más efectiva, el shell define algunos comandos incorporados. Generalmente, los comandos que el shell interpreta y ejecuta se llaman comandos incorporados. Por ejemplo, hablaremos sobre cd, pwd, exit y Echo y otros comandos son comandos integrados que pertenecen a bash. Cuando el usuario inicia sesión en el sistema, el sistema carga los comandos shell y los comandos incorporados en la memoria y se ejecutan hasta que el usuario sale del sistema. Además de los comandos incorporados, hay muchos archivos ejecutables en sistemas Linux. Los archivos ejecutables son similares a los archivos .exe en Windows
, y estos archivos ejecutables también pueden ejecutarse como comandos de shell. De hecho, muchos comandos en Linux no son comandos integrados del shell. Por ejemplo, ls es un archivo ejecutable y se almacena en /bin /ls. Estos comandos son diferentes de los comandos incorporados en el shell y solo son cargados por el sistema en la memoria cuando son llamados.

Después de que el usuario inicie sesión en el sistema, si es la interfaz de caracteres de inicio de sesión, aparecerá un indicador de comando de shell. " # " indica que el usuario que inició sesión es el superusuario del sistema, " * " indica que el usuario que inicia sesión en el sistema es un usuario normal. El proceso específico de la interpretación del comando de ejecución del shell es: después de que el usuario ingresa el comando de entrada del comando, el programa del shell primero detecta si se trata de un comando integrado y, si es así, interpreta el comando como una llamada del sistema a través del intérprete interno del shell, y luego lo envía al núcleo para su ejecución; Si no es un comando incorporado del shell, el shell buscará el comando correspondiente en el disco duro según la ruta dada por el usuario o según la información de configuración de la variable de entorno del sistema, luego la transferirá a la memoria, y finalmente la interpretará como una llamada del sistema y la enviará al kernel. Ejecución

El shell final es también un poderoso lenguaje de programación interpretado que define varias opciones y variables, y admite casi todas las estructuras de programa de lenguajes de programación de alto nivel, como variables, funciones, expresiones y bucles. El shell se puede usar para escribir scripts de shell, similares a los archivos por lotes en Windows /DOS, pero las funciones del shell son más completas y más potentes.

4.1.2 Análisis de los comandos de shell La principal diferencia entre los distintos shells en Linux es la sintaxis de la línea de comandos. Para algunos comandos comunes, la sintaxis de cada versión de shell es básicamente la misma. Solo cuando se escribe un script de shell o se usan algunas funciones avanzadas del shell, se mostrarán las diferencias de cada versión del shell.

El análisis de shell se refiere al proceso de exploración de shell de los comandos, es decir, la operación de descomposición de comandos o la entrada del usuario en varias partes para ser procesadas. En Linux, el análisis de shell contiene una gran cantidad de contenido, como redirección, extensiones de nombre de archivo y canalizaciones.

En esta sección, usamos bash como ejemplo para introducir el análisis de sintaxis de los siguientes comandos de shell.

1. Formato de comando de shell Después de que el usuario inicia sesión en el sistema, se inicia la línea de comando de shell. El shell sigue una cierta sintaxis para analizar e interpretar los comandos ingresados ​​por el usuario y pasarlos al kernel del sistema. El formato general del comando de shell es:

comando [opciones] [argumentos]

De acuerdo con el hábito, generalmente nos referimos a una cadena con el formato anterior como la línea de comando. La línea de comando es la unidad básica de diálogo entre el usuario y el shell.

— comando: indica el nombre del comando.

— opciones: indica las opciones para el comando.

— argumentos: indica los parámetros del comando.

En la línea de comandos, una opción es un código que contiene una o más letras, que se usa principalmente para cambiar la forma en que se ejecuta el comando. Normalmente, hay un símbolo " - " delante de la opción para distinguir los parámetros. Por ejemplo:

[root @ WEBServer ~] #ls -a

El comando ls con la opción -a muestra todos los archivos en el directorio actual (incluidos los archivos ocultos). Si ls no agrega la opción " -a ", solo se muestran el nombre de archivo y el directorio en el directorio actual (no se muestra el archivo oculto).

Los comandos generales tienen varias opciones, que pueden enumerarse por separado, o puede enumerar las opciones requeridas después de " - ", por ejemplo,

ls – a – l

también se puede escribir como:

ls – al

Una gran cantidad de comandos pueden aceptar parámetros. Un parámetro es una o más cadenas que siguen a la opción. Estas cadenas especifican el objeto de acción del comando, como un archivo o directorio. Por ejemplo, para mostrar todos los archivos e información en el directorio /etc, use el siguiente comando:

[root @ WEBServer ~] #ls – al /etc -

En algunos casos, algunos comandos pueden Sin parámetros, como el comando ls, y algunos deben tomar parámetros. Cuando los parámetros no son suficientes, el shell dará un error. Por ejemplo, el comando mv requiere al menos dos parámetros.

[root @ WEBServer ~] #mv mylinux1.txt mylinux.txt

En una línea de comando del shell, también puede ingresar varios comandos, separar cada comando con un punto y coma, por ejemplo :

[root @ WEBServer ~] #ls – al; cp mylinux1.txt mylinux2.txt

En su lugar, también puede ingresar un comando en varias líneas, usando " \\ " Un comando continúa a la siguiente línea:

[root @ WEBServer ~] #cp – i \\

> mylinux1.txt \\

> mylinux2.txt

2. Los comodines comodín del shell son principalmente para la conveniencia del usuario de describir el archivo o directorio. Por ejemplo, cuando el usuario solo necesita finalizar el archivo con " .sh ", el comodín puede implementarse de manera conveniente. Cada versión del shell tiene un comodín. Estos comodines son caracteres especiales que el usuario puede usar para hacer coincidir los nombres de los archivos o las rutas en los argumentos de la línea de comandos. El shell tomará todos los nombres de archivo o de ruta que coincidan con las reglas coincidentes especificadas en la línea de comandos como argumentos del comando, y luego ejecutará este comando.

Los comodines utilizados comúnmente en bash son " * ", "? ", " [] ".

(1) " * " — — coincide con uno o más caracteres.

Ejemplo:

[root @ WEBServer ~] #ls * .txt

Este comando lista todos los archivos que terminan en " .txt " en el directorio actual (excepto los archivos que comienzan con ". ").

[root @ WEBServer ~] #cp doc /* /opt

Copyright © Conocimiento de Windows All Rights Reserved