Mandato ksh93

Finalidad

Invoca el shell Korn mejorado.

Sintaxis

ksh93 [+ |- a b c C e f h i k m n o p r s t u v x BDP ] [+-R archivo] [ +-o Opción ] [arg...].

Nota: Al preceder un distintivo con + (más) en lugar de - (menos) desactiva el distintivo.

Descripción

El mandato ksh93 invoca el shell Korn mejorado, que es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. El shell lleva a cabo mandatos de forma interactiva desde un teclado de terminal o desde un archivo.

El shell Korn mejorado tiene características adicionales que no están disponibles en el shell Korn predeterminado.

Nota: La espera incorporada de ksh93 se comporta de forma similar a la subrutina wait padre.

Distintivos

Elemento Descripción
-B Habilita la generación del campo de patrón de llave y la expansión del grupo de soporte. Se establece de forma predeterminada.
-d No ejecuta el script, pero da como resultado el conjunto de cadenas de salida entre comillas dobles precedidas por $. Estas series son necesarias para la localización del script en diferentes idiomas.
-P Si los perfiles -P o -o están presentes, el shell se denomina shell de perfil.
-a Exporta automáticamente todos los parámetros siguientes que están definidos.
-b Los mensajes de finalización de trabajo se imprimen tan pronto como un trabajo en segundo plano cambia de estado en lugar de esperar a la siguiente solicitud.
-c Hace que los mandatos se lean desde el primer argumento. Los argumentos restantes se convierten en parámetros posicionales a partir de 0.
-C Impide que los archivos existentes se trunquen cuando se utiliza la redirección > . La modalidad O_EXCL se utiliza para crear archivos. Requiere que >| trunque un archivo cuando se utiliza la opción -C .
-e Si no está contenido en un mandato || o && , o después de un mandato si es o hasta , o en la interconexión que sigue a !, ejecuta la condición de excepción ERR , si se ha establecido, y sale si un mandato tiene un estado de salida distinto de cero. Esta modalidad está inhabilitada mientras se leen perfiles.
-f Inhabilita la generación del nombre de archivo.
-h Designa cada mandato como un seudónimo con seguimiento la primera vez que se encuentra.
Nota: La característica de alias rastreado ahora está obsoleta.
-i Indica que el shell es interactivo. También se indica un shell interactivo si la entrada y salida del shell están conectadas a un terminal (tal como determina la subrutina ioctl ). En este caso, la variable de entorno TERM se ignora (para que el mandato kill 0 no interrumpa un shell interactivo) y la señal INTR se captura e ignora (para que se pueda interrumpir un estado de espera). En todos los casos, el shell ignora la señal QUIT .
-k (obsoleto) Coloca todos los argumentos de asignación de parámetros en el entorno para un mandato, no sólo los argumentos que preceden al nombre del mandato.
-m Ejecuta trabajos en segundo plano en un proceso independiente e imprime una línea cuando se finaliza. Se informa del estado de salida de trabajos en segundo plano en un mensaje de finalización. En los sistemas que disponen de control de trabajos, este distintivo se activa automáticamente para los shells interactivos.
-n Lee mandatos y comprueba si existen errores de sintaxis, pero no los ejecuta. Este distintivo se ignora para shells interactivos.
Nota: ksh93 -n genera un mensaje de aviso para determinada sintaxis. Estos mensajes son avisos. Aunque estos avisos se emiten, la ejecución de los scripts no se modifica. Los siguientes son los mensajes de aviso conocidos:
              `...` obsolete, use $(...).
              -a obsolete, use -e.
              '=' obsolete, use '=='.
              %s within [[...]] obsolete, use ((...)).
              set %s obsolete.
              `{' instead of `in' is obsolete.
              "obsolete -j must be 1 or 2.
-o Opción Imprime los valores de la opción actual y un mensaje de error si no especifica un argumento. Puede utilizar este distintivo para habilitar cualquiera de las opciones siguientes:
allexport
Igual que el distintivo -a .
errexit
Igual que el distintivo -e .
bgnice
Ejecuta todos los trabajos en segundo plano a una prioridad inferior. Se trata de la modalidad por omisión.
Braceexpand
Igual que el distintivo -B .
emacs
Entra en un editor en línea de estilo emacs para la entrada de mandatos.
gmacs
Entra en un editor en línea estilo gmacs para entrada de mandatos.
ignoto
No sale del shell cuando encuentra un carácter de fin de archivo. Debe utilizar el mandato exit o alterar temporalmente el distintivo y salir del shell pulsando la secuencia de teclas Control-D más de 11 veces.
interactivo
Igual que el distintivo -i .
palabra clave
Igual que el distintivo -k .
marcardirs
Añade una / (barra inclinada) a todos los nombres de directorio que son el resultado de la sustitución de nombre de archivo.
 
