Lenguaje de comandos del sistema operativo. Lenguaje de comandos de los sistemas operativos MSDOS y Windows. Las principales tareas del sistema operativo en la gestión de la memoria.

Lenguaje de comando shell (traducido como shell, shell) es en realidad un lenguaje de programación de muy alto nivel. En este idioma, el usuario controla la computadora. Normalmente, después de iniciar sesión, comienza a interactuar con el shell de comandos. Una señal de que el shell está listo para recibir comandos es el indicador que muestra en la pantalla. En el caso más sencillo es un dólar (“$”). Shell no es necesario y es el único lenguaje de comandos (aunque es el que está estandarizado en el marco de POSIX, el estándar de sistemas móviles). Por ejemplo, el lenguaje cshell es bastante popular; también existen kshell, bashell y otros. Además, cada usuario puede crear su propio lenguaje de comandos. Puede trabajar simultáneamente con diferentes lenguajes de comando en una instancia del sistema operativo. shell es uno de los muchos comandos de UNIX. Es decir, el conjunto de comandos "shell" incluye el comando "sh", que llama al intérprete "shell". El primer "shell" se llama automáticamente cuando inicia sesión y muestra un programador. Después de esto, puede llamar a cualquier comando para su ejecución, incluido el propio "shell", que creará un nuevo shell dentro del anterior. Entonces, por ejemplo, si prepara el archivo "archivo_1" en el editor:

Eco Hola!

entonces este será un archivo de texto normal que contiene el comando "echo" que, cuando se ejecuta, muestra todo lo escrito a su derecha en la pantalla. Puede hacer que el archivo "file_1" sea ejecutable usando el comando "chmod 755 file_1". Pero se puede hacer llamando explícitamente al comando "sh" ("shell"):

Archivo sh_1

sh< file1

El archivo también se puede ejecutar en la instancia de shell actual. Hay un comando específico para este "." (punto), es decir

Archivo_1

Dado que UNIX es un sistema multiusuario, incluso puedes ordenador personal trabajar en paralelo en, digamos, 12 pantallas (cambiar de pantalla a pantalla ALT/tecla de función), teniendo en cada pantalla un usuario nuevo (o el mismo) con su propio shell de comandos. También puedes abrir X-Window en modo gráfico. gran número windows, y cada ventana puede tener su propio usuario con su propio shell de comandos... El elemento central del lenguaje shell es el comando.

Estructuras de mando:

Los comandos en el shell suelen tener el siguiente formato:

<имя команды> <флаги> <аргумент(ы)>

Por ejemplo:

Ls -ls /usr/bin

Donde ls es el nombre del comando emisor directorio de contenido, -ls - banderas ("-" - signo de banderas, l - formato largo, s - volumen de archivos en bloques), /usr/bin - directorio para el cual se ejecuta el comando Este comando mostrará el contenido del directorio. en formato largo /usr/bin, agregará información sobre el tamaño de cada archivo en bloques. Desafortunadamente, esta estructura de comando no siempre va seguida de un signo menos y las banderas no siempre incluyen comandos de una sola palabra. "Ejecutar" comandos como cc - llamar al compilador de lenguaje C, tar - trabajar con archivos, dd - copiar un archivo con conversión, buscar - buscar archivos y muchos otros. Como regla general, el shell acepta la primera palabra. , como un comando, por lo tanto, en la línea de comando.

la primera palabra será descifrada por el shell como un comando (concatenación), que mostrará un archivo llamado "cat" (la segunda palabra) ubicado en el directorio actual. Redirección de comandos La entrada estándar (entrada) - "stdin" en el sistema operativo UNIX se realiza desde el teclado del terminal, y la salida estándar (salida) - "stdout" se dirige a la pantalla del terminal. También hay archivo estándar mensajes de diagnóstico: "stderr", que se discutirá un poco más adelante. Un equipo que puede trabajar con entrada estándar y la salida se llama FILTRO. El usuario dispone de medios convenientes para redirigir la entrada y salida a otros archivos (dispositivos). Los símbolos ">" y ">>" indican la redirección de salida.

ls >file_1 El comando "ls" generará una lista de archivos en el directorio actual y la colocará en el archivo "file_1" (en lugar de imprimirla en la pantalla). Si el archivo "file_1" existía antes, será sobrescrito por el nuevo.

Contraseña >>archivo_1<" и "<<" обозначают перенаправление ввода.

el comando pwd formará el nombre completo del directorio actual y lo colocará al final del archivo "file_1", es decir ">>" se agrega al archivo si no está vacío. Símbolos "

baño-l

contará y mostrará el número de líneas en el archivo file_1.<

Ed archivo_2<<" (т. е. "!"). То есть ввод будет закончен, когда первым в очередной строке будет "!". Можно сочетать перенаправления. Так

el comando pwd formará el nombre completo del directorio actual y lo colocará al final del archivo "file_1", es decir ">>" se agrega al archivo si no está vacío. Símbolos " creará el archivo "file_2" usando el editor, directamente desde la terminal. El final de la entrada está determinado por el carácter de la derecha "

archivo_4

Wc -l >archivo_4

se realizan de la misma manera: se cuenta el número de líneas en el archivo "archivo_3" y el resultado se coloca en el archivo "archivo_4". El medio que combina la salida estándar de un comando con la entrada estándar de otro se llama PIPELINE y se indica mediante una barra vertical "|".

Se enviará una lista de archivos en el directorio actual a la entrada del comando "wc", que mostrará el número de líneas en el directorio. El pipeline también puede combinar más de dos comandos, cuando todos ellos, posiblemente excepto el primero y el último, son filtros:

Archivo de gato_1 | resultado grep -h | ordenar | gato -b > archivo_2

Esta canalización del archivo "file_1" ("cat") seleccionará todas las líneas que contengan la palabra "resultado" ("grep"), ordenará ("ordenar") las líneas resultantes y luego numerará ("cat -b") y imprima el resultado en el archivo "archivo_2". Como los dispositivos UNIX están representados por archivos especiales, se pueden utilizar en redirecciones. Los archivos especiales se encuentran en el directorio "/dev". Por ejemplo, "lp" - imprimir; "consola" - consola; "ttyi" - i-ésimo terminal; "nulo" es un archivo (dispositivo) ficticio (vacío). Entonces, por ejemplo,

Ls > /dev/lp

imprimirá el contenido del directorio actual y file_1< /dev/null обнулит файл "file_1".

Ordenar archivo_1 | camiseta /dev/lp | cola -20

En este caso, el archivo "file_1" se ordenará e imprimirá, y las últimas 20 líneas también se imprimirán en la pantalla. Volvamos a la redirección de salida. Los archivos estándar están numerados:

0 - entrada estándar, 1 - salida estándar 2 - stderr. Si no desea tener un mensaje de error en la pantalla, puede redirigirlo desde la pantalla al archivo que especifique (o desecharlo por completo redirigiéndolo al archivo de "dispositivo vacío" - /dev/null). Por ejemplo, al ejecutar el comando

Gato archivo_1 archivo_2

que debería mostrar el contenido de los archivos “archivo_1” y “archivo_2” secuencialmente en la pantalla, le dará, por ejemplo, lo siguiente

111111 222222 cat: f2: no existe tal archivo o directorio

donde 111111 222222 es el contenido del archivo "archivo_1" y falta el archivo "archivo_2", que el comando "cat" informó al archivo de diagnóstico estándar, de forma predeterminada, al igual que la salida estándar representada en la pantalla. Si no desea que aparezca ese mensaje en la pantalla, puede redirigirlo al archivo que especifique:

Gato archivo_1 archivo_2 2>f-err

Se enviarán mensajes de error (como lo indica la redirección "2>") al archivo "f-err". Por cierto, puedes enviar toda la información a un archivo “ff”, usando en este caso la construcción

Gato archivo_1 archivo_2 >>ff 2>ff

Puede especificar no sólo qué archivo estándar redirigir, sino también a qué archivo estándar redirigir.

Gato archivo_1 archivo_2 2>>ff 1>&2

Aquí, primero se redirige "stderr" (en modo de adición) al archivo "ff", y luego la salida estándar se redirige a "stderr", que en este punto es el archivo "ff". Es decir, el resultado será similar al anterior. La construcción "1>&2" significa que además del número del archivo estándar al que redirigir, debes poner "&" delante; toda la estructura está escrita sin espacios.<- закрывает стандартный ввод. >- cierra la salida estándar. Archivos de comando. Hay varias opciones para permitir que un archivo de texto se utilice como comando. Usemos un editor para crear un archivo llamado "cmd" que contenga una línea como esta:

Fecha; pwd; es

Puede llamar al shell como un comando, denominado "sh", y pasarle un archivo "cmd" como argumento o como entrada redirigida, es decir.

$shcmd

$sh

El resultado de ejecutar cualquiera de estos comandos será la fecha, luego el nombre del directorio actual y luego el contenido del directorio. Una opción más interesante y conveniente para trabajar con un archivo por lotes es convertirlo en ejecutable, es decir. simplemente conviértalo en un comando, lo cual se logra cambiando el código de seguridad. Para hacer esto, debe permitir la ejecución de este archivo. Por ejemplo,

Mod 711 cmd

creará el código de seguridad "rwx__x__x". Entonces una simple llamada

ejecutará los mismos tres comandos. El resultado será el mismo si el archivo con el contenido

Fecha; pwd; es

