InglésFrancésEspañol

Ad


icono de página de OnWorks

mksh - En línea en la nube

Ejecute mksh en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando mksh que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


mksh, sh - Cáscara de MirBSD Korn

SINOPSIS


mksh [- + abCefhiklmnprUuvXx] [-T [!]tty | -] [- + o opción] [-c cadena | -s | presentar
[argumento ...]]
nombre incorporado [argumento ...]

DESCRIPCIÓN


mksh es un intérprete de comandos diseñado tanto para uso interactivo como para scripts de shell. Su
El lenguaje de comandos es un superconjunto del lenguaje de shell sh (C) y es ampliamente compatible con el
cáscara de Korn original. En ocasiones, esta página del manual puede brindar consejos sobre secuencias de comandos; mientras que
a veces tiene en cuenta las secuencias de comandos de shell portátiles o varios estándares
La información se presenta ante todo con mksh en mente y debe tomarse como tal.

estoy an Android usuario, so lo que es ¿mksh?
mksh es un intérprete de comandos / shell UNIX, similar a COMMAND.COM or CMD.EXE, Que tiene
se ha incluido con Android Open Source Project por un tiempo. Básicamente, es un programa
que se ejecuta en una terminal (ventana de consola), toma la entrada del usuario y ejecuta comandos o scripts,
lo que también pueden solicitar otros programas, incluso en segundo plano. Cualquier privilegio
las ventanas emergentes que puede estar encontrando no son, por lo tanto, mksh problemas, pero preguntas de algún otro
programa que lo utiliza.

Invocación
La mayoría de las funciones incorporadas se pueden llamar directamente, por ejemplo, si un enlace apunta desde su nombre al
cascarón; Sin embargo, no todos tienen sentido, han sido probados o funcionan en absoluto.

Las opciones son las siguientes:

-c cadena mksh ejecutará los comandos contenidos en cadena.

-i Shell interactivo. Un shell que lee los comandos de la entrada estándar es
"Interactivo" si se utiliza esta opción o si tanto la entrada estándar como el error estándar
están adjuntos a un tty(4). Un shell interactivo tiene habilitado el control de trabajos, ignora
las señales SIGINT, SIGQUIT y SIGTERM, e imprime indicaciones antes de leer la entrada
(consulte los parámetros de PS1 y PS2). También procesa el parámetro ENV o el
mkshrc archivo (ver más abajo). Para proyectiles no interactivos, el rastreador la opción está activada
por defecto (ver el set comando a continuación).

-l Shell de inicio de sesión. Si el nombre base con el que se llama al shell (es decir, argv [0]) comienza con
'-' o si se usa esta opción, se asume que el shell es un shell de inicio de sesión; ver
Inicio archivos abajo.

-p Concha privilegiada. Un shell tiene "privilegios" si el ID de usuario real o el ID de grupo lo tiene
no coincide con el ID de usuario efectivo o el ID de grupo (consulte getuido(2) y conseguir(2)).
Borrar la opción privilegiada hace que el shell establezca su ID de usuario efectivo
(ID de grupo) a su ID de usuario real (ID de grupo). Para más implicaciones, consulte Inicio
archivos. Si el shell tiene privilegios y este indicador no se establece explícitamente, el
La opción "privilegiada" se borra automáticamente después de procesar los archivos de inicio.

-r Concha restringida. Un shell está "restringido" si se utiliza esta opción. El seguimiento
las restricciones entran en vigor después de que el shell procesa cualquier perfil y ENV
archivos:

· El cd (y chdir) está deshabilitado.
· Los parámetros SHELL, ENV y PATH no se pueden cambiar.
· Los nombres de los comandos no se pueden especificar con rutas absolutas o relativas.
· El -p opción del comando incorporado comando no se puede utilizar.
· No se pueden utilizar redirecciones que crean archivos (es decir, '>', '> |', '>>', '<>').

-s El shell lee los comandos de la entrada estándar; todos los argumentos que no son de opción son
parámetros posicionales.

-T nombre Desovar mksh en tty(4) dispositivo proporcionado. Los caminos nombre , / dev / ttyCname y
/ dev / ttyname se intentan en orden. A no ser que nombre comienza con un signo de exclamación
('!'), esto se hace en una subcapa y regresa inmediatamente. Si nombre es un guión
('-'), se separa del terminal de control (daemonise) en su lugar.

Además de lo anterior, las opciones descritas en el set También se puede utilizar el comando integrado
en la línea de comando: ambos [- + abCefhkmnuvXx] Y [- + o opción] se puede utilizar para una sola letra
u opciones largas, respectivamente.

Si ni el -c ni la -s se especifica la opción, el primer argumento que no es de opción especifica
el nombre de un archivo del que el shell lee los comandos. Si no hay argumentos que no sean de opción, el
shell lee los comandos de la entrada estándar. El nombre del caparazón (es decir, el contenido de
$ 0) se determina de la siguiente manera: si el -c se utiliza la opción y hay un argumento que no es de opción,
se usa como nombre; Si los comandos se leen desde un archivo, el archivo se utiliza como
nombre; de lo contrario, se usa el nombre base con el que se llamó al shell (es decir, argv [0]).

El estado de salida del shell es 127 si el archivo de comando especificado en la línea de comando
no ser abierto, o distinto de cero si se produjo un error de sintaxis fatal durante la ejecución de un
texto. En ausencia de errores fatales, el estado de salida es el del último comando
ejecutado, o cero, si no se ejecuta ningún comando.

Inicio archivos
Para conocer la ubicación real de estos archivos, consulte ARCHIVOS. Un shell de inicio de sesión procesa el sistema
perfil primero. Luego, un shell privilegiado procesa el perfil suid. Un inicio de sesión sin privilegios
shell procesa el perfil de usuario a continuación. Un shell interactivo sin privilegios comprueba el valor
del parámetro ENV después de someterlo a parámetro, comando, aritmética y tilde ('~')
sustitución; si no está configurado o está vacío, se procesa el perfil de usuario mkshrc; de lo contrario, si un archivo
cuyo nombre es el resultado de sustitución existe, se procesa; la inexistencia es silenciosamente
ignorado. Un shell privilegiado pierde privilegios si ninguno de los dos -p opción dada en el
línea de comando ni se establece durante la ejecución de los archivos de inicio.

Comando sintaxis
El shell comienza a analizar su entrada eliminando cualquier combinación de barra invertida y nueva línea, luego
romperlo en palabras. Las palabras (que son secuencias de caracteres) están delimitadas por sin comillas
caracteres de espacio en blanco (espacio, tabulación y nueva línea) o metacaracteres ('<', '>', '|', ';', '(',
')', y '&'). Aparte de delimitar palabras, los espacios y tabulaciones se ignoran, mientras que las nuevas líneas
normalmente delimitan los comandos. Los metacaracteres se utilizan en la construcción de lo siguiente fichas:
'<', '<&', '<<', '<<<', '>', '> &', '>>', '&>', etc.se utilizan para especificar redirecciones (consulte
De entrada y salida redirección debajo); '|' se utiliza para crear tuberías; '| &' se utiliza para crear co-
procesos (ver Coprocesos debajo); ';' se utiliza para separar comandos; '&' se usa para crear
tuberías asincrónicas; '&&' y '||' se utilizan para especificar la ejecución condicional; ';;', '; &'
y '; |' se utilizan en case declaraciones; '((..))' se usa en expresiones aritméticas; y
por último, '(..)' se usa para crear subcapas.