supervisor
Igual que el distintivo -m .
multilínea
El editor incorporado utilizará varias líneas de la pantalla que son más largas que la anchura de la pantalla. Es posible que esto no funcione en todos los terminales.
noclobber
Igual que el distintivo -C .
noexec
Igual que el distintivo -n .
noglob
Igual que el distintivo -f .
nolog
Impide que las definiciones de función se guarden en el archivo histórico.
 
notify
Igual que el distintivo -b .
nunset
Igual que el distintivo -u .
pipefail
Una interconexión no se completará hasta que se completen todos los componentes de la interconexión. El valor de retorno será el del último valor de retorno distinto de cero del último mandato en fallar, o 0 si todos los valores de retorno son 0.
muéstrame
Los mandatos o interconexiones individuales precedidos por un; (punto y coma) se visualizarán como si la opción xtrace estuviera habilitada pero no se ejecutará. De lo contrario, se ignorará el punto y coma (punto y coma).
privilegiado
Igual que el distintivo -p .
 
verbose
Igual que el distintivo -v .
trackall
Igual que el distintivo -h .
vi
Entra en la modalidad de inserción de un editor en línea de estilo vi para la entrada de mandatos. Si especifica el carácter de escape 033 , el editor pasa a la modalidad de movimiento. Si pulsa la tecla Intro, enviará una línea.
viraw
Procesa cada carácter que se escribe en modalidad vi.
xtrace
Igual que el distintivo -x .
Puede establecer más de una opción en una sola línea de mandatos de ksh93 .
-p Inhabilita el proceso del archivo $HOME/.profile y utiliza el archivo /etc/suid_profile en lugar del archivo ENV . Esta modalidad está activada siempre que el uid efectivo (gid) no sea igual al uid real (gid). Desactivar esto hace que el uid y gid efectivo se establezca en el uid real y el gid.
-r Ejecuta un shell restringido. Con un shell restringido no puede:
  • Cambie el directorio de trabajo actual.
  • Establezca el valor de la variable SHELL, ENVo PATH .
  • Especifique el nombre de vía de acceso de un mandato que contenga una / (barra inclinada).
  • Redirigir la salida de un mandato con > (signo mayor que), >| (signo mayor que, conducto), <> (signo menor que, signo mayor que) o >> (dos signos mayor que).
Elemento Descripción
-R Archivo Se genera una base de datos de referencias cruzadas cuando se utiliza la opción -R Archivo . Se puede utilizar para buscar definiciones y referencias para variables y mandatos mediante un programa de utilidad independiente.
-s Hace que el mandato ksh93 lea los mandatos de la entrada estándar. La salida de shell, excepto la salida de los mandatos especiales, se graba en el descriptor de archivo 2. Este parámetro no se puede utilizar con el distintivo -c o con el parámetro Archivo[Parámetro].
-t Sale después de leer y ejecutar un mandato.
-u Cuando se sustituyan parámetros a los que se ha eliminado la definición, los interpreta como errores.
-v Imprime las líneas de entrada del shell a medida que se leen.
-x Imprime mandatos ejecutados y sus argumentos.

Soporte de auditoría

Para habilitar la característica de auditoría en el shell Korn mejorado, realice los pasos siguientes:

  • Para habilitar la característica de auditoría en el mandato ksh93u , el archivo /etc/ksh_audit debe tener un nombre de archivo de salida y un valor de identificación para el usuario. Por ejemplo, /tmp/ksh_auditfile;205;0.
  • Puede configurar la característica de auditoría para generar un registro detallado para cada mandato ejecutable. Puede utilizar el registro para supervisar, realizar un seguimiento y auditar actividades para uno o más usuarios de un sistema, incluidos los administradores del sistema.
  • Para habilitar la característica de auditoría en el mandato ksh93 , el archivo /etc/ksh_audit debe crearse y configurarse especificando la ubicación del archivo audit_log y un valor de identificación para el usuario. Puede separar los valores de identificación utilizando un punto y coma.

Por ejemplo, el texto /tmp/ksh_auditfile;0;100;205 en el archivo /etc/ksh_audit hace referencia a la ubicación del archivo de registro (/tmp/ksh_auditfile) y a los valores de identificación de usuario que son, 0 (root), 100y 205 respectivamente.

Nota:
  • Los usuarios en espera de auditoría deben tener permisos de Lectura y Escritura para los archivos de configuración y de registro.
  • Cuando se activa la variable de entorno EXTENDED_HISTORY , las entradas de auditoría tendrán una información de indicación de fecha y hora con caracteres no imprimibles al final de la entrada. De forma predeterminada, la variable de entorno EXTENDED_HISTORY está activada. Sin embargo, puede activarlo manualmente ejecutando el mandato export EXTENDED_HISTORY=ON . Para inhabilitar la variable de entorno EXTENDED_HISTORY , puede ejecutar el mandato unset EXTENDED_HISTORY .
  • La variable de entorno EXTENDED_HISTORY le permite ver un informe de seguimiento detallado para todos los mandatos que se ejecutan en el shell.

Estado de salida

Elemento Descripción
0 Finalización satisfactoria.
>0 Se ha producido un error.

Ubicación

/usr/bin/ksh93