se representa en la forma: fecha pwd ls ya que la transición a otra línea también es un separador en la secuencia de comandos. Por lo tanto, los archivos ejecutables pueden ser no solo archivos obtenidos como resultado de la compilación y el ensamblaje, sino también archivos escritos en lenguaje de concha. Se ejecutan en modo interpretación utilizando un intérprete de shell.

Depuración de archivos por lotes

SHELL utiliza dos mecanismos para depurar archivos por lotes. El primero es: set -v imprime las líneas del archivo de comando a medida que se leen. Este modo se utiliza cuando se buscan errores de sintaxis. Para usarlo, no necesita modificar el archivo de comando, por ejemplo: sh -v proc... aquí proc es el nombre del archivo de comando. El modificador -v se puede utilizar junto con el modificador -n, que evita la ejecución de comandos posteriores (el comando set -n bloquea el terminal hasta que se ingresa el indicador EOF). El comando set -x muestra los comandos a medida que se ejecutan, y las líneas del programa se envían al terminal y sus valores se sustituyen en lugar de las variables. Para cancelar los modificadores -x y -v, puede usar el comando set - y para instalar, asigne el valor correspondiente a una variable macro. ENTORNO SHELL (VARIABLES Y PARÁMETROS) En el lenguaje Shell, puede escribir archivos por lotes y usar el comando "chmod" para hacerlos ejecutables. Después de esto, no se diferencian de otros comandos del sistema operativo UNIX.

variables de shell

El nombre de una variable de shell es una secuencia de letras, números y guiones bajos que comienzan con una letra. El valor de una variable de shell es una cadena de caracteres. El hecho de que sólo haya dos tipos de datos en el shell: una cadena de caracteres y un archivo de texto, por un lado, facilita la participación en la programación de usuarios finales que nunca antes han hecho programación y, por otro lado, provoca una cierta protesta interna entre muchos programadores que están acostumbrados a una diversidad significativamente mayor y una mayor flexibilidad de medios lingüísticos. Sin embargo, es interesante observar cómo los programadores altamente calificados, familiarizados con las "reglas del juego" del shell, escriben programas en él muchas veces más rápido que en C, pero, lo que es especialmente interesante, en algunos casos estos programas se ejecutan incluso más rápido que los implementados en C. Un nombre de variable es similar a la idea tradicional de un identificador, es decir un nombre puede ser una secuencia de letras, números y guiones bajos, comenzando con una letra o un guión bajo. El operador de asignación "=" se puede utilizar para asignar valores a variables.

Var_1=13 - "13" no es un número, sino una cadena de dos dígitos.

var_2="SO UNIX" - Aquí se requieren comillas dobles (" ") porque hay un espacio en la cadena.

También son posibles otras formas de asignar valores a las variables del shell. Por ejemplo, la grabación

hace que el comando "fecha" se ejecute primero (las comillas invertidas indican que el comando adjunto debe ejecutarse primero), y el resultado de su ejecución, en lugar de enviarse a la salida estándar, se asigna como el valor de una variable, en este caso "DAT". También puede asignar un valor a una variable usando el comando "leer", que garantiza que el valor de la variable se reciba desde la pantalla (teclado) en modo de diálogo. Por lo general, el comando "leer" en el archivo por lotes va precedido del comando "eco", que le permite mostrar previamente algún mensaje en la pantalla. Por ejemplo:

Echo -n "Ingrese un número de tres dígitos:" lea x

Al ejecutar esta parte del archivo de comando, después de que se muestre el mensaje

Ingrese un número de tres dígitos:

el intérprete se detendrá y esperará a que se ingrese un valor desde el teclado. Si ingresó, digamos, "753", este se convertirá en el valor de la variable "x". Un comando de "lectura" puede leer (asignar) valores a varias variables a la vez. Si hay más variables en "leer" de las ingresadas (separadas por espacios), a las restantes se les asigna una cadena vacía. Si hay más valores transmitidos que variables en el comando "leer", los adicionales se ignoran. Al acceder a una variable de shell, debe preceder el nombre con el símbolo "$". Entonces los comandos echo $var_2 echo var_2 se mostrarán en la pantalla

Sistema operativo UNIX var_2 Escapando

Echemos un vistazo más de cerca a las técnicas de escape utilizadas en el caparazón. Las comillas dobles (" "), las comillas simples (" ") y la barra invertida (\) se utilizan como dispositivos de escape. Su acción se desprende claramente de los ejemplos: puedes escribir varias tareas en una línea.

X=22 y=33 z=$x A="$x" B="$x" C=\$x D="$x + $y + $z" E="$x + $y + $z " F=$x\ +\ $y\ +\ $z

(la asignación G=$x+$y fallaría debido a los espacios) Entonces

Eco A = $A B = $B C = $C eco D = $D E = $E F = $F eco de evaluación evaluado A = $A eco de evaluación evaluado B = $B eco de evaluación evaluado C = $C

Se mostrará en la pantalla.

A = 22 B = $x C = $x D = 22 + 33 + 22 E = $x + $y + $z F = 22 + 33 + 22 evaluado A = 22 evaluado B = 22 evaluado C = 22

Demos algunos ejemplos más relacionados con los cambios de línea de escape. Deje que a la variable "cadena" se le asigne el valor de una "matriz" de 2x3: abc def Tenga en cuenta que para evitar asignar espacios adicionales, la segunda línea de la matriz comienza desde la primera posición de la siguiente línea: cadena="abc def" Luego hay tres opciones para escribir la variable en el comando echo "echo" $string echo "$string" echo "$string" dará respectivamente tres resultados diferentes: abc def $string abc def y la secuencia de comandos echo "str_1 str_2" > file_1 echo "str_1 str_2" > file_2 cat file_1 file_2 dará secuencialmente archivos idénticos file_1 y file_2: str_1 str_2 str_1 str_2 Tenga en cuenta también que la barra invertida (\) no sólo escapa del carácter que le sigue, lo que le permite utilizar caracteres especiales simplemente como caracteres que se representan a sí mismos (también puede escapar de sí mismo - \\), sino en En un archivo de comando, una barra invertida le permite concatenar líneas en una (escapar del final de una línea). Por ejemplo, en el ejemplo de línea de comando dado anteriormente:

Archivo de gato_1 | resultado grep -h | ordenar | gato -b > archivo_2

podría escribirse en un archivo por lotes, digamos como

Archivo de gato_1 | grep -h\resultado | ordenar | gato -b > archivo_2

Por cierto, el símbolo del transportador también proporciona el efecto de continuar la línea de comando. En este caso podría dar un resultado mejor, como este:

Archivo de gato_1 |

resultado grep -h |

ordenar |

gato -b > archivo_2

Manipulaciones con variables de shell A pesar de que las variables de shell generalmente se perciben como cadenas, es decir, "35" no es un número, sino una cadena de dos caracteres "3" y "5", en algunos casos se pueden interpretar de manera diferente. por ejemplo como números enteros. El comando "expr" tiene una variedad de capacidades. Ilustremos algunos con ejemplos: Ejecutar un archivo por lotes:

X=7 y=2 a=`expr $x + $y` ; echo a=$a a=`expr $a + 1`; echo a=$a b=`expr $y - $x` ; echo b=$b c=`expr $x "*" $y` ; echo c=$c d=`expr $x / $y` ; echo d=$d e=`expr $x % $y` ; eco e=$e se mostrará en la pantalla A=9 a=10 b=-5 c=14 d=3 e=1

La operación de multiplicación ("*") debe llevarse como escape, ya que en el shell este icono se percibe como un carácter especial, lo que significa que cualquier secuencia de caracteres se puede sustituir en este lugar. Con el comando "expr" no sólo es posible (entero)

Se mostrarán números en la pantalla que muestran el número de caracteres coincidentes en las cadenas (desde el principio). La segunda línea no puede ser más larga que la primera:

4 0 0 0

Exportación de variables El sistema operativo UNIX tiene el concepto de proceso. Un proceso ocurre cuando se ejecuta un comando. Por ejemplo, al escribir "p" en el teclado Se genera el "proceso "p". A su vez, "p" puede generar otros procesos. Supongamos que "p" llama a "p1" y "p2", que generan secuencialmente los procesos correspondientes. Cada proceso tiene su propio entorno: un conjunto de variables disponibles. Por ejemplo, antes de ejecutar "p" ya había un entorno en el que algunas variables ya estaban definidas. La ejecución de "p" genera. nuevo entorno; En él ya se generarán “p1” y “p2”. Las variables son locales al proceso en el que se declaran, es decir donde se les asignan valores. Para que estén disponibles para otros procesos generados, deben pasarse explícitamente. Para hacer esto, use el comando incorporado "exportar".

Opciones

Los parámetros se pueden pasar al archivo de comando. El shell utiliza parámetros posicionales (es decir, el orden en que aparecen es importante). En el archivo de comando, las variables correspondientes a los parámetros (similares a las variables del shell) comienzan con el símbolo "$", seguido de uno de los números del 0 al 9: Llame a "examp-1" con los parámetros "cock" y "cola". Estos parámetros van al nuevo entorno con los nombres estándar "1" y "2". La variable (estándar) denominada "0" almacenará el nombre del cálculo llamado. Al acceder a los parámetros, el número está precedido por el símbolo del dólar "$" (como al acceder a las variables): $0 corresponde al nombre de este archivo de comando; $1 es el primer parámetro en orden; $2 segundo parámetro, etc. Dado que el número de variables a las que se pueden pasar parámetros está limitado a un dígito, es decir 9º (“0”, como ya se señaló, tiene un significado especial), luego para la transmisión más parámetros, se utiliza el comando especial "shift". El comando "set" proporciona un enfoque único a los parámetros. Por ejemplo, fragmento