Los espacios en blanco y los metacaracteres se pueden citar individualmente usando una barra invertida ('\'), o en
grupos que utilizan comillas dobles ('"') o simples (“ '”). Tenga en cuenta que los siguientes caracteres son
también tratados especialmente por el caparazón y deben ser citados si van a representarse a sí mismos:
'\', '"', '' ',' # ',' $ ','` ',' ~ ',' {','} ',' * ','? 'y' ['. primeros tres de estos
son los personajes citados anteriormente (ver Citando debajo); '#', si se usa en el
principio de una palabra, introduce un comentario - todo después del '#' hasta el más cercano
se ignora la nueva línea; '$' se usa para introducir parámetros, comandos y aritmética
sustituciones (ver Sustitución debajo); '`' introduce una sustitución de comandos de estilo antiguo
(consulta: Sustitución debajo); '~' comienza una expansión de directorio (ver tilde expansión debajo); '{'
y '}' delimitan csh(1) alternancias de estilo (ver Abrazadera expansión debajo); y finalmente, '*',
'?' y '[' se utilizan en la generación de nombres de archivos (consulte Archive nombre . abajo).

A medida que se analizan las palabras y los tokens, el shell crea comandos, de los cuales hay dos
tipos: comandos simples, normalmente programas que se ejecutan, y comandos compuestos, tal
as para y if declaraciones, construcciones de agrupación y definiciones de funciones.

Un comando simple consiste en una combinación de asignaciones de parámetros (ver parámetros
a continuación), redirecciones de entrada / salida (ver De entrada y salida redirecciones a continuación) y palabras de comando;
la única restricción es que las asignaciones de parámetros vienen antes de cualquier palabra de comando. los
Las palabras de comando, si las hay, definen el comando que se ejecutará y sus argumentos. los
El comando puede ser un comando integrado de shell, una función o un comando externo (es decir, un comando
archivo ejecutable que se encuentra usando el parámetro PATH; ver Comando ejecución abajo).
Tenga en cuenta que todas las construcciones de comandos tienen un estado de salida: para comandos externos, esto está relacionado
al estado devuelto por esperar(2) (si no se pudo encontrar el comando, el estado de salida es
127; si no se pudo ejecutar, el estado de salida es 126); el estado de salida de otro comando
construcciones (comandos integrados, funciones, comandos compuestos, canalizaciones, listas, etc.) son todos
bien definidos y se describen donde se describe la construcción. El estado de salida de un
comando que consta solo de asignaciones de parámetros es el de la última sustitución de comando
realizado durante la parametrización o 0 si no hubo sustituciones de mando.

Los comandos se pueden encadenar usando el '|' token para formar tuberías, en las que el
salida estándar de cada comando pero el último es canalizado (ver tubo(2)) a la entrada estándar de
el siguiente comando. El estado de salida de una tubería es el de su último comando, a menos que
las tubería La opción está configurada (ver allí). Todos los comandos de una canalización se ejecutan por separado
subcapas; esto está permitido por POSIX pero difiere de ambas variantes de AT&T UNIX ksh, Donde
todos menos el último comando se ejecutaron en subcapas; ver el leer descripción incorporada para
implicaciones y soluciones. Una tubería puede tener el prefijo '!' palabra reservada que
hace que el estado de salida de la tubería se complemente lógicamente: si el estado original
fue 0, el estado complementado será 1; si el estado original no era 0, el complementado
el estado será 0.

Listas de los comandos se pueden crear separando las canalizaciones por cualquiera de los siguientes tokens:
'&&', '||', '&', '| &' y ';'. Los dos primeros son para ejecución condicional: "cmd1 && cmd2"
ejecuta cmd2 solo si el estado de salida de cmd1 es cero; '||' es lo opuesto - cmd2 is
ejecutado solo si el estado de salida de cmd1 no es cero. '&&' y '||' tener igual precedencia
que es más alta que la de '&', '| &' y ';', que también tienen la misma precedencia. Nota
que el '&&' y '||' los operadores son "asociativos por la izquierda". Por ejemplo, ambos
los comandos solo imprimirán "barra":

$ falso && echo foo || barra de eco
$ verdadero || echo foo && barra de eco

El token '&' hace que el comando anterior se ejecute de forma asincrónica; es decir, el caparazón
inicia el comando pero no espera a que se complete (el shell realiza un seguimiento de la
estado de los comandos asincrónicos; ver Trabajos control debajo). Cuando un comando asincrónico es
iniciado cuando el control del trabajo está deshabilitado (es decir, en la mayoría de los scripts), el comando se inicia con
señales SIGINT y SIGQUIT ignoradas y con entrada redireccionada desde / dev / null (sin embargo,
las redirecciones especificadas en el comando asincrónico tienen prioridad). El operador '| &'
inicia un coproceso que es un tipo especial de proceso asincrónico (ver Coprocesos
debajo). Tenga en cuenta que un comando debe seguir a '&&' y '||' operadores, aunque no es necesario
siga a '&', '| &' o ';'. El estado de salida de una lista es el del último comando ejecutado,
con la excepción de las listas asincrónicas, para las que el estado de salida es 0.

Los comandos compuestos se crean utilizando las siguientes palabras reservadas. Estas palabras son solo
reconocidos si no están entre comillas y si se utilizan como la primera palabra de un comando (es decir,
no pueden ir precedidos de asignaciones de parámetros o redirecciones):

caso más función entonces! (
hacer esac si el tiempo [[((
listo hasta {
elif para seleccionar mientras}

En las siguientes descripciones de comandos compuestos, las listas de comandos (indicadas como lista) que son
seguidas de palabras reservadas deben terminar con un punto y coma, una nueva línea o un (sintácticamente
correcta) palabra reservada. Por ejemplo, todos los siguientes son válidos:

$ {echo foo; barra de eco; }
$ {echo foo; barra de eco }
$ {{echo foo; barra de eco; }}

Esto no es válido:

$ {echo foo; barra de eco}

(lista)
Implementación lista en una subcapa. No hay una forma implícita de pasar cambios de entorno desde
un subshell de nuevo a su padre.

{ lista; }
Construcción compuesta; lista se ejecuta, pero no en una subcapa. Tenga en cuenta que '{' y '}'
son palabras reservadas, no metacaracteres.

case por el temor en [[(] patrón [| patrón]...) lista terminador] ... esac
El case declaración intenta coincidir por el temor contra un especificado patrón; El lista
asociado con el primer patrón coincidente con éxito se ejecuta. Patrones utilizados en
case declaraciones son las mismas que se utilizan para los patrones de nombre de archivo, excepto que el
restricciones con respecto a '.' y '/' se eliminan. Tenga en cuenta que cualquier espacio sin comillas antes
y después de que se quita un patrón; se debe citar cualquier espacio dentro de un patrón. Ambos
palabra y los patrones están sujetos a la sustitución de parámetros, comandos y aritmética,
así como sustitución de tilde.

Por razones históricas, se pueden usar llaves de apertura y cierre en lugar de in y esac p.ej
case $ foo { *) echo de caramelos ;; }.

La lista terminadors son:

';;' Terminar después de la lista.

'; &' Pasar a la siguiente lista.

'; |' Evalúe las tuplas restantes de la lista de patrones.

El estado de salida de un case declaración es la del ejecutado lista; si no lista is
ejecutado, el estado de salida es cero.

para nombre [en por el temor ...]; hacer lista; hecho
Para cada uno por el temor en la lista de palabras especificada, el parámetro nombre se establece en la palabra y
lista es ejecutado. Si in no se utiliza para especificar una lista de palabras, los parámetros posicionales
($ 1, $ 2, etc.) se utilizan en su lugar. Por razones históricas, las llaves abiertas y cerradas pueden ser
usado en lugar de do y hecho p.ej para i; { echo $ i; }. El estado de salida de un para
declaración es el último estado de salida de lista; Si lista nunca se ejecuta, el estado de salida
Es cero.

if lista; entonces lista; [elif lista; entonces lista;] ... [demás lista;] fi
Si el estado de salida del primer lista es cero, el segundo lista es ejecutado; de lo contrario,
las lista después de la elif, en su caso, se ejecuta con consecuencias similares. Me caigo
las listas que siguen al if y elifs fallar (es decir, salir con un estado distinto de cero), el lista
después de la más es ejecutado. El estado de salida de un if declaración es la de no
condicional lista que se ejecuta; si no es no condicional lista se ejecuta, la salida
el estado es cero.

selecciona nombre [en por el temor ...]; hacer lista; hecho
El selecciona declaración proporciona un método automático de presentar al usuario un menú
y seleccionando de él. Una lista enumerada de los especificados por el temor (s) está impreso en
error estándar, seguido de un mensaje (PS3: normalmente '#?'). Un número correspondiente a
una de las palabras enumeradas se lee desde la entrada estándar, nombre se establece en el
palabra seleccionada (o no establecida si la selección no es válida), RESPUESTA se establece en lo que se leyó
(se elimina el espacio inicial / final), y lista es ejecutado. Si una línea en blanco (es decir
cero o más octetos IFS), el menú se vuelve a imprimir sin ejecutar lista.

Cuándo lista completa, la lista enumerada se imprime si REPLY es NULL, el indicador es
impreso, etc. Este proceso continúa hasta que se lee un final de archivo, una interrupción
se recibe, o un romper La declaración se ejecuta dentro del bucle. Si "en palabra ..." es
omitido, se utilizan los parámetros posicionales (es decir, $ 1, $ 2, etc.). Por historico
razones, se pueden usar llaves abiertas y cerradas en lugar de do y hecho p.ej selecciona i; {
echo $ i; }. El estado de salida de un selecciona declaración es cero si un romper declaración es
utilizado para salir del bucle, distinto de cero en caso contrario.

hasta lista; hacer lista; hecho
Esto funciona como mientras, excepto que el cuerpo se ejecuta solo mientras el estado de salida de
la primera lista no es cero.

mientras lista; hacer lista; hecho
A mientras es un bucle previamente verificado. Su cuerpo se ejecuta con tanta frecuencia como el estado de salida de
la primera lista es cero. El estado de salida de un mientras declaración es el último estado de salida
de las lista en el cuerpo del bucle; si el cuerpo no se ejecuta, el estado de salida es
cero.

función nombre { lista; }
Define la función nombre (consulta: Clave debajo). Tenga en cuenta que las redirecciones especificadas
después de que se realiza una definición de función siempre que se ejecuta la función, no cuando
se ejecuta la definición de la función.

nombre () comando
Casi lo mismo que función (consulta: Clave debajo). Espacio en blanco (espacio o tabulación) después
nombre se ignorará la mayor parte del tiempo.

función nombre () { lista; }
Lo mismo que nombre () (golpearismo). los función se ignora la palabra clave.

equipo [-p] [industrial]
El Comando ejecución sección describe el equipo palabra reservada.

(( expresión ))
La expresión aritmética expresión es evaluado; equivalente a "dejar expresión" (ver
Aritmética expresiones y del dejar comando, a continuación) en una construcción compuesta.

[[ expresión ]]
Similar a la test y [ ... ] comandos (descritos más adelante), con los siguientes
excepciones:

· La división de campos y la generación de nombres de archivos no se realizan en los argumentos.

· El -a (Y y -o Los operadores (OR) se reemplazan por '&&' y '||', respectivamente.

· Operadores (por ejemplo, '-f',' = ','! ') deben estar sin comillas.

· Las sustituciones de parámetros, comandos y aritmética se realizan como expresiones
La evaluación de expresión evaluada y perezosa se utiliza para '&&' y '||' operadores.
Esto significa que en la siguiente declaración, PS se evalúa si y solo si
el archivo foo existe y es legible:

$ [[-r foo && $ (

· El segundo operando de las expresiones '! =' Y '=' son un subconjunto de patrones (p. Ej.
la comparación [[ Foobar = f * r ]] tiene éxito). Esto incluso funciona indirectamente:

$ bar = foobar; baz = 'f * r'
$ [[$ bar = $ baz]]; echo $?
$ [[$ bar = "$ baz"]]; echo $?

Quizás sorprendentemente, la primera comparación tiene éxito, mientras que la segunda no.
Actualmente, esto no se aplica a todos los metacaracteres extglob.

Citando
Las comillas se utilizan para evitar que el shell trate los caracteres o las palabras de forma especial. Existen
tres métodos de cotización. Primero, '\' cita el siguiente carácter, a menos que esté en el
final de una línea, en cuyo caso se eliminan tanto la '\' como la nueva línea. En segundo lugar, un solo
quote (“'”) cita todo hasta la siguiente comilla simple (esto puede abarcar líneas). Tercero, un
comillas dobles ('"') entre comillas todos los caracteres, excepto '$', '`' y '\', hasta el siguiente sin escape
comillas dobles. '$' y '`' dentro de las comillas dobles tienen su significado habitual (es decir, parámetro,
aritmética o sustitución de comandos) excepto que no se lleva a cabo ninguna división de campo en los resultados
de sustituciones entre comillas dobles, y la forma antigua de sustitución de comando ha
Se ha habilitado el uso de comillas invertidas para comillas dobles. Si un '\' dentro de una cadena entre comillas dobles es
seguido de '\', '$', '`' o '"', se reemplaza por el segundo carácter; si es seguido
por una nueva línea, tanto el '\' como la nueva línea se eliminan; de lo contrario, tanto el '\' como el
los siguientes caracteres no se modifican.

Si una cadena de comillas simples está precedida por un '$' sin comillas, expansión de barra invertida de estilo C (consulte
a continuación) se aplica (incluso los caracteres de comillas simples en el interior se pueden escapar y no terminan
la cuerda entonces); el resultado expandido se trata como cualquier otra cadena entre comillas simples. Si un
La cadena entre comillas dobles está precedida por un '$' sin comillas, el '$' simplemente se ignora.

Barra invertida expansión
En lugares donde se expanden las barras diagonales inversas, ciertos C y AT&T UNIX ksh o GNU golpear papa
las fugas se traducen. Estos incluyen '\ a', '\ b', '\ f', '\ n', '\ r', '\ t', '\ U ########',
'\ u ####' y '\ v'. Para '\ U ########' y '\ u ####', "#" significa un dígito hexadecimal, de este
puede que no haya ninguno hasta cuatro u ocho; estos escapes traducen un punto de código Unicode a UTF-8.
Además, '\ E' y '\ e' se expanden al carácter de escape.

En Imprimir modo incorporado, '\ "', '\' 'y' \? ' están explícitamente excluidas; secuencias octales
debe tener ninguno hasta tres dígitos octales “#” con el prefijo cero ('\ 0 ###');
las secuencias hexadecimales '\ x ##' están limitadas a ninguna hasta dos dígitos hexadecimales “#”; ambos
las secuencias octales y hexadecimales se convierten en octetos sin procesar; '\ #', donde # no es ninguno de los anteriores,
se traduce en \ # (se conservan las barras invertidas).

La expansión de barra invertida en el modo de estilo C difiere ligeramente: las secuencias octales '\ ###' deben tener
ningún dígito cero anteponiendo el uno hasta los tres dígitos octales “#” y produce octetos sin procesar;
Las secuencias hexadecimales '\ x # *' devoran con avidez tantos dígitos hexadecimales "#" como puedan y
terminar con el primer dígito no hexadecimal; estos traducen un punto de código Unicode a
UTF-8. La secuencia '\ c #', donde "#" es cualquier octeto, se traduce como Ctrl- # (que básicamente
significa, '\ c?' se convierte en DEL, todo lo demás se realiza mediante AND bit a bit con 0x1F). Finalmente, '\ #', donde
# no es ninguno de los anteriores, se traduce en # (tiene la barra invertida recortada), incluso si es un
nueva línea.

Alias
Hay dos tipos de alias: alias de comando normal y alias de seguimiento. Alias ​​de comando
se utilizan normalmente como mano corta para un comando largo o de uso frecuente. El caparazón se expande
alias de comando (es decir, sustituye el nombre del alias por su valor) cuando lee la primera palabra
de un comando. Un alias expandido se vuelve a procesar para buscar más alias. Si un comando
alias termina en un espacio o tabulación, la siguiente palabra también se comprueba para la expansión del alias. los
El proceso de expansión de alias se detiene cuando se encuentra una palabra que no es un alias, cuando una palabra entre comillas
se encuentra, o cuando se encuentra una palabra de alias que se está expandiendo actualmente. Los alias son
específicamente una característica interactiva: si bien funcionan en scripts y en el
línea de comando en algunos casos, los alias se expanden durante el lexing, por lo que su uso debe ser en un
separe el árbol de comandos de su definición; de lo contrario, no se encontrará el alias.
Notablemente, listas de comandos (separadas por punto y coma, en sustituciones de comandos también por nueva línea)
puede ser un mismo árbol de análisis sintáctico.

El shell define automáticamente los siguientes alias de comando:

autoload = '\ typeset -fu'
funciones = '\ typeset -f'
hash = '\ alias incorporado -t'
history = '\ builtin fc -l'
entero = '\ tipografía -i'
local = '\ tipografía'
login = '\ exec login'
nameref = '\ typeset -n'
nohup = 'nohup'
r = '\ builtin fc -e -'
type = '\ builtin de donde -v'

Los alias rastreados permiten que el shell recuerde dónde encontró un comando en particular. El primero
vez que el shell realiza una búsqueda de ruta para un comando que está marcado como un alias rastreado, guarda
la ruta completa del comando. La próxima vez que se ejecute el comando, el shell verifica
ruta guardada para ver que sigue siendo válida y, de ser así, evita repetir la búsqueda de ruta.
Los alias rastreados se pueden listar y crear usando alias -t. Tenga en cuenta que cambiar la RUTA
El parámetro borra las rutas guardadas para todos los alias rastreados. Si el rastreador la opción está configurada
(por ejemplo set -o rastreador or set -h), el shell rastrea todos los comandos. Esta opción está configurada
automáticamente para shells no interactivos. Para proyectiles interactivos, solo lo siguiente
los comandos se rastrean automáticamente: gato(1) cc(1) chmod(1) cp(1) datos(1) ed(1)
emacs(1) grep(1) ls(1) para lograr(1) mv(1) pr(1) rm(1) SED(1) sh(1) vi(1), y (entornos urbanos), liderados por sus Ayuntamientos, que son responsables de validar e integrar las herramientas en su propio contexto aportando sus necesidades y retos. (1).

Sustitución
El primer paso que toma el shell para ejecutar un comando simple es realizar sustituciones en
las palabras del comando. Hay tres tipos de sustitución: parámetro, comando y
aritmética. Sustituciones de parámetros, que se describen en detalle en la siguiente sección,
tomar la forma $nombre o $ {...}; las sustituciones de comandos toman la forma $ (comando) o
(desaprobado)comando`o (ejecutado en el entorno actual) $ { comando;} y desnudar
nuevas líneas finales; y las sustituciones aritméticas toman la forma $ ((expresión)). Analizando el
La sustitución del comando del entorno actual requiere un espacio, tabulación o nueva línea después de la apertura.
llave y que la llave de cierre se reconozca como una palabra clave (es decir, esté precedida por una nueva línea
o punto y coma). También se denominan funsubs (sustituciones de funciones) y se comportan como
funciona en eso local y volvemos trabajo, y en eso salida termina el shell padre; cascarón
las opciones son compartidas.

Otra variante de sustitución son los valsubs (sustituciones de valor) $ {|comando;} que son
también se ejecuta en el entorno actual, como funsubs, pero comparte su E / S con el padre;
en su lugar, evalúan a lo que sea que la variable local de expresión, inicialmente vacía, REPLY sea
establecido dentro del comandos.

Si aparece una sustitución fuera de comillas dobles, los resultados de la sustitución son
generalmente sujeto a la división de palabras o campos de acuerdo con el valor actual del IFS
parámetro. El parámetro IFS especifica una lista de octetos que se utilizan para dividir una cadena
en varias palabras; cualquier octeto del espacio establecido, la pestaña y la nueva línea que aparecen en el IFS
los octetos se denominan "espacios en blanco IFS". Secuencias de uno o más octetos de espacios en blanco IFS, en
combinación con cero o un octeto de espacio en blanco que no sea IFS, delimita un campo. Como caso especial,
Los espacios en blanco IFS iniciales y finales se eliminan (es decir, no se muestra ningún campo vacío inicial o final
creado por él); Los espacios en blanco iniciales o finales no IFS crean un campo vacío.

Ejemplo: si IFS se establece en " : ”, Y VAR se establece en
" A : B :: D ”, la sustitución de $ VAR da como resultado cuatro campos: 'A',
'B', '' (un campo vacío) y 'D'. Tenga en cuenta que si el parámetro IFS se establece en el vacío
cadena, no se realiza ninguna división de campo; si no está configurado, el valor predeterminado de espacio, tabulación y
se utiliza nueva línea.

Además, tenga en cuenta que la división de campos se aplica solo al resultado inmediato de la
sustitución. Usando el ejemplo anterior, la sustitución de $ VAR: E da como resultado el
campos: 'A', 'B', '' y 'D: E', no 'A', 'B', '', 'D' y 'E'. Este comportamiento es POSIX
compatible, pero incompatible con algunas otras implementaciones de shell que hacen división de campos
en la palabra que contenía la sustitución o use IFS como un delimitador de espacios en blanco general.

Los resultados de la sustitución, a menos que se especifique lo contrario, también están sujetos a la expansión de la riostra.
y expansión de nombre de archivo (consulte las secciones relevantes a continuación).

Una sustitución de comando es reemplazada por la salida generada por el comando especificado que es
ejecutar en una subcapa. Por $ (comando) y $ {|comando;} y $ { comando;} sustituciones, normal
las reglas de cotización se utilizan cuando comando se analiza sin embargo, para los obsoletos 'comandoforma, un
'\' seguido de '$', '`' o '\' se elimina (como está '"' cuando la sustitución es parte
de una cadena entre comillas dobles); una barra invertida '\' seguida de cualquier otro carácter no se modifica.
Como un caso especial en sustituciones de comandos, un comando de la formapresentar se interpreta a
significa sustituir el contenido de presentar. Tenga en cuenta que PS tiene el mismo efecto que $ (gato Foo).

Tenga en cuenta que algunos shells no usan un analizador recursivo para sustituciones de comandos, lo que lleva a
falla para ciertos constructos; para ser portátil, use como solución 'x = $ (cat) << "EOF"' (o el
newline-manteniendo la extensión 'x = << "EOF"') en lugar de simplemente sorber la cadena. IEEE Std 1003.1
(“POSIX.1”) recomienda usar sentencias de casos de la forma 'x = $ (caso $ foo en (bar) echo $ bar
;; (*) echo $ baz ;; esac) 'en su lugar, que funcionaría pero no serviría como ejemplo para esto
problema de portabilidad.

x = $ (caso $ foo en barra) echo $ barra ;; *) echo $ baz ;; esac)
# anterior no se puede analizar en shells antiguos; a continuación se muestra la solución
x = $ (eval $ (gato)) << "EOF"
case $ foo en bar) echo $ bar ;; *) echo $ baz ;; esac
EOF

Las sustituciones aritméticas se reemplazan por el valor de la expresión especificada. Para
ejemplo, el comando Imprimir $ ((2 + 3 * 4)) muestra 14. Ver Aritmética expresiones para agendar una
descripción de una expresión.

parámetros
Los parámetros son variables de shell; se les pueden asignar valores y se puede acceder a sus valores
utilizando una sustitución de parámetros. Un nombre de parámetro es uno de los singulares especiales
los parámetros de caracteres de puntuación o dígitos descritos a continuación, o una letra seguida de cero o
más letras o dígitos ('_' cuenta como una letra). La última forma se puede tratar como matrices
agregando un índice de matriz de la forma [expr] dónde expr es una expresión aritmética.
Índices de matriz en mksh están limitados al rango de 0 a 4294967295, inclusive. Es decir,
son un entero sin signo de 32 bits.

Las sustituciones de parámetros toman la forma $nombre PSnombre } o $ {nombre [expr]} dónde nombre es un
nombre del parámetro. Sustitución de todos los elementos de la matriz con $ {nombre [*]} y $ {nombre [@]} obras
equivalente a $ * y $ @ para parámetros posicionales. Si la sustitución se realiza en un
parámetro (o un elemento de parámetro de matriz) que no está establecido, se sustituye una cadena nula
a menos que el sustantivo opción (set -o sustantivo or set -u) está establecido, en cuyo caso se produce un error.

A los parámetros se les pueden asignar valores de varias formas. Primero, el shell establece implícitamente
algunos parámetros como '#', 'PWD' y '$'; esta es la única forma en que el carácter único especial
se establecen los parámetros. En segundo lugar, los parámetros se importan del entorno del shell en
puesta en marcha. En tercer lugar, a los parámetros se les pueden asignar valores en la línea de comando: por ejemplo, FOO = barra
establece el parámetro “FOO” en “bar”; Se pueden dar múltiples asignaciones de parámetros en una sola
línea de comando y pueden ser seguidos por un comando simple, en cuyo caso las asignaciones son
en efecto solo durante la duración del comando (tales asignaciones también se exportan; consulte
a continuación para conocer las implicaciones de esto). Tenga en cuenta que tanto el nombre del parámetro como el '=' deben ser
sin comillas para que el shell reconozca una asignación de parámetros. El constructo FOO + = baz También es
Reconocido; los valores nuevos y antiguos se concatenan inmediatamente. La cuarta forma de ambientación
un parámetro está con el exportar, global, solo lecturay compilado comandos; ver su
descripciones en el Comando ejecución sección. Quinto, para y selecciona bucles establecer parámetros
así como la obtener opciones, leery set -A comandos. Por último, se pueden asignar parámetros
valores usando operadores de asignación dentro de expresiones aritméticas (ver Aritmética expresiones
a continuación) o usando $ {nombre =propuesta de} forma de la sustitución de parámetros (ver más abajo).

Parámetros con el atributo de exportación (establecido con el exportar or compilado -x comandos, o por
asignaciones de parámetros seguidas de comandos simples) se colocan en el entorno (ver
entorno(7)) de los comandos ejecutados por el shell como nombre =propuesta de pares. El orden en que los parámetros
aparecer en el entorno de un comando no está especificado. Cuando el caparazón se inicia,
extrae parámetros y sus valores de su entorno y establece automáticamente la exportación
atributo para esos parámetros.

Se pueden aplicar modificadores a $ {nombre } forma de sustitución de parámetros:

${nombre :-por el temor }
If nombre se establece y no NULL, se sustituye; de lo contrario, por el temor se sustituye.

${nombre :+por el temor }
If nombre está establecido y no NULL, por el temor está sustituido de lo contrario, no se sustituye nada.

${nombre :=por el temor }
If nombre se establece y no NULL, se sustituye; de lo contrario, se asigna por el temor y
el valor resultante de nombre se sustituye.

${nombre :?por el temor }
If nombre se establece y no NULL, se sustituye; de lo contrario, por el temor está impreso en
error estándar (precedido por nombre :) y se produce un error (que normalmente provoca la terminación
de una secuencia de comandos de shell, función o secuencia de comandos obtenida mediante el '.' incorporado). Si por el temor is
omitido, se utiliza en su lugar la cadena "parámetro nulo o no establecido". Actualmente un error,
if por el temor es una variable que se expande a la cadena nula, el mensaje de error también es
impreso.

Tenga en cuenta que, para todo lo anterior, por el temor en realidad se considera entre comillas y un análisis especial
se aplican las reglas. Las reglas de análisis también difieren en cuanto a si la expresión está entre comillas dobles: por el temor
luego usa reglas de comillas dobles, excepto por las comillas dobles en sí ('"') y el cierre
corchete, que, si la barra invertida se escapó, se aplica la eliminación de comillas.

En los modificadores anteriores, el ':' se puede omitir, en cuyo caso las condiciones solo dependen de
nombre siendo establecido (a diferencia de establecido y no NULL). Si por el temor es necesario, parámetro, comando,
en él se realizan aritmética y sustitución de tilde; si por el temor no es necesario, no es
evaluado.

También se pueden utilizar las siguientes formas de sustitución de parámetros (si nombre es una matriz, el
elemento con la clave "0" se sustituirá en contexto escalar):

PSnombre }
El número de parámetros posicionales si nombre es '*', '@' o no está especificado; de lo contrario
la longitud (en caracteres) del valor de cadena del parámetro nombre .

PSnombre [*]}
PSnombre [@]}
El número de elementos en la matriz. nombre .

PSnombre }
El ancho (en columnas de pantalla) del valor de cadena del parámetro nombre , o -1 si
${nombre } contiene un carácter de control.

PSnombre }
El nombre de la variable a la que hace referencia nombre . Esto será nombre excepto cuando nombre is
una referencia de nombre (variable vinculada), creada por el referencia del nombre comando (que es un alias
para compilado -n).

PSnombre [*]}
PSnombre [@]}
Los nombres de los índices (claves) en la matriz. nombre .

${nombre #patrón}
${nombre ##patrón}
If patrón coincide con el comienzo del valor del parámetro nombre , el texto coincidente es
eliminado del resultado de la sustitución. Un solo '#' resulta en el más corto
partido, y dos de ellos resultan en el partido más largo. No se puede aplicar a un vector
($ {*} o $ {@} o $ {matriz [*]} o $ {matriz [@]}).

${nombre %patrón}
${nombre %%patrón}
Como $ {.. # ..} sustitución, pero elimina del final del valor. No puede ser
aplicado a un vector.

${nombre /patrón / cuerda}
${nombre /#patrón / cuerda}
${nombre /%patrón / cuerda}
${nombre //patrón / cuerda}
El partido más largo de patrón en el valor del parámetro nombre se reemplaza con cadena
(eliminado si cadena esta vacio; la barra diagonal final ('/') puede omitirse en ese caso).
Una barra inclinada seguida de '#' o '%' hace que el patrón se ancle en el
principio o final del valor, respectivamente; vacío sin anclar patróns porque no
reemplazo; una sola barra al principio o el uso de una patrón que coincide con el vacío
string hace que el reemplazo ocurra solo una vez; dos barras inclinadas causan todo
apariciones de coincidencias en el valor a reemplazar. No se puede aplicar a un vector.
Implementado de manera ineficiente, puede ser lento.

${nombre :pos:len}
El Primer len personajes de nombre , comenzando en la posición pos, son sustituidos. Ambos
pos y:len son opcionales. Si pos es negativo, el conteo comienza al final del
cuerda; si se omite, el valor predeterminado es 0. Si len se omite o es mayor que el
longitud de la cuerda restante, se sustituye toda. Ambos pos y len en
evaluado como expresiones aritméticas. En la actualidad, pos debe comenzar con un espacio,
abrir paréntesis o dígito a reconocer. No se puede aplicar a un vector.

${nombre @ #}
El hash (utilizando el algoritmo BAFH) de la expansión de nombre . Esto también se usa
internamente para las tablas hash del shell.

${nombre @Q}
Una expresión entre comillas segura para el reingreso, cuyo valor es el valor de la nombre
parámetro, se sustituye.

Tenga en cuenta que patrón puede necesitar un patrón de globbing extendido (@ (...)), simple ('...') o doble
("...") comillas de escape a menos que -o sh se establece.

Los siguientes parámetros especiales están establecidos implícitamente por el shell y no se pueden configurar directamente
usando asignaciones:

! ID de proceso del último proceso en segundo plano iniciado. Si no hay procesos en segundo plano
iniciado, el parámetro no está configurado.

# El número de parámetros posicionales ($ 1, $ 2, etc.).

$ El PID del caparazón, o el PID del caparazón original si es una subcapa. Hacer NO
utilice este mecanismo para generar nombres de archivos temporales; ver mktemp(1) en cambio.

- La concatenación de las opciones actuales de una sola letra (ver el set comando a continuación
para ver una lista de opciones).

? El estado de salida del último comando no asincrónico ejecutado. Si el ultimo comando
fue asesinado por una señal, $? se establece en 128 más el número de señal, pero como máximo 255.

0 El nombre del shell, determinado de la siguiente manera: el primer argumento para mksh si era
invocado con el -c se dieron opciones y argumentos; de lo contrario el presentar argumento, si
fue suministrado; o bien el nombre base con el que se invocó el shell (es decir, argv [0]). $ 0
también se establece en el nombre del script actual o el nombre de la función actual,
si se definió con el función palabra clave (es decir, una función de estilo shell Korn).

1 .. 9 Los primeros nueve parámetros posicionales que se proporcionaron al shell, función o
script obtenido con el '.' incorporado. Otros parámetros posicionales pueden ser
accedido usando $ {número}.

* Todos los parámetros posicionales (excepto 0), es decir, $ 1, $ 2, $ 3, ...
Si se usa fuera de comillas dobles, los parámetros son palabras separadas (que están sujetas
a la división de palabras); si se usa entre comillas dobles, los parámetros están separados por
primer carácter del parámetro IFS (o la cadena vacía si IFS es NULL).

@ Igual que $*, a menos que se use entre comillas dobles, en cuyo caso una palabra separada es
generado para cada parámetro posicional. Si no hay parámetros posicionales, no
se genera la palabra. $@ se puede utilizar para acceder a los argumentos, literalmente, sin perder
Argumentos NULL o dividir argumentos con espacios.

El shell establece y / o utiliza los siguientes parámetros:

_ (guión bajo) Cuando el shell ejecuta un comando externo, este parámetro
se establece en el entorno del nuevo proceso a la ruta del ejecutado
mando. En uso interactivo, este parámetro también se establece en el shell principal para
la última palabra del comando anterior.

BASHPID El PID del caparazón o subcapa.

CDPATH Como PATH, pero se usa para resolver el argumento al cd comando incorporado. Nota
eso si CDPATH está configurado y no contiene '.' o un elemento de cadena vacío, el
no se busca en el directorio actual. También el cd Se mostrará el comando incorporado
el directorio resultante cuando se encuentra una coincidencia en cualquier ruta de búsqueda que no sea la
camino vacío.

COLUMNAS Establecido en el número de columnas en la terminal o ventana. Siempre configurado, valores predeterminados
a 80, a menos que el valor informado por pocilga(1) es diferente de cero y suficientemente sano
(el mínimo es 12x3); similar para LINES. Este parámetro lo utiliza el
modos de edición de línea interactiva, y por el selecciona, set -oy matar -l comandos
para dar formato a las columnas de información. Importar del entorno o desarmar
Este parámetro elimina la vinculación al tamaño real del terminal en favor del
valor proporcionado.

ENV Si este parámetro se establece después de ejecutar cualquier archivo de perfil, el
El valor expandido se utiliza como un archivo de inicio de shell. Normalmente contiene función
y definiciones de alias.

ERRNO Valor entero del shell error variable. Indica el motivo de la última
la llamada al sistema falló. Aun no implementado.

EXECSHELL Si se establece, se supone que este parámetro contiene el shell que se utilizará para
ejecutar comandos que ejecutivo(2) no se ejecuta y que no comienzan con un
“#!shell" secuencia.

FCEDIT El editor utilizado por el fc comando (ver más abajo).

FPATH Como PATH, pero se usa cuando se ejecuta una función indefinida para ubicar el archivo
definir la función. También se busca cuando no se puede encontrar un comando usando
SENDERO. Ver Clave a continuación para más información.

HISTFILE El nombre del archivo utilizado para almacenar el historial de comandos. Cuando se asigna ao desarmado,
el archivo se abre, el historial se trunca y luego se carga desde el archivo; subsecuente
nuevos comandos (que posiblemente constan de varias líneas) se añaden una vez que
compilado con éxito. Además, varias invocaciones del shell compartirán
history si todos sus parámetros HISTFILE apuntan al mismo archivo.

Note: Si HISTFILE no está configurado o está vacío, no se usa ningún archivo de historial. Este es
diferente de AT&T UNIX ksh.

HISTSIZE El número de comandos que normalmente se almacenan para el historial. El valor predeterminado es 2047. Hacer
no establezca este valor en valores increíblemente altos como 1000000000 porque mksh podemos
entonces no asignará suficiente memoria para el historial y no se iniciará.

INICIO El directorio predeterminado para el cd comando y el valor sustituido por un
no cualificado ~ (consulta: tilde expansión abajo).

Separador de campo interno IFS, utilizado durante la sustitución y por el leer comando
dividir valores en distintos argumentos; normalmente se establece en espacio, tabulación y nueva línea.
See Sustitución arriba para más detalles.

Note: Este parámetro no se importa del entorno cuando el shell está
comenzado.

KSHEGID El ID de grupo efectivo del shell.

KSHGID El ID de grupo real del shell.

KSHUID El ID de usuario real del shell.

KSH_VERSION El nombre y la versión del shell (solo lectura). Ver también los comandos de versión
in emacs . modo y Vi . modo secciones, a continuación.

LINENO El número de línea de la función o script de shell que se está
ejecutado.

LÍNEAS Establezca el número de líneas en el terminal o ventana. Siempre configurado, predeterminado en
24. Ver COLUMNAS.

ÉPOCA HORA
Tiempo desde la época, según lo devuelto por obtener la hora del día(2), formateado como decimal
tv_sec seguido de un punto ('.') y tv_usec rellenado con exactamente seis decimales
dígitos

OLDPWD El directorio de trabajo anterior. Desarmado si cd no ha cambiado con éxito
directorios desde que se inició el shell, o si el shell no sabe dónde está.

OPTARG Cuando se usa obtener opciones, contiene el argumento de una opción analizada, si
requiere uno.

OPTIND El índice del siguiente argumento que se procesará al usar obtener opciones. Asignando 1
a este parámetro causa obtener opciones para procesar argumentos desde el principio
la próxima vez que se invoca.

RUTA Una lista separada por dos puntos (punto y coma en OS / 2) de los directorios que se buscan
al buscar comandos y archivos obtenidos mediante el '.' comando (ver más abajo).
Una cadena vacía resultante de dos puntos iniciales o finales, o dos adyacentes.
dos puntos, se trata como un '.' (el directorio actual).

PGRP El ID de proceso del líder del grupo de procesos del shell.

PIPESTATUS Una matriz que contiene los códigos de nivel de error (estado de salida), uno por uno, del último
la tubería se ejecuta en primer plano.

PPID El ID de proceso del padre del shell.

PS1 El indicador principal para shells interactivos. Parámetro, comando y aritmética
se realizan sustituciones y '!' se reemplaza con el comando actual
número (ver el fc comando a continuación). Un literal '!' se puede poner en el indicador
colocando '!!' en PS1.

El indicador predeterminado es '$' para usuarios no root, '#' para root. Si mksh is
invocado por root y PS1 no contiene un carácter '#', el valor predeterminado
se utilizará incluso si PS1 ya existe en el entorno.

El mksh la distribución viene con una muestra punto.mkshrc que contiene un sofisticado
ejemplo, pero puede que le guste el siguiente (tenga en cuenta que
$ {HOSTNAME: = $ (nombre de host)} y la cláusula que distingue root-vs-user son (en
este ejemplo) ejecutado en el momento de la asignación de PS1, mientras que $ USER y $ PWD son
escapado y, por lo tanto, se evaluará cada vez que se muestre un mensaje):

PS1 = '$ {USER: = $ (id -un)}' "@ $ {HOSTNAME: = $ (hostname)}: \ $ PWD $ (
si ((ID_USUARIO)); luego imprime \ $; más imprimir \ #; fi) "

Tenga en cuenta que, dado que los editores de la línea de comandos intentan averiguar cuánto tiempo
es (para que sepan qué tan lejos está el borde de la pantalla), códigos de escape en el
el aviso tiende a estropear las cosas. Puedes decirle al caparazón que no cuente ciertos
secuencias (como códigos de escape) prefijando su mensaje con un carácter
(como Ctrl-A) seguido de un retorno de carro y luego delimitando el escape
códigos con este carácter. Cualquier aparición de ese carácter en el indicador se
no impreso. Por cierto, no me culpes por este truco; se deriva de la
reconocida por 88 ksh(1), que imprimió el carácter delimitador, por lo que no tenía
suerte si no tiene caracteres que no se impriman.

Dado que las barras invertidas y otros caracteres especiales pueden ser interpretados por el shell,
para configurar PS1, ya sea para escapar de la barra invertida o usar comillas dobles. los
el último es más práctico. Este es un ejemplo más complejo, evitando directamente
introduzca caracteres especiales (por ejemplo, con ^V en el modo de edición emacs), que
incrusta el directorio de trabajo actual, en video inverso (el color funcionaría,
también), en la cadena de comandos:

x = $ (imprimir \\ 001)
PS1 = "$ x $ (imprimir \\ r) $ x $ (tput so) $ x \ $ PWD $ x $ (tput se) $ x>"

Debido a una fuerte sugerencia de David G. Korn, mksh ahora también es compatible con
siguiente forma:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

Cadena de solicitud secundaria de PS2, por defecto '>', utilizada cuando se necesita más entrada para
completar un comando.

Indicador de PS3 utilizado por selecciona declaración al leer una selección de menú. El valor por defecto
es '#? '.

PS4 Se utiliza para prefijar los comandos que se imprimen durante el seguimiento de la ejecución (consulte el set
-x comando a continuación). Las sustituciones de parámetros, comandos y aritmética son
realizado antes de que se imprima. El valor predeterminado es '+'. Es posible que desee configurarlo
a '[$ EPOCHREALTIME]' en su lugar, para incluir marcas de tiempo.

PWD El directorio de trabajo actual. Puede estar desarmado o NULL si el shell no lo sabe
donde es.

ALEATORIO Cada vez que se hace referencia a ALEATORIO, se le asigna un número entre 0 y 32767
de un PRNG lineal congruente primero.

RESPUESTA Parámetro predeterminado para el leer comando si no se dan nombres. También se utiliza en
selecciona bucles para almacenar el valor que se lee de la entrada estándar.

SEGUNDOS El número de segundos desde que se inició el shell o, si el parámetro ha sido
asignado un valor entero, el número de segundos desde la asignación más el
valor que se le asignó.

TMOUT Si se establece en un entero positivo en un shell interactivo, especifica el máximo
número de segundos que el shell esperará por la entrada después de imprimir el primario
mensaje (PS1). Si se excede el tiempo, el shell sale.

TMPDIR Los archivos de shell temporales del directorio se crean en. Si este parámetro no es
establece, o no contiene la ruta absoluta de un directorio grabable, temporal
los archivos se crean en / Tmp.

USER_ID El ID de usuario efectivo del shell.

tilde expansión
La expansión de tilde, que se realiza en paralelo con la sustitución de parámetros, se realiza en palabras.
comenzando con un '~' sin comillas. Los caracteres que siguen a la tilde, hasta la primera '/', si
any, se supone que es un nombre de inicio de sesión. Si el nombre de inicio de sesión está vacío, '+' o '-', el valor de
se sustituye el parámetro HOME, PWD o OLDPWD, respectivamente. De lo contrario, la contraseña
Se busca en el archivo el nombre de inicio de sesión y la expresión de tilde se sustituye por la del usuario.
directorio de inicio. Si el nombre de inicio de sesión no se encuentra en el archivo de contraseña o si alguna cita o
La sustitución de parámetros se produce en el nombre de inicio de sesión, no se realiza ninguna sustitución.

En asignaciones de parámetros (como las que preceden a un comando simple o las que ocurren en el
argumentos de alias, exportar, global, solo lecturay compilado), la expansión de tilde se realiza después
cualquier asignación (es decir, después del signo igual) o después de dos puntos sin comillas (':'); nombres de inicio de sesión
también están delimitados por dos puntos.

El directorio de inicio de los nombres de inicio de sesión previamente expandidos se almacena en caché y se reutiliza. los alias -d
El comando se puede usar para listar, cambiar y agregar a esta caché (por ejemplo, alias -d
fac = / usr / local / Facilities; cd ~ fac / bin).

Abrazadera expansión (alternancia)
Las expresiones de llaves toman la siguiente forma:

prefijo{str1, ...,cadena}sufijo

Las expresiones se expanden a N palabras, cada una de las cuales es la concatenación de prefijo, stri,
y sufijo (por ejemplo, "a {c, b {X, Y}, d} e" se expande a cuatro palabras: "ace", "abXe", "abYe" y "ade").
Como se indica en el ejemplo, las expresiones de llaves se pueden anidar y las palabras resultantes no se
ordenados. Las expresiones de llaves deben contener una coma sin comillas (',') para que se produzca la expansión (p. Ej.
{} y {foo} no están expandidos). La expansión de la riostra se lleva a cabo después de la sustitución de parámetros.
y antes de la generación del nombre de archivo.

Archive nombre .
Un patrón de nombre de archivo es una palabra que contiene uno o más '?', '*', '+', '@' O '!' Sin comillas
caracteres o secuencias “[..]”. Una vez que se ha realizado la expansión de la abrazadera, el caparazón reemplaza
patrones de nombre de archivo con los nombres ordenados de todos los archivos que coinciden con el patrón (si no
los archivos coinciden, la palabra no se modifica). Los elementos del patrón tienen el siguiente significado:

? Coincide con cualquier carácter individual.

* Coincide con cualquier secuencia de octetos.

[..] Coincide con cualquiera de los octetos dentro de los corchetes. Los rangos de octetos se pueden especificar mediante
separando dos octetos por un '-' (por ejemplo, “[a0-9]” coincide con la letra 'a' o cualquier dígito).
Para representarse a sí mismo, un '-' debe estar entre comillas o el primer o último octeto
en la lista de octetos. Del mismo modo, se debe citar un ']' o el primer octeto de la lista.
si va a representarse a sí mismo en lugar del final de la lista. También una '!' apareciendo
al principio de la lista tiene un significado especial (ver más abajo), así que para representarse a sí mismo
debe ser citado o aparecer más adelante en la lista.

[! ..] Como [..], excepto que coincide con cualquier octeto que no esté dentro de los corchetes.

*(patrón| ... |patrón)
Coincide con cualquier cadena de octetos que coincida con cero o más ocurrencias del especificado
patrones. Ejemplo: el patrón * (foo|Pub) coincide con las cadenas "", "foo", "bar",
"Foobarfoo", etc.

+(patrón| ... |patrón)
Coincide con cualquier cadena de octetos que coincida con una o más ocurrencias del especificado
patrones. Ejemplo: el patrón + (foo|Pub) coincide con las cadenas "foo", "bar",
"Foobar", etc.

?(patrón| ... |patrón)
Coincide con la cadena vacía o una cadena que coincide con uno de los patrones especificados.
Ejemplo: el patrón ? (foo|Pub) solo coincide con las cadenas "", "foo" y "bar".

@(patrón| ... |patrón)
Coincide con una cadena que coincide con uno de los patrones especificados. Ejemplo: el patrón
@ (foo|Pub) solo coincide con las cadenas "foo" y "bar".

!(patrón| ... |patrón)
Coincide con cualquier cadena que no coincida con uno de los patrones especificados. Ejemplos: El
patrón ! (foo|Pub) coincide con todas las cadenas excepto "foo" y "bar"; el patrón ! (*)
coincide sin cadenas; el patrón ! (?) * coincide con todas las cadenas (piénselo).

Tenga en cuenta que el engrosamiento complicado, especialmente con alternativas, es lento; usando por separado
las comparaciones pueden (o no) ser más rápidas.

Tenga en cuenta que mksh (y pdksh) nunca coincide con '.' y '..', pero AT&T UNIX ksh, Bourne shy GNU
golpear hice.

Tenga en cuenta que ninguno de los elementos de patrón anteriores coincide con un punto ('.') Al comienzo de un
nombre de archivo o una barra ('/'), incluso si se utilizan explícitamente en una secuencia [..]; también el
nombres '.' y '..' nunca coinciden, ni siquiera por el patrón '. *'.

Si Markdirs está configurada la opción, cualquier directorio que resulte de la generación de nombre de archivo se
marcado con una '/' al final.

De entrada y salida redirección
Cuando se ejecuta un comando, su entrada estándar, salida estándar y error estándar (archivo
los descriptores 0, 1 y 2, respectivamente) normalmente se heredan del shell. Tres
Las excepciones a esto son los comandos en canalizaciones, para los cuales la entrada estándar y / o estándar
Los resultados son los configurados por la canalización, comandos asincrónicos creados cuando el control del trabajo es
deshabilitado, para el cual la entrada estándar se establece inicialmente para ser de / dev / nully comandos para
que se haya especificado alguna de las siguientes redirecciones:

>presentar La salida estándar se redirige a presentar. Si presentar no existe, se crea;
si existe, es un archivo normal, y el no clobber la opción está configurada, un error
ocurre; de lo contrario, el archivo se trunca. Tenga en cuenta que esto significa el comando cmd
<foo > foo abrirá foo para leer y luego truncarlo cuando lo abra para
escribiendo, antes cmd tiene la oportunidad de leer realmente foo.

>|presentar Igual que >, excepto que el archivo está truncado, incluso si el no clobber La opción está configurada.

>>presentar Igual que >, excepto si presentar existe al que se añade en lugar de truncarlo.
Además, el archivo se abre en modo anexar, por lo que las escrituras siempre van al final del
archivo (ver habiertos(2)).

<presentar La entrada estándar se redirige desde presentar, que está abierto para lectura.

<>presentar Igual que <, excepto que el archivo está abierto para lectura y escritura.

<<marcador Después de leer la línea de comando que contiene este tipo de redirección (llamada
"Aquí documento"), el shell copia las líneas de la fuente del comando en un
archivo temporal hasta que una línea coincida marcador es leído. Cuando el comando es
ejecutado, la entrada estándar se redirige desde el archivo temporal. Si marcador
no contiene caracteres entre comillas, el contenido del archivo temporal se procesa
como si estuviera entre comillas dobles cada vez que se ejecuta el comando, por lo que el parámetro,
comando, y se realizan sustituciones aritméticas, junto con barra invertida ('\')
escapes para '$', '`', '\' y '\ newline', pero no para '"'. Si hay varios aquí
los documentos se utilizan en la misma línea de comando, se guardan en orden.

Si no es correcto marcador se da, el documento aquí termina en el siguiente << y sustitución
será realizado. Si marcador es solo un conjunto de una sola “''” o una doble '""'
citas sin nada en el medio, el documento aquí termina en la siguiente línea vacía
y no se realizará sustitución.

<< -marcador Igual que <<, excepto que las pestañas iniciales se eliminan de las líneas del documento aquí.

<<por el temor Igual que <<, excepto que por el temor is el documento aquí. Esto se llama aquí
cadena.

<&fd La entrada estándar está duplicada del descriptor de archivo fd. fd puede ser un número,
indicando el número de un descriptor de archivo existente; la letra 'p', que indica
el descriptor de archivo asociado con la salida del coproceso actual; o la
carácter '-', que indica que la entrada estándar debe cerrarse. Tenga en cuenta que fd is
limitado a un solo dígito en la mayoría de las implementaciones de shell.

>&fd Igual que <&, excepto que la operación se realiza en salida estándar.

&>presentar Igual que >presentar 2> y 1. Este es un GNU obsoleto (heredado) golpear extensión compatible
by mksh que también admite el número fd explícito anterior, por ejemplo,
3 y>presentar es el mismo que 3>presentar 2> y 3 in mksh pero un error de sintaxis en GNU golpear.

&> |presentar, & >>presentar, &> &fd
Igual que >|presentar, >>presentaro >&fd (XNUMX %) 2> y 1, como anteriormente. Estos son mksh
extensiones.

En cualquiera de las redirecciones anteriores, el descriptor de archivo que se redirige (es decir, estándar
entrada o salida estándar) se puede dar explícitamente precediendo la redirección con un número
(portátil, solo un dígito). Sustituciones de parámetros, comandos y aritmética, tilde
sustituciones, y (si el shell es interactivo) la generación de nombres de archivos se realizan en
las presentar, marcadory fd argumentos de redirecciones. Sin embargo, tenga en cuenta que los resultados de cualquier
la generación de nombre de archivo solo se usa si se hace coincidir un solo archivo; si varios archivos coinciden, el
Se utiliza una palabra con los caracteres de generación de nombre de archivo expandidos. Tenga en cuenta que en restringido
shells, las redirecciones que pueden crear archivos no se pueden utilizar.

Para comandos simples, las redirecciones pueden aparecer en cualquier parte del comando; para comandos compuestos
(if declaraciones, etc.), cualquier redirección debe aparecer al final. Se procesan las redirecciones
después de que se crean las canalizaciones y en el orden en que se dan, por lo que a continuación se imprimirá una
error con un número de línea antepuesto:

$ cat / foo / bar 2> & 1> / dev / null | pr -n -t

Los descriptores de archivo creados por redirecciones de E / S son privados para el shell.

Aritmética expresiones
Las expresiones aritméticas enteras se pueden utilizar con el dejar comando, dentro de $ ((..)) expresiones,
dentro de las referencias de matriz (p. ej. nombre [expr]), como argumentos numéricos a la test comando, y como
el valor de una asignación a un parámetro entero. advertencia: Esto también afecta implícitamente
conversión a entero, por ejemplo, como lo hace el dejar mando. Nunca usar usuario no marcado
aportación, por ejemplo, del medio ambiente, en aritmética!

Las expresiones se calculan usando aritmética con signo y el mksh_ari_t tipo (una firma de 32 bits
entero), a menos que comiencen con un único carácter '#', en cuyo caso usan mksh_uari_t (a
Entero sin signo de 32 bits).

Las expresiones pueden contener identificadores de parámetros alfanuméricos, referencias a matrices y números enteros.
constantes y pueden combinarse con los siguientes operadores C (enumerados y agrupados en
orden creciente de precedencia):

Operadores unarios:

+ -! ~ ++ -

Operadores binarios:

,
= + = - = * = / =% = <<< = >>> = << = >> = & = ^ = | =
||
&&
|
^
&
==! =
<<=>> =
<<< >>> << >>
+ -
* /%

Operadores ternarios:

?: (la precedencia es inmediatamente mayor que la asignación)

Agrupando operadores:

()

Las constantes y expresiones enteras se calculan utilizando un ancho exacto de 32 bits, con signo o
sin firmar, escriba con envolvente silencioso en caso de desbordamiento de enteros. Las constantes enteras pueden ser
especificado con bases arbitrarias usando la notación bases#número, Donde bases es un decimal
entero que especifica la base, y número es un número en la base especificada. Adicionalmente,
los enteros en base 16 se pueden especificar prefijándolos con '0x' (no distingue entre mayúsculas y minúsculas) en todos
formas de expresiones aritméticas, excepto como argumentos numéricos a la test comando incorporado.
El prefijo de números con un único dígito cero ('0') no causa interpretación como octal, ya que
eso es peligroso de hacer.

Como especial mksh extensión, los números a la base de uno se tratan como (8 bits
transparente) ASCII o puntos de código Unicode, dependiendo del shell modo utf8 bandera (actual
configuración). El UNIX de AT&T 93 ksh También se admite la sintaxis de “'x'” en lugar de “1 # x”. Nota
que los bytes NUL (valor integral de cero) no se pueden utilizar. Un parámetro vacío o no configurado
evalúa a 0 en contexto entero. En el modo Unicode, los octetos sin procesar se asignan al rango
EF80..EFFF como en OPTU-8, que está en la PUA y ha sido asignado por CSUR para este uso. Si
más de un octeto en modo ASCII, o una secuencia de más de un octeto que no forma un
y se pasa una secuencia mínima de CESU-8, el comportamiento no está definido (por lo general, el shell aborta
con un error de análisis, pero rara vez tiene éxito, por ejemplo, en la secuencia C2 20). Es por eso que tu
siempre debe usar el modo ASCII a menos que sepa que la entrada es UTF-8 bien formada en el
rango de 0000..FFFD si utiliza esta función, a diferencia de leer -a.

Los operadores se evalúan de la siguiente manera:

unario +
El resultado es el argumento (incluido para completar).

unario -
Negación.

! NO lógico; el resultado es 1 si el argumento es cero, 0 si no.

~ Aritmética (bit a bit) NO.

++ Incremento; debe aplicarse a un parámetro (no a un literal u otra expresión).
El parámetro se incrementa en 1. Cuando se usa como operador de prefijo, el resultado
es el valor incrementado del parámetro; cuando se usa como un operador de sufijo,
el resultado es el valor original del parámetro.

-- Similar a ++, excepto que el parámetro se reduce en 1.

, Separa dos expresiones aritméticas; primero se evalúa el lado izquierdo,
luego a la derecha. El resultado es el valor de la expresión de la derecha.
lado.

= Cesión; la variable de la izquierda se establece en el valor de la derecha.

+ = - = * = / =% = <<< = >>> = << = >> = & = ^ = | =
Operadores de Asignación.var><op> =expr> es lo mismo quevar> =var><op><expr>,
con cualquier operador de precedencia enexpr> conservado. Por ejemplo, "var1 * = 5 +
3 ”es lo mismo que especificar“ var1 = var1 * (5 + 3) ”.

|| OR lógico; el resultado es 1 si alguno de los argumentos es distinto de cero, 0 en caso contrario. los
El argumento derecho se evalúa solo si el argumento izquierdo es cero.

&& Y lógico; el resultado es 1 si ambos argumentos son distintos de cero, 0 en caso contrario. los
El argumento derecho se evalúa solo si el argumento izquierdo no es cero.

| Aritmética (bit a bit) OR.

^ Aritmética (bit a bit) XOR (OR exclusivo).

& Aritmética (bit a bit) Y.

== Igual; el resultado es 1 si ambos argumentos son iguales, 0 si no.

! = No es igual; el resultado es 0 si ambos argumentos son iguales, 1 si no.

<Menor que; el resultado es 1 si el argumento de la izquierda es menor que el de la derecha, 0 si
no.

<=>> =
Menor o igual, mayor que, mayor o igual. Ver <.

<<< >>>
Girar a la izquierda (derecha); el resultado es similar a shift (ver <<) excepto que el
los bits desplazados hacia fuera en un extremo se desplazan hacia el otro extremo, en lugar de cero
o firmar bits.

<< >> Desplazar a la izquierda (derecha); el resultado es el argumento de la izquierda con sus bits desplazados a la izquierda
(derecha) por la cantidad dada en el argumento correcto.

+ - * /
Suma, resta, multiplicación y división.

% Recordatorio; el resultado es el resto simétrico de la división de la izquierda
argumento de la derecha. Para obtener el módulo matemático de "un mod b ", utilice el
fórmula “(a% b + b)% b”.

<arg1>?arg2>:arg3>
Siarg1> no es cero, el resultado esarg2>; de lo contrario, el resultado esarg3>.
El argumento sin resultado no se evalúa.

Coprocesos
Un coproceso (que es una canalización creada con el operador '| &') es un proceso asíncrono
en el que el shell puede escribir (usando Imprimir -p) y leer de (usando leer -p). La entrada
y la salida del coproceso también se puede manipular utilizando > & p y <& p redirecciones,
respectivamente. Una vez que se ha iniciado un coproceso, no se puede iniciar otro hasta que
salidas del proceso, o hasta que la entrada del coproceso haya sido redirigida mediante un ejecutivo n> & p
redirección. Si la entrada de un coproceso se redirige de esta manera, el siguiente coproceso a ser
iniciado compartirá la salida con el primer coproceso, a menos que la salida de la inicial
El coproceso ha sido redirigido mediante un ejecutivo n<& p redirección.

Algunas notas sobre coprocesos:

· La única forma de cerrar la entrada del coproceso (para que el coproceso lea un final de archivo) es
para redirigir la entrada a un descriptor de archivo numerado y luego cerrar ese descriptor de archivo:
ejecutivo 3> & p; ejecutivo 3> y -

· Para que los coprocesos compartan una salida común, el shell debe mantener la escritura
parte del tubo de salida abierta. Esto significa que el final del archivo no se detectará hasta
todos los coprocesos que comparten la salida del coproceso han salido (cuando todos salen, el
shell cierra su copia de la tubería). Esto se puede evitar redirigiendo la salida a un
descriptor de archivo numerado (ya que esto también hace que el shell cierre su copia). Tenga en cuenta que
este comportamiento es ligeramente diferente del shell Korn original que cierra su copia
de la parte de escritura de la salida del coproceso cuando el coproceso iniciado más recientemente
(en lugar de cuando todos los coprocesos compartidos) sale.

· Imprimir -p ignorará las señales SIGPIPE durante las escrituras si la señal no está siendo atrapada o
ignorado lo mismo es cierto si la entrada del coproceso se ha duplicado en otro archivo
descriptor y Imprimir -un se utiliza.

Clave
Las funciones se definen mediante el shell Korn función nombre de la función sintaxis o la
Shell Bourne / POSIX nombre de la función() sintaxis (vea a continuación la diferencia entre los dos
formas). Las funciones son como. ‐ Scripts (es decir, scripts que se obtienen utilizando el '.' Incorporado) en que
se ejecutan en el entorno actual. Sin embargo, a diferencia de los scripts., Los argumentos de shell
(es decir, los parámetros posicionales $ 1, $ 2, etc.) nunca son visibles dentro de ellos. Cuando el caparazón es
determinando la ubicación de un comando, las funciones se buscan después de una función incorporada especial
comandos, antes de los builtins y se busca el PATH.

Una función existente se puede eliminar usando desarmado -f nombre de la función. Una lista de funciones puede
ser obtenido usando compilado +f y las definiciones de funciones se pueden enumerar usando compilado -f.
El carga automática comando (que es un alias para compilado -fu) se puede utilizar para crear indefinidos
funciones: cuando se ejecuta una función indefinida, el shell busca la ruta especificada en
el parámetro FPATH para un archivo con el mismo nombre que la función que, si se encuentra, se lee
y ejecutado. Si después de ejecutar el archivo se encuentra definida la función nombrada, la
se ejecuta la función; de lo contrario, la búsqueda de comandos normal continúa (es decir, el shell
busca la tabla de comandos incorporada normal y la RUTA). Tenga en cuenta que si no se encuentra un comando
usando PATH, se intenta cargar automáticamente una función usando FPATH (esta es una
característica de la cáscara Korn original).

Las funciones pueden tener dos atributos, "seguimiento" y "exportación", que se pueden configurar con compilado -pie
y compilado -fx, respectivamente. Cuando se ejecuta una función rastreada, el shell xtrace
La opción está activada durante la duración de la función. El atributo "exportar" de funciones es
actualmente no se utiliza. En el shell Korn original, las funciones exportadas son visibles en el shell
scripts que se ejecutan.

Dado que las funciones se ejecutan en el entorno de shell actual, las asignaciones de parámetros realizadas
las funciones internas son visibles después de que se completa la función. Si este no es el deseado
efecto, el compilado El comando se puede usar dentro de una función para crear un parámetro local. Nota
que AT&T UNIX 93 ksh usa un alcance estático (un alcance global, un alcance local por función)
y permite variables locales solo en funciones de estilo Korn, mientras que mksh usa alcance dinámico
(ámbitos anidados de diversa localidad). Tenga en cuenta que los parámetros especiales (p. Ej. $$, $!) no puede ser
alcance de esta manera.

El estado de salida de una función es el del último comando ejecutado en la función. A
Se puede hacer que la función finalice inmediatamente usando el volvemos mando; esto también se puede usar
para especificar explícitamente el estado de salida.

Funciones definidas con el función palabra reservada se tratan de forma diferente en el siguiente
formas de funciones definidas con el () notación:

· El parámetro $ 0 se establece en el nombre de la función (las funciones de estilo Bourne dejan $ 0
intacto).

· Las asignaciones de parámetros que preceden a las llamadas a funciones no se mantienen en el entorno de shell
(la ejecución de funciones de estilo Bourne mantendrá las asignaciones).

· OPTIND se guarda / restablece y restaura al entrar y salir de la función, por lo que obtener opciones puede ser
utilizado correctamente tanto dentro como fuera de la función (las funciones de estilo Bourne dejan OPTIND
intacto, así que usando obtener opciones dentro de una función interfiere con el uso obtener opciones afuera de
función).

· Opciones de shell (set -o) tienen alcance local, es decir, los cambios dentro de una función se restablecen al
su salida.

En el futuro, también se pueden agregar las siguientes diferencias:

· Se utilizará un entorno de trampa / señal independiente durante la ejecución de funciones. Esta
significará que las trampas colocadas dentro de una función no afectarán las trampas y señales del caparazón
que no se ignoran en el shell (pero que pueden quedar atrapados) tendrán su efecto predeterminado en
Una función.

· La trampa EXIT, si se establece en una función, se ejecutará después de que la función regrese.

Comando ejecución
Después de la evaluación de los argumentos, redirecciones y asignaciones de parámetros de la línea de comandos,
Se determina el tipo de comando: un comando incorporado especial, una función, un comando incorporado normal o
el nombre de un archivo para ejecutar encontrado usando el parámetro PATH. Los controles se realizan en el
por encima de la orden. Los comandos especiales incorporados se diferencian de otros comandos en que el PATH
parámetro no se utiliza para encontrarlos, un error durante su ejecución puede causar una falta de
shell interactivo para salir y asignaciones de parámetros que se especifican antes del comando
se mantienen después de que se completa el comando. Los comandos incorporados regulares son diferentes solo en que
el parámetro PATH no se usa para encontrarlos.

El original ksh y POSIX difieren un poco en qué comandos se consideran especiales o
regular

Utilidades incorporadas especiales POSIX:

., :, romper, continue, eval, ejecutivo, salida, exportar, solo lectura, volvemos, set, Turno, veces, trampa,
desarmado

Adicionales mksh comandos que mantienen asignaciones:

incorporado, global, fuente, compilado, esperar

Incorporaciones que no son especiales:

[, alias, bg, se unen, gato, cd, comando, echo, false, fc, fg, obtener opciones, recibas nuevas vacantes en tu correo, matar, dejar, Imprimir,
pwd, leer, Realpath, rebautizar, sueño, suspender, test, verdadero, ulimit, umask, unalias, De dónde

Una vez que se ha determinado el tipo de comando, todas las asignaciones de parámetros de la línea de comandos se
realizado y exportado durante la duración del comando.

A continuación se describen los comandos incorporados especiales y regulares y los reservados de tipo incorporado.
palabras:

. presentar [arg ...]
Esto se llama el comando "punto". Ejecute los comandos en presentar en la corriente
ambiente. El archivo se busca en los directorios de PATH. Si los argumentos son
dado, los parámetros posicionales se pueden utilizar para acceder a ellos mientras presentar es casi tan bueno como ser
ejecutado. Si no se dan argumentos, los parámetros posicionales son los del
entorno en el que se utiliza el comando.

: [...]
El comando nulo. El estado de salida se establece en cero.

[ expresión ]
See test.

alias [-d | -t [-r] | + -x] [-p] [+] [nombre [=propuesta de] ...]
Sin argumentos alias enumera todos los alias. Para cualquier nombre sin valor, el
se enumera el alias existente. Cualquier nombre con un valor define un alias (ver Alias
encima).

Cuando se enumeran los alias, se utiliza uno de dos formatos. Normalmente, los alias se enumeran como
nombre =propuesta de, Donde propuesta de se cotiza. Si las opciones estuvieran precedidas por '+' o un solo '+'
se da en la línea de comando, solo nombre está impreso.

El -d La opción hace que los alias de directorio que se utilizan en la expansión de tilde aparezcan en la lista.
o establecer (ver tilde expansión encima).

Si -p se utiliza la opción, cada alias tiene como prefijo la cadena "alias".

El -t La opción indica que los alias rastreados se enumerarán / establecerán (valores especificados
en la línea de comando se ignoran para los alias rastreados). El -r opción indica que
Todos los alias rastreados deben restablecerse.

El -x conjuntos de opciones (+x borra) el atributo de exportación de un alias, o, si no hay nombres
dado, enumera los alias con el atributo de exportación (exportar un alias no tiene
efecto).

bg [trabajo ...]
Reanude los trabajos detenidos especificados en segundo plano. Si no se especifican trabajos, %+
se supone. Ver Trabajos control a continuación para más información.

se unen [-l]
Se enumeran los enlaces actuales. Si el -l se da la bandera, se unen en su lugar enumera el
nombres de las funciones a las que se pueden vincular las teclas. Ver emacs . modo
información.

se unen [-m] cadena=[sustitutas] ...
se unen cadena=[comando de edición] ...
El comando de edición especificado está vinculado al cadena, que debe consistir en un
carácter de control opcionalmente precedido por uno de los dos caracteres de prefijo y
opcionalmente seguido por un carácter de tilde. Aportes futuros del cadena hará que el
comando de edición para ser invocado inmediatamente. Si el -m se da la bandera, el especificado
Las opciones de entrada cadena Posteriormente será reemplazado inmediatamente por el dado sustitutas cadena
que puede contener comandos de edición pero no otras macros. Si un sufijo de tilde es
dado, una tilde detrás de uno o dos prefijos y el carácter de control se ignora,
cualquier otro carácter final se procesará posteriormente.

Los caracteres de control se pueden escribir usando notación de intercalación, es decir, ^ X representa Ctrl-X.
Tenga en cuenta que aunque solo se admiten dos caracteres de prefijo (generalmente ESC y ^ X),
se pueden admitir algunas secuencias de varios caracteres.

Los siguientes enlaces predeterminados muestran cómo las teclas de flecha, la tecla Inicio, Finalizar y Eliminar
en un BSD wsvt25, xterm-xfree86 o terminal de pantalla GNU están vinculados (por supuesto, algunos
las secuencias de escape no funcionarán tan bien):

enlazar '^ X' = prefijo-2
enlazar '^ [[' = prefijo-2
enlazar '^ XA' = up-history
enlazar '^ XB' = historial de bajada
enlazar '^ XC' = forward-char
enlazar '^ XD' = backward-char
enlazar '^ X1 ~' = principio de línea
enlazar '^ X7 ~' = principio de línea
enlazar '^ XH' = principio de línea
enlazar '^ X4 ~' = fin de línea
enlazar '^ X8 ~' = fin de línea
enlazar '^ XF' = final de línea
enlazar '^ X3 ~' = eliminar-char-adelante

romper [nivel]
Salga de la nivelel más interno para, selecciona, hastao mientras lazo. nivel el valor predeterminado es 1.

incorporado [--] comando [arg ...]
Ejecute el comando incorporado comando.

gato [-u] [presentar ...]
Lea los archivos de forma secuencial, en el orden de la línea de comandos, y escríbalos en la salida estándar.
Si un presentar es un guión simple ('-') o está ausente, leído de la entrada estándar. Para directo
llamadas integradas, el POSIX -u La opción se admite como no operativa. Para llamadas desde shell, si
se dan las opciones, un externo gato(1) se prefiere la utilidad a la incorporada.

cd [-L] [dir]
cd -P [-e] [dir]
chdir [-eLP] [dir]
Establezca el directorio de trabajo en dir. Si se establece el parámetro CDPATH, enumera los
ruta de búsqueda para el directorio que contiene dir. Una ruta NULL significa la corriente
directorio. Si dir se encuentra en cualquier componente de la ruta de búsqueda CDPATH que no sea el
Ruta NULL, el nombre del nuevo directorio de trabajo se escribirá en la salida estándar.
If dir falta, se utiliza el directorio de inicio HOME. Si dir es '-', el anterior
se utiliza el directorio de trabajo (consulte el parámetro OLDPWD).

Si -L se utiliza la opción (ruta lógica) o si la los libros físicos La opción no está configurada (consulte la
set comando a continuación), referencias a '..' en dir son relativos a la ruta utilizada para llegar a
El directorio. Si el -P se utiliza la opción (ruta física) o si la los libros físicos opción es
set, '..' es relativo al árbol de directorios del sistema de archivos. El PWD y OLDPWD
los parámetros se actualizan para reflejar el directorio de trabajo actual y antiguo,
respectivamente. Si el -e La opción está configurada para el recorrido del sistema de archivos físico y PWD
no se pudo configurar, el código de salida es 1; mayor que 1 si ocurrió un error, 0
de otra manera.

cd [-eLP] los ancianos nueva
chdir [-eLP] los ancianos nueva
La cuerda nueva es sustituido por los ancianos en el directorio actual y el shell
intenta cambiar al nuevo directorio.

comando [-pVv] cmd [arg ...]
Si ni el -v ni -V se da la opción, cmd se ejecuta exactamente como si comando tenido
no se ha especificado, con dos excepciones: en primer lugar, cmd no puede ser una función de shell; y
En segundo lugar, los comandos especiales incorporados pierden su especialidad (es decir, redirección y
Los errores de utilidad no hacen que el shell se cierre y las asignaciones de comandos no son
permanente).

Si -p se da la opción, se utiliza una ruta de búsqueda predeterminada en lugar del valor actual
de PATH, cuyo valor real depende del sistema.

Si -v se da la opción, en lugar de ejecutar cmd, información sobre lo que sería
ejecutado se da (y lo mismo se hace para arg ...). Para incorporaciones, funciones y
palabras clave, sus nombres simplemente se imprimen; para los alias, un comando que los define es
impreso; para las utilidades encontradas al buscar el parámetro PATH, la ruta completa del
Se imprime el comando. Si no se encuentra ningún comando (es decir, la búsqueda de ruta falla), no se
impreso y comando salidas con un estado distinto de cero. El -V La opción es como la -v
opción, excepto que es más detallada.

continue [nivel]
Salta al comienzo de la nivelel más interno para, selecciona, hastao mientras lazo.
nivel el valor predeterminado es 1.

echo [-A] [arg ...]
Advertencia: esta utilidad no es portátil; usar el shell Korn incorporado Imprimir preferiblemente.

Imprime sus argumentos (separados por espacios) seguidos de una nueva línea, al estándar
producción. La nueva línea se suprime si alguno de los argumentos contiene la barra invertida
secuencia '\ c'. Ver el Imprimir comando a continuación para obtener una lista de otras secuencias de barra invertida
que son reconocidos.

Las opciones se proporcionan para compatibilidad con los scripts de shell BSD. El -n opción
suprime la nueva línea final, -e permite la interpretación de barra invertida (una operación no permitida, ya que
esto se hace normalmente), y -E suprime la interpretación de barra invertida.

Si POSIX or sh La opción está configurada o esta es una llamada directa incorporada, solo la primera
argumento se trata como una opción, y solo si es exactamente "-n”. Barra invertida
la interpretación está deshabilitada.

eval comando ...
Los argumentos se concatenan (con espacios entre ellos) para formar una sola cadena
que luego el shell analiza y ejecuta en el entorno actual.

ejecutivo [-a argv0] [-c] [comando [arg ...]]
El comando se ejecuta sin bifurcación, reemplazando el proceso de shell. Esto es
actualmente absoluto, es decir ejecutivo nunca regresa, incluso si el comando no se encuentra. los
-a La opción permite establecer un valor diferente de argv [0], y -c limpia el medio ambiente
antes de ejecutar el proceso hijo, a excepción de la variable _ y las asignaciones directas.

Si no se da ningún comando excepto para la redirección de E / S, la redirección de E / S es permanente
y la cáscara no se reemplaza. Cualquier descriptor de archivo mayor que 2 que esté abierto
or dup(2) 'd de esta manera no están disponibles para otros comandos ejecutados (es decir,
comandos que no están integrados en el shell). Tenga en cuenta que el shell Bourne difiere
aquí; pasa estos descriptores de archivo.

salida [estado]
El shell sale con el estado de salida especificado. Si estado no se especifica, la salida
estado es el valor actual de la $? parámetro.

exportar [-p] [parámetro[=propuesta de]]
Establece el atributo de exportación de los parámetros nombrados. Los parámetros exportados se pasan a
el entorno para ejecutar comandos. Si se especifican valores, los parámetros nombrados
también están asignados.

Si no se especifican parámetros, todos los parámetros con el atributo de exportación establecido son
impreso uno por línea; ya sea sus nombres, o, si un '-' sin letra de opción es
pares especificados, nombre = valor, o, con -p, exportar comandos adecuados para el reingreso.

false Un comando que sale con un estado distinto de cero.

fc [-e editor | -l [-n]] [-r] [la primera [pasado]]
la primera y pasado seleccionar comandos del historial. Los comandos se pueden seleccionar por historial
número (los números negativos van hacia atrás desde la línea actual, más reciente) o un
cadena que especifica el comando más reciente que comienza con esa cadena. El -l opción
enumera el comando en la salida estándar, y -n inhibe los números de comando predeterminados.
El -r La opción invierte el orden de la lista. Sin que -l, los comandos seleccionados son
editado por el editor especificado con el -e opción, o si no -e se especifica, el
editor especificado por el parámetro FCEDIT (si este parámetro no está configurado, / bin / ed is
utilizado), y luego ejecutado por el shell.

fc -e - | -s [-g] [los ancianos =nueva] [prefijo]
Vuelva a ejecutar el comando seleccionado (el comando anterior por defecto) después de realizar
la sustitución opcional de los ancianos nueva. Si -g se especifica, todas las apariciones de
los ancianos son reemplazados por nueva. El significado de -e - y -s es idéntico: vuelva a ejecutar el
comando seleccionado sin invocar un editor. Este comando generalmente se accede con
el predefinido: alias r = 'fc -e -'

fg [trabajo ...]
Reanude los trabajos especificados en primer plano. Si no se especifican trabajos, %+ is
ficticio. Ver Trabajos control a continuación para más información.

obtener opciones cadena de opciones nombre [arg ...]
Usado por procedimientos de shell para analizar los argumentos especificados (o parámetros posicionales,
si no se dan argumentos) y para verificar opciones legales. cadena de opciones contiene el
letras de opción que obtener opciones es reconocer. Si una letra va seguida de dos puntos, el
Se espera que la opción tenga un argumento. Las opciones que no aceptan argumentos pueden ser
agrupados en un solo argumento. Si una opción toma un argumento y la opción
carácter no es el último carácter del argumento en el que se encuentra, el resto de
el argumento se toma como el argumento de la opción; de lo contrario, el siguiente argumento es
el argumento de la opción.

Cada vez obtener opciones se invoca, coloca la siguiente opción en el parámetro de shell nombre
y el índice del argumento que será procesado por la próxima llamada a obtener opciones existentes
parámetro de shell OPTIND. Si la opción se introdujo con un '+', la opción colocada
in nombre tiene el prefijo '+'. Cuando una opción requiere un argumento, obtener opciones lugares
en el parámetro de shell OPTARG.

Cuando se encuentra una opción ilegal o un argumento de opción faltante, un signo de interrogación
o se coloca un colon en nombre (indica una opción ilegal o un argumento faltante,
respectivamente) y OPTARG se establece en el carácter de opción que causó el problema.
Además, si cadena de opciones no comienza con dos puntos, se coloca un signo de interrogación en
nombre , OPTARG está desarmado y se imprime un mensaje de error como error estándar.

Cuando se encuentra el final de las opciones, obtener opciones salidas con una salida distinta de cero
estado. Las opciones terminan en el primer argumento (sin argumento de opción) que no comienza
con un '-', o cuando se encuentra un argumento '-'.

El análisis de opciones se puede restablecer configurando OPTIND en 1 (esto se hace automáticamente
siempre que se invoca el shell o un procedimiento de shell).

Advertencia: Cambiar el valor del parámetro de shell OPTIND a un valor distinto de 1, o
analizar diferentes conjuntos de argumentos sin restablecer OPTIND, puede llevar a
resultados.

global ...
See compilado.

hachís [-r] [nombre ...]
Sin argumentos, se enumeran los nombres de ruta de los comandos ejecutables con hash. El -r opción
hace que todos los comandos hash se eliminen de la tabla hash. Cada nombre se busca
como si fuera un nombre de comando y agregado a la tabla hash si es un ejecutable
mando.

recibas nuevas vacantes en tu correo [-lnp] [trabajo ...]
Mostrar información sobre los trabajos especificados; si no se especifican trabajos, todos los trabajos
son mostrados. El -n La opción hace que la información se muestre solo para trabajos que
han cambiado de estado desde la última notificación. Si el -l se utiliza la opción, la
También se muestra el ID de proceso de cada proceso en un trabajo. El -p La opción hace que solo el
grupo de procesos de cada trabajo a imprimir. Ver Trabajos control a continuación para el formato de trabajo
y el trabajo mostrado.

matar [-s signname | -signum | -signname] { trabajo | pid | pgrp } ...
Envíe la señal especificada a los trabajos, identificadores de proceso o grupos de procesos especificados. Si
no se especifica ninguna señal, se envía la señal TERM. Si se especifica un trabajo, la señal
se envía al grupo de procesos del trabajo. Ver Trabajos control a continuación para el formato de trabajo.

matar -l [estado de salida ...]
Imprima el nombre de la señal correspondiente a estado de salida. Si no se especifican argumentos,
Se imprime una lista de todas las señales, sus números y una breve descripción de las mismas.

dejar [expresión ...]
Cada expresión se evalúa (ver Aritmética expresiones sobre). Si todas las expresiones
se evalúan con éxito, el estado de salida es 0 (1) si la última expresión evaluada
a distinto de cero (cero). Si ocurre un error durante el análisis o la evaluación de un
expresión, el estado de salida es mayor que 1. Dado que las expresiones pueden necesitar ser
citado, (( expr )) es azúcar sintáctico para {let 'expr'; }.

dejar] Alias ​​utilizado internamente para dejar.

mknod [-m modo] nombre b|c gran menor de edad
mknod [-m modo] nombre p
Cree un archivo especial de dispositivo. El tipo de archivo puede ser b (dispositivo de tipo bloque), c
(dispositivo de tipo de carácter), o p (tubería con nombre, FIFO). El archivo creado se puede modificar
de acuerdo a su modo (A través de la -m opción), gran (número de dispositivo principal) y menor de edad
(número de dispositivo menor). Esto normalmente no es parte de mksh; sin embargo, los distribuidores pueden
han agregado esto como un truco de velocidad incorporado.

Imprimir [-nprsu[n] | -R [-in]] [argumento ...]
Imprimir imprime sus argumentos en la salida estándar, separados por espacios y terminados
con una nueva línea. El -n opción suprime la nueva línea. De forma predeterminada, algunos C escapan
se traducen. Estos incluyen los mencionados en Barra invertida expansión arriba, también
como '\ c', que es equivalente a usar el -n opción. La expansión de barra invertida puede ser
inhibido con el -r opción. La -s La opción se imprime en el archivo de historial en lugar de
salida estándar; el -u la opción se imprime en el descriptor de archivo n (n predeterminado a 1 si
omitido); y el -p La opción se imprime en el coproceso (consulte Coprocesos encima).

El -R La opción se usa para emular, hasta cierto punto, el BSD echo(1) comando que hace
no procesar secuencias '\' a menos que el -e se da la opción. Como arriba, el -n opción
suprime la nueva línea final.

Printf formato [argumentos ...]
Salida formateada. Aproximadamente igual que el Printf(1), utilidad, excepto que usa
lo mismo Barra invertida expansión y el código de E / S y no maneja el punto flotante como el
resto de mksh. Se prefiere una utilidad externa a la incorporada. Esto no es
normalmente parte de mksh; sin embargo, los distribuidores pueden haber agregado esto como un
truco velocidad. No lo utilice en un código nuevo.

pwd [-LP]
Imprime el directorio de trabajo actual. Si el -L se utiliza la opción o si la los libros físicos
La opción no está configurada (consulte la set comando a continuación), se imprime la ruta lógica (es decir, el
camino utilizado para cd al directorio actual). Si el -P se utiliza la opción (ruta física)
o si el los libros físicos se establece la opción, la ruta determinada a partir del sistema de archivos (por
siguientes directorios '..' al directorio raíz) se imprime.

leer [-A | -a] [-d x] [-N z | -n z] [-p | -u[n]] [-t n] [-rs] [p ...]
Lee una línea de entrada, separa la entrada en campos usando el parámetro IFS (ver
Sustitución arriba), y asigna cada campo a los parámetros especificados p. Si no
se especifican los parámetros, el parámetro REPLY se utiliza para almacenar el resultado. Con el
-A y -a opciones, solo se acepta un parámetro o ninguno. Si hay mas
parámetros que campos, los parámetros adicionales se establecen en la cadena vacía o 0; Si
hay más campos que parámetros, al último parámetro se le asigna el resto
campos (incluidos los separadores de palabras).

Las opciones son las siguientes:

-A Almacene el resultado en el parámetro p (o RESPUESTA) como una matriz de palabras.

-a Almacene el resultado sin dividir la palabra en el parámetro p (o RESPONDER) como
matriz de caracteres (caracteres anchos si el modo utf8 se promulga la opción,
octetos en caso contrario); los puntos de código se codifican como números decimales de forma predeterminada.

-d x Utilice el primer byte de x, NUL si está vacío, en lugar del carácter de nueva línea ASCII
como delimitador de línea de entrada.

-N z En lugar de leer hasta el final de la línea, lea exactamente z bytes. Si EOF o un
se agota el tiempo de espera, se devuelve una lectura parcial con el estado de salida 1.

-n z En lugar de leer hasta el final de la línea, lea hasta z bytes pero regresa tan pronto como
se leen los bytes, por ejemplo, desde un dispositivo terminal lento, o si EOF o un tiempo de espera
ocurre.

-p Lea del coproceso actualmente activo, consulte Coprocesos arriba para más detalles
en este.

-u[n] Leer del descriptor de archivo n (por defecto es 0, es decir, entrada estándar). El
El argumento debe seguir inmediatamente al carácter de opción.

-t n Interrumpir la lectura después n segundos (especificado como valor decimal positivo con un
parte fraccionaria opcional). El estado de salida de leer es 1 si el tiempo de espera
ocurrió, pero aún se pueden devolver lecturas parciales.

-r Normalmente, el carácter de barra invertida ASCII escapa al significado especial de la
siguiente carácter y se quita de la entrada; leer no se detiene cuando
encontrar una secuencia de barra invertida-nueva línea y no almacena esa nueva línea en
el resultado. Esta opción habilita el modo sin procesar, en el que las barras invertidas no son
procesado.

-s La línea de entrada se guarda en el historial.

Si la entrada es un terminal, tanto el -N y -n las opciones lo ponen en modo crudo; ellos
leer un archivo completo si -1 se pasa como z argumento.

El primer parámetro puede tener un signo de interrogación y una cadena adjunta, en la que
caso de que la cadena se utilice como un indicador (se imprime con un error estándar antes de que cualquier entrada sea
leer) si la entrada es un tty(4) (p. Ej. leer nfoo? 'número of foos: ').

Si no se lee ninguna entrada o se ha agotado el tiempo de espera, leer salidas con un estado distinto de cero.

Otro conjunto de trucos útiles: si leer se ejecuta en un bucle como mientras leer foo; do ...;
hecho luego se eliminarán los espacios en blanco iniciales (IFS) y se procesarán las barras diagonales inversas. Ustedes
podría querer usar mientras IFS = leer -r foo; do ...; hecho para una E / S impecable. Similar,
cuando se usa el -a opción, uso de la -r la opción puede ser prudente; lo mismo aplica
para:

encontrar . -tipo f -print0 | & \
while IFS = read -d '' -pr nombre de archivo; hacer
print -r - "encontrado <$ {filename #. /}>"
hecho

El bucle interno se ejecutará en una subcapa y los cambios de variable no se pueden
propagado si se ejecuta en una canalización:

bar | baz | mientras lee foo; hacer ...; hecho

En su lugar, utilice coprocesos:

bar | baz | &
mientras lee -p foo; hacer ...; hecho
ejecutivo 3> & p; ejecutivo 3> & -

solo lectura [-p] [parámetro [=propuesta de] ...]
Establece el atributo de solo lectura de los parámetros nombrados. Si se dan valores,
los parámetros se establecen en ellos antes de establecer el atributo. Una vez que se crea un parámetro
de solo lectura, no se puede desarmar y su valor no se puede cambiar.

Si no se especifica ningún parámetro, los nombres de todos los parámetros con el parámetro de solo lectura
atributo se imprimen uno por línea, a menos que el -p se utiliza la opción, en cuyo caso
solo lectura Los comandos que definen todos los parámetros de solo lectura, incluidos sus valores, son
impreso.

Realpath [--] nombre
Imprime el nombre de ruta absoluto resuelto correspondiente a nombre . Si nombre termina con un
barra oblicua ('/'), también se verifica su existencia y si es un directorio;
de otra manera, Realpath devuelve 0 si el nombre de ruta existe o se puede crear
inmediatamente, es decir, todos menos el último componente existen y son directorios.

rebautizar [--] en a
Cambia el nombre del archivo en a a. Ambos deben tener nombres de ruta completos y estar en el mismo dispositivo.
Este incorporado está destinado a situaciones de emergencia en las que / bin / mv se vuelve inutilizable, y
directamente llama rebautizar(2).

volvemos [estado]
Retorna de una función o . script, con estado de salida estado. Si no estado es dado,
se utiliza el estado de salida del último comando ejecutado. Si se usa fuera de una función
or . script, tiene el mismo efecto que salida. Tenga en cuenta que mksh trata tanto el perfil como
Archivos ENV como . scripts, mientras que el shell Korn original solo trata los perfiles como .
scripts.

set [+ -abCefhiklmnprsUuvXx] [+ -o opción] [+ -A nombre ] [--] [arg ...]
El set El comando se puede usar para configurar (-) o claro (+) opciones de shell, establezca el posicional
parámetros, o establezca un parámetro de matriz. Las opciones se pueden cambiar usando el + -o opción
sintaxis, donde opción es el nombre largo de una opción, o usando el +-carta sintaxis,
donde carta es el nombre de una sola letra de la opción (no todas las opciones tienen una sola letra
nombre). La siguiente tabla enumera tanto las letras de opción (si existen) como los nombres largos
junto con una descripción de lo que hace la opción:

-A nombre
Establece los elementos del parámetro de matriz. nombre a arg ... If -A Se utiliza, el
la matriz se restablece (es decir, se vacía) primero; Si +A se utiliza, los primeros N elementos se establecen
(donde N es el número de argumentos); el resto se deja intacto.

Una sintaxis alternativa para el comando set -A foo -- a b c que es compatible con
GNU golpear y también es compatible con AT&T UNIX 93 ksh : foo = (a b C); foo + = (d e)

-a | -o exportar
Todos los nuevos parámetros se crean con el atributo de exportación.

-b | -o notificar
Imprima mensajes de notificación de trabajos de forma asincrónica, en lugar de justo antes de la
inmediato. Solo se usa si el control de trabajos está habilitado (-m).

-C | -o no clobber
Evite que la redirección sobrescriba archivos existentes. En cambio,> | debe ser usado
para forzar una sobrescritura. Tenga en cuenta que no es seguro utilizarlo para la creación de
archivos temporales o archivos de bloqueo debido a un TOCTOU en una verificación que permite redirigir
salida a / dev / null u otros archivos de dispositivo incluso en no clobber modo.

-e | -o erresalir
Salir (después de ejecutar la trampa ERR) tan pronto como ocurra un error o un comando
falla (es decir, sale con un estado distinto de cero). Esto no se aplica a los comandos.
cuyo estado de salida es probado explícitamente por una construcción de shell como if, hasta,
mientraso ! declaraciones. Para && o ||, solo el estado del último comando es
probado

-f | -o noglob
No expanda los patrones de nombre de archivo.

-h | -o rastreador
Cree alias de seguimiento para todos los comandos ejecutados (consulte Alias sobre). Activado
de forma predeterminada para shells no interactivos.

-i | -o interactivo
El caparazón es un caparazón interactivo. Esta opción solo se puede utilizar cuando el shell
se invoca. Consulte más arriba para obtener una descripción de lo que esto significa.

-k | -o keyword
Las asignaciones de parámetros se reconocen en cualquier parte de un comando.

-l | -o Inicie sesión
El shell es un shell de inicio de sesión. Esta opción solo se puede utilizar cuando el shell está
invocado. Consulte más arriba para obtener una descripción de lo que esto significa.

-m | -o monitorear
Habilite el control de trabajos (predeterminado para shells interactivos).

-n | -o noexec
No ejecute ningún comando. Útil para comprobar la sintaxis de los scripts (ignorado
si es interactivo).

-p | -o privilegiado
El caparazón es un caparazón privilegiado. Se establece automáticamente si, cuando el shell
comienza, el UID o GID real no coincide con el UID (EUID) o GID efectivo
(EGID), respectivamente. Consulte más arriba para obtener una descripción de lo que esto significa.

-r | -o límite
El caparazón es un caparazón restringido. Esta opción solo se puede utilizar cuando el shell está
invocado. Consulte más arriba para obtener una descripción de lo que esto significa.

-s | -o stdin
Si se usa cuando se invoca el shell, los comandos se leen desde la entrada estándar. Colocar
automáticamente si se invoca el shell sin argumentos.

Cuándo -s se usa con el set comando hace que los argumentos especificados sean
ordenados antes de asignarlos a los parámetros posicionales (oa la matriz nombre , Si
-A se utiliza).

-U | -o modo utf8
Habilite la compatibilidad con UTF-8 en emacs . modo y manejo interno de cuerdas
funciones. Esta bandera está deshabilitada de forma predeterminada, pero se puede habilitar configurándola
en la línea de comandos de la shell; se habilita automáticamente para shells interactivos si
solicitado en tiempo de compilación, su sistema admite establecerlocale(LC_CTYPE, "") y
opcionalmente nl_langinfo(CONJUNTO DE CÓDIGOS), o el entorno LC_ALL, LC_CTYPE o LANG
variables, y al menos una de estas devuelve algo que coincida con "UTF-8" o
“Utf8” no distingue entre mayúsculas y minúsculas; para llamadas directas integradas en función del
variables de entorno antes mencionadas; o para stdin o scripts, si la entrada
comienza con una marca de orden de bytes UTF-8.

En un futuro próximo, se implementará el rastreo de locale, lo que significa que set - + U is
cambia cada vez que cambia una de las variables de entorno relacionadas con la configuración regional POSIX.

-u | -o sustantivo
La referencia a un parámetro no establecido, que no sea "$ @" o "$ *", se trata como una
error, a menos que se utilice uno de los modificadores '-', '+' o '='.

-v | -o verboso
Escriba la entrada de shell en el error estándar a medida que se lee.

-X | -o Markdirs
Marque los directorios con una '/' al final durante la generación del nombre de archivo.

-x | -o xtrace
Imprime árboles de comandos cuando se ejecutan, precedidos por el valor de PS4.

-o bonito
Los trabajos en segundo plano se ejecutan con menor prioridad.

-o corséexpandir
Habilite la expansión de llaves (también conocida como alternancia). Esto está habilitado por defecto. Si
desactivada, la expansión de tilde después de un signo igual se desactiva como efecto secundario.

-o emacs
Habilitar la edición de línea de comandos tipo BRL emacs (solo shells interactivos); ver emacs
. modo.

-o gmacs
Habilite la edición de línea de comandos similar a gmacs (solo shells interactivos). Actualmente
idéntica a la edición de emacs excepto que transpose-chars (^ T) actúa ligeramente
de manera diferente.

-o ignorante de
El shell no se cerrará (fácilmente) cuando se lea el final del archivo; salida debe ser usado.
Para evitar bucles infinitos, el shell se cerrará si EOF se lee 13 veces seguidas.

-o heredar-xtrace
No resetear -o xtrace al entrar en funciones. Esto está habilitado por defecto.

-o nohup
No elimine los trabajos en ejecución con una señal SIGHUP cuando sale un shell de inicio de sesión.
Actualmente configurado de forma predeterminada, pero esto puede cambiar en el futuro para ser compatible
con AT&T UNIX ksh, que no tiene esta opción, pero envía el SIGHUP
señal.

-o nolog
Sin efecto. En el shell Korn original, esto evita que las definiciones de funciones
almacenándose en el archivo histórico.

-o los libros físicos
Causa el cd y pwd comandos para usar "físico" (es decir, el sistema de archivos) '..'
directorios en lugar de directorios "lógicos" (es decir, el shell maneja '..', que
permite al usuario ignorar los enlaces simbólicos a directorios). Borrar por
defecto. Tenga en cuenta que la configuración de esta opción no afecta el valor actual de la
Parámetro PWD; Solo el cd comando cambia PWD. Ver el cd y pwd comandos
arriba para más detalles.

-o tubería
Hacer el estado de salida de una tubería (antes de complementar lógicamente) el
nivel de error distinto de cero situado más a la derecha, o cero si todos los comandos salieron con cero.

-o POSIX
Comportarse más cerca de los estándares (ver POSIX modo para detalles). Automáticamente
habilitado si el nombre base de la invocación del shell comienza con "sh" y esto
La función de autodetección está compilada (no en MirBSD). Como efecto secundario, el establecimiento
esta bandera se apaga corséexpandir modo, que se puede volver a activar manualmente, y
sh modo (a menos que ambos estén habilitados al mismo tiempo).

-o sh
permitir / Bin / sh (kludge) modo (ver SH modo). Se habilita automáticamente si el
el nombre base de la invocación de shell comienza con "sh" y esta función de autodetección
está compilado en (no en MirBSD). Como efecto secundario, configurar esta bandera se apaga
corséexpandir modo, que se puede volver a activar manualmente, y POSIX modo (a menos que
ambos están habilitados al mismo tiempo).

-o vi
permitir vi(1) -como edición de línea de comandos (solo shells interactivos). Ver Vi
. modo para documentación y limitaciones.

-o vi-escompleto
En la edición de la línea de comandos de vi, complete el comando y el nombre del archivo cuando escape (^ [)
se ingresa en modo comando.

-o vi-tabcompleta
En la edición de la línea de comandos vi, complete el comando y el nombre del archivo cuando la pestaña (^ I) esté
ingresado en el modo de inserción. Este es el predeterminado.

-o Viraw
Sin efecto. En el caparazón de Korn original, a menos que Viraw se configuró, el comando vi-
el modo de línea dejaría que el tty(4) el conductor haga el trabajo hasta que se ingrese ESC (^ [).
mksh siempre está en modo viraw.

Estas opciones también se pueden utilizar tras la invocación del shell. El conjunto actual de
Las opciones (con nombres de una sola letra) se pueden encontrar en el parámetro '$ -'. set -o
ningún nombre de opción enumerará todas las opciones y si cada una está activada o desactivada; set +o seguirá
imprime los nombres largos de todas las opciones que están actualmente activadas. En una versión futura, set
+o se comportará compatible con POSIX e imprimirá comandos para restaurar las opciones actuales
preferiblemente.

Los argumentos restantes, si los hay, son parámetros posicionales y se asignan, en orden, a
los parámetros posicionales (es decir, $ 1, $ 2, etc.). Si las opciones terminan con '-' y no
no quedan argumentos, se borran todos los parámetros posicionales. Si no hay opciones o
se dan argumentos, se imprimen los valores de todos los nombres. Por histórico desconocido
razones, una sola opción '-' se trata de manera especial: borra tanto la -v y -x
.

Turno [número]
Los parámetros posicionales número+ 1, número+2, etc. se renombran a '1', '2', etc.
número el valor predeterminado es 1.

sueño segundos
Suspende la ejecución por un mínimo del segundos especificado como valor decimal positivo
con una parte fraccionaria opcional. La entrega de señal puede continuar la ejecución antes.

fuente presentar [arg ...]
Me gusta . ("Punto"), excepto que el directorio de trabajo actual se agrega a la búsqueda
camino (GNU golpear extensión).

suspender
Detiene el shell como si hubiera recibido el carácter de suspensión del terminal. Está
No es posible suspender un shell de inicio de sesión a menos que el proceso padre sea miembro del
misma sesión de terminal pero es miembro de un grupo de proceso diferente. Como general
regla, si el shell fue iniciado por otro shell o vía su(1), se puede suspender.

test expresión
[ expresión ]
test evalúa el expresión y devuelve el estado cero si es verdadero, 1 si es falso o mayor
que 1 si hubo un error. Normalmente se utiliza como comando de condición de if y
mientras declaraciones. Se siguen enlaces simbólicos para todos presentar expresiones excepto -h y
-L.

Están disponibles las siguientes expresiones básicas:

-a presentar presentar existe.

-b presentar presentar es un dispositivo especial de bloque.

-c presentar presentar es un dispositivo especial de carácter.

-d presentar presentar es un directorio.

-e presentar presentar existe.

-f presentar presentar es un archivo normal.

-G presentar presentarEl grupo es el ID de grupo efectivo del shell.

-g presentar presentarEl modo de 'tiene el bit setgid establecido.

-H presentar presentar es un directorio dependiente del contexto (solo útil en HP-UX).

-h presentar presentar es un enlace simbólico.

-k presentar presentarEl modo de tiene el pegajoso(8) bit establecido.

-L presentar presentar es un enlace simbólico.

-O presentar presentarEl propietario es el ID de usuario efectivo del shell.

-o opción Cáscara opción está configurado (ver el set comando anterior para obtener una lista de
opciones). Como extensión no estándar, si la opción comienza con
un '!', la prueba se niega; la prueba siempre falla si opción
no existe (entonces [-o foo -o -o! foo] devuelve verdadero si y solo
si opción foo existe). Lo mismo se puede lograr con [-o? Foo]
como en AT&T UNIX 93 ksh. opción también puede ser la bandera corta liderada por
ya sea '-' o '+' (sin negación lógica), por ejemplo '-x' o '+ x'
en lugar de 'xtrace'.

-p presentar presentar es una tubería con nombre (FIFO).

-r presentar presentar existe y es legible.

-S presentar presentar es un UNIX(4) -socket de dominio.

-s presentar presentar no está vacío.

-t fd Descriptor de archivo fd es un tty(4) dispositivo.

-u presentar presentarEl modo de 'tiene el bit setuid establecido.

-w presentar presentar existe y se puede escribir.

-x presentar presentar existe y es ejecutable.

file1 -Nuevo Testamento file2 file1 es más nuevo que file2 or file1 existe y file2 no.

file1 -Antiguo Testamento file2 file1 es más viejo que file2 or file2 existe y file1 no.

file1 -ef file2 file1 es el mismo archivo que file2.

cadena cadena tiene una longitud distinta de cero.

-n cadena cadena no está vacío.

-z cadena cadena esta vacio.

cadena = cadena Las cadenas son iguales.

cadena == cadena Las cadenas son iguales.

cadena > cadena El primer operando de cadena es mayor que el segundo operando de cadena.

cadena < cadena El primer operando de cadena es menor que el segundo operando de cadena.

cadena != cadena Las cadenas no son iguales.

número -eq número Los números se comparan iguales.

número -n número Los números no se comparan iguales.

número -ge número Los números se comparan mayores o iguales.

número -gt número Los números se comparan mayores que.

número -El número Los números se comparan menores o iguales.

número -lt número Los números se comparan con menos de.

Las expresiones básicas anteriores, en las que los operadores unarios tienen prioridad sobre los binarios.
operadores, pueden combinarse con los siguientes operadores (enumerados en orden creciente
de precedencia):

expr -o expr OR lógico.
expr -a expr Y lógico.
! expr NO lógico.
(expr) Agrupación.

Tenga en cuenta que un número en realidad puede ser una expresión aritmética, como una
término o el nombre de una variable entera:

x = 1; ["x" -eq 1] se evalúa como verdadero

Tenga en cuenta que se aplican algunas reglas especiales (cortesía de POSIX) si el número de
argumentos a test o dentro de los corchetes [ ... ] es menor que cinco: si lidera '!'
los argumentos pueden ser eliminados de modo que solo queden de uno a tres argumentos, entonces el
se ejecuta la comparación reducida; (gracias a XSI) paréntesis \( ... \) cuatro inferiores y
formas de tres argumentos a formas de dos y un argumento, respectivamente; tres argumentos
En última instancia, las formas prefieren operaciones binarias, seguidas de negación y paréntesis.
encapotado; las formas de dos y cuatro argumentos prefieren la negación seguida de paréntesis; el
la forma de un argumento siempre implica -n.

Note: Un error común es usar "if [$ foo = bar]" que falla si el parámetro "foo"
es NULL o no establecido, si tiene espacios incrustados (es decir, octetos IFS), o si es unario
operador como '!' o '-n'. Utilice pruebas como "if [x" $ foo "= x" bar "]” en su lugar, o el
operador de doble corchete "if [[$ foo = bar]]" o, para evitar la coincidencia de patrones (ver [[
arriba): “if [[$ foo =" $ bar "]]”

El [[ ... ]] construct no solo es más seguro de usar, sino que también suele ser más rápido.

equipo [-p] [industrial]
Si un industrial se da, se informan los tiempos utilizados para ejecutar la tubería. Si no
se da la canalización, luego el usuario y el tiempo del sistema utilizado por el propio shell, y todos
se informan los comandos que ha ejecutado desde que se inició. Los tiempos informados son
el tiempo real (tiempo transcurrido de principio a fin), el tiempo de CPU del usuario (tiempo empleado
ejecutándose en modo de usuario) y el tiempo de CPU del sistema (tiempo empleado en ejecución en modo kernel).
Los tiempos se informan con error estándar; el formato de la salida es:

0m0.00s real 0m0.00s usuario 0m0.00s sistema

Si -p se da la opción de la salida es un poco más larga:

0.00 real
usuario 0.00
sistema 0.00

Es un error especificar el -p opción a menos que industrial es un comando simple.

Las redirecciones simples de error estándar no afectan la salida del equipo mando:

$ time sleep 1 2> afile
$ {tiempo de sueño 1; } 2> afile

Los tiempos para el primer comando no van a “un archivo”, pero los del segundo comando sí.

veces Imprima los tiempos acumulados del usuario y del sistema utilizados tanto por el shell como por los procesos
que arrancó el caparazón que ha salido. El formato de la salida es:

0 min 0.00 s 0 min 0.00 s
0 min 0.00 s 0 min 0.00 s

trampa n [señal ...]
Si el primer operando es un entero decimal sin signo, esto restablece todas las señales especificadas
a la acción predeterminada, es decir, es lo mismo que llamar trampa con un signo menos ('-') como
entrenador de animales, seguido de los argumentos (n [señal ...]), todos los cuales se tratan como


trampa [entrenador de animales señal ...]
Establece un controlador de trampas que se ejecutará cuando alguno de los señals son
recibido. entrenador de animales es una cadena vacía, lo que indica que las señales deben ser
ignorado, un signo menos ('-'), que indica que la acción predeterminada se debe tomar para
las señales (ver señal(3)), o una cadena que contiene comandos de shell que se ejecutarán en
la primera oportunidad (es decir, cuando se completa el comando actual o antes de imprimir
el siguiente mensaje de PS1) después de recibir una de las señales. señal es el nombre de un
señal (por ejemplo, PIPE o ALRM) o el número de la señal (consulte el matar -l comando
encima).

Hay dos señales especiales: EXIT (también conocida como 0), que se ejecuta cuando el
shell está a punto de salir, y ERR, que se ejecuta después de que ocurre un error; un error es
algo que haría que el shell saliera si el set -e or set -o erresalir opción
fueron puestos. Los controladores EXIT se ejecutan en el entorno del último ejecutado
mando.

Tenga en cuenta que, para shells no interactivos, el controlador de trampas no se puede cambiar para señales
que fueron ignorados cuando comenzó el shell.

Sin argumentos, el estado actual de las trampas que se han establecido desde el shell
iniciado se muestra como una serie de trampa comandos. Tenga en cuenta que la salida de trampa no puede
ser útilmente canalizado a otro proceso (un artefacto del hecho de que las trampas se eliminan
cuando se crean subprocesos).

La trampa DEBUG del caparazón Korn original y el manejo de las trampas ERR y EXIT en
las funciones aún no están implementadas.

verdadero Un comando que sale con un valor cero.

global [[+ -alpnrtUux] [-L[n]] [-R[n]] [-Z[n]] [-i[n]] | -f [-esmoquin]] [nombre [=propuesta de] ...]
compilado [[+ -alpnrtUux] [-LRZ[n]] [-i[n]] | -f [-esmoquin]] [nombre [=propuesta de] ...]
Mostrar o establecer atributos de parámetros. Sin nombre argumentos, atributos de parámetro
son mostrados; si no se utilizan opciones, los atributos actuales de todos los parámetros son
impreso como compilado comandos; si se da una opción (o '-' sin letra de opción),
se imprimen todos los parámetros y sus valores con los atributos especificados; si opciones
se introducen con '+', los valores de los parámetros no se imprimen.

If nombre se dan argumentos, se establecen los atributos de los parámetros nombrados (-) o
despejado+). Opcionalmente, se pueden especificar valores para los parámetros. Para nombre [*], el
el cambio afecta a toda la matriz y no se puede especificar ningún valor.

If compilado se utiliza dentro de una función, los parámetros especificados se localizan. Esta
no se hace por lo de otro modo idéntico global. Note: Esto significa que mksh 's global
el comando es no equivalente a otros lenguajes de programación 'ya que no permite un
función llamada desde otra función para acceder a un parámetro en un alcance verdaderamente global,
pero solo evita poner un acceso al alcance local.

Cuándo -f es usado compilado opera sobre los atributos de las funciones. Al igual que con
parámetros, si no nombre se dan argumentos, las funciones se enumeran con sus valores
(es decir, definiciones) a menos que las opciones se introduzcan con '+', en cuyo caso
se informan los nombres de las funciones.

-a Atributo de matriz indexada.

-f Modo de funcionamiento. Mostrar o configurar funciones y sus atributos, en lugar de
parámetros.

-i[n] Atributo de número entero. n especifica la base que se utilizará al mostrar el número entero
(si no se especifica, se utiliza la base dada en la primera asignación).
A los parámetros con este atributo se les pueden asignar valores que contengan aritmética
expresiones

-L[n] Atributo de justificación a la izquierda. n especifica el ancho del campo. Si n no está especificado,
el ancho actual de un parámetro (o el ancho de su primer valor asignado)
se utiliza. Espacio en blanco inicial (y ceros, si se usa con el -Z opción) es
despojado. Si es necesario, los valores se truncan o se rellenan con un espacio para que quepan
el ancho del campo.

-l Atributo de minúsculas. Todos los caracteres en mayúsculas de los valores se convierten a
minúscula. (En el shell Korn original, este parámetro significaba "entero largo"
cuando se usa con el -i opción.)

-n Crear una variable vinculada (referencia de nombre): cualquier acceso a la variable nombre
accederá a la variable propuesta de en el alcance actual (esto es diferente de
AT&T UNIX 93 ksh!) en lugar de. También diferente de AT&T UNIX 93 ksh es que
propuesta de se evalúa perezosamente en ese momento nombre se accede. Esto puede ser utilizado por
funciones para acceder a las variables cuyos nombres se pasan como parámetros, en su lugar
de uso eval.

-p Impresión completa compilado comandos que se pueden utilizar para recrear los atributos
y valores de los parámetros.

-R[n] Atributo de justificación a la derecha. n especifica el ancho del campo. Si n no es
especificado, el ancho actual de un parámetro (o el ancho de su primer
valor asignado). Los espacios en blanco finales se eliminan. Si necesario,
los valores se eliminan de los caracteres iniciales o se rellenan con espacios para hacerlos
ajustar el ancho del campo.

-r Atributo de solo lectura. Los parámetros con este atributo no se pueden asignar a
o desarmado. Una vez que se establece este atributo, no se puede desactivar.

-t Atributo de etiqueta. No tiene ningún significado para el caparazón; proporcionado para el uso de la aplicación.

Para funciones, -t es el atributo de seguimiento. Cuando funciona con el rastro
se ejecutan el atributo, el xtrace (-x) la opción de shell se activa temporalmente
en.

-U Atributo de entero sin signo. Los enteros se imprimen como valores sin firmar (combinar
con el -i opción). Esta opción no está en el shell Korn original.

-u Atributo de mayúsculas. Todos los caracteres en minúscula de los valores se convierten a
mayúsculas. (En el shell Korn original, este parámetro significaba "sin firmar
entero "cuando se usa con el -i opción que significaba letras mayúsculas
nunca se utilice para bases mayores de 10. Consulte la -U opción.)

Para funciones, -u es el atributo indefinido. Ver Clave arriba para el
implicaciones de esto.

-x Exportar atributo. Los parámetros (o funciones) se colocan en el entorno de
cualquier comando ejecutado. Las funciones exportadas aún no están implementadas.

-Z[n] Atributo de llenado cero. Si no se combina con -L, esto es lo mismo que -R, excepto
Se utiliza relleno de ceros en lugar de relleno de espacio. Para enteros, el número
en lugar de la base está acolchada.

Si alguno de los -i, -L, -l, -R, -U, -uo -Z se cambian las opciones, todas las demás de este
set se borran, a menos que también se proporcionen en la misma línea de comando.

ulimit [-aBCcdefHilMmnOPpqrSsTtVvw] [propuesta de]
Mostrar o establecer límites de proceso. Si no se utilizan opciones, el límite de tamaño del archivo (-f) es
ficticio. propuesta de, si se especifica, puede ser una expresión aritmética o la palabra
"ilimitado". Los límites afectan el caparazón y cualquier proceso creado por el caparazón.
después de que se impone un límite. Tenga en cuenta que es posible que algunos sistemas no permitan
aumenta una vez que se establecen. También tenga en cuenta que los tipos de límites disponibles son del sistema.
dependiente: algunos sistemas solo tienen -f límite.

-a Mostrar todos los límites; a no ser que -H se utiliza, se muestran los límites suaves.

-B n Establezca el tamaño del búfer de socket en n kibibytes.

-C n Establezca el número de subprocesos almacenados en caché en n.

-c n Imponer un límite de tamaño de n bloques en el tamaño de los volcados de memoria.

-d n Imponer un límite de tamaño de n kibibytes sobre el tamaño del área de datos.

-e n Establezca la máxima amabilidad en n.

-f n Imponer un límite de tamaño de n bloques en archivos escritos por el shell y su hijo
procesos (se pueden leer archivos de cualquier tamaño).

-H Establezca solo el límite estricto (el valor predeterminado es establecer límites rígidos y blandos).

-i n Establezca el número de señales pendientes para n.

-l n Imponer un límite de n kibibytes en la cantidad de memoria física bloqueada (cableada).

-M n Configure la memoria bloqueada AIO en n kibibytes.

-m n Imponer un límite de n kibibytes sobre la cantidad de memoria física utilizada.

-n n Imponer un límite de n descriptores de archivo que se pueden abrir a la vez.

-O n Establezca el número de operaciones AIO para n.

-P n Limite el número de subprocesos por proceso a n.

-p n Imponer un límite de n procesos que puede ejecutar el usuario en cualquier momento.

-q n Limite el tamaño de las colas de mensajes POSIX a n bytes

-r n Establezca la máxima prioridad en tiempo real en n.

-S Establezca solo el límite suave (el valor predeterminado es establecer límites rígidos y suaves).

-s n Imponer un límite de tamaño de n kibibytes sobre el tamaño del área de la pila.

-T n Imponer un límite de tiempo de n segundos reales a ser utilizados por cada proceso.

-t n Imponer un límite de tiempo de n Segundos de CPU gastados en modo de usuario para ser utilizados por cada
.

-V n Establezca el número de monitores vnode en Haiku en n.

-v n Imponer un límite de n kibibytes en la cantidad de memoria virtual (espacio de direcciones)
usado.

-w n Imponer un límite de n kibibytes sobre la cantidad de espacio de intercambio utilizado.

Hasta ulimit se refiere, un bloque es de 512 bytes.

umask [-S] [máscara]
Muestre o establezca la máscara de creación de permisos de archivo o umask (consulte umask(2)). Si el -S
se utiliza la opción, la máscara mostrada o configurada es simbólica; de lo contrario, es un octal
número.

Las máscaras simbólicas son como las utilizadas por chmod(1). Cuando se usan, describen lo que
los permisos pueden estar disponibles (a diferencia de las máscaras octales en las que un bit establecido significa
se borrará el bit correspondiente). Por ejemplo, "ug = rwx, o =" establece la máscara para
los archivos no serán legibles, escribibles o ejecutables por "otros", y es equivalente
(en la mayoría de los sistemas) a la máscara octal "007".

unalias [-anuncio] [nombre ...]
Se eliminan los alias de los nombres de pila. Si el -a se utiliza la opción, todos los alias
son removidos. Si el -t or -d se utilizan las opciones, se realizan las operaciones indicadas
en los alias de directorio o rastreados, respectivamente.

desarmado [-fv] parámetro ...
Anule la configuración de los parámetros nombrados (-v, el predeterminado) o funciones (-f). Con parámetro[*],
los atributos se mantienen, solo los valores se anulan.

El estado de salida es distinto de cero si alguno de los parámetros tiene el atributo de solo lectura
establecido, cero en caso contrario.

esperar [trabajo ...]
Espere a que finalicen los trabajos especificados. El estado de salida de esperar es el del ultimo
trabajo especificado; Si el último trabajo es cancelado por una señal, el estado de salida es 128 + el
número de la señal (ver matar -l estado de salida sobre); si el último trabajo especificado no puede
ser encontrado (porque nunca existió, o ya había terminado), el estado de salida de esperar
es 127. Ver Trabajos control a continuación para el formato de trabajo. esperar Regresará si una señal
para el que se ha establecido una trampa, o si se recibe una señal SIGHUP, SIGINT o SIGQUIT
Esta recibido.

Si no se especifican trabajos, esperar espera a que todos los trabajos en ejecución (si los hay)
Termina y sale con un estado cero. Si la supervisión del trabajo está habilitada, la finalización
Se imprime el estado de los trabajos (este no es el caso cuando los trabajos se especifican explícitamente).

De dónde [-pv] [nombre ...]
Sin el -v opción, es lo mismo que comando -v, excepto que los alias no se imprimen
como comando de alias. Con el -v opción, es exactamente lo mismo que comando -V. En
en cualquier caso, el -p La opción difiere: la ruta de búsqueda no se ve afectada en De dónde, pero
la búsqueda se limita a la ruta.

Trabajos control
El control de trabajos se refiere a la capacidad del shell para monitorear y controlar trabajos que son procesos o
grupos de procesos creados para comandos o canalizaciones. Como mínimo, el caparazón realiza un seguimiento
del estado de los trabajos en segundo plano (es decir, asincrónicos) que existen actualmente; esta
la información se puede mostrar utilizando el recibas nuevas vacantes en tu correo comandos. Si el control de trabajos está completamente habilitado
(utilizando set -m or set -o monitorear), como ocurre con los shells interactivos, los procesos de un trabajo
se colocan en su propio grupo de procesos. Los trabajos en primer plano se pueden detener escribiendo suspend
carácter desde la terminal (normalmente ^ Z), los trabajos se pueden reiniciar en primer plano o en
fondo usando el fg y bg comandos, y el estado del terminal se guarda o se restaura
cuando se detiene o reinicia un trabajo en primer plano, respectivamente.

Tenga en cuenta que solo los comandos que crean procesos (por ejemplo, comandos asincrónicos, subshell
comandos y comandos no integrados y sin función) se pueden detener; comandos como leer no puede
ser.

Cuando se crea un trabajo, se le asigna un número de trabajo. Para proyectiles interactivos, este número es
impreso dentro de "[..]", seguido de los ID de proceso de los procesos en el trabajo cuando un
Se ejecuta el comando asincrónico. Se puede hacer referencia a un trabajo en el bg, fg, recibas nuevas vacantes en tu correo, matary esperar
comandos ya sea por el ID de proceso del último proceso en la canalización de comandos (como se almacena en
las $! parámetro) o prefijando el número de trabajo con un signo de porcentaje ('%'). Otro porcentaje
Las secuencias también se pueden utilizar para referirse a trabajos:

% + | %% | % El trabajo detenido más recientemente o, si no hay trabajos detenidos, el más antiguo
trabajo en ejecución.

% - El trabajo que sería el %+ trabajo si este último no existiera.

%n El trabajo con número de trabajo n.

%?cadena El trabajo con su comando que contiene la cadena cadena (se produce un error si
coinciden varios trabajos).

%cadena El trabajo con su comando comenzando con la cadena cadena (se produce un error si
coinciden varios trabajos).

Cuando un trabajo cambia de estado (por ejemplo, un trabajo en segundo plano finaliza o se detiene un trabajo en primer plano),
shell imprime la siguiente información de estado:

[número] bandera estado comando

donde ...

número es el número de trabajo del trabajo;

bandera es el carácter '+' o '-' si el trabajo es el %+ or %- trabajo, respectivamente, o espacio
si no es ninguno;

estado indica el estado actual del trabajo y puede ser:

Hecho [número]
El trabajo terminó. número es el estado de salida del trabajo que se omite
si el estado es cero.

En ejecución El trabajo no se ha detenido ni ha salido (tenga en cuenta que la ejecución no
necesariamente significa consumir tiempo de CPU: el proceso podría bloquearse
esperando algún evento).

Detenido [señal]
El trabajo fue detenido por el indicado señal (si no se da ninguna señal, el
trabajo fue detenido por SIGTSTP).

descripción-señal ["Núcleo vertido"]
El trabajo fue cancelado por una señal (por ejemplo, falla de memoria, colgado); usar matar -l
para obtener una lista de descripciones de señales. El mensaje "núcleo vertido" indica
el proceso creó un archivo central.

comando es el comando que creó el proceso. Si hay varios procesos en el
trabajo, cada proceso tendrá una línea que muestra su comando y posiblemente su estado, Si
es diferente del estado del proceso anterior.

Cuando se intenta salir del shell mientras hay trabajos en el estado detenido, el
shell advierte al usuario que hay trabajos detenidos y no sale. Si otro intento es
inmediatamente para salir del shell, los trabajos detenidos reciben una señal SIGHUP y el shell
salidas. Del mismo modo, si el nohup La opción no está configurada y hay trabajos en ejecución cuando se intenta
se hace para salir de un shell de inicio de sesión, el shell advierte al usuario y no sale. Si otro
inmediatamente se hace un intento de salir del shell, los trabajos en ejecución reciben una señal SIGHUP y
sale el caparazón.

POSIX modo
Entrando set -o POSIX el modo causará mksh para comportarse aún más compatible con POSIX en lugares
donde los valores predeterminados u opiniones difieren. Tenga en cuenta que mksh seguirá funcionando con unsigned
Aritmética de 32 bits; usar lksh si la aritmética en el anfitrión Corto tipo de datos, completo con ISO C
Comportamiento indefinido, son obligatorios; referirse a lksh(1) página de manual para más detalles. Mayoría de los demás
histórico, AT&T UNIX ksh-Las diferencias compatibles o de opinión se pueden deshabilitar utilizando este
modo; estos son:

· El GNU golpear Redirección de E / S &>presentar ya no es compatible.

· Los descriptores de archivo creados por redirecciones de E / S son heredados por procesos secundarios.

· Los números con un dígito inicial cero se interpretan como octales.

· El echo incorporado no interpreta las barras invertidas y solo admite la opción exacta "-n.

· ... (la lista está incompleta y puede cambiar para R53)

SH modo
Modo de compatibilidad; diseñado para su uso con scripts heredados que no se pueden arreglar fácilmente; el
los cambios son los siguientes:

· El GNU golpear Redirección de E / S &>presentar ya no es compatible.

· Los descriptores de archivo creados por redirecciones de E / S son heredados por procesos secundarios.

· El echo incorporado no interpreta las barras invertidas y solo admite la opción exacta "-n.

· ... (la lista está incompleta y puede cambiar para R53)

Formulario Las opciones de entrada línea .
El shell admite tres modos de leer líneas de comando desde un tty(4) en un interactivo
sesión, controlada por el emacs, gmacsy vi opciones (como máximo, una de estas se puede establecer en
una vez). El valor predeterminado es emacs. Los modos de edición se pueden configurar explícitamente usando el set incorporado.
Si ninguna de estas opciones está habilitada, el shell simplemente lee las líneas usando el tty(4)
conductor. Si el emacs or gmacs está configurada la opción, el shell permite la edición similar a emacs del
mando; de manera similar, si el vi está configurada la opción, el shell permite la edición similar a vi de la
mando. Estos modos se describen en detalle en las siguientes secciones.

En estos modos de edición, si una línea es más larga que el ancho de la pantalla (ver COLUMNAS
parámetro), se muestra un carácter '>', '+' o '<' en la última columna que indica que
hay más caracteres después, antes y después o antes de la posición actual,
respectivamente. La línea se desplaza horizontalmente según sea necesario.

Las líneas completadas se insertan en el historial, a menos que comiencen con un octeto IFS o IFS
espacio en blanco, o son iguales a la línea anterior.

emacs . modo
Cuando el emacs está configurada la opción, la edición de línea de entrada interactiva está habilitada. Advertencia: este modo
es ligeramente diferente del modo emacs en el shell Korn original. En este modo, varios
Los comandos de edición (normalmente vinculados a uno o más caracteres de control) provocan acciones inmediatas
sin esperar una nueva línea. Varios comandos de edición están vinculados a un control particular
caracteres cuando se invoca el shell; estos enlaces se pueden cambiar usando el se unen mando.

La siguiente es una lista de los comandos de edición disponibles. Cada descripción comienza con el
nombre del comando, con el sufijo de dos puntos; un [n] (si el comando puede tener el prefijo
contar); y cualquier tecla a la que esté vinculado el comando de forma predeterminada, escrito con notación de intercalación, por ejemplo
el carácter ASCII ESC se escribe como ^ [. Estas secuencias de control no distinguen entre mayúsculas y minúsculas.
Se ingresa un prefijo de conteo para un comando usando la secuencia ^ [n, Donde n es una secuencia de 1
o más dígitos. A menos que se especifique lo contrario, si se omite un recuento, el valor predeterminado es 1.

Tenga en cuenta que los nombres de los comandos de edición se utilizan se unen mando. Además, muchos
Los comandos de edición son útiles solo en terminales con un cursor visible. Los enlaces predeterminados
fueron elegidos para parecerse a las correspondientes combinaciones de teclas de Emacs. Los usuarios tty(4) caracteres
(por ejemplo, ERASE) están vinculados a sustitutos razonables y anulan los enlaces predeterminados.

cancelar: ^C, ^G
Abortar el comando actual, vaciar el búfer de línea y establecer el estado de salida en
interrumpido

inserción automática: [n]
Simplemente hace que el carácter aparezca como entrada literal. Personajes más ordinarios
están vinculados a esto.

char al revés: [n] ^B, ^XD, ANSI-CurLeft, PC-CurLeft
Mueve el cursor hacia atrás n personajes.

palabra al revés: [n] ^[b, ANSI-Ctrl-CurLeft, ANSI-Alt-CurLeft
Mueve el cursor hacia atrás al principio de la palabra; las palabras consisten en
caracteres alfanuméricos, guión bajo ('_') y signo de dólar ('$').

comienzo de la historia: ^[
Se traslada al comienzo de la historia.

comienzo de línea: ^A, ANSI-Inicio, PC-Inicio
Mueve el cursor al principio de la línea de entrada editada.

mayúscula-palabra: [n] ^[C, ^[c
Mayúsculas el primer carácter del siguiente n palabras, dejando el cursor más allá del final
de la última palabra.

pantalla clara: ^ [^ L
Imprime una secuencia configurable en tiempo de compilación para borrar la pantalla y colocar el cursor en el hogar,
vuelve a dibujar todo el indicador y la línea de entrada editada actualmente. La secuencia predeterminada
funciona para casi todos los terminales estándar.

comentario: ^[#
Si la línea actual no comienza con un carácter de comentario, se agrega uno al
principio de la línea y se ingresa la línea (como si se hubiera presionado la tecla de retorno);
de lo contrario, los caracteres de comentario existentes se eliminan y el cursor se coloca en
el comienzo de la línea.

completo: ^ [^ [
Completa automáticamente todo lo que sea exclusivo del nombre del comando o del nombre del archivo
que contiene el cursor. Si todo el comando restante o el nombre de archivo es único,
el espacio se imprime después de su finalización, a menos que sea un nombre de directorio, en cuyo caso
Se añade '/'. Si no hay ningún comando o nombre de archivo con la palabra parcial actual
como prefijo, se emite un carácter de campana (normalmente provocando que suene un pitido).

comando completo: ^X^[
Completa automáticamente tanto como sea único del nombre de comando que tiene el parcial
palabra hasta el cursor como su prefijo, como en el completar comando anterior.

archivo completo: ^[^X
Completa automáticamente tanto como sea único del nombre de archivo que tiene el parcial
palabra hasta el cursor como su prefijo, como en el completar comando descrito anteriormente.

lista-completa: ^I, ^[=
Complete tanto como sea posible de la palabra actual y enumere las posibles
terminaciones para ello. Si solo es posible una finalización, haga coincidir como en el completar
comando de arriba. Tenga en cuenta que ^I generalmente se genera con la tecla TAB (tabulador).

eliminar-char-hacia atrás: [n] BORRAR, ^?, ^H
Elimina n caracteres antes del cursor.

eliminar-char-reenviar: [n] ANSI-Del, PC-Del
Elimina n caracteres después del cursor.

borrar-palabra-al revés: [n] WERASE, ^[^?, ^[^H, ^[h
Elimina n palabras antes del cursor.

eliminar-palabra-reenviar: [n] ^[d
Elimina caracteres después del cursor hasta el final de n palabras.

historia abajo: [n] ^N, ^XB, ANSI-CurDown, PC-CurDown
Desplaza el búfer de historial hacia adelante n líneas (más adelante). Cada línea de entrada originalmente
comienza justo después de la última entrada en el búfer de historial, por lo que abajo de la historia no es
útil hasta que cualquiera buscar Historia, historial de búsqueda or historia arriba ha sido
realizado.

palabra-minúscula: [n] ^[l, ^[l
Minúsculas el siguiente n palabras.

línea de edición: [n] ^X
Editar línea n o la línea actual, si no se especifica, de forma interactiva. El actual
el comando ejecutado es fc -e $ {VISUAL: - $ {EDITOR: -vi}} n.

fin-de-la-historia: ^[>
Se mueve al final de la historia.

fin de línea: ^E, ANSI-End, PC-End
Mueve el cursor al final de la línea de entrada.

eot: ^ _
Actúa como un final de archivo; esto es útil porque la entrada en modo de edición desactiva la normalidad
canonicalización de entrada de terminal.

eot-o-eliminar: [n]^D
Actúa como EOT si está solo en una línea; de lo contrario actúa como eliminar-char-adelante.

error: (no limitado)
Error (tocar el timbre).

intercambio-punto-y-marca: ^ X ^ X
Coloca el cursor donde está la marca y establece la marca donde estaba el cursor.

expand-file: ^ [*
Agrega un '*' a la palabra actual y reemplaza la palabra con el resultado de
Realización de globbing de archivos en la palabra. Si ningún archivo coincide con el patrón, la campana se
peldaño.

adelante-char: [n] ^F, ^XC, ANSI-CurDerecha, PC-CurDerecha
Mueve el cursor hacia adelante n personajes.

palabra adelante: [n] ^ [f, ANSI-Ctrl-CurRight, ANSI-Alt-CurRight
Mueve el cursor hacia adelante hasta el final de la na palabra.

ir a la historia: [n] ^[g
Va al número de historial n.

línea de muerte: MATAR
Elimina toda la línea de entrada.

matar-región: ^W
Elimina la entrada entre el cursor y la marca.

matar a eol: [n] ^ K
Elimina la entrada desde el cursor hasta el final de la línea si n no se especifica;
de lo contrario, elimina los caracteres entre el cursor y la columna n.

lista: ^ [?
Imprime una lista ordenada y en columnas de nombres de comandos o nombres de archivos (si los hay) que pueden
completar la palabra parcial que contiene el cursor. Los nombres de los directorios tienen '/' añadido
a ellos.

comando de lista: ^ X?
Imprime una lista ordenada y en columnas de nombres de comandos (si los hay) que pueden completar el
palabra parcial que contiene el cursor.

archivo de lista: ^X^Y
Imprime una lista ordenada y en columnas de nombres de archivos (si los hay) que pueden completar el
palabra parcial que contiene el cursor. Los indicadores de tipo de archivo se adjuntan como se describe
bajo lista anterior.

nueva línea: ^J, ^M
Hace que la línea de entrada actual sea procesada por el shell. El cursor actual
la posición puede estar en cualquier lugar de la línea.

nueva línea y siguiente: ^ O
Hace que la línea de entrada actual sea procesada por el shell y la siguiente línea de
la historia se convierte en la línea actual. Esto sólo es útil después de un historia arriba,
buscar Historia or historial de búsqueda.

no-op: SALIR
Esto no hace nada.

prefijo-1: ^[
Introduce una secuencia de comandos de 2 caracteres.

prefijo-2: ^ X, ^ [[, ^ [O
Introduce una secuencia de comandos de 2 caracteres.

prev-hist-palabra: [n] ^[., ^[_
La última palabra, o, si se da, la npalabra (basada en cero) de la anterior (en repetidas
ejecución, penúltimo, antepenúltimo, etc.) el comando se inserta en el cursor. Uso de
este comando de edición desecha la marca.

cita: ^^, ^V
El carácter siguiente se toma literalmente y no como un comando de edición.

volver a dibujar: ^ L
Vuelve a imprimir la última línea de la cadena de solicitud y la línea de entrada actual en una nueva
la línea.

buscar-carácter-hacia atrás: [n] ^[^]
Buscar hacia atrás en la línea actual para el nª aparición del siguiente carácter
mecanografiado.

buscar-carácter-adelante: [n] ^]
Buscar hacia adelante en la línea actual para el nª aparición del siguiente carácter
mecanografiado.

historial de búsqueda: ^ R
Ingrese al modo de búsqueda incremental. La lista de historial interno se busca hacia atrás para
comandos que coinciden con la entrada. Un '^' inicial en la cadena de búsqueda ancla el
búsqueda. La tecla de escape saldrá del modo de búsqueda. Otros comandos, incluidas las secuencias
de escapar como prefijo-1 seguido por un prefijo-1 or prefijo-2 La tecla se ejecutará después
salir del modo de búsqueda. El abortar (^G) el comando restaurará la línea de entrada antes
se inició la búsqueda. Sucesivo buscar Historia los comandos continúan buscando hacia atrás para
la siguiente aparición anterior del patrón. El búfer de historial retiene sólo un
número finito de líneas; los más antiguos se descartan según sea necesario.

historial de búsqueda arriba: ANSI-PgUp, PC-PgUp
Busque hacia atrás a través del búfer de historial para comandos cuyo comienzo coincida con el
parte de la línea de entrada antes del cursor. Cuando se usa en una línea vacía, esto tiene
el mismo efecto que historia arriba.

historial de búsqueda abajo: ANSI-PgDn, PC-PgDn
Busque hacia adelante en el búfer de historial los comandos cuyo comienzo coincida con el
parte de la línea de entrada antes del cursor. Cuando se usa en una línea vacía, esto tiene
el mismo efecto que abajo de la historia. Esto sólo es útil después de un historia arriba,
buscar Historia or historial de búsqueda.

establecer-marca-comando: ^[
Coloque la marca en la posición del cursor.

transponer caracteres: ^T
Si al final de la línea, o si el gmacs está configurada la opción, esto intercambia las dos
personajes anteriores; de lo contrario, intercambia los personajes anteriores y actuales y
mueve el cursor un carácter a la derecha.

historial: [n] ^P, ^XA, ANSI-CurUp, PC-CurUp
Desplaza el búfer de historial hacia atrás n líneas (antes).

palabra-upcase: [n] ^[tú, ^[tú
Mayúsculas el siguiente n palabras.

versión: ^[^V
Mostrar la versión de mksh. El búfer de edición actual se restaura tan pronto como una tecla
se presiona. La pulsación de tecla de restauración se procesa, a menos que sea un espacio.

tirar: ^Y
Inserta la cadena de texto eliminada más recientemente en la posición actual del cursor.

yank-pop: ^ [y
Inmediatamente después de un tirón, reemplaza la cadena de texto insertada con la siguiente previamente
cadena de texto muerta.

Vi . modo
Nota: El modo de edición de la línea de comandos de vi está huérfano, pero sigue siendo funcional. Es limpio de 8 bits
pero específicamente no es compatible con UTF-8 o MBCS.

El editor de línea de comandos vi en mksh tiene básicamente los mismos comandos que el vi(1) editor con
las siguientes excepciones:

· Empiezas en modo de inserción.

· Hay comandos de nombre de archivo y finalización de comando: =, \, *, ^X, ^E, ^F y,
opcionalmente, y .

· El _ comando es diferente (en mksh, es el último comando de argumento; en vi(1) va
al inicio de la línea actual).

· El / y G Los comandos se mueven en la dirección opuesta a la j mando.

· Los comandos que no tienen sentido en un editor de una sola línea no están disponibles (p. ej., screen
comandos de movimiento y ex(1) estilo dos puntos (:) comandos).

Me gusta vi(1), hay dos modos: modo "insertar" y modo "comando". En el modo de inserción, la mayoría
los caracteres simplemente se colocan en el búfer en la posición actual del cursor a medida que se escriben;
sin embargo, algunos personajes reciben un tratamiento especial. En particular, los siguientes caracteres son
tomado de corriente tty(4) ajustes (ver pocilga(1)) y tienen su significado habitual (valores normales
están entre paréntesis): kill (^U), erase (^?), werase (^W), eof (^D), intr (^C) y quit (^\).
Además de los anteriores, los siguientes caracteres también reciben un tratamiento especial en el inserto
modo:

^E Enumeración de nombre de archivo y comando (ver más abajo).

^ F Completar el comando y el nombre del archivo (ver más abajo). Si se usa dos veces seguidas, la lista de
se muestran las posibles terminaciones; si se usa por tercera vez, la terminación se deshace.

^H Borra el carácter anterior.

^ J | ^M Fin de línea. La línea actual es leída, analizada y ejecutada por el shell.

^V Literal siguiente. El siguiente carácter tecleado no se trata de forma especial (se puede utilizar para
inserte los caracteres que se describen aquí).

^X Comando y expansión de nombre de archivo (ver más abajo).

Pone el editor en modo de comando (ver más abajo).

Nombre de archivo opcional y finalización de comando (ver ^F arriba), habilitado con set -o
vi-tabcompleta.

En el modo de comando, cada carácter se interpreta como un comando. Personajes que no
corresponden a comandos, son combinaciones ilegales de comandos o son comandos que no se pueden
llevado a cabo, todas las causas emiten pitidos. En las siguientes descripciones de comandos, un [n] indica el
El comando puede ir precedido de un número (p. ej. 10l se mueve hacia la derecha 10 caracteres); si no hay numero
se usa el prefijo, n se supone que es 1 a menos que se especifique lo contrario. El término “actual
posición” se refiere a la posición entre el cursor y el carácter que precede al cursor.
Una "palabra" es una secuencia de letras, dígitos y caracteres de subrayado o una secuencia de
letras, caracteres que no sean dígitos, guiones bajos y espacios en blanco (p. ej., “ab2*&^” contiene dos
palabras) y una "palabra grande" es una secuencia de caracteres que no son espacios en blanco.

Especiales mksh vi comandos:

Los siguientes comandos no se encuentran en el editor de archivos vi normal o son diferentes del mismo:

[n]_ Inserte un espacio seguido del nla gran palabra del último comando en la historia
en la posición actual e ingrese al modo de inserción; Si n no se especifica, el último
se inserta la palabra.

# Inserta el carácter de comentario ('#') al comienzo de la línea actual y regresa
la línea a la concha (equivalente a Yo#^J).

[n] g Me gusta G, excepto si n no se especifica, se va al más reciente recordado
la línea.

[n] v Editar línea n usando el vi(1) redactor; Si n no se especifica, la línea actual es
editado El comando real ejecutado es fc -e $ {VISUAL: - $ {EDITOR: -vi}} n.

* y ^X El comando o la expansión del nombre de archivo se aplica a la palabra grande actual (con un
anexado '*' si la palabra no contiene caracteres globales de archivo) – la palabra grande es
reemplazado con las palabras resultantes. Si la palabra grande actual es la primera en el
línea o sigue a uno de los caracteres ';', '|', '&', '(' o ')', y no
contienen una barra inclinada ('/'), luego se realiza la expansión del comando; de lo contrario, nombre de archivo
la expansión está hecha. La expansión de comandos igualará la palabra grande contra todos
alias, funciones y comandos integrados, así como cualquier archivo ejecutable encontrado
buscando los directorios en el parámetro PATH. Coincidencias de expansión de nombre de archivo
la palabra grande contra los archivos en el directorio actual. Después de la expansión, el
el cursor se coloca justo después de la última palabra y el editor está en modo de inserción.

[n] \, [n]^F, [n] , y [n]
Completar comando / nombre de archivo. Reemplazar la palabra grande actual con la más larga
coincidencia única obtenida después de realizar la expansión de nombre de archivo y comando.
sólo se reconoce si el vi-tabcompleta la opción está configurada, mientras es solo
reconocido si el vi-escompleto se establece la opción (ver set -o) Si n está especificado,
las nSe selecciona la finalización posible (según lo informado por el comando/nombre de archivo
comando de enumeración).

= y ^E Enumeración de nombre de comando/archivo. Enumere todos los comandos o archivos que coincidan con el
palabra grande actual.

^ V Muestra la versión de mksh. El búfer de edición actual se restaura tan pronto como se
se presiona la tecla. Se ignora la pulsación de la tecla de restauración.

@c Ampliación de macros. Ejecutar los comandos que se encuentran en el alias c.

Comandos de movimiento intralínea:

[n]mano [n]^H
Mover hacia la izquierda n personajes.

[n]tierra [n]
Mover a la derecha n personajes.

0 Mover a la columna 0.

^ Vaya al primer carácter que no sea un espacio en blanco.

[n] | Mover a la columna n.

$ Mover al último carácter.

[n] b Retroceder n palabras.

[n]B Retroceder n grandes palabras.

[n]e Avanzar hasta el final de la palabra, n veces.

[n] E Avanza hasta el final de la palabra grande, n veces.

[n]w Avanzar n palabras.

[n]W Avanzar n grandes palabras.

% Encontrar pareja. El editor espera el paréntesis, corchete o llave más cercano
y luego mueve el cursor al paréntesis, corchete o llave correspondiente.

[n]fc Avanzar hacia el nª aparición del carácter c.

[n]Fc Mover hacia atrás a la nª aparición del carácter c.

[n]tc Avance hasta justo antes de la nª aparición del carácter c.

[n]Tc Mover hacia atrás hasta justo antes de la nª aparición del carácter c.

[n]; Repite el último f, F, to T mando.

[n], Repite el último f, F, to T comando, pero se mueve en la dirección opuesta.

Comandos de movimiento entre líneas:

[n] j, [n]+, y [n]^N
Mover a la nla siguiente línea en la historia.

[n] k, [n]-, y [n] ^ P
Mover a la nla línea anterior en la historia.

[n]G Mover a la línea n en la historia; Si n no se especifica, el número de la primera
se utiliza la línea recordada.

[n] g Me gusta G, excepto si n no se especifica, va a la línea recordada más reciente.

[n]/cadena
Busque hacia atrás a través de la historia para nla línea que contiene cadena; Si cadena
comienza con '^', el resto de la cadena debe aparecer al comienzo del historial
línea para que coincida.

[n]?cadena
Igual que /, excepto que busca hacia adelante en el historial.

[n]n Buscar el nª aparición de la última cadena de búsqueda; la dirección de la búsqueda
es lo mismo que la última búsqueda.

[n] N Busque el nª aparición de la última cadena de búsqueda; la dirección de la búsqueda
es lo contrario de la última búsqueda.

ANSI-CurUp, PC-Re Pág
Tome los caracteres desde el comienzo de la línea hasta la posición actual del cursor como
cadena de búsqueda y hacer una búsqueda de historial hacia atrás para las líneas que comienzan con esto
cuerda; mantener la posición del cursor. Esto funciona solo en el modo de inserción y lo mantiene
habilitado

Editar comandos

[n]a Añadir texto n veces; entra en modo de inserción justo después de la posición actual. El
append solo se replica si se vuelve a ingresar al modo de comando, es decir se utiliza.

[n]A Igual que a, excepto que se agrega al final de la línea.

[n] i Insertar texto n veces; entra en modo de inserción en la posición actual. La inserción
solo se replica si se vuelve a ingresar al modo de comando, es decir se usa

[n]I Igual que i, excepto que la inserción se realiza justo antes del primer carácter que no está en blanco.

[n]s Sustituye por el siguiente n caracteres (es decir, elimine los caracteres y vaya a insertar
modo).

S Sustituya la línea completa. Todos los caracteres desde el primer carácter que no esté en blanco hasta el final
de la línea se eliminan y se ingresa al modo de inserción.

[n]cmover-cmd
Cambiar de la posición actual a la posición resultante de n mover-cmds (es decir
elimine la región indicada y vaya al modo de inserción); Si mover-cmd is c, La línea de
comenzando desde el primer carácter que no está en blanco se cambia.

C Cambiar desde la posición actual hasta el final de la línea (es decir, borrar hasta el final de
la línea y vaya al modo de inserción).

[n] x Eliminar el siguiente n personajes.

[n] X Eliminar el anterior n personajes.

D Eliminar hasta el final de la línea.

[n]dmover-cmd
Eliminar de la posición actual a la posición resultante de n mover-cmds;
mover-cmd es un comando de movimiento (ver arriba) o d, en cuyo caso la línea actual es
eliminada.

[n]rc Reemplace el siguiente n personajes con el personaje c.

[n]R Reemplazar. Ingrese al modo de inserción pero sobrescriba los caracteres existentes en lugar de insertar
antes de los personajes existentes. Se repite el reemplazo n veces.

[n] ~ Cambiar el caso del siguiente n personajes.

[n]ymover-cmd
Pasar de la posición actual a la posición resultante de n mover-cmds en el
tampón de tirón; Si mover-cmd is y, se tira de toda la línea.

Y Tirar desde la posición actual hasta el final de la línea.

[n]p Pegue el contenido del búfer de yank justo después de la posición actual, n veces.

[n]P Igual que p, excepto que el búfer se pega en la posición actual.

Varios comandos vi

^J y ^M
La línea actual es leída, analizada y ejecutada por el shell.

^ L y ^ R
Redibujar la línea actual.

[n]. Rehacer el último comando de edición n veces.

u Deshacer el último comando de edición.

U Deshacer todos los cambios realizados en la línea actual.

Teclas Inicio, Fin, Supr y cursor de PC
Se mueven como se esperaba, tanto en modo de inserción como de comando.

intr y renuncia
Los caracteres de la terminal de interrupción y salida hacen que la línea actual se elimine y
un nuevo aviso para ser impreso.

Use mksh en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    Alt-F
    Alt-F
    Alt-F proporciona un código abierto y gratuito
    firmware alternativo para DLINK
    DNS-320/320L/321/323/325/327L and
    DNR-322L. Alt-F tiene Samba y NFS;
    soporta ext2 / 3/4 ...
    Descargar Alt-F
  • 2
    usm
    usm
    Usm es un paquete de slackware unificado
    gerente que maneja automático
    resolución de dependencia. unifica
    varios repositorios de paquetes, incluidos
    slackware, flojo, p...
    Descargar usm
  • 3
    Chart.js
    Chart.js
    Chart.js es una biblioteca Javascript que
    permite a los diseñadores y desarrolladores dibujar
    todo tipo de gráficos usando HTML5
    elemento de lienzo Chart js ofrece una gran
    matriz ...
    Descargar Chart.js
  • 4
    iReport-Designer para JasperReports
    iReport-Designer para JasperReports
    NOTA: Compatibilidad con iReport/Jaspersoft Studio
    Anuncio: a partir de la versión 5.5.0,
    Jaspersoft Studio será el oficial
    cliente de diseño para JasperReports. yo reporto
    será...
    Descargar iReport-Designer para JasperReports
  • 5
    PostInstaladorF
    PostInstaladorF
    PostInstallerF instalará todos los
    software que Fedora Linux y otros
    no incluye por defecto, después
    ejecutando Fedora por primera vez. Su
    fácil para ...
    Descargar PostInstallerF
  • 6
    rastro
    rastro
    El proyecto strace se ha trasladado a
    https://strace.io. strace is a
    diagnóstico, depuración e instrucción
    rastreador de espacio de usuario para Linux. Esta usado
    para monitorear un...
    Descargar seguimiento
  • Más "

Comandos de Linux

Ad