Establecer a b con eco primero=$1 segundo=$2 tercero=$3

gato -b > archivo_2

Primero=a segundo=b tercero=c

aquellos. el comando "set" establece los valores de los parámetros. Esto puede resultar muy conveniente. Por ejemplo, el comando "fecha" muestra la fecha actual, diga "lunes 01 de mayo 12:15:10 2000", que consta de cinco palabras, luego

Establecer `fecha` eco $1 $3 $5

gato -b > archivo_2

lun 01 2000

El comando "set" también le permite controlar la ejecución del programa, por ejemplo: las líneas set -v se envían al terminal y el shell las lee. set +v cancela el modo anterior. set -x imprime comandos en la terminal antes de la ejecución. set +x cancela el modo anterior. El comando "set" sin parámetros muestra el estado del entorno del software en el terminal.

Sustituciones de conchas

Antes de interpretar y ejecutar directamente comandos contenidos en archivos de comandos, el shell realiza varios tipos de sustituciones: 1. SUSTITUCIÓN DE RESULTADOS. Todos los comandos entre comillas se ejecutan y el resultado se sustituye en su lugar. 2. SUSTITUCIÓN DE VALORES DE PARÁMETROS Y VARIABLES. Es decir, las palabras que comienzan con "$" se reemplazan con los valores correspondientes de variables y parámetros. 3. INTERPRETACIÓN DE BRECHAS. Los espacios escapados se ignoran. 4. GENERACIÓN DE NOMBRES DE ARCHIVOS. Se comprueba la presencia de caracteres especiales en las palabras ("*", "?"") y se realizan las generaciones correspondientes. Entorno de software Cada proceso tiene un entorno en el que se ejecuta. Shell utiliza varias de estas variables de entorno. Si escribe el comando "establecer" sin parámetros, la pantalla mostrará información sobre una serie de variables estándar creadas al iniciar sesión (y luego transmitidas a todos sus nuevos procesos "heredados"), así como las variables creadas y exportadas por sus procesos. . El tipo específico y el contenido de la información resultante depende en gran medida de qué versión de UNIX se utiliza y cómo está instalado el sistema.

El resultado de ejecutar el comando set sin parámetros (no completo):

HOME=/root PATH=/usr/local/bin:/usr/bin:/bin:.:/usr/bin/X11: IFS= LOGNAME=sae MAIL=/var/spool/mail/sae PWD=/home/ sae/ESTUDIO/SHELL PS1=$(PWD):" " PS2=> SHELL=/bin/bash

Comentemos los valores de las variables. HOME=/root es el nombre del directorio de inicio donde termina el usuario después de iniciar sesión. Es decir, habiendo ingresado correctamente el nombre y la contraseña, me encontraré en el directorio “/root”. PATH=/bin:/usr/bin:.:/usr/local/bin:/usr/bin/X11: esta variable especifica la secuencia de archivos que el shell busca en busca de un comando. Los nombres de los archivos están separados aquí por dos puntos. El orden de visualización corresponde al orden de los nombres en el recorrido. Pero inicialmente la búsqueda se produce entre los llamados comandos integrados. Los comandos integrados incluyen los comandos más utilizados, como "echo", "cd", "pwd", "date". Después de esto, el sistema busca en el directorio “/bin”, que puede contener los comandos “sh”, “cp”, “mv”, “ls”, etc. Luego el directorio "/usr/bin" con los comandos "cat", "ss", "expr", "nroff", "man" y muchos otros. A continuación, la búsqueda se realiza en el directorio actual ("".", u otra designación "vacío", es decir, ""), donde probablemente se encuentren los comandos que escribió. Después de escribir la línea de comando y presionar "shell" (después de realizar las sustituciones necesarias) reconoce el nombre correspondiente al comando y lo busca en los directorios enumerados en PATH. Si el comando se coloca fuera de estos directorios, no se encontrará. Si hay varios comandos con el mismo nombre, se llamará al que se encuentre en el directorio visto primero. PATH, al igual que otras variables, se puede cambiar fácilmente agregando, reorganizando o eliminando directorios. IFS= (Separador de campos interno) enumera caracteres que sirven para separar palabras (campos). Estos son "espacio", "tabulación" y "avance de línea", por lo que aquí no se ve nada a la izquierda de la tarea y dos líneas están ocupadas. LOGNAME=root - nombre de inicio de sesión (“nombre de usuario”). MAIL=/var/spool/mail/root: el nombre del archivo en el que se recibe el correo (correo electrónico). PWD=/root - nombre del directorio actual PS1=$(PWD): " " - tipo de directorio. En este caso, el indicador mostrará el nombre del directorio actual seguido de dos puntos y un espacio. Es decir, habrá "/root:". PS2=>: este mensaje (aquí ">") se utiliza como una invitación para continuar ingresando (en la siguiente línea) un comando sin terminar. Por ejemplo, escriba el corchete de apertura "(" y después de presionar V siguiente línea Verá este indicador. Si no sabe qué hacer a continuación, escriba el corchete de cierre ")" y desaparecerá. SHELL=/bin/sh: esta variable especifica el shell que está utilizando el usuario. En este caso, se utiliza el shell estándar ("sh"). El entorno inicial se instala automáticamente al iniciar sesión utilizando archivos como "/etc/rc" y "/etc/.profile". Una forma de cambiar simplemente el entorno (por ejemplo, ruta de búsqueda de comandos, tipo de programa, tipo de shell, color de pantalla, etc.) es colocar esta información en su directorio de inicio en un archivo ".profile" especializado ($(HOME)/ . perfil), asignando valores requeridos variables de entorno. Es decir, llama este archivo al editor y escribe lo que quieras). Luego, cada vez que inicie sesión, este archivo se ejecutará automáticamente e instalará un nuevo entorno. Este archivo DEBE colocarse en su directorio INICIO (directorio de inicio de sesión). Debe tenerse en cuenta que los nombres de archivos que comienzan con un punto generalmente tienen un estado especial. Por lo tanto, no se muestran en la pantalla con un simple comando "ls"; debe llamar a este comando con el indicador "-a". Por cierto, no son destruidos indiscriminadamente por el comando “rm *”. El propio intérprete de shell asigna automáticamente valores a las siguientes variables (parámetros): ? el valor devuelto por el último comando; $ número de proceso; ! número de proceso en segundo plano;

  1. el número de parámetros posicionales pasados ​​al shell;
  • lista de parámetros como una línea;

@ lista de parámetros, como un conjunto de palabras; - banderas pasadas al caparazón. Al acceder a estas variables (es decir, al usarlas en un archivo de comando, programa shell), debe poner "$" delante. Un papel importante en la creación de archivos únicos lo desempeña la variable especial "$$", cuyo valor corresponde al número del proceso que realiza este cálculo. Cada nuevo cálculo realizado por una computadora inicia uno o más procesos que reciben números automáticamente en orden. Por lo tanto, al utilizar el número de proceso como nombre de archivo, puede estar seguro de que cada nuevo archivo tendrá un nuevo nombre (no se escribirá en lugar del existente). La ventaja es también la principal desventaja de este método de nombrar archivos. No se sabe qué nombres se asignarán a los archivos. Y, si en el marco de este proceso puede encontrar un archivo "sin mirar", es decir, accediendo a él usando $$, entonces dichos archivos se pueden perder fácilmente. Esto crea problemas adicionales al depurar programas. Llamar al intérprete Después de registrar al usuario en el sistema (usando el comando de inicio de sesión), se llama al intérprete del lenguaje SHELL. Si el directorio de registro del usuario contiene un archivo .profile, antes de recibir al menos un comando desde la terminal, el intérprete ejecuta este archivo (se supone que el archivo .profile contiene comandos). Al llamar, se pueden especificar las siguientes claves: -c cadena Los comandos se leen de la cadena dada. -s Los comandos se leen desde la entrada estándar. Los mensajes del intérprete se escriben en un archivo de diagnóstico estándar. -i Modo de funcionamiento interactivo. Si el primer carácter del parámetro "0" es un signo, entonces los comandos se leen desde el archivo .profile.

ESTRUCTURAS DEL PROGRAMA===

Como en cualquier lenguaje de programación, el texto del shell puede contener comentarios. Para ello se utiliza el símbolo "#". Todo lo que está en la línea (en el archivo de comando) a la izquierda de este carácter es percibido por el intérprete como un comentario. Por ejemplo,

# Este es un comentario.

Como cualquier lenguaje de programación procedimental, el lenguaje shell tiene operadores. Varios operadores le permiten controlar la secuencia de ejecución del comando. En tales operadores, a menudo es necesario verificar la condición, que determina la dirección en la que continúan los cálculos.

Comando prueba ("")

El comando de prueba verifica que se cumpla una determinada condición. Las declaraciones de bucle y selección del lenguaje Shell se generan utilizando este comando (integrado). Dos posibles formatos de comando:

Condición de prueba

[ condición ]

Usaremos la segunda opción, es decir En lugar de escribir la palabra "prueba" antes de la condición, incluiremos la condición entre paréntesis, lo cual es más común para los programadores. De hecho, el shell reconocerá este comando por el corchete de apertura "[" como una palabra, correspondiente al comando"prueba". Debe haber espacios entre los corchetes y la condición que contienen. También debe haber espacios entre los valores y el símbolo de comparación u operación. El shell utiliza condiciones de varios "tipos". CONDICIONES DE VERIFICACIÓN DE ARCHIVOS: -f archivo archivo "archivo" es un archivo normal; -d archivo archivo "archivo" - directorio; -с archivo archivo "archivo" es un archivo especial; -r archivo tiene permiso para leer el archivo "archivo"; -w el archivo tiene permiso para escribir en el archivo "archivo"; -s archivo el archivo "archivo" no está vacío.

CONDICIONES PARA PROBAR CADENAS: str1 = str2 las cadenas "str1" y "str2" coinciden; str1 != str2 las cadenas "str1" y "str2" no son iguales; -n cadena str1 "str1" existe (no vacía); -z str1 la cadena "str1" no existe (vacía). Ejemplos.

X="quién es quién"; exportar x; [ "quién es quién" = "$x" ]; eco $?

0x=abc; exportar x ; [abc = "$x"]; eco $?

0x=abc; exportar x ; [-n "$x"]; eco $?

0x=""; exportar x ; [-n "$x"]; eco $?

1

Además, hay dos valores de condición estándar que se pueden usar en lugar de condición (no se necesitan paréntesis para esto). CONDICIONES PARA COMPARAR ENTEROS: x -eq y "x" es igual a "y", x -ne y "x" no es igual a "y", x -gt y "x" es mayor que "y", x - ge y "x" es mayor o igual a "y", x -lt y "x" menor que "y", x -le y "x" menor o igual a "y". CONDICIONES COMPLEJAS: Implementado usando operaciones lógicas estándar: ! (no) invierte el valor del código de salida. -o (o) coincide con el "O" lógico. -a (y) coincide con el "Y" lógico.

Declaración condicional "si"

En general, la declaración "si" tiene la estructura

Si la condición entonces lista

Aquí "elif" se puede utilizar una versión abreviada de "else if" junto con la versión completa, es decir. Se permite el anidamiento de un número arbitrario de declaraciones "si" (así como otras declaraciones). Por supuesto, la “lista” en cada caso debe ser significativa y aceptable en el contexto dado. La estructura más truncada de este operador.

Si la condición entonces lista fi

si se cumple la condición (generalmente aquí es donde se recibe el código de finalización "0"), entonces se ejecuta la "lista", de lo contrario se omite. Ejemplos: escriba "if-1".

Si [ $1 -gt $2 ]

luego pwd else echo $0: ¡Hola!

Luego, llamar a if-1 12 11 producirá /home/sae/STUDY/SHELL y if-1 12 13 producirá if-1: ¡Hola!

Aquí "case", "in" y "esac" son palabras funcionales. La "cadena" (puede ser un solo carácter) se compara con el "patrón". A continuación se ejecuta la "lista de comandos" de la línea seleccionada. El ";;" al final de las líneas de selección parece inusual, pero escriba ";" sería un error. Se pueden ejecutar múltiples comandos para cada alternativa. Si estos comandos están escritos en una línea, entonces el símbolo ";" se utilizará como separador de comandos. Normalmente, la última línea de selección tiene el patrón "*", que en una estructura de "caso" significa "cualquier valor". Esta línea se selecciona si el valor de la variable (aquí $z) no coincide con ninguno de los patrones escritos previamente delimitados por el corchete ")". Los valores se ven en el orden en que fueron escritos.

Operador de bucle enumerado ("for")

El operador de bucle "for" tiene la estructura:

por nombre

lista de comandos realizados donde "para" - palabra funcional Al definir el tipo de bucle, "hacer" y "hecho" son palabras de servicio que resaltan el cuerpo del bucle. Deje que el comando "lsort" esté representado por un archivo por lotes

Para i en file_1 file_2 file_3 haga proc_sort $he terminado

En este ejemplo, el nombre "i" actúa como parámetro de bucle. Este nombre se puede considerar como una variable de shell a la que se asignan secuencialmente los valores enumerados (i=archivo_1, i=archivo_2, i=archivo_3) y el comando "proc_sort" se ejecuta en un bucle. A menudo se utiliza la forma "para i en *", que significa "para todos los archivos en el directorio actual". Deje que "proc_sort" a su vez esté representado por un archivo por lotes

Gato $1 | ordenar | camiseta /dev/lp > $(1)_sorted

aquellos. ordenados secuencialmente archivos especificados, los resultados de la clasificación se imprimen ("/dev/lp") y se envían a los archivos file_1_sorted file_2_sorted y file_3_sorted

Declaración de bucle con condición verdadera ("mientras")

La estructura "mientras", que también realiza cálculos, es preferible cuando se desconoce de antemano. lista exacta Los valores de los parámetros o esta lista deben obtenerse como resultado de cálculos en un bucle. La instrucción del bucle " while " tiene la estructura:

mientras condición

lista de comandos realizados donde "mientras" es una palabra auxiliar que determina el tipo de bucle con una condición verdadera. La lista de comandos en el cuerpo del bucle (entre "do" y "done") se repite hasta que la condición sigue siendo verdadera (es decir, el código de finalización del último comando en el cuerpo del bucle es "0") o el bucle no se interrumpe. desde el interior mediante comandos especiales ("interrumpir", "continuar" o "salir"). Cuando ingresa al ciclo por primera vez, la condición debe ser verdadera. El comando "break [n]" le permite salir de un bucle. Si falta "n", equivale a "interrupción 1". "n" indica el número de bucles anidados de los que salir, por ejemplo, "romper 3" - salir de tres bucles anidados. A diferencia del comando "interrumpir", el comando "continuar [n]" solo detiene la ejecución del ciclo actual y regresa al COMIENZO del ciclo. También puede ser con un parámetro. Por ejemplo, "continuar 2" significa salir al comienzo del segundo bucle anidado (contando desde la profundidad). El comando "exit [n]" le permite salir del procedimiento por completo con un código de retorno de "0" o "n" (si se especifica el parámetro "n"). Este comando se puede utilizar en más que solo bucles. Incluso en secuencia lineal comandos, puede ser útil durante la depuración detener el cálculo (actual) en un punto determinado.

Declaración de bucle con condición falsa ("hasta")

El operador de bucle "hasta" tiene la estructura:

hasta la condición

lista de comandos realizados donde "hasta" es una palabra auxiliar que determina el tipo de bucle con una condición falsa. La lista de comandos en el cuerpo del bucle (entre "hacer" y "hecho") se repite hasta que la condición sigue siendo falsa o el bucle es interrumpido desde el interior por comandos especiales ("romper", "continuar" o "salir"). ). La primera vez que ingresa al bucle, la condición no debería ser verdadera. La diferencia con el operador " while " es que se verifica que la condición del bucle no sea falsa (para un código de salida distinto de cero del último comando del cuerpo del bucle) y se verifica DESPUÉS de cada (¡incluida la primera!) ejecución de comandos en el cuerpo del bucle. Ejemplo.

Hasta que sea falso

lea x si [$x = 5] entonces haga eco lo suficiente; romper si no hacer eco un poco más fi

Aquí está el programa con bucle sin fin espera a que se ingresen palabras (repitiendo la frase "algo más" en la pantalla) hasta que se ingresa "5". Después de esto, se emite "suficiente" y el comando "interrumpir" deja de ejecutar el bucle.

Operador vacío

La declaración vacía tiene el formato

:

No hace nada. Devuelve el valor "0".

Funciones en shell

La función le permite preparar una lista de comandos de shell para su posterior ejecución. La descripción de la función es la siguiente:

Nombre() (lista de comandos)

después de lo cual la función se llama por su nombre. Cuando se ejecuta la función, no se crea ningún proceso nuevo. Se ejecuta en el entorno del proceso correspondiente. Los argumentos de la función se convierten en sus parámetros posicionales; el nombre de la función es su parámetro cero. Puede interrumpir la ejecución de una función utilizando el operador "return [n]", donde (opcional) "n" es el código de retorno.

Manejo de interrupciones ("trampa")

Puede ser necesario proteger la ejecución del programa contra interrupciones. La mayoría de las veces encontrará las siguientes interrupciones correspondientes a las señales: 0 salida del intérprete, 1 colgar (desconexión del abonado remoto), 2 interrupción del , 9 destrucción (no interceptado), 15 fin de ejecución. Para protegerse contra interrupciones, existe un comando "trampa", que tiene el formato:

Trampa de señales de "lista de comandos"

Si ocurren interrupciones en el sistema, cuyas señales se enumeran separadas por un espacio en las "señales", entonces se ejecutará la "lista de comandos", después de lo cual (si el comando "salir" no se ejecutó en la lista de comandos) el control Regrese al punto de interrupción y la ejecución del archivo de comando continuará. Por ejemplo, si necesita eliminar archivos en "/tmp" antes de interrumpir la ejecución de un archivo de comando, puede hacerlo con el comando "trap":

Trampa "rm /tmp/*; salida 1" 1 2 15

que precede a otros comandos en el archivo. Aquí, después de eliminar los archivos, se cerrará el archivo de comando.

bloque de alquiler

Procesador de lenguaje de comando- programa de propósito especial. Está diseñado para ingresar y procesar comandos del sistema operativo ingresados ​​por el usuario, así como para mostrar mensajes del sistema en la pantalla de la computadora. El procesador de comandos estándar para MS DOS es el programa COMMAND.COM.

Los principales elementos que componen el sistema operativo MS DOS son los siguientes componentes:

1) BIOS- Sistema básico de entrada y salida, sistema básico de entrada/salida: incluye programas para pruebas iniciales del funcionamiento de los componentes de la computadora; Estos programas verifican el funcionamiento de los dispositivos y la memoria de la PC cuando se enciende. Además, el BIOS incluye un programa de arranque del sistema operativo y controladores de dispositivos estándar.

2) gestor de arranque del sistema operativo- un programa corto ubicado en el primer sector de un disquete o disco MS DOS. El objetivo de este programa es leer en la memoria dos programas de MS DOS que constituyen el núcleo de este sistema operativo (archivos io.sys, msdos.sys).

3) Archivos IO.SYS Y MSDOS.SYS- forma el núcleo del sistema operativo. Estos archivos se cargan en la etapa inicial y en realidad representan el sistema operativo, asegurando el funcionamiento de todos los elementos del sistema operativo y la organización de E/S.

4) COMANDO.COM- procesador de mando. Introduce comandos desde el teclado y muestra mensajes de usuario en la pantalla.

· automáticamente, cuando se enciende la energía;

· cuando presiona el botón "Reset" en el panel frontal de la unidad del sistema;

· cuando presionas la combinación de teclas Ctrl-Alt-Supr (combinación dorada).

a) el programa de arranque se inicia desde el BIOS;

b) el programa de arranque intenta leer el gestor de arranque del sistema operativo desde el disquete A:, luego el disco C: y luego desde el CD-ROM. O en otro orden, de acuerdo con el orden especificado en CMOS;

c) el gestor de arranque lee el kernel del sistema IO.SYS, MS-DOS.SYS y transfiere el control;

d) después del arranque, el kernel del sistema primero lee el archivo CONFIG.SYS del directorio raíz. A medida que se ejecuta este archivo, se cargan los controladores de la computadora y se configuran los parámetros del sistema operativo. Si falta CONFIG.SYS, entonces se configuran los parámetros predeterminados del sistema operativo;

e) el núcleo del sistema operativo inicia el procesador de comandos COMMAND.COM y se le transfiere el control;

f) el programa COMMAD.COM lee y ejecuta el archivo AUTOEXEC.BAT desde el directorio raíz. Si falta este archivo, entonces el programa solicita la fecha y hora actuales. El valor de estos parámetros se puede dejar por defecto pulsando la tecla ;

g) El sistema operativo emite un mensaje de invitación. Esto significa que el sistema está listo para su uso.

tenemos el mas grande base de información en RuNet, para que siempre puedas encontrar consultas similares

Este tema pertenece a la sección:

Sistemas operativos

Tareas de los sistemas operativos. Software, software, funciones del sistema operativo, módulos de software,Gestión de procesos. UPC. Algoritmos.

Formación de política de precios.

La realidad y el papel de la política de precios en la economía actual. Principios básicos de la formación de políticas de precios. Formación de precios en mercados de diversos tipos. Precios para diferentes tipos de políticas de precios. Fijación de precios en las distintas etapas del ciclo de vida de un producto.

Cirugía general. Preguntas

Sistemas económicos, sus principales tipos.

Teoría económica. Sistemas económicos. La propiedad como base de las relaciones de producción. Formas de propiedad

Sistema de derecho: concepto y estructura.

El sistema de derecho se entiende como una determinada estructura interna (estructura, organización), que se desarrolla objetivamente como reflejo de las relaciones sociales realmente existentes y en desarrollo. No es el resultado de la discrecionalidad arbitraria del legislador, sino una especie de extravío de la realidad.

Impugnaciones en los procedimientos de ejecución: fundamentos y procedimiento.

La recusación consiste en manifestar falta de confianza en el sujeto. procedimientos de ejecución, cuya objetividad e imparcialidad existen dudas, y la exigencia de su posterior eliminación.

Cuando enciendes tu computadora (o presionas Teclas de RESET) se borra el contenido de la RAM, se reescribe desde la ROM al OP y se inicia la BIOS. BIOS prueba el rendimiento de la memoria y los dispositivos de la computadora; Si hay errores críticos, se genera un pitido y/o un mensaje y se finaliza el proceso de inicio. Durante el proceso de prueba, se le brinda la oportunidad de ingresar a CMOS y realizar cambios en los parámetros de configuración de la computadora (si se realizan dichos cambios, debe iniciar el proceso de inicio nuevamente). En el primer sector del disco, donde se encuentra el sistema operativo, el BIOS lee el programa del gestor de arranque y le transfiere el control. El programa gestor de arranque lee y carga en RAM Archivos IO.SYS, MSDOS.SYS, COMMAND.COM y CONFIG.SYS. A continuación se cargan los controladores del dispositivo y se ejecutan los comandos de configuración especificados en el archivo CONFIG.SYS, y se ejecuta el archivo AUTOEXEC.BAT lanzando los programas allí marcados (por ejemplo, NC o Windows).

El archivo por lotes AUTOEXEC.BAT registra comandos que deben ejecutarse cada vez que se enciende la computadora, por ejemplo:

comandos para ejecutar determinados programas, listas de directorios en los que buscar programas a ejecutar, etc.

Si no hay ningún archivo AUTOEXEC.BAT, aparece un mensaje en la pantalla para ingresar la fecha y hora actuales, después de lo cual aparece un mensaje en la pantalla (por ejemplo, C:\>) para ingresar comandos DOS.

Para comunicarse con una PC en un lenguaje de comandos, el sistema operativo proporciona al usuario la capacidad de ingresar comandos y parámetros requeridos estos comandos en un lugar especial en la ventana de la pantalla: en la línea de comando. La línea de comando siempre especifica la unidad lógica, la ruta al directorio actual ( carpeta actual) y una invitación a escribir un comando en forma de símbolo “>”.

Por ejemplo: C:\tema\libro\>[lugar para ingresar el comando y sus parámetros]

Catálogo actual– el directorio en el que se buscarán y colocarán los archivos especificados en los parámetros del comando ingresado.

En el ejemplo anterior, el directorio actual es book.

dir [unidad] [ruta] [claves]

Objetivo: mostrar información sobre directorios y archivos; sin especificar la ruta y los parámetros: ver el directorio actual con la visualización de los nombres de los subdirectorios, los nombres de los archivos, su tamaño en bytes, la fecha y hora de la última modificación del contenido del archivo.

Llaves:

/pag- modo de salida pantalla por pantalla; la siguiente pantalla, después de presionar una tecla.

/w- formato de visualización amplio, - sólo se muestra el nombre; hasta 5 nombres en una línea.

Ejemplo:

Dirigir a: ver el directorio raíz de la unidad lógica A

Dir a:/p/w salida página por página del directorio del disco A con salida en una línea de hasta 5 nombres de archivos



md [unidad:] [ruta]

Objetivo: Comando de creación de directorio.

Con este comando puede crear una estructura de directorios de varios niveles. EN MS-DOS longitud máxima de ruta desde el directorio raíz al directorio nivel inferior no debe tener más de 63 caracteres.

Ejemplo:

md util- creación de directorio útil en el directorio actual

md\util- creación de directorio útil en el directorio raíz

md\util\proba– crear un subdirectorio muestra en el catalogo útil.

Memoria [teclas]

Objetivo: Muestra la cantidad de usado y memoria libre y una lista de programas descargados.

Llaves:

/pag- - muestra información sobre los programas cargados en la memoria

/d - mostrar información sobre programas y controladores internos (así como otra información).

CLS

Propósito: borra la pantalla

CD [unidad:][ruta]

Objetivo: Cambia el directorio actual, es decir, cambia el directorio actual al especificado.

Ejemplo:

Cd..- subir 1 nivel

Cd\- vaya al directorio raíz.

Utilidad de CD- crear un directorio de utilidades en el directorio actual

Del [unidad:] [nombre completo del archivo]

Objetivo: Comando para eliminar archivo(s).

Llaves:

/pag- mostrar una solicitud para confirmar la eliminación.

Puede utilizar caracteres comodín “*”, “?” como fueron explicados anteriormente.

Ejemplos:

Del *.*- eliminar todos los archivos del directorio actual,

Del pro?ramm.txt- eliminar del directorio actual todos los archivos con extensión txt que tengan algún carácter en la cuarta posición de su nombre.

Del pr?r*.tx*- eliminar archivos del directorio actual que tengan cualquier carácter en la tercera posición y cualquier carácter después del cuarto carácter, y que tengan los primeros dos caracteres en la extensión tx.

Del c:\util\*.*- eliminar todos los archivos del directorio util.

La eliminación física de un archivo se produce de la siguiente manera. Se borra el primer carácter del nombre en el directorio y en FAT los grupos donde se encontraba el archivo se marcan como libres. Es decir, hasta que la primera grabación en un soporte físico pueda restaurarse por accidente. archivo eliminado un programa especial (en MS-DOS es PCTOOLS). EN eliminación de ventanas Los archivos se transfieren a través de la Papelera de reciclaje y el espacio FAT se marca como libre después de vaciar la Papelera de reciclaje. Pero mientras el archivo esté en la papelera, se puede restaurar.

copiar [unidad:] nombre_completo_1 [unidad:] nombre_completo_2

Objetivo: Copia uno o más archivos en la ubicación especificada.

Copiar [unidad:]<полное_имя_1>+[unidad de disco:]<полное_имя_2>[conducir:]<полное_имя_N>

Objetivo: Combina archivos del mismo tipo:

Si no se especifica<nombre_completo_N>, entonces el archivo fusionado tendrá nombre_1.

copiar estafa<полное имя>

Objetivo: Crea un archivo de texto desde la consola del teclado.

copiar/b<полное имя>prn

Objetivo: Imprime el archivo:

/b la copia continuará incluso si se encuentra un símbolo con un código 26 - Ctrl-Z

El archivo no se puede copiar a sí mismo. Es necesario determinar con precisión qué y dónde estamos copiando.

Ejemplos:

Copie el archivo sample.txt a:- copiar archivo prueba.txt desde el directorio actual al disco A.

Copiar d:\a*.txt c:\util– copiar archivos con el primer carácter del nombre "A", desde el disco D al disco do al directorio útil

Copiar primer.txt+proba.txt 2prim.txt– fusionar archivos primer.txt Y prueba.txt y guarde el archivo combinado con el nombre 2prim.txt en el directorio actual.

ren [unidad:] nombre de archivo1 nombre de archivo2

Objetivo: Cambia el nombre de un archivo o directorio

Comando rd [unidad:] [ruta]

Objetivo: Elimina un directorio vacío de una estructura de directorios de varios niveles.

escriba [unidad:] [ruta] nombre de archivo

Objetivo: Muestra el contenido archivo de texto.

Ejemplo:

escriba c:\util\primer.txt– ver archivo primer.txt en disco CON en el directorio útil

Ver

Objetivo: Muestra la versión del sistema operativo instalado en la computadora.

xcopy [unidad:] [ruta1] [unidad:] [ruta2][claves]

Objetivo: Copia archivos y directorios en niveles inferiores.

llaves :

/mi– copiar todos los subdirectorios, incluso si están vacíos

/s- copiar directorios sólo si no están vacíos

Ejemplo:

xcopiar a: b: /e- copiar desde el disco A todos los contenidos, incluidos directorios y subdirectorios, al disco EN incluso si estos directorios y subdirectorios están vacíos.

formatear unidad [claves]

Objetivo: Formatea el disco especificado en un formato adecuado para almacenar archivos. MS-DOS.

El formateo crea una nueva tabla FAT y un archivo de directorio raíz en el disco.

llaves :

/s- indica que el disco especificado debe formatearse como disco del sistema. En este caso, después de formatear, los archivos del sistema operativo MS-DOS se copian al disco.

Ejemplo:

formato a: /s- formatear la unidad A: con transferencia a ella archivos del sistema sistema operativoMS DOS.

Como ocurre con la mayoría de los sistemas interactivos, la interfaz de usuario tradicional de UNIX se basa en el uso de lenguajes de comando. Para decirlo de manera un tanto tautológica, podemos decir que el lenguaje de comandos es el lenguaje en el que el usuario interactúa con el sistema de forma interactiva. Este tipo de lenguaje se denomina lenguaje de comandos porque cada línea ingresada desde la terminal y enviada al sistema puede considerarse como un comando del usuario al sistema. Uno de los logros del SO UNIX es que los lenguajes de comando de este sistema operativo están bien definidos y contienen características que los acercan a los lenguajes de programación.

Si consideramos la categoría de lenguajes de comando desde el punto de vista de la dirección general de los lenguajes de interacción persona-computadora, entonces, naturalmente, pertenecen a la familia de los lenguajes interpretados. Describamos brevemente la diferencia entre compilado e interpretado. lenguajes de computadora. Se dice que un lenguaje está compilado si requiere que cualquier construcción de lenguaje completa sea tan cerrada que pueda procesarse de forma aislada sin necesidad de construcciones de lenguaje adicionales. De lo contrario, no se garantiza la comprensión de la construcción del lenguaje.

La principal ventaja de los lenguajes interpretados es que cuando se utilizan, el programa se escribe “incrementalmente” (en modo paso a paso), es decir. una persona toma una decisión sobre su próximo paso dependiendo de la reacción del sistema al paso anterior. En principio, la preferencia por lenguajes compilados o interpretados es una cuestión de gusto personal del individuo.

La peculiaridad de los lenguajes de comando es que en la mayoría de los casos no se utilizan para programar en el sentido habitual de la palabra, aunque cualquier programa puede escribirse en un lenguaje de comando desarrollado. El estilo correcto de utilizar un lenguaje de comandos es utilizarlo principalmente para la interacción directa con el sistema, utilizando la capacidad de componer archivos de comandos (scripts o scripts en la terminología del sistema operativo UNIX) para guardar procedimientos de rutina repetitivos.

Los programas diseñados para procesar construcciones del lenguaje de comandos se denominan intérpretes de comandos. A diferencia de los lenguajes de programación compilados (como C o Pascal), para cada uno de los cuales suele haber muchos compiladores diferentes, un lenguaje de comandos suele estar indisolublemente ligado a un intérprete correspondiente. Cuando hablemos a continuación de varios representantes de los lenguajes de comando del sistema operativo UNIX que pertenecen a la familia Shell, cada vez también nos referiremos al intérprete correspondiente con el mismo nombre.

1. Propósito trabajo de laboratorio. 4

2. Organización del sistema de archivos. 4

3. Conceptos básicos y notaciones. 4

Almacenamiento. 7

Catalogar. 7

Ruta (ruta de acceso a archivos) 8

3. Comandos básicos Windows. 9

3.1. Formato de comando general y aviso de Microsoft Windows. 9

3.2. Comandos de mantenimiento de directorio. 12

3.3. Comandos para trabajar con archivos. 12

3.4. Comandos de mantenimiento del variador. 13

3.5. Comandos de gestión del entorno. 15

4. Reasignación de E/S. Transportadores y filtros.. 16

5. Archivos de comando... 18

6. Trabajo de laboratorio nº 7. 23

Lenguaje de comandos de quirófano sistemas microsoft Ventanas. 23

6.2. Requisitos para el informe. 23

6.3. Preguntas de seguridad... 24

7. Trabajo de laboratorio nº 8. 25

Archivos por lotes en el sistema operativo Microsoft Windows. 25

7.1. Contenido de la obra.. 25

7.2. Requisitos para el informe. 25

7.3. Preguntas de seguridad... 26

Apéndice 1. Opciones de tareas para trabajos de laboratorio No. 7. 28

1. Finalidad del trabajo de laboratorio.

· estudiar el sistema de comando de línea de comando del sistema operativo Microsoft Windows;

· adquirir habilidades prácticas para crear directorios de varios niveles y realizar operaciones en archivos usando la línea de comando cadenas de microsoft ventanas;

· estudio de las características de la creación y uso práctico archivos por lotes en el sistema operativo Microsoft Windows.

2. Organización del sistema de archivos

3. Conceptos básicos y notaciones.

La unidad principal de almacenamiento de datos en medios de almacenamiento (magnético, láser, discos ópticos, tarjetas flash, etc.) son archivos. Archivo es una colección de datos con nombre que corresponde a un área de memoria en un medio de almacenamiento. Los archivos almacenan programas listos para su ejecución, textos fuente de programas, documentos de texto, datos numéricos, imagenes graficas etc.

Los nombres de archivos en la línea de comando del sistema operativo Microsoft Windows se presentan como:

<имя файла>::=<имя>[.<расширение>]

Las restricciones de nombre de archivo varían mucho entre los sistemas de archivos:

  • En FAT16 y FAT12, el tamaño del nombre del archivo está limitado a 8 caracteres (3 caracteres de extensión).
  • VFAT tiene un límite de 255 bytes.
  • En FAT32, el nombre del archivo HPFS está limitado a 255 caracteres
  • En NTFS el nombre está limitado a 255 caracteres Unicode
  • En ext2/ext3 el límite es 255 bytes.

Además de las limitaciones del sistema de archivos, las interfaces del sistema operativo limitan aún más el juego de caracteres permitido al trabajar con archivos.

ü Sólo para MS-DOS letras mayúsculas, números. No se permiten espacios, signos de interrogación, asteriscos, símbolos de mayor/menor que ni de barra vertical. Al llamar a funciones del sistema con nombres de archivos en minúsculas o mixtas, se convierten a mayúsculas.

ü Para Microsoft Windows, letras mayúsculas y letras minúsculas, números, algunos signos de puntuación, espacio. Personajes prohibidos >< | ? * / \ : ".

ü Para GNU/Linux (teniendo en cuenta la posibilidad de enmascaramiento) se permiten todos los caracteres excepto / y el byte cero.

Corchetes demostrar que el elemento<extensión> puede estar ausente, es decir es opcional y opcional. En este caso no se especifica el punto. Los corchetes triangulares indican que es necesario ingresar el parámetro (en este caso, el nombre del archivo), pero también es opcional.

Como caracteres utilizados en los nombres de archivos se permiten letras latinas y rusas (mayúsculas y minúsculas son iguales) y números, así como algunos caracteres especiales:

~ ` ! @ # $ % & () _ " ^ { }

Algunos nombres en la línea de comandos de Microsoft Windows están reservados para indicar dispositivos de entrada/salida especiales y no se pueden utilizar como nombres de archivos. Estos incluyen:

Consola CON (teclado y pantalla)

Falta salida NUL (pseudodispositivo, generalmente usado)

al depurar o cancelar la visualización de los resultados del trabajo)

impresora PRN

Interfaz asíncrona auxiliar

CLOCK$ controlador de reloj

Primera interfaz serie COM1

Segunda interfaz serie COM2

COM3 tercera interfaz serie

COM4 cuarta interfaz serie

Primera interfaz paralela LPT1

Segunda interfaz paralela LPT2

Tercera interfaz paralela LPT3

Ejemplos de nombres de archivos válidos: 123, 2008_10_23.xls, mike.13, lab_7.pas, base

Sistema operativo Microsoft Windows tiene algunas extensiones estándar instaladas:

EXE (del inglés Portable Executable; utilizado en Microsoft Windows y algunos otros sistemas)

COM (utilizado en MS-DOS y Microsoft Windows);

Ejecutable portátil (.exe; usado en Microsoft Windows y algunos otros sistemas)

BAT: para archivos de comando (ver punto 5).

En los casos en los que es necesario señalar varios archivos a la vez, se utiliza la llamada plantilla de nombre de archivo, que contiene metacaracteres especiales (máscaras) “*” y “?”. Estos son caracteres comodín especiales que cumplen la función de indicar una ubicación en un nombre de archivo.

Un signo de interrogación dentro de un patrón indica la presencia de un único carácter arbitrario en una posición determinada, y el signo "*" significa que cualquier carácter puede aparecer desde esta posición hasta el final del nombre o extensión. Por ejemplo:

*.exe: todos los archivos con extensión exe (bp.exe, test.exe, 9994567.exe, etc.);

a*.* - todos los archivos cuyo nombre comienza con la letra "a" y la extensión es cualquiera (algoritm.doc, a5.pas, act_1.doc);

file?.txt: todos los archivos con nombres de cinco caracteres que comienzan con el archivo de caracteres y que tienen una extensión txt (files.txt, file3.txt, file#.txt, pero no file.txt, file54.txt).


Almacenamiento

En Microsoft Windows para conduce generalmente se refiere a medios de almacenamiento destinados a registrar y almacenar datos y designados en letras latinas seguido de dos puntos:

A: , B: - para unidades de disquete; C: , D: , E: etc. - para discos duros, CD, tarjetas flash y discos virtuales. En cada momento de su funcionamiento, el sistema operativo considera que una de las unidades está actual (en funcionamiento). Después de encender la máquina y cargar Microsoft Windows, la unidad actual es la unidad desde la que se realizó el arranque (unidad del sistema). Puede cambiar la unidad actual ingresando el nombre de la nueva unidad en respuesta a la línea de comandos de Microsoft Windows (consulte la sección 3.1).

Catalogar(directorio, carpeta) es una colección de bytes con nombre en un medio de almacenamiento que contiene los nombres de subdirectorios y archivos. Microsoft Windows admite una estructura de directorios de varios niveles. Esto significa que dentro de cualquier directorio (además de los archivos) puede colocar uno o más directorios de nivel inferior (subdirectorios). Cada directorio tiene su propio directorio que contiene información sobre todos los archivos y subdirectorios que contiene.

Cada disco tiene un directorio principal llamado raíz. Se crea en el disco cuando se formatea. Para el sistema de archivos FAT32, el número máximo de elementos en el directorio raíz ahora se ha ampliado a 65535. El directorio raíz no tiene nombre y se indica mediante el nombre de la unidad con una barra invertida, por ejemplo: A:\, F:\

Un directorio que forma parte de otro directorio es subordinados. Un directorio que incluye otro directorio es relativo a él. de los padres catalogar.

Todos los directorios, excepto el directorio raíz, tienen nombres compilados según las mismas reglas que los nombres de archivos.

En cada momento, el sistema operativo selecciona uno del conjunto completo de directorios de la unidad actual, llamado actual directorio (de trabajo).

Ruta (ruta de acceso a archivos)

Con una compleja estructura de directorios de varios niveles, para buscar un archivo no basta con especificar sólo su nombre. Para identificar con precisión un archivo, también es necesario mostrar su ubicación en la estructura en forma de una cadena de nombres de directorios secuencialmente subordinados. Esta cadena se llama ruta. Los nombres de los directorios que componen la ruta están separados por el carácter \. Por ejemplo: \SYS\EXE; TP\USUARIO\PAS. Si la ruta comienza con un signo \, entonces comienza desde el directorio raíz de la unidad actual y se llama completo, si no, entonces desde el directorio actual se llama incompleto. Al describir una ruta, se permite utilizar la notación especial "..", que indica una transición al directorio principal.

Con la ayuda de una ruta el concepto " especificación de archivo":

<спецификация файла>::=[][<маpшpут>\]<имя файла>[.extensión]

Dónde h:- nombre de la unidad.

Especificación del archivo: una descripción completa del archivo, incluida la unidad y el directorio en el que se encuentra.

Ejemplos de especificaciones de archivos de grabación:

C:\Windows\árbol.com

D:\TP55\USUARIO\PAS\mg.pas

Los primeros tres ejemplos indican la ruta completa, los dos últimos, incompletas.

Al trabajar con sistema de archivos Microsoft Windows, al referirse a cualquier archivo, debe especificar la ruta para buscarlo (completa o incompleta), con excepción de los archivos en el directorio actual, así como los archivos ubicados en los directorios especificados en equipos especiales Línea de comando de Microsoft Windows: CAMINO Y AÑADIR(ver cláusula 3.5.).

3. Comandos básicos de Microsoft Windows

3.1. Formato de comando general y aviso de Microsoft Windows

Una vez que el sistema operativo Microsoft Windows se ha cargado correctamente, aparece la línea de comandos de Microsoft Windows, que normalmente tiene este aspecto:

C:\Documentos y configuraciones\admin>

La presencia de un mensaje significa que Microsoft Windows está listo para ejecutar comandos ingresados ​​por el usuario desde el teclado. El formulario de invitación se puede cambiar para los usuarios usando el comando PROMPT (ver sección 3.5). El mensaje estándar incluye el nombre del directorio actual y el signo ">", seguido de un cursor parpadeante que indica la posición de entrada de datos.

Arroz. 1. Ventana de sesión de línea de comandos de Microsoft Windows, abierta a través del menú Inicio -> Programas -> Accesorios -> Símbolo del sistema

Arroz. 2. Ventana de sesión de línea de comandos de Microsoft Windows abierta mediante Inicio -> Ejecutar -> cmd

En respuesta al mensaje, el usuario puede ejecutar cualquier comando de Microsoft Windows o iniciar un programa de aplicación presentado en forma de archivo con extensión COM, EXE o BAT. La información ingresada en respuesta al mensaje de Microsoft Windows se llama línea de comando. Sólo se puede ingresar un comando en una línea, excepto casos especiales, descrito en el apartado 4.

Hay dos tipos de comandos de Microsoft Windows: internos (integrados) y externos. Incorporado los comandos están dentro del shell de comandos y no tienen separado archivos ejecutables. Externo Los comandos de Microsoft Windows se presentan como archivos en el disco con la extensión EXE, COM o BAT. Normalmente, los comandos externos de Microsoft Windows se agrupan en uno de los directorios disco del sistema(más a menudo, pero no necesariamente, en el directorio C:\Microsoft Windows\System32). Método de ejecución equipos externos Microsoft Windows no es diferente de la forma en que se inician los programas de aplicación.

Los comandos se ingresan desde el teclado y tienen el siguiente formato:

[<маpшpут>\]<имя команды>[opciones]

La ruta se especifica solo para comandos externos de Microsoft Windows y al llamar a programas de aplicación, si los archivos correspondientes no están incluidos en el directorio actual y si las rutas correspondientes no se especificaron en el comando PATH (sección 3.5).

Algunos comandos requieren ingresar parámetros adicionales que indiquen los objetos en los que se realizan las acciones prescritas por el comando y los requisitos para ejecutar el comando. El primer parámetro está separado del nombre del comando por al menos un espacio, al igual que los parámetros están separados entre sí. Por ejemplo:

C:\Microsoft Windows\tree.com /f

COPIA A:\my.pas D:\TP\

prueba de ayuda A: /f /g /s /x

Al ejecutar comandos externos y programas de aplicación, es posible no especificar la extensión del nombre del archivo (EXE, COM o BAT).

A continuación (cláusulas 3.1 - 3.5) se encuentra breve descripción comandos principales MicrosoftWindows. Se utiliza la siguiente notación para describir los comandos: - almacenamiento; - ruta;<Ф>, <Ф1>, <Ф2>... - nombres de archivos o patrones;<СФ>, <СФ1>...- especificaciones del archivo. Los corchetes, como es habitual, indican componentes opcionales.


3.2. Comandos de mantenimiento de directorio

dirección- ver el directorio del directorio.

Formato de comando: DIR[<М>] [<Ф>]

Parámetros: /p - salida página por página a la pantalla;

/w: muestra la tabla de contenidos línea por línea.

CD- cambiar el directorio actual.

Formato de comando: CD [<М>]

MARYLAND.- creación de un catálogo.

Formato de comando: MD<М>

R.D.- destrucción del directorio.

Formato de comando: RD<М>

Sólo se puede destruir un directorio vacío y no actual.

CAMINO- establecer rutas alternativas para buscar archivos de programa.

Formato de comando: RUTA[;][[<М1>] [;<М2>]... ]

El comando le indica al sistema operativo en qué subdirectorios buscar el archivo que contiene el programa ejecutable si no está en el directorio actual (para archivos EXE, COM, BAT).

RUTA (sin parámetros): muestra una lista de directorios disponibles;

CAMINO ; - cancelar la lista instalada.

3.3. Comandos para trabajar con archivos.

COPIAR- copiar archivos.

Formato de comando: COPIAR<СФ1> [<М>][<Ф2>]

Parámetros:

<СФ1>- especificación del archivo o dispositivo copiado;

<М>, <Ф2>- especificación (directorio, dispositivo) de la copia del archivo;

/V: habilita la verificación automática de la precisión de la copia.


Características del uso de este comando:

· es posible copiar un grupo de archivos cuando se utilizan plantillas:

(COPIAR A:\*.* C:\TRABAJO);

· si falta el segundo parámetro, la copia se realiza al directorio actual;

· es posible fusionar archivos (merge):

COPIARf1.txt + f2.txt f3.txt

· crear e ingresar un archivo de texto desde el teclado: COPY CON myfile.txt

(la entrada se completa presionando Ctrl+Z);

· enviar un archivo a un dispositivo específico:

COPIAR miarchivo.txt PRN

TIPO- enviar el archivo a la pantalla.

Formato de comando: TIPO<СФ>

ren- cambiar el nombre de archivos.

Formato de comando: REN<СФ1> <Ф2>

Es posible cambiar el nombre de un grupo de archivos utilizando metacaracteres:

RENB:\*.txt *.doc

DEL- destrucción de archivos.

Formato de comando: SUPR<СФ>

Parámetro: /p: emite una solicitud para confirmar la destrucción.

3.4. Comandos de mantenimiento del variador

FORMATO- formateo (particionamiento) del disco (comando externo).

Formato de comando: [M]FORMATO H:

Parámetros: /s – copiar sistemas del sistema al disco formateado archivos de microsoft ventanas;

/f:n - definición del tipo de disco a formatear, donde n=

COPIA DE DISCO- copia física de disquetes.

Formato de comando: DISKCOPY

Es posible ejecutar un comando en una unidad cambiando los disquetes. No funciona si se seleccionan unidades de diferentes tipos como unidades H1: y H2:.

ÁRBOL- mostrar un árbol de directorios (comando externo).

Formato de comando: [M]ÁRBOL [Í:]

Parámetro: /f: agrega nombres de archivos a la lista.

CHKDSK- comprobar la exactitud de la estructura de datos en disquetes (comando externo).

Formato de comando: CHKDSK[Í:][M][Ф]

Parámetro: /f: establece el modo para corregir los errores encontrados.

El comando CHKDSK detecta clústeres huérfanos y archivos de subdirectorios dañados. Si se especifica el modo /F, estos clústeres o archivos se escriben en archivos especiales(filennnn.chk), donde se puede ver su contenido y corregir los archivos dañados con su ayuda.

ETIQUETA- configurar la etiqueta del disco.

Formato de comando: ETIQUETA[<метка диска>]

Parámetro:<метка диска>- una cadena que no contenga más de 11 caracteres.

Si no se especifica el parámetro, se muestra la etiqueta del disco actual y se le solicita que ingrese un nuevo valor.

La etiqueta de volumen puede contener espacios y tabulaciones. No utilice los siguientes caracteres en la etiqueta del volumen:

* ? / \ | . , ; : + = () & ^ < > "

MS-DOS muestra la etiqueta del volumen en letras mayúsculas. Si la etiqueta se ingresa en minúsculas, el comando ETIQUETA las convierte a mayúsculas.

3.5. Comandos de gestión del entorno

INMEDIATO- instalación del formulario de invitación a la línea de comandos de Microsoft Windows.

Formato de comando: PROMPT<текст пpиглашения>

Parámetro:<текст пpиглашения>- cualquier secuencia de caracteres.

El texto puede incluir caracteres especiales que te permitan ver en la invitación:

$n - nombre de la unidad actual;

$p - nombre de la unidad y directorio actuales;

$t - hora actual;

$d - fecha actual;

$g es el símbolo ">".

El formato de solicitud estándar es el comando PROMPT $p$g.

FECHA- establecer la fecha actual.

Formato de comando: FECHA[[<месяц>].[<день>].[<год>]]

Si no se especifica ningún parámetro, se muestra la fecha actual y se le solicita que ingrese una nueva fecha.

TIEMPO- establecer la hora actual.

Formato de comando: HORA [[<час>][:[<мин>][:[<сек>][,[<мсек>]]]]]

Si no se especifican los parámetros, la pantalla muestra hora actual y se le solicitará que ingrese un nuevo valor de tiempo.

CLS- limpieza de la pantalla.

Formato de comando: CLS

VER- muestra la versión de la línea de comando de Microsoft Windows instalada en la PC.

Formato de comando: VER


4. Reasignación de E/S. transportadores y filtros

Microsoft Windows permite redirigir datos de entrada y salida de cualquier comando (programa de aplicación) que utiliza medios de entrada/salida estándar (teclado, pantalla) de forma predeterminada a otros dispositivos físicos (impresora) o a un archivo. Esto significa que el mismo programa, sin realizar ningún cambio, puede, en un caso, ingresar datos desde el teclado y enviarlos a la pantalla, en otro caso, ingresar datos de un archivo y enviarlos a la impresora. Para la redirección se utilizan los símbolos ">", ">>", ".<":

> - redirigir datos de salida:

DIR A:\labrab > labrab.txt

TIPO labrab.txt > PRN

>> - redirigir datos de salida con la adición a un archivo ya existente:

ÁRBOL C: > árbol_todos.txt

ÁRBOL D: >> árbol_all.all

< - пеpеадpесовать входные данные:

FECHA< filedate.txt

Además de la redirección de E/S, Microsoft Windows proporciona una función para utilizar la salida de un comando como entrada de teclado para otro comando. Para ello se crea el llamado tuberías de comando, que son comandos escritos secuencialmente separados por el signo "|":

<команда1> | <команда2>

En este proceso, la información enviada por el primer comando al dispositivo de salida estándar será leída por el segundo comando sin mostrarse en la pantalla.

Filtros son comandos (programas) especiales que convierten datos provenientes del flujo de entrada estándar (desde el teclado) y envían los resultados de la conversión al flujo de salida estándar (en la pantalla). La aplicación de filtros se basa en el uso de pipelines y redirección de E/S. Microsoft Windows tiene tres comandos externos que son filtros: MÁS, ENCONTRAR y ORDENAR.

MÁS- salida de datos página por página a la pantalla.

Formato de comando: [M]MÁS

Usando el filtro MÁS, los datos se muestran en la pantalla hasta llenarla. Cuando la pantalla esté llena, se detendrá la escritura y aparecerá el mensaje ''-- Más --'' en la línea inferior. La siguiente página aparecerá después de presionar cualquier tecla.

TIPO labrab.txt | MÁS: salida página por página del archivo de texto myfile.txt;

dirección< MORE - постраничный вывод справочника текущего каталога.

ENCONTRAR- buscar líneas de archivos que contengan una secuencia específica de caracteres.

Formato de comando: [M]BUSCAR "<текст>"

Parámetros:<текст>- la secuencia de caracteres deseada;

/c - cuenta sólo el número de líneas en las que se encuentra el texto buscado;

/n - líneas de salida en las que se encuentra el texto buscado y sus números de serie;

/v - líneas de salida en las que no se encuentra el texto buscado (búsqueda exclusiva);

ENCONTRAR "Sistema operativo" ms_windows.txt: muestra líneas del archivo ms_windows.txt que contienen las palabras "Sistema operativo" escritas entre comillas;

DIR | FIND /c "01/04/2011": muestra el número de líneas del directorio actual que contiene el texto "01/04/2011" (fecha de creación del archivo).

CLASIFICAR- clasificación (ordenamiento) de líneas de archivos por códigos de caracteres.

Formato de comando: [M]SORT

Parámetros: /r - ordenar en orden descendente del código de símbolo;

/+n - posición de clasificación - el número de serie del carácter en la línea por la cual se realiza la clasificación.

Si no se especifica ningún parámetro, la clasificación se realiza por el primer carácter en orden de código ascendente.

DIR | ORDENAR /+37: ordenar las líneas del directorio actual por el carácter 37 (corresponde a la posición de la primera letra del nombre del archivo);

CLASIFICAR< labrab.txt - сортировка строк файла labrab.txt по первому символу.

DIR | ENCONTRAR ".2011" | ORDENAR > dir_2011.txt: genera un archivo dir_2011.txt, que incluye líneas de directorio del directorio actual que contienen información sobre archivos y directorios creados en 2011, ordenados por nombre.

5. Archivos por lotes

A menudo, durante el trabajo es necesario ejecutar una determinada secuencia de comandos, que deben repetirse de vez en cuando. Para facilitar el trabajo de los usuarios, es posible combinar una secuencia de comandos en un lote (del lote en inglés) y colocarlo en un archivo por lotes especial. Archivos por lotes- estos son archivos de texto ordinarios con extensión BAT y que contienen una secuencia de líneas, cada una de las cuales es un comando de Microsoft Windows (o una llamada de programa) en la forma en que se escriben en el teclado para su ejecución una por una.

El archivo por lotes se crea como un archivo de texto normal utilizando cualquier editor de texto o el comando COPY CON.<имя файла>. El archivo por lotes se inicia de forma estándar a través de la línea de comando.

Además de los comandos habituales de Microsoft Windows, los archivos por lotes también utilizan comandos especiales, como ECO, REM, PAUSA, IR A, SI etc. Todos ellos son comandos integrados.

ECO- comando de control de mensajes.

Formato de comando: ECO

El comando se utiliza para implementar tres funciones:

1) ECHOON: habilita el modo de mostrar los nombres de los comandos ejecutables en la pantalla;

2) ECHOOFF: cancela la visualización de los nombres de los comandos ejecutables;

3) ECO<сообщение>- mostrar el texto del mensaje en la pantalla (se muestra independientemente del estado ECHOON/OFF).

Es posible enviar mensajes a una impresora o a un archivo cuando se utiliza la redirección de salida:

ECO ¡Hola! >PRN

Es posible suprimir la visualización del texto del comando (incluido el propio comando ECHO) agregando un símbolo antes del comando. @ :@ECHOOFF




Arriba