Sunteți pe pagina 1din 316

AIX 5L Versión 5.

1 IBM

Guía del usuario del sistema: Sistema


operativo y dispositivos

SC10-9309-03
AIX 5L Versión 5.1 IBM

Guía del usuario del sistema: Sistema


operativo y dispositivos

SC10-9309-03
Cuarta edición (abril de 2001)
Antes de utilizar la información de esta publicación, lea la información general que encontrará en el “Apéndice B.
Avisos” en la página 283.
Esta edición se aplica a AIX 5L Versión 5.1 y a todos los releases siguientes de este producto, hasta que se indique
lo contrario en nuevas ediciones.
(c) Copyright KnowledgeSet Corporation, Mountainview, California, 1990.
(c) Copyright AT&T, 1984, 1985, 1986, 1987, 1988, 1989. Reservados todos los derechos.
Este software y documentación se basan en parte en Fourth Berkeley Software Distribution bajo licencia de The
Regents of the University of California. Agradecemos a las instituciones siguientes por su función en su desarrollo:
Electrical Engineering and Computer Sciences Department en el Berkeley Campus.
El Sistema de manejo de mensajes MH de Rand lo ha desarrollado Rand Corporation y la University of California.
Partes del código y documentación que se describen en este manual derivan del código y la documentación
desarrollados bajo los auspicios de the Regents of the University of California y se han adquirido y modificado bajo
la condición de que aparezca la siguiente nota de copyright y permiso:
Copyright Regents of the University of California, 1986, 1987, 1988, 1989. Reservados todos los derechos.
La redistribución y el uso en formatos fuente y binario están permitidos siempre y cuando se mantenga esta nota y
el reconocimiento debido a la University of California en Berkeley. El nombre de la Universidad no puede utilizarse
para promover productos derivados de este software sin el previo permiso escrito. Este software se proporciona "tal
cual" sin ninguna garantía implícita o explícita.
Copyright (c) 1993, 1994 Hewlett-Packard Company
Copyright (c) 1993, 1994 International Business Machines Corp.
Copyright (c) 1993, 1994 Sun Microsystems, Inc.
Copyright (c) 1993, 1994 Novell, Inc.
Reservados todos los derechos. Este producto y la documentación relacionada están protegidos por copyright y se
distribuyen bajo licencias que restringen su uso, copia, distribución y descompilación. Ninguna parte de este
producto o documentación relacionada puede reproducirse de ningún modo sin la previa autorización por escrito.
DESCRIPCIÓN DE DERECHOS RESTRINGIDOS: El uso, duplicación o divulgación por parte del Gobierno de los
Estados Unidos está sujeto a las restricciones establecidas en DFARS 252.227-7013 (c)(1)(ii) y FAR 52.227-19.
ESTA PUBLICACIÓN SE PROPORCIONA "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, NI EXPLÍCITA NI
IMPLÍCITA INCLUYENDO, PERO NO LIMITÁNDOSE, A LAS GARANTÍAS IMPLÍCITAS DE COMERCIALIZACIÓN,
DE ADECUACIÓN A UN PROPÓSITO DETERMINADO O DE NO INCUMPLIMIENTO.
ESTA PUBLICACIÓN PUEDE CONTENER INCORRECCIONES TÉCNICAS O ERRORES TIPOGRÁFICOS.
PERIÓDICAMENTE SE REALIZARÁN MODIFICACIONES EN LA INFORMACIÓN AQUÍ CONTENIDA; DICHOS
CAMBIOS SE INCORPORARÁN EN NUEVAS EDICIONES DE LA PUBLICACIÓN. HEWLETT-PACKARD
COMPANY, INTERNATIONAL BUSINESS MACHINES CORP., SUN MICROSYSTEMS, INC. y UNIX SYSTEMS
LABORATORIES, INC., PUEDEN REALIZAR MEJORAS Y/O CAMBIOS EN EL(LOS) PRODUCTO(S) Y/O
PROGRAMA(S) QUE SE DESCRIBEN EN ESTA PUBLICACIÓN EN CUALQUIER MOMENTO.
© Copyright International Business Machines Corporation 1997, 2001. Reservados todos los derechos.
Contenido
Acerca de este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Quién debe utilizar este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Resaltado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
ISO 9000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Publicaciones relacionadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Marcas registradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

Capítulo 1. Nombres de inicio de sesión, ID del sistema y contraseñas . . . . . . . . . . . 1


Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Visión general del inicio y del fin de sesión . . . . . . . . . . . . . . . . . . . . . . . 2
Inicio de sesión en el sistema operativo. . . . . . . . . . . . . . . . . . . . . . . . 2
Inicio de la sesión más de una vez (mandato login) . . . . . . . . . . . . . . . . . . . 3
Forma de convertirse en otro usuario en un sistema (mandato su) . . . . . . . . . . . . . . 3
Supresión de los mensajes de inicio de sesión . . . . . . . . . . . . . . . . . . . . . 4
Finalización de la sesión del sistema operativo (mandatos exit y logout) . . . . . . . . . . . . 4
Detención del sistema operativo (mandato shutdown) . . . . . . . . . . . . . . . . . . 5
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Identificación de usuario y de sistema . . . . . . . . . . . . . . . . . . . . . . . . . 5
Visualización del nombre de inicio de sesión (mandatos whoami y logname) . . . . . . . . . . 5
Visualización del nombre del sistema operativo (mandato uname) . . . . . . . . . . . . . . 6
Visualización del nombre del sistema (mandato uname). . . . . . . . . . . . . . . . . . 7
Visualización de quién ha iniciado la sesión (mandato who) . . . . . . . . . . . . . . . . 7
Visualización de los ID de usuario (mandato id) . . . . . . . . . . . . . . . . . . . . . 7
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Contraseñas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Directrices para contraseñas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Cambio de la contraseña (mandato passwd) . . . . . . . . . . . . . . . . . . . . . . 9
Establecimiento de la contraseña en nula (mandato passwd) . . . . . . . . . . . . . . . 10
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Resumen de mandatos para nombres de inicio de sesión, ID del sistema y contraseñas . . . . . . 11
Mandatos de inicio y de fin de sesión . . . . . . . . . . . . . . . . . . . . . . . . 11
Mandatos de identificación del usuario y del sistema . . . . . . . . . . . . . . . . . . 11
Mandato de contraseña . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Capítulo 2. Entorno de usuario e información del sistema . . . . . . . . . . . . . . . . 13


Listado de los dispositivos del sistema (mandato lscfg) . . . . . . . . . . . . . . . . . . 13
Visualización del nombre de la consola (mandato lscons). . . . . . . . . . . . . . . . . . 14
Visualización del nombre del terminal (mandato tty) . . . . . . . . . . . . . . . . . . . . 15
Listado de las pantallas disponibles (mandato lsdisp) . . . . . . . . . . . . . . . . . . . 15
Listado de los fonts disponibles (mandato lsfont) . . . . . . . . . . . . . . . . . . . . . 15
Listado de las correlaciones del teclado (mandato lskbd) . . . . . . . . . . . . . . . . . . 16
Listado de los productos de software (mandato lslpp) . . . . . . . . . . . . . . . . . . . 16
Listado de las asignaciones de teclas de control del terminal (mandato stty) . . . . . . . . . . . 17
Listado de todas las variables de entorno (mandato env) . . . . . . . . . . . . . . . . . . 17
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Visualización del valor de una variable de entorno (mandato printenv) . . . . . . . . . . . . . 18
Utilización de idiomas bidireccionales (mandato aixterm) . . . . . . . . . . . . . . . . . . 19
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Resumen de mandatos para el entorno de usuario y la información del sistema . . . . . . . . . 19
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Capítulo 3. Mandatos y procesos . . . . . . . . . . . . . . . . . . . . . . . . . . 21

© Copyright IBM Corp. 1997, 2001 iii


Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Visión general de los mandatos . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Sintaxis de los mandatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Lecturas de sentencias de uso . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Utilización del Gestor del sistema basado en la Web . . . . . . . . . . . . . . . . . . 25
Utilización del mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Localización de un mandato o de un programa (mandato whereis) . . . . . . . . . . . . . 25
Visualización de información acerca de un mandato (mandato man). . . . . . . . . . . . . 25
Visualización de la función de un mandato (mandato whatis) . . . . . . . . . . . . . . . 26
Listado de los mandatos entrados anteriormente (mandato de shell history) . . . . . . . . . . 26
Repetición de mandatos utilizando el mandato history del shell . . . . . . . . . . . . . . 28
Sustitución de series utilizando el mandato history del shell . . . . . . . . . . . . . . . . 28
Edición del histórico de mandatos . . . . . . . . . . . . . . . . . . . . . . . . . 29
Creación de un alias de mandato (mandato de shell alias) . . . . . . . . . . . . . . . . 29
Utilización de mandatos para formatear texto . . . . . . . . . . . . . . . . . . . . . 30
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Visión general de los procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Procesos en primer plano y en segundo plano. . . . . . . . . . . . . . . . . . . . . 33
Daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Proceso zombie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Inicio de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Comprobación de los procesos (mandato ps) . . . . . . . . . . . . . . . . . . . . . 34
Establecimiento de la prioridad inicial de un proceso (mandato nice) . . . . . . . . . . . . 36
Cambio de la prioridad de un proceso en ejecución (mandato renice) . . . . . . . . . . . . 36
Cancelación de un proceso en primer plano . . . . . . . . . . . . . . . . . . . . . 36
Detención de un proceso en primer plano . . . . . . . . . . . . . . . . . . . . . . 37
Reinicio de un proceso detenido . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Planificación de un proceso para ejecutarlo posteriormente (mandato at) . . . . . . . . . . . 38
Listado de todos los procesos planificados (mandato at o atq) . . . . . . . . . . . . . . . 39
Eliminación de un proceso de la planificación (mandato at) . . . . . . . . . . . . . . . . 40
Eliminación de un proceso en segundo plano (mandato kill) . . . . . . . . . . . . . . . . 40
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Resumen de mandatos para mandatos y procesos . . . . . . . . . . . . . . . . . . . . 41
Mandatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Capítulo 4. Redirección de entrada y salida . . . . . . . . . . . . . . . . . . . . . . 43


Entrada estándar, salida estándar y error estándar . . . . . . . . . . . . . . . . . . . . 43
Redirección de la salida estándar . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Redirección de la salida a un archivo . . . . . . . . . . . . . . . . . . . . . . . . . 44
Redirección de la salida y adición a un archivo . . . . . . . . . . . . . . . . . . . . . 45
Creación de un archivo de texto con redirección desde el teclado . . . . . . . . . . . . . . 45
Concatenación de archivos de texto . . . . . . . . . . . . . . . . . . . . . . . . . 45
Redirección de la entrada estándar . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Forma de descartar la salida con el archivo /dev/null . . . . . . . . . . . . . . . . . . . 46
Redirección de la salida de error estándar y otros tipos de salida . . . . . . . . . . . . . . . 46
Documentos de entrada en línea (here) . . . . . . . . . . . . . . . . . . . . . . . . 47
Conductos y filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Visualización de la salida de un programa y copia de ésta en un archivo (mandato tee) . . . . . . 48
Forma de borrar el contenido de la pantalla (mandato clear) . . . . . . . . . . . . . . . . 49
Envío de un mensaje a la salida estándar (mandato echo) . . . . . . . . . . . . . . . . . 49
Adición de una sola línea de texto a un archivo (mandato echo) . . . . . . . . . . . . . . . 49
Copia de la pantalla en un archivo (mandatos capture y script). . . . . . . . . . . . . . . . 50
Visualización del texto de la pantalla en letras grandes (mandato banner) . . . . . . . . . . . 51
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

iv Guía del usuario del sistema: Sistema operativo y dispositivos


Resumen de mandatos para la redirección de entrada y salida. . . . . . . . . . . . . . . . 51
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Capítulo 5. Sistemas de archivos y directorios . . . . . . . . . . . . . . . . . . . . 53


Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Sistemas de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Tipos de sistemas de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Estructura del sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . 55
Visualización del espacio disponible en el sistema de archivos (mandato df). . . . . . . . . . 56
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Visión general de los directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Tipos de directorios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Organización de los directorios . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Convenios de denominación de directorios . . . . . . . . . . . . . . . . . . . . . . 59
Nombres de las vías de acceso de los directorios . . . . . . . . . . . . . . . . . . . 59
Abreviaturas de los directorios. . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Procedimientos de gestión de directorios . . . . . . . . . . . . . . . . . . . . . . . . 61
Creación de un directorio (mandato mkdir) . . . . . . . . . . . . . . . . . . . . . . 61
Movimiento o cambio del nombre de un directorio (mandato mvdir) . . . . . . . . . . . . . 61
Visualización del directorio actual (mandato pwd). . . . . . . . . . . . . . . . . . . . 62
Cambio a otro directorio (mandato cd) . . . . . . . . . . . . . . . . . . . . . . . . 62
Copia de un directorio (mandato cp) . . . . . . . . . . . . . . . . . . . . . . . . 63
Visualización del contenido de un directorio (mandato ls) . . . . . . . . . . . . . . . . . 64
Supresión o eliminación de un directorio (mandato rmdir) . . . . . . . . . . . . . . . . . 65
Comparación del contenido de dos directorios (mandato dircmp) . . . . . . . . . . . . . . 66
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Resumen de mandatos para los sistemas de archivos y directorios . . . . . . . . . . . . . . 67
Sistemas de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Abreviaturas de los directorios. . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Procedimientos para el manejo de directorios . . . . . . . . . . . . . . . . . . . . . 67
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Capítulo 6. Archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Tipos de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Archivos normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Archivos de directorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Archivos especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Convenios de denominación de archivos . . . . . . . . . . . . . . . . . . . . . . . 71
Nombres de vías de acceso de archivos . . . . . . . . . . . . . . . . . . . . . . . 71
Patrones de coincidencia con comodines y metacaracteres . . . . . . . . . . . . . . . . 71
Coincidencia con patrones en contraste con expresiones normales . . . . . . . . . . . . . 73
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Procedimientos de gestión de archivos . . . . . . . . . . . . . . . . . . . . . . . . 73
Supresión de archivos (mandato rm) . . . . . . . . . . . . . . . . . . . . . . . . 74
Movimiento y cambio del nombre de los archivos (mandato mv) . . . . . . . . . . . . . . 75
Copia de archivos (mandato cp) . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Búsqueda de archivos (mandato find) . . . . . . . . . . . . . . . . . . . . . . . . 76
Visualización del tipo de archivo (mandato file) . . . . . . . . . . . . . . . . . . . . 78
Visualización del contenido del archivo (mandatos pg, more, page y cat) . . . . . . . . . . . 78
Búsqueda de series en los archivos de texto (mandato grep) . . . . . . . . . . . . . . . 80
Clasificación de los archivos de texto (mandato sort) . . . . . . . . . . . . . . . . . . 80
Comparación de archivos (mandato diff) . . . . . . . . . . . . . . . . . . . . . . . 81
Cálculo de las palabras, líneas y bytes de los archivos (mandato wc) . . . . . . . . . . . . 82
Visualización de las primeras líneas de los archivos (mandato head) . . . . . . . . . . . . 82
Visualización de las últimas líneas de los archivos (mandato tail) . . . . . . . . . . . . . . 83

Contenido v
Corte de secciones de los archivos de texto (mandato cut) . . . . . . . . . . . . . . . . 83
Pegado de secciones de los archivos de texto (mandato paste) . . . . . . . . . . . . . . 84
Numeración de las líneas de los archivos de texto (mandato nl) . . . . . . . . . . . . . . 85
Eliminación de las columnas de los archivos de texto (mandato colrm) . . . . . . . . . . . . 85
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Enlace de archivos y directorios . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Tipos de enlaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Enlace de archivos (mandato ln) . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Eliminación de archivos enlazados . . . . . . . . . . . . . . . . . . . . . . . . . 89
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Archivos de DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Copia de archivos de DOS en archivos del sistema operativo base . . . . . . . . . . . . . 90
Copia de archivos del sistema operativo base en archivos de DOS . . . . . . . . . . . . . 90
Supresión de archivos de DOS . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Listado del contenido de un directorio de DOS. . . . . . . . . . . . . . . . . . . . . 91
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Resumen de mandatos para archivos . . . . . . . . . . . . . . . . . . . . . . . . . 92
Procedimientos para el manejo de archivos . . . . . . . . . . . . . . . . . . . . . . 92
Enlace de archivos y directorios . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Archivos de DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Capítulo 7. Impresoras, trabajos de impresión y colas . . . . . . . . . . . . . . . . . 95


Terminología para impresoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Trabajo de impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Cola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Dispositivo de cola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
qdaemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Spooler de impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Impresora real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Impresora virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Impresoras locales y remotas . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Componente de fondo de impresora . . . . . . . . . . . . . . . . . . . . . . . . 97
Inicio de un trabajo de impresión (mandato qprt) . . . . . . . . . . . . . . . . . . . . . 97
Requisitos previos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Mandato qprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Cancelación de un trabajo de impresión (mandato qcan) . . . . . . . . . . . . . . . . . 101
Requisitos previos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Mandato qcan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Comprobación del estado del trabajo de impresión (mandato qchk) . . . . . . . . . . . . . 101
Requisitos previos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Vía de acceso rápida de Gestor del sistema basado en la Web . . . . . . . . . . . . . . 102
Mandato qchk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Condiciones de estado de la impresora . . . . . . . . . . . . . . . . . . . . . . . . 103
Especificación de la prioridad de un trabajo de impresión (mandato qpri) . . . . . . . . . . . 103
Requisitos previos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Mandato qpri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Retención y liberación de un trabajo de impresión (mandato qhld) . . . . . . . . . . . . . . 104
Requisitos previos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Vía de acceso rápida de Gestor del sistema basado en la Web . . . . . . . . . . . . . . 104
Mandato qhld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Movimiento de un trabajo de impresión a otra cola de impresión (mandato qmov) . . . . . . . . 105

vi Guía del usuario del sistema: Sistema operativo y dispositivos


Requisitos previos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Mandato qmov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Formateo de archivos para impresión (mandato pr) . . . . . . . . . . . . . . . . . . . 106
Impresión de archivos ASCII en una impresora PostScript . . . . . . . . . . . . . . . . . 107
Requisitos previos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Automatización de la conversión de ASCII a PostScript . . . . . . . . . . . . . . . . . . 109
Alteración temporal de la determinación automática de los tipos de archivos de impresión . . . . . 109
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Resumen de mandatos para impresoras, trabajos de impresión y colas . . . . . . . . . . . . 110
Información relacionada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Capítulo 8. Archivos de seguridad y medios de almacenamiento . . . . . . . . . . . . .


111
Política de copias de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
Soporte para copias de seguridad . . . . . . . . . . . . . . . . . . . . . . . . .
113
Formateo de disquetes (mandato format o fdformat) . . . . . . . . . . . . . . . . . . .
114
Comprobación de la integridad del sistema de archivos (mandato fsck) . . . . . . . . . . . .
115
Copia en o desde disquetes (mandato flcopy) . . . . . . . . . . . . . . . . . . . . .
116
Copia de archivos en cinta o disco (mandato cpio -o) . . . . . . . . . . . . . . . . . . .
116
Copia de archivos de una cinta o disco (mandato cpio -i) . . . . . . . . . . . . . . . . .
117
Copia en o desde cintas (mandato tcopy) . . . . . . . . . . . . . . . . . . . . . . .
117
Comprobación de la integridad de una cinta (mandato tapechk) . . . . . . . . . . . . . . .
118
Compresión de archivos (mandatos compress y pack) . . . . . . . . . . . . . . . . . .
118
Mandato compress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
119
Mandato pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
119
Expansión de archivos comprimidos (mandatos uncompress y unpack) . . . . . . . . . . . .
120
Mandato uncompress . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
120
Mandato unpack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
120
Realización de la copia de seguridad de los archivos (mandato backup) . . . . . . . . . . . .
121
Mandato backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122
Restauración de archivos de copia de seguridad (mandato restore) . . . . . . . . . . . . .
123
Mandato restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
Mandato smit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
124
Archivador de archivos (mandato tar). . . . . . . . . . . . . . . . . . . . . . . . .
124
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
Resumen de mandatos para los archivos de copia de seguridad y el soporte de almacenamiento 125
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Capítulo 9. Seguridad de los archivos y del sistema . . . . . . . . . . . . . . . . . . 127


Amenazas a la seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Seguridad básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Propiedad de archivos y grupos de usuarios . . . . . . . . . . . . . . . . . . . . . . 129
Cambio del propietario del archivo o directorio (mandato chown) . . . . . . . . . . . . . 129
Modalidades de acceso a archivos y directorios . . . . . . . . . . . . . . . . . . . . 130
Visualización de la información del grupo (mandato lsgroup) . . . . . . . . . . . . . . . 132
Cambio de los permisos de los archivos o directorios (mandato chmod) . . . . . . . . . . . 133
Listas de controles de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Permisos base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Permisos ampliados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Ejemplo de Lista de control de accesos . . . . . . . . . . . . . . . . . . . . . . . 136
Autorización de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Visualización de la información de control de accesos (mandato aclget) . . . . . . . . . . . 138
Establecimiento de la información de control de accesos (mandato aclput) . . . . . . . . . . 138
Edición de la información de control de accesos (mandato acledit) . . . . . . . . . . . . . 139
Bloqueo del terminal (mandato lock o xlock) . . . . . . . . . . . . . . . . . . . . . . 139

Contenido vii
Resumen de mandatos para la seguridad de los archivos y del sistema . . . . . . . . . . . . 139
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Capítulo 10. Personalización del entorno del usuario . . . . . . . . . . . . . . . . . 141


Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Visión general de los archivos de arranque del sistema . . . . . . . . . . . . . . . . . . 142
Archivo /etc/profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Archivo /etc/environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Archivo .profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Archivo .env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Visión general de los archivos de arranque de AIXwindows . . . . . . . . . . . . . . . . 144
Archivo .xinitrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Archivo .Xdefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Archivo .mwmrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Procedimientos de personalización . . . . . . . . . . . . . . . . . . . . . . . . . 149
Exportación de variables de shell (mandato de shell export) . . . . . . . . . . . . . . . 149
Cambio del font de la pantalla (mandato chfont). . . . . . . . . . . . . . . . . . . . 150
Cambio de las teclas de control (mandato stty) . . . . . . . . . . . . . . . . . . . . 151
Cambio del indicador del sistema . . . . . . . . . . . . . . . . . . . . . . . . . 151
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Personalización del programa de ventanas InfoExplorer . . . . . . . . . . . . . . . . . . 152
Cambio de los valores por omisión de la interfaz de ventanas de InfoExplorer . . . . . . . . 153
Cambio de las preferencias de la interfaz de ventanas de InfoExplorer . . . . . . . . . . . 154
Resumen de la personalización del entorno de usuario . . . . . . . . . . . . . . . . . . 156
Archivos de arranque del sistema . . . . . . . . . . . . . . . . . . . . . . . . . 156
Archivos de arranque de AIXwindows . . . . . . . . . . . . . . . . . . . . . . . 156
Procedimientos de personalización . . . . . . . . . . . . . . . . . . . . . . . . 156
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Capítulo 11. Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159


Funciones del shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Shells disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Terminología de los shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Creación y ejecución de un script de shell . . . . . . . . . . . . . . . . . . . . . . 164
Especificación de un shell para un archivo de script . . . . . . . . . . . . . . . . . . 164
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Mandatos del shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . . . . . . 165
Mandatos compuestos del shell Korn. . . . . . . . . . . . . . . . . . . . . . . . 166
Funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Delimitadores en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . . . . 168
Palabras reservadas en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . 170
Alias de mandatos en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . . 170
Alias de seguimiento de vía . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Sustitución de la tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Sustitución de parámetros en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . 172
Parámetros en el shell Korn . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Sustitución de parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Parámetros especiales predefinidos . . . . . . . . . . . . . . . . . . . . . . . . 174
Variables que establece el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . 174
Variables que utiliza el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . 175
Sustitución de mandatos en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . 176
Evaluación aritmética en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . 177
Subdivisión de campos en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . 179
Sustitución del nombre del archivo en el shell Korn o POSIX . . . . . . . . . . . . . . . . 179
Eliminación de delimitadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

viii Guía del usuario del sistema: Sistema operativo y dispositivos


Redirección de entrada y de salida en el shell Korn o shell POSIX . . . . . . . . . . . . . . 181
Recurso de coproceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Estado de la salida en el shell Korn o shell POSIX. . . . . . . . . . . . . . . . . . . . 183
Mandatos del shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . . . . . . 184
Entorno del shell Korn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Inicio del shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Histórico de mandatos del shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . 185
Mandatos incorporados del shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . 186
Descripciones de los mandatos incorporados especiales . . . . . . . . . . . . . . . . 186
Descripciones de mandatos incorporados normales . . . . . . . . . . . . . . . . . . 193
Lista de mandatos incorporados del shell Korn o shell POSIX . . . . . . . . . . . . . . . 197
Mandatos incorporados especiales . . . . . . . . . . . . . . . . . . . . . . . . 197
Mandatos incorporados normales . . . . . . . . . . . . . . . . . . . . . . . . . 197
Expresiones condicionales para el shell Korn o el shell POSIX . . . . . . . . . . . . . . . 198
Control de trabajos en el shell Korn o shell POSIX. . . . . . . . . . . . . . . . . . . . 199
Manejo de señales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Edición en línea en el shell Korn o shell POSIX . . . . . . . . . . . . . . . . . . . . . 200
Modalidad de edición emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Modalidad de edición vi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Shell Korn ampliado (ksh93) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Funciones de ksh93 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Información relacionada con el shell Korn . . . . . . . . . . . . . . . . . . . . . . . 209
Shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Entorno de shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Shell restringido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Mandatos del shell Bourne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Caracteres delimitadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Manejo de señales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Mandatos compuestos del shell Bourne . . . . . . . . . . . . . . . . . . . . . . . 214
Palabras reservadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Mandatos incorporados del shell Bourne . . . . . . . . . . . . . . . . . . . . . . 215
Descripciones de mandatos especiales . . . . . . . . . . . . . . . . . . . . . . . 215
Sustitución de mandatos en el shell Bourne . . . . . . . . . . . . . . . . . . . . . 219
Sustitución de variables y nombres de archivo en el shell Bourne . . . . . . . . . . . . . . 219
Sustitución de variables en el shell Bourne . . . . . . . . . . . . . . . . . . . . . 220
Variables definidas por el usuario . . . . . . . . . . . . . . . . . . . . . . . . . 220
Sustitución condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Parámetros de posición. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Sustitución de nombres de archivos en el shell Bourne . . . . . . . . . . . . . . . . . 225
Clases de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Redirección de entrada y de salida en el shell Bourne . . . . . . . . . . . . . . . . . . 226
Lista de mandatos incorporados del shell Bourne . . . . . . . . . . . . . . . . . . . . 226
Información relacionada con el shell Bourne . . . . . . . . . . . . . . . . . . . . . . 227
Shell C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Limitaciones del shell C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Manejo de señales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Mandatos del shell C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Mandatos incorporados del shell C . . . . . . . . . . . . . . . . . . . . . . . . 229
Descripciones de mandatos del shell C . . . . . . . . . . . . . . . . . . . . . . . 230
Expresiones y operadores del shell C . . . . . . . . . . . . . . . . . . . . . . . 236
Sustitución de mandatos en el shell C . . . . . . . . . . . . . . . . . . . . . . . 237
Ejecución de mandatos no incorporados del shell C . . . . . . . . . . . . . . . . . . 238
Sustitución del histórico en el shell C. . . . . . . . . . . . . . . . . . . . . . . . . 238
Listas de histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Especificación de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Delimitación con apóstrofos y comillas . . . . . . . . . . . . . . . . . . . . . . . 241

Contenido ix
Sustitución de alias en el shell C . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Sustitución de variables y nombres de archivo en el shell C . . . . . . . . . . . . . . . . 242
Sustitución de variables en el shell C. . . . . . . . . . . . . . . . . . . . . . . . 242
Sustitución de nombres de archivos en el shell C . . . . . . . . . . . . . . . . . . . 244
Expansión de nombres de archivo . . . . . . . . . . . . . . . . . . . . . . . . . 244
Abreviatura de los nombres de archivos. . . . . . . . . . . . . . . . . . . . . . . 245
Clases de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Variables de entorno en el shell C . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Redirección de entrada y salida en el shell C. . . . . . . . . . . . . . . . . . . . . . 248
Flujo de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Control de trabajos en el shell C . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Lista de mandatos incorporados del shell C . . . . . . . . . . . . . . . . . . . . . . 250
Información relacionada del shell C . . . . . . . . . . . . . . . . . . . . . . . . . 251

Capítulo 12. Herramientas y programas de utilidad varios. . . . . . . . . . . . . . . . 253


Localización de un mandato mediante una palabra clave (mandato apropos) . . . . . . . . . . 253
Visualización de una agenda (mandato cal) . . . . . . . . . . . . . . . . . . . . . . 253
Visualización de mensajes de recordatorio (mandato calendar) . . . . . . . . . . . . . . . 254
Visualización de información de ayuda para nuevos usuarios (mandato help) . . . . . . . . . . 255
Inicio de los cursos de formación asistida por ordenador (mandato learn) . . . . . . . . . . . 255
Recordatorio de salida (mandato leave) . . . . . . . . . . . . . . . . . . . . . . . . 256
Obtención de los factores de un número (mandato factor) . . . . . . . . . . . . . . . . . 256
Conversión de unidades de medida (mandato units) . . . . . . . . . . . . . . . . . . . 257
Envío de mensajes a otro usuario que ha iniciado la sesión (mandato write) . . . . . . . . . . 259
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Resumen de mandatos para herramientas y programas de utilidad varios . . . . . . . . . . . 261
Información relacionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

Capítulo 13. Servicio de biblioteca de documentación . . . . . . . . . . . . . . . . . 263


Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Utilización del Servicio de biblioteca de documentación . . . . . . . . . . . . . . . . . . 263
Cómo cambiar el idioma del Servicio de biblioteca de documentación. . . . . . . . . . . . . 264

Apéndice A. Acceso a la información con InfoExplorer . . . . . . . . . . . . . . . . . 267


Utilización de la interfaz ASCII de InfoExplorer . . . . . . . . . . . . . . . . . . . . . 267
Utilización de las pantallas de InfoExplorer . . . . . . . . . . . . . . . . . . . . . 267
Utilización de menús . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Obtención de ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Iniciación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Inicio del programa ASCII InfoExplorer . . . . . . . . . . . . . . . . . . . . . . . 269
Reconocimiento de los tipos de pantallas . . . . . . . . . . . . . . . . . . . . . . 269
Selección de un enlace de hipertexto. . . . . . . . . . . . . . . . . . . . . . . . 270
Desplazamiento por la información . . . . . . . . . . . . . . . . . . . . . . . . 271
Selección de una opción de menú . . . . . . . . . . . . . . . . . . . . . . . . . 271
Cómo volver a una ubicación anterior . . . . . . . . . . . . . . . . . . . . . . . 272
Búsqueda de información . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Impresión de información . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Acceso a la ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Utilización de teclas especiales y de secuencias de teclas . . . . . . . . . . . . . . . . 276
Inicio de una biblioteca de InfoExplorer alternativa . . . . . . . . . . . . . . . . . . . 278
Detención del programa ASCII InfoExplorer . . . . . . . . . . . . . . . . . . . . . 278
Personalización del programa ASCII InfoExplorer . . . . . . . . . . . . . . . . . . . . 278
Cambio de los valores por omisión en la interfaz ASCII de InfoExplorer . . . . . . . . . . . 279
Cambio de las preferencias en la interfaz ASCII de InfoExplorer . . . . . . . . . . . . . . 280
Recursos de X disponibles para el programa InfoExplorer . . . . . . . . . . . . . . . . . 281

x Guía del usuario del sistema: Sistema operativo y dispositivos


Apéndice B. Avisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

Contenido xi
xii Guía del usuario del sistema: Sistema operativo y dispositivos
Acerca de este manual
Este manual contiene información para los usuarios principiantes del sistema que deseen adquirir un
mayor grado de experiencia con el sistema operativo. Facilita información sobre, por ejemplo, cómo
ejecutar los mandatos, cómo manejar procesos, archivos y directorios y cómo imprimir. Asimismo,
presenta mandatos del sistema para realizar tareas tales como la protección de archivos, la utilización de
medios de almacenamiento, la personalización de archivos de entorno (.profile, .Xdefaults, .mwmrc) y la
escritura de scripts de shell. Para los usuarios de DOS, esta guía presenta procedimientos para la
utilización de archivos de DOS en este entorno.

Los usuarios de un entorno de red que estén interesados en obtener más información acerca de los
mandatos de comunicaciones del sistema operativo, deben leer la publicación AIX 5L Version 5.1 Guía del
usuario del sistema: Comunicaciones y redes.

Quién debe utilizar este manual


Este manual se destina a todos los usuarios del sistema.

Resaltado
En este manual se utilizan los convenios de resaltado siguientes:

Negrita Identifica mandatos, palabras clave, archivos, directorios y otros elementos cuyos nombres están
predefinidos por el sistema.
Cursiva Identifica parámetros cuyos nombres o valores reales deben ser proporcionados por el usuario.
Monoespaciado Identifica ejemplos de valores determinados de datos, ejemplos de texto similar al que el usuario
puede ver visualizado, ejemplos de porciones de código de programa similar al que el usuario
podría haber escrito como programador, mensajes del sistema o información que debe escribir el
propio usuario.

ISO 9000
En el desarrollo y la fabricación de este producto se han utilizado sistemas de calidad registrados que
cumplen la norma ISO 9000.

Publicaciones relacionadas
Encontrará información relacionada en los manuales siguientes:
v Guía rápida de iniciación
v AIX 5L Version 5.1 Guía del usuario del sistema: Comunicaciones y redes
v AIX 5L Version 5.1 System Management Guide: Operating System and Devices
v AIX 5L Version 5.1 Guide to Printers and Printing
v AIX 5L Version 5.1 Commands Reference
v AIX 5L Version 5.1 Files Reference
v Common Desktop Environment 1.0: User’s Guide

Marcas registradas
Los términos siguientes son marcas registradas de International Business Machines Corporation en los
Estados Unidos y/o en otros países:
v AIX
v AIXwindows

© Copyright IBM Corp. 1997, 2001 xiii


v IBM
v RS/6000

UNIX es una marca registrada de The Open Group en los Estados Unidos y/o en otros países.

Otros nombres de empresas, productos o servicios pueden ser marcas registradas o marcas de servicios
de otras empresas.

xiv Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 1. Nombres de inicio de sesión, ID del sistema y
contraseñas
Para que el sistema operativo pueda proporcionarle el entorno correcto, debe identificarse. Para
identificarse en el sistema operativo, inicie la sesión escribiendo su nombre de inicio de sesión (también
denominado ID de usuario o nombre de usuario) y una contraseña. Las contraseñas son un sistema de
seguridad. Nadie que conozca su nombre de inicio de sesión podrá iniciar la sesión en el sistema a no
ser que también conozca la contraseña.

Si el sistema está configurado como un sistema multiusuario, los usuarios autorizados deberán tener una
cuenta, una contraseña y un nombre de inicio de sesión en el sistema. El sistema operativo hace un
seguimiento de los recursos utilizados por cada usuario. Esto se denomina contabilidad del sistema. Cada
usuario recibirá un área privada en el espacio de almacenamiento del sistema, que se denomina sistema
de archivos. Al iniciar la sesión, parece como si el sistema de archivos sólo tuviera los archivos del
usuario, pero hay millares de archivos en el sistema.

Es posible tener más de un nombre de inicio de sesión válido en un sistema. Si desea cambiar de un
nombre de inicio de sesión a otro, no tiene que finalizar la sesión del sistema. Puede utilizar los distintos
nombres de inicio de sesión simultáneamente en distintos shells o consecutivamente en el mismo shell sin
necesidad de finalizar la sesión. Además, si el sistema es parte de una red con conexiones a otros
sistemas, puede iniciar la sesión en cualquiera de los sistemas en los que tiene un nombre de inicio de
sesión. Esto se conoce como inicio de sesión remoto.

Cuando haya terminado de trabajar en el sistema operativo, deberá finalizar la sesión para asegurarse de
que los archivos y los datos están protegidos.

En este apartado se explica lo siguiente:


v “Visión general del inicio y del fin de sesión” en la página 2
– “Inicio de sesión en el sistema operativo” en la página 2
– “Inicio de la sesión más de una vez (mandato login)” en la página 3
– “Forma de convertirse en otro usuario en un sistema (mandato su)” en la página 3
– “Supresión de los mensajes de inicio de sesión” en la página 4
– “Finalización de la sesión del sistema operativo (mandatos exit y logout)” en la página 4 (mandatos
exit y logout)
– “Detención del sistema operativo (mandato shutdown)” en la página 5
v “Identificación de usuario y de sistema” en la página 5
– “Visualización del nombre de inicio de sesión (mandatos whoami y logname)” en la página 5
– “Visualización del nombre del sistema operativo (mandato uname)” en la página 6
– “Visualización del nombre del sistema (mandato uname)” en la página 7
– “Visualización de quién ha iniciado la sesión (mandato who)” en la página 7
– “Visualización de los ID de usuario (mandato id)” en la página 7
v “Contraseñas” en la página 8
– “Directrices para contraseñas” en la página 8
– “Cambio de la contraseña (mandato passwd)” en la página 9
– “Establecimiento de la contraseña en nula (mandato passwd)” en la página 10
v “Resumen de mandatos para nombres de inicio de sesión, ID del sistema y contraseñas” en la
página 11

© Copyright IBM Corp. 1997, 2001 1


Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Capítulo 10. Personalización del entorno del usuario” en la página 141

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

Visión general del inicio y del fin de sesión


Para poder utilizar el sistema operativo, el sistema debe estar en funcionamiento y el usuario debe tener
tener iniciada una sesión. Cuando inicia la sesión en el sistema operativo, está identificándose en el
sistema y permitiendo que el sistema configure el entorno.

Este apartado trata acerca de los siguientes procedimientos:


v “Inicio de sesión en el sistema operativo”
v “Inicio de la sesión más de una vez (mandato login)” en la página 3
v “Forma de convertirse en otro usuario en un sistema (mandato su)” en la página 3
v “Supresión de los mensajes de inicio de sesión” en la página 4
v “Finalización de la sesión del sistema operativo (mandatos exit y logout)” en la página 4
v “Detención del sistema operativo (mandato shutdown)” en la página 5

Inicio de sesión en el sistema operativo


Antes de comenzar a trabajar en el sistema, debe iniciar una sesión. Después de encender el sistema,
inicie la sesión en éste para iniciar una sesión.

Puede que el sistema se haya configurado para que sólo pueda iniciar la sesión durante determinadas
horas del día y en determinados días de la semana. Si intenta iniciar la sesión en un momento no
permitido, se le denegará el acceso. El administrador del sistema puede comprobar cuáles son sus horas
de inicio de sesión.

Debe iniciar la sesión en el indicador de inicio de sesión (login). Cuando inicie la sesión en el sistema
operativo, se situará automáticamente en el directorio inicial (también llamado directorio de inicio de
sesión).

Si la máquina no se ha encendido
1. Ponga los interruptores de alimentación de cada dispositivo conectado en la posición de encendido.
2. Ponga el conmutador de modalidad de llave de la unidad del sistema en la posición Normal.
3. Arranque la unidad del sistema poniendo el interruptor de alimentación en la posición de encendido (I).
4. Observe el visor de tres dígitos. Cuando se hayan completado las pruebas automáticas sin error, el
visor de tres dígitos estará en blanco.

2 Guía del usuario del sistema: Sistema operativo y dispositivos


Si se produce un error que requiere su atención, aparecerá permanentemente un código de tres dígitos y
la unidad del sistema se detendrá. Consulte al administrador del sistema o consulte la publicación
Messages Guide and Reference para obtener más información acerca de los códigos de error y su
recuperación.

Cuando las autopruebas de encendido se han completado satisfactoriamente, en la pantalla se muestra


un indicador de inicio de sesión parecido al siguiente:
login:

Si no se visualiza el indicador de inicio de sesión, consulte al administrador del sistema.

Si el sistema ya se ha encendido
1. Escriba el nombre de inicio de sesión a continuación del indicador login: y pulse Intro:
login: NombreInicioSesión

Por ejemplo, si el nombre de inicio de sesión es Carlos:


login: carlos
2. Si aparece el indicador password:, escriba la contraseña y pulse Intro. (La contraseña no se visualiza
en la pantalla cuando se escribe).
password: [su contraseña)

Si no aparece el indicador de contraseña, esto significa que no tiene ninguna contraseña definida; puede
empezar a trabajar en el sistema operativo.

Tras iniciar la sesión, en función de la configuración del sistema operativo, el sistema se iniciará en una
interfaz de línea de mandatos (shell) o en una interfaz gráfica (por ejemplo, AIXwindows o Common
Desktop Environment (CDE)).

Inicio de la sesión más de una vez (mandato login)


Puede tener más un inicio de sesión simultáneo. Para hacerlo, utilice el mismo nombre de inicio de sesión
o utilice otros nombres de inicio de sesión para iniciar la sesión en el sistema. Esto puede resultar útil si
está trabajando en más de un proyecto y desea mantener cuentas separadas.

Nota: Cada sistema tiene un número máximo de nombres de inicio de sesión que pueden estar
activos al mismo tiempo. Este número queda determinado por el contrato de licencia y varía
dependiendo de las instalaciones.

Por ejemplo, si el otro nombre de inicio de sesión que utiliza es carlos2, en el indicador de mandatos,
escriba:
login carlos2

Si aparece el indicador password:, escriba la contraseña y pulse Intro. (La contraseña no se visualiza en
la pantalla cuando se escribe).

Ahora tiene dos inicios de sesión en ejecución en el sistema.

Consulte el mandato login en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Forma de convertirse en otro usuario en un sistema (mandato su)


El mandato su (switch user, conmutar usuario) le permite cambiar el ID de usuario que se asocia a una
sesión, si conoce el nombre de inicio de sesión de ese usuario.

Capítulo 1. Nombres de inicio de sesión, ID del sistema y contraseñas 3


Por ejemplo, si desea conmutar, o cambiar, para convertirse en el usuario juan, en el indicador de
mandatos, escriba:
su juan

Si aparece el indicador password:, escriba la contraseña de Juan y pulse Intro. Si no conoce la


contraseña, se le denegará la petición.

Ahora, su ID de usuario es juan.

Para verificar si su ID de usuario es juan, utilice el mandato id. Para obtener más información acerca del
mandato id, consulte el apartado “Visualización de los ID de usuario (mandato id)” en la página 7.

Consulte el mandato su en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Supresión de los mensajes de inicio de sesión


Tras un inicio de sesión satisfactorio, el mandato login visualiza el mensaje del día, la fecha y la hora de
los últimos intentos de inicio de sesión satisfactorios y no satisfactorios de este usuario y el número total
de intentos de inicio de sesión no satisfactorios de este usuario desde el último cambio de la información
de autentificación (por lo general, una contraseña). Estos mensajes se suprimen si existe un archivo
.hushlogin en el directorio inicial.

En el indicador de mandatos del directorio inicial, escriba:


touch .hushlogin

El mandato touch crea el archivo vacío denominado .hushlogin, si no existe.

La próxima vez que inicie la sesión, se suprimirán todos los mensajes de inicio de sesión. Puede indicar
al sistema que conserve el mensaje del día y que suprima otros mensajes de inicio de sesión.

Consulte el mandato touch en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Finalización de la sesión del sistema operativo (mandatos exit y


logout)
En el indicador de mandatos, realice una de las acciones siguientes:

Pulse la secuencia de teclas de control de fin de archivo (teclas Control-D).

O bien

Escriba exit y pulse Intro.

O bien

Escriba logout y pulse Intro.

Tras finalizar la sesión, el sistema visualizará el indicador login:.

Consulte el mandato logout en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

4 Guía del usuario del sistema: Sistema operativo y dispositivos


Atención: No apague el sistema. Si apagara el sistema, finalizarían todos los procesos que se
ejecutan en el sistema. Si existen otros usuarios que están trabajando en el sistema, o si existen
trabajos de fondo en ejecución, podrían perderse datos. Antes de detener el sistema, realice los
procedimientos de conclusión adecuados.

Detención del sistema operativo (mandato shutdown)


Si dispone de autorización de usuario root, puede utilizar el mandato shutdown para detener el sistema.
No apague la alimentación del sistema sin utilizar el mandato shutdown. De hacerlo, podría perder datos.
Si no tiene autorización para utilizar el mandato shutdown, lo único que ha de hacer es finalizar la sesión
del sistema operativo y dejarlo en ejecución.

En el indicador de mandatos, escriba:


shutdown

Cuando se complete el mandato shutdown y el sistema operativo detenga su ejecución, recibirá el


mensaje siguiente:
....Shutdown completed....

Consulte el mandato shutdown en la publicación AIX 5L Version 5.1 Commands Reference para conocer
la sintaxis exacta.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Capítulo 10. Personalización del entorno del usuario” en la página 141

Identificación de usuario y de sistema


Los siguientes procedimientos describen distintos mandatos disponibles para visualizar información que
identifica a los usuarios del sistema y el sistema que está utilizando.
v “Visualización del nombre de inicio de sesión (mandatos whoami y logname)”
v “Visualización del nombre del sistema operativo (mandato uname)” en la página 6
v “Visualización del nombre del sistema (mandato uname)” en la página 7
v “Visualización de quién ha iniciado la sesión (mandato who)” en la página 7
v “Visualización de los ID de usuario (mandato id)” en la página 7

Visualización del nombre de inicio de sesión (mandatos whoami y


logname)
Cuando se tiene más de un inicio de sesión simultánea, suele ser fácil perder la pista de los nombres de
inicio de sesión o, en particular, del nombre de inicio de sesión que se utiliza en este momento.

Mandato whoami
Para determinar qué nombre de inicio de sesión se está utilizando, en el indicador de mandatos, escriba:
whoami

El sistema mostrará una información parecida a esta:

Capítulo 1. Nombres de inicio de sesión, ID del sistema y contraseñas 5


carlos

En este ejemplo, el nombre de inicio de sesión es carlos.

Consulte el mandato whoami en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Mandato who am i
Una variante del mandato who, el mandato who am i, visualiza el nombre del inicio de sesión, el nombre
del terminal y la hora del inicio de sesión.

En el indicador de mandatos, escriba:


who am i

El sistema mostrará una información parecida a esta:


carlos pts/0 Jun 21 07:53

En este ejemplo, el nombre de inicio de sesión es carlos, el nombre del terminal es pts/0 y también se
indica que este usuario ha iniciado la sesión el 21 de junio a las 07:53.

Consulte el mandato who en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Mandato logname
Otra variante del mandato who, el mandato logname, visualiza la misma información que el mandato
who.

En el indicador de mandatos, escriba:


logname

El sistema mostrará una información parecida a esta:


carlos

En este ejemplo, el nombre de inicio de sesión es carlos.

Consulte el mandato logname en la publicación AIX 5L Version 5.1 Commands Reference para conocer
la sintaxis exacta.

Visualización del nombre del sistema operativo (mandato uname)


El mandato uname visualiza el nombre del sistema operativo que está utilizando.

Por ejemplo, en el indicador de mandatos, escriba:


uname

El sistema mostrará una información parecida a esta:


AIX

En este ejemplo, el sistema operativo es AIX.

Consulte el mandato uname en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

6 Guía del usuario del sistema: Sistema operativo y dispositivos


Visualización del nombre del sistema (mandato uname)
El mandato uname con el distintivo -n visualiza el nombre del sistema si está en una red. El nombre del
sistema identifica al sistema en la red si no coincide con el ID de inicio de sesión.

Por ejemplo, en el indicador de mandatos, escriba:


uname -n

El sistema mostrará una información parecida a esta:


fernando

En este ejemplo, el nombre del sistema es fernando.

Consulte el mandato uname en la publicación AIX 5L Version 5.1 Commands Reference para obtener
más información y conocer la sintaxis exacta.

Visualización de quién ha iniciado la sesión (mandato who)


El mandato who visualiza información acerca de todos los usuarios que actualmente se encuentran en el
sistema local. Se muestra la siguiente información: nombre de inicio de sesión, nombre de estación de
trabajo y fecha y hora del inicio de sesión.

Nota: Este mandato sólo identifica a los usuarios del nodo local.

Para que se visualice información acerca de quién está utilizando el nodo del sistema local, escriba:
who

El sistema mostrará una información parecida a esta:


alberto lft/0 Jun 8 08:34
carlos pts/1 Jun 8 07:07

En este ejemplo, el usuario alberto, que está en el terminal lft/0, ha iniciado la sesión el día 8 de junio
a las 08:34.

Consulte el mandato who en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización de los ID de usuario (mandato id)


El mandato id visualiza los identificadores (ID) del sistema correspondientes al usuario especificado. Los
ID del sistema son números que identifican usuarios y grupos de usuarios en el sistema. El mandato id
muestra la siguiente información, cuando es pertinente:
v Nombre del usuario e ID de usuario real
v Nombre del grupo e ID de grupo real del usuario
v Nombre de los grupos complementarios e ID de grupos complementarios del usuario, si existen.

Por ejemplo, en el indicador de mandatos, escriba:


id

El sistema mostrará una información parecida a esta:


uid=1544(sah) gid=300(build) euid=0(root) egid=9(printq) groups=0(system),10(audit)

Capítulo 1. Nombres de inicio de sesión, ID del sistema y contraseñas 7


En este ejemplo, el usuario tiene el nombre de usuario sah con el número de ID 1544; el nombre de grupo
primario build con el número de ID 300; el nombre de usuario efectivo root con el número de ID 0; el
nombre de grupo efectivo printq con el número de ID 9; y los dos nombres de grupos complementarios
system y audit, con los números de ID 0 y 10, respectivamente.

Por ejemplo, en el indicador de mandatos, escriba:


id carlos

El sistema mostrará una información parecida a esta:


uid=2988(carlos) gid=1(staff)

En este ejemplo, el usuario carlos tiene el número de ID 2988 y sólo tiene el nombre de grupo primario
staff con el número de ID 1.

Consulte el mandato id en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Capítulo 10. Personalización del entorno del usuario” en la página 141

Contraseñas
El sistema asocia una contraseña con cada cuenta. Una contraseña exclusiva proporciona parte de
seguridad del sistema a los archivos. La utilización del sistema y los datos son recursos valiosos que
requieren protección. La seguridad es un aspecto importante de los sistemas informáticos ya que impide
que personas no autorizadas tengan acceso al sistema y que sean invadidos por archivos de otros
usuarios. La seguridad también puede proporcionar a algunos usuarios privilegios exclusivos cuyos
mandatos pueden utilizar y a cuyos archivos pueden acceder. Para lograr una protección eficaz, algunos
administradores del sistema sólo permiten a los usuarios acceder a determinados mandatos o archivos.

Este apartado trata acerca de los siguientes procedimientos:


v “Directrices para contraseñas”
v “Cambio de la contraseña (mandato passwd)” en la página 9
v “Establecimiento de la contraseña en nula (mandato passwd)” en la página 10

Directrices para contraseñas


Debe tener una contraseña exclusiva. Las contraseñas no deben compartirse. Proteja las contraseñas
como a los demás bienes de la empresa. Cuando cree las contraseñas, asegúrese de que no pueden
adivinarse fácilmente, pero que no sean tan difíciles de recordar que sea necesario anotarlas.

Utilizar contraseñas opacas es un buen modo de proteger el ID de usuario. Las contraseñas que se
basan en información personal, por ejemplo el nombre y la fecha de cumpleaños, son malas contraseñas.
Incluso ciertas palabras de uso común pueden adivinarse fácilmente.

Las buenas contraseñas tiene al menos seis caracteres e incluyen caracteres no alfabéticos. También son
buenas las extrañas combinaciones de palabras y palabras cuya ortografía se altera.

8 Guía del usuario del sistema: Sistema operativo y dispositivos


Nota: Si la contraseña es tan difícil de recordar que tiene que anotarla, no es una buena
contraseña.

Para seleccionar una contraseña, utilice las directrices siguientes:


v No anote las contraseñas. No obstante, si no queda más remedio que anotarla, guárdela en un lugar
físicamente seguro, por ejemplo un archivador cerrado.
v No utilice el ID de usuario como contraseña. Tampoco lo utilice al revés ni modificado de algún otro
modo.
v No reutilice las contraseñas. Puede que el sistema se haya configurado para rechazar la reutilización
de contraseñas.
v No utilice el nombre de una persona como contraseña.
v No utilice palabras que puedan encontrarse en el diccionario ortográfico en línea como contraseñas.
v No utilice contraseñas de menos de seis caracteres.
v No utilice palabras obscenas; son algunas de las primeras que se comprueban cuando alguien trata de
adivinar contraseñas.
v Utilice contraseñas que sean fáciles de recordar, de modo que no sea necesario anotarlas.
v Utilice contraseñas que usen tanto letras como números y que incluyan tanto letras minúsculas como
letras mayúsculas.
v Utilice dos palabras, separadas por un número, como contraseña.
v Utilice contraseñas que puedan pronunciarse. Son más fáciles de recordar.

Cambio de la contraseña (mandato passwd)


Utilice el mandato passwd para cambiar la contraseña.
1. En el indicador de mandatos, escriba:
passwd

Si no tiene ninguna contraseña, sáltese el paso 2.


2. Aparecerá el indicador siguiente:
Cambiando contraseña de IDusuario
Contraseña antigua de IDusuario:

Esto impide que un usuario no autorizado cambie la contraseña mientras el usuario no trabaja con el
sistema. Escriba la contraseña actual y pulse Intro.
3. Aparece el siguiente indicador:
Nueva contraseña de IDusuario:

Escriba la nueva contraseña que desea utilizar y pulse Intro.


4. Aparecerá el indicador siguiente, solicitándole que vuelva a escribir la nueva contraseña.
Vuelva a entrar la nueva contraseña:

Esta petición le impide definir una contraseña como una serie de texto tan extraña que no puede
reproducir.

Ejemplos
1. Para cambiar la contraseña del usuario Carlos, escriba:
passwd

Pulse Intro.

El sistema visualizará información parecida a la siguiente:

Capítulo 1. Nombres de inicio de sesión, ID del sistema y contraseñas 9


Cambiando la contraseña para "Carlos"
Contraseña antigua de Carlos:
Nueva contraseña de Carlos:
Vuelva a entrar la nueva contraseña:
$
2. En el ejemplo siguiente se entra la contraseña actual de forma incorrecta:
$ passwd
Cambiando la contraseña para "Carlos"
Contraseña antigua de Carlos:
La entrada no coincide con la contraseña antigua.
No está autorizado a cambiar la contraseña de
"Carlos".
$
3. En el ejemplo siguiente se vuelve a entrar la nueva contraseña de forma incorrecta:
$ passwd
Cambiando la contraseña para "Carlos"
Contraseña antigua de Carlos:
Nueva contraseña de Carlos:
Vuelva a entrar la nueva contraseña:
La entrada de contraseña no coincide, vuelva a intentarlo.
Nueva contraseña de Carlos:
Vuelva a entrar la nueva contraseña:
$

Consulte el mandato passwd en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Establecimiento de la contraseña en nula (mandato passwd)


Si no desea entrar una contraseña cada vez que inicie la sesión, establezca la contraseña como nula.

Para establecer la contraseña en NULL (en blanco), escriba:


passwd

Cuando se le solicite la nueva contraseña, pulse Intro o Control-D.

El mandato passwd no vuelve a solicitar una entrada de contraseña. Se muestra un mensaje que
comprueba la contraseña NULL.

Consulte el mandato passwd en la publicación AIX 5L Version 5.1 Commands Reference para obtener
más información y conocer la sintaxis exacta.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Capítulo 10. Personalización del entorno del usuario” en la página 141

10 Guía del usuario del sistema: Sistema operativo y dispositivos


Resumen de mandatos para nombres de inicio de sesión, ID del
sistema y contraseñas

Mandatos de inicio y de fin de sesión


login Inicia la sesión
logout Detiene todos los procesos.
shutdown Finaliza la operación del sistema.
su Cambia el ID de usuario asociado con una sesión.
touch Actualiza las horas de acceso y modificación de un archivo o crea un archivo vacío.

Mandatos de identificación del usuario y del sistema


id Muestra las identificaciones del sistema de un usuario especificado.
logname Muestra el nombre de inicio de sesión.
uname Muestra el nombre del sistema operativo actual.
who Identifica los usuarios que actualmente tienen iniciada una sesión.
whoami Muestra el nombre de inicio de sesión.

Mandato de contraseña
passwd Cambia la contraseña del usuario.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Capítulo 10. Personalización del entorno del usuario” en la página 141

Capítulo 1. Nombres de inicio de sesión, ID del sistema y contraseñas 11


12 Guía del usuario del sistema: Sistema operativo y dispositivos
Capítulo 2. Entorno de usuario e información del sistema
Cada nombre de inicio de sesión tiene su propio entorno del sistema. El entorno del sistema es un área
donde se almacena la información común a todos los procesos que se ejecutan en una sesión. También
existen mandatos que se pueden utilizar para visualizar información sobre el sistema.

Esta sección trata sobre los siguientes procedimientos para visualizar información sobre el entorno.
v “Listado de los dispositivos del sistema (mandato lscfg)”
v “Visualización del nombre de la consola (mandato lscons)” en la página 14
v “Visualización del nombre del terminal (mandato tty)” en la página 15
v “Listado de las pantallas disponibles (mandato lsdisp)” en la página 15
v “Listado de los fonts disponibles (mandato lsfont)” en la página 15
v “Listado de las correlaciones del teclado (mandato lskbd)” en la página 16
v “Listado de los productos de software (mandato lslpp)” en la página 16
v “Listado de las asignaciones de teclas de control del terminal (mandato stty)” en la página 17
v “Listado de todas las variables de entorno (mandato env)” en la página 17
v “Visualización del valor de una variable de entorno (mandato printenv)” en la página 18
v “Utilización de idiomas bidireccionales (mandato aixterm)” en la página 19.
v “Resumen de mandatos para el entorno de usuario y la información del sistema” en la página 19

Listado de los dispositivos del sistema (mandato lscfg)


Utilice el mandato lscfg para visualizar el nombre, la ubicación y la descripción de cada dispositivo que se
encuentra en la configuración actual. La lista se ordena por ubicación de dispositivo.

Por ejemplo, para que se listen los dispositivos que se han configurado en el sistema, en el indicador de
mandatos, escriba:
lscfg

Pulse Intro.

El sistema visualiza un mensaje parecido al siguiente:


LISTA DE RECURSOS INSTALADOS

En la máquina se han instalado los recursos siguientes.

+/- = Añadido/suprimido de Lista de pruebas de diagnóstico.


* = NO soportado por los Diagnósticos.

+ sysplanar0 00-00 Placa de CPU


+ fpa0 00-00 Procesador de coma flotante
+ mem0 00-0A Tarjeta de memoria
+ mem1 00-0B Tarjeta de memoria
+ ioplanar0 00-00 Placa de E/S
* f2bus0 00-00 Bus Micro Channel
+ rs2320 00-01 Tarjeta RS232
+ tty0 00-01-0-01 Boca de tarjeta RS232
- tty1 00-01-0-02 Boca de tarjeta RS232
..
..
..

© Copyright IBM Corp. 1997, 2001 13


Para que se visualice información acerca de un dispositivo específico, puede utilizar el distintivo -l. Por
ejemplo, para que se liste la información relacionada con el dispositivo sysplanar0, en el indicador de
mandatos, escriba:
lscfg -l sysplanar0

Pulse Intro.

El sistema visualiza un mensaje parecido al siguiente:


DISPOSITIVO UBICACIÓN DESCRIPCIÓN

sysplanar0 00-00 Placa de CPU

También puede utilizar el mandato lscfg para que se visualicen los datos vitales del producto (VPD),
como los números de pieza, los números de serie y los niveles de cambios técnicos. En algunos
dispositivos, los VPD se recopilan de forma automática y se añaden a la configuración del sistema. En
otros dispositivos, los VPS se entran manualmente. Si delante de los datos aparece ME, ello indica que los
datos se han entrado manualmente.

Por ejemplo, para que se listen los dispositivos que se han configurado en el sistema con datos vitales del
producto, en el indicador de mandatos, escriba:
lscfg -v

Pulse Intro.

El sistema visualiza un mensaje parecido al siguiente:


LISTA DE RECURSOS INSTALADOS CON VPD
En el sistema se han instalado los dispositivos siguientes.
sysplanar0 00-00 Placa de CPU
Número de pieza.........342522
Nivel de cambio técnico............254921
Número de serie.......353535
fpa0 00-00 Procesador de coma flotante
mem0 00-0A Tarjeta de memoria
Nivel de cambio técnico............990221
.
.
.

Consulte el mandato lscfg en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización del nombre de la consola (mandato lscons)


El mandato lscons graba el nombre del dispositivo de consola actual en la salida estándar, por lo general,
en la pantalla.

Por ejemplo, en el indicador de mandatos, escriba:


lscons

Pulse Intro.

El sistema visualiza un mensaje parecido al siguiente:


/dev/lft0

14 Guía del usuario del sistema: Sistema operativo y dispositivos


Consulte el mandato lscons en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización del nombre del terminal (mandato tty)


El mandato tty visualiza el nombre del terminal.

Por ejemplo, en el indicador de mandatos, escriba:


tty

Pulse Intro.

El sistema mostrará una información parecida a esta:


/dev/tty06

En este ejemplo, tty06 es el nombre del terminal y /dev/tty06 es el archivo de dispositivo que contiene
la interfaz de este terminal.

Consulte el mandato tty en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado de las pantallas disponibles (mandato lsdisp)


El mandato lsdisp lista las pantallas actualmente disponibles en el sistema y proporciona un nombre de
identificación de pantalla, el número de ranura, el nombre de pantalla y la descripción de cada una de las
pantallas.

Por ejemplo, para que se listen todas las pantallas disponibles, escriba:
lsdisp

Pulse Intro.

A continuación se muestra un ejemplo de la lista visualizada que indica el nombre de identificación de la


pantalla, el número de ranura, el nombre de pantalla y la descripción. La lista se muestra en orden
ascendente según el número de ranura.
Nombre Ranura Nombre Descripción
ppr0 00-01 POWER_G4 Adaptador de Gráficos Midrange
gda0 00-03 colorgda Adaptador de Pantalla Gráficos Color
ppr1 00-04 POWER_Gt3 Adaptador Gráficos de Entrada Midrange

Consulte el mandato lsdisp en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado de los fonts disponibles (mandato lsfont)


El mandato lsfont visualiza una lista de los fonts disponibles para la pantalla.

Por ejemplo, para que se listen todos los fonts disponibles para la pantalla en formato de lista, escriba:
lsfont -l

Pulse Intro.

A continuación se muestra un ejemplo de la lista que se visualiza, donde se indica el identificador de font,
el tipo de font y el número de caracteres por pantalla:

Capítulo 2. Entorno de usuario e información del sistema 15


ID Nombre Estilo Peso Codificación Col X Líneas
0 Normal-R-N Roman Normal PC850 80 X 251
1 Normal-I-N Italic Normal PC850 120 X 35
2 Bold-R-Bol Roman Bold PC850 120 X 35

Consulte el mandato lsfont en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado de las correlaciones del teclado (mandato lskbd)


El mandato lskbd lista las correlaciones del teclado actualmente disponibles, visualizando un nombre y
número de identificador de teclado predefinido.

Por ejemplo, para que se listen todas las correlaciones de teclado, escriba:
lskbd

Pulse Intro.

Se visualizará la lista siguiente, mostrando el número y nombre del teclado predefinido:


0 USA

Consulte el mandato lskbd en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado de los productos de software (mandato lslpp)


El mandato lslpp visualiza información acerca de los productos de software disponibles en el sistema.

Por ejemplo, para que se listen todos los productos de software del sistema, en el indicador del sistema,
escriba:
lslpp -l -a

Pulse Intro.

A continuación se muestra un ejemplo de la lista que se visualiza:


Nombre ID arr. Estado Descripción
-------------------- ------- -------- -----------------
Vía: /usr/lib/objrepos
INed.obj APLICADO Editor INed
X11_3d.gl.dev.obj APLICADO AIXwindows/3D GL
Programas utilidad desarrollo
Fonts
X11fnt.oldX.fnt APLICADO AIXwindows Varios
X Fonts
X11mEn_US.msg APLICADO Mensajes de AIXwindows NL
archivos
.
.
.

Si el listado es muy largo, la parte superior se desplazará rápidamente y no se visualizará en la pantalla.


Para que no suceda esto, utilice el mandato lslpp interconectado con el mandato pg. En el indicador de
mandatos, escriba:
lslpp | pg

Pulse Intro.

16 Guía del usuario del sistema: Sistema operativo y dispositivos


Consulte el mandato lslpp en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado de las asignaciones de teclas de control del terminal (mandato


stty)
El mandato stty visualiza los valores del terminal. Puede ignorar la mayoría de estos valores; la
información importante es qué teclas utiliza el terminal como teclas de control.

Por ejemplo, en el indicador de mandatos, escriba:


stty -a

Pulse Intro.

El sistema mostrará una información parecida a esta:


.
.
.
intr = |C; quit = |\; erase = |H; kill = |U; eof = |D;
eol = |@ start = |Q; stop = |S; susp = |Z; dsusp = |Y;
reprint = |R discard = |O; werase = |W; lnext = |V
.
.
.

En este ejemplo, las líneas como intr = |C; quit = |\; erase = |H; son los valores de las teclas de
control. La tecla |H es la tecla de retroceso y la función que se ha establecido para ésta es borrar.

Si el listado es muy largo, la parte superior se desplazará rápidamente y no se visualizará en la pantalla.


Para que no ocurra esto, utilice el mandato stty interconectándolo con el mandato pg. En el indicador de
mandatos, escriba:
stty -a | pg

Pulse Intro.

Consulte el mandato stty en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado de todas las variables de entorno (mandato env)


El mandato env le permite visualizar las variables de entorno actuales. Una variable de entorno a la que
pueden acceder todos los procesos se denomina variable global.

Todas la variables (y los valores que se asocian a éstas) que un mandato puede reconocer al inicio de su
ejecución constituyen su entorno. Este entorno incluye variables que un mandato hereda de sus variables
y proceso padre especificados como palabras clave en la línea de mandatos que llama al mandato. El
shell interactúa con el entorno de varios modos. Cuando se inicia, el shell explora el entorno y crea un
parámetro para cada nombre encontrado, dando al parámetro el valor correspondiente y marcándolo para
exportación. Los mandatos ejecutados heredan el entorno.

Por ejemplo, para que se listen todas las variables de entorno, escriba:
env

Capítulo 2. Entorno de usuario e información del sistema 17


Pulse Intro.

A continuación se muestra un ejemplo de la lista que se visualiza:


TMPDIR=/usr/tmp
myid=carlos
LANG=En_US
UNAME=barnard
PAGER=/bin/pg
VISUAL=vi
PATH=/usr/ucb:/usr/lpp/X11/bin:/bin:/usr/bin:/etc:/u/carlos:/u/carlos/bin:/u/bin1
MAILPATH=/usr/mail/carlos?carlos tiene correo
MAILRECORD=/u/carlos/.Outmail
EXINIT=set beautify noflash nomesg report=1 showmode showmatch
EDITOR=vi
PSCH=>
HISTFILE=/u/carlos/.history
LOGNAME=carlos
MAIL=/usr/mail/carlos
PS1=carlos@barnard:${PWD}>
PS3=#
PS2=>
epath=/usr/bin
USER=carlos
SHELL=/bin/ksh
HISTSIZE=500
HOME=/u/carlos
FCEDIT=vi
TERM=lft
MAILMSG=**TIENE NUEVO CORREO. UTILICE EL MANDATO mail PARA VER LA PWD=/u/carlos
ENV=/u/carlos/.env

Si el listado es muy largo, la parte superior se desplazará rápidamente y no se visualizará en la pantalla.


Para que no suceda esto, utilice el mandato env interconectado con el mandato pg. En el indicador de
mandatos, escriba:
env | pg

Pulse Intro.

Consulte el mandato env en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Entorno del shell Korn” en la página 184

“Entorno de shell Bourne” en la página 210

Visualización del valor de una variable de entorno (mandato printenv)


El mandato printenv visualiza los valores de las variables de entorno. Si especifica el parámetro Nombre,
el sistema sólo imprime el valor que se asocia al parámetro que ha solicitado. Si no especifica el
parámetro Nombre, el mandato printenv visualiza todas las variables de entorno actuales, mostrando una
secuencia Nombre =Valor por línea.

Por ejemplo, para buscar el valor actual de la variable de entorno MAILMSG, escriba:
printenv MAILMSG

Pulse Intro.

El mandato devuelve el valor de la variable de entorno MAILMSG. Por ejemplo:

18 Guía del usuario del sistema: Sistema operativo y dispositivos


TIENE CORREO NUEVO

Consulte el mandato printenv en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Utilización de idiomas bidireccionales (mandato aixterm)


El mandato aixterm da soporte al árabe y al hebreo, que son idiomas bidireccionales. Los idiomas
bidireccionales pueden leerse y escribirse en dos direcciones, de izquierda a derecha y de derecha a
izquierda. Puede trabajar con aplicaciones en árabe y hebreo abriendo una ventana y especificando un
escenario árabe o hebreo.

Consulte el mandato aixterm en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Identificación de usuario y de sistema” en la página 5

“Capítulo 10. Personalización del entorno del usuario” en la página 141

Resumen de mandatos para el entorno de usuario y la información del


sistema
aixterm Le permite trabajar con idiomas bidireccionales.
env Muestra el entorno actual o define el entorno para la ejecución de un mandato.
lscfg Muestra información de diagnósticos acerca de un dispositivo.
lscons Muestra el nombre de la consola actual.
lsdisp Lista las pantallas disponibles en el sistema.
lsfont Lista los fonts disponibles que puede utilizar la pantalla.
lskbd Lista las correlaciones de teclado actualmente cargadas en el sistema.
lslpp Lista productos de software.
printenv Muestra los valores de variables de entorno.
stty Muestra valores del sistema.
tty Muestra el nombre completo de la vía de acceso del terminal.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Identificación de usuario y de sistema” en la página 5

“Capítulo 10. Personalización del entorno del usuario” en la página 141

Capítulo 2. Entorno de usuario e información del sistema 19


20 Guía del usuario del sistema: Sistema operativo y dispositivos
Capítulo 3. Mandatos y procesos
Un mandato es una petición para realizar una operación o para ejecutar un programa. Debe utilizar los
mandatos para indicar al sistema operativo qué tarea desea efectuar. Cuando se entran mandatos, un
intérprete de mandatos (también conocido como shell) los descifra y dicha tarea se procesa.

Un programa o mandato que se ejecuta realmente en el sistema recibe la denominación de proceso. El


sistema operativo puede ejecutar distintos procesos al mismo tiempo.

El sistema operativo le permite manipular la entrada y la salida (E/S) de los datos hacia y desde el
sistema utilizando mandatos y símbolos de E/S específicos. Puede controlar la entrada especificando la
ubicación de donde se recogerán datos. Por ejemplo, puede especificar la lectura de la entrada a medida
que se entran datos en el teclado (entrada estándar) o la lectura de entrada desde un archivo. Puede
controlar la salida especificando dónde visualizar o almacenar datos. Por ejemplo, puede especificar
grabar datos en la pantalla (salida estándar) o grabar en un archivo.

En este apartado se explica lo siguiente:


v “Visión general de los mandatos” en la página 22
– “Sintaxis de los mandatos” en la página 22
– “Lecturas de sentencias de uso” en la página 24
– “Utilización del Gestor del sistema basado en la Web” en la página 25
– “Utilización del mandato smit” en la página 25
– “Localización de un mandato o de un programa (mandato whereis)” en la página 25
– “Visualización de información acerca de un mandato (mandato man)” en la página 25
– “Visualización de la función de un mandato (mandato whatis)” en la página 26
– “Listado de los mandatos entrados anteriormente (mandato de shell history)” en la página 26
– “Repetición de mandatos utilizando el mandato history del shell” en la página 28
– “Sustitución de series utilizando el mandato history del shell” en la página 28
– “Edición del histórico de mandatos” en la página 29
– “Creación de un alias de mandato (mandato de shell alias)” en la página 29
– “Utilización de mandatos para formatear texto” en la página 30
v “Visión general de los procesos” en la página 32
– “Procesos en primer plano y en segundo plano” en la página 33
– “Daemons” en la página 33
– “Proceso zombie” en la página 33
– “Inicio de un proceso” en la página 33
– “Comprobación de los procesos (mandato ps)” en la página 34
– “Establecimiento de la prioridad inicial de un proceso (mandato nice)” en la página 36
– “Cambio de la prioridad de un proceso en ejecución (mandato renice)” en la página 36
– “Cancelación de un proceso en primer plano” en la página 36
– “Detención de un proceso en primer plano” en la página 37
– “Reinicio de un proceso detenido” en la página 37
– “Planificación de un proceso para ejecutarlo posteriormente (mandato at)” en la página 38
– “Listado de todos los procesos planificados (mandato at o atq)” en la página 39
– “Eliminación de un proceso de la planificación (mandato at)” en la página 40
– “Eliminación de un proceso en segundo plano (mandato kill)” en la página 40
v “Resumen de mandatos para mandatos y procesos” en la página 41

© Copyright IBM Corp. 1997, 2001 21


Información relacionada
“Visión general de los mandatos”

“Visión general de los procesos” en la página 32

“Capítulo 11. Shells” en la página 159

Visión general de los mandatos


Algunos mandatos pueden entrarse simplemente escribiendo una palabra. También es posible combinar
mandatos de forma que la salida de un mandato se convierta en la entrada para otro mandato. Esto se
conoce como conexión.

Los distintivos definen de forma más detallada las acciones de los mandatos. Un distintivo es un
modificador que se utiliza con el nombre del mandato en la línea de mandatos, por lo general, precedido
de una barra inclinada.

También pueden agruparse los mandatos y almacenarse en un archivo. Se conocen como procedimientos
de shell o scripts de shell. En lugar de ejecutar los mandatos individualmente, se ejecuta el archivo que
contiene los mandatos. Encontrará más información acerca de los scripts y de los procedimientos en el
apartado “Creación y ejecución de un script de shell” en la página 164

Para entrar un mandato, escriba el nombre del mandato en el indicador de mandatos y pulse Intro.
$ NombreMandato

En este apartado se explica lo siguiente:


v “Sintaxis de los mandatos”
v “Lecturas de sentencias de uso” en la página 24
v “Utilización del Gestor del sistema basado en la Web” en la página 25
v “Utilización del mandato smit” en la página 25
v “Localización de un mandato o de un programa (mandato whereis)” en la página 25
v “Visualización de información acerca de un mandato (mandato man)” en la página 25
v “Visualización de la función de un mandato (mandato whatis)” en la página 26
v “Listado de los mandatos entrados anteriormente (mandato de shell history)” en la página 26
v “Repetición de mandatos utilizando el mandato history del shell” en la página 28
v “Sustitución de series utilizando el mandato history del shell” en la página 28
v “Edición del histórico de mandatos” en la página 29
v “Creación de un alias de mandato (mandato de shell alias)” en la página 29
v “Utilización de mandatos para formatear texto” en la página 30

Sintaxis de los mandatos


Aunque algunos mandatos pueden entrarse simplemente escribiendo una palabra, otros mandatos utilizan
distintivos y parámetros. Cada mandato tiene una sintaxis que indica los distintivos y parámetros
obligatorios y opcionales. El formato general para un mandato es:
NombreMandato distintivo(s) parámetro(s)

Estas son algunas normas generales acerca de mandatos:


v Los espacios entre los mandatos, los distintivos y los parámetros son importantes.
v Pueden entrarse dos mandatos en la misma línea separándolos con un punto y coma (;). Por ejemplo:

22 Guía del usuario del sistema: Sistema operativo y dispositivos


$ MandatoUno;MandatoDos

El shell ejecuta los mandatos secuencialmente.


v Los mandatos son sensibles a las mayúsculas y minúsculas. El shell distingue entre letras en
mayúsculas y letras en minúsculas. Para el shell, print no es lo mismo que PRINT o que Print.
v Un mandato muy largo puede entrarse en más de una línea utilizando un carácter de barra inclinada
invertida (\). Una barra inclinada invertida significa continuación de línea para el shell. En el ejemplo
siguiente se muestra un mandato que abarca dos líneas:
$ ls Mail info temp \
(pulse Intro)

> diary
(aparece el indicador >)

El carácter > es el indicador secundario ($ es el indicador primario por omisión del usuario que no es
root), que indica que la línea actual es la continuación de la línea anterior. Tenga en cuenta que csh no
proporciona ningún indicador secundario y el salto de línea debe producirse en un límite de palabra y
su indicador primario es %.
v Para ejecutar un mandato, escriba el nombre del mandato en el indicador de mandatos y pulse Intro.

Nombre del mandato


La primera palabra de cada mandato es el nombre del mandato. Algunos mandatos sólo tienen un
nombre.

Distintivos de los mandatos


Tras el nombre del mandato puede haber varios distintivos. A veces, los distintivos se denominan
opciones. Los distintivos van separados por espacios o tabulaciones y normalmente comienzan por un
guión (-). Las excepciones son ps, tar y ar, que no requieren un guión delante de algunos distintivos. Los
distintivos modifican el funcionamiento de un mandato. Por ejemplo, en el siguiente mandato:
ls -a -F

ls es el nombre del mandato y -a -F son los distintivos.

Cuando un mandato utiliza distintivos, se sitúan directamente después del nombre del mandato. Los
distintivos de un solo carácter en un mandato pueden combinarse con un guión. Por ejemplo, el mandato
anterior también puede escribirse como:
ls -aF

Existen algunas circunstancias en las que un parámetro comienza de hecho con un guión (-). En este
caso, utilice el delimitador guión guión (—) delante del parámetro. El delimitador del guión doble — indica al
mandato que el elemento que le sigue no es un distintivo, sino un parámetro.

Por ejemplo, si deseara crear un directorio denominado -tmp y escribiera el mandato siguiente:
mkdir -tmp

El sistema mostraría un mensaje de error similar al siguiente:


mkdir: No es un distintivo reconocido: t
Uso: mkdir [-p] [-m modalidad] Directorio ...

La forma correcta de entrar el mandato es:


mkdir -- -tmp

Ahora se crea el nuevo directorio, -tmp.

Capítulo 3. Mandatos y procesos 23


Parámetros de los mandatos
Tras el nombre del mandato puede haber varios distintivos, seguidos de parámetros. A veces, los
parámetros se denominan argumentos u operandos. Los parámetros especifican información que el
mandato necesita para poder ejecutarse. Si no especifica un parámetro, el mandato podría dar por
supuesto un valor por omisión. Por ejemplo, en el siguiente mandato:
ls -a temp

ls es el nombre del mandato, -a es el distintivo y temp es el parámetro. Este mandato visualiza todos (-a)
los archivos del directorio temp. En el ejemplo siguiente:
ls -a

puesto que no se indica ningún parámetro, el valor por omisión es el directorio actual. En el ejemplo
siguiente:
ls temp mail

no se proporciona ningún distintivo y temp y mail son parámetros. En este caso, temp y mail son dos
nombres de directorios distintos. El mandato ls visualizará todos los archivos, menos los ocultos, de cada
uno de estos directorios.

Siempre que un parámetro u opción-argumento sea, o contenga, un valor numérico, el número se


interpretará como entero decimal, a menos que se especifique algo distinto. Los números en el rango de
0 a INT_MAX, tal como están definidos en /usr/include/sys/limits.h, se reconocen sintácticamente como
valores numéricos.

Si el mandato que desea utilizar acepta números negativos como parámetros u opciones-argumentos,
podrá utilizar numéricos comprendidos en el rango INT_MIN a INT_MAX, tal como se definen ambos en
/usr/include/sys/limits.h. Esto no significa necesariamente que todos los números que están dentro de
dicho rango sean semánticamente correctos. Algunos mandatos tienen una especificación incorporada
que permite un rango de números menor, por ejemplo algunos de los mandatos de impresión. Si se
genera un error, el mensaje de error le permite saber que el valor no está en el rango soportado y no que
el mandato es sintácticamente incorrecto.

Lecturas de sentencias de uso


Las sentencias de uso son otro modo de representar la sintaxis de mandatos. Del mismo modo que los
diagramas de sintaxis, las sentencias de uso le indican cómo entrar mandatos desde la línea de
mandatos. Aunque las sentencias de uso proporcionan el mismo tipo de información de sintaxis que los
diagramas, su formato es distinto. Más bien se componen de símbolos, como los corchetes ([ ]), las
llaves ({ }) y las barras verticales (|). A continuación se muestra un ejemplo de una sentencia de uso para
el mandato unget:

unget [ -rSID ] [ -s ] [ -n ] Archivo ...

Los convenios para la negrita y la cursiva son los mismos que los de los diagramas de sintaxis. En las
sentencias de uso de mandatos se utilizan los siguientes convenios adicionales:
v Los parámetros delimitados por corchetes son opcionales.
v Los parámetros incluidos entre llaves son obligatorios.
v Los parámetros que no están delimitados por corchetes o por llaves son obligatorios.
v Una barra vertical significa que sólo elige un parámetro. Por ejemplo, [ a | b ] indica que puede elegir
entre a, b o nada. Del mismo modo, { a | b } indica que debe elegir a o bien b.
v Los puntos suspensivos ( ... ) significan que el parámetro puede repetirse en la línea de mandatos.
v El guión ( - ) representa la entrada estándar.

24 Guía del usuario del sistema: Sistema operativo y dispositivos


Utilización del Gestor del sistema basado en la Web
Gestor del sistema basado en la Web es una interfaz gráfica de usuario para gestionar el sistema, ya sea
desde una pantalla localmente conectada o bien de forma remota desde otro sistema o PC equipado con
un navegador Web. Puede iniciar el Gestor del sistema basado en la Web de varios modos:
v desde un terminal de línea de mandatos en el Common Desktop Environment (CDE) entrando el
mandatowsm.
v desde un terminal de línea de mandatos en el entorno AIXwindows entrando el mandato wsm.
v desde el Gestor de aplicaciones del CDE dirigiéndose a la carpeta de administración del sistema
System_Admin y efectuando una pulsación en el icono Consola de gestión.
v desde un navegador Web compatible con HTML 3.2 en un PC que se haya configurado como se
describe en la publicación ″Web-based System Manager Administration Guide″.

Utilización del mandato smit


El mandato smit es una herramienta que se utiliza para ejecutar otros mandatos. Los nombres de los
mandatos que se entran como un parámetro para el mandato smit podrían llevarle al submenú o al panel
de ese mandato. Por ejemplo, smit lsuser le lleva directamente a Listar todos los usuarios, que
muestra una lista de los atributos de los usuarios del sistema.

Consulte el mandato smit en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Localización de un mandato o de un programa (mandato whereis)


El mandato whereis localiza las secciones correspondientes a fuente, binario y manuales de los archivos
especificados. El mandato intenta localizar el programa deseado en una lista de ubicaciones estándares.

Para buscar los archivos del directorio actual que no tienen ninguna documentación, escriba:
whereis -m -u *

Pulse Intro.

Para buscar todos los archivos que contienen el nombre Mail, escriba:
whereis Mail

Pulse Intro.

El sistema mostrará una información parecida a esta:


Mail: /usr/bin/Mail /usr/lib/Mail.rc

Consulte el mandato whereis en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización de información acerca de un mandato (mandato man)


El mandato man visualiza información acerca de los mandatos, las subrutinas y los archivos. El formato
general del mandato man es:
man NombreMandato

Para obtener información acerca del mandato pg, escriba:


man pg

Pulse Intro.

Capítulo 3. Mandatos y procesos 25


El sistema mostrará una información parecida a esta:
Mandato pg

Objetivo

Formatea archivos en la pantalla.

Sintaxis

pg [ - Número ] [ -c ] [ -e ] [ -f ] [ -n ] [ -p Serie ]
[ -s ] [ +NúmeroLínea | +/Patrón/ ] [ Archivo ... ]

Descripción

El mandato pg lee un nombre de archivo del parámetro Archivo y


graba el archivo en salida estándar de pantalla en pantalla. Si
especifica un - (guión) como parámetro Archivo o ejecuta el mandato
pg sin opciones, dicho mandato lee la entrada estándar. Cada pantalla
va seguida de un indicador. Si pulsa la tecla Intro se visualiza
otra página. Los submandatos utilizados con el mandato pg le permiten
revisar o efectuar búsquedas en el archivo.

La información que el mandato man proporciona también puede obtenerse utilizando el programa
InfoExplorer.

Consulte el mandato man en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización de la función de un mandato (mandato whatis)


El mandato whatis consulta un mandato, llamada al sistema, función de biblioteca o nombre de archivo
especial determinado, que se especifica mediante el parámetro Mandato, en una base de datos que se
crea utilizando el mandato catman -w. El mandato whatis visualiza la línea de cabecera de la sección de
manuales. A continuación puede emitir el mandato man para obtener información adicional.

El mandato whatis equivale a utilizar el mandato man -f.

Para averiguar qué hace el mandato ls, escriba:


whatis ls

Pulse Intro.

El sistema mostrará una información parecida a esta:


ls(1) -Visualiza el contenido de un directorio.

Consulte el mandato whatis en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado de los mandatos entrados anteriormente (mandato de shell


history)
El mandato history es un mandato incorporado del shell Korn que muestra una lista con los 16 últimos
mandatos que se han entrado. El shell Korn guarda los mandatos que ha entrado en un archivo histórico
de mandatos, por lo general denominado $HOME/.sh_history. Esto ahorra tiempo cuando necesita repetir
un mandato anterior.

26 Guía del usuario del sistema: Sistema operativo y dispositivos


Por omisión, el shell Korn guarda el texto de los 128 últimos mandatos. El tamaño del archivo histórico
(que se especifica mediante la variable de entorno HISTSIZE) no está limitado, aunque un tamaño de
archivo histórico demasiado grande puede dar lugar a que el arranque del shell Korn sea lento.

Nota: El mandato de shell history no es lo mismo que el mandato history utilizado con el editor
INed. Además, tenga en cuenta que el shell Bourne no soporta histórico de mandatos.

Para obtener información detallada acerca de los shells, consulte el ″“Capítulo 11. Shells” en la
página 159″

Para que se muestre una lista con los mandatos que ha entrado anteriormente, en el indicador de
mandatos, escriba:
history

Pulse Intro.

El mandato history que él mismo entra muestra una lista con los 16 mandatos anteriormente entrados. El
sistema visualiza información parecida a la siguiente:
928 ls
929 mail
930 printenv MAILMSG
931 whereis Mail
932 whatis ls
933 cd /usr/include/sys
934 ls
935 man pg
936 cd
937 ls | pg
938 lscons
939 tty
940 ls *.txt
941 printenv MAILMSG
942 pwd
943 history

El listado muestra en primer lugar la posición del mandato en el archivo $HOME/.sh_history y luego el
mandato.

Para obtener una lista de los cinco mandatos anteriores, en el indicador de mandatos, escriba:
history -5

Pulse Intro.

Aparece un listado similar al siguiente:


939 tty
940 ls *.txt
941 printenv MAILMSG
942 pwd
943 history
944 history -5

El mandato history seguido de un número muestra una lista con todos los mandatos anteriormente
entrados, empezando por el número de mandato indicado.

Para obtener una lista de mandatos desde el mandato número 938, en el indicador de mandatos, escriba:
history 938

Pulse Intro.

Capítulo 3. Mandatos y procesos 27


Aparece un listado similar al siguiente:
938 lscons
939 tty
940 ls *.txt
941 printenv MAILMSG
942 pwd
943 history
944 history -5
945 history 938

Repetición de mandatos utilizando el mandato history del shell


Para repetir mandatos anteriores, utilice el alias del shell Korn r. Escriba r y pulse Intro y podrá
especificar el número o el primer carácter o caracteres del mandato.

Si desea que se listen las pantallas actualmente disponibles en el sistema, escriba lsdisp en el indicador
de mandatos y pulse Intro. El sistema devuelve información en la pantalla. Si desea que vuelva a
mostrarse la misma información, en el indicador de mandatos, escriba:
r

Pulse Intro.

El sistema vuelve a ejecutar el mandato que se ha entrado más recientemente. En este ejemplo, se
ejecutaría el mandato lsdisp.

Para repetir el mandato ls *.txt, en el indicador de mandatos, escriba:


r ls

Pulse Intro.

El alias del shell Korn r localiza el mandato más reciente que empieza por el carácter o caracteres
especificados.

Sustitución de series utilizando el mandato history del shell


También puede utilizar el alias del shell Korn r para modificar un mandato antes de que se ejecute. En
este caso, puede utilizarse un parámetro de sustitución en el formato Antiguo=Nuevo para modificar el
mandato antes de que se ejecute.

Por ejemplo, si la línea de mandatos 940 es ls *.txt y desea ejecutar ls *.exe, en el indicador de
mandatos, escriba:
r txt=exe 940

Pulse Intro.

Con ello se ejecutará el mandato 940, sustituyéndose exe por txt.

Por ejemplo, si el mandato de la línea 940 es el mandato más reciente que empieza por la letra l en
minúsculas, también puede escribir:
r txt=exe l

Pulse Intro.

Nota: Sólo se sustituirá la primera aparición de la serie Antigua por la serie Nueva. Si se entra el
alias de shell Korn r sin un número de mandato o carácter específico, la sustitución se efectúa en el
mandato entrado anteriormente.

28 Guía del usuario del sistema: Sistema operativo y dispositivos


Edición del histórico de mandatos
El mandato incorporado del shell Korn fc se utiliza para listar o editar partes del archivo histórico de
mandatos. Para seleccionar una parte del archivo a editar o listar, especifique el número del primer
carácter o caracteres del mandato. Puede especificar un solo mandato o un rango de mandatos.

Si no especifica un programa editor como argumento para el mandato incorporado del shell Korn fc, se
utilizará el editor que especifica la variable FCEDIT. Si la variable FCEDIT no se ha definido, se utilizará
el editor /usr/bin/ed. El mandato o mandatos editados se imprimen y ejecutan cuando sale del editor.
Utilice el mandato printenv para visualizar el valor de la variable FCEDIT.

Por ejemplo, si desea ejecutar el mandato:


cd /usr/tmp

que es muy parecido a la línea de mandatos 933, en el indicador de mandatos, escriba:


fc 933

Pulse Intro.

En este punto, aparece el editor por omisión con la línea de mandatos 933. Debe cambiar include/sys
por tmp y, cuando salga del editor, se ejecutará el mandato editado.

También puede especificar el editor que desea utilizar en el mandato fc.

Por ejemplo, si desea editar un mandato utilizando el editor /usr/bin/vi, en el indicador de mandatos,
escriba:
fc -e vi 933

Pulse Intro.

En este punto, el editor vi aparece con la línea de mandatos 933.

También puede especificar un rango de mandatos para editar.

Por ejemplo, si desea editar los mandatos 930 a 940, en el indicador de mandatos, escriba:
fc 930 940

Pulse Intro.

En este punto, aparece el editor por omisión con las líneas de mandato 930 a 940. Cuando salga del
editor, todos los mandatos que aparezcan en el editor se ejecutan secuencialmente.

Creación de un alias de mandato (mandato de shell alias)


Un alias le permite crear un nombre abreviado para un mandato, un nombre de archivo o cualquier texto
del shell. Utilizando alias, puede ahorrarse tiempo cuando efectúa tareas de proceso frecuente. El
mandato incorporado del shell Korn alias define una palabra como alias de algunos mandatos. Puede
utilizar alias para redefinir mandatos incorporados, pero no para redefinir palabras reservadas.

El primer carácter de un nombre de alias puede ser cualquier carácter imprimible, a excepción de los
metacaracteres. Los caracteres restantes deben ser los mismos que los de un nombre de archivo válido.

El formato para crear un alias es:


alias Nombre=Serie

Capítulo 3. Mandatos y procesos 29


donde el parámetro Nombre especifica el nombre del alias y el parámetro Serie especifica una serie de
caracteres. Si la Serie contiene espacios en blanco, especifíquela entre comillas.

Para crear un alias para el mandato rm -i (le pregunta antes de suprimir archivos), en el indicador de
mandatos, escriba:
alias rm="/usr/bin/rm -i"

Pulse Intro.

En este ejemplo, siempre que escriba el mandato rm y pulse Intro, el mandato que realmente se
ejecutará es /usr/bin/rm -i.

Para crear un alias para el mandato ls -alF | pg (visualiza información detallada acerca de todos los
archivos del directorio actual, incluidos los archivos invisibles, marca los archivos ejecutables con un * y
los directorios con una / y realiza un desplazamiento de pantalla a pantalla), en el indicador de mandatos,
escriba:
alias dir="/usr/bin/ls -alF | pg"

Pulse Intro.

En este ejemplo, siempre que escriba el mandato dir y pulse Intro, el mandato que realmente se
ejecutará es /usr/bin/ls -alF | pg.

Para que se visualicen todos los alias de que dispone, en el indicador de mandatos, escriba:
alias

Pulse Intro.

El sistema mostrará una información parecida a esta:


rm="/usr/bin/rm -i"
dir="/usr/bin/ls -alF | pg"

Utilización de mandatos para formatear texto


Puede utilizar mandatos de formateo de texto para trabajar con texto compuesto por el juego de
caracteres ampliado internacional para idiomas europeos.

Soporte internacional de caracteres en el formato de texto


El juego de caracteres ampliado internacional proporciona los caracteres y símbolos utilizado en muchos
idiomas europeos, además de un subconjunto ASCII compuesto de los caracteres, dígitos y puntuación
del idioma inglés.

Todos los caracteres del juego de caracteres ampliado europeo tienen formatos ASCII. Estos formatos
pueden utilizarse para representar los caracteres ampliados en la entrada; por otra parte, los caracteres
puede escribirse directamente con un dispositivo como, por ejemplo, un teclado que dé soporte a los
caracteres ampliados europeos.

Los siguientes mandatos de formateo de texto aceptan todos los idiomas internacionales que utilizan
caracteres de un solo byte. Estos mandatos se encuentran en /usr/bin. (Los mandatos que se identifican
con un asterisco (*) dan soporte al proceso de texto en varios idiomas. Para obtener más información
acerca del soporte en varios idiomas, consulte el apartado “Soporte de caracteres de varios bytes en el
formato de texto” en la página 31.)
addbib* hyphen pic* pstext
checkmm ibm3812 ps4014 refer*
checknr* ibm3816 ps630 roffbib*

30 Guía del usuario del sistema: Sistema operativo y dispositivos


col* ibm5587G* psbanne soelim*
colcrt ibm5585H-T* psdit sortbib*
deroff* indxbib* psplot tbl*
enscript lookbib* psrev troff*
eqn* makedev* psroff vgrind
grap* neqn* psrv xpreview*
hplj nroff*

Los mandatos de formateo de texto y los paquetes de macros que no están en la lista anterior no se han
habilitado para procesar los caracteres internacionales de .

Especificación de caracteres ampliados de un solo byte


Si el dispositivo de entrada que utiliza da soporte a los caracteres del juego de caracteres ampliado para
idiomas europeos, puede escribirlos directamente. De lo contrario, utilice el siguiente formato de escape
ASCII para representar dichos caracteres:

El formato \[N], donde N es el código hexadecimal de 2 o de 4 dígitos del carácter.

Nota: El formato NCesc \<xx> ya no recibe soporte.

Al texto que contiene caracteres ampliados se le da salida de acuerdo con los convenios de formateo del
idioma en uso. Los caracteres que no están definidos para la interfaz a un dispositivo de salida específico
no generan salida ni indicación de errores.

Aunque los nombres de las peticiones, paquetes de macros y mandatos están basados en el inglés, la
mayoría de ellos pueden aceptar entrada (por ejemplo, nombres de archivos y parámetros) que incluya
caracteres del juego de caracteres ampliado europeo.

En el caso de los mandatos nroff y troff y sus predecesores, la entrada del mandato debe ser ASCII o se
producirá un error de sintaxis no recuperable. Los caracteres internacionales, de un solo byte o de varios
bytes, pueden escribirse cuando éstos se especifican entre comillas y no existe ningún otro texto que
tenga que formatearse. Por ejemplo, utilizando macros desde el mandato pic:
define foobar % AlgúnTexto %

Después de la directiva define, el primer nombre, foobar, debe ser ASCII. Sin embargo, el texto de
sustitución, AlgúnTexto, puede contener caracteres que no sean ASCII.

Soporte de caracteres de varios bytes en el formato de texto


Ciertos mandatos de formateo de texto pueden utilizarse para procesar texto para idiomas multibyte.
Estos mandatos se identifican con un asterisco (*) en la lista que se facilita en el apartado “Soporte
internacional de caracteres en el formato de texto” en la página 30. Los mandatos de formato de texto que
no están en la lista no se han habilitado para procesar caracteres internacionales de .

Especificación de caracteres de varios bytes


Los caracteres de varios bytes pueden escribirse directamente, si el dispositivo de entrada da soporte a
éstos. Si no es así, puede escribir cualquier carácter de varios bytes en el formato ASCII \[N], donde N es
la codificación hexadecimal de 2, 4, 6, 7 u 8 dígitos del carácter.

Aunque los nombres de las peticiones, macros y mandatos están basados en el inglés, la mayoría de
ellos pueden aceptar entrada (por ejemplo, nombres de archivos y parámetros) que incluya cualquier tipo
de carácter multibyte.

Si ya está familiarizado con la utilización de mandatos de formateo de texto de un solo byte, la lista
siguiente resume las características que son indicativas o exclusivas para los escenarios multibyte:
v El texto no está delimitado por guiones.

Capítulo 3. Mandatos y procesos 31


v Se requieren tipos de formatos especiales para salida numérica multibyte. Están disponibles los tipos
de formato japoneses.
v Se da salida al texto en líneas horizontales, rellenadas de izquierda a derecha.
v El espaciado de caracteres es constante, de forma que los caracteres se alineen automáticamente en
columnas.
v Los caracteres que no están definidos para la interfaz a un dispositivo de salida específico no generan
salida ni indicación de errores.

En lo que respecta a los mandatos nroff y troff y sus predecesores, la entrada de mandatos debe ser
ASCII o se generará un error de sintaxis. Los caracteres internacionales, de un solo byte o de varios
bytes, pueden escribirse cuando éstos se especifican entre comillas y dentro de otro texto que tenga que
formatearse. Por ejemplo, utilizando macros desde el mandato pic:
define foobar % AlgúnTexto %

Después de la directiva define, el primer nombre, foobar, debe ser ASCII. Sin embargo, el texto de
sustitución, AlgúnTexto, puede contener caracteres que no sean ASCII.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Visión general de los procesos”

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

Visión general de los procesos


Un programa o mandato que se ejecuta realmente en el sistema recibe la denominación de proceso. Los
procesos existen en jerarquías de padre-hijo. Un proceso iniciado por un programa o mandato es un
proceso padre; un proceso hijo es el producto del proceso padre. Un proceso padre puede tener varios
procesos hijo, pero un proceso hijo sólo puede tener un padre.

El sistema asigna un número de identificación de proceso (número PID) a cada proceso cuando se inicia.
Si inicia el mismo programa varias veces, tendrá un número PID distinto cada vez.

Cuando se inicia un proceso en un sistema, el proceso utiliza una parte de los recursos disponibles en el
sistema. Cuando está ejecutándose más de un proceso, un planificador que está incorporado al sistema
operativo otorga a cada proceso su parte compartida de tiempo del sistema, según las prioridades
establecidas. Estas prioridades pueden cambiarse mediante la utilización de los mandatos nice o renice.

Nota: Sólo podrá cambiar la prioridad de un proceso por una prioridad más alta un usuario que
disponga de autorización de usuario root. Todos los usuarios pueden especificar prioridades más
bajas para un proceso. Si están iniciando un proceso, utilizan el mandato nice; si ya han iniciado un
proceso, utilizan el mandato renice.

En este apartado se explica lo siguiente:


v “Procesos en primer plano y en segundo plano” en la página 33
v “Daemons” en la página 33
v “Proceso zombie” en la página 33
v “Inicio de un proceso” en la página 33

32 Guía del usuario del sistema: Sistema operativo y dispositivos


v “Comprobación de los procesos (mandato ps)” en la página 34
v “Establecimiento de la prioridad inicial de un proceso (mandato nice)” en la página 36
v “Cambio de la prioridad de un proceso en ejecución (mandato renice)” en la página 36
v “Cancelación de un proceso en primer plano” en la página 36
v “Detención de un proceso en primer plano” en la página 37
v “Reinicio de un proceso detenido” en la página 37
v “Planificación de un proceso para ejecutarlo posteriormente (mandato at)” en la página 38
v “Listado de todos los procesos planificados (mandato at o atq)” en la página 39
v “Eliminación de un proceso de la planificación (mandato at)” en la página 40
v “Eliminación de un proceso en segundo plano (mandato kill)” en la página 40

Procesos en primer plano y en segundo plano


Los procesos que se inician y que necesitan una interacción del usuario se denominan procesos en
primer plano. Los procesos que se ejecutan sin depender de un usuario se denominan procesos en
segundo plano. Los programas y los mandatos se ejecutan como procesos en primer plano por omisión.
Para ejecutar un proceso en segundo plano, coloque un ampersand (&) al final del nombre del mandato
que utiliza para iniciar el proceso.

Daemons
Los daemons son procesos que se ejecutan de forma desatendida. Están constantemente en el segundo
plano y están disponibles siempre. Los daemons suelen iniciarse cuando se arranca el sistema y se
ejecutan hasta que se detiene el sistema. Un proceso daemon efectúa servicios del sistema y está
disponible siempre para más de una tarea o usuario. El usuario root o el shell root inicia los procesos
daemon y sólo puede detenerlos el usuario root. Por ejemplo, el proceso qdaemon proporciona acceso a
los recursos del sistema como, por ejemplo, las impresoras. Otro daemon usual es el daemon sendmail.

Proceso zombie
Un proceso zombie es un proceso finalizado que ya no se ejecuta pero que sigue reconociéndose en la
tabla de procesos (en otras palabras, tiene un número PID). Ya no se asigna espacio del sistema a dicho
proceso. Los procesos zombie han sido cerrados o han salido y siguen existiendo en la tabla de procesos
hasta que muere el proceso padre o se apaga el sistema y se reinicia. Los procesos zombie se muestran
como <defunct> cuando el mandato ps los lista.

Inicio de un proceso
Puede iniciar un proceso en primer plano desde una estación de pantalla entrando el nombre de un
programa o el nombre de un mandato en el indicador del sistema. Una vez que se ha iniciado un proceso
en primer plano, el proceso interactúa con el usuario en la estación de pantalla hasta que se completa.
Esto significa que no puede producirse ninguna otra interacción (por ejemplo, entrar otro mandato) en la
estación de pantalla hasta que el proceso haya finalizado o hasta que lo interrumpa.

Un solo usuario puede ejecutar más de un proceso a la vez hasta un máximo por omisión de 40 procesos
por usuario.

Para iniciar un proceso en primer plano


Para ejecutar un proceso en primer plano, escriba el nombre del mandato con todos los parámetros y
distintivos adecuados:
$ NombreMandato

Capítulo 3. Mandatos y procesos 33


Pulse Intro.

Para iniciar un proceso en segundo plano


Para ejecutar un proceso en segundo plano, escriba el nombre del mandato con todos los parámetros y
distintivos adecuados, seguidos de un ampersand (&):

y pulse Intro.
$ NombreMandato&

Cuando el proceso está ejecutándose en segundo plano, puede efectuar tareas adicionales entrando otros
mandatos en la estación de pantalla.

Generalmente, los procesos en segundo plano son más útiles para mandatos que tardan mucho en
ejecutarse. No obstante, puesto que aumentan la cantidad total de trabajo que efectúa el procesador, los
procesos en segundo plano también ralentizan el resto del sistema.

La mayoría de los procesos dirigen la salida a salida estándar, aunque se ejecuten en segundo plano. A
menos que se redireccione, la salida estándar va hacia la estación de pantalla. Puesto que la salida de un
proceso en segundo plano puede interferir con otros trabajos del sistema, es útil redireccionar la salida de
los procesos en segundo plano a un archivo o a una impresora. De este modo, podrá ver la salida cuando
lo desee.

Nota: En algunas circunstancias, la salida de un proceso en segundo plano puede generarse en una
secuencia distinta de la que se generaría si se ejecutara en primer plano. Puede que los
programadores deseen utilizar la subrutina fflush para asegurarse de que la salida se genera en el
orden correcto, con independencia de si el proceso se ejecuta en primer plano o en segundo plano.

Mientras se ejecuta un proceso en segundo plano, puede comprobar su estado con el mandato ps.

Comprobación de los procesos (mandato ps)


Mientras el sistema esté en funcionamiento, también están ejecutándose varios procesos. Puede utilizar el
mandato ps para averiguar qué procesos están ejecutándose y para que se visualice información acerca
de esos procesos.

Mandato ps
EL mandato ps tiene varios distintivos que le permiten especificar qué procesos deben listarse y qué
información acerca de cada proceso debe visualizarse.

Para que se muestren todos los procesos que están ejecutándose en el sistema, en el indicador de
mandatos, escriba:
ps -ef

Pulse Intro.

El sistema visualizará información parecida a la siguiente:


USER PID PPID C STIME TTY TIME CMD
root 1 0 0 Jun 28 - 3:23 /etc/init
root 1588 6963 0 Jun 28 - 0:02 /usr/etc/biod 6
root 2280 1 0 Jun 28 - 1:39 /etc/syncd 60
mary 2413 16998 2 07:57:30 - 0:05 aixterm
mary 11632 16998 0 07:57:31 lft/1 0:01 xbiff
mary 16260 2413 1 07:57:35 pts/1 0:00 /bin/ksh
mary 16469 1 0 07:57:12 lft/1 0:00 ksh /usr/lpp/X11/bin/xinit
mary 19402 16260 20 09:37:21 pts/1 0:00 ps -ef

34 Guía del usuario del sistema: Sistema operativo y dispositivos


Las definiciones de cabeceras de columna son las siguientes:

USER El nombre de inicio de sesión del usuario


PID ID del proceso
PPID ID del proceso padre
C Utilización de CPU del proceso
STIME Hora de inicio del proceso
TTY Estación de trabajo controladora del proceso
TIME Tiempo total de ejecución del proceso
CMD Mandato

En el ejemplo anterior, el ID de proceso del mandato ps -ef es 19402. El ID de su proceso padre es


16260, el mandato /bin/ksh.

Si el listado es muy largo, la parte superior se sale de la pantalla. Para que no suceda esto, utilice el
mandato ps interconectado con el mandato pg. En el indicador de mandatos, escriba:
ps -ef | pg

Pulse Intro.

Para que se muestre información acerca de todos los procesos que están ejecutándose en el sistema, en
el indicador de mandatos, escriba:
ps gv

Pulse Intro.

Este formato del mandato lista estadísticas de cada proceso activo. La salida de este mandato tiene este
aspecto aproximado:
PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND
0 - A 0:44 7 8 8 xx 0 0 0.0 0.0 swapper
1 - A 1:29 518 244 140 xx 21 24 0.1 1.0 /etc/init
771 - A 1:22 0 16 16 xx 0 0 0.0 0.0 kproc
1028 - A 0:00 10 16 8 xx 0 0 0.0 0.0 kproc
1503 - A 0:33 127 16 8 xx 0 0 0.0 0.0 kproc
1679 - A 1:03 282 192 12 32768 130 0 0.7 0.0 pcidossvr
2089 - A 0:22 918 72 28 xx 1 4 0.0 0.0 /etc/sync
2784 - A 0:00 9 16 8 xx 0 0 0.0 0.0 kproc
2816 - A 5:59 6436 2664 616 8 852 156 0.4 4.0 /usr/lpp/
3115 - A 0:27 955 264 128 xx 39 36 0.0 1.0 /usr/lib/
3451 - A 0:00 0 16 8 xx 0 0 0.0 0.0 kproc
3812 - A 0:00 21 128 12 32768 34 0 0.0 0.0 usr/lib/lpd/
3970 - A 0:00 0 16 8 xx 0 0 0.0 0.0 kproc
4267 - A 0:01 169 132 72 32768 16 16 0.0 0.0 /etc/sysl
4514 lft/0 A 0:00 60 200 72 xx 39 60 0.0 0.0 /etc/gett
4776 pts/3 A 0:02 250 108 280 8 303 268 0.0 2.0 -ksh
5050 - A 0:09 1200 424 132 32768 243 56 0.0 1.0 /usr/sbin
5322 - A 0:27 1299 156 192 xx 24 24 0.0 1.0 /etc/cron
5590 - A 0:00 2 100 12 32768 11 0 0.0 0.0 /etc/writ
5749 - A 0:00 0 208 12 xx 13 0 0.0 0.0 /usr/lpp/
6111 - T 0:00 66 108 12 32768 47 0 0.0 0.0 /usr/lpp/

Consulte el mandato ps en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Otros mandatos que puede utilizar son smit process y los smit monitors.

Capítulo 3. Mandatos y procesos 35


Establecimiento de la prioridad inicial de un proceso (mandato nice)
Puede establecer la prioridad inicial de un proceso en un valor menor que la prioridad de planificación
básica utilizando el mandato nice para iniciar el proceso.

Nota: Para ejecutar un proceso con una prioridad más alta, deberá disponer de autorización de
usuario root.

Mandato nice
Para establecer la prioridad inicial de un proceso, escriba:
nice -n Número SerieMandato

donde Número es un número comprendido entre el 0 y el 39, siendo 39 la prioridad más baja. Cuanto
mayor sea el número, menor será la prioridad. Si utiliza cero, el proceso se ejecutará en la prioridad de
planificación base. SerieMandato es el mandato y los distintivos y parámetros que desea ejecutar.

Consulte el mandato nice en la publicación AIX 5L Version 5.1 Commands Reference para obtener más
información y conocer de la sintaxis exacta.

También puede utilizar el mandato smit nice para efectuar esta tarea.

Cambio de la prioridad de un proceso en ejecución (mandato renice)


Puede cambiar la prioridad de planificación de un proceso en ejecución por un valor más alto o más bajo
que el valor de la prioridad de planificación básica utilizando el mandato renice desde la línea de
mandatos. Este mandato cambia el valor de nice de un proceso.

Nota: Para ejecutar un proceso con una prioridad más alta o para cambiar la prioridad de un
proceso que no ha iniciado, deberá disponer de autorización de usuario root.

Desde la línea de mandatos


Para cambiar la prioridad inicial de un proceso de ejecución, escriba:
renice Prioridad -p IDProceso

donde Prioridad es un número comprendido entre el -20 y el 20. Cuanto mayor sea el número, menor
será la prioridad. Si utiliza cero, el proceso se ejecutará en la prioridad de planificación base. IDProceso
es el PID al que desea cambiar la prioridad.

También puede utilizar el mandato smit renice para efectuar esta tarea.

Cancelación de un proceso en primer plano


Si inicia un proceso en primer plano y decide que no quiere dejar que termine, puede cancelarlo pulsando
la tecla de interrupción. Dicha tecla suele ser Control-C o Control-Retroceso. Para averiguar en qué valor
se ha establecido su tecla de interrupción, consulte el apartado “Listado de las asignaciones de teclas de
control del terminal (mandato stty)” en la página 17 .

Nota: La tecla de interrupción (Control-C) no cancela los procesos en segundo plano. Para cancelar
un proceso en segundo plano, deberá utilizar el mandato kill.

La mayoría de mandatos simples no son buenos ejemplos para demostrar cómo cancelar un proceso, ya
que se ejecutan con tanta rapidez que finalizan antes de que tenga tiempo de cancelarlos. Por lo tanto,
en los ejemplos de este apartado se utiliza un mandato que tarda algo más de unos pocos segundos en

36 Guía del usuario del sistema: Sistema operativo y dispositivos


ejecutarse: find / -type f. Este mandato muestra los nombres de las vías de acceso de todos los
archivos del sistema. No es necesario que estudie el mandato find para poder completar este apartado;
aquí se utiliza simplemente para demostrar cómo trabajar con procesos.

En el ejemplo siguiente, el mandato find inicia un proceso. Una vez que el proceso se ejecuta durante
algunos segundos, puede cancelarlo pulsando la tecla de interrupción:
$ find / -type f /usr/sbin/acct/lastlogin
/usr/sbin/acct/prctmp
/usr/sbin/acct/prdaily
/usr/sbin/acct/runacct
/usr/sbin/acct/sdisk
/usr/sbin/acct/shutacct INTERRUPT (Ctrl-C)
$ _

El sistema devuelve el indicador a la pantalla. Ahora puede entrar otro mandato.

Detención de un proceso en primer plano


Es posible detener un proceso, pero no puede eliminarse su ID de proceso (PID) de la tabla de procesos.
Puede detener un proceso en primer plano con Control-Z desde el teclado.

Nota: Control-Z funciona en el shell Korn (ksh) y en el shell C (csh), pero no en el shell Bourne
(bsh).

Reinicio de un proceso detenido


Este procedimiento describe cómo reiniciar un proceso que se ha detenido con Control-Z.

Nota: Control-Z funciona en el shell Korn (ksh) y en el shell C (csh), pero no en el shell Bourne
(bsh). Para reiniciar un proceso detenido, debe ser el usuario que inició el proceso o tener
autorización de usuario root.
1. Para ver todos los procesos que se ejecutan o que se han detenido, pero que no han muerto en el
sistema, escriba:
ps -ef

Puede que desee interconectar este mandato por medio de un mandato grep para restringir la lista a
los procesos entre los que probablemente se encontrará el que desea iniciar. Por ejemplo, si deseara
reiniciar una sesión vi, podría escribir:
ps -ef | grep vi

Pulse Intro. Este mandato sólo visualizaría las líneas de la salida del mandato ps que contuvieran la
palabra vi. La salida tendría este aspecto:
UID PID PPID C STIME TTY TIME COMMAND
root 1234 13682 0 00:59:53 - 0:01 vi test
root 14277 13682 1 01:00:34 - 0:00 grep vi
2. En la salida del mandato ps, busque el proceso que desea reiniciar y anote su número PID. En este
ejemplo, el PID es 1234.
3. Para enviar la señal CONTINUE al proceso detenido, escriba:
kill -19 1234

Sustituya el PID de su proceso por 1234. El número -19 indica la señal CONTINUE. Este mandato
reinicia el proceso en segundo plano. Es correcto que el proceso se ejecute en segundo plano, una
vez que haya finalizado con el procedimiento. Si el proceso debe ejecutarse en primer plano (como
correspondería a una sesión vi), debe continuar con el paso siguiente.
4. Para llevar el proceso al primer plano, escriba:

Capítulo 3. Mandatos y procesos 37


fg 1234

Una vez más, sustituya el PID de su proceso por 1234. El proceso debe estar ejecutándose ahora en
primer plano. (Ahora está en la sesión de edición de vi).

Planificación de un proceso para ejecutarlo posteriormente (mandato


at)
Puede establecer un proceso como proceso por lotes para que se ejecute en segundo plano en el
momento planificado. Los mandatos at y smit le permiten entrar los nombres de mandatos que se
ejecutarán en un momento posterior y le permiten especificar cuándo deben ejecutarse los mandatos.

Nota: Los archivos /var/adm/cron/at.allow y /var/adm/cron/at.deny controlan si puede o no utilizar


el mandato at. Una persona con autorización de usuario root puede crear, editar o suprimir dichos
archivos. Las entradas en dichos archivos son nombres de inicio de sesión de usuario con un
nombre en cada línea. A continuación se muestra un ejemplo de un archivo at.allow:
root
nick
dee
sarah

Si existe el archivo at.allow, sólo podrán utilizar el mandato at los usuarios cuyos nombres de inicio de
sesión aparezcan en dicho archivo. Un administrador del sistema puede hacer que un usuario deje de
tener permiso para utilizar el mandato at haciendo que el nombre de inicio de sesión del usuario aparezca
en el archivo at.deny. Si sólo existe el archivo at.deny, podrán utilizar el mandato at los usuarios cuyos
nombres no aparezcan en dicho archivo.

No puede utilizar el mandato at si se cumple alguna de estas condiciones:


v El archivo at.allow y el archivo at.deny no existen (sólo tiene permiso el usuario root).
v El archivo at.allow existe, pero el nombre de inicio de sesión del usuario no está listado en el mismo.
v El archivo at.deny existe, pero el nombre de inicio de sesión del usuario está listado en el mismo.

Si el archivo at.allow no existe y el archivo at.deny no existe o está vacío, sólo podrá someter un trabajo
con el mandato at el usuario que disponga de autorización de usuario root.

La sintaxis del mandato at le permite especificar una serie de fecha, una serie de hora y de día o bien
una serie incremental que especifique el momento en el que desea que se ejecute el proceso. También le
permite especificar qué shell o cola debe utilizar. Los siguientes ejemplos muestran algunas utilizaciones
usuales del mandato.

Mandato at
Por ejemplo, si el nombre de inicio de sesión es alberto y tiene un script llamado WorkReport que desea
que se ejecute a medianoche, efectúe las siguientes operaciones:
1. Escriba la hora en que desea que se ejecute el programa.
a medianoche
2. Escriba los nombres de los programas que desea ejecutar, pulsando Intro después de cada nombre.
Cuando escriba el último nombre, pulse el carácter de fin de archivo (Control-D) para señalizar el fin
de la lista.
WorkReport|D

Tras pulsar Control-D, el sistema visualizará información parecida a la siguiente:


job alberto.741502800.a at Vie Jul 6 00:00:00 CDT 1994.

38 Guía del usuario del sistema: Sistema operativo y dispositivos


Al programa WorkReport se le proporciona el número de trabajo alberto.741502800.a, que se ejecutará el
día 6 de julio, a medianoche.

Para que se listen los programas que ha enviado para que se ejecuten posteriormente, escriba:
at -l

El sistema visualizará información parecida a la siguiente:


alberto.741502800.a Vie Jul 6 00:00:00 CDT 1994

Para cancelar un programa que ha establecido para que se ejecute posteriormente, obtenga primero la
lista de los números de trabajo que se han asignado a los programas con at -l. Una vez que conozca el
número de trabajo del programa que desea cancelar, escriba:
at -r alberto.741502800.a

Esto cancela el trabajo alberto.741502800.a.

Consulte el mandato at en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Para realizar esta tarea, también puede utilizar los mandatos smit at y smit sjat.

Listado de todos los procesos planificados (mandato at o atq)


Puede hacer que se listen todos los procesos planificados con el distintivo -l del mandato at o bien con el
mandato atq. Ambos mandatos generan la misma salida, pero el mandato atq puede ordenar los
procesos por hora de emisión del mandato at y puede visualizar sólo el número de los procesos que
están en la cola.

Puede listar todos los procesos planificados de estas formas:


v Con el mandato at desde la línea de mandatos
v Con el mandato atq

Para obtener información acerca de las restricciones de usuario para la utilización del mandato at,
consulte la Nota.

Mandato at
Para listar los procesos planificados, escriba:
at -l

Este mandato lista todos los procesos planificados de la cola. Si es usted un usuario root, este mandato
lista todos los procesos planificados de todos los usuarios. Para obtener información detallada acerca de
la sintaxis, consulte el mandato at.

Mandato atq
Para listar todos los procesos planificados en la cola, escriba:
atq

Si es usted un usuario root, puede listar los procesos planificados de la cola de un usuario determinado
escribiendo:
atq NombreUsuario

Para listar el número de procesos planificados de la cola, escriba:


atq -n

Capítulo 3. Mandatos y procesos 39


Eliminación de un proceso de la planificación (mandato at)
Puede eliminar un proceso planificado utilizando el mandato at con el distintivo -r. Para obtener
información acerca de las restricciones de usuario para la utilización del mandato at, consulte la Nota.

Desde la línea de mandatos


1. Para eliminar un proceso planificado, debe conocer el número de proceso. Puede obtener el número
de proceso utilizando el mandato at -l o el mandato atq. Consulte el apartado “Listado de todos los
procesos planificados (mandato at o atq)” en la página 39 para obtener detalles.
2. Cuando conozca el número del proceso que desea eliminar, escriba:
at -r NúmeroProceso

También puede utilizar el mandato smit rmat para efectuar esta tarea.

Eliminación de un proceso en segundo plano (mandato kill)


Si la tecla de interrupción no detiene el proceso en primer plano o si ha decidido, después de iniciar un
proceso en segundo plano, que no desea que el proceso finalice, puede cancelar el proceso con el
mandato kill. Antes de poder cancelar un proceso utilizando el mandato kill, primero deberá conocer su
número PID. El formato general del mandato kill es:
kill IDProceso

Nota: Para eliminar un proceso, deberá disponer de autorización de usuario root o ser el usuario
que ha iniciado el proceso. La señal por omisión para un proceso del mandato kill es -15
(SIGTERM).

Mandato kill
1. Utilice el mandato ps para determinar el ID de proceso que desea eliminar. Puede que desee
interconectar este mandato por medio de un mandato grep para que sólo se listen los procesos
deseados. Por ejemplo, si desea obtener el ID de proceso de una sesión vi, podría escribir:
ps -l | grep vi
2. En el ejemplo siguiente, emite el mandato find para su ejecución en segundo plano. A continuación
decide cancelar el proceso. Emita el mandato ps para que se listen los números PID.
$ find / -type f > dir.paths &
[1] 21593
$ ps
PID TTY TIME COMMAND
1627 pts3 0:00 ps
5461 pts3 0:00 ksh
17565 pts3 0:00 -ksh
21593 pts3 0:00 find / -type f
$ kill 21593
$ ps
PID TTY TIME COMMAND
1627 pts3 0:00 ps
5461 pts3 0:00 ksh
17565 pts3 0:00 -ksh
[1] + Terminated 21593 find / -type f > dir.paths &

El mandato kill 21593 detiene el proceso find en segundo plano y el segundo mandato ps no
devuelve información de estado acerca del PID 21593. El sistema no visualizará el mensaje de
terminación hasta que escriba el mandato siguiente, a menos que ese mandato sea cd.

El mandato kill le permite cancelar los procesos en segundo plano. Puede que desee utilizarlo, por
ejemplo, si se da cuenta de que ha colocado un proceso en segundo plano por error o si observa que
la ejecución de un proceso está prolongándose demasiado.

40 Guía del usuario del sistema: Sistema operativo y dispositivos


Notas:
a. La eliminación de un proceso padre elimina automáticamente todos sus procesos hijo.
b. Para eliminar un proceso zombie, debe eliminar sus procesos padre.

Consulte el mandato kill en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

También puede utilizar el mandato smit kill.

Información relacionada
“Capítulo 3. Mandatos y procesos” en la página 21

“Visión general de los mandatos” en la página 22

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

Resumen de mandatos para mandatos y procesos

Mandatos
alias Mandato de shell que imprime una lista de los alias para salida estándar.
history Mandato de shell que visualiza la lista de eventos históricos.
man Muestra información en línea acerca de mandatos, subrutinas y archivos.
wsm Efectúa gestión del sistema desde un explorador web.
whatis Describe la función que efectúa el mandato.
whereis Localiza el fuente, binario o manual de los programas instalados.

Procesos
at Ejecuta mandatos en un momento posterior, lista todos los procesos planificados o elimina un
proceso de la planificación.
atq Muestra la cola de trabajos que esperan a ser ejecutados.
kill Envía una señal a los procesos en ejecución.
nice Ejecuta un mandato en una prioridad más baja o más alta.
ps Muestra el estado actual de los procesos.
renice Altera la prioridad de los procesos en ejecución.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

Capítulo 3. Mandatos y procesos 41


“Shell Bourne” en la página 210

“Shell C” en la página 227

42 Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 4. Redirección de entrada y salida
El sistema operativo le permite manipular la entrada y la salida (E/S) de los datos hacia y desde el
sistema utilizando mandatos y símbolos de E/S específicos. Puede controlar la entrada especificando la
ubicación de donde se recogerán datos. Por ejemplo, puede especificar la lectura de la entrada a medida
que se entran datos en el teclado (entrada estándar) o la lectura de entrada desde un archivo. Puede
controlar la salida especificando dónde visualizar o almacenar datos. Por ejemplo, puede especificar el
visualizar los datos de salida en la pantalla (salida estándar) o grabarlos en un archivo.

A pesar de que el sistema operativo es multitarea, está diseñado para manejar procesos en combinación
entre sí. Esta sección describe las ventajas de redireccionar la entrada y la salida y de enlazar procesos
entre sí.

En este apartado se explica lo siguiente:


v “Entrada estándar, salida estándar y error estándar”
v “Redirección de la salida estándar” en la página 44
v “Redirección de la salida a un archivo” en la página 44
v “Redirección de la salida y adición a un archivo” en la página 45
v “Creación de un archivo de texto con redirección desde el teclado” en la página 45
v “Concatenación de archivos de texto” en la página 45
v “Redirección de la entrada estándar” en la página 46
v “Forma de descartar la salida con el archivo /dev/null” en la página 46
v “Redirección de la salida de error estándar y otros tipos de salida” en la página 46
v “Documentos de entrada en línea (here)” en la página 47
v “Conductos y filtros” en la página 47
v “Visualización de la salida de un programa y copia de ésta en un archivo (mandato tee)” en la
página 48
v “Forma de borrar el contenido de la pantalla (mandato clear)” en la página 49
v “Envío de un mensaje a la salida estándar (mandato echo)” en la página 49
v “Adición de una sola línea de texto a un archivo (mandato echo)” en la página 49
v “Copia de la pantalla en un archivo (mandatos capture y script)” en la página 50
v “Visualización del texto de la pantalla en letras grandes (mandato banner)” en la página 51
v “Resumen de mandatos para la redirección de entrada y salida” en la página 51

Entrada estándar, salida estándar y error estándar


Cuando un mandato comienza a ejecutarse, suele esperar que ya estén abiertos tres archivos: la entrada
estándar, la salida estándar y el error estándar (conocido también como salida de error o salida de
diagnóstico). Existe un número, llamado descriptor de archivo que está asociado con cada uno de estos
archivos, del modo siguiente:

Descriptor de archivo Entrada estándar


0
Descriptor de archivo Salida estándar
1
Descriptor de archivo Salida de error (diagnóstico) estándar
2

© Copyright IBM Corp. 1997, 2001 43


Normalmente, un proceso hijo hereda estos archivos de su padre. Estos tres archivos se asignan
inicialmente a la estación de trabajo (0 al teclado, 1 y 2 a la pantalla). El shell les permite redireccionarse
a otros lugares antes de que se pase el control a un mandato.

Cuando escribe un mandato, si no se proporciona ningún nombre de archivo, el teclado es la entrada


estándar, que a veces se indica por medio de stdin. Cuando un mandato se completa, el resultado se
visualiza en la pantalla.

La pantalla es la salida estándar, que a veces se indica por medio de stdout. Por omisión, los mandatos
toman la entrada de la entrada estándar y envían el resultado a la salida estándar.

El error estándar, que a veces se indica por medio de stderr, es el lugar al que se dirigen los mensajes de
error. Por omisión, dicho lugar es la pantalla.

Estas acciones de entrada y salida por omisión se pueden variar. Puede utilizar un archivo como entrada
y grabar los resultados de un mandato en un archivo. Esto se llama redirección de entrada/salida, que es
una de las potentes funciones del sistema operativo UNIX.

La salida de un mandato, que normalmente va al terminal, puede redireccionarse fácilmente a un archivo.


Esto se denomina redirección de salida. Es útil cuando tiene mucha salida que es difícil de leer en la
pantalla o cuando desea agrupar los archivos para crear un archivo más grande.

Aunque no se utiliza tanto como la redirección de salida, la entrada correspondiente a un mandato, que
normalmente procede del teclado, también puede redireccionarse desde un archivo. Esto se denomina
redirección de entrada. La redirección de entrada le permite preparar un archivo con anticipación y,
después, hacer que el mandato lea el archivo.

Redirección de la salida estándar


Cuando se añade la notación > nombrearchivo al final del archivo, la salida del mandato se graba en el
archivo cuyo nombre se ha especificado. El símbolo > se conoce como el operador de redirección de
salida.

Cuando se añade la notación > nombrearchivo al final del archivo, la salida del mandato se graba en el
archivo cuyo nombre se ha especificado. El símbolo > se conoce como el operador de redirección de
salida.

Cualquier mandato que envía su resultado a la pantalla la puede a un archivo.

Redirección de la salida a un archivo


Por ejemplo, para enviar el resultado del mandato who a un archivo denominado usuarios, escriba:
who > usuarios

Pulse Intro.

Nota: Si el archivo usuarios ya existe, se sobregrabará, a menos que se especifique la opción


noclobber del mandato incorporado de shell set ksh (shell Korn) o csh (shell C).

Para ver el contenido del archivo usuarios, escriba:


cat usuarios

Pulse Intro.

44 Guía del usuario del sistema: Sistema operativo y dispositivos


Aparece una lista parecida a ésta:
carlos lft/0 May 13 08:05
marta pts/1 May 13 08:10
endrica pts/2 May 13 09:33

Por ejemplo, para enviar el listado del directorio actual a un archivo, escriba:
ls > dirlist

Pulse Intro.

Redirección de la salida y adición a un archivo


Cuando se añade la notación > > nombrearchivo al final de un mandato, la salida del mandato se añade
al archivo cuyo nombre se especifica en lugar de grabarse sobre los datos existentes. El símbolo > > se
conoce como operador de redirección de adición.

Por ejemplo, para añadir archivo2 a archivo1, escriba:


cat archivo2 > > archivo1

Pulse Intro.

Nota: Si el archivo archivo1 no existe, se crea, a menos que se especifique la opción noclobber
del mandato incorporado de shell set ksh (shell Korn) o csh (shell C).

Creación de un archivo de texto con redirección desde el teclado


Cuando se utiliza solo, el mandato cat toma lo que se escribe en el teclado como entrada. Puede redirigir
esta entrada a un archivo. Entre Control-D en una línea nueva al final del texto.

En el indicador del sistema, escriba:


cat > nombrearchivo
Esto es una prueba.
|D

Concatenación de archivos de texto


La combinación de diversos archivos en un solo archivo se denomina concatenación.

Por ejemplo, en el indicador del sistema, escriba:


cat archivo1 archivo2 archivo3 > archivo4

Pulse Intro.

En el ejemplo anterior se crea el archivo4, que se compone de archivo1, archivo2 y archivo3, que se
añaden en el orden especificado.

El siguiente ejemplo muestra un error común cuando se concatenan archivos:


cat archivo1 archivo2 archivo3 > archivo1

Atención: En este ejemplo, puede pensar que el mandato cat añadirá el contenido de archivo1,
archivo2 y archivo3 a archivo1. El mandato cat primero crea el archivo de salida, de modo que, en
realidad, borra el contenido del archivo1 y, a continuación, añade el archivo2 y el archivo3 a éste.

Capítulo 4. Redirección de entrada y salida 45


Redirección de la entrada estándar
Cuando se añade la notación < nombrearchivo al final del mandato, la entrada del mandato se lee del
archivo cuyo nombre se ha especificado. El símbolo < se conoce como operador de redirección de
entrada.

Nota: Sólo podrá redirigirse la entrada de los mandatos que normalmente toman su entrada del
teclado.

Por ejemplo, para enviar el archivo carta1 como mensaje al usuario carlos utilizando el mandato mail,
escriba:
mail carlos < carta1

Pulse Intro.

Forma de descartar la salida con el archivo /dev/null


El archivo /dev/null es un archivo especial. Este archivo tiene una propiedad exclusiva; está siempre
vacío. Los datos que se envían a /dev/null se descartan. Es una función útil cuando se ejecuta un
programa o mandato que genera salida que no se desea tener en consideración.

Por ejemplo, tiene un programa denominado miprog que acepta entrada desde la pantalla y que, mientras
se ejecuta, genera mensajes que prefiere no tener en consideración. Para leer la entrada del archivo
miscript y descartar los mensajes de la salida estándar, escriba:
miprog < miscript >/dev/null

Pulse Intro.

En este ejemplo, miprog utiliza el archivo miscript como entrada y toda la salida estándar se descarta.

Redirección de la salida de error estándar y otros tipos de salida


Además de la entrada estándar y la salida estándar, los mandatos suelen generar otros tipos de salida,
como mensajes de error y de estado, conocidos como salida de diagnóstico. Al igual que la salida
estándar, la salida de error estándar se graba en la pantalla a no ser que se redireccione.

Si desea redirigir el error estándar u otra salida, debe utilizar un descriptor de archivo. Los descriptores de
archivo también pueden especificarse para redirigir la entrada estándar y la salida estándar, pero ya son
los valores por omisión.

Un descriptor de archivo es un número que se asocia a cada uno de los archivos de E/S que
normalmente utiliza un mandato. A continuación se indican los números que se asocian a la entrada
estándar, a la salida estándar y al error estándar:

0 Entra estándar (teclado)


1 Salida estándar (pantalla)
2 Error estándar (pantalla)

Para redirigir la salida de error estándar, escriba el número de descriptor de archivo 2 delante de la salida
o añada los símbolos de redirección (> o > >) y un nombre de archivo tras el símbolo. Por ejemplo, el
siguiente mandato toma la salida de error estándar del mandato cc donde se utiliza para compilar
testfile.c y la añade al final del archivo ERRORS:
cc testfile.c 2 > > ERRORS

46 Guía del usuario del sistema: Sistema operativo y dispositivos


También pueden redirigirse otros tipos de salida utilizando los descriptores de archivo 0 a 9. Por ejemplo,
si el mandato cmd graba la salida en el descriptor de archivo 9, puede redirigir esa salida al archivo
savedata con el mandato siguiente:
cmd 9> savedata

Si un mandato graba en más de una salida, puede redirigir independientemente cada una. Imagine que
un mandato dirige su salida estándar al descriptor de archivo 1, dirige su salida de error estándar al
descriptor de archivo 2 y crea un archivo de datos en el descriptor de archivo 9. La línea de mandatos
siguiente redirige cada una de estas salidas a un archivo distinto:
mandato > estándar 2> error 9> datos

Documentos de entrada en línea (here)


En un mandato con el formato:
mandato << eofstring

donde eofstring es cualquier serie que no contenga caracteres de patrones de coincidencia, el shell toma
las líneas siguientes como entrada estándar del mandato hasta que el shell lee una línea que sólo se
compone de eofstring (posiblemente precedida de uno o más caracteres de tabulación). Las líneas que
aparecen entre la primera y la segunda eofstring suelen denominarse documento de entrada en línea o
documento here. Si existe un guión (-) inmediatamente después de los caracteres de redirección <<, el
shell elimina los caracteres de tabulación iniciales de cada línea del documento de entrada en línea antes
de pasar la línea al mandato.

El shell crea un archivo temporal que contiene el documento presente y efectúa una sustitución de
variables y mandatos en el contenido antes de pasar el archivo al mandato. Efectúa emparejamiento de
patrones en nombres de archivo que son parte de líneas de mandatos en sustituciones de mandatos.
Para impedir todas las sustituciones, delimite cada carácter de la eofstring:
mandato << \eofstring

El documento presente es especialmente útil para una pequeña cantidad de datos de entrada que es
preferible situar en el procedimiento de shell que conservarlos en un archivo separado (por ejemplo, en
scripts de editor). Por ejemplo, puede escribir:
cat <<- xyz
Este mensaje se mostrará en la pantalla
sin las tabulaciones iniciales.
xyz

Pulse Intro.

Esta función es muy útil en procedimientos de shell.

Conductos y filtros
UNIX le permite conectar dos o más mandatos de tal modo que la salida estándar de un mandato se
utilice como entrada estándar de otro mandato. Un conjunto de mandatos conectados de esta forma se
denomina concatenación por conductos. La conexión que une los mandatos se denomina conducto. Los
conductos son otra función de gran importancia de UNIX, pues le permiten unir muchos mandatos que
realizan una sola acción para formar un mandato que abarque muchas acciones.

Puede dirigir la salida de un mandato para que pase a ser la entrada de otro mandato utilizando un
conducto. Los mandatos se conectan mediante un símbolo de conducto (|).

Capítulo 4. Redirección de entrada y salida 47


Cuando un mandato toma su entrada de otro mandato, la modifica y envía el resultado a la salida
estándar, este conjunto de acciones se denomina filtro. Los filtros pueden utilizarse solos, pero son
especialmente útiles en conductos. Los filtros más comunes son:
v sort
v more
v pg

Por ejemplo, el mandato ls graba el contenido del directorio actual en la pantalla en una corriente de
datos con desplazamiento. Cuando se presenta más de una pantalla de información, algunos datos no
pueden verse. Para controlar la salida de forma que el contenido se visualice pantalla a pantalla, puede
utilizar un conducto para dirigir la salida del mandato ls al mandato pg, que controla el formato de salida
a la pantalla tal como se muestra en el ejemplo siguiente:
ls | pg

En este ejemplo, la salida del mandato ls es la entrada del mandato pg. Pulse Intro para pasar a la
siguiente pantalla.

Los conductos funcionan sólo en una dirección (de izquierda a derecha). Cada mandato de un conducto
se ejecuta como un proceso independiente y todos los procesos pueden ejecutarse al mismo tiempo. Un
proceso establece una pausa cuando no puede leer entrada o cuando el enlace al siguiente proceso está
lleno.

Otro ejemplo de la utilización de los conductos es el empleo del mandato grep. grep busca en un archivo
las líneas que contienen series de un determinado patrón. Para que se visualicen todos los archivos
creados o modificados en julio, escriba:
ls -l | grep Jul

Pulse Intro.

En el ejemplo, la salida del mandato ls es la entrada del mandato grep.

Visualización de la salida de un programa y copia de ésta en un


archivo (mandato tee)
El mandato tee, que se utiliza con un conducto, lee la entrada estándar, graba la salida de un programa
en la salida estándar y, simultáneamente, la copia en el archivo o archivos especificados. Esto le aporta la
ventaja de ver la salida inmediatamente y almacenarla para usos posteriores al mismo tiempo.

Por ejemplo, para ver y guardar la salida de un mandato al mismo tiempo, escriba:
ps -ef | tee program.ps

Pulse Intro.

Esto visualiza la salida estándar del mandato ps -ef en la estación de trabajo y, al mismo tiempo, guarda
una copia de ésta en el archivo program.ps. Si program.ps ya existe, se suprime y se sustituye a no ser
que se especifique la opción noclobber del mandato incorporado set.

Por ejemplo, para ver y guardar la salida de un mandato en un archivo existente:


ls -l | tee -a program.ls

Esto visualiza la salida estándar del mandato ls -l en la estación de trabajo y, al mismo tiempo, añade
una copia de ésta al final de program.ls. Si el archivo program.ls no existe, se crea, a menos que se
especifique la opción noclobber del mandato incorporado set.

48 Guía del usuario del sistema: Sistema operativo y dispositivos


El sistema visualiza información parecida a la siguiente, y el archivo program.ls contiene la misma
información:
-rw-rw-rw- 1 jones staff 2301 Sep 19 08:53 161414
-rw-rw-rw- 1 jones staff 6317 Aug 31 13:17 def.rpt
-rw-rw-rw- 1 jones staff 5550 Sep 10 14:13 try.doc

Consulte el mandato tee en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Forma de borrar el contenido de la pantalla (mandato clear)


Puede borrar los mensajes de la pantalla y la entrada del teclado de la pantalla con el mandato clear.

En el indicador de mandatos, escriba:


clear

Pulse Intro.

El sistema borra el contenido de la pantalla y visualiza el indicador.

Consulte el mandato clear en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Envío de un mensaje a la salida estándar (mandato echo)


Puede visualizar mensajes en la pantalla con el mandato echo.

Por ejemplo, para grabar un mensaje en la salida estándar, en el indicador de mandatos, escriba:
echo Inserte un disquete . . .

Pulse Intro.

El sistema muestra lo siguiente:


Inserte un disquete . . .

Por ejemplo, para utilizar el mandato echo con caracteres de patrones de coincidencia, en el indicador de
mandatos, escriba:
echo Los archivos de copia de seguridad son: *.bak

Pulse Intro.

El sistema visualiza el mensaje Los archivos de copia de seguridad son: seguido de los nombres de
archivos del directorio actual que acaban en .bak.

Consulte el mandato echo en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Adición de una sola línea de texto a un archivo (mandato echo)


Puede añadir una sola línea de texto a un archivo con el mandato echo, que se utiliza con el operador de
redirección de adición.

Por ejemplo, en el indicador de mandatos, escriba:

Capítulo 4. Redirección de entrada y salida 49


echo Recuerde realizar la copia de seguridad de los archivos de
correo al finalizar la semana.>

>notas

Pulse Intro.

Esto añade el mensaje Recuerde realizar la copia de seguridad de los archivos de correo al
finalizar la semana. al final del archivo notas.

Consulte el mandato echo en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Consulte el mandato echo en la publicación AIX 5L Version 5.1 Commands Reference para obtener más
información y conocer la sintaxis exacta.

Copia de la pantalla en un archivo (mandatos capture y script)


Puede copiar la información que aparece impresa en el terminal en el archivo que especifique utilizando el
mandato capture, que emula a un terminal VT100.

El mandato script también le permite copiar la información que aparece impresa en el terminal en el
archivo que especifique, sin emular a un terminal VT100.

Ambos mandatos son útiles para generar registros de copia impresa de los diálogos de terminal.

Por ejemplo, para capturar la pantalla de un terminal mientras se emula a un VT100, en el indicador de
mandatos, escriba:
capture screen.01

Pulse Intro.

El sistema visualizará información parecida a la siguiente:


El mandato capture se ha iniciado. El archivo es screen.01.
Utilice |P para volcar el archivo screen.01.
Ahora está emulando un terminal vt100.
Pulse cualquier tecla para continuar.

Tras la entrada de datos y el vuelco del contenido de la pantalla, detenga el mandato capture pulsando
Control-D o escriba exit y pulse Intro. El sistema visualizará información parecida a la siguiente:
El mandato capture se ha completado. El archivo es screen.01.
YA NO ESTÁ EMULANDO un terminal vt100.

Utilice el mandato cat para que se visualice el contenido del archivo.

Por ejemplo, para capturar la pantalla de un terminal, en el indicador de mandatos, escriba:


script

Pulse Intro.

El sistema mostrará una información parecida a esta:


El mandato script se ha iniciado. El archivo es typescript.

Ahora, toda la información que se visualiza en la pantalla se copia en el archivo typescript.

50 Guía del usuario del sistema: Sistema operativo y dispositivos


Para detener el mandato script, pulse Control-D o escriba exit y pulse Intro. El sistema visualizará
información parecida a la siguiente:
El mandato script se ha completado. El archivo es typescript.

Utilice el mandato cat para que se visualice el contenido del archivo.

Consulte los mandatos capture y script en la publicación AIX 5L Version 5.1 Commands Reference para
conocer la sintaxis exacta.

Visualización del texto de la pantalla en letras grandes (mandato


banner)
El mandato banner visualiza los caracteres ASCII de la pantalla utilizando letras más grandes. Cada línea
de la salida puede tener una longitud máxima de 10 dígitos o caracteres en mayúsculas o minúsculas.

Por ejemplo, en el indicador de mandatos, escriba:


banner ¡ADIÓS!

Pulse Intro.

El sistema visualiza ¡ADIÓS! en letras grandes en la pantalla.

Consulte el mandato banner en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

“Capítulo 6. Archivos” en la página 69

El archivo especial null.

Resumen de mandatos para la redirección de entrada y salida


> “Redirección de la salida estándar” en la página 44
< “Redirección de la entrada estándar” en la página 46
>> “Redirección de la salida y adición a un archivo” en la página 45
| “Conductos y filtros” en la página 47
banner Graba series de caracteres ASCII en letras grandes a salida estándar.
capture Permite volcar las pantallas del terminal a un archivo.
clear Borra la pantalla del terminal.
echo Graba series de caracteres a salida estándar.
script Permite copiar en un archivo entrada y salida del terminal.

Capítulo 4. Redirección de entrada y salida 51


tee Visualiza la salida estándar de un programa y la copia en un archivo.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

“Capítulo 6. Archivos” en la página 69

52 Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 5. Sistemas de archivos y directorios
Los sistemas de archivos se componen de grupos de directorios y de los archivos que se encuentran
dentro de los directorios. Los sistemas de archivos suelen representarse como un árbol invertido. El
directorio raíz, que se simboliza por medio de una barra inclinada (/), define un sistema de archivos y
aparece en la parte superior del diagrama en árbol de un sistema de archivos. Los directorios se ramifican
en forma descendente desde el directorio raíz en el diagrama de árbol y contienen archivos y/o
subdirectorios. La ramificación crea vías de acceso exclusivas en toda la estructura de directorios para
cada objeto del sistema de archivos.

Los conjuntos de archivos se almacenan en los directorios. Estos conjuntos de archivos suelen estar
relacionados entre sí; su almacenamiento en una estructura de directorios permite mantenerlos
organizados.

Un archivo es un conjunto de datos que puede leerse o en el que puede grabarse. Un archivo puede ser
un programa creado, texto escrito, datos adquiridos o un dispositivo utilizado. Los mandatos, impresoras,
terminales, correspondencia y programas de aplicación se almacenan en archivos. Esto permite a los
usuarios acceder a diversos elementos del sistema de forma uniforme y proporciona más flexibilidad al
sistema de archivos.

En este apartado se explica lo siguiente:


v “Sistemas de archivos” en la página 54
– “Tipos de sistemas de archivos” en la página 55
– “Estructura del sistema de archivos” en la página 55
– “Visualización del espacio disponible en el sistema de archivos (mandato df)” en la página 56
v “Visión general de los directorios” en la página 57
– “Tipos de directorios” en la página 58
– “Organización de los directorios” en la página 58
– “Convenios de denominación de directorios” en la página 59
– “Nombres de las vías de acceso de los directorios” en la página 59
– “Abreviaturas de los directorios” en la página 60
v “Procedimientos de gestión de directorios” en la página 61
– “Creación de un directorio (mandato mkdir)” en la página 61
– “Movimiento o cambio del nombre de un directorio (mandato mvdir)” en la página 61
– “Visualización del directorio actual (mandato pwd)” en la página 62
– “Cambio a otro directorio (mandato cd)” en la página 62
– “Copia de un directorio (mandato cp)” en la página 63
– “Visualización del contenido de un directorio (mandato ls)” en la página 64
– “Supresión o eliminación de un directorio (mandato rmdir)” en la página 65
– “Comparación del contenido de dos directorios (mandato dircmp)” en la página 66
v “Resumen de mandatos para los sistemas de archivos y directorios” en la página 67

© Copyright IBM Corp. 1997, 2001 53


Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos”

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Enlace de archivos y directorios” en la página 86

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Sistemas de archivos
Un sistema de archivos es una estructura jerárquica (árbol de archivos) de archivos y directorios. Este tipo
de estructura parece un árbol invertido con las raíces al principio y las ramas al final. Este árbol de
archivos utiliza directorios para organizar los datos y los programas en grupos, lo que permite la gestión
de muchos directorios y archivos al mismo tiempo.

Algunas tareas se efectúan de forma más eficaz en un sistema de archivos que en cada directorio del
sistema de archivos. Por ejemplo, puede hacer copia de seguridad, mover o proteger la totalidad de un
sistema de archivos.

El tipo básico de sistema de archivos se denomina Sistema de archivos de diario. Este sistema de
archivos utiliza técnicas de registro por diario de base de datos para mantener su consistencia estructural.
Esto impide que se produzcan daños en el sistema de archivos cuando se interrumpe anormalmente el
sistema.

Algunas de las tareas de gestión del sistema más importantes están relacionadas con los sistemas de
archivos, de forma específica, cabría indicar lo siguiente:
v Asignación de espacio para los sistemas de archivos en los volúmenes lógicos
v Creación de sistemas de archivos
v Obtención de espacio disponible del sistema de archivos para los usuarios del sistema
v Supervisión de la utilización del espacio del sistema de archivos
v Realización de la copia de seguridad de los sistemas de archivos en previsión de una pérdida de datos
si se produce una anomalía en el sistema
v Mantenimiento de los sistemas de archivos en un estado coherente

Estas tareas debe realizarlas el administrador del sistema.

En este apartado se explica lo siguiente:


v “Tipos de sistemas de archivos” en la página 55
v “Estructura del sistema de archivos” en la página 55
v “Visualización del espacio disponible en el sistema de archivos (mandato df)” en la página 56

54 Guía del usuario del sistema: Sistema operativo y dispositivos


Tipos de sistemas de archivos
El sistema operativo soporta varios tipos de sistemas de archivos. Algunos de ellos son:

El Sistema de archivos de diario (JFS) Es el tipo de sistema de archivos básico; da soporte a todo el
conjunto de mandatos del sistema de archivos.
Sistema de archivos de red (NFS) Es un tipo de sistema de archivos que permite el acceso a los
archivos que residen en las máquinas remotas como si
residieran en la máquina local.
Sistema de archivos CD-ROM (CDRFS) Es un tipo de sistema de archivos que permite acceder al
contenido de un CD-ROM mediante las interfaces normales del
sistema de archivos (abrir, leer y cerrar).

Estructura del sistema de archivos


En máquinas autónomas, los siguientes sistemas de archivos residen en los dispositivos asociados por
omisión:

/dev/hd1 /home
/dev/hd2 /usr
/dev/hd3 /tmp
/dev/hd4 /(root)
/dev/hd9var /var

El árbol de archivos tiene las siguientes características:


v Los archivos que las máquinas que tienen la misma arquitectura de hardware pueden compartir, se
encuentran en el sistema de archivos /usr.
v Los archivos variables organizados por cliente, por ejemplo, los archivos de spool y de correo, se
encuentran en el sistema de archivos /var.
v El sistema de archivos /(root) contiene los archivos y directorios que son imprescindibles para el
funcionamiento del sistema. Por ejemplo, contiene:
– Un directorio de dispositivos (/dev)
– Puntos de montaje donde los sistemas de archivos pueden montarse en el sistema de archivos, por
ejemplo, /mnt
v El sistema de archivos /home es el punto de montaje para los directorios iniciales de los usuarios.
v En el caso de los servidores, el directorio /export contiene archivos de espacio de paginación, sistemas
de archivos raíz por cliente (no compartidos), directorios de vuelco, iniciales y /usr/share para clientes
sin discos, además de directorios /usr exportados.

La lista siguiente proporciona información acerca del contenido de algunos subdirectorios del sistema de
archivos / (root).

/bin Enlace simbólico para el directorio /usr/bin. En los sistemas de archivos de UNIX anteriores, el
directorio /bin contenía los mandatos de usuario que ahora residen en /usr/bin en la nueva estructura
de archivos.
/dev Contiene nodos de dispositivos para archivos especiales de dispositivos locales. El directorio /dev
contiene archivos especiales para unidades de cintas, impresoras, particiones de disco y terminales.

Capítulo 5. Sistemas de archivos y directorios 55


/etc Contiene archivos de configuración que varían según la máquina. Estos son algunos ejemplos:
v /etc/hosts
v /etc/passwd
El directorio /etc contiene los archivos que suelen utilizarse en la administración del sistema. La
mayoría de los mandatos que solían residir en el directorio /etc ahora residen en el directorio
/usr/sbin. No obstante, por razones de compatibilidad, contiene enlaces simbólicos con las nuevas
ubicaciones de algunos archivos ejecutables. Estos son algunos ejemplos:
v /etc/chown es un enlace simbólico con /usr/bin/chown.
v /etc/exportvg es un enlace simbólico con /usr/sbin/exportvg.
/export Contiene los directorios y archivos de un servidor destinados a clientes remotos.
/home Sirve como punto de montaje para un sistema de archivos que contiene directorios iniciales de
usuario. El sistema de archivos /home contiene archivos y directorios organizados por usuario.

En una máquina autónoma, un sistema de archivos local independiente se monta en el directorio


/home. En una red, un servidor podría contener archivos de usuario a los que se accedería desde
varias máquinas. En este caso, la copia del servidor del directorio /home se monta remotamente en un
sistema de archivos /home local.
/lib Enlace simbólico para el directorio /usr/lib, que contiene bibliotecas independientes de la arquitectura
cuyos nombres tienen el formato lib*.a.
/sbin Contiene los archivos necesarios para arrancar la máquina y montar el sistema de archivos /usr. La
mayoría de mandatos utilizados durante el arranque provienen del sistema de archivos de disco RAM
de la imagen de arranque; por tanto, muy pocos mandatos residen en el directorio /sbin.
/tmp Sirve como punto de montaje para un sistema de archivos que contiene archivos temporales
generados por el sistema.
/u Enlace simbólico para el directorio /home.
/usr Sirve como punto de montaje para un sistema de archivos que no cambia y que las máquinas pueden
compartir (por ejemplo, ejecutables y documentación ASCII).

Las máquinas autónomas montan un sistema de archivos local independiente en el directorio /usr. Las
máquinas sin discos y que disponen de poco disco montan un directorio desde un servidor remoto
sobre el sistema de archivos /usr.
/var Sirve como punto de montaje para archivos que varían en cada máquina. El sistema de archivos /var
está configurado como un sistema de archivos, pues los archivos que contiene tienden a crecer. Por
ejemplo, es un enlace simbólico para el directorio /usr/tmp, que contiene archivos de trabajo
temporales.

Visualización del espacio disponible en el sistema de archivos


(mandato df)
El mandato df visualiza información acerca del espacio total y del espacio disponible en un sistema de
archivos. El parámetro SistemaArchivos especifica el nombre del dispositivo en el que reside el sistema
de archivos, el directorio en el que se ha montado el sistema de archivos o el nombre relativo de la vía de
acceso de un sistema de archivos. Si no especifica el parámetro SistemaArchivos, el mandato df visualiza
información acerca de todos los sistemas de archivos actualmente montados. Si se ha especificado un
archivo o un directorio, el mandato df muestra información acerca del sistema de archivos en el que
reside.

Por lo general, el mandato df utiliza los totales del espacio libre que contiene el superbloque. Bajo
determinadas circunstancias, estos totales podrían ser erróneos. Por ejemplo, si están realizándose
modificaciones importantes en un sistema de archivos cuando se ejecuta el mandato df, el total de
espacio libre podría no ser preciso.

Consulte el mandato df en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

56 Guía del usuario del sistema: Sistema operativo y dispositivos


Nota: En algunos sistemas de archivos remotos, como los Sistemas de archivos de red (NFS), las
columnas aparecen en blanco si el servidor no proporciona la información.

Por ejemplo, para que se visualice información acerca de todos los sistemas de archivos montados,
escriba:
df

Pulse Intro.

Si el sistema se ha configurado de forma que los directorios /, /usr, /site y /usr/venus residan en
sistemas de archivos separados, la salida del mandato df será parecida a la siguiente:
Sist.archivos 512 bloques libre %usado iusado %iusado Montado en
/dev/hd4 20480 13780 32% 805 13% /
/dev/hd2 385024 15772 95% 27715 28% /usr
/dev/hd9var 40960 38988 4% 115 1% /var
/dev/hd3 20480 18972 7% 81 1% /tmp
/dev/hd1 4096 3724 9% 44 4% /home

Por ejemplo, para que se visualice el espacio disponible del sistema de archivos en el que reside el
directorio actual, escriba:
df .

Pulse Intro.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Visión general de los directorios”

“Capítulo 6. Archivos” en la página 69

“Enlace de archivos y directorios” en la página 86

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Visión general de los directorios


Un directorio es un tipo exclusivo de archivo que sólo contiene la información necesaria para acceder a
archivos o a otros directorios. En consecuencia, un directorio ocupa menos espacio que otros tipos de
archivos. También aporta la flexibilidad y la profundidad de la estructura del sistema de archivos. Los
directorios le permiten agrupar archivos y otros directorios, con la posibilidad de organizar el sistema de
archivos en una jerarquía modular. A diferencia de los otros tipos de archivos, existe un conjunto especial
de mandatos que controla los directorios.

Los directorios contienen entradas de directorio. Cada entrada contiene un nombre de archivo o de
subdirectorio y un número de referencia de nodo de índice (número de inodo). Para aumentar la velocidad
y mejorar la utilización del espacio de disco, se almacenan los datos de un archivo en distintos lugares de
la memoria del sistema. El número de inodo contiene las direcciones que se utilizan para localizar todos
los bloques dispersos de datos que se asocian a un archivo. El número de inodo también registra otra
información acerca del archivo, incluida la hora de modificación y acceso, las modalidades de acceso, el

Capítulo 5. Sistemas de archivos y directorios 57


número de enlaces, el propietario del archivo y el tipo de archivo. Es posible enlazar varios nombres de
un archivo con el mismo número de inodo mediante la creación de entradas de directorio con el mandato
ln.

Puesto que los directorios suelen contener información que no debe estar disponible para todos los
usuarios del sistema, puede protegerse el acceso a los directorios. Estableciendo permisos de directorios,
puede controlar quién tiene acceso al directorio además de determinar qué usuarios (si los hay) pueden
alterar la información del directorio. Consulte el apartado “Modalidades de acceso a archivos y directorios”
en la página 130 para obtener más información.

En este apartado se explica lo siguiente:


v “Tipos de directorios”
v “Organización de los directorios”
v “Convenios de denominación de directorios” en la página 59
v “Nombres de las vías de acceso de los directorios” en la página 59
v “Abreviaturas de los directorios” en la página 60
v “Procedimientos de gestión de directorios” en la página 61

Tipos de directorios
El sistema operativo, el administrador o los usuarios pueden definir los directorios. Los directorios
definidos por el sistema contienen tipos específicos de archivos del sistema, por ejemplo mandatos. En la
parte superior de la jerarquía del sistema de archivos se encuentra el directorio /(root) definido por el
sistema. El directorio /(root) suele contener los siguientes directorios estándar relacionados del sistema:

/dev Contiene archivos especiales para dispositivos de E/S.


/etc Contiene archivos para la inicialización del sistema y la gestión del sistema.
/home Contiene directorios de inicio de sesión para los usuarios del sistema.
/tmp contiene archivos que son temporales y que pueden suprimirse en un número especificado de días.
/usr Contiene lpp, include y otros directorios del sistema.
/usr/bin Contiene programas ejecutables de usuario.

Algunos directorios, como el directorio de inicio de sesión o inicial ($HOME), los define y personaliza el
administrador del sistema. Cuando se inicia la sesión en el sistema operativo, el directorio de inicio de
sesión es el directorio actual.

Los directorios que usted cree reciben el nombre de directorios definidos por el usuario. Estos directorios
le ayudan a organizar y mantener los archivos.

Organización de los directorios


Los directorios contienen archivos y/o subdirectorios. Un subdirectorio es un directorio dentro de otro
directorio. El directorio que contiene el subdirectorio es el directorio padre.

Para que el sistema operativo pueda hacer el seguimiento y localice los directorios, cada directorio tiene
una entrada para el directorio padre, en el que se creó .. (doble punto) y una entrada para el propio
directorio, . (punto). En la mayoría de listados de directorio, dichos archivos están ocultos.

Árbol de directorios
Las estructuras de los directorios padre, subdirectorios y archivos se denominan sistemas de archivos.
Las estructuras de directorios suelen compararse con un árbol invertido. El directorio raiz, que se

58 Guía del usuario del sistema: Sistema operativo y dispositivos


simboliza por medio de una barra inclinada (/), es la base y se representa en la parte superior del árbol
de directorios. Los subdirectorios y los archivos se ramifican en sentido descendente desde el directorio
raíz.

La estructura de sistema de archivos de directorios puede fácilmente convertirse en compleja. Intente


mantener la estructura de directorios y archivos tan simple como le sea posible. Además, cree los
archivos y directorios con nombres fácilmente reconocibles. De este modo, podrá trabajar con los archivos
más fácilmente.

Directorio padre
Cada directorio, a excepción de /(root), tiene un directorio padre y puede tener uno o más directorios hijo.
En la ilustración Ejemplo de estructuras de directorio, C es el padre de E y C es el hijo de /(root).

Directorio inicial
Cuando inicia la sesión, el sistema le sitúa en un directorio que se denomina directorio inicial o directorio
de inicio de sesión. El administrador del sistema establece este directorio para cada usuario. El directorio
inicial es donde usted guarda los archivos personales. Normalmente, los directorios que cree para su
propio uso serán subdirectorios del directorio inicial. Para volver al directorio inicial en cualquier momento,
escriba el mandato cd y pulse Intro en el indicador de mandatos.

Directorio de trabajo
Siempre se trabaja desde un directorio. El directorio en el que actualmente está trabajando se denomina
directorio actual o de trabajo. El mandato pwd (directorio de trabajo actual) informa del nombre del
directorio de trabajo. El mandato cd le permite cambiar a otros directorios de trabajo.

Convenios de denominación de directorios


El nombre de cada directorio debe ser exclusivo en el directorio en el que se almacena. Esto garantiza
que el directorio también tenga un nombre de vía de acceso exclusivo en el sistema de archivos. Los
directorios siguen los mismos convenios de denominación que los archivos, como se explica en el
apartado “Convenios de denominación de archivos” en la página 71.

Nombres de las vías de acceso de los directorios


A cada archivo y directorio se accede mediante una vía de acceso exclusiva, que se denomina nombre de
vía de acceso, en toda la estructura en árbol del sistema de archivos. El nombre de vía de acceso
especifica la ubicación de un directorio o archivo en el sistema de archivos.

Nota: Los nombres de las vías de acceso no pueden tener más de 1023 caracteres.

El sistema de archivos utiliza dos tipos de nombres de vías de acceso:

nombres absolutos de vías de Rastrea la vía de acceso desde el directorio /(root). Los nombres absolutos de
acceso las vías de acceso empiezan por el símbolo de la barra inclinada (/).
nombre relativo de vía de acceso Enmarca la vía de acceso desde el directorio actual hasta su directorio padre o
sus subdirectorios y archivos.

Un nombre absoluto de vía de acceso representa el nombre completo de un directorio o de un archivo


desde el directorio /(root) hasta éste. Independientemente de en qué lugar del sistema de archivos estaba
trabajando, siempre puede encontrar un directorio o archivo especificando su nombre absoluto de vía de
acceso. Los nombres absolutos de vías de acceso empiezan por una barra inclinada (/), el símbolo que
representa al directorio raíz. El nombre de vía de acceso /A/D/9 es el nombre absoluto de vía de acceso

Capítulo 5. Sistemas de archivos y directorios 59


de 9. La primera barra inclinada (/) representa al directorio /(root), que es el punto inicial de la búsqueda.
El resto del nombre de la vía de acceso dirige la búsqueda hacia A, luego hacia D y, finalmente, hacia 9.

Existen dos archivos denominados 9. Esto es posible porque los nombres absolutos de las vías de
acceso de los archivos especifican para cada archivo un nombre exclusivo dentro del sistema de archivos.
Los nombres de vía de acceso /A/D/9 y /C/E/G/9 especifican dos archivos exclusivos llamados 9.

A diferencia de los nombres completos de vías de acceso, los nombres relativos de vías de acceso
especifican un directorio o archivo según el directorio de trabajo actual. Para los nombres relativos de vías
de acceso, puede utilizar la notación del doble punto (..) para subir por la jerarquía del sistema de
archivos. El doble punto (..) representa el directorio padre. Puesto que los nombres relativos de vías de
acceso especifican una vía de acceso que empieza en el directorio actual, no empiezan por una barra
inclinada (/). Los nombres relativos de vía de acceso se utilizan para especificar el nombre de un archivo
en el directorio actual o el nombre de vía de acceso de un archivo o directorio por encima o por debajo
del nivel del directorio actual en el sistema de archivos. Si D es el directorio actual, el nombre relativo de
vía de acceso para acceder a 10 es F/10, pero el nombre absoluto de vía de acceso es siempre
/A/D/F/10.Además, el nombre relativo de vía de acceso para acceder a 3 es ../../B/3.

También puede representar el nombre del directorio actual utilizando la notación del punto (.). La notación
del punto (.) suele utilizarse cuando se ejecutan programas que leen el nombre del directorio actual.

Abreviaturas de los directorios


Las abreviaturas son un método rápido y eficaz para especificar ciertos directorios. A continuación se
muestra una lista de abreviaturas.

Abreviatura Significado
. El directorio de trabajo actual.
.. Es el directorio que está por encima del directorio de trabajo actual (el directorio padre).
x Es el directorio inicial (esto no se aplica al shell Bourne; consulte el apartado “Shell
Bourne” en la página 210).
$HOME El directorio inicial (esto se cumple para todos los shells).

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos” en la página 54

“Capítulo 6. Archivos” en la página 69

“Enlace de archivos y directorios” en la página 86

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

60 Guía del usuario del sistema: Sistema operativo y dispositivos


Procedimientos de gestión de directorios
Existen diversas formas de trabajar con los directorios y con su contenido.

Se presentan el mandato y un ejemplo para cada una de las tareas de directorio siguientes:
v “Creación de un directorio (mandato mkdir)”
v “Movimiento o cambio del nombre de un directorio (mandato mvdir)”
v “Visualización del directorio actual (mandato pwd)” en la página 62
v “Cambio a otro directorio (mandato cd)” en la página 62
v “Copia de un directorio (mandato cp)” en la página 63
v “Visualización del contenido de un directorio (mandato ls)” en la página 64
v “Supresión o eliminación de un directorio (mandato rmdir)” en la página 65
v “Comparación del contenido de dos directorios (mandato dircmp)” en la página 66

Creación de un directorio (mandato mkdir)


El mandato mkdir crea uno o más directorios nuevos, que se especifican mediante el parámetro
Directorio. Cada nuevo directorio contiene el punto de entradas estándar (.) y un punto doble (..). Puede
especificar los permisos de los nuevos directorios con el distintivo -m Modalidad.

Cuando se crea un nuevo directorio, se crea dentro del directorio actual o de trabajo a menos que
especifique un nombre absoluto de vía de acceso en otro lugar del sistema de archivos.

Por ejemplo, para crear un nuevo directorio denominado Prueba en el directorio de trabajo actual con los
permisos por omisión, escriba:
mkdir Prueba

Pulse Intro.

Por ejemplo, para crear un nuevo directorio denominado Prueba con los permisos rwxr-xr-x en un
directorio /home/demo/sub1 anteriormente creado, escriba:
mkdir -m 755 /home/demo/sub1/Prueba

Pulse Intro.

Por ejemplo, para crear un nuevo directorio denominado Prueba con los permisos por omisión en el
directorio /home/demo/sub2, escriba:
mkdir -p /home/demo/sub2/Prueba

Pulse Intro.

El distintivo -p crea los directorios /home, /home/demo y /home/demo/sub2, si todavía no existen.

Consulte el mandato mkdir en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Movimiento o cambio del nombre de un directorio (mandato mvdir)


El mandato mvdir mueve directorios o renombra un directorio.

Por ejemplo, para mover un directorio, escriba:


mvdir libro manual

Capítulo 5. Sistemas de archivos y directorios 61


Pulse Intro.

Ello mueve el directorio libro para colocarlo debajo del directorio denominado manual, si manual existe.
De lo contrario, el directorio libro cambia al nombre manual.

>Por ejemplo, para mover y cambiar el nombre de un directorio, escriba:


mvdir libro3 proj4/manual

Pulse Intro.

Esto mueve libro3 al directorio llamado proj4 y lo renombra a manual (si manual no existía ya).

Consulte el mandato mvdir en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización del directorio actual (mandato pwd)


El mandato pwd graba en la salida estándar el nombre completo de la vía de acceso del directorio actual
(desde el directorio /(root)). Todos los directorios se separan mediante una barra inclinada (/). El directorio
/(root) está representado por medio de la primera barra inclinada (/) y el último directorio indicado es el
directorio actual.

Por ejemplo, para que se visualice el directorio actual, escriba:


pwd

Pulse Intro.

Se muestra el nombre completo de la vía de acceso del directorio actual, así:


/home/thomas

Consulte el mandato pwd en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Cambio a otro directorio (mandato cd)


El mandato cd le lleva del directorio actual a otro directorio. Debe tener permiso de ejecución (búsqueda)
en el directorio especificado.

Si no especifica un parámetro Directorio, el mandato cd le traslada al directorio de inicio de sesión


($HOME en los entornos ksh y bsh o $home en el entorno csh).Si el nombre de directorio especificado
es un nombre completo de vía de acceso, pasa a ser el directorio actual. Un nombre completo de vía de
acceso empieza por una barra inclinada (/), que indica el directorio /(root), un punto (.), que indica el
directorio actual o un doble punto (..), que indica el directorio padre. Si el nombre del directorio no es un
nombre completo de vía de acceso, el mandato cd lo busca basándose en una de las vías de acceso que
especifica la variable de shell $CDPATH (o la variable $cdpath csh). Esta variable tiene la misma sintaxis
y una semántica similar a la variable de shell $PATH (o variable $path csh).

Por ejemplo, para cambiar al directorio inicial, escriba:


cd

Pulse Intro.

Por ejemplo, para cambiar al directorio /usr/include, escriba:


cd /usr/include

62 Guía del usuario del sistema: Sistema operativo y dispositivos


Pulse Intro.

Esto cambia el directorio actual por /usr/include.

Por ejemplo, para bajar un nivel en el árbol de directorios, al directorio sys, escriba:
cd sys

Pulse Intro.

Si el directorio actual es /usr/include y contiene un subdirectorio llamado sys, el directorio


/usr/include/sys pasa a ser el directorio actual.

Por ejemplo, para subir un nivel en el árbol de directorios, escriba:


cd ..

Pulse Intro.

El nombre de archivo especial, doble punto (..), hace referencia al directorio que se encuentra
inmediatamente encima del directorio actual, su directorio padre.

Consulte el mandato cd en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Copia de un directorio (mandato cp)


El mandato cp o copy crea una copia del contenido del archivo o directorio que especifican los
parámetros ArchivoOrigen o DirectorioOrigen en el archivo o directorio que especifican los parámetros
ArchivoDestino o DirectorioDestino. Si el archivo que se especifica como ArchivoDestino existe, la copia
se graba encima del contenido original del archivo. Si va a copiar más de un ArchivoOrigen, el destino
debe ser un directorio.

Para colocar una copia del ArchivoOrigen en un directorio, especifique la vía de acceso de un directorio
existente en el parámetro DirectorioDestino. Los archivos mantienen sus nombres respectivos cuando se
copian en un directorio, a no ser que especifique un nombre de archivo nuevo al final de la vía de acceso.
El mandato cp también copia directorios enteros en otros directorios si especifica los distintivos -r o -R.

Por ejemplo, para copiar todos los archivos de un directorio en un nuevo directorio, escriba:
cp /home/janet/clients/* /home/nick/customers

Pulse Intro.

Esto copiará únicamente los archivos del directorio clients en el directorio customers.

Por ejemplo, para copiar un directorio, incluidos todos sus archivos y subdirectorios, en otro directorio,
escriba:
cp -R /home/nick/clients /home/nick/customers

Pulse Intro.

Esto copia el directorio clients, incluyendo todos sus archivos, subdirectorios y los archivos de dichos
subdirectorios, bajo el directorio customers.

Consulte el mandato cp en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Capítulo 5. Sistemas de archivos y directorios 63


Visualización del contenido de un directorio (mandato ls)
Puede visualizar el contenido de un directorio utilizando el mandato ls.

Mandato ls
El mandato ls graba en salida estándar el contenido de cada Directorio o el nombre de cada Archivo
especificado junto con otras informaciones que solicite con los distintivos. Si no especifica un Archivo o un
Directorio, el mandato ls visualizará el contenido del directorio actual.

Por omisión, el mandato ls visualiza toda la información en orden alfabético por nombre de archivo. Si el
mandato lo ejecuta un usuario con autorización root, el mandato utiliza el distintivo -A por omisión, que
muestra una lista de todas las entradas, a excepción de las correspondientes al punto (.) y al doble punto
(..). Para mostrar todas las entradas de archivos, incluyendo las que comienzan por un . (punto), utilice el
mandato ls -a.

Existen tres formas principales de formatear la salida:


v Listar una entrada por línea utilizando el distintivo -l.
v Listar las entradas en varias columnas especificando el distintivo -C o -x. El distintivo -C es el formato
por omisión cuando la salida es para un tty.
v Lista las entradas en series separadas por comas cuando se especifica el distintivo -m.

Para determinar el número de posiciones de caracteres en la línea de salida, el mandato ls utiliza la


variable de entorno $COLUMNS. Si esta variable no se ha establecido, el mandato lee el archivo
terminfo. Si el mandato ls no puede determinar el número de posiciones de caracteres mediante uno de
estos métodos, utiliza el valor por omisión 80.

La información que se visualiza con los distintivos -e y -l se interpreta como se indica a continuación:

Si el primer carácter es:

d La entrada es un directorio.
b La entrada es un archivo de bloques especial.
c La entrada es un archivo especial de caracteres.
l La entrada es un enlace simbólico.
p La entrada es un archivo especial de conducto FIFO (primero en entrar, primero en salir).
s La entrada es un socket local.
- La entrada es un archivo normal.

Los nueve caracteres siguientes se dividen en tres grupos de tres caracteres cada uno. Los tres primeros
caracteres muestran el permiso del propietario. El siguiente grupo de tres caracteres muestra el permiso
de otros usuarios en el grupo. El último grupo de tres caracteres muestra el permiso de otros usuarios
con acceso al archivo. Los tres caracteres de cada grupo muestran los permisos de lectura, grabación y
ejecución del archivo. El permiso de ejecución de un directorio le permite buscar un archivo especificado
en un directorio.

Los permisos se indican así:

r Se otorga permiso de lectura


t Sólo el propietario del directorio o el propietario del archivo puede suprimir o cambiar el nombre de un archivo
dentro de ese directorio, incluso si otros usuarios tienen permiso de grabación para el directorio.
w Se otorga permiso de grabación (edición)
x Se otorga permiso de ejecución (búsqueda)
- No se otorga el permiso correspondiente.

64 Guía del usuario del sistema: Sistema operativo y dispositivos


La información que se visualiza con el distintivo -e es igual a la que muestra el distintivo -l, a excepción
de la adición de un undécimo carácter, que se interpreta como se indica a continuación.

+ Indica que un archivo tiene información de seguridad ampliada. Por ejemplo, puede que el archivo disponga
de los atributos ampliados ACL, TCB o TP en la modalidad.
- Indica que un archivo no tiene información de seguridad ampliada.

Cuando se lista el tamaño de los archivos de un directorio, el mandato ls visualiza el total del número de
bloques, incluidos los bloques indirectos.

Por ejemplo, para que se listen todos los archivos del directorio actual, escriba:
ls -a

Pulse Intro.

Esto lista todos los archivos, incluyendo


v punto (.)
v doble punto (..)
v Otros archivos cuyos nombres podría o no empezar por un punto (.)

Por ejemplo, para que se visualice información detallada, escriba:


ls -l chap1 .profile

Pulse Intro.

Esto visualiza un largo listado con información detallada acerca de chap1 y de .profile.

Por ejemplo, para que se visualice información detallada acerca de un directorio, escriba:
ls -d -l . manual manual/chap1

Pulse Intro.

Esto visualiza un listado largo de los directorios . y manual y del archivo manual/chap1. Sin el distintivo -d,
se listarían los archivos de los directorios . y manual en lugar de mostrarse información detallada acerca
de los propios directorios.

Consulte el mandato ls en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Supresión o eliminación de un directorio (mandato rmdir)


El mandato rmdir elimina del sistema el directorio que especifica el parámetro Directorio. El directorio
debe estar vacío (sólo puede contener . y ..) para poder eliminarlo y debe tener permisos de grabación en
su directorio padre. Utilice el mandato ls -a Directorio para comprobar si el directorio está vacío.

Por ejemplo, para vaciar y eliminar un directorio, escriba:


rm mydir/* mydir/.*
rmdir mydir

Pulse Intro.

Esto elimina el contenido de mydir y, a continuación, elimina el directorio vacío. El mandato rm visualizará
un mensaje de error relacionado con el intento de eliminación de los directorios del punto (.) y del doble
punto (..) y, a continuación, el mandato rmdir eliminará éstos y el propio directorio

Capítulo 5. Sistemas de archivos y directorios 65


Tenga en cuenta que rm mydir/* mydir/.* primero elimina los archivos cuyos nombres no empiezan por
un punto y luego elimina los nombres que empiezan por un punto. Puede que no se haya dado cuenta de
que el directorio contiene nombres que empiezan por un punto porque el mandato ls no suele listarlos a
menos que utilice el distintivo -a.

Por ejemplo, para eliminar la estructura de directorios /tmp/jones/demo/mydir y todos los directorios que
contiene, escriba:
cd /tmp
rmdir -p jones/demo/mydir

Pulse Intro.

Esto elimina el directorio jones/demo/mydir del directorio /tmp. Si un directorio no está vacío o no tiene
permiso de grabación sobre el mismo cuando va a eliminarse, el mandato termina con los mensajes de
error apropiados.

Consulte el mandato rmdir en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Comparación del contenido de dos directorios (mandato dircmp)


El mandato dircmp compara los dos directorios que especifican los parámetros Directorio1 y Directorio2 y
graba información acerca de su contenido en la salida estándar. En primer lugar, el mandato dircmp
compara los nombres de los archivos de cada directorio. Si el mismo nombre aparece en ambos, el
mandato dircmp compara el contenido de los dos archivos.

En la salida, el mandato dircmp lista los archivos que son exclusivos de cada directorio. A continuación
lista los archivos con nombres idénticos en ambos directorios, pero con contenido distinto. Si no se
especifica ningún distintivo, también lista los archivos que tienen contenido idéntico además de nombres
idénticos en ambos directorios.

Por ejemplo, para que se muestre un resumen de las diferencias existentes entre los archivos de los
directorios proj.ver1 yproj.ver2, escriba:
dircmp proj.ver1 proj.ver2

Pulse Intro.

Esto muestra un resumen de las diferencias entre los directorios proj.ver1 y proj.ver2.El resumen lista
por separado los archivos encontrados únicamente en un directorio o en el otro además de los archivos
que se encuentran en ambos. Si un archivo se encuentra en ambos directorios, el mandato dircmp indica
si los dos archivos son idénticos.

Por ejemplo, para que se muestren los detalles de las diferencias existentes entre los archivos de los
directorios proj.ver1 y proj.ver2, escriba:
dircmp -d -s proj.ver1 proj.ver2

Pulse Intro.

El distintivo -s suprime la información relacionada con los archivos idénticos. El distintivo -d visualiza un
listado diff para cada uno de los archivos diferentes que se han encontrado en ambos directorios.

Consulte el mandato dircmp en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

66 Guía del usuario del sistema: Sistema operativo y dispositivos


Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Enlace de archivos y directorios” en la página 86

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Resumen de mandatos para los sistemas de archivos y directorios

Sistemas de archivos
df Ofrece información acerca del espacio en sistemas de archivos.

Abreviaturas de los directorios


. El directorio de trabajo actual.
.. Es el directorio que está por encima del directorio de trabajo actual (el directorio padre).
x Es el directorio inicial (esto no se aplica al shell Bourne; consulte el apartado “Shell Bourne” en
la página 210).
$HOME El directorio inicial (esto se cumple para todos los shells).

Procedimientos para el manejo de directorios


cd Cambia el directorio actual.
cp Copia archivos o directorios.
dircmp Compara dos directorios y el contenido de sus archivos comunes.
ls Muestra el contenido de un directorio.
mkdir Crea uno o más nuevos directorios.
mvdir Mueve (renombra) un directorio.
pwd Muestra el nombre de vía de acceso del directorio de trabajo.
rmdir Elimina un directorio.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos” en la página 54

Capítulo 5. Sistemas de archivos y directorios 67


“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Enlace de archivos y directorios” en la página 86

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

68 Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 6. Archivos
Los archivos se utilizan para toda la entrada y salida (E/S) de información en el sistema operativo. Esto
estandariza el acceso tanto al software como al hardware. La entrada se produce cuando se modifica o
se graba en el contenido de un archivo. La salida se produce cuando se lee el contenido de un archivo o
se transfiere a otro archivo. Por ejemplo, para crear la salida de la copia impresa de un archivo, el
sistema lee la información del archivo de texto y graba esa información en el archivo que representa la
impresora.

En este apartado se explica lo siguiente:


v “Tipos de archivos” en la página 70
– “Convenios de denominación de archivos” en la página 71
– “Nombres de vías de acceso de archivos” en la página 71
– “Patrones de coincidencia con comodines y metacaracteres” en la página 71
– “Coincidencia con patrones en contraste con expresiones normales” en la página 73
v “Procedimientos de gestión de archivos” en la página 73
– “Supresión de archivos (mandato rm)” en la página 74
– “Movimiento y cambio del nombre de los archivos (mandato mv)” en la página 75
– “Copia de archivos (mandato cp)” en la página 75
– “Búsqueda de archivos (mandato find)” en la página 76
– “Visualización del tipo de archivo (mandato file)” en la página 78
– “Visualización del contenido del archivo (mandatos pg, more, page y cat)” en la página 78
– “Búsqueda de series en los archivos de texto (mandato grep)” en la página 80
– “Clasificación de los archivos de texto (mandato sort)” en la página 80
– “Comparación de archivos (mandato diff)” en la página 81
– “Cálculo de las palabras, líneas y bytes de los archivos (mandato wc)” en la página 82
– “Visualización de las primeras líneas de los archivos (mandato head)” en la página 82
– “Visualización de las últimas líneas de los archivos (mandato tail)” en la página 83
– “Corte de secciones de los archivos de texto (mandato cut)” en la página 83
– “Pegado de secciones de los archivos de texto (mandato paste)” en la página 84
– “Numeración de las líneas de los archivos de texto (mandato nl)” en la página 85
– “Eliminación de las columnas de los archivos de texto (mandato colrm)” en la página 85
v “Enlace de archivos y directorios” en la página 86
– “Tipos de enlaces” en la página 87
– “Enlace de archivos (mandato ln)” en la página 87
– “Eliminación de archivos enlazados” en la página 89
v “Archivos de DOS” en la página 89
– “Copia de archivos de DOS en archivos del sistema operativo base” en la página 90
– “Copia de archivos del sistema operativo base en archivos de DOS” en la página 90
– “Supresión de archivos de DOS” en la página 91
– “Listado del contenido de un directorio de DOS” en la página 91
v “Resumen de mandatos para archivos” en la página 92

© Copyright IBM Corp. 1997, 2001 69


Tipos de archivos
Existen tres tipos básicos de archivos:

normal Almacena datos (texto, binario y ejecutable).


directorio Contiene información utilizada para acceder a otros archivos.
especial Define un archivo de conducto FIFO (primero en entrar, primero en salir) o un dispositivo físico.

Todos los tipos de archivos reconocidos por el sistema se enmarcan en una de estas categorías. No
obstante, el sistema operativo utiliza muchas variaciones de estos tipos básicos.

Archivos normales
Los archivos normales son los archivos más usuales. Otro nombre para los archivos normales es archivos
ordinarios. Los archivos normales contienen datos.

Archivos de texto
Los archivos de texto son archivos normales que contienen información que el usuario puede leer. Esta
información se almacena en ASCII. Puede visualizar e imprimir dichos archivos. Las líneas de un archivo
de texto no deben incluir caracteres NUL y ninguna puede superar la longitud en bytes de {LINE_MAX},
incluyendo el carácter de nueva línea.

La denominación archivo de texto no impide la inclusión de caracteres de control o de otros caracteres no


imprimibles (distintos de NUL). Por lo tanto, los programas de utilidad estándar que listan archivos de
texto como entradas o salidas o bien son capaces de procesar correctamente los caracteres especiales o
bien describen explícitamente sus limitaciones dentro de sus secciones individuales.

Archivos binarios
Los archivos binarios son archivos normales que contienen información que el sistema puede leer. Los
archivos binarios podrían ser archivos ejecutables que indicaran al sistema que ha de realizar un trabajo.
Los mandatos y los programas se almacenan en archivos binarios ejecutables. Los programas de
compilación especial convierten texto ASCII en código binario.

La única diferencia entre los archivos de texto y los archivos binarios es que los archivos de texto tienen
líneas de menos de {LINE_MAX} bytes, sin caracteres NUL, que terminan con un carácter de nueva
línea.

Archivos de directorio
Los archivos de directorio contienen información que el sistema necesita para acceder a todos los tipos
de archivo, pero no contienen los datos reales de los archivos. En consecuencia, los directorios ocupan
menos espacio que un archivo normal y proporcionan a la estructura de sistema de archivos flexibilidad y
profundidad. Cada entrada de directorio representa un archivo o un subdirectorio. Cada entrada contiene
el nombre del archivo y el número de referencia de nodo de índice (número de inodo) del archivo. El
número de inodo apunta al nodo de índice exclusivo que se ha asignado al archivo. El número de inodo
describe la ubicación de los datos que se asocian al archivo. Un grupo independiente de mandatos crea y
controla los directorios.

Consulte el apartado “Visión general de los directorios” en la página 57 para obtener más información.

Archivos especiales
Los archivos especiales definen dispositivos para el sistema o archivos temporales creados por procesos.
Existen tres tipos básicos de archivos especiales: FIFO (primero en entrar, primero en salir), de bloques y
de caracteres. Los archivos FIFO también reciben en el nombre de conductos. Los conductos se crean

70 Guía del usuario del sistema: Sistema operativo y dispositivos


mediante un proceso para permitir temporalmente las comunicaciones con otro proceso. Estos archivos
dejan de existir cuando termina el primer proceso. Los archivos de bloque y los archivos de caracteres
definen dispositivos.

Cada archivo tiene un conjunto de permisos (llamado modalidades de acceso) que determinan quién
puede leer, modificar o ejecutar el archivo.

Para obtener más información acerca de las modalidades de acceso a archivos, consulte el apartado
“Modalidades de acceso a archivos y directorios” en la página 130.

Convenios de denominación de archivos


El nombre de cada archivo debe ser exclusivo en el directorio en el que se almacena. Esto garantiza que
el archivo tiene también un nombre de vía de acceso exclusivo en el sistema de archivos. Las directrices
de la denominación de archivos son:
v Un nombre de archivo puede tener una longitud máxima de 255 caracteres y puede contener letras,
números y caracteres de subrayado.
v El sistema operativo es sensible a las mayúsculas y minúsculas, lo que significa que hace una
distinción entre las letras mayúsculas y las letras minúsculas de los nombres de los archivos. Por lo
tanto, FILEA, FiLea y filea son tres nombres de archivos distintos, aunque residan en el mismo
directorio.
v Los nombres de archivo deben ser tan descriptivos y significativos como sea posible.
v Los directorios siguen los mismos convenios de denominación que los archivos.
v Existen determinados caracteres que tienen un significado especial para el sistema operativo y que
deben evitarse cuando se especifique el nombre de los archivos. Dichos caracteres son los siguientes:
/ \ " ' * ; - ? [ ] ( ) x ! $ { } < > # @ & |
v Un nombre de archivo no aparecerá en un listado de directorios normal (estará oculto) si empieza por
un punto (.). Cuando el mandato ls se ejecuta con el distintivo -a, los archivos ocultos también se listan
junto con los archivos y directorios normales.

Nombres de vías de acceso de archivos


El nombre de la vía de acceso de cada archivo y directorio del sistema de archivos se compone de los
nombres de cada directorio que precede al archivo o directorio en la estructura de árbol.

Puesto que todas las vías de acceso de un sistema de archivos parten del directorio /(root), cada archivo
del sistema de archivos tiene una relación exclusiva con el directorio root, la cual se denomina nombre
absoluto de vía de acceso. Los nombres absolutos de las vías de acceso empiezan por el símbolo de la
barra inclinada (/). El nombre absoluto de la vía de acceso del archivo h dentro del Sistema de archivos
de ejemplo es /B/C/h. Observe que existen dos archivos denominados g. Puesto que las vías de acceso
absolutas de estos archivos son distintas, /B/g y /B/C/g, cada archivo denominado g tiene un nombre
exclusivo dentro del sistema. Cada componente de un nombre de vía de acceso es un vía de acceso
excepto el componente final. El componente final de un nombre de vía de acceso puede ser un nombre
de archivo.

Nota: Los nombres de vías de acceso no pueden superar los 1023 caracteres.

Patrones de coincidencia con comodines y metacaracteres


Los caracteres comodín son un método muy eficaz de especificar varios nombres de archivos o
directorios con un solo carácter. Los dos caracteres de comodín son el asterisco (*) y el signo de
interrogación (?). Los metacaracteres son los corchetes de apertura y cierre ([]), el guión (-) y el signo de
admiración (!).

Capítulo 6. Archivos 71
Comodín *
Utilice el carácter * como patrón de cualquier secuencia o serie de caracteres. El carácter * significa
cualquier carácter, incluyendo la ausencia de caracteres. Por ejemplo, si tiene los siguientes archivos en
el directorio:
1test 2test afile1 afile2 bfile1 file file1 file10 file2 file3

y desea hacer referencia únicamente a los archivos que empiezan por file, tendría que utilizar:
file*

Los archivos seleccionados serían: file file1 file10 file2 file3

Para hacer referencia únicamente a los archivos que contienen la palabra file, tendría que utilizar:
*file*

Los archivos seleccionados serían: afile1 afile2 bfile1 file file1 file10 file2 file3

??
Utilice el comodín ? como sustitución de cualquier carácter. El carácter ? significa cualquier carácter.

Para hacer referencia únicamente a los archivos que empiezan por file y que acaban con un carácter
simple, utilice:
file?

Los archivos seleccionados serían: file1 file2 file3

Para hacer referencia únicamente a los archivos que empiezan por file y que acaban con dos caracteres
simples, utilice:
file??

El archivo seleccionado sería: file10

Metacaracteres del shell [ ]


Los metacaracteres ofrecen otro tipo de notación de comodín al delimitar los caracteres deseados entre
corchetes [ ]. Es como utilizar el comodín ?, con la diferencia de que le permite elegir caracteres
específicos de emparejamiento. Los corchetes [ ] también le permiten especificar un rango de valores
utilizando el guión (-). Para especificar todas las letras del alfabeto, utilice [[:alpha:]]. Para especificar
todas las letras minúsculas del alfabeto, utilice [[:lower:]].

Para hacer referencia únicamente a los archivos que finalizan por 1 o por 2, utilice:
*file[12]

Los archivos seleccionados serían: afile1 afile2 file1 file2

Para hacer referencia únicamente a los archivos que comienzan por cualquier número, utilice:
[0123456789]* o bien [0-9]*

Los archivos seleccionados serían: 1test 2test

Para hacer referencia únicamente a los archivos que no empiezan por a, utilice:
[!a]*

Los archivos seleccionados serían: 1test 2test bfile1 file file1 file10 file2 file3

72 Guía del usuario del sistema: Sistema operativo y dispositivos


Coincidencia con patrones en contraste con expresiones normales
Las expresiones normales le permiten seleccionar series específicas de un conjunto de series de
caracteres. La utilización de expresiones normales suele asociarse al proceso de texto.

Las expresiones normales pueden representar una amplia gama de posibles series. Aunque muchas
expresiones normales pueden interpretarse de forma distinta según el escenario actual, las características
de internacionalización hacen que no haya diferencias entre textos de diferentes países.

Vea los ejemplos de la siguientes comparación entre patrones de coincidencia de archivos y expresiones
normales:
Patrones de coincidencia Expresión normal
* .*
? .
[!a] [|a]
[abc] [abc]
[[:alpha:]] [[:alpha:]]

Consulte el mandato awk en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Capítulo 11. Shells” en la página 159

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Enlace de archivos y directorios” en la página 86

“Archivos de DOS” en la página 89

“Capítulo 7. Impresoras, trabajos de impresión y colas” en la página 95

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Procedimientos de gestión de archivos


Existen muchas formas de trabajar con los archivos del sistema. Normalmente debe crear un archivo de
texto con un editor de texto. Los editores comunes del entorno UNIX son vi y ed. El sistema operativo
también incluye su propio editor de texto, INed. Puesto que se dispone de varios editores de texto, puede
elegir el editor que mejor se adapte a sus necesidades.

También puede crear archivos utilizando la redirección de entrada/salida, como se describe en el


“Capítulo 4. Redirección de entrada y salida” en la página 43″ . La salida de un mandato puede enviarse a
un nuevo archivo o añadirse a un archivo existente.

Capítulo 6. Archivos 73
Tras crear y modificar archivos, puede que tenga que copiar o mover archivos de un directorio a otro,
cambiar el nombre de los archivos para distinguir las distintas versiones de un archivo o especificar
nombres distintos para el mismo archivo. Puede que también necesite crear nuevos directorios cuando
trabaje en proyectos distintos.

Asimismo, también es posible que necesite suprimir determinados archivos. El directorio puede llenarse
rápidamente de archivos que contienen información antigua o inútil. Suprimir archivos que no se necesitan
libera espacio de almacenamiento en el sistema.

En este apartado se explica lo siguiente:


v “Supresión de archivos (mandato rm)”
v “Movimiento y cambio del nombre de los archivos (mandato mv)” en la página 75
v “Copia de archivos (mandato cp)” en la página 75
v “Búsqueda de archivos (mandato find)” en la página 76
v “Visualización del tipo de archivo (mandato file)” en la página 78
v “Visualización del contenido del archivo (mandatos pg, more, page y cat)” en la página 78
v “Búsqueda de series en los archivos de texto (mandato grep)” en la página 80
v “Clasificación de los archivos de texto (mandato sort)” en la página 80
v “Comparación de archivos (mandato diff)” en la página 81
v “Cálculo de las palabras, líneas y bytes de los archivos (mandato wc)” en la página 82
v “Visualización de las primeras líneas de los archivos (mandato head)” en la página 82
v “Visualización de las últimas líneas de los archivos (mandato tail)” en la página 83
v “Corte de secciones de los archivos de texto (mandato cut)” en la página 83
v “Pegado de secciones de los archivos de texto (mandato paste)” en la página 84
v “Numeración de las líneas de los archivos de texto (mandato nl)” en la página 85
v “Eliminación de las columnas de los archivos de texto (mandato colrm)” en la página 85

Supresión de archivos (mandato rm)


Cuando ya no necesite un archivo, puede eliminarlo con el mandato rm. El mandato rm no necesita
confirmación del usuario antes de la eliminación del archivo. Puede utilizar rm para suprimir un grupo de
archivos o para seleccionar determinados archivos en una lista con el fin de suprimirlos.

Mandato rm
El mandato rm elimina de un directorio las entradas del archivo o archivos especificados. No necesita
tener permiso de lectura o de grabación sobre el archivo que desea eliminar. No obstante, debe tener
permiso de grabación sobre el directorio que contiene el archivo.

Por ejemplo, para suprimir el archivo denominado myfile, escriba:


rm myfile

Pulse Intro.

Para suprimir todos los archivos del directorio mydir, de uno en uno, escriba:
rm -i mydir/*

Pulse Intro.

Después de que se visualice el nombre de cada archivo, escriba y y pulse Intro para suprimir el archivo o
bien pulse la tecla Intro para conservarlo.

74 Guía del usuario del sistema: Sistema operativo y dispositivos


Consulte el mandato rm en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Movimiento y cambio del nombre de los archivos (mandato mv)


El mandato mv mueve archivos y directorios de un directorio a otro o cambia el nombre de un archivo o
directorio. Si mueve un directorio a un nuevo directorio sin especificar un nombre nuevo, conserva su
nombre original.

Atención: El mandato mv puede sobregrabar muchos archivos existentes a no ser que especifique
el distintivo -i. El distintivo -i le solicita que confirme la acción antes de sobregrabar un archivo. El
distintivo -f no solicita confirmación. Si se especifican los distintivos -f y -i juntos, es vigente el último
distintivo especificado.

Movimiento de archivos con el mandato mv


Por ejemplo, para mover un archivo a otro directorio y dar a éste un nuevo nombre, escriba:
mv intro manual/chap1

Pulse Intro.

Con ello, intro se mueve a manual/chap1. El nombre intro se elimina del directorio actual y el mismo
archivo aparece como chap1 en el directorio manual. Vea la nota Atención anterior.

Por ejemplo, para mover un archivo a otro directorio, conservando el mismo nombre, escriba:
mv chap3 manual

Pulse Intro.

Con ello, chap3 se mueve a manual/chap3. Vea la nota Atención anterior.

Cambio del nombre de los archivos con el mandato mv


Por ejemplo, para cambiar el nombre de un archivo, escriba:
mv appendix apndx.a

Pulse Intro.

Con ello, el nombre appendix cambiará por apndx.a. Si ya existe un archivo denominado apndx.a, el
contenido anterior de éste se sustituirá por el de appendix. Vea la nota Atención anterior.

Consulte el mandato mv en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Copia de archivos (mandato cp)


El mandato cp o copy crea una copia del contenido del archivo o directorio que especifican los
parámetros ArchivoOrigen o DirectorioOrigen en el archivo o directorio que especifican los parámetros
ArchivoDestino o DirectorioDestino. Si el archivo que se especifica como ArchivoDestino ya existe, la
copia se graba encima del contenido original del archivo sin advertirle de ello. Si va a copiar más de un
ArchivoOrigen, el destino debe ser un directorio.

Si existe un archivo con el mismo nombre en el nuevo destino, el archivo copiado sobregrabará el archivo
en el nuevo destino. Por lo tanto, es conveniente asignar un nombre nuevo para la copia del archivo de
modo que se asegure de que no existe un archivo con el mismo nombre en el directorio destino.

Capítulo 6. Archivos 75
Para colocar una copia del ArchivoOrigen en un directorio, especifique la vía de acceso de un directorio
existente en el parámetro DirectorioDestino. Los archivos mantienen sus nombres respectivos cuando se
copian en un directorio, a no ser que especifique un nombre de archivo nuevo al final de la vía de acceso.
El mandato cp también copia directorios enteros en otros directorios si especifica los distintivos -r o -R.

También puede copiar archivos de dispositivo especiales. La opción preferida para realizar esta acción es
el distintivo -R. La especificación de -R da lugar a que los archivos especificados vuelvan a crearse en el
nuevo nombre de vía de acceso. La especificación del distintivo -r da lugar a que el mandato cp intente
copiar los archivos especiales en archivos normales.

Por ejemplo, para hacer una copia de un archivo en el directorio actual, escriba:
cp prog.c prog.bak

Pulse Intro.

Esto copiará prog.c en prog.bak. Si el archivo prog.bak todavía no existe, el mandato cp lo creará. Si
existe, el mandato cp lo sustituirá por una nueva copia del archivo prog.c.

Por ejemplo, para copiar un archivo del directorio actual en otro directorio, escriba:
cp jones /home/nick/clients

Pulse Intro.

Esto copiará el archivo jones en /home/nick/clients/jones.

Por ejemplo, para copiar todos los archivos de un directorio en un nuevo directorio, escriba:
cp /home/janet/clients/* /home/nick/customers

Pulse Intro.

Esto copiará únicamente los archivos del directorio clients en el directorio customers.

Por ejemplo, para copiar un conjunto específico de archivos en otro directorio, escriba:
cp jones lewis smith /home/nick/clients

Pulse Intro.

Esto copiará los archivos jones, lewis y smith del directorio de trabajo actual en el directorio
/home/nick/clients.

Por ejemplo, para utilizar caracteres de patrones de coincidencia para copiar archivos, escriba:
cp programs/*.c .

Esto copiará los archivos del directorio programs que acaban en .c en el directorio actual, que se
especifica mediante un punto (.). Deberá incluir un espacio entre la c y el punto final.

Consulte el mandato cp en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Búsqueda de archivos (mandato find)


El mandato find busca recurrentemente en el árbol de directorios cada Vía de acceso especificada con el
fin de localizar los archivos que coinciden con una expresión booleana que se escribe de acuerdo con los
términos que se indican en el texto siguiente. La salida del mandato find depende de los términos que
especifica el parámetro Expresión.

76 Guía del usuario del sistema: Sistema operativo y dispositivos


Por ejemplo, para que se listen todos los archivos del sistema de archivos que tengan el nombre
.profile, escriba:
find / -name .profile

Con ello se busca en todo el sistema de archivos y se graban los nombres completos de las vías de
acceso de todos los archivos denominados .profile. La barra inclinada (/) indica al mandato find que
busque en el directorio /(root) y en todos sus subdirectorios. Para evitar pérdidas de tiempo, se
recomienda limitar la búsqueda especificando los directorios en los que cree que pueden encontrarse los
archivos.

Por ejemplo, para que se listen los archivos que tienen el código de permiso específico 0600 en el árbol
de directorios actual, escriba:
find . -perm 0600

Con ello se listarán los nombres de los archivos que tienen sólo permiso de lectura y permiso de
grabación del propietario. El punto (.) indica al mandato find que busque en el directorio actual y en sus
subdirectorios. Consulte el mandato chmod para ver una explicación de los códigos de permiso.

Por ejemplo, para buscar archivos con ciertos códigos de permiso en varios directorios, entre:
find manual clients proposals -perm -0600

Esto lista los nombres de los archivos que tienen permiso de lectura de propietario y de grabación de
propietario y posiblemente otros permisos. Se busca en los directorios manual, clients y proposals y en
sus subdirectorios. En el ejemplo anterior, -perm 0600 selecciona únicamente los archivos cuyos códigos
de permiso coinciden exactamente con 0600.En este ejemplo, -perm -0600 selecciona archivos con
códigos de permiso que permiten los accesos indicados por 0600 y otros accesos por encima del nivel
0600.Esto también coincide con los códigos de permiso 0622 y 2744.

Por ejemplo, para listar todos los archivos del directorio actual que se han cambiado durante el periodo de
24 horas actual, entre:
find . -ctime 0

Por ejemplo, para buscar archivos normales con múltiples enlaces, entre:
find . -type f -links +1

Pulse Intro.

Con ello se listarán los nombres de los archivos normales (-type f) que tienen más de un enlace (-links
+1).

Nota: Cada directorio tiene, como mínimo, dos enlaces: la entrada en su directorio padre y su propia
entrada .(punto). Consulte el mandato ln para obtener más información acerca de los múltiples
enlaces de los archivos.

Por ejemplo, para imprimir los nombres de las vías de acceso de todos los archivos que están en o por
debajo del directorio actual, excepto los directorios denominados SCCS o los archivos de los directorios
SCCS, escriba:

Pulse Intro.
find . -name SCCS -prune

Por ejemplo, para buscar todos los archivos que tienen una longitud exacta de 414 bytes, escriba:
find . -size 414c

Pulse Intro.

Capítulo 6. Archivos 77
Consulte el mandato find en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización del tipo de archivo (mandato file)


El mandato file lee los archivos que especifica el parámetro Archivo o -fListaArchivos, realiza una serie de
pruebas en cada uno de ellos e intenta clasificarlos por su tipo. A continuación, el mandato graba los tipos
de los archivos en la salida estándar.

Si un archivo parece ser ASCII, el mandato file examina los primeros 512 bytes y determina su lenguaje.
Si un archivo parece no ser ASCII, el mandato file sigue intentando determinar si se trata de un archivo
de datos binario o de un archivo de texto que contiene caracteres ampliados.

Si el parámetro Archivo especifica un ejecutable o un archivo de módulo de objetos y el número de la


versión es mayor que 0, el mandato file visualiza la indicación de la versión.

El mandato file utiliza el archivo /etc/magic para identificar los archivos que tienen algún tipo de número
mágico, es decir, cualquier archivo que contenga una constante numérica o de serie de caracteres que
indique el tipo.

Por ejemplo, para que se visualice el tipo de información que contiene el archivo denominado myfile,
escriba:
file myfile

Pulse Intro.

Esto muestra el tipo de archivo de myfile (por ejemplo directorio, datos, texto ASCII, fuente de programa
C y archivador).

Por ejemplo, para que se visualice el tipo de cada archivo cuyo nombre se indica en filenames.lst, que
contiene una lista de los nombres de los archivos, escriba:
file -f filenames.lst

Pulse Intro.

Ello visualizará el tipo de cada archivo cuyo nombre se indica en la lista filenames.lst. El nombre de
cada archivo aparece por separado en una línea.

Por ejemplo, para crear el archivo filenames.lst de modo que contenga todos los nombres de archivos
del directorio actual, escriba:
ls > filenames.lst

Pulse Intro.

A continuación edite filenames tal como se desea.

Consulte el mandato file en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización del contenido del archivo (mandatos pg, more, page y


cat)
Los mandatos pg, more y page le permiten ver el contenido de un archivo y controlar la velocidad a la
que han de visualizarse los archivos. También puede utilizar el mandato cat para visualizar el contenido

78 Guía del usuario del sistema: Sistema operativo y dispositivos


de uno o más archivos en la pantalla. La combinación del mandato cat y del mandato pg le permite leer
el contenido de un archivo, mostrándose una pantalla completa cada vez.

También puede visualizar el contenido de los archivos utilizando la redirección de entrada/salida. Consulte
el apartado ″Visión general de la redirección de entrada y salida (“Capítulo 4. Redirección de entrada y
salida” en la página 43)″ para obtener más información acerca de la redirección de entrada/salida.

Mandato pg
El mandato pg lee los nombres de archivos del parámetro Archivo y los graba en la salida estándar,
mostrándose una pantalla cada vez. Si especifica un guión (-) como el parámetro de Archivo o bien
ejecuta el mandato pg sin opciones, el mandato pg lee la entrada estándar. A cada pantalla le sigue un
indicador. Si pulsa la tecla Intro, se mostrará otra pantalla. Los submandatos utilizados con el mandato pg
le permiten revisar los acontecimientos que ya han pasado.

Por ejemplo, para ver el contenido del archivo myfile de modo que se muestre una página cada vez,
escriba:
pg myfile

Pulse Intro.

Consulte el mandato pg en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Mandato more o page


El mandato more o page visualiza texto continuo, mostrándose una pantalla cada vez. Realiza una pausa
tras cada pantalla e imprime el nombre de archivo y el porcentaje de la parte ejecutada (por ejemplo,
myfile (7%)) en la parte inferior de la pantalla. Si, a continuación, pulsa la tecla Intro, el mandato more
visualiza una línea adicional. Si pulsa la barra espaciadora, el mandato more muestra otra pantalla de
texto.

Nota: En algunos modelos de terminales, el mandato more borra la pantalla, en lugar de realizar un
desplazamiento, antes de visualizar la siguiente pantalla de datos.

Por ejemplo, para ver un archivo denominado myfile, escriba:


more myfile

Pulse Intro.

Pulse la barra espaciadora para ver la siguiente pantalla.

Consulte el mandato more en la publicación AIX 5L Version 5.1 Commands Reference para obtener más
información y conocer la sintaxis exacta.

Mandato cat
El mandato cat lee cada parámetro Archivo de forma secuencial y lo graba en la salida estándar.

Por ejemplo, para que se visualice el contenido del archivo notes, escriba:
cat notes

Pulse Intro.

Si el archivo tiene más de 24 líneas de longitud, parte del archivo se desplaza fuera de la pantalla. Para
que un archivo se visualice página por página, utilice el mandato pg.

Capítulo 6. Archivos 79
Por ejemplo, para que se visualice el contenido de los archivos notes, notes2 y notes3, escriba:
cat notes notes2 notes3

Pulse Intro.

Consulte el mandato cat en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Búsqueda de series en los archivos de texto (mandato grep)


El mandato grep busca el patrón especificado por el parámetro Patrón y graba cada línea coincidente en
salida estándar.

Por ejemplo, para buscar en un archivo denominado pgm.s un patrón que contenga algunos de los
caracteres de patrones de coincidencia *, |, ?, [, ], \(, \), \{ y \}, en este caso, líneas que empiecen por
cualquier letra en mayúsculas o en minúsculas, escriba:
grep "|[a-zA-Z]" pgm.s

Pulse Intro.

Esto muestra todas las líneas de pgm.s que comienzan por una letra.

Para que se visualicen todas las líneas de un archivo denominado sort.c que no coincidan con un
patrón, escriba:
grep -v bubble sort.c

Pulse Intro.

Esto visualizará todas las líneas que no contienen la palabra bubble en el archivo sort.c.

Para que en la salida del mandato ls se visualicen las líneas que coinciden con la serie staff, escriba:
ls -l | grep staff

Pulse Intro.

Consulte el mandato grep en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Clasificación de los archivos de texto (mandato sort)


El mandato sort muestra alfabéticamente u ordena en secuencia las líneas del archivo que especifican
los parámetros Archivo y graba el resultado en la salida estándar. Si el parámetro Archivo especifica más
de un archivo, el mandato sort concatena los archivos y los alfabetiza como un archivo.

Nota: El mandato sort es sensible a las mayúsculas y las minúsculas y ordena las letras de modo
que las mayúsculas aparezcan antes que las minúsculas (en función del entorno local).

En los ejemplos siguientes, el contenido del archivo names es:


marta
denise
joyce
endrica
melanie

y el contenido del archivo states es:

80 Guía del usuario del sistema: Sistema operativo y dispositivos


texas
colorado
ohio

Para que se visualice el contenido ordenado del archivo denominado names, escriba:
sort names

Pulse Intro.

El sistema visualiza información parecida a la siguiente:


denise
endrica
joyce
marta
melanie

Para que se visualice el contenido de los dos archivos, names y states, escriba:
sort names states

Pulse Intro.

El sistema visualiza información parecida a la siguiente:


colorado
denise
endrica
joyce
marta
melanie
ohio
texas

Para sustituir el contenido original del archivo denominado names por su contenido ordenado, escriba:
sort -o names names

Pulse Intro.

Esto sustituye el archivo names por los mismos datos, pero ordenado.

Consulte el mandato sort en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Comparación de archivos (mandato diff)


El mandato diff compara archivos de texto. Puede comparar archivos individuales o el contenido de
directorios.

Cuando el mandato diff se ejecuta en archivos normales, y cuando compara archivos de texto de distintos
directorios, el mandato diff indica qué líneas deben cambiarse en los archivos para que sean iguales.

Por ejemplo, para comparar dos archivos, escriba:


diff chap1.bak chap1

Pulse Intro.

Con ello se visualizarán las diferencias entre los archivos chap1.bak y chap1.

Capítulo 6. Archivos 81
Por ejemplo, para comparar dos archivos de modo que no se tenga en consideración las diferencias
relacionadas con la cantidad de espacios en blanco, escriba:
diff -w prog.c.bak prog.c

Pulse Intro.

Si dos líneas sólo se diferencian en el número de espacios y tabulaciones entre palabras, el mandato diff
-w las considera idénticas.

Consulte el mandato diff en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Cálculo de las palabras, líneas y bytes de los archivos (mandato wc)


Por omisión, el mandato wc calcula el número de líneas, palabras y bytes de los archivos que especifica
el parámetro Archivo. Si no se especifica un archivo en el parámetro Archivo, se utiliza la entrada
estándar. El mandato graba el resultado en salida estándar y mantiene un recuento total de todos los
archivos indicados. Si se especifican distintivos, el orden de los distintivos determina el orden de la salida.
Una palabra se define como una serie de caracteres delimitados por espacios, tabulaciones o caracteres
de nueva línea.

Cuando se especifican archivos en la línea de mandatos, se imprimirán sus nombres con los recuentos.

Por ejemplo, para que se visualice el número de líneas, de palabras y de bytes del archivo denominado
chap1, escriba:
wc chap1

Pulse Intro.

Con ello se visualiza el número de líneas, palabras y bytes del archivo chap1.

Por ejemplo, para que sólo se visualice el número de bytes y de palabras, escriba:
wc -cw chap*

Pulse Intro.

Esto muestra el número de bytes y palabras de cada archivo cuyo nombre comience por chap y muestra
los totales.

Consulte el mandato wc en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización de las primeras líneas de los archivos (mandato head)


El mandato head graba en la salida estándar las primeras líneas de los archivos especificados o de la
entrada estándar. Si no se especifica ningún distintivo con el mandato head, por omisión se visualizan las
10 primeras líneas.

Por ejemplo, para que se visualicen las cinco primeras líneas del archivo Test, escriba:
head -5 Test

Pulse Intro.

Consulte el mandato head en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

82 Guía del usuario del sistema: Sistema operativo y dispositivos


Visualización de las últimas líneas de los archivos (mandato tail)
El mandato tail graba el archivo especificado por el parámetro Archivo en salida estándar comenzando
por un punto especificado.

Por ejemplo, para que se visualicen las 10 últimas líneas del archivo notes, escriba:
tail notes

Pulse Intro.

Por ejemplo, para especificar el número de líneas desde el cual empezará a leerse a partir del final del
archivo notes, escriba:
tail -20 notes

Pulse Intro.

Por ejemplo, para que se visualice el archivo notes mostrándose una página cada vez, empezando desde
el byte número 200, escriba:
tail -c +200 notes | pg

Pulse Intro.

Por ejemplo, para seguir el crecimiento del archivo denominado accounts, escriba:
tail -f accounts

Pulse Intro.

Con ello se visualizarán las 10 últimas líneas del archivo accounts. El mandato tail sigue visualizando
líneas a medida que se añaden al archivo accounts. La visualización seguirá hasta que pulse la secuencia
de teclas (Control-C) para detenerla.

Consulte el mandato tail en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Consulte el mandato tail en la publicación AIX 5L Version 5.1 Commands Reference para obtener más
información y conocer la sintaxis exacta.

Corte de secciones de los archivos de texto (mandato cut)


El mandato cut graba en la salida estándar los bytes, caracteres o archivos que se han seleccionado en
cada línea del archivo.

Por ejemplo, para visualizar varios campos de cada línea de un archivo:


cut -f1,5 -d: /etc/passwd

Esto muestra el nombre de inicio de sesión y los campos de nombre de usuario completos del archivo de
contraseñas del sistema. Éstos son los campos primero y quinto (-f1,5) separados por signos de dos
puntos (-d:).

Por ejemplo, si el aspecto del archivo /etc/passwd es el siguiente:


su:*:0:0:Usuario con privilegios especiales:/:/usr/bin/sh
daemon:*:1:1::/etc:
bin:*:2:2::/usr/bin:

Capítulo 6. Archivos 83
sys:*:3:3::/usr/src:
adm:*:4:4:Administrador del sistema:/var/adm:/usr/bin/sh
pierre:*:200:200:Pierre Harper:/home/pierre:/usr/bin/sh
joan:*:202:200:Joan Brown:/home/joan:/usr/bin/sh

el mandato cut produce:


su:Usuario con privilegios especiales
daemon:
bin:
sys:
adm:Administrador del sistema
pierre:Pierre Harper
joan:Joan Brown

Consulte el mandato cut en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Pegado de secciones de los archivos de texto (mandato paste)


El mandato paste fusiona las líneas de hasta 12 archivos en un único archivo.

Por ejemplo, si tiene un archivo llamado names que contiene el siguiente texto:
rachel
jerry
mark
linda
scott

otro archivo llamado places que contiene el siguiente texto:


New York
Austin
Chicago
Boca Raton
Seattle

y otro archivo llamado dates que contiene el siguiente texto:


February 5
March 13
June 21
July 16
November 4

para pegar el texto de los archivos names, places y dates, escriba:


paste names places dates > npd

Pulse Intro.

Esto crea un archivo llamado npd que contiene los datos del archivo names en una columna, el archivo
places en otra columna y el archivo dates en una tercera. Ahora, el archivo npd contiene lo siguiente:
rachel New York February 5
jerry Austin March 13
mark Chicago June 21
linda Boca Raton July 16
scott Seattle November 4

Un carácter de tabulación separa el nombre, el lugar y la fecha en cada línea. Estas columnas no siempre
están alineadas, ya que las tabulaciones están definidas cada octava columna.

Por ejemplo, para separar las columnas que tienen un carácter distinto de una tabulación, escriba:

84 Guía del usuario del sistema: Sistema operativo y dispositivos


paste -d"!@" names places dates > npd

Pulse Intro.

Esto alterna ! y @ como separadores de columnas. Si los archivos names, places y dates son iguales que
los del ejemplo 1, el archivo npd contiene:
rachel!New York@February 5
jerry!Austin@March 13
mark!Chicago@June 21
linda!Boca Raton@July 16
scott!Seattle@November 4

Por ejemplo, para que el directorio actual se liste en cuatro columnas, escriba:
ls | paste - - - -

Pulse Intro.

Cada guión (-) indica al mandato paste que cree una columna que contenga los datos que se han leído
de la entrada estándar. La primera línea se sitúa en la primera columna, la segunda línea en la segunda
columna, etc.

Consulte el mandato paste en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Numeración de las líneas de los archivos de texto (mandato nl)


El mandato nl lee el archivo especificado (por omisión, la entrada estándar), numera las líneas de la
entrada y graba las líneas numeradas en salida estándar.

Por ejemplo, para que se numeren sólo las líneas que no están en blanco, escriba:
nl chap1

Pulse Intro.

Esto muestra un listado numerado de chap1, numerando únicamente las líneas que no están en blanco de
las secciones del cuerpo.

Por ejemplo, para numerar todas las líneas:


nl -ba chap1

Con ello se numeran todas las líneas del archivo denominado chap1, incluidas las líneas en blanco.

Consulte el mandato nl en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Eliminación de las columnas de los archivos de texto (mandato colrm)


El mandato colrm elimina las columnas especificadas de un archivo. La entrada se toma de la entrada
estándar. La salida se envía a la salida estándar.

Si se llama con un parámetro, se eliminan las columnas de cada línea desde la columna especificada
hasta la última columna. Si se llama con dos parámetros, se eliminan las columnas desde la primera
columna especificada hasta la segunda columna especificada.

Nota: La numeración de las columnas empieza por la columna 1.

Capítulo 6. Archivos 85
Por ejemplo, para eliminar las columnas del archivo text.fil, escriba:
colrm 6 < text.fil

Pulse Intro.

Si text.fil contiene:
123456789

el mandato colrm muestra:


12345

Consulte el mandato colrm en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Capítulo 11. Shells” en la página 159

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Enlace de archivos y directorios”

“Archivos de DOS” en la página 89

“Capítulo 7. Impresoras, trabajos de impresión y colas” en la página 95

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Enlace de archivos y directorios


Los enlaces son conexiones entre un nombre de archivo y un número de referencia de nodo de índice
(número de inodo), la representación interna de un archivo. Puesto que las entradas de directorio
contienen nombres de archivos emparejados con números de inodo, cada entrada de directorio es un
enlace. El número de inodo identifica realmente al archivo, no al nombre de archivo. Mediante la
utilización de enlaces, cualquier número de inodo o archivo puede conocerse por muchos nombres
distintos.

Por ejemplo, el número de inodo 798 contiene una memorándum acerca de las ventas de junio de la
oficina de Omaha. Actualmente, la entrada de directorio para este memorándum es:

Número de Nombre de archivo


inodo
798 memorándum

86 Guía del usuario del sistema: Sistema operativo y dispositivos


Puesto que esta información está relacionada con la información que se almacena en los directorios sales
y omaha, el enlace se utiliza para compartir la información donde es necesario. Por medio de la utilización
del mandato ln se crean los enlaces con dichos directorios. Ahora el archivo tiene tres nombres:

Número de Nombre de archivo


inodo
798 memorándum
798 sales/june
798 omaha/junesales

Cuando utiliza el mandato pg o cat para ver el contenido de cualquiera de los tres nombres de archivos,
se visualiza la misma información. Si edita el contenido del número de inodo de cualquiera de los tres
nombres de archivos, el contenido de los datos que visualizarán todos los archivos reflejarán los cambios
realizados.

En este apartado se explica lo siguiente:


v “Tipos de enlaces”
v “Enlace de archivos (mandato ln)”
v “Eliminación de archivos enlazados” en la página 89

Tipos de enlaces
Los enlaces se crean con el mandato ln. Existen dos tipos de enlaces:

enlace fijo Permite el acceso a los datos de un archivos desde un nombre de archivo nuevo. Los enlaces
fijos garantizan la existencia de un archivo. Cuando se elimina el último enlace fijo, se suprimen
el número de inodo y sus datos. Sólo pueden crearse enlaces fijos entre archivos que se
encuentran en el mismo sistema de archivos.
enlace simbólico Permite el acceso a datos de otros sistemas de archivos desde un nombre de archivo nuevo. El
enlace simbólico es un tipo especial de archivo que contiene un nombre de vía de acceso.
Cuando un proceso encuentra un enlace simbólico, puede que el proceso busque en dicha vía de
acceso. Los enlaces simbólicos no protegen a un archivo para evitar su supresión del sistema de
archivos.

Nota: El usuario que crea un archivo sigue siendo el propietario de ese archivo, con independencia
del número de enlaces creados. Sólo el propietario del archivo o el usuario root pueden establecer la
modalidad de acceso para dicho archivo. Sin embargo, pueden realizarse cambios en el archivo
desde un nombre de archivo enlazado con la modalidad de acceso adecuada.

Un archivo o directorio existirá en tanto que exista un enlace fijo con el número de inodo de ese archivo.
En el largo listado que visualiza el mandato ls -l, se proporciona el número de enlaces con cada archivo y
subdirectorio. El sistema operativo trata todos los enlaces fijos de igual modo independientemente del
enlace que se haya creado primero.

Enlace de archivos (mandato ln)


El enlace de archivos mediante la utilización del mandato ln es la forma correcta de trabajar con los
mismos datos en más de una ubicación. Los enlaces se crean al proporcionar nombres alternativos al
archivo original. La utilización de enlaces permite compartir un archivo grande, por ejemplo una base de
datos o una lista de buzoneo, entre muchos usuarios sin tener que hacer copias de dicho archivo. Los
enlaces no sólo ahorran espacio de disco, sino que los cambios efectuados se reflejan automáticamente
en todos los archivos enlazados.

Capítulo 6. Archivos 87
El mandato ln enlaza el archivo que se indica en el parámetro ArchivoOrigen con el archivo que indica el
parámetro ArchivoDestino o con el mismo nombre de archivo de otro directorio que especifique el
parámetro DirectorioDestino. Por omisión, el mandato ln crea enlaces fijos. Para utilizar el mandato ln
para crear enlaces simbólicos, designe el distintivo -s.

Si va a enlazar un archivo con un nombre nuevo, puede listar únicamente un archivo. Si va a enlazar con
un directorio, puede listar más de un archivo.

El parámetro ArchivoDestino es opcional. Si no especifica un archivo de destino, el mandato ln creará un


nuevo archivo en el directorio actual. El archivo nuevo hereda el nombre del archivo designado en el
parámetro ArchivoOrigen.

Nota: No puede enlazar archivos entre distintos sistemas de archivos sin utilizar el distintivo -s.

Por ejemplo, para crear otro enlace con un archivo denominado chap1, escriba:
ln -f chap1 intro

Pulse Intro.

Esto enlaza chap1 con el nuevo nombre, intro. Cuando se utiliza el distintivo -f, se crea el nombre de
archivo intro, si todavía no existe. Si intro existe, el archivo se sustituye por un enlace con chap1. Por lo
tanto, los nombres de archivos chap1 e intro harán referencia al mismo archivo. Los cambios efectuados
a un archivo también aparecen en el otro archivo.

Por ejemplo, para enlazar un archivo denominado index con el mismo nombre en otro directorio
denominado manual, escriba:
ln index manual

Pulse Intro.

Esto enlaza index con el nuevo nombre, manual/index.

Por ejemplo, para enlazar varios archivos con nombres de otro directorio, escriba:
ln chap2 jim/chap3 /home/manual

Pulse Intro.

Esto enlaza chap2 con el nuevo nombre /home/manual/chap2 y jim/chap3 con /home/manual/chap3.

Por ejemplo, para utilizar el mandato ln con caracteres de patrones de coincidencia, escriba:
ln manual/* .

Pulse Intro.

Esto enlaza todos los archivos del directorio manual en el directorio actual, punto (.), recibiendo los
mismos nombres que tienen en el directorio manual.

Nota: Deberá escribir un espacio entre el asterisco y el punto.

Por ejemplo, para crear un enlace simbólico, escriba:


ln -s /tmp/toc toc

Pulse Intro.

88 Guía del usuario del sistema: Sistema operativo y dispositivos


Esto crea el enlace simbólico, toc, en el directorio actual. El archivo toc apunta al archivo /tmp/toc. Si el
archivo /tmp/toc existe, el mandato cat toc lista su contenido.

Para obtener idénticos resultados sin especificar el parámetro ArchivoDestino, escriba:


ln -s /tmp/toc

Pulse Intro.

Consulte el mandato ln en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Eliminación de archivos enlazados


El mandato rm elimina el enlace del nombre de archivo que se indica. Cuando se suprime un archivo de
un grupo de nombres de archivos con enlace fijo, no se suprime completamente el archivo, ya que
permanece con el otro nombre. Cuando se ha eliminado el último enlace con un número de inodo, los
datos también se eliminan. El número de inodo está disponible a continuación para su reutilización en el
sistema.

Consulte el mandato rm en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Capítulo 11. Shells” en la página 159

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Archivos de DOS”

“Capítulo 7. Impresoras, trabajos de impresión y colas” en la página 95

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Archivos de DOS
Este sistema operativo le permite trabajar con archivos de DOS en el sistema. Copie en un disquete los
archivos DOS con los que desee trabajar. Con los mandatos correctos, el sistema puede leer estos
archivos en un directorio del sistema operativo base en el formato correcto y nuevamente en el disquete
en formato DOS.

Capítulo 6. Archivos 89
Nota: Los caracteres de comodín * y ? (asterisco y signo de interrogación) no funcionan con estos
mandatos (aunque sí funcionan con el shell del sistema operativo base). Si no especifica una
extensión de archivo, el nombre de archivo se interpreta como si hubiera especificado una extensión
en blanco.

Este apartado describe:


v “Copia de archivos de DOS en archivos del sistema operativo base”
v “Copia de archivos del sistema operativo base en archivos de DOS”
v “Supresión de archivos de DOS” en la página 91
v “Listado del contenido de un directorio de DOS” en la página 91

Copia de archivos de DOS en archivos del sistema operativo base


El mandato dosread copia el archivo de DOS especificado en el archivo del sistema operativo base
indicado.

Nota: Se utilizan los convenios de denominación de archivos del DOS, con una excepción. Puesto
que el carácter de la barra inclinada invertida (\) puede tener un significado especial para el sistema
operativo base, utilice el carácter de la barra inclinada (/) como delimitador para especificar los
nombres de los subdirectorios de un nombre de vía de acceso del DOS.

Por ejemplo, para copiar un archivo de texto denominado chap1.doc desde un disquete de DOS en el
sistema de archivos del sistema operativo base, escriba:
dosread -a chap1.doc chap1

Pulse Intro.

Esto copia el archivo de texto de DOS \CHAP1.DOC del dispositivo por omisión /dev/fd0 en el archivo del
sistema operativo base chap1 del directorio actual.

Por ejemplo, para copiar un archivo binario desde un disquete de DOS en el sistema de archivos del
sistema operativo base, escriba:
dosread -D/dev/fd1 /survey/test.dta /home/fran/testdata

Pulse Intro.

Esto copia el archivo de datos de DOS \SURVEY\TEST.DTA de /dev/fd1 en el sistema de archivos del
sistema operativo base /home/fran/testdata.

Consulte el mandato dosread en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Copia de archivos del sistema operativo base en archivos de DOS


El mandato doswrite copia el archivo del sistema operativo base especificado en el archivo de DOS
indicado.

Nota: Se utilizan los convenios de denominación de archivos del DOS, con una excepción. Puesto
que el carácter de la barra inclinada invertida (\) puede tener un significado especial para el sistema
operativo base, utilice el carácter de la barra inclinada (/) como delimitador para especificar los
nombres de los subdirectorios de un nombre de vía de acceso del DOS.

Por ejemplo, para copiar un archivo de texto denominado chap1 desde el sistema de archivos del sistema
operativo base en un disquete de DOS, escriba:

90 Guía del usuario del sistema: Sistema operativo y dispositivos


doswrite -a chap1 chap1.doc

Pulse Intro.

Esto copia el archivo del sistema operativo base chap1 del directorio actual en el archivo de texto de DOS
\CHAP1.DOC de /dev/fd0.

Por ejemplo, para copiar un archivo binario denominado /survey/test.dta desde el sistema de archivos
del sistema operativo base en un disquete de DOS, escriba:
doswrite -D/dev/fd1 /home/fran/testdata /survey/test.dta

Pulse Intro.

Esto copia el archivo de datos del sistema operativo base /home/fran/testdata en el archivo de DOS
\SURVEY\TEST.DTA de /dev/fd1.

Consulte el mandato doswrite en la publicación AIX 5L Version 5.1 Commands Reference para conocer
la sintaxis exacta.

Supresión de archivos de DOS


El mandato dosdel suprime el archivo de DOS especificado.

Nota: Se utilizan los convenios de denominación de archivos del DOS, con una excepción. Puesto
que el carácter de la barra inclinada invertida (\) puede tener un significado especial para el sistema
operativo base, utilice el carácter de la barra inclinada (/) como delimitador para especificar los
nombres de los subdirectorios de un nombre de vía de acceso del DOS.

El mandato dosdel convierte los caracteres en minúsculas del nombre del archivo o directorio en
caracteres en mayúsculas antes de comprobar el disco. Puesto que se presupone que todos los nombres
de archivos son nombres completos (no relativos) de vías de acceso, no es necesario añadir la barra
inclinada (/) inicial.

Por ejemplo, para suprimir un archivo de DOS denominado file.ext que está en el dispositivo por
omisión (/dev/fd0), escriba:
dosdel file.ext

Pulse Intro.

Consulte el mandato dosdel en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Listado del contenido de un directorio de DOS


El mandato dosdir visualiza información relacionada con los archivos o directorios de DOS especificados.

Nota: Se utilizan los convenios de denominación de archivos del DOS, con una excepción. Puesto
que el carácter de la barra inclinada invertida (\) puede tener un significado especial para el sistema
operativo base, utilice el carácter de la barra inclinada (/) como delimitador para especificar los
nombres de los subdirectorios de un nombre de vía de acceso del DOS.

El mandato dosdir convierte los caracteres en minúsculas del nombre del archivo o directorio en
caracteres en mayúsculas antes de comprobar el disco. Puesto que se presupone que todos los nombres
de archivos son nombres de vías de acceso completos (no relativos), no necesita añadir la barra inclinada
(/ ) inicial.

Capítulo 6. Archivos 91
Por ejemplo, para leer un directorio de los archivos de DOS que se encuentra en /dev/fd0, escriba:
dosdir

Pulse Intro.

El mandato devuelve los nombres de los archivos e información de espacio en disco.


PG3-25.TXT
PG4-25.TXT
PG5-25.TXT
PG6-25.TXT
Espacio libre: 312320 bytes

Consulte el mandato dosdir en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Capítulo 11. Shells” en la página 159

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Enlace de archivos y directorios” en la página 86

“Capítulo 7. Impresoras, trabajos de impresión y colas” en la página 95

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Resumen de mandatos para archivos


* Comodín, sustituye a cualquier carácter o caracteres.
? Comodín, sustituye a caracteres individuales.
[] Metacaracteres, sustituye a caracteres delimitados.

Procedimientos para el manejo de archivos


cat Concatena o visualiza archivos.
cmp Compara dos archivos.
colrm Extrae columnas de un archivo.
cp Copia archivos.
cut Graba bytes, caracteres o campos seleccionados de cada línea de un archivo.
diff Compara archivos de texto.
file Determina el tipo de archivo.
find Localiza archivos con una expresión de búsqueda.

92 Guía del usuario del sistema: Sistema operativo y dispositivos


grep Busca un patrón en un archivo.
head Visualiza las primera líneas o bytes de un archivo o archivos.
more Muestra texto continuo de pantalla en pantalla en la pantalla de un terminal.
mv Mueve archivos.
nl Numera las líneas de un archivo.
pg Formatea archivos en la pantalla.
rm Elimina (desenlaza) archivos o directorios.
paste Fusiona las líneas de varios archivos o líneas subsiguientes en un archivo.
page Muestra texto continuo de pantalla en pantalla en la pantalla de un terminal.
sort Ordena archivos, fusiona archivos que ya están ordenados y comprueba los archivos para
determinar si se han ordenado.
tail Graba un archivo en salida estándar, comenzando en un punto especificado.
wc Cuenta el número de líneas, palabras y bytes de un archivo.

Enlace de archivos y directorios


ln Enlaza archivos y directorios.

Archivos de DOS
dosdel Suprime archivos DOS.
dosdir Lista los archivos DOS del directorio.
dosread Copia archivos de DOS en archivos del Sistema operativo base.
doswrite Copia archivos del Sistema operativo base en archivos de DOS.

Capítulo 6. Archivos 93
94 Guía del usuario del sistema: Sistema operativo y dispositivos
Capítulo 7. Impresoras, trabajos de impresión y colas
Según la impresora de que disponga, puede controlar el aspecto y las características de la salida final. No
es necesario que las impresoras se encuentren en la misma zona que la unidad del sistema y la consola
del sistema. Una impresora puede conectarse directamente a un sistema local o bien un trabajo de
impresión puede enviarse a través de una red a un sistema remoto.

Para gestionar los trabajos de impresión con eficacia, el sistema sitúa cada trabajo en una cola esperando
a que la impresora esté disponible. El sistema puede guardar la salida de uno o más archivos en la cola.
A medida que la impresora genera la salida de un archivo, el sistema procesa el siguiente trabajo de la
cola. Este proceso continúa hasta que se han impreso todos los trabajos de la cola.

La publicación AIX 5L Version 5.1 Guide to Printers and Printing contiene información detallada acerca de
las impresoras, los trabajos de impresión y las colas.

En este apartado se explica lo siguiente:


v “Terminología para impresoras”
v “Inicio de un trabajo de impresión (mandato qprt)” en la página 97
v “Cancelación de un trabajo de impresión (mandato qcan)” en la página 101
v “Comprobación del estado del trabajo de impresión (mandato qchk)” en la página 101
v “Condiciones de estado de la impresora” en la página 103
v “Especificación de la prioridad de un trabajo de impresión (mandato qpri)” en la página 103
v “Retención y liberación de un trabajo de impresión (mandato qhld)” en la página 104
v “Movimiento de un trabajo de impresión a otra cola de impresión (mandato qmov)” en la página 105
v “Formateo de archivos para impresión (mandato pr)” en la página 106
v “Impresión de archivos ASCII en una impresora PostScript” en la página 107
v “Automatización de la conversión de ASCII a PostScript” en la página 109
v “Alteración temporal de la determinación automática de los tipos de archivos de impresión” en la
página 109
v “Resumen de mandatos para impresoras, trabajos de impresión y colas” en la página 110

Terminología para impresoras


A continuación se describen los términos que suelen utilizarse en la impresión.

Trabajo de impresión
Un trabajo de impresión es una unidad de trabajo que ha de ejecutarse en una impresora. Un trabajo de
impresión consiste en imprimir uno o más archivos, según cómo se solicite dicho trabajo. El sistema
asigna un número de trabajo exclusivo a cada trabajo que ejecuta.

Cola
La cola es el lugar al que se dirige un trabajo de impresión. Es la parte en formato de líneas organizadas
o stanza del archivo /etc/qconfig cuyo nombre es el nombre de la cola y que apunta al dispositivo de
cola asociado. A continuación se muestra un listado de ejemplo:
Msa1:
device = lp0

En el ejemplo anterior, Msa1 es el nombre de la cola y lp0 es el nombre del dispositivo.

© Copyright IBM Corp. 1997, 2001 95


Dispositivo de cola
El dispositivo de cola es la parte en formato de líneas organizadas o stanza del archivo /etc/qconfig que,
por lo general, aparece a continuación de la stanza de la cola local. Especifica el archivo /dev (dispositivo
de impresora) en el que debe imprimirse y el componente de fondo que debe utilizarse. A continuación se
muestra un listado de ejemplo:
lp0:
file = /dev/lp0
header = never
trailer = never
access = both
backend = /usr/lpd/piobe

En el ejemplo anterior, lp0 es el nombre del dispositivo y el resto de las líneas definen la forma en que se
utilizará el dispositivo.

Nota: Puede existir más de un dispositivo de cola asociado a una única cola.

qdaemon
El qdaemon es un proceso que se ejecuta como proceso en segundo plano y que controla las colas. Por
lo general, se inicia al encenderse el sistema.

Spooler de impresión
El spooler no es específicamente un spooler de trabajos de impresión. En lugar de ello, proporciona una
función de spooling genérica que puede utilizarse para poner en cola diversos tipos de trabajos, incluidos
los trabajos de impresión que se colocan en la cola de una impresora.

El spooler normalmente no sabe qué tipo de trabajo pone en cola. Cuando el administrador del sistema
define una cola de spooler, el programa de spooler de componente de fondo que se ha especificado para
la cola define el objetivo de la cola. Por ejemplo, si el programa de componente de fondo del spooler es el
mandato piobe (el componente de E/S de la impresora), la cola es una cola de impresión. Del mismo
modo, si el programa de componente de fondo de spooler es un compilador, la cola está destinada a
trabajos de compilación. Cuando el mandato qdaemon del spooler selecciona un trabajo de una cola de
spooler, ejecuta el trabajo invocando el programa de componente de fondo que ha especificado el
administrador al definir la cola.

El mandato principal del spooler es el mandato enq. Aunque puede invocar este mandato directamente
para poner en cola un trabajo de impresión, existen tres mandatos de componente frontal definidos para
someter un trabajo de impresión: los mandatos lp, lpr y qprt. Una solicitud de impresión que se ha
emitido con uno de estos mandatos primero pasa al programa enq que, a continuación, coloca la
información acerca del archivo en la cola para que la procese el qdaemon.

Impresora real
Una impresora real es el hardware de impresora que se conecta a una boca serie o paralelo en una
dirección de dispositivo de hardware exclusiva. El controlador de dispositivo de la impresora del kernel se
comunica con el hardware de la impresora y proporciona una interfaz entre el hardware de la impresora y
una impresora virtual, pero no reconoce el concepto de impresoras virtuales.

Impresora virtual
Una impresora virtual es un conjunto de atributos que definen una vista de software específica de una
impresora real. Esta vista de la impresora virtual hace referencia únicamente a la corriente de datos de

96 Guía del usuario del sistema: Sistema operativo y dispositivos


alto nivel (por ejemplo, ASCII o PostScript) que la impresora reconoce. No incluye información acerca de
cómo está conectado el hardware de la impresora al sistema principal o acerca del protocolo utilizado
para transferir bytes de datos hacia o desde la impresora. La definición de las impresoras virtuales la
realiza el gestor del sistema.

Impresoras locales y remotas


Cuando conecta una impresora a un nodo o a un sistema principal, la impresora se denomina impresora
local. Un sistema de impresión remota permite que los nodos que se han enlazado directamente con una
impresora tengan acceso a la impresora.

Para utilizar los recursos de impresión remota, los nodos individuales deben conectarse a una red
utilizando el protocolo TCP/IP (Protocolo de control de la transmisión/Protocolo Internet) y deben dar
soporte a las aplicaciones TCP/IP que se necesitan.

Componente de fondo de impresora


El componente de fondo de impresora es un conjunto de programas que el mandato qdaemon del
spooler llama para gestionar un trabajo de impresión que se ha colocado en la cola para su impresión. El
componente de fondo de impresora realiza las funciones siguientes:
v Recibe del mandato qdaemon una lista de uno o más archivos que deben imprimirse.
v Utiliza los valores de los atributos de formato y de la impresora de la base de datos, que pueden
alterarse temporalmente entrando distintivos en la línea de mandatos.
v Inicializa la impresora antes de imprimir un archivo.
v Ejecuta los filtros necesarios para convertir la corriente de datos de impresión en un formato que reciba
el soporte de la impresora.
v Proporciona filtros para simplificar el formateo de los documentos ASCII.
v Proporciona soporte para la impresión de caracteres en el idioma nacional.
v Pasa la corriente de datos de impresión filtrada al controlador de dispositivo de la impresora.
v Genera páginas de cabecera y de cola.
v Genera varias copias.
v Informa acerca de las condiciones de falta de papel, de si es necesaria la intervención del operador y
de las condiciones de error de la impresora.
v Informa de los problemas que han detectado los filtros.
v Borra un trabajo de impresión tras su cancelación.
v Proporciona un entorno de impresión que el administrador del sistema puede personalizar en función
de necesidades de impresión específicas.

Inicio de un trabajo de impresión (mandato qprt)


Utilice la información que encontrará en los apartados “Mandato qprt” en la página 98 y “Mandato smit” en
la página 100 para solicitar un trabajo de impresión y especificar lo siguiente:
v El nombre del archivo que se imprimirá
v El nombre de la cola de impresión
v El nombre de la bandeja de salida
v El número de copias a imprimir
v Si debe hacerse una copia del archivo en el sistema principal remotos
v Si debe borrarse el archivo después de imprimirlo
v Si debe enviarse notificación del estado del trabajo

Capítulo 7. Impresoras, trabajos de impresión y colas 97


v Si el correo del sistema debe enviar notificación del estado del trabajo
v El estado de los separadores
v El nombre de usuario para la etiqueta ″Entregar a″
v El mensaje de acuse de recibo de consola para la impresión remota
v El mensaje de acuse de recibo para la impresión remota
v El nivel de prioridad

Requisitos previos
v Para los trabajos de impresión local, la impresora debe estar físicamente conectada al sistema.
v Para los trabajos de impresión remota, el sistema deberá haberse configurado para comunicarse con el
servidor de impresión remoto.

Mandato qprt
El mandato qprt crea y pone en cola un trabajo de impresión para imprimir el archivo que se especifica.
Si especifica más de un archivo, todos los archivos forman un trabajo de impresión. Estos archivos se
imprimen en el orden especificado en la línea de mandatos.

Para poder imprimir un archivo, previamente debe tener acceso de lectura sobre el mismo. Para eliminar
un archivo después de imprimirlo, debe tener acceso de grabación sobre el directorio que contiene el
archivo.

El formato básico del mandato qprt es:

-b Número Especifica el margen inferior. El margen inferior es el número de líneas en blanco que
se dejan al final de cada página.
-B Valor Especifica si deben imprimirse páginas de separación (páginas continuas separadas
en perforaciones). La variable Valor se compone de una serie de dos caracteres. El
primer carácter se aplica a páginas de cabecera. El segundo carácter se aplica a
páginas finales. Cada uno de los dos caracteres puede ser uno de los siguientes:
a Imprime siempre la página (de cabecera o final) de cada archivo en cada
trabajo de impresión.
n Nunca imprime la página (de cabecera o final).
g Imprime la página (de cabecera o final) una vez por cada trabajo de
impresión (grupo de archivos).

Por ejemplo, el distintivo -B ga especifica que se imprime una página de cabecera al


principio de cada trabajo de impresión y que se imprime una página final después de
cada archivo en cada trabajo de impresión.

Nota: En un entorno de impresión remota, el valor por omisión lo determina la


cola remota del servidor.
-e Opción Especifica si se desea impresión enfatizada.
+ Indica que se desea impresión enfatizada.
! Indica que no se desea impresión enfatizada.
-E Opción Especifica si se desea impresión de altura doble.
+ Indica que se desea impresión de altura doble.
! Indica que no se desea impresión de altura doble.
-f TipoFiltro Un identificador de un carácter que especifica un filtro por el que se pasará el archivo
o archivos de impresión antes de enviarlo a la impresora. Los identificadores de filtro
disponibles son p, que llama al filtro pr, y n, que procesa la salida del mandato troff.

98 Guía del usuario del sistema: Sistema operativo y dispositivos


-i Número Causa que la línea sangre el número de espacios especificados. La variable Número
debe incluirse en la anchura de página que especifica el distintivo -w.
-K Opción Especifica si se desea impresión condensada.
+ Indica que se desea impresión condensada.
! Indica que no se desea impresión condensada.
-l Número Establece la longitud de la página en el número de líneas especificadas. Si la variable
Número es 0, la longitud de página se pasa por alto y se considera que la salida es
una página continua. La longitud de la página incluye los márgenes superior e inferior
e indica la longitud imprimible del papel.
-L Opción Especifica si las líneas que son más amplias que la anchura de página deben
reiniciarse en la siguiente línea o si deben truncarse en el margen derecho.
+ Indica que la líneas largas deben reiniciarse en la línea siguiente.
! Indica que las líneas largas no deben reiniciarse, sino que deben truncarse
en el margen derecho.
-N Número Especifica el número de copias que deben imprimirse. Si no se especifica este
distintivo, se imprime una copia.
-p Número Establece el escape en el Número de caracteres por pulgada. Los valores más
habituales para Número son el 10 y el 12. El paso real de los caracteres impresos
también está afectado por los valores de los distintivos -K (condensado) y -W (doble
ancho).
-P Cola[:DispositivoCola] Especifica el nombre de la cola de impresión y el nombre del dispositivo de cola
opcional. Si no se especifica este distintivo, se toma la impresora por omisión.
-Q Valor Especifica el tamaño del papel para el trabajo de impresión. El Valor del tamaño del
papel depende de la impresora. Los valores usuales son: 1 para papel de tamaño de
carta, 2 para legal, etc. Consulte el manual de la impresora para conocer más detalles
acerca de los valores asignados a tamaños de papel específicos.
-t Número Especifica el margen superior. El margen superior es el número de líneas en blanco
que se dejará al principio de cada página.
-w Número Establece la anchura de página en el número de caracteres que especifica la variable
Número. La anchura de página debe incluir el número de espacios de sangrado
especificado con el distintivo -i.
-W Opción Especifica si se desea impresión de anchura doble.
+ Indica que se desea impresión de anchura doble.
! Indica que no se desea impresión de anchura doble.
-z Valor Rota la salida de la impresora de páginas el número de cuartos de vuelta, en el
sentido de las agujas del reloj, que especifica la variable Valor. Los valores de
longitud (-l) y anchura (-w) se ajustan automáticamente en consonancia.
0 Vertical
1 Apaisado hacia la derecha
2 Vertical invertido
3 Apaisado hacia la izquierda
-= BandejaSalida Especifica el destino de bandeja de salida para un trabajo de impresión. Los valores
posibles se listan a continuación. No obstante, las bandejas de salida válidas
dependen de la impresora.
0 Bandeja de impresora superior
1 a 49 Bandejas de alta capacidad de salida (HCO) 1 - 49
49 Bandejas de salida específicas de impresora

Capítulo 7. Impresoras, trabajos de impresión y colas 99


-# Valor Especifica una función especial.
j Muestra el número de trabajo correspondiente al trabajo de impresión
especificado.
h Pone en cola el trabajo de impresión, pero lo sitúa en estado HELD
(retenido) hasta que se vuelve a liberar.
v Valida los valores de componente de fondo de impresora especificada. Esta
validación es útil para comprobar si existen valores ilícitos en el momento de
someter un trabajo de impresión. Si no se especifica la validación, un valor
de distintivo incorrecto detendrá el trabajo de impresión posteriormente
cuando se procese realmente el trabajo.

Por ejemplo, para solicitar que el archivo myfile se imprima en la primera impresora disponible
configurada para la cola de impresión por omisión utilizando valores por omisión, escriba:
qprt myfile

Por ejemplo, para solicitar que el archivo somefile se imprima en una cola específica utilizando valores de
distintivos específicos y para validar los valores de los distintivos en el momento en que se somete el
trabajo de impresión, escriba:
qprt -f p -e + -Pfastest -# v somefile

Esta acción pasa al archivo somefile por el mandato de filtro pr (el distintivo -f p) y lo imprime utilizando
la modalidad enfatizada (el distintivo -e +) en la primera impresora disponible configurada para la cola
denominada fastest (el distintivo -Pfastest).

Por ejemplo, para imprimir myfile en papel de tamaño legal, escriba:


qprt -Q2 myfile

Por ejemplo, para imprimir tres copias de cada uno de los archivos, new.index.c, print.index.c y more.c,
en la cola de impresión Msp1, escriba:
qprt -PMsp1 -N 3 new.index.c print.index.c more.c

Por ejemplo, para imprimir tres copias de la concatenación de tres archivos, new.index.c, print.index.c y
more.c, escriba:
cat new.index.c print.index.c more.c | qprt -PMsp1 -N 3

Nota: Este sistema operativo también da soporte al mandato de impresión de UNIX de BSD (lpr) y
al mandato de impresión de UNIX de System V (lp). Consulte los mandatos lpr y lp en la
publicación AIX 5L Version 5.1 Commands Reference para conocer la sintaxis exacta.

Consulte el mandato qprt en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Mandato smit
También puede emitir el mandato qprt con smit. En el indicador de mandatos, escriba:
smit qprt

y, a continuación, pulse Intro.

100 Guía del usuario del sistema: Sistema operativo y dispositivos


Cancelación de un trabajo de impresión (mandato qcan)
Puede cancelar cualquier trabajo con los mandatos que se explican en los apartados “Mandato qcan” o
“Mandato smit”. Cuando cancele un trabajo de impresión, se le pedirá que especifique el nombre de la
cola de impresión en la que reside el trabajo y el número de trabajo que desea cancelar.

Este procedimiento se aplica tanto a trabajos de impresión local como remota.

Requisitos previos
v Para trabajos de impresión local, la impresora debe estar conectada físicamente al sistema.
v Para trabajos de impresión remota, el sistema debe estar configurado para comunicarse con el servidor
remoto de impresión.

Mandato qcan
El mandato qcan cancela un número de trabajo en particular de una cola de impresión local o remota o
bien todos los trabajos de una cola de impresión local. Para determinar el número de trabajo, escriba el
mandato qchk.

El formato básico del mandato qcan es el siguiente:


qcan -PNombreCola -x NúmeroTrabajo

Consulte el mandato qcan en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Por ejemplo, para cancelar el trabajo número 123 en cualquier impresora en la que se encuentre el
trabajo, escriba:
qcan -x 123

Por ejemplo, para cancelar todos los trabajos que están en la cola de la impresora lp0, escriba:
qcan -X -Plp0

Nota: Este sistema operativo también da soporte al mandato de cancelación de la impresión de


UNIX de BSD (lprm) y al mandato de cancelación de la impresión de UNIX de System V (cancel).
Consulte los mandatos lprm y cancel en la publicación AIX 5L Version 5.1 Commands Reference
para obtener más información y conocer la sintaxis exacta.

Mandato smit
Para cancelar un trabajo de impresión utilizando SMIT, escriba:
smit qcan

Comprobación del estado del trabajo de impresión (mandato qchk)


Puede visualizar la información de estado actual de los números de trabajos, colas, impresoras o usuarios
especificados como se indica en los apartados “Vía de acceso rápida de Gestor del sistema basado
en la Web” en la página 102, “Mandato qchk” en la página 102 o “Mandato smit” en la página 102.

Requisitos previos
v Para trabajos de impresión local, la impresora debe estar conectada físicamente al sistema.
v Para trabajos de impresión remota, el sistema debe estar configurado para comunicarse con el servidor
remoto de impresión.

Capítulo 7. Impresoras, trabajos de impresión y colas 101


Vía de acceso rápida de Gestor del sistema basado en la Web
Para comprobar el estado de un trabajo de impresión utilizando la vía rápida del Gestor del sistema
basado en la Web, escriba:
wsm printers

En el contenedor Colas de impresora, seleccione el trabajo de impresión y a continuación utilice los


menús para comprobar su estado.

Mandato qchk
El mandato qchk visualiza la información de estado actual relacionada con los trabajos de impresión,
colas de impresión o usuarios especificados.

El formato básico del mandato qchk es:


qchk -P NombreCola -# NúmeroTrabajo -u NombrePropietario

Consulte el mandato qchk en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Por ejemplo, para visualizar la cola de impresión por omisión, escriba:


qchk -q

Por ejemplo, para visualizar el estado de varias horas de todas las colas hasta el estado vacío, a la vez
que se actualiza la pantalla cada 5 segundos, escriba:
qchk -A -L -w 5

Por ejemplo, para visualizar el estado de la cola de impresión lp0, escriba:


qchk -P lp0

Por ejemplo, para visualizar el estado del número de trabajo 123, escriba:
qchk -# 123

Por ejemplo, para comprobar el estado de todos los trabajos de todas las colas, escriba:
qchk -A

Nota: Este sistema operativo también da soporte al mandato de comprobación de la cola de


impresión de UNIX de BSD (lpq) y al mandato de comprobación de la cola de impresión de UNIX de
System V (lpstat). Consulte los mandatos lpq y lpstat en la publicación AIX 5L Version 5.1
Commands Reference para conocer la sintaxis exacta.

Mandato smit
Para comprobar el estado del trabajo de impresión utilizando SMIT, escriba:
smit qchk

102 Guía del usuario del sistema: Sistema operativo y dispositivos


Condiciones de estado de la impresora
Algunas de las condiciones de estado que puede tener una cola de impresión son:

DEV_BUSY Indica que:


v Se ha definido más de una cola para un dispositivo de impresora (lp0) y actualmente existe
otra cola que está utilizando el dispositivo de impresora.
v qdaemon ha intentado utilizar el dispositivo de puerto de impresora (lp0), pero otra aplicación
está utilizando actualmente dicho dispositivo de impresora.

Para realizar la recuperación de un estado DEV_BUSY, espere hasta que la cola o la aplicación
haya liberado el dispositivo de impresora o cancele el trabajo o el proceso que está utilizando la
boca de impresión.
DEV_WAIT Indica que la cola está esperando a la impresora, porque ésta está fuera de línea, no tiene
papel, está atascada, el cable está suelto, deteriorado o enchufado incorrectamente.

Para realizar la recuperación de un estado DEV_WAIT, corrija el problema que ha dado lugar a
la espera. Algunas veces, tienen que eliminarse los trabajos de la cola para que el problema
pueda solucionarse.

Una cola que experimente un estado DEV_WAIT durante un tiempo superior al del número de
segundos definido, entrará en estado DOWN.
DOWN Por lo general, una cola entrará en estado DOWN tras haber experimentado el estado
DEV_WAIT. Esta situación se produce cuando el controlador de dispositivo de impresora no
puede indicar si la impresora está en dicho estado debido a la ausencia de señalización
correcta. Sin embargo, puede que algunas impresoras no sean capaces de enviar una señal al
sistema de colas para indicarle que está fuera de línea y, en lugar de ello, envían una señal
indicando que están apagadas. Si el dispositivo de impresora envía una señal indicando que
está apagado, o parece estar apagado, la cola entrará en estado DOWN.

Para realizar la recuperación de un estado DOWN, corrija el problema que ha dado lugar a que
la impresora entrara en estado de inactividad y solicite al administrador que vuelva a establecer
la cola en estado de actividad. Debe activarse manualmente la cola para poder volver a
utilizarla.
HELD Especifica que se retiene un trabajo de impresión. El spooler no procesará el trabajo de
impresión hasta que se libere.
QUEUED Especifica que se pone en cola un archivo de impresión y que está esperando en línea a
imprimirse.
READY Especifica que todos los elementos implicados con la cola están preparados para ponerse en
cola e imprimir un trabajo.
RUNNING Especifica que está imprimiéndose un archivo de impresión.

Especificación de la prioridad de un trabajo de impresión (mandato


qpri)
Puede cambiar la prioridad de un trabajo utilizando la información que encontrará en los apartados
“Mandato qpri” en la página 104, “Mandato qpri” en la página 104 o “Mandato smit” en la
página 104. Sólo puede asignar prioridad de trabajo en colas locales. Los valores más altos indican una
prioridad más alta para el trabajo de impresión. La prioridad por omisión es 15. La prioridad máxima es 20
para la mayoría de usuarios y 30 para usuarios con privilegio de usuario root y miembros del grupo printq
(grupo 0).

Nota: No puede asignar una prioridad a un trabajo de impresión remota.

Requisitos previos
v Para los trabajos de impresión local, la impresora debe estar físicamente conectada al sistema.

Capítulo 7. Impresoras, trabajos de impresión y colas 103


v Para los trabajos de impresión remota, el sistema deberá haberse configurado para comunicarse con el
servidor de impresión remoto.

Mandato qpri
El mandato qpri vuelve a asignar la prioridad de un trabajo de impresión que ha sometido. Si tiene
autorización de usuario root o pertenece al grupo printq, puede asignar prioridad a cualquier trabajo
mientras está en la cola de impresión.

El formato básico del mandato qpri es:


qpri -# NúmeroTrabajo -a NivelPrioridad

Por ejemplo, para cambiar el trabajo número 123 para que tenga la prioridad número 18, escriba:
qpri -# 123 -a 18

Por ejemplo, para asignar prioridad a un trabajo de impresión local como si se hubiera sometido, escriba:
qprt -PNombreCola -R NivelPrioridad NombreArchivo

Consulte el mandato qpri en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Mandato smit
Para cambiar la prioridad de un trabajo de impresión utilizando SMIT, escriba:
smit qpri

Retención y liberación de un trabajo de impresión (mandato qhld)


Tras haber enviado un trabajo de impresión a una cola de impresión, puede retener el trabajo de
impresión mediante los métodos que se explican en “Vía de acceso rápida de Gestor del sistema
basado en la Web”, en “Mandato qhld” o en “Mandato smit” en la página 105. Posteriormente puede
liberar el trabajo de impresión para imprimirlo con dichos mandatos.

Requisitos previos
v Para trabajos de impresión local, la impresora debe estar conectada físicamente al sistema.
v Para trabajos de impresión remota, el sistema debe estar configurado para comunicarse con el servidor
remoto de impresión.

Vía de acceso rápida de Gestor del sistema basado en la Web


Para retener o liberar un trabajo de impresión mediante la vía de acceso rápida de Gestor del sistema
basado en la Web, escriba:
wsm printers

En el contenedor Colas de impresora, seleccione el trabajo de impresión y a continuación utilice los


menús para situarlo en estado retenido o para liberarlo para la impresión.

Mandato qhld
El mandato qhld retiene un trabajo de impresión después de haberse enviado. Puede situar un trabajo de
impresión determinado en estado retenido o bien puede retener todos los trabajos de impresión en una
cola de impresión especificada. Para determinar el número del trabajo de impresión, escriba el mandato
qchk (consulte el apartado “Comprobación del estado del trabajo de impresión (mandato qchk)” en la
página 101).

El formato básico del mandato qhld es:

104 Guía del usuario del sistema: Sistema operativo y dispositivos


qhld [ -r ] {[ -#NúmeroTrabajo ] [ -PCola ] [ -uUsuario ]}

Consulte el mandato qhld en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Por ejemplo, para retener el trabajo número 452, sea cual sea la cola de impresión en la que se encuentra
el trabajo, escriba:
qhld -#452

Por ejemplo, para retener todos los trabajos de impresión en cola que están en la cola de impresión hp2,
escriba:
qhld -Php2

Para liberar el trabajo número 452, sea cual sea la cola de impresión en la que se encuentra el trabajo,
escriba:
qhld -#452 -r

Para liberar todos los trabajos en cola que se encuentran en la cola de impresión hp2, escriba:
qhld -Php2 -r

Mandato smit
Para retener o liberar un trabajo de impresión utilizando SMIT, escriba:
smit qhld

Movimiento de un trabajo de impresión a otra cola de impresión


(mandato qmov)
Tras haber enviado un trabajo de impresión a una cola de impresión, puede que desee mover el trabajo
de impresión a otra cola de impresión. Puede moverlo con el “Mandato qmov” o el “Mandato smit” en
la página 106.

Requisitos previos
v Para trabajos de impresión local, la impresora debe estar conectada físicamente al sistema.
v Para trabajos de impresión remota, el sistema debe estar configurado para comunicarse con el servidor
remoto de impresión.

Mandato qmov
El mandato qmov mueve un trabajo de impresión a otra cola de impresión. Puede mover un trabajo de
impresión determinado o mover todos los trabajos de impresión de una cola de impresión especificada o
bien todos los trabajos de impresión enviados por un usuario especificado. Para determinar el número del
trabajo de impresión, escriba el mandato qchk.

El formato básico del mandato qmov es:


qmov
-m
NuevaCola {[ -#NúmeroTrabajo ] [ -PCola ] [ -uUsuario ]}

Consulte el mandato qmov en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Por ejemplo, para mover el trabajo número 280 a la cola de impresión hp2, escriba:
qmov -mhp2 -#280

Capítulo 7. Impresoras, trabajos de impresión y colas 105


Por ejemplo, para mover todos los trabajos de impresión de la cola de impresión hp4D a la cola de
impresión hp2, escriba:
qmov -mhp2 -Php4D

Mandato smit
Para mover un trabajo de impresión utilizando SMIT, escriba:
smit qmov

Formateo de archivos para impresión (mandato pr)


El mandato pr realiza un formateo simple de los archivos que ha enviado a imprimir. Para formatear el
texto, interconecte la salida del mandato pr con el mandato qprt.

A continuación se indican algunos de los distintivos más útiles del mandato pr:

-d Produce la salida con espacios dobles.


-h ″Serie″ Visualiza la serie especificada, entre comillas (″ ″), en lugar del nombre del archivo en la
cabecera de la página. El distintivo y la serie deben estar separados por un espacio.
-l Líneas Altera temporalmente el valor por omisión de 66 líneas y vuelve a establecer la longitud de
página en el número de líneas que especifica la variable Líneas. Si el valor de Líneas es
menor que la suma de las profundidades de la cabecera y de la cola (en líneas), se
suprimen la cabecera y el pie de página (como si el distintivo -t estuviera vigente).
-m Fusiona archivos. La salida estándar se formatea de modo que el mandato pr pueda grabar
una línea de cada archivo que especifica una variable Archivo, una junto a otra en columnas
de texto de anchuras fijas iguales, basándose en el número de posiciones de columna. Este
distintivo no debe utilizarse con el distintivo -Columna.
-n [Anchura][Carácter] Proporciona numeración de líneas basándose en el número de dígitos que especifica la
variable Anchura. El valor por omisión es 5 dígitos. Si se especifica la variable Carácter
(cualquier carácter que no sea un dígito), éste se añade al número de línea para separarlo
de los elementos que le siguen en la línea. El separador de caracteres por omisión es el
carácter de tabulación ASCII.
-o Desplazamiento Sangra cada línea el número de posiciones de caracteres que especifica la variable
Desplazamiento. El número total de posiciones de caracteres por línea es la suma de la
anchura y el desplazamiento. El valor por omisión de Desplazamiento es 0.
-sCarácter Separa las columnas utilizando el carácter que especifica la variable Carácter en lugar de
utilizar el número adecuado de espacios. El valor por omisión de Carácter es el carácter de
tabulación ASCII.
-t No muestra la cabecera identificadora de cinco líneas ni el pie de página de cinco líneas. Se
detiene después de la última línea de cada archivo sin espaciar hasta el final de la página.
-w Anchura Establece el número de posiciones de columna por línea en el valor que especifica la
variable Anchura. El valor por omisión es 72 para salida de múltiples columnas de anchura
idéntica. De lo contrario, no hay límite. Si no se especifica el distintivo -w y sí se especifica
el distintivo -s, la anchura por omisión es de 512 posiciones de columna.
-Columna Establece el número de columnas en el valor que especifica la variable Columna. El valor
por omisión es 1. Esta opción no debe utilizarse con el distintivo -m. Se suponen los
distintivos -e y -i para la salida de múltiples columnas. Una columna de texto nunca debe
exceder de la longitud de la página (consulte la información del distintivo -l). Cuando utilice
este distintivo con el distintivo -t, use el número mínimo de líneas para grabar la salida.
+Página Inicia la visualización con el número de página que especifica la variable Página. El valor por
omisión es 1.

Por ejemplo, para imprimir un archivo denominado prog.c con cabeceras y números de páginas en la
impresora, escriba:
pr prog.c | qprt

Pulse Intro.

106 Guía del usuario del sistema: Sistema operativo y dispositivos


Esto añade cabeceras de página a prog.c y lo envía al mandato qprt. La cabecera consta de la fecha en
que se modificó el archivo por última vez, el nombre del archivo y el número de página.

Por ejemplo, para especificar un título para un archivo denominado prog.c, escriba:
pr -h "PROGRAMA PRINCIPAL" prog.c | qprt

Pulse Intro.

Ello imprimirá prog.c con el título PROGRAMA PRINCIPAL en lugar del nombre del archivo. Siguen
imprimiéndose la fecha de modificación y el número de página.

Por ejemplo, para imprimir un archivo denominado word.lst en varias columnas, escriba:
pr -3 word.lst | qprt

Pulse Intro.

Ello imprimirá el archivo word.lst en tres columnas verticales.

Por ejemplo, para imprimir varios archivos, uno junto a otro, en papel:
pr -m -h "Miembros y visitantes" member.lst visitor.lst | qprt

Esto imprimirá member.lst y visitor.lst uno junto a otro, con el título Miembros y visitantes.

Por ejemplo, para modificar un archivo denominado prog.c con el fin de utilizarlo posteriormente, escriba:
pr -t -e prog.c > prog.notab.c

Pulse Intro.

Esto sustituirá los caracteres de tabulación de prog.c por espacios y colocará el resultado en
prog.notab.c. Las posiciones de tabulación están en las columnas 9, 17, 25, 33, etc. El distintivo -e indica
al mandato pr que sustituya los caracteres de tabulación; el distintivo -t suprime las cabeceras de página.

Por ejemplo, para imprimir un archivo denominado myfile a dos columnas, apaisado y en texto de 7
puntos, escriba:
pr -l66 -w172 -2 myfile | qprt -z1 -p7

Pulse Intro.

Consulte el mandato pr en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Impresión de archivos ASCII en una impresora PostScript


El Sistema de formato de texto incluye el filtro enscript para convertir archivos de impresión ASCII en
PostScript para imprimirlos en una impresora PostScript. El mandato qprt -da llama a este filtro cuando
se somete un trabajo de impresión a una cola de impresión PostScript.

Requisitos previos
v La impresora debe estar físicamente conectada al sistema.
v La impresora debe estar configurada y definida.
v Debe haberse instalado la parte transcripción de los Servicios de formateo de texto.

Capítulo 7. Impresoras, trabajos de impresión y colas 107


Existen varios distintivos que pueden especificarse con el mandato qprt para personalizar la salida
cuando se someten archivos ASCII a una cola de impresión PostScript.

-1+ Añade cabeceras de página.


-2+ Formatea la salida en dos columnas.
-3+ Imprime las cabeceras de página, fechas y números de página en estilo de fantasía. A veces,
esto se denomina modalidad ″enfatizada″.
-4+ Imprime el archivo, incluso si contiene caracteres no imprimibles.
-5+ Lista los caracteres que no están incluidos en un font.
-h serie Especifica una serie que se utilizarán para las cabeceras de página. Si no se especifica este
distintivo, la cabecera se compone del nombre del archivo, de la fecha de modificación y del
número de la página.
-l valor Especifica el número máximo de líneas que se imprimirán por página. En función del cuerpo,
puede que, en realidad, aparezcan menos líneas por página.
-L! Trunca las líneas más largas que la anchura de página.
-p Especifica el cuerpo. Si no se especifica este distintivo, se da por supuesto el cuerpo 10, a
menos que se especifique la modalidad rotada de dos columnas (-2+ -z1), en cuyo caso se
utilizaría un valor 7.
-s Especifica el estilo de font. Si no se especifica este distintivo, se utiliza el font Courier. Los
valores que se aceptan son:
Courier-Oblique
Helvetica
Helvetica-Oblique
Helvetica-Narrow
Helvetica-Narrow-Oblique
NewCenturySchlbk-Italic
Optima
Optima-Oblique
Palatino-Roman
Palatino-Italic
Times-Roman
Times-Italic

Nota: La impresora PostScript debe disponer de acceso al font especificado.


-z1 Rota la salida 90 grados (modalidad apaisada)

Por ejemplo, para enviar el archivo ASCII myfile.ascii a la impresora PostScript denominada Msps1,
escriba:
qprt -da -PMsps1 myfile.ascii

Pulse Intro.

Por ejemplo, para enviar el archivo ASCII myfile.ascii a la impresora PostScript denominada Msps1 e
imprimirlo en font Helvetica, escriba:
qprt -da -PMsps1 -sHelvetica myfile.ascii

Pulse Intro.

Por ejemplo, para enviar el archivo ASCII myfile.ascii a la impresora PostScript denominada Msps1 e
imprimirlo en cuerpo 9, escriba:
qprt -da -PMsps1 -p9 myfile.ascii

Pulse Intro.

108 Guía del usuario del sistema: Sistema operativo y dispositivos


Automatización de la conversión de ASCII a PostScript
Muchas aplicaciones que generan archivos de impresión PostScript siguen el convenio de crear los dos
primeros caracteres del archivo PostScript %!, que identifican el archivo como un archivo de impresión
PostScript. Para configurar el sistema para que detecte los archivos de impresión ASCII sometidos a una
cola de impresión PostScript y los convierta automáticamente en archivos PostScript antes de enviarlos a
la impresora PostScript, realice los pasos siguientes:
1. En el indicador de mandatos, escriba:
smit chpq

Pulse Intro.
2. Escriba el nombre de la cola PostScript o bien utilice la función Lista para seleccionar una de la lista
de colas.
3. Seleccione la opción de menú Configuración de impresora.
4. Cambie el valor del campo ¿Debe efectuarse detección AUTOMÁTICA de TIPO de archivo de
impresión? de modo que se especifica yes.

Cualquiera de los siguientes mandatos puede ahora convertir un archivo ASCII en un archivo PostScript e
imprimirlo en una impresora PostScript. Para convertir myfile.ascii, debe escribir cualquiera de los
siguientes mandatos en la línea de mandatos:
qprt -Pps myfile.ps myfile.ascii
lpr -Pps myfile.ps myfile.ascii
lp -dps myfile.ps myfile.acsii

donde ps es una cola de impresión PostScript.

Alteración temporal de la determinación automática de los tipos de


archivos de impresión
Existen dos casos en los que podría ser necesario alterar temporalmente la determinación automática del
tipo de archivo de impresión para la impresión PostScript.

Por ejemplo, para imprimir un archivo PostScript denominado myfile.ps que no empieza por %!, escriba
lo siguiente en la línea de mandatos:
qprt -ds -Pps myfile.ps

Por ejemplo, para imprimir el listado fuente de un archivo PostScript denominado myfile.ps que empieza
por %!, escriba lo siguiente en la línea de mandatos:
qprt -da -Pps myfile.ps

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

Capítulo 7. Impresoras, trabajos de impresión y colas 109


“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

Resumen de mandatos para impresoras, trabajos de impresión y colas


cancel Cancela la petición efectuada a una impresora de líneas.
lp Envía peticiones a una impresora de líneas.
lpq Examina la cola de spool.
lpr Pone en cola trabajos de impresión.
lprm Elimina trabajos de la cola de spooling de la impresora de líneas.
lpstat Muestra información de estado de la impresora de líneas.
pr Graba un archivo en salida estándar.
qcan Cancela un trabajo de impresión.
qchk Muestra el estado de una cola de impresión.
qhld Retiene o libera un trabajo de impresión.
qmov Mueve un trabajo de impresión a otra cola de impresión.
qpri Otorga prioridad a un trabajo en la cola de impresión.
qprt Inicia un trabajo de impresión.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

110 Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 8. Archivos de seguridad y medios de
almacenamiento
Una vez que el sistema esté en marcha, la siguiente consideración que debe tener en cuenta debe ser
hacer copia de seguridad de los sistemas de archivos, directorios y archivos. Los archivos y los directorios
son una inversión importante en tiempo y esfuerzo. Al mismo tiempo, todos los archivos del sistema son
potencialmente fáciles de modificar o borrar, ya sea intencionadamente o por accidente. Si elige un
método cuidadoso y metódico de hacer copias de seguridad de los sistemas de archivos, siempre podrá
restaurar versiones recientes de los archivos o sistemas de archivos con poca dificultad.

Nota: Cuando un disco duro se estropea, la información que contiene ese disco se destruye. La
única forma de recuperar los datos destruidos es recuperar la información a partir de la copia de
seguridad.

Existen varios métodos de hacer las copias de seguridad. El método más frecuente es hacer copias de
seguridad periódicas, es decir, una copia del sistema de archivos, de los directorios o de los archivos que
se guardan para una transferencia de archivos o en el caso de que se modifiquen o se borren
accidentalmente los datos originales. Otro método de hacer copias de seguridad es la copia de seguridad
de archivador; este método se utiliza para copiar uno o más archivos o una base de datos entera que se
guarda para consultas posteriores, objetivos de recopilación histórica o de recuperación si se dañan o se
pierden los datos originales. Normalmente, un archivador se utiliza cuando se eliminan dichos datos
específicos del sistema.

En este apartado se explica lo siguiente:


v “Política de copias de seguridad”
v “Formateo de disquetes (mandato format o fdformat)” en la página 114
v “Comprobación de la integridad del sistema de archivos (mandato fsck)” en la página 115
v “Copia en o desde disquetes (mandato flcopy)” en la página 116
v “Copia de archivos en cinta o disco (mandato cpio -o)” en la página 116
v “Copia de archivos de una cinta o disco (mandato cpio -i)” en la página 117
v “Copia en o desde cintas (mandato tcopy)” en la página 117
v “Comprobación de la integridad de una cinta (mandato tapechk)” en la página 118
v “Compresión de archivos (mandatos compress y pack)” en la página 118
v “Expansión de archivos comprimidos (mandatos uncompress y unpack)” en la página 120
v “Realización de la copia de seguridad de los archivos (mandato backup)” en la página 121
v “Restauración de archivos de copia de seguridad (mandato restore)” en la página 123
v “Archivador de archivos (mandato tar)” en la página 124
v “Resumen de mandatos para los archivos de copia de seguridad y el soporte de almacenamiento” en la
página 125

Política de copias de seguridad


Ninguna política de copias de seguridad cumple con los requisitos de todos los usuarios. Una política que
funciona eficazmente para un sistema con un usuario, por ejemplo, puede ser inadecuada para un
sistema que atiende a 5 ó 10 usuarios distintos. De igual modo, una política desarrollada para un sistema
en que pueden modificarse muchos archivos diariamente sería ineficaz para un sistema en el que los
datos cambian con poca frecuencia. Sólo el propio usuario podrá determinar cuál es la mejor política de
copias de seguridad para el sistema, pero las directrices generales que se facilitan a continuación pueden
ayudarle:

© Copyright IBM Corp. 1997, 2001 111


Asegúrese de que puede realizar la recuperación ante pérdidas importantes.

¿Puede seguir funcionando el sistema si falla alguno de los discos duros? ¿Puede restaurar el sistema si
fallan todos los discos duros? ¿Podría restablecer el sistema si perdiera los disquetes o cintas de
seguridad por incendio o robo? Aunque estos supuestos no son probables, algunos de ellos son posibles.
Estudie cada una de estas posibles pérdidas y diseñe una política de copias de seguridad que le permita
realizar la recuperación del sistema tras producirse cualquiera de ellas.

Compruebe las copias de seguridad periódicamente.

El medio de las copias de seguridad y su hardware puede no ser fiable. Una enorme biblioteca de cintas
o disquetes de seguridad es inútil si no pueden leerse los datos o volver a grabarlos en un disco duro.
Para asegurarse de que las copias de seguridad están en perfecto estado de utilización, intente visualizar
la tabla de contenido de la cinta de la copia de seguridad periódicamente (utilizando restore -T o tar -t
para las cintas de archivador). Si utiliza disquetes para las copias de seguridad y tiene más de una
disquetera, pruebe a leer los disquetes en otra disquetera distinta. Puede que también desee asegurarse
y repetir cada copia de seguridad del nivel 0 empleando un segundo juego de disquetes. Si para las
copias de seguridad utiliza un dispositivo de cintas en modalidad continua, puede utilizar el mandato
tapechk para realizar comprobaciones de coherencia básicas en la cinta.

Conserve las copias de seguridad antiguas.

Desarrolle un plan cíclico regular de reutilización de los soportes de las copias de seguridad; sin embargo,
no vuelva a utilizar todos los soportes de las copias de seguridad. A veces, pueden transcurrir varios
meses hasta que el propio usuario o bien otro usuario del sistema advierte que falta o que está dañado
un archivo importante. Ante esta posibilidad, se recomienda guardar las copias de seguridad antiguas. Por
ejemplo, podría planificar los siguientes tres ciclos de cintas o disquetes de copias de seguridad:
v Una vez por semana, reciclar todos los disquetes empleados a diario, excepto el del viernes.
v Una vez por mes, reciclar todos los disquetes del viernes excepto el del último viernes del mes. Con
ello, las cuatro últimas copias de seguridad de los viernes siempre estarán disponibles.
v Una vez por trimestre, reciclar todos los disquetes mensualmente a excepción del último. Conserve el
último disquete mensual de cada trimestre indefinidamente, quizás en un edifico distinto.

Compruebe los sistemas de archivos antes de realizar la copia de seguridad de éstos.

Puede que la copia de seguridad que se ha realizado de un sistema de archivos dañado no sea útil.
Antes de realizar las copias de seguridad, se recomienda comprobar la integridad del sistema de archivos
ejecutando el mandato fsck.

Asegúrese de que los archivos no estén utilizándose durante la realización de una copia de
seguridad.

Asegúrese de que el sistema no esté utilizándose cuando se realizan las copias de seguridad. Si el
sistema está en uso, los archivos pueden cambiar mientras está realizándose la copia de seguridad de
éstos y, por lo tanto, la copia de seguridad no será precisa.

Realice una copia de seguridad del sistema antes de realizar cambios importantes en éste.

Realice una copia de seguridad de todo el sistema antes de llevar a cabo cualquier prueba de hardware o
trabajo de reparación o bien antes de instalar nuevos dispositivos, programas u otras características del
sistema.

Otros factores

112 Guía del usuario del sistema: Sistema operativo y dispositivos


Otros de los factores que cabe considerar durante la planificación e implementación de una estrategia de
copias de seguridad son:
v ¿Con qué frecuencia cambian los datos? Como se comentó anteriormente, el sistema operativo no
cambia tan a menudo, de forma que no es necesario que haga una copia de seguridad del sistema
frecuentemente. Por otro lado, los datos del usuario normalmente cambian con frecuencia y debe hacer
copia de seguridad con frecuencia.
v ¿Cuántos usuarios hay en el sistema? El número de usuarios afectaría a la cantidad de medios de
almacenamiento y la frecuencia necesaria de las copias de seguridad.
v ¿Qué dificultad requiere reproducir los datos? Es importante tener en cuenta que algunos datos no
pueden reproducirse si no existe una copia de seguridad.

Cualquiera que sea la estrategia de copias de seguridad de su entorno, es muy importante que exista.
Realice copias de seguridad frecuentemente y a intervalos regulares. La recuperación de una pérdida de
datos es muy difícil si no se ha implementado una buena estrategia de copias de seguridad.

Soporte para copias de seguridad


Existen algunos tipos distintos de medios de seguridad. Los distintos tipos de medios de seguridad para la
configuración específica del sistema depende del software y del hardware. Los tipos que se utilizan con
más frecuencia son los disquetes de 5,25 pulgadas, las cintas de 8 mm, las cintas de 9 pistas y los
disquetes de 3,5 pulgadas.

Atención: La ejecución del mandato backup da lugar a la pérdida de todo el material anteriormente
almacenado en el soporte de salida seleccionado.

Disquetes
Los disquetes son el medio de copias de seguridad estándar. A menos que especifique un dispositivo
distinto mediante el mandato backup -f, el mandato backup graba automáticamente la salida en el
dispositivo /dev/rfd0, que es la unidad de disquetes. Para realizar la copia de seguridad en el dispositivo
de cintas por omisión, escriba /dev/rmt0 y pulse Intro.

Sea cuidadoso con los disquetes. Puesto que cada unidad de información ocupa una pequeña zona del
disquete, las pequeñas motas, polvo o partículas de tabaco pueden dejar la información inutilizable.
Asegúrese de recordar lo siguiente:
v No toque las superficies de grabación.
v Mantenga los disquetes alejados de imanes y de fuentes que generen campos magnéticos como, por
ejemplo, los teléfonos, el equipo para el dictado y las calculadoras electrónicas.
v Mantenga los disquetes lejos de temperaturas extremas. La temperatura recomendada oscila entre los
10 y los 60 grados Celsius (entre 50 y 140 grados Fahrenheit).
v Un manejo correcto ayuda a evitar la pérdida de información.
v Realice copias de seguridad de los disquetes con regularidad.

Atención: Las unidades de disquetes y los disquetes deben corresponder al tipo correcto para que
el almacenamiento de los datos sea satisfactorio. Si utiliza un disquete incorrecto en la unidad de
disquetes de 3,5 pulgadas, los datos del disquete podrían destruirse.

La unidad de disquetes utiliza los disquetes de 3,5 pulgadas que se indican a continuación:
v Disquetes de 1 MB de capacidad (almacenan 720 KB de datos aproximadamente)
v Disquetes de 2 MB de capacidad (almacenan 1,44 MB de datos aproximadamente).

Cintas
Las cintas son muy adecuadas para ciertas tareas debido a su gran capacidad y duración. Suelen
elegirse para almacenar grandes archivos o muchos archivos, por ejemplo copias de archivador o

Capítulo 8. Archivos de seguridad y medios de almacenamiento 113


sistemas de archivos. También se utilizan para la transferencia de muchos archivos de un sistema a otro.
La cinta no suele utilizarse para almacenar los archivos a los que se accede con más frecuencia, ya que
existen otros soportes que proporcionan tiempos de acceso mucho más rápidos.

Los archivos de cinta se crean utilizando mandatos como backup, cpio y tar, que abren una unidad de
cintas, graban en ella y la cierran.

Formateo de disquetes (mandato format o fdformat)


Atención: El formateo de un disquete destruye los datos que contiene ese disquete.

Puede formatear disquetes en la unidad de disquetes que especifica el parámetro Dispositivo (el
dispositivo por omisión es /dev/rfd0) con los mandatos format y fdformat. El mandato format determina
el tipo de dispositivo, que puede ser uno de los siguientes:
v Disquete de 5,25 pulgadas de baja densidad (360 KB), que contiene 40x2 pistas, cada una de las
cuales tiene 9 sectores
v Disquete de 5,25 pulgadas de gran capacidad (1,2 MB), que contiene 80x2 pistas, cada una de las
cuales tiene 15 sectores
v Disquete de 3,5 pulgadas de baja densidad (720 KB) que contiene 80x2 pistas, con 9 sectores cada
pista
v Disquete de 3,5 pulgadas de gran capacidad (2,88 MB), que contiene 80x2 pistas, cada una de las
cuales tiene 36 sectores.

El tamaño de un sector es de 512 bytes para todos los tipos de disquetes.

El mandato format formatea un disquete para alta densidad, a menos que el parámetro Dispositivo
especifique una densidad distinta.

El mandato fdformat formatea un disquete para baja densidad, a menos que se especifique el distintivo
-h . El parámetro Dispositivo especifica la unidad que contiene el disquete que va a formatearse (como,
por ejemplo, el dispositivo /dev/rfd0, al que corresponde la unidad 0).

Antes de formatear un disquete, los mandatos format y fdformat solicitan que se verifique la acción. Esto
le permite finalizar la operación limpiamente si es necesario.

Por ejemplo, para formatear un disquete en el dispositivo /dev/rfd0, escriba:


format -d /dev/rfd0

Pulse Intro.

Por ejemplo, para formatear un disquete sin que se compruebe si existen pistas con errores, escriba:
format -f

Pulse Intro.

Por ejemplo, para formatear un disquete de 360 KB en una unidad de disquetes de 5,25 pulgadas y 1,2
MB en el dispositivo /dev/rfd1, escriba:
format -l -d /dev/rfd1

Pulse Intro.

Por ejemplo, para forzar el formateo de alta densidad de un disquete cuando se utiliza el mandato
fdformat, escriba:
fdformat -h

114 Guía del usuario del sistema: Sistema operativo y dispositivos


Pulse Intro.

Consulte el mandato format en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Comprobación de la integridad del sistema de archivos (mandato fsck)


Puede comprobar e interactivamente reparar las incoherencias de los sistemas de archivos con el
mandato fsck. Debe ejecutarse en cada sistema de archivos como parte de la inicialización del sistema.
Debe poder leer el archivo de dispositivo en el que reside el sistema de archivos (por ejemplo, el
dispositivo /dev/hd0). Por lo general, el sistema de archivos es coherente y el mandato fsck sólo informa
acerca del número de archivos, de bloques no utilizados y de bloques libres del sistema de archivos. Si el
sistema de archivos no es coherente, el mandato fsck visualiza información acerca de las incoherencias
que ha encontrado y le solicita permiso para repararlas. Puede decirse que el mandato fsck es
conservador en las operaciones de reparación que realiza e intenta evitar las acciones que pueden dar
como resultado la pérdida de datos válidos. Sin embargo, en algunos casos, el mandato fsck recomienda
la destrucción de un archivo dañado.

Atención: Ejecute siempre el mandato fsck después de haberse producido una disfunción en el
sistema. Las acciones de corrección puede dar como resultado la pérdida de algunos datos. La
acción por omisión para cada corrección de la coherencia es esperar a que el operador especifique
yes o no. Si no dispone de permiso de grabación para un archivo afectado, el mandato fsck tomará
por omisión la respuesta no en lugar de procesar la respuesta afirmativa real que haya podido
especificar el usuario.

Por ejemplo, para comprobar todos los sistemas de archivos por omisión, escriba:
fsck

Pulse Intro.

Esta forma del mandato fsck le solicita permiso antes de realizar un cambio en un sistema de archivos.

Por ejemplo, para solucionar automáticamente los problemas menores que podrían haberse detectado en
los sistemas de archivos por omisión, escriba:
fsck -p

Pulse Intro.

Por ejemplo, para comprobar el sistemas de archivos /dev/hd1, escriba:


fsck /dev/hd1

Pulse Intro.

Ello comprueba el sistema de archivos sin montar que se encuentra en el dispositivo /dev/hd1.

Nota: El mandato fsck no realizará correcciones en un sistema de archivos montado.

Consulte el mandato fsck en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Capítulo 8. Archivos de seguridad y medios de almacenamiento 115


Copia en o desde disquetes (mandato flcopy)
Puede copiar un disquete (abierto como /dev/rfd0) en un archivo que se denomina floppy creado en el
directorio actual con el mandato flcopy. Si es necesario, aparecerá el mensaje: Cambie el
disquete, pulse retorno cuando lo haya hecho. A continuación, el mandato flcopy copia el archivo
floppy en el disquete.

Por ejemplo, para copiar /dev/rfd1 en el archivo floppy del directorio actual, escriba:
flcopy -f /dev/rfd1 -r

Pulse Intro.

Por ejemplo, para copiar las 100 primeras pistas del disquete, escriba:
flcopy -f /dev/rfd1 -t 100

Pulse Intro.

Consulte el mandato flcopy en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Copia de archivos en cinta o disco (mandato cpio -o)


Puede leer los nombres de las vías de acceso de los archivos en la entrada estándar y copiar dichos
archivos en la salida estándar, junto con los nombres de las vías de acceso y la información de estado,
utilizando el mandato cpio -o. Los nombres de vías de acceso no pueden superar los 128 caracteres.
Con el mandato cpio, evite la utilización de nombres de vías de acceso compuestos de muchos archivos
con enlaces exclusivos, pues puede que no disponga de memoria suficiente para realizar el seguimiento
de éstos, con lo que perdería información de enlace.

Por ejemplo, para copiar en un disquete los archivos del directorio actual cuyos nombres acaban en .c,
escriba:
ls *.c | cpio -ov >/dev/rfd0

Pulse Intro.

El distintivo -v visualiza los nombres de cada uno de los archivos.

Por ejemplo, para copiar el directorio actual y todos los subdirectorios en disquete, escriba:
find . -print | cpio -ov >/dev/rfd0

Pulse Intro.

Esto guarda el árbol de directorios que empieza por el directorio actual (.) e incluye todos los
subdirectorios y archivos. Esta operación puede realizarse rápidamente escribiendo:
find . -cpio /dev/rfd0 -print

Pulse Intro.

La entrada -print visualiza el nombre de cada archivo a medida que éste se copia.

Consulte el mandato cpio en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

116 Guía del usuario del sistema: Sistema operativo y dispositivos


Copia de archivos de una cinta o disco (mandato cpio -i)
El mandato cpio -i lee en la entrada estándar un archivo archivador creado mediante el mandato cpio -o
y copia desde allí los archivos cuyos nombres coinciden con el parámetro Patrón. Estos archivos se
copian en el árbol de directorios actual. Puede listar más de un parámetro Patrón, utilizando la notación
de nombre de archivo que se describe en el mandato ksh. El valor por omisión del parámetro Patrón es
un asterisco (*), que selecciona todos los archivos del directorio actual. En una expresión como, por
ejemplo, [a-z], el guión (-) significa hasta, de acuerdo con el orden de clasificación actual.

Nota: Los patrones ″*.c″ y ″*.o″ deben especificarse entre comillas para evitar que el shell
interprete que el asterisco (*) es un carácter de coincidencia de patrón. Se trata de un caso especial
en el que el propio mandato cpio descodifica los caracteres de patrones de coincidencia.

Por ejemplo, para que se listen los archivos que se han guardado en un disquete con el mandato cpio,
escriba:
cpio -itv </dev/rfd0

Pulse Intro.

Con ello se visualiza la tabla de contenido de los datos anteriormente guardados en el archivo /dev/rfd0
en el formato del mandato cpio. El listado es parecido al largo listado de directorios que genera el
mandato ls -l. Para listar únicamente los nombres de vías de acceso, utilice solamente los distintivos -it.

Por ejemplo, para copiar los archivos anteriormente guardados con el mandato cpio desde un disquete,
escriba:
cpio -idmv </dev/rfd0

Pulse Intro.

Esto copiará los archivos que anteriormente se habían guardado en el archivo /dev/rfd0 mediante el
mandato cpio nuevamente en el sistema de archivos (especifique el distintivo -i). El distintivo -d permite
al mandato cpio crear los directorios apropiados si se guarda un árbol de directorios.El distintivo -m
conserva la hora de la última modificación que tenía aplicación en el momento de guardarse los archivos.
El distintivo -v da lugar a que el mandato cpio visualice el nombre de cada archivo a medida que éste se
copia.

Por ejemplo, para copiar archivos seleccionados de un disquete, escriba:


cpio -i "*.c" "*.o" </dev/rfd0

Pulse Intro.

Con ello se copiarán los archivos que acaban en .c o en .o del disquete.

Consulte el mandato cpio en la publicación AIX 5L Version 5.1 Commands Reference para obtener más
información y conocer la sintaxis exacta.

Copia en o desde cintas (mandato tcopy)


Puede copiar cintas magnéticas utilizando el mandato tcopy.

Por ejemplo, para copiar desde una cinta de modalidad continua en una cinta de 9 pistas, escriba:
tcopy /dev/rmt0 /dev/rmt8

Pulse Intro.

Capítulo 8. Archivos de seguridad y medios de almacenamiento 117


Consulte el mandato tcopy en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Comprobación de la integridad de una cinta (mandato tapechk)


Puede realizar una comprobación básica de la coherencia de un dispositivo de cintas de modalidad
continua conectado utilizando el mandato tapechk. Simplemente leyendo una cinta puede detectar
algunas anomalías de hardware de una unidad de cinta de modalidad continua. El mandato tapechk
proporciona un modo de realizar lecturas en los archivos de una cinta.

Por ejemplo, para comprobar los tres primeros archivos de un dispositivo de cintas de modalidad
continua, escriba:
tapechk 3

Pulse Intro.

Consulte el mandato tapechk en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Compresión de archivos (mandatos compress y pack)


Puede comprimir archivos para almacenarlos con el “Mandato compress” en la página 119 y el
“Mandato pack” en la página 119 y utilizar el “Mandato uncompress” en la página 120 y el “Mandato
unpack” en la página 120 para expandir los archivos restaurados. El proceso de comprimir y expandir
archivos lleva tiempo, pero, una vez empaquetados, los datos utilizan menos espacio en el medio de
seguridad.

Existen varios métodos para comprimir un sistema de archivos:


v Utilice la opción -p con el mandato backup.
v Utilice los mandatos compress o pack.

Existen muchas razones para comprimir archivos, pero generalmente entran en dos categorías:
v Ahorrar almacenamiento y archivar los recursos del sistema:
– Comprima sistemas de archivos antes de efectuar copias de seguridad para mantener el espacio de
las cintas.
– Comprima los archivos de anotaciones creados por scripts de shell que se ejecutan de noche; es
fácil comprimir el archivo mediante los scripts antes de salir.
– Comprima los archivos a los que no esté accediéndose actualmente. Por ejemplo, pueden
comprimirse los archivos que pertenecen a un usuario que se ha ausentado por un período de
tiempo prolongado y colocarlos en un archivador tar en disco o en cinta y restaurarlos
posteriormente.
v Ahorrar dinero y tiempo comprimiendo los archivos antes de enviarlos a través de una red.

Notas:
1. Durante la compresión, puede que el mandato se quede sin suficiente espacio de trabajo en el
sistema de archivos. El mandato compress crea los archivos comprimidos antes de suprimir
los archivos descomprimidos, por lo tanto, necesita aproximadamente un 50% más de espacio
que el tamaño total de los archivos.
2. Puede que un archivo no pueda comprimirse porque ya está comprimido. Si el mandato
compress no puede reducir los tamaños de los archivos, no se ejecutará satisfactoriamente.

118 Guía del usuario del sistema: Sistema operativo y dispositivos


Mandato compress
El mandato compress reduce el tamaño de los archivos utilizando la codificación Lempel-Zev con
capacidad de adaptación. Cada archivo original que especifique el parámetro Archivo se sustituirá por un
archivo comprimido, a cuyo nombre se añadirá la extensión .Z. El archivo compactado conserva la misma
propiedad, modalidades y horas y acceso de modificación que el archivo original. Si no se especifican
archivos, la entrada estándar se comprime en la salida estándar. Si la compresión no reduce el tamaño de
un archivo, se graba un mensaje en el error estándar y el archivo original no se sustituye.

Los archivos comprimidos pueden restaurarse a su tamaño original utilizando el mandato uncompress.

La cantidad de compresión depende del tamaño de la entrada, del número de bits por código que
especifique la variable Bits y de la distribución de las subseries comunes. Normalmente, el código fuente
de texto inglés se reduce entre un 50 y un 60 por ciento. La compresión del mandato compress es
generalmente más compacta y tarda menos tiempo en calcularse que la compresión conseguida por el
mandato pack, que utiliza codificación Huffman adaptadora.

Por ejemplo, para comprimir el archivo foo y grabar el porcentaje de compresión en el error estándar,
escriba:
compress -v foo

Pulse Intro.

Consulte el mandato compress en la publicación AIX 5L Version 5.1 Commands Reference para conocer
la sintaxis exacta.

Mandato pack
El mandato pack almacena el archivo o archivos que especifica el parámetro Archivo en un formato
comprimido utilizando la codificación Huffman. El archivo de entrada se sustituye por un archivo
empaquetado cuyo nombre se toma del nombre del archivo original (Archivo.z), con las mismas
modalidades de acceso, fechas de acceso y modificación y propietario que el archivo original. El nombre
del archivo de entrada no puede contener más de 253 bytes para que exista espacio para añadir el sufijo
.z. Si el mandato pack se ejecuta satisfactoriamente, el archivo original se elimina. Los archivos
empaquetados pueden restaurarse a su formato original utilizando el mandato unpack.

Si el mandato pack no puede crear un archivo más pequeño, detiene el proceso e informa de su
imposibilidad de ahorrar espacio. (Generalmente, se produce una imposibilidad de ahorrar espacio con
pequeños archivos o archivos con distribución de caracteres uniforme). La cantidad de espacio ahorrado
dependerá del tamaño del archivo de entrada y de la distribución de frecuencia de caracteres. Puesto que
el árbol de descodificación forma la primera parte de cada archivo .z, no ahorrará espacio con los
archivos que tengan menos de tres bloques. Normalmente, los archivos de texto se reduce entre un 25 y
un 40 por ciento.

El valor de salida del mandato pack es el número de archivos que no ha podido empaquetar. El
empaquetado no se efectúa en ninguna de estas condiciones:
v El archivo ya está empaquetado.
v El nombre del archivo de entrada tiene más de 253 bytes.
v El archivo tiene enlaces.
v El archivo es un directorio.
v El archivo no puede abrirse.
v El empaquetado no guarda bloques de almacenamiento.
v Ya existe un archivo llamado Archivo.z.
v El archivo .z no puede crearse.
v Se produjo un error de E/S durante el proceso.

Capítulo 8. Archivos de seguridad y medios de almacenamiento 119


Por ejemplo, para comprimir los archivos chap1 y chap2, escriba:
pack chap1 chap2

Pulse Intro.

Ello comprimirá chap1 y chap2, sustituyéndolos por los archivos denominados chap1.z y chap2.z. El
mandato pack visualiza el porcentaje de reducción del tamaño de cada archivo.

Consulte el mandato pack en la publicación AIX 5L Version 5.1 Commands Reference para obtener
información y conocer la sintaxis exacta.

Expansión de archivos comprimidos (mandatos uncompress y


unpack)
Puede expandir archivos comprimidos con los mandatos uncompress y unpack.

Mandato uncompress
El mandato uncompress restablece archivos originales que se han comprimido con el mandato
compress. Cada archivo comprimido que especifica la variable Archivo se elimina y se sustituye por una
copia ampliada. El archivo expandido tiene el mismo nombre que la versión comprimida, pero sin la
extensión .Z. El archivo expandido conserva el mismo propietario, modalidades y horas de acceso y
modificación que el archivos original. Si no se especifica ningún archivo, la entrada estándar se expande
en la salida estándar.

Aunque es parecido al mandato uncompress, el mandato zcat siempre graba la salida expandida en la
salida estándar.

Por ejemplo, para descomprimir el archivo foo, escriba:


uncompress foo

Pulse Intro.

Consulte el mandato uncompress en la publicación AIX 5L Version 5.1 Commands Reference para
conocer la sintaxis exacta.

Mandato unpack
El mandato unpack expande los archivos que se han creado con el mandato pack. Para cada archivo
especificado, el mandato unpack busca un archivo denominado Archivo.z. Si este archivo es un archivo
empaquetado, el mandato unpack lo sustituye por su versión expandida. El mandato unpack cambia el
nombre del nuevo archivo eliminando el sufijo .z de Archivo. El nuevo archivo tiene las mismas
modalidades de acceso, fechas de acceso y modificación y propietario que el archivo empaquetado
original.

El mandato unpack sólo funciona con archivos que acaban en .z. Como resultado de ello, cuando
especifica un nombre de archivo que no acaba en .z, el mandato unpack añade el sufijo y busca en el
directorio un nombre de archivo que tenga ese sufijo.

El valor de la salida es el número de archivos que el mandato unpack no ha podido desempaquetar. Un


archivo no podrá desempaquetarse si se da alguna de las condiciones siguientes:
v El nombre del archivo (sin contar la .z) tiene más de 253 bytes.
v El archivo no puede abrirse.
v El archivo no es un archivo empaquetado.
v Ya existe un archivo con el nombre del archivo desempaquetado.

120 Guía del usuario del sistema: Sistema operativo y dispositivos


v No puede crearse el archivo desempaquetado.

Nota: El mandato unpack graba un aviso en el error estándar si el archivo que está
desempaquetando tiene enlaces. El nuevo archivo desempaquetado tiene un número de inodo
distinto del archivo empaquetado a partir del que se ha creado. Sin embargo, cualquiera de los
otros archivos enlazados con el número de inodo original del archivo empaquetado siguen
existiendo y siguen estando empaquetados.

Por ejemplo, para desempaquetar los archivos empaquetados chap1.z y chap2, escriba:
unpack chap1.z chap2

Pulse Intro.

Esto expande los archivos empaquetados chap1.z y chap2.z y los sustituye por los archivos denominados
chap1 y chap2. Tenga en cuenta que con el mandato unpack puede especificar nombres de archivos que
tengan o que no tengan el sufijo .z.

Consulte el mandato unpack en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Realización de la copia de seguridad de los archivos (mandato


backup)
Atención: Si intenta realizar la copia de seguridad de un sistema de archivos montado, se
visualizará un mensaje. El mandato backup seguirá su ejecución, pero pueden producirse
incoherencias en el sistema de archivos. Esta situación no se aplica al sistema de archivos raíz (/).

Puede crear copias de los archivos en un soporte de copia de seguridad como, por ejemplo, una cinta
magnética o un disquete, con el “Mandato backup” o bien el “Mandato smit” en la página 122. Las
copia estarán en uno de los siguientes formatos de copia de seguridad:
v Archivos específicos con copia de seguridad por nombre, utilizando el distintivo -i.
v Sistema de archivos completo cuya copia de seguridad se realiza por número de inodo, utilizando los
parámetros -Nivel y SistemaArchivos.

Notas:
1. Siempre existe la posibilidad de que los datos se dañen cuando se modifica un archivo
durante la copia de seguridad del sistema. Por lo tanto, la actividad del sistema debe estar al
mínimo durante el procedimiento de copia de seguridad del sistema.
2. Si la copia de seguridad se realiza en una cinta de 8 mm con el tamaño de bloque de
dispositivo establecido en 0 (cero), no será posible restaurar directamente desde la cinta. Si
ha realizado copias de seguridad con el valor establecido en 0, podrá efectuar la restauración
a partir de éstas utilizando los procedimientos especiales que se describen en el mandato
restore.

Atención: Asegúrese de que los distintivos que especifique coincidan con el soporte de copia de
seguridad utilizado. Además, si intenta realizar la copia de seguridad de un sistema de archivos
montado, podrían producirse incoherencias.

Mandato backup
Por ejemplo, para realizar la copia de seguridad de los archivos seleccionados en el directorio $HOME por
nombre, escriba:
find $HOME -print | backup -i -v

Capítulo 8. Archivos de seguridad y medios de almacenamiento 121


Pulse Intro.

El distintivo -i solicita al sistema que lea en la salida estándar los nombres de los archivos cuya copia de
seguridad va a realizarse. El mandato find genera una lista de archivos en el directorio $HOME del
usuario. Esta lista se interconecta con el mandato backup como entrada estándar. El distintivo -v
visualiza un informe de progreso a medida que se copia cada archivo. Se hace copia de seguridad de los
archivos en el dispositivo de seguridad por omisión para el sistema local.

Por ejemplo, para realizar la copia de seguridad del sistema de archivos raíz, escriba:
backup -0 -u /

Pulse Intro.

El nivel 0 y la barra inclinada / indican al sistema que realice la copia de seguridad del sistema de
archivos / (root). La copia de seguridad del sistema de archivos se realiza en el archivo /dev/rfd0. El
distintivo -u indica al sistema que actualice el registro de nivel de copia de seguridad actual en el archivo
/etc/dumpdates.

Por ejemplo, para realizar la copia de seguridad de todos los archivos del sistema de archivos / (root) que
se han modificado desde la última copia de seguridad del nivel 0, escriba:
backup -1 -u /

Pulse Intro.

Consulte el mandato backup en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Mandato smit
El mandato backup también puede ejecutarse mediante smit.
1. En el indicador de mandatos, escriba:
smit backup

Pulse Intro.
2. Escriba el nombre de la vía de acceso del directorio en el que suele estar montado el sistema de
archivos en el campo del nombre completo de la vía de acceso del directorio (DIRECTORY):
/home/bill

Pulse Intro.
3. En los campos que corresponden al dispositivo de copia de seguridad (BACKUP) o al archivo (FILE),
escriba el nombre del dispositivo de salida como se indica en el siguiente ejemplo si se utiliza un
dispositivo de cintas magnéticas sin filtrar:
/dev/rmt0

Pulse Intro.
4. Utilice el tabulador para conmutar la activación y desactivación de la generación opcional de un
informe de cada fase (REPORT each phase) del campo de copia de seguridad si desea que se
impriman mensajes de error en la pantalla.
5. En un entorno de gestión de sistemas, utilice el valor por omisión para el número máximo (MAX) de
bloques que han de grabarse en el campo del soporte de copia de seguridad, ya que este campo no
se aplica a las copias de seguridad en cinta.
6. Pulse Intro para realizar la copia de seguridad del directorio o del sistema de archivos indicado.

122 Guía del usuario del sistema: Sistema operativo y dispositivos


7. Ejecute el mandato restore -t. Si este mandato genera un mensaje de error, deberá repetir la copia de
seguridad completa.

Restauración de archivos de copia de seguridad (mandato restore)


Puede leer los archivos que se han grabado con el mandato backup de un soporte de copia de seguridad
y restaurarlos en el sistema local como se indica en los apartados “Mandato restore” o “Mandato smit”
en la página 124.

Notas:
1. Los archivos deben restaurarse utilizando el mismo método que el que se utilizó para realizar la
copia de seguridad. Por ejemplo, si se ha hecho copia de seguridad de un sistema de archivos
por nombre, debe restaurarse por nombre.
2. Cuando se necesita más de un disquete, el mandato restore lee el que está montado, solicita
uno nuevo y espera la respuesta del usuario. Después de insertar el nuevo disquete, pulse la
tecla Intro para seguir restaurando archivos.

Mandato restore
Por ejemplo, para que se listen los nombres de los archivos de los que anteriormente se ha realizado una
copia de seguridad, escriba:
restore -T

Pulse Intro.

La información se lee del dispositivo de copia de seguridad por omisión /dev/rfd0. Si se ha hecho copia
de seguridad de archivos individuales, únicamente se mostrarán los nombres de los archivos. Si se ha
hecho copia de seguridad de un sistema de archivos entero, también se muestra el número de inodo.

Por ejemplo, para restaurar los archivos en el sistema principal, escriba:


restore -x -v

Pulse Intro.

El distintivo -x extrae todos los archivos del soporte de copia de seguridad y los restaura en el lugar
correcto del sistema de archivos. El distintivo -v visualiza un informe de progreso a medida que va
restaurándose cada archivo. Si está restaurándose la copia de seguridad de un sistema de archivos, los
archivos se indican con sus números de inodo. De lo contrario, sólo se visualizan los nombres.

Por ejemplo, para copiar el archivo /home/mike/manual/chap1, escriba:


restore -xv /home/mike/manual/chap1

Pulse Intro.

Este mandato extrae el archivo /home/mike/manual/chap1 del soporte de copia de seguridad y lo restaura.
El archivo /home/mike/manual/chap1 debe tener un nombre que pueda visualizarse mediante el mandato
restore -T.

Por ejemplo, para copiar todos los archivos en un directorio denominado manual, escriba:
restore -xdv manual

Pulse Intro.

Este mandato restaura el directorio manual y los archivos que contiene. Si no existe, se creará en el
directorio un directorio llamado manual para alojar a los archivos que se restauren.

Capítulo 8. Archivos de seguridad y medios de almacenamiento 123


Consulte el mandato restore en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Mandato smit
El mandato restore también puede ejecutarse utilizando smit.
1. En el indicador de mandatos, escriba:
smit restore

Pulse Intro.
2. Realice su entrada en el campo del directorio de destino (Target DIRECTORY). Éste es el directorio
en el que desea que residan los archivos restaurados.
3. Continúe con el campo correspondiente al dispositivo de copia de seguridad (BACKUP) o al archivo
(FILE) y pulse Intro, como en el ejemplo siguiente, que corresponde a un dispositivo de cintas
magnéticas sin filtrar:
/dev/rmt0

Si el dispositivo no está disponible, aparece un mensaje similar al siguiente:


No puede abrirse /dev/rmtX, no existe dicho
archivo o directorio.

Este mensaje indica que el sistema no puede acceder al controlador de dispositivo porque no existe
ningún archivo para rmtX en el directorio /dev. Sólo los elementos en estado disponible están en
/dev.
4. Se recomienda que se utilice el valor por omisión para el NÚMERO de bloques a leer en un solo
campo de entrada.
5. Pulse Intro para restaurar el sistema de archivos o directorio especificados.

Archivador de archivos (mandato tar)


Puede grabar archivos o recuperar archivos de un almacenamiento de archivar con el mandato tar. El
mandato tar busca archivadores en el dispositivo por omisión (por lo general, el dispositivo de cintas), a
menos que especifique otro dispositivo.

Cuando graba en un archivador, el mandato tar utiliza un archivo temporal (el archivo /tmp/tar*) y
mantiene en memoria una tabla de los archivos con varios enlaces. Recibirá un mensaje de error si el
mandato tar no puede crear el archivo temporal o si no hay suficiente memoria disponible para dar cabida
a las tablas de enlaces.

Por ejemplo, para grabar los archivos file1 y file2 en un nuevo archivador en la unidad de cintas por
omisión, escriba:
tar -c file1 file2

Pulse Intro.

Por ejemplo, para extraer todos los archivos del directorio /tmp del archivo archivador del dispositivo de
cintas /dev/rmt2 y utilizar la hora de extracción como la hora de modificación, escriba:
tar -xm -f/dev/rmt2 /tmp

Pulse Intro.

Por ejemplo, para que se visualicen los nombres de los archivos del archivo archivador de disco out.tar
del directorio actual, escriba:

124 Guía del usuario del sistema: Sistema operativo y dispositivos


tar -vtf out.tar

Pulse Intro.

Consulte el mandato tar en la publicación AIX 5L Version 5.1 Commands Reference para obtener más
información y conocer la sintaxis exacta.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

Resumen de mandatos para los archivos de copia de seguridad y el


soporte de almacenamiento
backup Hace una copia de seguridad de los archivos y de los sistemas de archivos.
compress Comprime y expande los datos.
cpio Copia archivos en y desde almacenamiento de archivar y directorios.
fdformat Formatea disquetes.
flcopy Copia a y desde disquetes.
format Formatea disquetes.
fsck Comprueba la consistencia de los sistemas de archivos y repara interactivamente los sistemas
de archivos.
pack Comprime archivos.
restore Copia los sistemas de archivos o los archivos de los que se ha hecho una copia de seguridad,
creados mediante el mandato backup, desde un dispositivo local.
tapechk Efectúa comprobación de consistencia del dispositivo de cintas en modalidad continua.
tar Manipula archivos.
tcopy Copia una cinta magnética.
uncompress Comprime y expande los datos.
unpack Expande archivos.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Capítulo 4. Redirección de entrada y salida” en la página 43

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

Capítulo 8. Archivos de seguridad y medios de almacenamiento 125


“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

126 Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 9. Seguridad de los archivos y del sistema
La seguridad del sistema es muy similar a otros tipos de seguridad. Su objetivo es la protección de la
información almacenada en el sistema informático, un recurso valioso. La seguridad de la información
tiene los siguientes propósitos:

Integridad El valor de toda la información depende de su exactitud. Si se efectúan cambios no autorizados en


los datos, éstos pierden algo o todo su valor.
Privacidad El valor de gran parte de la información depende de su condición de confidencialidad.
Disponibilidad La información debe estar disponible en el acto.

Planificar e implementar las políticas de seguridad antes de empezar a utilizar el sistema sirve de ayuda.
Requiere mucho tiempo cambiar con posterioridad las políticas de seguridad, por lo tanto, planificarlas
bien ahora puede ahorrar mucho tiempo más tarde.

En este apartado se explica lo siguiente:


v “Amenazas a la seguridad”
v “Propiedad de archivos y grupos de usuarios” en la página 129
– “Cambio del propietario del archivo o directorio (mandato chown)” en la página 129
– “Modalidades de acceso a archivos y directorios” en la página 130
– “Visualización de la información del grupo (mandato lsgroup)” en la página 132
– “Cambio de los permisos de los archivos o directorios (mandato chmod)” en la página 133
v “Listas de controles de acceso” en la página 134
– “Permisos base” en la página 135
– “Permisos ampliados” en la página 135
– “Ejemplo de Lista de control de accesos” en la página 136
– “Autorización de acceso” en la página 136
– “Visualización de la información de control de accesos (mandato aclget)” en la página 138
– “Establecimiento de la información de control de accesos (mandato aclput)” en la página 138
– “Edición de la información de control de accesos (mandato acledit)” en la página 139
v “Bloqueo del terminal (mandato lock o xlock)” en la página 139
v “Resumen de mandatos para la seguridad de los archivos y del sistema” en la página 139

Amenazas a la seguridad
Las amenazas a la seguridad de la información proceden de tres tipos distintos de comportamiento:

Descuido La seguridad de la información se viola a menudo debido al descuido de los usuarios


autorizados del sistema. Si no tiene cuidado con su contraseña, por ejemplo, ningún otro
mecanismo de seguridad puede impedir el acceso no autorizado a su cuenta y a sus datos.
Exploración Muchos problemas de seguridad se deben a los usuarios que navegan, los usuarios del
sistema que tienen autorización y que exploran el sistema en busca de datos que no se han
protegido utilizando los mecanismos adecuados.
Intromisión La intromisión representa una agresión deliberada al sistema. Un individuo que intente entrar
en el sistema estudiará el grado de vulnerabilidad de la seguridad y, a partir de ahí,
planificará deliberadamente cómo agredirlo.

La última forma de comportamiento suele representar la mayor amenaza para la seguridad de la


información, pero los problemas que pueden deberse a la falta de cuidado o a la exploración no deben
infravalorarse.

© Copyright IBM Corp. 1997, 2001 127


Seguridad básica
Cada sistema debe mantener el nivel de seguridad representado por estas políticas básicas de seguridad.

Copias de seguridad
Las copias de seguridad físicamente seguras, fiables y actualizadas son la tarea de seguridad más
importante. Con una buena copia de seguridad del sistema, puede recuperar información detallada como
consecuencia de cualquier problema del sistema con mínimas pérdidas. Proporcione información acerca
de la política de copia de seguridad que ha de utilizarse e incluya información en la que se especifique lo
siguiente:
v Con qué frecuencia han de realizarse las copias de seguridad.
v Qué tipos de copias de seguridad (del sistema, de datos, incrementales) han de realizarse.
v Cómo se verificarán las cintas de copia de seguridad.
v Cómo se guardarán las cintas de copia de seguridad

Para obtener más información, consulte el apartado “Capítulo 8. Archivos de seguridad y medios de
almacenamiento” en la página 111″.

Identificación y autentificación
La identificación y la autentificación establecen su identidad. Se solicitará que inicie la sesión en el
sistema. Debe especificar el nombre de usuario y una contraseña, si la cuenta tiene contraseña (en un
sistema seguro, todas las cuentas deben tener contraseñas, de lo contrario no son válidas). Si la
contraseña es correcta, iniciará la sesión con dicha cuenta y en ese momento adquirirá los permisos de
acceso y el privilegio de la cuenta.

Puesto que la contraseña es la única protección para su cuenta, es importante que seleccione la
contraseña con cuidado y que la proteja. Muchos intentos de irrumpir ilícitamente en un sistema empiezan
por intentos de adivinar contraseñas. El sistema operativo proporciona una protección significativa de las
contraseñas al almacenar las contraseñas de los usuarios por separado de otras informaciones del
sistema. Las contraseñas cifradas y otros datos relacionados con la seguridad de los usuarios se
almacenan en el archivo /etc/security/passwd. Sólo el usuario root puede acceder a este archivo. Con
este acceso restringido de los usuarios a las contraseñas cifradas, cualquier persona no autorizada no
podrá descifrar las contraseñas con un programa que simplemente prueba todas las contraseñas posibles
o probables.

Sigue siendo posible adivinar las contraseñas al intentar el inicio de sesión con una cuenta de forma
reiterada. Si la contraseña es muy sencilla o si no se cambia con frecuencia, dichos ataques pueden
lograr su objetivo fácilmente.

ID de usuario de inicio de sesión


El sistema operativo también identifica a los usuarios mediante su ID de inicio de sesión. El ID de inicio
de sesión de usuario permite al sistema seguir la pista de todas las acciones del usuario desde su origen.
Una vez que un usuario inicia la sesión en el sistema, pero antes de ejecutar el programa inicial de
usuario, el sistema define el ID de inicio de sesión del proceso en el ID de usuario encontrado en la base
de datos de usuarios. Todos los procesos posteriores durante la sesión del inicio de sesión se identifican
mediante este ID. Dichos identificadores proporcionan una pista de todas las actividades efectuadas por el
ID de inicio de sesión del usuario.

El usuario puede restablecer el ID de usuario en vigor, el ID de usuario real, el ID de grupo en vigor, el ID


de grupo real y el ID de grupo complementario durante la sesión, pero no puede cambiar el ID de inicio
de sesión del usuario.

128 Guía del usuario del sistema: Sistema operativo y dispositivos


Terminales desatendidos
Todos los sistemas son vulnerables si se dejan las sesiones iniciadas o desatendidos los terminales. Los
problemas más graves se producen cuando un gestor del sistema deja un terminal desatendido al que se
le ha asignado autorización de usuario root. En general, los usuarios deben finalizar la sesión cada vez
que abandonan sus terminales.

Puede hacer que un terminal finalice su sesión transcurrido un período de tiempo de inactividad
estableciendo los parámetros TMOUT y TIMEOUT en el archivo /etc/profile. El parámetro TMOUT
funciona en el shell ksh (Korn) y el parámetro TIMEOUT funciona en el shell bsh (Bourne). Para obtener
más información acerca del parámetro TMOUT, consulte el apartado “Sustitución de parámetros en el
shell Korn o shell POSIX” en la página 172. Para obtener más información acerca del parámetro
TIMEOUT, consulte el apartado “Sustitución de variables en el shell Bourne” en la página 220.

En el ejemplo siguiente, que se ha tomado del archivo .profile, se fuerza la finalización de sesión del
terminal transcurrida una hora de inactividad:
TO=3600
echo "Estableciendo el fin de sesión automático en $TO"
TIMEOUT=$TO
TMOUT=$TO
export TIMEOUT TMOUT

Nota: Los usuarios pueden alterar temporalmente los valores TMOUT y TIMEOUT del archivo
/etc/profile especificando valores distintos en el archivo .profile de su directorio inicial.

Propiedad de archivos y grupos de usuarios


En principio, el propietario de un archivo se identifica mediante el ID de usuario de la persona que creó el
archivo. El propietario de un archivo determina quién puede leer, grabar (modificar) o ejecutar el archivo.
La propiedad puede cambiarse con el mandato chown.

A cada ID de usuario se le asigna un grupo con un ID de grupo exclusivo. El gestor del sistema crea los
grupos de usuarios cuando define el sistema. Cuando se crea un nuevo archivo, el sistema operativo
asigna permisos al ID de usuario que lo creó, al ID de grupo que contiene el propietario del archivo y a un
grupo llamado otros, que consta de los demás usuarios. El mandato id muestra el ID de usuario (UID), el
ID de grupo (GID) y los nombres de todos los grupos a los que pertenece el usuario.

En los listados de archivos (como, por ejemplo, los listados que muestra el mandato ls), los tres grupos
de usuarios siempre se representan en el orden siguiente: usuario, grupo y otros. Si necesita averiguar el
nombre del grupo, el mandato groups muestra todos los grupos correspondientes a un ID de usuario.

Cambio del propietario del archivo o directorio (mandato chown)


Puede cambiar el propietario de los archivos de que dispone utilizando el mandato chown.

Cuando se especifica la opción -R, el mandato chown va descendiendo de forma repetitiva por la
estructura de directorios desde el directorio especificado. Si se han encontrado enlaces simbólicos, la
propiedad del archivo o directorio indicada por el enlace cambiará; la propiedad del enlace simbólico no
cambia.

Nota: Sólo el usuario root puede cambiar el propietario de otro archivo. No se informa de ningún
error cuando se especifica la opción -f.

Por ejemplo, para cambiar el propietario del archivo program.c, escriba:


chown jim program.c

Capítulo 9. Seguridad de los archivos y del sistema 129


Pulse Intro.

Ahora, los permisos de acceso del usuario de program.c se aplican a jim. Como propietario, jim puede
utilizar el mandato chmod para permitir o denegar el acceso de otros usuarios a program.c.

Por ejemplo, para cambiar el propietario y el grupo de todos los archivos del directorio /tmp/src por el
propietario john y el grupo build, escriba:
chown -R john:build /tmp/src

Pulse Intro.

Consulte el mandato chown en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Modalidades de acceso a archivos y directorios


Cada archivo tiene un propietario. En el caso de archivos nuevos, el usuario que crea el archivo es el
propietario de dicho archivo. El propietario asigna una modalidad de acceso al archivo. Las modalidades
de acceso otorgan a otros usuarios del sistema permiso para leer, modificar o ejecutar el archivo. Sólo el
propietario del archivo o los usuarios con autorización root pueden cambiar la modalidad de acceso de un
archivo.

Existen tres clases de usuarios: usuario/propietario, grupo y todos los demás. Se otorga acceso a dichos
grupos en alguna combinación de las tres modalidades: lectura, grabación y ejecución. Cuando se crea
un archivo nuevo, los permisos por omisión son de lectura, de grabación y de ejecución para el usuario
que ha creado el archivo. Los otros dos grupos tienen permiso de lectura y de grabación. En la tabla
siguiente se indican las modalidades de acceso a archivos por omisión de tres conjuntos de grupos de
usuarios:

Clases Lectura Grabación Ejecución


Propietario Sí Sí Sí
Grupo Sí No Sí
Otros Sí No Sí

Los archivos pueden leerse (r), grabarse (w) o ejecutarse (x). El sistema determina quién tiene permiso y
el nivel de permiso que tienen para cada una de estas actividades. Las modalidades de acceso se
representan de dos modos en el sistema operativo: simbólicamente y numéricamente.

Representación simbólica de las modalidades de acceso


Las modalidades de acceso se representan de forma simbólica, como se indica a continuación:

r Indica permiso de lectura, que permite a los usuarios ver el contenido de un archivo.
w Indica permiso de grabación, que permite a los usuarios modificar el contenido de un archivo.
x Indica permiso de ejecución. En el caso de los archivos ejecutables (archivos normales que contienen
programas), el permiso de ejecución significa que puede ejecutarse el programa. En el caso de los directorios,
el permiso de ejecución significa que puede explorarse el contenido del directorio.

Por ejemplo, un archivo cuyas modalidades de acceso se han establecido en rwxr-xr-x otorga permiso
de lectura y de ejecución a los tres grupos, pero sólo otorga el permiso de grabación al propietario. Esta
es la representación simbólica del valor por omisión.

130 Guía del usuario del sistema: Sistema operativo y dispositivos


El mandato ls, cuando se utiliza con el distintivo -l (L minúscula), proporciona un listado detallado del
directorio actual. Los primeros 10 caracteres del listado ls -l muestran el tipo de archivo y los permisos de
cada uno de los tres grupos. El mandato ls -l también le indica el propietario y el grupo que se asocian a
cada archivo y directorio.

El primer carácter indica el tipo de archivo. Los nueve caracteres restantes contienen información de
permisos de archivos para cada una de las tres clases de usuarios. Se utilizan los siguientes símbolos
para representar el tipo de archivo:

- Archivos normales
d Directorio
b Archivos de bloques especiales
c Archivos de caracteres especiales
p Archivos de conducto especiales
l Enlaces simbólicos
s Sockets.

Por ejemplo, un listado ls -l podría tener el aspecto siguiente:


-rwxrwxr-x 2 janet acct 512 Mar 01 13:33 january

Aquí, el primer guión (-) indica que se trata de un archivo normal. Los caracteres 2 a 4, rwx, representan
la modalidad de acceso del usuario (lectura, grabación y ejecución ). Los caracteres 5 a 7, rwx, indican
las modalidades de acceso del grupo (lectura, grabación y ejecución). Los caracteres 8 a 10, r-x, indican
el acceso de lectura y ejecución de todos los demás usuarios. Los guiones que se incluyen en los 9
últimos caracteres indican que no se ha otorgado ningún permiso.

janet es la propietaria del archivo y acct es el nombre del grupo de Janet. 512 es el tamaño del archivo
en bytes, Mar 01 13:33 es la fecha y hora de la última modificación y january es el nombre del archivo. El
2 indica cuántos enlaces existen con el archivo.

Representación numérica de las modalidades de acceso


Numéricamente, el acceso de lectura se representa mediante un valor de 4, el permiso de grabación
mediante un valor de 2 y el permiso de ejecución mediante un valor de 1. El valor total entre 1 y 7
representa la modalidad de acceso para cada grupo (usuario, grupo y otros). En la tabla siguiente se
muestra cómo determinar los valores numéricos de cada nivel de acceso:

Valor total Lectura Grabación Ejecución


0 - - -
1 - - 1
2 - 2 -
3 - 2 1
4 4 - -
5 4 - 1
6 4 2 -
7 4 2 1

Cuando se crea un archivo, la modalidad de acceso al archivo por omisión es 755. Esto significa que el
usuario tiene permisos de lectura, grabación y ejecución (4+2+1=7), el grupo tiene permiso de lectura y
de ejecución (4+1=5) y todos los demás tienen permisos de lectura y de ejecución (4+1=5). Las
modalidades de los permisos de acceso de los archivos de los que es propietario pueden cambiarse con
el mandato chmod (cambiar modalidad).

Capítulo 9. Seguridad de los archivos y del sistema 131


Visualización de la información del grupo (mandato lsgroup)
Puede visualizar los atributos de todos los grupos del sistema o de los grupos especificados utilizando el
mandato lsgroup. Si uno o más de los atributos no pueden leerse, el mandato lsgroup lista toda la
información posible. La información de los atributos se visualiza en forma de definiciones Atributo=Valor,
separadas por un espacio en blanco.

Por ejemplo, para que se listen todos los grupos del sistema, escriba:
lsgroup ALL

Pulse Intro.

El sistema muestra cada grupo, ID de grupo y todos los usuarios del grupo en una lista similar a la
siguiente:
system 0 arne,pubs,ctw,geo,root,chucka,noer,su,dea,
backup,build,janice,denise
staff 1 john,ryan,flynn,daveb,jzitt,glover,maple,ken
gordon,mbrady
bin 2 root,bin
sys 3 root,su,bin,sys

Para que se visualicen atributos específicos de todos los grupos, puede utilizar uno de los dos estilos de
listado de atributos específicos para todos los grupos:
v Puede hacer que los atributos se listen en el formato Atributo=Valor separados por un espacio en
blanco. Este es el estilo por omisión. Por ejemplo, para que se listen el ID y los usuarios de todos los
grupos del sistema, escriba:
lsgroup -a id users ALL | pg

Pulse Intro.

Aparece una lista parecida a la siguiente:


system id=0
users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,backup,build
staff id=1 users=john,ryan,flynn,daveb,jzitt,glover,maple,ken
v También puede hacer que la información se liste en líneas organizadas, es decir, en formato stanza.
Por ejemplo, para que se liste el ID y los usuarios de todos los grupos del sistema en líneas
organizadas (formato stanza), escriba:
lsgroup -a -f id users ALL | pg

Pulse Intro.

Aparece una lista parecida a la siguiente:


system:
id=0
users=pubs,ctw,geo,root,chucka,noer,su,dea,backup,build

staff:
id=1
users=john,ryan,flynn,daveb,jzitt,glover,maple,ken

bin:
id=2
users=root,bin

sys:
id=3
users=root,su,bin,sys

132 Guía del usuario del sistema: Sistema operativo y dispositivos


Para que se visualicen todos los atributos de un grupo específico, puede utilizar uno de los dos estilos de
listado de atributos específicos para todos los grupos:
v Puede hacer que cada atributo se liste en el formato Atributo=Valor, separados por un espacio en
blanco. Este es el estilo por omisión. Por ejemplo, para que se listen todos los atributos del grupo
″system″, escriba:
lsgroup system

Pulse Intro.

Aparece una lista parecida a la siguiente:


system id=0 users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,
backup,build,janice,denise
v También puede listar la información en formato stanza. Por ejemplo, para que se listen todos los
atributos del grupo bin en líneas organizadas, esto es, en formato stanza, escriba:
lsgroup -f system

Pulse Intro.

Aparece una lista parecida a la siguiente:


system:
id=0
users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,
backup,build,janice,denise

Para que se listen atributos específicos de un grupo específico, escriba:


lsgroup -a Atributos Grupo

Pulse Intro.

Por ejemplo, para que se listen el ID y los usuarios del grupo bin, escriba:
lsgroup -a id users bin

Pulse Intro.

Aparece una lista parecida a la siguiente:


bin id=2 users=root,bin

Consulte el mandato lsgroup en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Cambio de los permisos de los archivos o directorios (mandato


chmod)
Puede modificar los permisos de lectura, grabación y ejecución de los archivos especificados y modificar
los códigos del permiso de búsqueda de los directorios especificados utilizando el mandato chmod.

Por ejemplo, para añadir un tipo de permiso para los archivos chap1 y chap2, escriba:
chmod g+w chap1 chap2

Pulse Intro.

Esto añade permiso de grabación a los miembros del grupo para los archivos chap1 y chap2.

Por ejemplo, para realizar varios cambios de permisos al mismo tiempo para el directorio mydir, escriba:

Capítulo 9. Seguridad de los archivos y del sistema 133


chmod go-w+x mydir

Pulse Intro.

Esto deniega (-) a los miembros del grupo (g) y a otros (o) el permiso para crear o suprimir archivos (w)
en mydir y permite (+) a los miembros del grupo y a otros realizar búsquedas en mydir o utilizarlo (x) en
un nombre de vía de acceso. Esto es equivalente a la secuencia de mandatos:
chmod g-w mydir
chmod o-w mydir
chmod g+x mydir
chmod o+x mydir

Por ejemplo, para que sólo el propietario tenga permiso para utilizar un procedimiento de shell
denominado cmd como mandato, escriba:
chmod u=rwx,go= cmd

Pulse Intro.

Esto otorga permiso de lectura, grabación y ejecución al usuario que posee el archivo (u=rwx). Además,
deniega al grupo y a los demás el permiso para acceder a cmd de cualquier modo (go=).

Por ejemplo, para utilizar un formato en modalidad numérica del mandato chmod para cambiar los
permisos del archivo text, escriba:
chmod 644 text

Pulse Intro.

Esto establece permiso de lectura y de grabación para el propietario y establece modalidad de sólo
lectura para el grupo y para los demás.

Consulte el mandato chmod en la publicación AIX 5L Version 5.1 Commands Reference para obtener
más información y para conocer la sintaxis exacta.

Listas de controles de acceso


El control del acceso se compone de recursos de información protegidos que especifican a quién se
concede acceso a dichos recursos. El sistema operativo proporciona una seguridad discrecional y de
conocimiento necesario. El propietario de un recurso de información puede otorgar a otros usuarios
derechos de lectura o de grabación para dicho recurso. Un usuario al que se le conceden derechos de
acceso sobre un recurso puede transferir dichos derechos a otros usuarios. Esta seguridad permite un
flujo de información controlada por el usuario en el sistema; el propietario de un recurso de información
define los permisos de acceso sobre el objeto.

Los usuarios tienen acceso basado en usuario únicamente a los objetos que poseen. Normalmente, los
usuarios reciben los permisos de grupo o los permisos por omisión sobre un recurso. La tarea principal de
la administración del control de accesos es la definición de la calidad de miembro de un grupo de
usuarios, ya que ello determinará los derechos de acceso de los usuarios a los archivos de los que no
son propietarios.

Las listas de controles de acceso (ACL) aumentan la calidad de los controles de acceso a los archivos,
pues añaden permisos ampliados que modifican los “Permisos base” en la página 135 asignados a
individuos y grupos. Con los “Permisos ampliados” en la página 135, puede permitir o denegar el acceso a
individuos o grupos específicos sin tener que cambiar los permisos base.

134 Guía del usuario del sistema: Sistema operativo y dispositivos


Nota: La lista de controles de acceso de un archivo no puede exceder el tamaño de una página de
memoria (4096 bytes aproximadamente).

Las listas de controles de acceso se mantienen por medio de los mandatos aclget, acledit y aclput.

Aunque el mandato chmod en modalidad numérica (con notaciones octales) puede establecer atributos y
permisos base, la subrutina chmod, a la que el mandato llama, inhabilita los permisos ampliados. Si
utiliza la modalidad numérica del mandato chmod en un archivo que disponga de una ACL, los permisos
ampliados se inhabilitarán. La modalidad simbólica del mandato chmod no inhabilita los permisos
ampliados. Para obtener información acerca de las modalidades numérica y simbólica, consulte el
mandato chmod.

Permisos base
Los permisos base son las modalidades de acceso de archivo tradicionales asignadas al propietario del
archivo, al grupo de archivos y a los demás usuarios. Las modalidades de acceso son: lectura (r),
grabación (w) y ejecución/búsqueda (x).

En una lista de controles de acceso, los permisos base tienen el formato siguiente, donde el parámetro
Modalidad se expresa como rwx (con un guión (-) que sustituye a cada permiso no especificado):
base permissions:
owner(name): Modalidad
group(group): Modalidad
others: Modalidad

Atributos
A una lista de controles de acceso pueden añadirse tres atributos: setuid (SUID), setgid (SGID) y
savetext (SVTX). Estos atributos tienen el formato siguiente:
attributes: SUID, SGID, SVTX

Permisos ampliados
Los permisos ampliados proporcionan al propietario de un archivo la posibilidad de definir el acceso a
dicho archivo de forma más precisa. Los permisos ampliados modifican los permisos base del archivo
(propietario, grupo, otros) al permitir, denegar o especificar modalidades de acceso para individuos,
grupos o combinaciones de usuario y grupo específicos.

Las palabras clave permit, deny y specify se definen como se indica a continuación:

permit Otorga al usuario o grupo el acceso especificado al archivo.


deny Limita la capacidad del usuario o del grupo de utilizar el acceso especificado al archivo.
specify Define con exactitud el acceso del archivo para el usuario o el grupo.

Si a un usuario se le deniega un acceso determinado por medio de una palabra clave deny o specify,
ninguna otra entrada podrá prevalecer sobre dicha denegación de acceso.

La palabra clave enabled debe especificarse en la lista de controles de acceso (ACL) para que los
permisos ampliados entren en vigor. El valor por omisión es la palabra clave disabled.

En una ACL, los permisos ampliados están en el siguiente formato:


extended permissions:
enabled | disabled
permit Mode UserInfo...:
deny Mode UserInfo...:
specify Mode UserInfo...:

Capítulo 9. Seguridad de los archivos y del sistema 135


Utilice una línea por separado para cada entrada permit, deny o specify. El parámetro Mode se expresa
como rwx (con un guión (-) que sustituye a cada permiso no especificado). El parámetro UserInfo se
expresa como u:UserName o g:GroupName o como una combinación de u:UserName y g:GroupName
separados por comas.

Nota: Si en una entrada se especifica más de un nombre de usuario, dicha entrada no podrá
utilizarse en una decisión de control de accesos, pues un proceso sólo tiene un ID de usuario.

Ejemplo de Lista de control de accesos


A continuación se muestra un ejemplo de una ACL:
attributes: SUID
base permissions:
owner(frank): rw-
group(system): r-x
others: ---
extended permissions:
enabled
permit rw- u:dhs
deny r-- u:chas, g:system
specify r-- u:john, g:gateway, g:mail
permit rw- g:account, g:finance

A continuación se muestran las partes de la ACL y sus significados:


v La primera línea indica que el bit setuid está activado.
v La siguiente línea, que introduce los permisos base, es opcional.
v Las tres líneas siguientes especifican los permisos base. El nombre del propietario y del grupo
aparecen entre paréntesis a título informativo solamente. Cambiar dichos nombres no altera el
propietario del archivo ni el grupo de archivos. Sólo el mandato chown y el mandato chgrp pueden
cambiar estos atributos de archivo.
v La línea siguiente, que introduce los permisos ampliados, es opcional.
v La línea siguiente especifica que los permisos ampliados que siguen están habilitados.
v Las últimas cuatro líneas son las entradas ampliadas. La primera entrada ampliada otorga al usuario
dhs permiso de lectura (r) y de grabación (w) para el archivo.
v La segunda entrada ampliada deniega el acceso de lectura (r) al usuario chas cuando éste es miembro
del grupo system.
v La tercera entrada ampliada especifica que mientras el usuario john sea miembro de los grupos
gateway y mail, de ambos grupos, éste sólo podrá disponer de acceso de lectura (r). Si el usuario john
no es miembro de los dos grupos indicados, este permiso ampliado no tendrá aplicación.
v La última entrada ampliada otorga a cualquier usuario de los grupos account y finance, de ambos
grupos, permiso de lectura (r) y de grabación (r).

Nota: A un proceso puede aplicarse más de una entrada ampliada, donde las modalidades
restrictivas tienen prioridad respecto a las modalidades permisivas.

Consulte el mandato acledit en la publicación AIX 5L Version 5.1 Commands Reference para conocer
la sintaxis exacta.

Autorización de acceso
La gestión de los derechos de acceso es responsabilidad del propietario del recurso de información. Los
recursos están protegidos por bits de permiso, que se incluyen en la modalidad del objeto. Los bits de
permiso definen los permisos de acceso otorgados al propietario del objeto, al grupo del objeto y a la
clase por omisión de los demás usuarios. El sistema operativo da soporte a tres modalidades distintas de
acceso (lectura, grabación y ejecución), que pueden otorgarse por separado.

136 Guía del usuario del sistema: Sistema operativo y dispositivos


Cuando un usuario inicia la sesión en una cuenta (utilizando los mandatos login o su), los ID de usuario
y los ID de grupo asignados a esa cuenta se asocian a los procesos del usuario. Estos ID determinan los
derechos de acceso del proceso.

Con relación a los archivos, directorios, conductos con nombre, colas de mensajes, segmentos de
memoria compartida, semáforos y dispositivos (archivos especiales), el acceso se autoriza como se indica
a continuación:
v Para cada entrada de control de acceso (ACE) de la lista de controles de acceso (ACL), la lista de
identificador se compara con los identificadores del proceso. Si existe una coincidencia, el proceso
recibe los permisos y restricciones definidos para dicha entrada. Se calculan las uniones lógicas tanto
para permisos como para restricciones para cada entrada de la ACL coincidente. Si el proceso
solicitante no coincide con ninguna de las entradas de la ACL, éste recibe los permisos y restricciones
de la entrada por omisión.
v Si la modalidad de acceso solicitada está permitida (está incluida en la unión de los permisos) y no
está restringida (está incluida en la unión de las restricciones), el acceso se otorga; de lo contrario, se
deniega.

Un proceso con un ID de usuario de 0 se conoce como un proceso de usuario root. Por lo general, a
estos procesos se les otorgan todos los permisos de acceso. Pero si un proceso de usuario root solicita
permiso de ejecución para un programa, el acceso sólo se concede si se ha otorgado permiso de
ejecución a, como mínimo, un usuario.

La lista de identificadores de una ACL coincide con un proceso si todos los identificadores de la lista
coinciden con el tipo correspondiente de identificador en vigor para el proceso solicitante. Un identificador
de tipo USER coincidente equivale al ID de usuario en vigor del proceso y un identificador de tipo GROUP
es coincidente si es igual al ID de grupo en vigor del proceso o de uno de los ID de grupo
complementario. Por ejemplo, una ACE con una lista de identificadores como la siguiente:
USER:fred, GROUP:philosophers, GROUP:yankee_fans

coincidiría con un proceso que tuviera un ID de usuario efectivo que fuera fred y un conjunto de grupos
que fuera:
philosophers, philanthropists, yankee_fans, good_sports

pero no coincidiría con un proceso que tuviera un ID de usuario efectivo que fuera fred y un conjunto de
grupos que fuera:
philosophers, iconoclasts, redsox_fans, poor_sports

Tenga en cuenta que una ACE con una lista de identificadores compuesta de los elementos siguientes
coincidiría para ambos procesos:
USER:fred, GROUP:philosophers

En otras palabras, la lista de identificadores de las funciones de la ACE es un conjunto de condiciones


que debe contener el acceso especificado que ha de otorgarse.

Todos los permisos de acceso comprueban si estos objetos se crean a nivel de llamada del sistema la
primera vez que se accede al objeto. Puesto que se accede a los objetos SVIPC sin parentesco, se
efectúan comprobaciones para cada acceso. En el caso de objetos con nombres de sistemas de archivos,
es necesario poder resolver el nombre del objeto real. Los nombres se resuelven relativamente (en el
directorio de trabajo del proceso) o absolutamente (en el directorio raíz del proceso). La resolución de los
nombres empieza con la búsqueda de uno de éstos.

El mecanismo discrecional de control de acceso permite un control eficaz del acceso a los recursos de
información y proporciona una protección independiente de la confidencialidad y de la integridad de la

Capítulo 9. Seguridad de los archivos y del sistema 137


información. Los mecanismos de control de acceso controlador por el propietario sólo son tan efectivos
como el usuario los diseñe. Todos los usuarios deben entender cómo se otorgan y se deniegan los
permisos de acceso y cómo se establecen.

Visualización de la información de control de accesos (mandato


aclget)
La información de control de accesos de un archivo puede visualizarse con el mandato aclget. La
información que se visualiza incluye atributos, permisos base y permisos ampliados.

Por ejemplo, para que se visualice la información de control de accesos del archivo status, escriba:
aclget status

Pulse Intro.

La información de control de acceso que se visualiza incluye una lista de atributos, permisos base y
permisos ampliados. Para ver un ejemplo, consulte el apartado “Ejemplo de Lista de control de accesos”
en la página 136 .

Por ejemplo, para guardar la información de control de accesos del archivo plans en el archivo acl1 para
editarla y utilizarla posteriormente, escriba:
aclget -o acl1 plans

Pulse Intro.

Consulte el mandato aclget en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Establecimiento de la información de control de accesos (mandato


aclput)
La información de control de accesos de un archivo puede establecerse con el mandato aclput.

Nota: La lista de control de accesos de un archivo no puede exceder el tamaño de una página de
memoria (4096 bytes aproximadamente).

Por ejemplo, para establecer la información de control de acceso para el archivo status con la
información que se almacena en el archivo acldefs, escriba:
aclput -i acldefs status

Pulse Intro.

Por ejemplo, para establecer la información de control de accesos para el archivo status con la misma
información que la utilizada para el archivo plans, escriba:
aclget plans | aclput status

Pulse Intro.

Consulte el mandato aclput en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

138 Guía del usuario del sistema: Sistema operativo y dispositivos


Edición de la información de control de accesos (mandato acledit)
La información de control de accesos de un archivo puede cambiarse con el mandato acledit. El mandato
muestra la información de control de acceso actual y permite al propietario del archivo modificarlo. Antes
de que los cambios sean permanentes, el mandato le pregunta si desea continuar.

Nota: La variable de entorno EDITOR debe especificarse con un nombre de vía de acceso
completo; de lo contrario, el mandato acledit no se ejecutará satisfactoriamente.

La información de control de acceso que se visualiza incluye una lista de atributos, permisos base y
permisos ampliados. Para ver un ejemplo, consulte el apartado “Ejemplo de Lista de control de accesos”
en la página 136 .

Por ejemplo, para editar la información de control de accesos del archivo plans, escriba:
acledit plans

Pulse Intro.

Consulte el mandato acledit en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Bloqueo del terminal (mandato lock o xlock)


Puede bloquear el terminal con el mandato lock. El mandato lock solicita una contraseña al usuario, la
lee y vuelve a solicitar la contraseña por segunda vez para verificarla. En el intervalo, el mandato bloquea
el terminal y no se desbloquea hasta que se recibe la contraseña por segunda vez. El valor por omisión
del tiempo de espera es de 15 minutos, pero puede cambiarse con el distintivo -Número.

Nota: Si la interfaz que utiliza es AIXwindows, utilice el mandato xlock de la misma forma.

Por ejemplo, para bloquear el terminal con control de contraseña, escriba:


lock

Pulse Intro.

Se le pedirá la contraseña dos veces de forma que el sistema puede comprobarla. Si la contraseña no
vuelve a escribirse dentro de 15 minutos, se excede el tiempo de espera del mandato.

Por ejemplo, para reservar un terminal con control de contraseña, con un intervalo de tiempo de espera
de 10 minutos, escriba:
lock -10

Pulse Intro.

Consulte el mandato lock o el mandato xlock en la publicación AIX 5L Version 5.1 Commands Reference
para conocer la sintaxis exacta.

Resumen de mandatos para la seguridad de los archivos y del sistema


acledit Edita la información de controles de acceso de un archivo.
aclget Muestra la información de controles de acceso de un archivo.
aclput Establece la información de controles de acceso de un archivo.
chmod Cambia las modalidades de permisos.
chown Cambia el usuario asociado con un archivo.

Capítulo 9. Seguridad de los archivos y del sistema 139


lock Reserva un terminal.
lsgroup Muestra los atributos de grupos.
xlock Bloquea la pantalla X local hasta que se escribe una contraseña.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 8. Archivos de seguridad y medios de almacenamiento” en la página 111

140 Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 10. Personalización del entorno del usuario
El sistema operativo proporciona varios mandatos y archivos de inicialización que le permiten personalizar
el comportamiento y el aspecto del entorno del usuario según sus preferencias.

Algunos de los recursos por omisión de las aplicaciones que el usuario utiliza en el sistema también
pueden personalizarse. El programa inicia los valores por omisión en el arranque. Cuando modifique los
valores por omisión, deberá salir y reiniciar el programa para que los nuevos valores entren en vigor.

La publicación Common Desktop Environment 1.0: Advanced User’s and System Administrator’s Guide
proporciona información detallada acerca de la personalización del comportamiento y del aspecto del
componente Common Desktop Environment.

En este apartado se explica lo siguiente:


v “Visión general de los archivos de arranque del sistema” en la página 142
– “Archivo /etc/profile” en la página 142
– “Archivo /etc/environment” en la página 143
– “Archivo .profile” en la página 143
– “Archivo .env” en la página 144
v “Visión general de los archivos de arranque de AIXwindows” en la página 144
– “Archivo .xinitrc” en la página 145
– “Archivo .Xdefaults” en la página 146
– “Archivo .mwmrc” en la página 147
v “Procedimientos de personalización” en la página 149
– “Exportación de variables de shell (mandato de shell export)” en la página 149
– “Cambio del font de la pantalla (mandato chfont)” en la página 150
– “Cambio de las teclas de control (mandato stty)” en la página 151
– “Cambio del indicador del sistema” en la página 151
v “Personalización del programa de ventanas InfoExplorer” en la página 152
v “Resumen de la personalización del entorno de usuario” en la página 156

Información relacionada
“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Visión general de los archivos de arranque del sistema” en la página 142

“Procedimientos de personalización” en la página 149

© Copyright IBM Corp. 1997, 2001 141


“Personalización del programa ASCII InfoExplorer” en la página 278

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

Visión general de los archivos de arranque del sistema


Al iniciar la sesión, el shell define el entorno de usuario leyendo los archivos de inicialización que el
usuario ha definido. Las características del entorno del usuario se definen utilizando los valores
proporcionados a las variables de entorno. El usuario conserva este entorno hasta que finaliza la sesión
del sistema.

El shell utiliza dos tipos de archivos de perfil cuando se inicia la sesión en el sistema operativo. Evalúa los
mandatos incluidos en los archivos y a continuación ejecuta los mandatos para definir el entorno del
sistema. Los archivos tienen funciones similares, con la excepción de que el archivo /etc/profile controla
las variables de los perfiles para todos los usuarios del sistema, donde el archivo .profile le permite
personalizar su propio entorno.

El shell primero evalúa los mandatos que contiene el archivo /etc/profile y, a continuación, ejecuta los
mandatos para configurar el entorno del sistema en el archivo /etc/environment. Tras la ejecución de
tales archivos, el sistema comprueba si se dispone de un archivo .profile en el directorio inicial. Si el
archivo .profile existe, ejecuta dicho archivo. El archivo .profile especificará si también existe un archivo
de entorno. Si existe un archivo de entorno (normalmente llamado .env), el sistema ejecutará este archivo
y definirá las variables de entorno.

Los archivos /etc/profile, /etc/environment y .profile se ejecutan una vez durante el inicio de sesión. El
archivo .env, por su parte, se ejecuta cada vez que abre un nuevo shell o ventana.

Este apartado trata acerca de los siguientes archivos de inicialización:


v “Archivo /etc/profile”
v “Archivo /etc/environment” en la página 143
v “Archivo .profile” en la página 143
v “Archivo .env” en la página 144

Archivo /etc/profile
El primer archivo que el sistema operativo utiliza durante el inicio de sesión es el archivo /etc/profile. Este
archivo contiene variables por omisión para todo el sistema como:
v variables de exportación
v máscara de creación de archivos (umask)
v tipos de terminal
v mensajes de correo para indicar cuándo ha llegado correo nuevo

El administrador del sistema configura el archivo profile de todos los usuarios del sistema. Únicamente el
administrador del sistema puede modificar este archivo.

El siguiente ejemplo es un archivo /etc/profile típico:

142 Guía del usuario del sistema: Sistema operativo y dispositivos


#Establecer archivo de creación de máscaras
unmask 022
#Avisarme cuando llegue correo nuevo
MAIL=/usr/mail/$LOGNAME
#Añadir mi directorio /bin a la secuencia de búsqueda del shell
PATH=/usr/bin:/usr/sbin:/etc::
#Establecer tipo de terminal
TERM=lft
#Establecer algunas variables de entorno como globales
export MAIL PATH TERM

Consulte el apartado .profile File Format en la publicación AIX 5L Version 5.1 Files Reference para
obtener información detallada sobre el archivo /etc/profile.

Archivo /etc/environment
El segundo archivo que el sistema operativo utiliza durante el inicio de sesión es el archivo
/etc/environment. El archivo /etc/environment contiene variables que especifican el entorno básico de
todos los procesos. Cuando se inicia un nuevo proceso, la subrutina exec pone a disposición una matriz
de series que tienen el formato Nombre=Valor. Esta matriz de series recibe el nombre de entorno. Cada
nombre definido por una de las series recibe el nombre de variable de entorno o variable de shell. La
subrutina exec permite establecer de una sola vez todo el entorno.

Cuando se inicia la sesión, el sistema establece variables de entorno a partir del archivo environment
antes de leer el perfil de inicio de sesión, .profile. Las siguientes variables forman en entorno básico:

HOME Nombre completo de la vía de acceso del directorio HOME o de inicio de sesión del usuario. El
programa login establece este valor en el nombre que se especifica en el archivo /etc/passwd.
LANG El nombre del escenario en vigor actualmente. La variable LANG se define inicialmente en el archivo
/etc/profile durante la instalación.
NLSPATH El nombre completo de la vía de acceso para catálogos de mensajes.
LOCPATH Nombre completo de la vía de acceso de la ubicación de las tablas del Soporte de idioma nacional.
PATH Secuencia de directorios en la que mandatos tales como sh, time, nice y nohup buscan cuando
existe un mandato cuyo nombre de vía de acceso no está completo.
TZ La información de huso horario. La variable de entorno TZ se define inicialmente mediante el archivo
/etc/profile, perfil de inicio de sesión del sistema.

Consulte el apartado .environment File en la publicación AIX 5L Version 5.1 Files Reference para obtener
información detallada sobre el archivo /etc/environment.

Archivo .profile
El tercer archivo que el sistema operativo utiliza durante el inicio de sesión es el archivo .profile. El
archivo .profile se encuentra en el directorio inicial ($HOME) y le permite personalizar su entorno de
trabajo individual. Puesto que el archivo .profile está oculto, utilice el mandato ls -a para poder
visualizarlo en una lista.

Después de que el programa login haya añadido las variables LOGNAME (nombre de inicio de sesión) y
HOME (directorio de inicio de sesión) al entorno, se ejecutan los mandatos del archivo $HOME/.profile, si
existe el archivo. El archivo .profile contiene el perfil individual que altera temporalmente las variables que
se han establecido en el archivo /etc/profile. Con frecuencia, el archivo .profile se utiliza para establecer
variables de entorno exportadas y modalidades de terminal. Puede personalizar el entorno como desee
modificando el archivo .profile. Utilice el archivo .profile para controlar los valores por omisión siguientes:
v shells que han de abrirse
v aspecto del indicador
v sonidos del teclado

Capítulo 10. Personalización del entorno del usuario 143


En el ejemplo siguiente se muestra un archivo .profile típico:
PATH=/usr/bin:/etc:/home/bin1:/usr/lpp/tps4.0/user::
epath=/home/gsc/e3:
export PATH epath
csh

Este ejemplo ha definido dos variables de vía de acceso (PATH y epath), las ha exportado y ha abierto un
shell C (csh).

También puede utilizar el archivo .profile (o, si no existe, el archivo /etc/profile) para determinar variables
de shell de inicio de sesión. También puede personalizar otros entornos de shell. Por ejemplo, utilice el
archivo .cshrc y el archivo .kshrc para personalizar un shell C y un shell Korn, respectivamente, cuando
se inicie cada tipo de shell.

Archivo .env
Un cuarto archivo que el sistema operativo utiliza durante el inicio de sesión es el archivo .env, si el
archivo .profile tiene la línea siguiente: export ENV=$HOME/.env

El archivo .env le permite personalizar las variables de entorno de trabajo individuales. Puesto que el
archivo .env está oculto, utilice el mandato ls -a para que se visualice en una lista. El archivo .env
contiene las variables de entorno de usuario individuales que alteran temporalmente las variables que se
han establecido en el archivo /etc/environment. Puede personalizar las variables de entorno como desee
modificando el archivo .env. En el ejemplo siguiente se muestra un archivo .env típico:
export myid=′id | sed -n -e 's/).*$//' -e 's/|.*(//p'′ \
bold=′tput smso′ \
norm=′tput rmso′
#set prompt: login & nombre sistema (contraste invertido) &
vía de acceso (normal)
if [ $myid = root ]
then typeset -x PSCH='${bold}#:${norm}\${PWD}> '
PS1="${bold}#:${norm}\${PWD}> "
else typeset -x PSCH='>'
PS1="${bold}$LOGNAME@$UNAME:${norm}\${PWD}> "
PS2=">"
PS3="#?"
fi
export PS1 PS2 PS3
#definir mis alias de mandatos
alias ls="/bin/ls -CF" \
d="/bin/ls -Fal | pg" \
rm="/bin/rm -i" \
up="cd .."

Nota: Cuando modifique el archivo .env, asegúrese de que las variables de entorno recién creadas
no entran en conflicto con las variables estándares como MAIL, PS1, PS2 y IFS.

Visión general de los archivos de arranque de AIXwindows


Puesto que los distintos sistemas tienen métodos distintos de arrancar el servidor X y AIXwindows, debe
consultar con el administrador del sistema para saber cómo comenzar. Normalmente, el servidor X y
AIXwindows se inician desde un script de shell que sed ejecuta automáticamente al iniciar la sesión. Si
embargo, puede que necesite iniciar el servidor X o AIXwindows, o ambos.

Si inicia la sesión y observa que la pantalla funciona como un terminal únicamente, sin que se visualice
ninguna ventana, puede iniciar X escribiendo lo siguiente:
xinit

Pulse Intro.

144 Guía del usuario del sistema: Sistema operativo y dispositivos


Si este mandato no inicia X, consulte con el administrador del sistema para asegurarse de que el
directorio X11 que incluye los programas ejecutables está en la vía de acceso de búsqueda. La vía de
acceso adecuada podría variar de un sistema a otro.

Si inicia la sesión y observa que aparecen una o más ventanas sin marcos, puede iniciar AIXwindows
Window Manager escribiendo lo siguiente:
mwm &

Pulse Intro.

Nota: Antes de escribir este mandato, asegúrese de que el puntero se encuentre dentro de una
ventana que tenga un indicador de mandatos del sistema.

Puesto que AIXwindows permite que los programadores que escriben aplicaciones de AIXwindows y los
usuarios realicen personalizaciones, puede que los botones del ratón u otras funciones no funcionen
como espera que lo hagan tras haber leído esta documentación. Puede restablecer el entorno de
AIXwindows en su comportamiento por omisión pulsando y manteniendo pulsadas las cuatro teclas
siguientes:

Alt-Control-Despl-!

Puede volver al comportamiento personalizado pulsando de nuevo esta secuencia de teclas. Si el sistema
no permite esta combinación de teclas, también puede restaurar el comportamiento por omisión desde el
menú raíz por omisión.

Este apartado trata acerca de los siguientes archivos de inicialización:


v “Archivo .xinitrc”
v “Archivo .Xdefaults” en la página 146
v “Archivo .mwmrc” en la página 147

Archivo .xinitrc
El mandato xinit utiliza un archivo de script de shell personalizable que contiene los programas cliente de
X que han de iniciarse. El archivo .xinitrc que se encuentra en el directorio inicial controla las ventanas y
las aplicaciones que se inician cuando se inicia AIXwindows.

En primer lugar, el mandato xinit busca la variable de entorno $XINITRC para iniciar AIXwindows. Si no
se encuentra la variable de entorno $XINITRC, busca el script de shell $HOME/.xinitrc. Si no se
encuentra el script de shell $HOME/.xinitrc, el mandato xinit inicia el script de shell
/usr/lib/X11/$LANG/xinitrc. Si no se encuentra /usr/lib/X11/$LANG/xinitrc, busca el script de shell
/usr/lpp/X11/defaults/$LANG/xinitrc. Si dicho script no se encuentra, busca el script de shell
/usr/lpp/X11/defaults/xinitrc.

El script de shell xinitrc inicia mandatos como, por ejemplo, los mandatos mwm (AIXwindows Window
Manager), aixterm y xclock.

El mandato xinit realiza las operaciones siguientes:


v Inicia un Servidor X en la pantalla actual
v Establece la variable de entorno $DISPLAY
v Ejecuta el archivo xinitrc para iniciar programas cliente de X
v Carga automáticamente la extensión Display PostScript (DPS)

Nota: Para impedir que se cargue automáticamente DPS, se debe modificar el archivo
/usr/lpp/X11/xinit.

Capítulo 10. Personalización del entorno del usuario 145


El ejemplo siguiente muestra la parte del archivo xinitrc que puede personalizar:
# /usr/lpp/X11/bin/xinit llama a este script.

.
.
.
#***************************************************************
# Inicia los clientes X. Cambie las siguientes líneas a *
# los mandatos que desee *
# Los clientes por omisión son un reloj analógico *
# (xclock), un emulador de terminal lft (aixterm), *
# X Desktop Manager (xdt) y Motif Window Manager (mwm). *
#****************************************************************
# Si no hay estación X, llame a copyright DPS
if [ -z "$XSTATION" ]
then
/usr/lpp/DPS/bin/copyright -x &
fi
aixterm =80x25+0-0 -fg Wheat -bg MidnightBlue &
if [ -z "$XSTATION" ]
then
sleep 3 # permitir que se muestre copyright DPS
fi
if [ -x /usr/lpp/X11/bin/xdt3 ]
then
/usr/lpp/X11/bin/xdt3 &
fi
exec mwm

Archivo .Xdefaults
Si trabaja en una interfaz de AIXwindows, puede personalizar dicha interfaz con el archivo .Xdefaults.
AIXwindows le permite especificar sus preferencias de características visuales, por ejemplo colores y
fonts.

La mayor parte de los factores relacionados con el aspecto y el comportamiento de una aplicación basada
en ventanas se controlan por medio de variables denominadas recursos. El aspecto visual o de
comportamiento de un recurso está determinado por su valor asignado. Existen distintos tipos de valores
para los recursos. Por ejemplo, a los recursos que controlan el color pueden asignarse valores como
DarkSlateBlue o Black.A los recursos que especifican dimensiones se asignan valores numéricos. Algunos
recursos toman valores booleanos (True o False).

Si no dispone de un archivo .Xdefaults en el directorio inicial, puede crear uno con cualquier editor de
texto. Una vez que tenga este archivo en el directorio inicial, puede definir valores de recurso en el mismo
tal como desee. Existe un archivo por omisión de ejemplo denominado Xdefaults.tmpl en el directorio
/usr/lpp/X11/defaults.

En el ejemplo siguiente se muestra una parte de un archivo .Xdefaults típico:


*AutoRaise: on
*DeIconifyWarp: on
*warp:on
*TitleFont:andysans12
*scrollBar: true
*font: Rom10.500
Mwm*menu*foreground: black
Mwm*menu*background: CornflowerBlue
Mwm*menu*RootMenu*foreground: black
Mwm*menu*RootMenu*background: CornflowerBlue
Mwm*icon*foreground: grey25
Mwm*icon*background: LightGray
Mwm*foreground: black
Mwm*background: LightSkyBlue

146 Guía del usuario del sistema: Sistema operativo y dispositivos


Mwm*bottomShadowColor: Blue1
Mwm*topShadowColor: CornflowerBlue
Mwm*activeForeground: white
Mwm*activeBackground: Blue1
Mwm*activeBottomShadowColor: black
Mwm*activeTopShadowColor: LightSkyBlue
Mwm*border: black
Mwm*highlight:white
aixterm.foreground: green
aixterm.background: black
aixterm.fullcursor: true
aixterm.ScrollKey: on
aixterm.autoRaise: true
aixterm.autoRaiseDelay: 2
aixterm.boldFont:Rom10.500
aixterm.geometry: 80x25
aixterm.iconFont: Rom8.500
aixterm.iconStartup: false
aixterm.jumpScroll: true
aixterm.reverseWrap: true
aixterm.saveLines: 500
aixterm.scrollInput: true
aixterm.scrollKey: false
aixterm.title: AIX

Archivo .mwmrc
La mayoría de las funciones que deseará personalizar pueden establecerse con los recursos del archivo
.Xdefaults. Sin embargo, los enlaces de teclas, los enlaces de botones del ratón y las definiciones de los
menús del gestor de ventanas se especifican en el archivo .mwmrc complementario, al que los recursos
hacen referencia en el archivo .Xdefaults.

Si no dispone de un archivo .mwmrc en el directorio inicial, puede copiarlo como se indica a continuación:
cp /usr/lib/X11/system.mwmrc .mwmrc

Puesto que el archivo .mwmrc altera temporalmente los efectos del archivo system.mwmrc en todo el
sistema, las especificaciones de las que haga uso no interferirán con las especificaciones de los otros
usuarios.

En el ejemplo siguiente se muestra una parte del archivo system.mwmrc típico:


# ARCHIVO DE DESCRIPCIÓN DE RECURSOS mwm
(system.mwmrc)
#
# descripciones de paneles de menú
#
# Descripción del menú raíz
Menu RootMenu
{ "Root Menu" f.title
no-label f.separator
"New Window" f.exec "aixterm &"
"Shuffle Up" f.circle_up
"Shuffle Down" f.circle_down
"Refresh" f.refresh
no-label f.separator
"Restart" f.restart
"Quit" f.quit_mwm
}
# Descripción de Menú de Ventanas Por Omisión

Menu DefaultWindowMenu MwmWindowMenu


{ "Restore" _R Alt<Key>F5 f.normalize
"Move" _M Alt<Key>F7 f.move

Capítulo 10. Personalización del entorno del usuario 147


"Size" _S Alt<Key>F8 f.resize
"Minimize" _n Alt<Key>F9 f.minimize
"Maximize" _x Alt<Key>F10 f.maximize
"Lower" _L Alt<Key>F3 f.lower
no-label f.separator
"Close" _C Alt<Key>F4 f.kill
}
# sin menú de ventanas aceleradoras
Menu NoAccWindowMenu
{
"Restore" _R f.normalize
"Move" _M f.move
"Size" _S f.resize
"Minimize" _n f.minimize
"Maximize" _x f.maximize
"Lower" _L f.lower
no-label f.separator
"Close" _C f.kill
}
Keys DefaultKeyBindings
{
Shift<Key>Escape icon|window f.post_wmenu
Meta<Key>space icon|window f.post_wmenu
Meta<Key>Tab root|icon|window f.next_key
Meta Shift<Key>Tab root|icon|window f.prev_key
Meta<Key>Escape root|icon|window f.next_key
Meta Shift<Key>Escape root|icon|window f.prev_key
Meta Ctrl Shift<Key>exclam root|icon|window f.set_behavior
}
#
# descripciones de enlaces de botones
#
Buttons DefaultButtonBindings
{
<Btn1Down> frame|icon f.raise
<Btn3Down> frame|icon f.post_wmenu
<Btn1Down> root f.menu RootMenu
<Btn3Down> root f.menu RootMenu
Meta<Btn1Down> icon|window f.lower
Meta<Btn2Down> window|icon f.resize
Meta<Btn3Down> window f.move
}
Buttons PointerButtonBindings
{
<Btn1Down> frame|icon f.raise
<Btn2Down> frame|icon f.post_wmenu
<Btn3Down> frame|icon f.lower
<Btn1Down> root f.menu RootMenu
Meta<Btn2Down> window|icon f.resize
Meta<Btn3Down> window|icon f.move
}
#
# FIN DE ARCHIVO DE DESCRIPCIÓN DE RECURSOS mwm
#

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

148 Guía del usuario del sistema: Sistema operativo y dispositivos


“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Procedimientos de personalización”

“Personalización del programa ASCII InfoExplorer” en la página 278

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

Procedimientos de personalización
Existen muchos modos de personalizar el entorno del sistema. Este apartado trata acerca de los
siguientes procedimientos:
v “Exportación de variables de shell (mandato de shell export)”
v “Cambio del font de la pantalla (mandato chfont)” en la página 150
v “Cambio de las teclas de control (mandato stty)” en la página 151
v “Cambio del indicador del sistema” en la página 151

Exportación de variables de shell (mandato de shell export)


Una variable de shell local es una variable que sólo puede reconocer el shell que la ha creado. Si inicia
un nuevo shell, dicho shell no conoce las variables del shell antiguo. Si desea que los nuevos shells que
abra reconozcan las variables de un shell antiguo, será necesario convertirlas en variables globales
exportándolas.

Para convertirlas en variables globales, puede utilizar el mandato export. Para que las variables del shell
sean globales automáticamente, expórtelas en el archivo .profile.

Nota: Las variables pueden exportarse a los shells hijo, pero no pueden exportarse a los shells
padre.

Por ejemplo, para convertir la variable PATH de shell local en global, escriba:
export path

Pulse Intro.

Por ejemplo, para que se listen todas las variables exportadas, escriba:
export

Pulse Intro.

El sistema visualizará información parecida a la siguiente:

Capítulo 10. Personalización del entorno del usuario 149


DISPLAY=unix:0
EDITOR=vi
ENV=$HOME/.env
HISTFILE=/u/carlos/.history
HISTSIZE=500
HOME=/u/carlos
LANG=En_US
LOGNAME=carlos
MAIL=/usr/mail/carlos
MAILCHECK=0
MAILMSG=**TIENE NUEVO CORREO. UTILICE EL MANDATO mail PARA VER LA MAILPATH=/usr/mail/carlos?carlos tiene correo
MAILRECORD=/u/carlos/.Outmail
PATH=/usr/ucb:/usr/lpp/X11/bin:/bin:/usr/bin:/etc:/u/carlos:/u/carlos/bin:/u/bin1
PWD=/u/carlos
SHELL=/bin/ksh

Cambio del font de la pantalla (mandato chfont)


Puede cambiar el font por omisión durante el arranque del sistema con el mandato chfont o smit. Una
paleta de fonts es un archivo que el sistema utiliza para definir e identificar los fonts de que dispone.

Nota: Para poder ejecutar el mandato chfont debe tener autorización de usuario root.

Mandato chfont
Por ejemplo, para cambiar el font activo por el quinto font de la paleta de colores, escriba:
chfont -a5

Pulse Intro.

El ID de font 5 pasa a ser el font primario.

Por ejemplo, para cambiar el font por un tipo de letra en cursiva, roman y en negrita utilizando el mismo
tamaño, escriba:
chfont -n /usr/lpp/fonts/It114.snf /usr/lpp/fonts/Bld14.snf /usr/lpp/fonts/Rom14.snf

Pulse Intro.

Consulte el mandato chfont en la publicación AIX 5L Version 5.1 Commands Reference para obtener más
información y conocer la sintaxis exacta. Consulte también el apartado “Listado de los fonts disponibles
(mandato lsfont)” en la página 15

Mandato smit
El mandato chfont también puede ejecutarse utilizando smit.

Para seleccionar el font activo, escriba:


smit chfont

Pulse Intro.

Para seleccionar la paleta de fonts, escriba:


smit chfontpl

Pulse Intro.

150 Guía del usuario del sistema: Sistema operativo y dispositivos


Cambio de las teclas de control (mandato stty)
Puede cambiar las teclas que el terminal utiliza para las teclas de control con el mandato stty. Los
cambios que realice en las teclas de control seguirán aplicándose hasta que finalice la sesión. Para que
los cambios sean permanentes, colóquelos en el archivo .profile.

Por ejemplo, para asignar Control-Z como tecla de interrupción, escriba:


stty intr |Z

Pulse Intro.

Por ejemplo, para restablecer todas las teclas de control en sus valores por omisión, escriba:
stty sane

Pulse Intro.

Por ejemplo, para que se visualicen los valores actuales, escriba:


stty -a

Pulse Intro.

Consulte el mandato stty en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Cambio del indicador del sistema


El shell utiliza tres variables de indicador:

PS1 Indicador utilizado como indicador normal del sistema.


PS2 Indicador utilizado cuando el shell espera más entrada.
PS3 Indicador utilizado cuando el usuario tiene autorización root.

Puede cambiar cualquiera de las características del indicador cambiando el valor de su variable de shell.
Los cambios realizados en los indicadores seguirán aplicándose hasta que finalice la sesión. Para que los
cambios sean permanentes, colóquelos en el archivo .env .

Por ejemplo, para que se visualice el valor actual de la variable PS1, escriba:
echo "El indicador es $PS1"

Pulse Intro.

El sistema visualizará información parecida a la siguiente:


prompt is $

Por ejemplo, para cambiar el indicador por Ready> , escriba:


PS1="Ready> "

Pulse Intro.

Por ejemplo, para cambiar el indicador de continuación por Enter more-> , escriba:
PS2="Enter more->"

Pulse Intro.

Capítulo 10. Personalización del entorno del usuario 151


Por ejemplo, para cambiar el indicador de root por Root-> , escriba:
PS3="Root-> "

Pulse Intro.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Visión general de los archivos de arranque del sistema” en la página 142

“Personalización del programa ASCII InfoExplorer” en la página 278

“Personalización del programa de ventanas InfoExplorer”

“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

Personalización del programa de ventanas InfoExplorer


Puede personalizar el programa InfoExplorer definiendo valores por omisión y preferencias. Por ejemplo,
puede especificar qué bases de información e impresora deben utilizarse por omisión. También puede
especificar el número de sucesos históricos a seguir y el tipo de salida de impresión, entre otros aspectos.

La diferencia principal entre valores por omisión y preferencias es que el programa InfoExplorer inicia los
valores por omisión en el arranque. Cuando defina los valores por omisión, deberá salir y volver a iniciar
el programa para que los cambios entren en vigor (a excepción de los valores por omisión de impresora).
Cuando defina preferencias, los cambios entrarán en vigor inmediatamente.

Los siguientes apartados describen cómo personalizar la interfaz de ventanas de InfoExplorer:


v “Cambio de los valores por omisión de la interfaz de ventanas de InfoExplorer” en la página 153
v “Cambio de las preferencias de la interfaz de ventanas de InfoExplorer” en la página 154

152 Guía del usuario del sistema: Sistema operativo y dispositivos


Cambio de los valores por omisión de la interfaz de ventanas de
InfoExplorer
En InfoExplorer, puede definir muchos valores por omisión. El programa InfoExplorer utiliza los valores por
omisión durante el arranque. Utilice la opción Valores por omisión del menú desplegable Opciones para
establecer los valores por omisión para lo siguiente:
v “Cambio del tamaño de la ventana por omisión”
v “Designación de un artículo de navegación por omisión”
v “Designación de archivos por omisión”
v “Designación de un archivo de plantilla de notas por omisión”
v “Cambio de la base de información de búsqueda por omisión” en la página 154
v “Designación de impresoras por omisión” en la página 154

Cambio del tamaño de la ventana por omisión


Cuando inicie el programa InfoExplorer, el tamaño de la ventana estará determinado por el valor por
omisión del sistema. Puede personalizar el tamaño de ventana por omisión a su gusto. Específicamente,
puede establecer el tamaño de la ventana por omisión de las ventanas de navegación y de lectura
utilizando la opción Tamaño de ventana del menú desplegable Opciones. El nuevo valor por omisión
determinará el tamaño de la ventana para sesiones de InfoExplorer actuales y futuras.

Para obtener información acerca de procedimientos, consulte el apartado Establecer el tamaño de la


ventana con el programa InfoExplorer (Ayuda de InfoExplorer). Para obtener información acerca de cómo
cambiar el tamaño de la ventana utilizando el archivo .Xdefaults, consulte el apartado Establecer el
tamaño de la ventana con recursos X (Ayuda de InfoExplorer).

Designación de un artículo de navegación por omisión


Por omisión, el programa InfoExplorer muestra inicialmente el Índice de temas y tareas como artículo de
navegación primario. Puede cambiar este valor por omisión al artículo de navegación que se adapte mejor
a sus objetivos. A continuación, en el arranque, el programa InfoExplorer muestra automáticamente el
nuevo artículo de navegación por omisión.

Para obtener información acerca de procedimientos, consulte el apartado Establecer valores por
omisión (ventana de InfoExplorer).

Designación de archivos por omisión


Puede que desee disponer de una guía para seguir una vía específica mientras utiliza el programa
InfoExplorer o puede que desee volver a rastrear la vía de una sesión anterior. Para gestionar este
aspecto, puede designar un archivo histórico específico por omisión. De este modo, cuando utilice la
opción Histórico, el archivo histórico por omisión o la guía le guiarán a la vía designada.

También puede designar un archivo de señales o un archivo de notas como archivo de señales o de
notas por omisión y seguir esas vías específicas en sesiones posteriores.

Para obtener información acerca de procedimientos, consulte el apartado Establecer valores por omisión
(Ayuda de InfoExplorer).

Designación de un archivo de plantilla de notas por omisión


Cuando cree una nota en el editor de notas de InfoExplorer, la ventana del editor de notas estará
inicialmente en blanco. Puede escribir la nota en la ventana en blanco o pegar texto seleccionado de la
ventana de lectura. Para utilizar un formato concreto para escribir notas, puede especificar una plantilla de
notas. Si ha creado y guardado muchas plantillas de notas, puede designar una de ellas como valor por
omisión. A continuación, cuando utilice la opción Nota, el programa InfoExplorer mostrará la plantilla de
notas por omisión.

Capítulo 10. Personalización del entorno del usuario 153


Para obtener información acerca de procedimientos, consulte el apartado Establecer valores por omisión
(Ayuda de InfoExplorer).

Cambio de la base de información de búsqueda por omisión


Por omisión, cuando efectúe búsquedas con el programa InfoExplorer, la búsqueda incluirá todas las
bases de información cargadas con el programa. No obstante, no siempre es necesario incluir todas las
bases de información en la búsqueda. Para que sus búsquedas sean más eficaces, puede especificar en
qué bases de información debe buscarse durante sesiones actuales y futuras. También puede restablecer
la selección a su formato original (valor por omisión del sistema) de forma que se incluyan las bases de
información cargadas con el programa en la búsqueda.

Para obtener información acerca de procedimientos, consulte el apartado Establecer valores por omisión
(Ayuda de InfoExplorer).

Designación de impresoras por omisión


Puede que disponga de impresoras capaces de ofrecer una impresión de imágenes o de trabajos de alta
calidad. La opción Impresión de alta calidad utiliza el programa troff para convertir un documento en
salida para fotocomposición. Con el programa InfoExplorer, puede designar una impresora por omisión
para cada uno de los distintos tipos de impresión: simple (impresión de texto), alta calidad (impresión más
elaborada, conservando las características de font de texto y estilo) o imagen. Cuando emite un mandato
de impresión para una pantalla que contiene uno de los tipos de impresión indicados o una imagen, la
impresora que ha designado recibe automáticamente ese mandato en particular.

Por ejemplo, cuando seleccione la opción Imprimir gráfico del menú desplegable de información, el
trabajo de impresión se enviará automáticamente a la impresora que ha designado para imágenes.

Nota: El programa para formatear documentos troff deberá haberse instalado en el sistema para
poder utilizar la función de impresión de alta calidad.

Para obtener información acerca de procedimientos, consulte el apartado Establecer valores por omisión
(Ayuda de InfoExplorer).

Cambio de las preferencias de la interfaz de ventanas de InfoExplorer


En InfoExplorer, puede establecer muchas preferencias. Utilice la opción Preferencias en el menú
desplegable Personalizar para establecer valores por omisión para:
v “Cambio del tamaño del font”
v “Cambio de la visualización de imágenes” en la página 155
v “Artículos de automantenimiento” en la página 155
v “Designación del artículo de impresión” en la página 155
v “Cambio del tamaño de los sucesos del histórico” en la página 155
v “Cambio de la biblioteca preferida” en la página 155

Cambio del tamaño del font


Si el tamaño del font en las ventanas de lectura y de navegación es demasiado grande o demasiado
pequeño, puede cambiar el tamaño de font por omisión. El tamaño de font por omisión del sistema es
mediano. No obstante, puede cambiarlo a X-pequeño, pequeño, grande o X-grande. A continuación puede
aplicar los cambios a la sesión actual o a las sesiones actual y futura.

Para obtener información acerca de procedimientos, consulte el apartado Definir preferencias (Ayuda de
InfoExplorer).

154 Guía del usuario del sistema: Sistema operativo y dispositivos


Cambio de la visualización de imágenes
Algunos artículos de hipertexto tienen imágenes. Puede determinar si desea ver esta imagen en una
ventana de imagen o en la ventana de lectura. Para ello, seleccione una de las opciones En línea,
Ventana separada o Indistinto del menú desplegable Personalizar. Si elige la opción Indistinto, la
imagen aparece en una ventana de imágenes separada, a menos que se designe de forma específica
que ha de aparecer en la ventana de lectura.

Después de determinar cómo visualizar imágenes, puede aplicar los cambios únicamente en la sesión
actual o tanto en la sesión actual como en sesiones posteriores.

Para obtener información acerca de procedimientos, consulte el apartado Definir preferencias (Ayuda de
InfoExplorer).

Artículos de automantenimiento
La opción Automantenimiento del menú desplegable Personalizar determina si el programa InfoExplorer
ha de abrir una nueva ventana de lectura para cada artículo nuevo. Por omisión, el programa InfoExplorer
sustituirá el contenido de una ventana de lectura cuando enlace a otro artículo. Para mantener los
artículos abiertos mientras se mueve por la base de información, utilice la opción Automantenimiento.
Cuando establece la opción Automantenimiento en Activado, puede seguir los enlaces sin perder los
artículos desde los que se ha enlazado. Puede aplicar los cambios únicamente a la sesión actual o
también a las posteriores.

Para obtener información acerca de procedimientos, consulte el apartado Definir preferencias (Ayuda de
InfoExplorer).

Designación del artículo de impresión


Puede seleccionar entra impresión simple e impresión de alta calidad. La Impresión simple no da
soporte a los gráficos. La opción Impresión de alta calidad utiliza el programa troff para convertir un
documento en salida para fotocomposición.

Para obtener información acerca de procedimientos, consulte el apartado Definir preferencias (Ayuda de
InfoExplorer).

Cambio del tamaño de los sucesos del histórico


El tamaño de una lista del histórico puede oscilar entre 0 (cero) a 500 sucesos. Por ejemplo, si el tamaño
de la lista del histórico se define en 10 sucesos, la lista del histórico contiene los últimos diez enlaces.

El valor por omisión del sistema para el tamaño de sucesos del histórico es 100 sucesos. Puede cambiar
el tamaño por omisión para que se adapte a su situación particular. A continuación puede aplicar los
cambios a la sesión actual únicamente o también a las sesiones futuras.

Para obtener información acerca de procedimientos, consulte el apartado Definir preferencias (Ayuda de
InfoExplorer).

Cambio de la biblioteca preferida


Puede designar una de las bibliotecas definidas como una ″biblioteca preferida″ que se utilizará si
InfoExplorer se inicia sin especificar una biblioteca en la línea de mandatos.

Para obtener información acerca de procedimientos, consulte el apartado Definir preferencias (Ayuda de
InfoExplorer).

Capítulo 10. Personalización del entorno del usuario 155


Resumen de la personalización del entorno de usuario

Archivos de arranque del sistema


/etc/profile Archivo del sistema que contiene mandatos que el sistema ejecuta cuando se
inicia la sesión.
/etc/environment Archivo del sistema que contiene variables que especifican el entorno básico para
todos los procesos.
$HOME/.profile (“Archivo .profile” Archivo del directorio inicial que contiene mandatos que alteran temporalmente el
en la página 143) archivo /etc/profile del sistema cuando se inicia la sesión.
$HOME/.env (“Archivo .env” en la Archivo del directorio inicial que altera temporalmente el archivo
página 144) /etc/environment del sistema y que contiene variables que especifican el entorno
básico para todos los procesos.

Archivos de arranque de AIXwindows


$HOME/.xinitrc (“Archivo .xinitrc” Archivo del directorio inicial que controla las ventanas y aplicaciones que se
en la página 145) inician cuando se inicia AIXwindows.
$HOME/.Xdefaults (“Archivo Archivo del directorio inicial que controla el aspecto visual o de comportamiento
.Xdefaults” en la página 146) de los recursos de AIXwindows.
$HOME/.mwmrc (“Archivo Archivo del directorio inicial que define enlaces de teclas, enlaces de botones del
.mwmrc” en la página 147) ratón y definiciones de menú para el gestor de ventanas.

Procedimientos de personalización
PS1 Indicador normal del sistema.
PS2 Indicador del sistema de más entrada.
PS3 Indicador del sistema raíz.
chfont Cambia el font utilizado por una pantalla en el arranque del sistema.
stty Define, redefine e informa de parámetros del funcionamiento de la estación de trabajo.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

“Visión general de los archivos de arranque del sistema” en la página 142

“Procedimientos de personalización” en la página 149

“Personalización del programa ASCII InfoExplorer” en la página 278

“Personalización del programa de ventanas InfoExplorer” en la página 152

156 Guía del usuario del sistema: Sistema operativo y dispositivos


“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

Capítulo 10. Personalización del entorno del usuario 157


158 Guía del usuario del sistema: Sistema operativo y dispositivos
Capítulo 11. Shells
La interfaz con el sistema operativo se denomina shell. El shell es la capa más externa del sistema
operativo. Los shells incorporan un lenguaje de programación para controlar procesos y archivos, además
de iniciar y controlar otros programas. El shell gestiona la interacción entre el usuario y el sistema
operativo solicitándole la entrada, interpretando dicha entrada para el sistema operativo y gestionando
cualquier resultado de salida procedente del sistema operativo.

Los shells ofrecen un método para comunicarse con el sistema operativo. Esta comunicación tiene lugar
de forma interactiva (la entrada del teclado se ejecuta inmediatamente) o como un script de shell. Un
script de shell es una secuencia de mandatos del shell y del sistema operativo que se almacena en un
archivo.

Cuando se inicie la sesión en el sistema, éste localizará el nombre de un programa de shell a ejecutar.
Una vez ejecutado, el shell mostrará un indicador de mandatos. Este indicador suele ser un signo $ (signo
de dólar). Cuando escriba un mandato en el indicador y pulse la tecla Intro, el shell evaluará el mandato e
intentará ejecutarlo. Según las instrucciones del mandato, el shell grabará la salida del mandato en la
pantalla o lo dirigirá a la salida. A continuación, restaura el indicador de mandatos para que escriba otro
mandato.

Una línea de mandatos es la línea en la que escribe. Contiene el indicador del shell. El formato básico
para cada línea es:
$ Mandato Argumento(s)

El shell considera la primera palabra de una línea de mandatos (hasta el primer espacio en blanco) como
el mandato y todas las palabras siguientes como argumentos.

En este apartado se explica lo siguiente:


v “Funciones del shell” en la página 160
v “Mandatos del shell Korn o shell POSIX” en la página 184
v “Delimitadores en el shell Korn o shell POSIX” en la página 168
v “Palabras reservadas en el shell Korn o shell POSIX” en la página 170
v “Alias de mandatos en el shell Korn o shell POSIX” en la página 170
v “Sustitución de parámetros en el shell Korn o shell POSIX” en la página 172
v “Sustitución de mandatos en el shell Korn o shell POSIX” en la página 176
v “Evaluación aritmética en el shell Korn o shell POSIX” en la página 177
v “Subdivisión de campos en el shell Korn o shell POSIX” en la página 179
v “Sustitución del nombre del archivo en el shell Korn o POSIX” en la página 179
v “Redirección de entrada y de salida en el shell Korn o shell POSIX” en la página 181
v “Estado de la salida en el shell Korn o shell POSIX” en la página 183
v “Mandatos del shell Korn o shell POSIX” en la página 165
v “Mandatos incorporados del shell Korn o shell POSIX” en la página 186
v “Expresiones condicionales para el shell Korn o el shell POSIX” en la página 198
v “Control de trabajos en el shell Korn o shell POSIX” en la página 199
v “Edición en línea en el shell Korn o shell POSIX” en la página 200
v “Lista de mandatos incorporados del shell Korn o shell POSIX” en la página 197
v “Lista de mandatos incorporados del shell Bourne” en la página 226
v “Lista de mandatos incorporados del shell C” en la página 250
v “Información relacionada con el shell Korn” en la página 209

© Copyright IBM Corp. 1997, 2001 159


v “Información relacionada con el shell Bourne” en la página 227
v “Información relacionada del shell C” en la página 251
v “Shell Bourne” en la página 210
v “Shell restringido” en la página 211
v “Mandatos del shell Bourne” en la página 212
v “Sustitución de variables y nombres de archivo en el shell Bourne” en la página 219
v “Redirección de entrada y de salida en el shell Bourne” en la página 226
v “Shell C” en la página 227
v “Mandatos del shell C” en la página 229
v “Sustitución del histórico en el shell C” en la página 238
v “Sustitución de alias en el shell C” en la página 241
v “Sustitución de variables y nombres de archivo en el shell C” en la página 242
v “Variables de entorno en el shell C” en la página 246
v “Redirección de entrada y salida en el shell C” en la página 248
v “Control de trabajos en el shell C” en la página 249

Funciones del shell


Las ventajas principales de intercambiar información con el sistema a través de un shell son:
v Sustitución de comodín en nombres de archivo (coincidencia con patrón)
Ejecuta mandatos de un grupo de archivos especificando un patrón de búsqueda en lugar de un
nombre de archivo real.
Para obtener más información, consulte:
– “Sustitución del nombre del archivo en el shell Korn o POSIX” en la página 179
– “Sustitución de nombres de archivos en el shell Bourne” en la página 225
– “Sustitución de nombres de archivos en el shell C” en la página 244
v Proceso en segundo plano
Define tareas prolongadas que se ejecutarán en segundo plano, liberando el terminal para el proceso
interactivo concurrente.
Para obtener más información, consulte el mandato bg en:
– “Control de trabajos en el shell Korn o shell POSIX” en la página 199
– “Mandatos incorporados del shell C” en la página 229

Nota: El shell Bourne no da soporte al control de trabajos.


v Creación de alias de mandatos
Proporciona un alias a un mandato o frase. Cuando el shell encuentra un seudónimo en la línea de
mandatos o en un script de shell, sustituye el texto al que se refiere el seudónimo.
Para obtener más información, consulte:
– “Alias de mandatos en el shell Korn o shell POSIX” en la página 170
– “Sustitución de alias en el shell C” en la página 241

Nota: El shell Bourne no da soporte a los alias de mandatos.


v Histórico de mandatos
Registra los mandatos que especifica en un archivo histórico. Puede utilizar este archivo para acceder,
modificar y volver a emitir fácilmente cualquier mandato listado.
Para obtener más información, consulte el mandato history en:
– “Histórico de mandatos del shell Korn o shell POSIX” en la página 185

160 Guía del usuario del sistema: Sistema operativo y dispositivos


– “Mandatos incorporados del shell C” en la página 229
– “Sustitución del histórico en el shell C” en la página 238

Nota: El shell Bourne no da soporte al histórico de mandatos.


v Sustitución de nombres de archivo
Genera automáticamente una lista de nombres de archivo en una línea de mandatos utilizando
caracteres coincidentes con un patrón.
Para obtener más información, consulte:
– “Sustitución del nombre del archivo en el shell Korn o POSIX” en la página 179
– “Sustitución de nombres de archivos en el shell Bourne” en la página 225
– “Sustitución de nombres de archivos en el shell C” en la página 244
v Redirección de entrada y salida
Redirige la entrada del teclado y redirige la salida a un archivo o dispositivo distinto del terminal. Por
ejemplo, la entrada para un programa puede obtenerse de un archivo y redirigirse a la impresora o a
otro archivo.
Para obtener más información, consulte:
– “Redirección de entrada y de salida en el shell Korn o shell POSIX” en la página 181
– “Redirección de entrada y de salida en el shell Bourne” en la página 226
– “Redirección de entrada y salida en el shell C” en la página 248
v Conductos
Enlaza cualquier número de mandatos para componer un programa complejo. La salida estándar de un
programa pasa a ser la entrada estándar del siguiente.
Para obtener más información, consulte la definición de conducto en el apartado ″Terminología de los
shells″.
v Sustitución de variables de shell
Almacena datos de variables definidas por el usuario y variables de shell predefinidas.
Para obtener más información, consulte:
– “Sustitución de parámetros en el shell Korn o shell POSIX” en la página 172
– “Sustitución de variables en el shell Bourne” en la página 220
– “Sustitución de variables en el shell C” en la página 242

Shells disponibles
Se proporcionan los siguientes shells con esta versión del sistema operativo:
v Shell Korn (se inicia con el mandato ksh)
v Shell Bourne (se inicia con el mandato bsh)
v Shell restringido (es una versión limitada del shell Bourne que se inicia con el mandato Rsh)
v Shell POSIX (también denominado shell Korn y que se inicia con el mandato psh)
v Shell por omisión (se inicia con el mandato sh)
v Shell C (se inicia con el mandato csh)
v Shell fiable (es una versión limitada del shell Korn que se inicia con el mandato tsh)
v Shell remoto (se inicia con el mandato rsh).

El shell de inicio de sesión hace referencia al shell que se carga cuando inicia la sesión en el sistema. El
shell de inicio de sesión se establece en el archivo /etc/passwd. El shell Korn es el shell de inicio de
sesión del sistema operativo estándar y es compatible con las versiones anteriores del shell Bourne, como
se explica en el apartado “Shell Bourne” en la página 210.

Capítulo 11. Shells 161


El shell por omisión o estándar hace referencia al shell que se inicia y cuyo enlace se establece con el
mandato /usr/bin/sh. El shell Bourne se define como el shell por omisión y es un subconjunto del shell
Korn.

El shell por omisión o estándar hace referencia al shell que se inicia y cuyo enlace se establece con el
mandato /usr/bin/sh. El shell Korn, también conocido como shell POSIX, se define como shell por
omisión. El shell POSIX se denomina /usr/bin/psh y se enlaza con el mandato /usr/bin/ksh.

Terminología de los shells


Las siguientes definiciones son útiles para comprender los shells:

blanco Un blanco es uno de los caracteres de la clase de caracteres blancos definida en la


categoría LC_CTYPE. En el shell POSIX, un blanco es una tabulación o un espacio.
mandato incorporado Un mandato que el shell ejecuta sin tener que buscarlo y que crea un proceso separado.
mandato Una secuencia de caracteres en la sintaxis del lenguaje del shell. El shell lee cada uno
de los mandatos y lleva a cabo la acción deseada directamente o llamando a programas
de utilidad independientes.
comentario Cualquier palabra que empiece por un signo de almohadilla (#). La palabra y todos los
caracteres que le siguen, hasta el carácter de línea nueva siguiente, se ignorarán.
identificador Una secuencia de letras, dígitos o subrayados del conjunto de caracteres portables, que
comienzan por una letra o subrayado. El primer carácter de un identificador no debe ser
un dígito. Los identificadores se utilizan como nombres para alias, funciones y
parámetros especificados.
lista Secuencia de uno o más conductos separados por uno de estos cuatro símbolos: punto
y coma (;), ampersand (&), ampersand doble (&&) o barra doble (||). Opcionalmente, la
lista puede acabar con uno de los cuatro símbolos siguientes: punto y coma (;),
ampersand (&) o barra ampersand (|&).
; Procesa secuencialmente el conducto anterior. El shell ejecuta cada mandato
por orden y espera a que se complete el último mandato.
& Procesa asíncronamente el conducto anterior. El shell ejecuta cada mandato
por orden, procesando el conducto en segundo plano sin esperar a que se
complete.
|& Procesa asíncronamente el área de interconexión de memoria anterior y
establece un conducto bidireccional con el shell padre. El shell ejecuta cada
mandato por orden, procesando el conducto en segundo plano sin esperar a
que se complete. El shell padre puede leer y grabar en la entrada y salida
estándar del mandato subdividido utilizando los mandatos read -p y print
-p.Sólo uno de dichos mandatos puede estar activo al mismo tiempo.
&& Procesa la lista que sigue a este símbolo sólo si el conducto anterior devuelve
un valor de salida cero (0).
|| Procesa la lista que sigue a este símbolo solo si el conducto anterior devuelve
un valor de salida distinto de cero.

El punto y coma (;), ampersand (&) y la barra ampersand (|&) tienen una prioridad
menor que el ampersand doble (&&) y la barra doble (||). Los símbolos ;, & y |& tienen
igual prioridad entre sí. Los signos && y || tienen la misma prioridad. Pueden utilizarse
uno o más caracteres de línea nueva en lugar de un punto y coma para delimitar dos
mandatos en una lista.

Nota: El símbolo |& sólo es válido en el shell Korn.

162 Guía del usuario del sistema: Sistema operativo y dispositivos


metacaracteres Cada metacarácter tiene un significado especial para el shell y provoca la terminación
de una palabra a no ser que esté limitada. Los metacaracteres son: conducto (|),
ampersand (&), punto y coma (;), signo menor que (<), signo mayor que (>), paréntesis
izquierdo ((), paréntesis derecho ()), símbolo del dólar ($), acento grave (′), barra
inclinada invertida (\), apóstrofo (’), comillas dobles (″), carácter de nueva línea, carácter
del espacio y carácter de tabulación. Todos los caracteres delimitados entre comillas
simples se consideran delimitados y el shell los interpreta literalmente. El significado
especial de los metacaracteres se conserva si no se delimitan. (Los metacaracteres
también se denominan metacaracteres de analizador en el shell C.)
lista de asignación de Incluye una o más palabra en el formato Identificador=Valor en el que los espacios que
parámetros aparecen alrededor de signo (=) deben estar compensados. Es decir, deben utilizarse
blancos iniciales y finales o sin blancos.

Nota: En el shell C, la lista de asignación de parámetros tiene el formato set


Identificador = Valor. Se necesitan espacios alrededor del signo igual (=).
conducto Secuencia de uno o más mandatos separados por un conducto (|). Cada mandato del
conducto, excepto posiblemente el último mandato, se ejecuta como un proceso
independiente. No obstante, la salida estándar de cada mandato que está conectado
mediante un conducto pasa a ser la entrada estándar del siguiente mandato de la
secuencia. Si se delimita una lista entre paréntesis, se ejecuta como un solo mandato
que funciona en un subshell independiente.

Si la palabra reservada ! no precede al conducto, el estado de la salida será el estado


de salida del último mandato especificado en el conducto. De lo contrario, el estado de
salida es el operador lógico NOT o el estado de salida del último mandato. En otras
palabras, si el último mandato devuelve cero, el estado de salida será 1. Si el último
mandato devuelve un valor superior a cero, el estado de salida será cero.

El formato de un conducto es:


[!] mandato1 [ | mandato2 ...]

Nota: En las versiones anteriores del shell Bourne se utilizaba un acento


circunflejo (|) para indicar un conducto.
variable de shell Un nombre o un parámetro al que se asigna un valor. Una variable se asigna
escribiendo el nombre de la variable, un signo igual que (=) y, a continuación, el valor. El
nombre de la variable puede sustituirse por el valor asignado especificando un símbolo
de dólar ($) delante del nombre de la variable. Las variables son especialmente útiles
para crear una notación abreviada para un nombre de vía de acceso largo, como
$HOME para el directorio inicial. Una variable predefinida es aquella a que el shell
asigna su valor. Una variable definida por el usuario es aquella a la que un usuario
asigna su valor.
mandato simple Una secuencia de listas y redirecciones de asignaciones de parámetros opcionales en
cualquier orden. Van, opcionalmente, seguidos de mandatos, palabras y redirecciones.
Acaban con ;, |, &, ||, &&, |& o con un carácter de nueva línea. El nombre del mandato
se pasa como parámetro 0 (como define la subrutina exec). El valor de un mandato
simple es su estado de salida de cero si termina normalmente o distinto de cero si
termina anormalmente. El apartado en el que se describen las subrutinas sigaction,
sigvec o signal, en la publicación AIX 5L Version 5.1 Technical Reference: Base
Operating System and Extensions Volume 2, incluye una lista de los valores de estado
de salida de señal.
subshell Un shell que se ejecuta como un hijo del shell de inicio de sesión o shell actual.
carácter comodín También conocido como carácter coincidente con patrón. El shell los asocia con valores
asignados. Los comodines básicos son ?, *, [set] y [!set].Los caracteres comodín son
particularmente útiles cuando se sustituyen nombres de archivos.
palabra Una secuencia de caracteres que no contiene blancos. Las palabras están separadas
por uno o más metacaracteres.

Capítulo 11. Shells 163


Creación y ejecución de un script de shell
Los scripts de shell son un método fácil de ejecutar mandatos tediosos, secuencias de mandatos grandes
o complicadas, y tareas rutinarias. Un script de shell es un archivo que contiene uno o más mandatos.
Cuando escribe el nombre de un archivo script de shell, el sistema ejecuta la secuencia de mandatos
incluida en el archivo.

Puede crear un script de shell utilizando un editor de texto. El script puede contener tanto mandatos del
sistema operativo como mandatos incorporados del shell.

Los pasos siguientes son directrices generales para escribir scripts de shell:
1. Mediante la utilización de un editor de texto, cree y guarde un archivo. Puede incluir cualquier
combinación de mandatos del sistema operativo y mandatos del shell en dicho archivo script.

Por convenio, los scripts de shell que no se han configurado para que los utilicen muchos usuarios se
almacenan en el directorio $HOME/bin.

Nota: El sistema operativo no da soporte a las subrutinas setuid o setgid dentro de un script de
shell.
1. Utilice el mandato chmod para que sólo el propietario tenga permiso para ejecutar el archivo. Por
ejemplo, si el nombre del archivo es script1, escriba:
chmod u=rwx script1

Pulse Intro.
2. Escriba el nombre del script en la línea de mandatos para ejecutar el script de shell. Para ejecutar el
script de shell script1, escriba:
script1

Pulse Intro.

Nota: Puede ejecutar un script de shell sin convertirlo en ejecutable si especifica un mandato de
shell (ksh, bsh o csh) delante del nombre de archivo del script de shell en la línea de mandatos.
Por ejemplo, para ejecutar un archivo no ejecutable llamado script1 bajo el control del shell
Korn, escriba:
ksh script1

Especificación de un shell para un archivo de script


Cuando ejecute un script de shell ejecutable en el shell Korn (el shell POSIX) o el shell Bourne, los
mandatos del script se llevarán a cabo bajo el control del shell actual (el shell desde el que inició el script)
a menos que especifique un shell distinto. Cuando ejecuta un script de shell ejecutable en el shell C, los
mandatos del script pasan a estar bajo el control del shell Bourne (/usr/bin/bsh), a menos que
especifique un shell distinto.

Puede hacer que un script de shell se ejecute en un shell específico incluyéndolo en el script de shell.
Para ejecutar un script de shell ejecutable en un shell específico, escriba #!Vía de acceso en la primera
línea del script de shell y pulse Intro. Los caracteres #! identifican el tipo de archivo. La variable Vía de
acceso especifica el nombre de la vía de acceso del shell desde el que ha de ejecutarse el script de shell.
Por ejemplo, si la primera línea de un script de shell es #!/usr/bin/bsh, el script se ejecuta bajo el control
del shell Bourne.

Cuando precede un nombre de archivo de script de shell con un mandato de shell, el shell especificado
en la línea de mandatos prevalece sobre cualquier shell especificado en el propio archivo de script. Por lo

164 Guía del usuario del sistema: Sistema operativo y dispositivos


tanto, cuando escribe ksh myfile y pulsa Intro, el archivo denominado myfile se ejecuta bajo el control
del shell Korn, aunque la primera línea de myfile sea #!/usr/bin/csh.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell Bourne” en la página 210

“Shell C” en la página 227

Mandatos del shell Korn o shell POSIX


Un mandato de shell Korn es uno de los siguientes:
v Un mandato simple
v Un conducto
v Una lista
v Un mandato compuesto
v Una función

Cuando emita un mandato en el shell Korn o shell POSIX, el shell evalúa el mandato y actúa de este
modo:
v Efectúa todas las sustituciones indicadas.
v Determina si el mandato contiene una /. Si es así, el shell ejecuta el programa indicado por el nombre
de vía de acceso especificado.

Si el mandato no contiene una /, el shell Korn o el shell POSIX continúa con las acciones siguientes:
v Determina si el mandato es un mandato especial incorporado. Si es así, el shell ejecuta el mandato
dentro del proceso de shell actual.
Consulte el apartado “Mandatos incorporados del shell Korn o shell POSIX” en la página 186 para
obtener información acerca de los mandatos incorporados especiales.
v Compara el mandato con las funciones definidas por el usuario. Si el mandato coincide con una función
definida por el usuario, los parámetros de posición se guardan y, a continuación, vuelven a
establecerse en los argumentos de la llamada function. Cuando la función se completa o bien emite
un retorno, la lista de parámetros de posición se restaura y se ejecuta cualquier ruptura que se haya
establecido en EXIT dentro de la función. El valor de una función es el valor del último mandato
ejecutado. Una función se lleva a cabo en el proceso de shell actual.
v Si el nombre del mandato coincide con el nombre de un mandato incorporado normal, se invoca ese
mandato incorporado normal.
Consulte el apartado “Mandatos incorporados del shell Korn o shell POSIX” en la página 186 para
obtener información acerca de los mandatos incorporados normales.

Capítulo 11. Shells 165


v Crea un proceso e intenta ejecutar el mandato utilizando el mandato exec (si el mandato no es un
mandato incorporado ni una función definida por el usuario).

El shell Korn, o shell POSIX, busca una vía de acceso de un archivo ejecutable en todos los directorios.
La variable de shell PATH define la vía de búsqueda del directorio que contiene el mandato. Los nombres
de los directorios alternativos se separan por medio de un carácter :. La vía de acceso por omisión es
/usr/bin: (que especifica el directorio /usr/bin y el directorio actual, en este orden). El directorio actual se
especifica mediante dos o más signos de dos puntos o mediante un signo de dos puntos al principio o al
final de la lista de vías de acceso.

Si el archivo tiene permiso de ejecución pero no es un directorio o un archivo a.out, el shell da por
supuesto que contiene mandatos de shell. El proceso de shell actual fragmenta un subshell para leer el
archivo. Todos los alias, funciones y parámetros designados no exportados se eliminan del archivo. Si el
archivo de mandatos del shell tiene permiso de lectura, o si en el archivo se han establecido los bits
setuid o setgid, el shell ejecuta un agente que establece los permisos y ejecuta el shell con el archivo de
mandatos del shell que se ha pasado como un archivo abierto. Un mandato entre paréntesis se ejecuta
en un subshell sin eliminar las cantidades no exportadas.

En este apartado se explica lo siguiente:


v “Mandatos compuestos del shell Korn”
v “Funciones” en la página 167
v “Mandatos incorporados del shell Korn o shell POSIX” en la página 186
v “Expresiones condicionales para el shell Korn o el shell POSIX” en la página 198
v “Información relacionada con el shell Korn” en la página 209

Mandatos compuestos del shell Korn


Un mandato compuesto es una lista de mandatos simples, un conducto o puede comenzar con una
palabra reservada. La mayor parte del tiempo estará utilizando mandatos compuestos, como if, while y
for, al escribir los scripts de shell.

Lista de mandatos compuestos del shell Korn o shell POSIX


for Identificador [in Palabra ...]Cada vez que se ejecuta un mandato for, el parámetro Identificador se establece en
;do Lista ;done la siguiente palabra que se toma de la lista in Palabra ... Si se omite el mandato in
Palabra ..., el mandato for ejecuta el mandato do Lista una vez por cada parámetro
de posición que se ha establecido. La ejecución finaliza cuando no hay más
palabras en la lista. Consulte el apartado “Sustitución de parámetros en el shell Korn
o shell POSIX” en la página 172 para obtener más información acerca de los
parámetros de posición.
select Identificador [in Palabra Un mandato select imprime en el error estándar (descriptor de archivo 2) el conjunto
...] ;do Lista ;done especificado de palabras, cada una de las cuales va precedida de un número. Si se
omite el mandato in Palabra ..., en su lugar se utilizan los parámetros de posición.
Se imprime el indicador PS3 y se lee una línea de la entrada estándar. Si esta línea
se compone del número de una de las palabras de la lista, el valor del parámetro
Identificador se establece en la palabra que corresponde a ese número.
Si la línea leída de la entrada estándar está vacía, vuelve a imprimirse la lista de
selección. De lo contrario, el valor del parámetro Identificador se establece en nulo.
El contenido de la línea leída de la entrada estándar se guarda en el parámetro
REPLY. El parámetro Lista se ejecuta para cada selección, hasta que se detecta un
carácter de interrupción o de fin de archivo. Consulte el apartado “Sustitución de
parámetros en el shell Korn o shell POSIX” en la página 172 para obtener más
información acerca de los parámetros de posición.
case Palabra in [[ ( ] Patrón [ | Un mandato case ejecuta el parámetro Lista asociado con el primer parámetro
Patrón] ... ) Lista ;;] ... esac Patrón que coincide con el parámetro Palabra. El formato de los patrones es el
mismo que el que se utiliza para la sustitución de nombres de archivo.

166 Guía del usuario del sistema: Sistema operativo y dispositivos


if Lista ;then Lista [elif Lista El parámetro Lista especifica una lista de los mandatos que han de ejecutarse. El
;then Lista] ... [;else Lista] ;fi shell ejecuta primero el mandato if Lista. Si se devuelve un estado de salida cero,
ejecuta el mandato then Lista. De lo contrario, se ejecutan los mandatos que
especifica el parámetro Lista que sigue al mandatoelif.
Si el valor que el último mandato devuelve en el mandato elif Lista es cero, se
ejecuta el mandato then Lista. Si el valor que el último mandato devuelve en el
mandato then Lista es cero, se ejecuta el mandato else Lista. Si no se ejecuta
ningún mandato especificado por los parámetros Lista para el mandato else o then,
el mandato if devuelve un estado de salida de cero.
while Lista ;do Lista ;done
until Lista ;do Lista ;done El parámetro Lista especifica una lista de los mandatos que han de ejecutarse. El
mandato while ejecuta repetidamente los mandatos que especifica el parámetro
Lista. Si el estado de salida del último mandato del mandato while Lista es cero, se
ejecuta el mandato do Lista. Si el estado de salida del último mandato del mandato
while Lista no es cero, el bucle finaliza. Si no se ejecuta ningún mandato do Lista,
el mandato while devuelve un estado de salida de cero. El mandato until puede
utilizarse en lugar del mandato while para anular la prueba de terminación del bucle.
( Lista ) El parámetro Lista especifica una lista de los mandatos que han de ejecutarse. El
shell ejecuta el parámetro Lista en un entorno separado.

Nota: Si se necesitan dos paréntesis de apertura adyacentes para el


anidamiento, deberá insertar un espacio entre ellos para diferenciar el mandato
y la evaluación aritmética.
{ Lista; } El parámetro Lista especifica una lista de los mandatos que han de ejecutarse. El
parámetro Lista simplemente se ejecuta.

Nota: A diferencia de los metacaracteres ( ), las { } indican palabras


reservadas (que se utilizan para fines especiales, no como identificadores que
el usuario declara). Para que puedan reconocerse, estas palabras reservadas
deben aparecer al principio de una línea o después de un carácter ;.
[[Expresión]] Evalúa el parámetro Expresión. Si la expresión es cierta, el mandato devuelve un
estado de salida de cero.
function Identificador { Lista ;} Define una función a la que el parámetro Identificador hace referencia. El cuerpo de
o function Identificador () la función es la lista especificada de mandatos delimitados por { }. Los () se
{Lista ;} componen de dos operadores, por lo tanto, está permitido mezclar caracteres en
blanco con el Identificador, ( y ), pero no es necesario.
time Conducto Ejecuta el parámetro Conducto. El tiempo transcurrido, la hora del usuario y la hora
del sistema se imprimen en error estándar.

Funciones
La palabra reservada function define funciones del shell. El shell lee y almacena funciones internamente.
Los alias se resuelven cuando se lee la función. El shell ejecuta las funciones de la misma forma que los
mandatos, pasando los argumentos como parámetros posicionales. Consulte el apartado “Sustitución de
parámetros en el shell Korn o shell POSIX” en la página 172 para obtener más información acerca de los
parámetros de posición.

El shell Korn o shell POSIX ejecuta funciones en el entorno desde el que se llama a las funciones. La
función y el script de invocación comparten todos los elementos siguientes; ello da lugar a que puedan
producirse efectos secundarios:
v Valores y atributos de variables (a menos que utilice typeset dentro de la función para declarar una
variable local)
v Directorio de trabajo
v Alias, definiciones de funciones y atributos
v El parámetro especial $
v Archivos abiertos

Capítulo 11. Shells 167


La función y el script de llamada no comparten los siguientes elementos y no hay efectos laterales:
v Parámetros posicionales.
v El parámetro especial #.
v Variables de una lista de asignación de variables cuando se llama a la función.
v Variables que se han declarado utilizando typeset dentro de la función.
v Opciones.
v Rupturas. No obstante, la función también ignorará las señales ignoradas por el script de llamada.

Nota: En versiones anteriores del shell Korn, la función, además del script de llamada, compartía
otras rupturas distintas de EXIT y ERR.

Si la ruptura de 0 o EXIT se ejecuta dentro del cuerpo de una función, la acción se ejecuta tras
completarse la función, en el entorno que ha llamado a la función. Si la ruptura se ejecuta fuera del
cuerpo de una función, la acción se ejecuta después de salir del shell Korn. En versiones anteriores del
shell Korn, no se ejecutaba ninguna ruptura de 0 o EXIT fuera del cuerpo de una función después de salir
de la función.

Cuando se ejecuta una función, ésta tiene las mismas propiedades de error de sintaxis y de asignación
de variable que las que se describen en el apartado “Mandatos incorporados del shell Korn o shell
POSIX” en la página 186.

El mandato compuesto se ejecuta siempre que se especifique el nombre de la función como nombre de
mandato simple. Los operandos del mandato pasarán a ser temporalmente los parámetros posicionales
durante la ejecución del mandato compuesto. El parámetro especial # también cambiará para reflejar el
número de operandos. El parámetro especial 0 no cambiará.

El mandato especial return se utiliza para volver de las llamadas a una función. Los errores en funciones
devuelven el control al llamador.

Los identificadores de función se listan con la opción -f o +f del mandato especial typeset. La opción -f
también lista el texto de las funciones. La definición de las funciones se elimina con la opción -f del
mandato especial unset.

Normalmente, se elimina la definición de las funciones cuando un shell ejecuta un script de shell. La
opción -xf del mandato especial typeset permite exportar una función a los scripts que se ejecutan sin
una invocación separada del shell. Las funciones que deben definirse en invocaciones separadas del shell
deben especificarse en el archivo ENV con la opción -xf del mandato especial typeset.

El estado de salida de la definición de una función es cero si la función se ha declarado


satisfactoriamente. De lo contrario, será mayor de cero. El estado de salida de una llamada de función es
el estado de salida del último mandato ejecutado por la función.

Delimitadores en el shell Korn o shell POSIX


Cuando desee que el shell Korn o shell POSIX lea un carácter como un carácter normal, en lugar de
hacerlo con cualquier significado asociado normal, debe limitarlo. Para anular el significado especial de un
metacarácter, utilice uno de los mecanismos de delimitación de la lista siguiente.

Cada metacarácter tiene un significado especial para el shell y, a menos que se limite, provoca la
terminación de una palabra. El shell Korn o el shell POSIX considera a los caracteres siguientes como
metacaracteres, los cuales deben especificarse entre delimitadores si van a representarse a sí mismos:
v conducto (|)
v ampersand (&)

168 Guía del usuario del sistema: Sistema operativo y dispositivos


v punto y coma (;)
v signo menor que ($lt;) y signo mayor que (>)
v paréntesis izquierdo (() y paréntesis derecho ())
v símbolo del dólar ($)
v acento grave (′) y comillas simples (’)
v barra inclinada invertida (\)
v comillas dobles (″)
v carácter de nueva línea
v carácter de espacio
v carácter de tabulación.

Los mecanismos de delimitación son la barra inclinada invertida (\), las comillas simples (’) y las comillas
dobles (″).

Barra inclinada invertida (\)) Una barra inclinada invertida (\) que no está limitada mantiene el valor
literal del siguiente carácter, con la excepción del carácter de nueva línea.
Si a continuación de la barra inclinada invertida va un carácter de nueva
línea, el shell lo interpreta como continuación de línea.
Comillas simples La especificación de caracteres entre comillas simples (’ ’) conserva el
valor literal de cada carácter especificado entre comillas simples. No
puede existir una única comilla simple dentro de las comillas simples.

Una barra inclinada invertida no puede utilizarse para el cambio de


código de una única comilla simple en una serie que se ha establecido
entre comillas simples. Una comilla intercalada puede crearse
escribiendo, por ejemplo: ’a’\’’b’, que produce a’b.
Comillas dobles La especificación de caracteres entre comillas dobles (″ ″) conserva el
valor literal de todos los caracteres que se especifican entre comillas
dobles, a excepción de los caracteres correspondientes al símbolo del
dólar, al acento grave y a la barra inclinada invertida, como se indica a
continuación:
$ El signo de dólar mantiene su significado especial introduciendo
expansión de parámetros, una forma de sustitución de
mandatos, y la expansión aritmética.
Los caracteres de entrada de la serie delimitada que también se
especifican entre $( y el ) coincidente, no quedan afectados por
las comillas dobles, pero definen al mandato cuya salida
sustituye a $(...) al expandirse la palabra.
Dentro de la serie de caracteres de un ${ delimitado hasta la }
coincidente, debe existir un número par de comillas dobles o de
comillas simples sin carácter de cambio de código, si existe
alguno. Para el cambio de código de un literal { o }, debe
especificarse primero un carácter de barra inclinada invertida.
′ El apóstrofo invertido conserva su significado especial
introduciendo la otra forma de sustitución de caracteres. La parte
de la serie delimitada, desde el acento grave y caracteres
iniciales hasta el siguiente acento grave que va precedido de
una barra inclinada invertida, define al mandato cuya salida
sustituye a ′ ... ′ al expandirse la palabra.
\ La barra inclinada invertida conserva su significado especial
como carácter de cambio de código sólo cuando va seguida de
uno de los caracteres siguientes: $, ′, ″, \ o un carácter de nueva
línea.

Capítulo 11. Shells 169


Una comilla doble debe ir precedida de una barra inclinada invertida para que pueda incluirse entre
comillas dobles. Cuando utiliza comillas dobles, si una barra inclinada invertida va inmediatamente
seguida de un carácter que se interpretaría como un carácter con significado especial, la barra inclinada
invertida se suprime y el siguiente carácter se toma literalmente. Si una barra inclinada invertida no
precede a un carácter que tendría un significado especial, se deja en su lugar intacta y el carácter que
sigue inmediatamente permanece también intacto. Por ejemplo:
"\$" -> $
"\a" -> \a

Las condiciones siguientes se aplican a los metacaracteres y caracteres de delimitación en el shell Korn o
shell POSIX:
v Los significados del símbolo del dólar, asterisco ($*) y del símbolo del dólar, arroba ($@) son idénticos
cuando no tienen delimitadores o cuando se utilizan como un nombre de archivo.
v Cuando se utilizan como un argumento de mandato, las comillas dobles, símbolo del dólar, asterisco,
comillas dobles (″$*″) equivalen a ″$1d$2d...″, donde d es el primer carácter del parámetro IFS.
v Comillas dobles, arroba, asterisco, comillas dobles (″$@″) equivale a ″$1″ ″$2″ ....
v Dentro de los acentos graves (′′), la barra inclinada invertida delimita los caracteres: barra inclinada
invertida (\), comilla simple (’) y símbolo del dólar ($). Si los acentos graves se especifican entre
comillas dobles (″ ″), la barra inclinada invertida también delimita al carácter de comillas dobles.
v La sustitución de los parámetros y de los mandatos tiene lugar dentro de las comillas dobles (″ ″).
v El significado especial de las palabras reservadas o alias se elimina especificando entre delimitadores
cualquier carácter de la palabra reservada. No puede especificar delimitadores en los nombres de las
funciones o en los nombres de los mandatos incorporados.
v “Información relacionada con el shell Korn” en la página 209

Palabras reservadas en el shell Korn o shell POSIX


Las palabras reservadas siguientes tienen un significado especial en el shell:
! case do
done elif else
esac fi for
function if in
select then time
until while {
} [[ ]]

Las palabras reservadas sólo se reconocen cuando aparecen sin delimitadores y cuando la palabra se
utiliza como:
v Primera palabra de un mandato
v Primera palabra que sigue a una de las palabras reservadas que no sea case, for o in
v Tercera palabra de un mandato case o for (en este caso, sólo es válida in).

Alias de mandatos en el shell Korn o shell POSIX


El shell Korn o el shell POSIX le permiten crear alias para personalizar mandatos. El mandato alias define
una palabra que tiene el formato Nombre=Serie como alias. Cuando utiliza un alias como la primera
palabra de una línea de mandatos, ksh comprueba si ya está procesando un alias con el mismo nombre.
Si es así, ksh no sustituye el nombre de alias. Si no está procesándose un alias con el mismo nombre,
ksh sustituye el nombre de alias por el valor del alias.

El primer carácter de un nombre de alias puede ser cualquier carácter imprimible, excepto los
metacaracteres. Los caracteres restantes deben ser los mismos que los de un identificador válido. La
serie de sustitución puede contener cualquier texto de shell válido, incluidos los metacaracteres.

170 Guía del usuario del sistema: Sistema operativo y dispositivos


Si el último carácter del valor de alias es un blanco, el shell también comprobará la palabra que sigue al
alias para la sustitución de alias. Puede utilizar alias para redefinir mandatos incorporados especiales,
pero no para redefinir palabras reservadas. Las definiciones de alias no se heredan entre invocaciones de
ksh. Sin embargo, si especifica alias -x, el alias sigue en vigor para los scripts que se invocan por
nombre, que no invocan un shell por separado. Para exportar una definición de alias y hacer que los
procesos hijo tengan acceso a éstos, debe especificar alias -x y la definición de alias en el archivo de
entorno.

Para crear, listar y exportar alias, utilice el mandato alias. Los alias se eliminan con el mandato unalias.

El formato para crear un alias es:


alias Nombre=Serie

donde el parámetro Nombre especifica el nombre del alias y el parámetro Serie especifica el valor del
alias.

Los siguientes alias exportados están predefinidos por el shell Korn, pero pueden perder su definición o
redefinirse. Se recomienda no cambiarlos, ya que ello podría confundir después a cualquier persona que
esperara que el alias funcionara tal como ksh lo ha definido.
autoload='typeset -fu'
false='let 0'
functions='typeset -f'
hash='alias -t'
history='fc -l'
integer='typeset -i'
nohup='nohup '
r='fc -e -'
true=':'
type='whence -v'

Los alias no reciben soporte en invocaciones no interactivas del shell Korn (ksh); por ejemplo, en un script
de shell o con la opción -c en ksh, como en el caso siguiente:
ksh -c alias

Para obtener más información acerca de los alias, consulte el apartado Creación de un alias de mandato
(“Creación de un alias de mandato (mandato de shell alias)” en la página 29) y el mandato alias en la
publicación AIX 5L Version 5.1 Commands Reference.

Alias de seguimiento de vía


Frecuentemente, los alias se utilizan como atajos para nombres completos de vías de acceso. Un recurso
de definición de alias le permite establecer automáticamente el valor de un alias al nombre completo de
una vía de acceso de un mandato correspondiente. Este tipo especial de alias es un alias de seguimiento
de vía. Los alias de seguimiento de vía aceleran la ejecución, pues eliminan la necesidad de que el shell
tenga que buscar en la variable PATH un nombre completo de vía de acceso.

El mandato set -h activa el seguimiento de mandatos para que cada vez que se haga referencia a un
mandato, el shell defina el valor de un alias con seguimiento de vía. La definición de este valor se elimina
cada vez que vuelve a establecerse la variable PATH.

El seguimiento de estos alias permanece, de forma que la siguiente referencia redefinirá el valor. Algunos
alias de seguimiento de vía se compilan en el shell.

Sustitución de la tilde
Después de que el shell ha realizado la sustitución de alias, éste comprueba cada palabra para verificar si
empieza por una tilde (x). Si es así, el shell comprueba la palabra, hasta la primera barra inclinada (/),

Capítulo 11. Shells 171


para verificar si coincide con un nombre de usuario del archivo /etc/passwd. Si el shell encuentra una
coincidencia, sustituye el carácter x y el nombre por el directorio de inicio de sesión del usuario pertinente.
Este proceso se denomina sustitución de la tilde.

El shell no cambia el texto original si no encuentra una coincidencia. El shell Korn también realiza
sustituciones especiales si el carácter x es el único carácter de la palabra o si va seguido de un signo
más (+) o de un guión (-):

x Se sustituye por el valor de la variable HOME.


x+ Se sustituye por la variable $PWD (el nombre completo de la vía de acceso del directorio actual).
x- Se sustituye por la variable $OLDPWD (el nombre completo de la vía de acceso del directorio anterior).

Asimismo, el shell intenta realizar la sustitución de la tilde cuando el valor de un parámetro de asignación
de variable empieza por un carácter de tilde x.
v “Información relacionada con el shell Korn” en la página 209

Sustitución de parámetros en el shell Korn o shell POSIX


El shell Korn, o shell POSIX, le permite efectuar sustituciones de parámetros.

En este apartado se explica lo siguiente:


v “Parámetros en el shell Korn”
v “Sustitución de parámetros” en la página 173
v “Parámetros especiales predefinidos” en la página 174
v “Variables que establece el shell Korn o shell POSIX” en la página 174
v “Variables que utiliza el shell Korn o shell POSIX” en la página 175

Parámetros en el shell Korn


Las categorías de un parámetro son:
v Identificador de cualquiera de los caracteres asterisco (*), arroba (@), signo de almohadilla (#), signo
de interrogación (?), guión (-), símbolo del dólar ($) y signo de admiración (!). Estos caracteres reciben
el nombre de parámetros especiales.
v Argumento que se indica mediante un número (parámetro de posición)
v Parámetro que se indica mediante un identificador, con un valor y cero o más atributos
(parámetro/variables con nombre).

El mandato incorporado especial typeset asigna valores y atributos a los parámetros con nombre. Los
atributos que reciben el soporte del shell Korn se describen con el mandato incorporado especial typeset.
Los parámetros exportados pasan valores y atributos al entorno.

El valor de un parámetro está asignado por:


Nombre=Valor [ Nombre=Valor ] ...

Si se establece el atributo de entero -i para el parámetro Nombre, el parámetro Valor se somete a


evaluación aritmética. Consulte la Evaluación aritmética en el shell Korn o shell POSIX (en el apartado
“Evaluación aritmética en el shell Korn o shell POSIX” en la página 177) para obtener más información
acerca de la evaluación de expresiones aritméticas.

El shell soporta un recurso de matrices unidimensionales. Una subserie hace referencia a un elemento de
un parámetro de matriz. Un subíndice se indica mediante una expresión aritmética especificada entre
corchetes ([ ]). Para asignar valores a una matriz, utilice set -A Nombre Valor... El valor de todos los
subscripts debe estar en el rango de 0 a 511. No es necesario declarar las matrices. Cualquier referencia

172 Guía del usuario del sistema: Sistema operativo y dispositivos


a un parámetro designado por un subscript válido es lícita y se creará una matriz, si es necesario. Hacer
referencia a una matriz sin un subscript es equivalente a hacer referencia al elemento 0.

A los parámetros de posición se les asignan valores mediante el mandato especial set. El parámetro $0
se establece a partir del argumento 0 al invocarse el shell. El carácter $ se utiliza para introducir
parámetros sustituibles.

Sustitución de parámetros
A continuación se muestran parámetros sustituibles:

${Parámetro} El shell lee todos los caracteres desde ${ hasta el } de cierre como si formaran
parte de la misma palabra, incluso si esa palabra contiene llaves o metacaracteres.
Se sustituye el valor, si lo hay, del parámetro especificado. Las llaves son
necesarias cuando el parámetro Parámetro va seguido de una letra, un dígito o una
carácter de subrayado que no va a interpretarse como parte de su nombre o bien
cuando en un subíndice se ha incluido un parámetro con nombre.

Si el parámetro especificado contiene uno o más dígitos, es un parámetro de


posición. Un parámetro posicional de más de un dígito debe estar delimitado entre
llaves. Si el valor de la variable es un * o una @), se sustituye cada parámetro de
posición, empezando desde $1 (separándolos con un carácter de separador de
campo). Si se utiliza un identificador de matriz con un subíndice * o una @, se
sustituye el valor de cada uno de los elementos (separándolos con un carácter de
separador de campo).
${#Parámetro} Si el valor del parámetro Parámetro es un * o una @, se sustituye el número de
parámetros de posición. De lo contrario, se sustituye la longitud que especifica el
parámetro Parámetro.
${#Identificador[*]} Se sustituye el número de elementos de la matriz que especifica el parámetro
Identificador.
${Parámetro:-Palabra} Si se ha establecido el parámetro Parámetro y no es nulo, se sustituye su valor; de
lo contrario, se sustituye el valor del parámetro Palabra.
${Parámetro:=Palabra} Si no se ha establecido el parámetro Parámetro o es nulo, se establece en el valor
del parámetro Palabra. Los parámetros de posición no pueden establecerse de esta
forma.
${Parámetro:?Palabra} Si se ha establecido el parámetro Parámetro y no es nulo, sustituya su valor. De lo
contrario, imprima el valor de la variable Palabra y salga del shell. Si se ha omitido
la variable Palabra, se imprimirá un mensaje estándar.
${Parámetro:+Palabra} Si se ha establecido el parámetro Parámetro y no es nulo, sustituya el valor de la
variable Palabra. De lo contrario, no sustituya nada.
${Parámetro#Patrón } | Si el parámetro de shell Patrón que se ha especificado coincide con el principio del
${Parámetro##Patrón} valor del parámetro Parámetro, el valor de esta sustitución es el valor del parámetro
Parámetro pero suprimiéndose la parte coincidente. De lo contrario, se sustituye el
valor del parámetro Parámetro. En el primer formato, se suprime el patrón
coincidente más pequeño. En el segundo formato, se suprime el patrón parte
coincidente más grande.
${Parámetro%Patrón} | Si el Patrón del shell especificado coincide con el valor de la variable Parámetro, el
${Parámetro%%Patrón} valor de esta sustitución es el valor de la variable Parámetro con la parte
coincidente suprimida; de lo contrario, sustituya el valor de la variable Parámetro.En
el primer formato, se suprime el patrón coincidente más pequeño; en el segundo
formato, se suprime el patrón coincidente más grande.

En las expresiones anteriores, la variable Palabra no se evalúa, a menos que vaya


a utilizarse como serie sustituida. De este modo, en el siguiente ejemplo, el
mandato pwd sólo se ejecuta si no se ha establecido el distintivo -d o bien es nulo:
echo ${d:-$(pwd)}

Nota: Si se omite el carácter : de las expresiones anteriores, el shell sólo comprueba si se ha


establecido o no el parámetro Parámetro.

Capítulo 11. Shells 173


Parámetros especiales predefinidos
El shell define automáticamente los siguientes parámetros:

@ Expande los parámetros de posición, empezando por $1. Cada parámetro está separado por un
espacio.

Si utiliza ″ para delimitar $@, el shell considera que cada parámetro de posición es una serie
separada. Si no existe ningún parámetro de posición, el shell expande la sentencia para obtener una
serie nula sin comillas.
* Expande los parámetros de posición, empezando por $1. El shell separa cada parámetro utilizando
el primer carácter del valor del parámetro IFS.

Si utiliza ″ para delimitar $*, el shell incluye los valores de los parámetros de posición entre comillas
dobles. Cada valor está separado por el primer carácter del parámetro IFS.
# Especifica el número (en decimales) de parámetros posicionales pasados al shell, sin contar el
nombre del propio procedimiento de shell. De este modo, el parámetro $# produce el número del
parámetro de posición con la numeración más alta que se ha establecido. Una de las utilizaciones
principales de este parámetro es comprobar la presencia del número necesario de argumentos.
- Proporciona distintivos al shell al invocarse o bien con el mandato set.
? Especifica el valor de salida del último mandato ejecutado. Su valor es una serie decimal. La
mayoría de mandatos devuelve 0 para indicar que se ha finalizado satisfactoriamente. El propio shell
devuelve el valor actual del parámetro $? como valor de salida.
$ Identifica el número de proceso de este shell. Puesto que los números de proceso son exclusivos
entre todos los procesos existentes, esta serie de un máximo de 5 dígitos suele utilizarse para
generar nombres exclusivos para archivos temporales.

El ejemplo siguientes ilustra la práctica recomendada de crear archivos temporales en un directorio


utilizado solamente para dicho propósito:
temp=$HOME/temp/$$
ls >$temp
.
.
.
rm $temp
! Especifica el número de proceso del último mandato de fondo que se ha invocado.
zero (0) Expande al nombre del shell o script de shell.

Variables que establece el shell Korn o shell POSIX


El shell define las siguientes variables:

subrayado(_) Indica inicialmente el nombre absoluto de vía de acceso del shell o script que se ejecuta
a medida que se pasa en el entorno. Consiguientemente, se asigna el último argumento
del mandato anterior. Este parámetro no se define para mandatos que son asíncronos.
Este parámetro también se utiliza para contener el nombre del archivo MAIL coincidente
cuando se comprueba si existe correo.
ERRNO Especifica un valor que define la subrutina que ha fallado más recientemente. Este valor
depende del sistema y está destinado a propósitos de depuración.
LINENO Especifica el número de la línea actual en el script o función que se ejecuta.
OLDPWD Indica el directorio de trabajo anterior que ha establecido el mandato cd.
OPTARG Especifica el valor del último argumento de opción que ha procesado el mandato
incorporado normal getopts.
OPTIND Especifica el índice del último argumento de opción que ha procesado el mandato
incorporado normal getopts.
PPID Identifica el número de proceso del shell padre.
PWD Indica el directorio de trabajo actual que ha establecido el mandato cd.

174 Guía del usuario del sistema: Sistema operativo y dispositivos


RANDOM Genera un entero aleatorio, uniformemente distribuido entre 0 y 32767. La secuencia de
números aleatorios puede inicializarse asignando un valor numérico a la variable
RANDOM.
REPLY Definido por la sentencia select y por el mandato normal incorporado read cuando no se
proporcionan argumentos.
SECONDS Especifica el número de segundos desde que se devolvió la llamada del shell. Si a esta
variable se asigna un valor, el valor que se devuelve cuando se haga referencia a éste
es el valor que se ha asignado más el número de segundos transcurrido desde la
asignación.

Variables que utiliza el shell Korn o shell POSIX


El shell utiliza las siguientes variables:

CDPATH Indica la vía de acceso de búsqueda para el mandato cd (cambiar directorio).


COLUMNS Define la anchura de la ventana de edición para las modalidades de edición del shell y para la
impresión de las listas de selección, select.
EDITOR Si el valor de este parámetro termina por emacs, gmacs o vi y la variable VISUAL no está
definida con el mandato especial set, se activa la opción correspondiente.
ENV Si se define esta variable, la sustitución de parámetros se efectúe sobre el valor que genera el
nombre de vía de acceso del script que se ejecutará cuando se llame a este shell. Este
archivo suele utilizarse para definiciones de alias y funciones.
FCEDIT Especifica el nombre del editor por omisión del mandato incorporado normal fc.
FPATH Especifica la vía de búsqueda para definiciones de funciones. Se buscará en esta vía de
acceso cuando se haga referencia a una función con el distintivo -u y cuando no se encuentre
un mandato. Si se encuentra un archivo ejecutable, se lee y se ejecuta en el entorno actual.
HISTFILE Si esta variable se establece al invocarse el shell, el valor es el nombre de la vía de acceso
del archivo que va a utilizarse para almacenar el histórico de mandatos.
HISTSIZE Si se define esta variable cuando se llame al shell, el número de mandatos especificados
anteriormente a los que este shell puede acceder será mayor o igual a este número. El valor
por omisión es 128.
HOME Indica el nombre del directorio de inicio de sesión, que pasa a ser el directorio actual después
de que finalice el inicio de sesión. El programa login inicializa esta variable. El mandato cd
utiliza el valor del parámetro $HOME como su valor por omisión. Utilizando esta variable en
lugar de un nombre de vía de acceso explícito en un procedimiento de shell permite que el
procedimiento se ejecute desde un directorio distinto sin alteraciones.
IFS Especifica los separadores de campo internos (por lo general, espacio, tabulación y nueva
línea) que se utilizan para separar las palabras de mandatos que son el resultado de la
sustitución de mandatos o parámetros y para separar palabras con el mandato incorporado
normal read. El primer carácter del parámetro IFS se utiliza para separar argumentos para la
sustitución $*.
LANG Proporciona un valor por omisión para las variables LC_*.
LC_ALL Altera temporalmente el valor de las variables LANG y LC_*.
LC_COLLATE Determina el comportamiento de la expresión de rango dentro de la coincidencia de patrón.
LC_CTYPE Define la clasificación de caracteres, conversión de mayúsculas y minúsculas y otros atributos
de caracteres.
LC_MESSAGES Determina el idioma en que están escritos los mensajes.
LINES Determina la longitud de columna para la impresión de listas de selección. Las listas de
selección se imprimen verticalmente hasta que se han llenado aproximadamente dos tercios de
las líneas que especifica la variable LINES.
MAIL Especifica el nombre de la vía de acceso utilizada por el sistema de correo para detectar la
llegada de correo nuevo. Si esta variable se establece en el nombre de un archivo de correo y
no se ha establecido la variable MAILPATH, el shell informa al usuario acerca de la existencia
de correo nuevo en el archivo especificado.

Capítulo 11. Shells 175


MAILCHECK Especifica la frecuencia (en segundos) con que el shell comprobará si existen cambios en la
hora de modificación de cualquiera de los archivos que especifican las variables MAILPATH o
MAIL. El valor por omisión es 600 segundos. Cuando haya transcurrido el tiempo, el shell
buscará antes de emitir el siguiente indicador.
MAILPATH Especifica una lista de nombres de archivo separados por dos puntos. Si se ha establecido
esta variable, el shell informará al usuario acerca de cualquier modificación realizada en los
archivos especificados que se haya producido durante el período, en segundos, que especifica
la variable MAILCHECK. Cada nombre de archivo puede ir seguido de un signo ? y del
mensaje que ha de imprimirse. El mensaje se someterá a la sustitución de variables con la
variable $_ que se ha definido como el nombre del archivo que ha cambiado. El mensaje por
omisión es tiene correo en $_.
NLSPATH Determina la ubicación de los catálogos de mensajes para el proceso de LC_MESSAGES.
PATH Indica la vía de búsqueda para mandatos, que es una lista ordenada de nombres de vías de
acceso de directorios separadas por dos puntos. El shell busca en dichos directorios en el
orden especificado cuando busca mandatos. Una serie nula en cualquier parte de la lista
representa el directorio actual.
PS1 Especifica la serie que se utilizará como indicador principal del sistema. El valor de este
parámetro se expande para la sustitución de parámetros con el fin de definir la serie del
indicador principal que, por omisión, es un signo $. El carácter ! de la serie del indicador
principal se sustituye por el número del mandato.
PS2 Especifica el valor de la serie del indicador secundario que, por omisión es un signo >.
PS3 Especifica el valor de la serie del indicador de selección que se utiliza dentro de un bucle
select que, por omisión es #?.
PS4 El valor de esta variable se expande para sustitución de parámetros y preceder a cada línea
de un rastreo de ejecución. Si se omite, el indicador de rastreo de ejecución es un signo +.
SHELL Especifica el nombre de la vía de acceso del shell, que se conserva en el entorno.
TMOUT Especifica el número de segundos que un shell permanece inactivo antes de finalizar. Si la
variable TMOUT se ha establecido en un valor mayor que cero (0), el shell saldrá si no se
entra un mandato dentro del número de segundos indicado tras la emisión del indicador PS1.
(Tenga en cuenta que el shell puede compilarse con un límite máximo que no puede superarse
para este valor).

Nota: Una vez transcurrido el período de tiempo de espera, existe una pausa de 60
segundos antes de la salida del shell.
VISUAL Si el valor de esta variable termina por emacs, gmacs o vi, se activa la opción correspondiente.

El shell proporciona valores por omisión para los parámetros PATH, PS1, PS2, MAILCHECK, TMOUT y
IFS, pero los parámetros HOME, SHELL, ENV y MAIL no son parámetros que el shell establece (aunque
el parámetro HOME se establece mediante el mandato login).

Sustitución de mandatos en el shell Korn o shell POSIX


El shell Korn, o el shell POSIX, le permite realizar la sustitución de mandatos.

En la sustitución de mandatos, el shell ejecuta un mandato especificado en un entorno de subshell y


sustituye dicho mandato por su salida. Para ejecutar la sustitución de mandatos en el shell Korn o en el
shell POSIX, realice lo siguiente:
$(mandato)

o, para la versión acotada, utilice:


′mandato′

Nota: Aunque ksh acepta la sintaxis con acentos graves, se considera obsoleta en los estándares
XPG4 y POSIX. En estos estándares se recomienda que las aplicaciones portátiles, utilicen la
sintaxis $(mandato).

176 Guía del usuario del sistema: Sistema operativo y dispositivos


El shell expande la sustitución de mandatos ejecutando el mandato en un entorno de subshell y
reemplazando la sustitución de mandatos (el texto del mandato más el delimitador $( ) o los acentos
graves) por la salida estándar del mandato, eliminando las secuencias de uno o más caracteres de nueva
línea al final de la sustitución.

En el ejemplo siguiente, los caracteres $( ) que delimitan el mandato indican que la salida del mandato
whoami se sustituye:
echo Mi nombre es: $(whoami)

Puede realizar la misma sustitución de mandatos con:


echo Mi nombre es: ′whoami′

La salida de ambos ejemplos para el usuario dee es:


Mi nombre es: dee

También puede sustituir expresiones aritméticas especificándolas entre ( ). Por ejemplo, el mandato:
echo Cada hora contiene $((60 * 60)) segundos

produce el resultado siguiente:


Cada hora contiene 3600 segundos

El shell Korn o shell POSIX elimina todos los caracteres de nueva línea finales cuando efectúa sustitución
de mandatos. Por ejemplo, si el directorio actual contiene los archivos file1, file2 y file3, el mandato:
echo $(ls)

elimina los caracteres de nueva línea y produce la salida siguiente:


file1 file2 file3

Para conservar los caracteres de nueva línea, inserte el mandato sustituido entre ″ ″:
echo "$(ls)"

Evaluación aritmética en el shell Korn o shell POSIX


El mandato incorporado normal del shell Korn o del shell POSIX let le permite realizar la aritmética de
enteros. Las constantes están en formato [Base]Número. El parámetro Base es un número decimal
comprendido entre el 2 y el 36, inclusive, que representa la base aritmética. El parámetro Número es un
número de esa base. Si omite el parámetro Base, el shell utiliza una base de 10.

Las expresiones aritméticas utilizan la misma sintaxis, prioridad y asociatividad de las expresiones del
lenguaje C. Reciben soporte todos los operadores integrales, a excepción del signo más doble (++), el
guión doble (—), el signo de interrogación, los dos puntos (?: ) y la coma (,). En la tabla de Operadores
aritméticos del shell Korn que aparece a continuación se indican los operadores de shell Korn o de shell
POSIX válidos, en orden de prioridad descendente:

Operadores aritméticos de shell Korn


Operador Definición
- Menos unitario
! Negación lógica
x Negación bitwise
* Multiplicación
/ División

Capítulo 11. Shells 177


% Resto
+ Suma
- Resta
<<, >> Desplazamiento a la izquierda, desplazamiento a la
derecha
<=,>=, <>, ==, != Comparación
& AND bitwise
| OR exclusivo bitwise
| OR bitwise
&& AND lógico
|| OR lógico
= *=, /=, &= +=, -=, <<=, > >=, &=, |=, |= Asignación

La mayoría de los operadores aritméticos, como *, &, < y >, tienen un significado especial para el shell
Korn o el shell POSIX. Estos caracteres deben estar delimitados. Por ejemplo, para multiplicar el valor
actual de y por 5 y volver a asignar un nuevo valor a y, utilice la expresión siguiente:
let "y = y * 5"

La especificación de la expresión entre comillas elimina el significado especial del carácter *.

Puede agrupar operaciones dentro de las expresiones del mandato let para forzar la agrupación. Por
ejemplo, en la expresión:
let "z = q * (z - 10)"

el mandato multiplica q por el valor reducido de z.

El shell Korn o el shell POSIX incluye un formato alternativo del mandato let si sólo va a evaluarse una
única expresión. El shell trata a los mandatos que se especifican entre paréntesis dobles (( )) como si
fueran expresiones especificadas entre comillas. Por lo tanto, la expresión:
((x = x / 3))

equivale a:
let "x = x / 3"

Se hace referencia a los parámetros designados por nombre en una expresión aritmética sin utilizar la
sintaxis de sustitución de parámetros. Cuando se hace referencia a un parámetro definido, su valor se
evalúa como si fuera una expresión aritmética.

Especifique una representación interna de enteros de un parámetro definido con el distintivo -i del
mandato especial incorporado typeset. Mediante la utilización del distintivo -i, la evaluación aritmética se
realiza en el valor de cada asignación a un parámetro definido. Si no especifica una base aritmética, la
primera asignación al parámetro determina la base aritmética. Esta base se utiliza cuando tiene lugar la
sustitución del parámetro.

178 Guía del usuario del sistema: Sistema operativo y dispositivos


Subdivisión de campos en el shell Korn o shell POSIX
Tras la realización de la sustitución de mandatos, el shell Korn explora los resultados de las sustituciones
de los caracteres de separación de campos que ha encontrado en la variable IFS (Separador interno de
campos). Donde se encuentren dichos caracteres, el shell subdivide las sustituciones en argumentos
independientes. El shell retiene los argumentos nulos explícitos (″″ o ’’) y elimina los argumentos nulos
implícitos (los que son el resultado de los parámetros que no tienen ningún valor).
v Si el valor de IFS es un espacio, un carácter de tabulación y de nueva línea o bien si no se ha
establecido, cualquier secuencia de los caracteres de espacio, tabulación y nueva línea que aparezca
al principio o al final de la entrada se pasará por alto y cualquier secuencia de tales caracteres que
aparezca dentro de la entrada delimitará un campo. Por ejemplo, la entrada siguiente genera dos
campos, school y days:
<newline><space><tab>school<tab><tab>days<space>
v De lo contrario, y si el valor de IFS no es nulo, se aplicarán las siguientes normas, en secuencia. ″IFS
espacio en blanco″ se utiliza para indicar cualquier secuencia (cero o más instancias) de caracteres de
espacios en blanco que están en el valor IFS (por ejemplo, si IFS contiene espacio/coma/tabulación,
cualquier secuencia de caracteres de espacio y de tabulación se considera IFS espacio en blanco).
1. IFS espacio en blanco se pasa por alto al principio y al final de la entrada.
2. Cada aparición en la entrada de un carácter IFS que no sea IFS espacio en blanco, junto con
cualquier IFS espacio en blanco adyacente, delimita un campo.
3. Longitud no cero IFS espacio en blanco delimita un campo.

Sustitución del nombre del archivo en el shell Korn o POSIX


El shell Korn, o el shell POSIX, realiza la sustitución del nombre del archivo explorando cada palabra de
mandato que especifica la variable Palabra para detectar determinados caracteres. Si una palabra de
mandato incluye los caracteres *), ? o [ y no se ha establecido el distintivo -f, el shell considera que la
palabra es un patrón. El shell sustituye la palabra por nombres de archivo, ordenados por el orden de
clasificación en vigor en el escenario local, que coincidan con el patrón. Si el shell no encuentra un
nombre de archivo que coincida con el patrón, no cambia la palabra.

Cuando el shell utiliza un patrón para la sustitución del nombre de archivo, los caracteres . y / deben
coincidir explícitamente.

Nota: El shell Korn no trata a estos caracteres de forma especial en otras instancias de la patrones
de coincidencia.

Los siguientes caracteres de patrones de coincidencia indican las sustituciones que se indican a
continuación:

* Busca la coincidencia de cualquier serie, incluida la serie nula.


? Busca la coincidencia de cualquier carácter individual.
[...] Busca la coincidencia de cualquiera de los caracteres delimitados. Un par de caracteres separados por un
- coincide con cualquier carácter que se encuentre léxicamente dentro del rango de inclusión de ese par,
de acuerdo con el orden de clasificación que tenga aplicación en el entorno local actual. Si el primer
carácter que sigue al corchete de apertura [ es un signo !, se buscará la coincidencia de cualquier
carácter no delimitado. En el conjunto de caracteres puede incluirse un - si éste ocupa la posición del
primer o del último carácter.

También puede utilizar la notación [:clasecarácter:] para buscar la coincidencia de los nombres de
archivos que están dentro de una indicación de rango. Este formato indica al sistema que busque la
coincidencia de cualquier carácter que pertenezca a la clase. La definición de los caracteres que
constituyen una clase de caracteres específica está presente en la categoría LC_CTYPE de la subrutina
setlocale. Se reconocen todas las clases de caracteres especificadas en el entorno local actual.

Capítulo 11. Shells 179


A continuación se indican los nombres de algunas de las clases de caracteres:
v alnum
v alpha
v cntrl
v digit
v graph
v lower
v print
v punct
v space
v upper
v xdigit.

Por ejemplo, [[:upper:]] busca la coincidencia de cualquier letra en mayúsculas.

El shell Korn da soporte a la expansión del nombre del archivo basándose en la comparación de los
elementos o símbolos, o clases de equivalencia.

Una ListaPatrones es una lista de uno o más patrones separados por una |. Los patrones compuestos se
forman con uno o más de los caracteres siguientes:

?(ListaPatrones) Opcionalmente, busca la coincidencia con alguno de los patrones especificados.


*(ListaPatrones) Busca la coincidencia de cero o más apariciones de los patrones especificados.
+(ListaPatrones) Busca la coincidencia de una o más apariciones de los patrones especificados.
@(ListaPatrones) Busca la coincidencia de exactamente uno de los patrones especificados.
!(ListaPatrones) Busca la coincidencia de cualquier elemento, excepto de uno de los patrones
especificados.

La coincidencia con patrones tiene algunas restricciones. Si el primer carácter del nombre de un archivo
es un punto (.), éste sólo puede coincidir con un patrón que también empiece por un punto. Por ejemplo, *
coincide con los nombres de archivos myfile y yourfile, pero no con los nombres de archivos .myfile y
.yourfile. Para buscar la coincidencia con estos archivos, utilice un patrón como, por ejemplo, el
siguiente:
.*file

Si un patrón no coincide con ninguno de los nombres de archivos, el propio patrón se devuelve como el
resultado de la coincidencia que se ha intentado realizar.

Los nombres de los archivos y de los directorios no deben contener los caracteres *, ? , [ o ] ya que éstos
pueden provocar una repetición infinita (es decir, bucles infinitos) durante los intentos de búsqueda de
patrones de coincidencia.

Eliminación de delimitadores
Los caracteres delimitadores, la barra inclinada invertida (\), el apóstrofo (’) y las comillas dobles (″) que
incluía la palabra original se eliminarán, a menos que, a su vez, se especifiquen entre delimitadores.
v “Información relacionada con el shell Korn” en la página 209

180 Guía del usuario del sistema: Sistema operativo y dispositivos


Redirección de entrada y de salida en el shell Korn o shell POSIX
Antes de ejecutar un mandato, el shell Korn explora la línea de mandatos en busca de caracteres de
redirección. Estas notaciones especiales indican al shell que redirija la entrada y la salida. Los caracteres
de redirección pueden aparecer en un mandato simple o pueden preceder o seguir a un mandato. No se
pasan al mandato llamado.

El shell realiza la sustitución del mandato y del parámetro antes de utilizar el parámetro Palabra o Dígito,
excepto en los casos indicados. La sustitución de nombres de archivo sólo se produce si el patrón
coincide con un solo archivo y no se efectúa interpretación de blancos.

<Palabra Utiliza el archivo que especifica el parámetro Palabra como entrada estándar (descriptor de archivo
0).
>Palabra Utiliza el archivo que especifica el parámetro Palabra como salida estándar (descriptor de archivo
1). Si el archivo no existe, el shell lo crea. Si el archivo existe y se ha especificado la opción
noclobber, se produce un error; de lo contrario, el archivo se trunca en la longitud cero.
>|Palabra El igual que el mandato >Palabra, a excepción de que esta sentencia de redirección altera
temporalmente la opción noclobber.
> >Palabra Utiliza el archivo que especifica el parámetro Palabra como salida estándar. Si el archivo existe
actualmente, el shell añade la salida al mismo (buscando primero el carácter de fin de archivo). Si
el archivo no existe, el shell lo crea.
<>Palabra Abre el archivo que especifica el parámetro Palabra para su lectura y grabación como entrada
estándar.
<<[-]Palabra Lee cada línea de la entrada del shell hasta que localiza una línea que contiene únicamente el
valor del parámetro Palabra o un carácter de fin de archivo. El shell no efectúa sustitución de
parámetros, sustitución de mandatos o sustitución de nombres de archivo en el archivo
especificado. El documento que resulta, denominado documento de entrada en línea, pasa a ser la
entrada estándar. Para obtener más información acerca de un documento de entrada en línea,
consulte el apartado “Documentos de entrada en línea (here)” en la página 47. Si algún carácter
del parámetro Palabra está delimitado, no se realizará ninguna interpretación de los caracteres del
documento.

El documento presente se interpreta como una sola palabra que comienza después del carácter de nueva
línea y continúa hasta que hay una línea que contiene únicamente el delimitador, sin caracteres en blanco
finales. De este modo, comienza, si existe, el siguiente documento presente. El formato es:
[n]<<palabra
documento de entrada en línea
delimitador

Si algún carácter de la palabra está delimitado, el delimitador se forma eliminando el carácter de


delimitación de la palabra. Las líneas del documento presente no se expandirán. De lo contrario, el
delimitador es la propia palabra. Si ninguno de los caracteres de la palabra está delimitado, se expandirán
todas las líneas del documento de entrada en línea para la expansión del parámetro, sustitución del
mandato y expansión aritmética.

El shell efectúa sustitución de parámetros para los datos redirigidos. Para evitar que el shell interprete los
caracteres \, $ y la comilla simple (’) y el primer carácter del parámetro Palabra, especifique un carácter \
delante de los caracteres.

Si se añade un - a <<, el shell eliminará todas las tabulaciones iniciales del parámetro Palabra y del
documento.

<&Dígito Duplica la entrada estándar del descriptor de archivo especificado por el parámetro
Dígito.
>&Dígito Duplica la salida estándar del descriptor de archivo que especifica el parámetro Dígito.
<&- Cierra la entrada estándar.
>&- Cierra la salida estándar.

Capítulo 11. Shells 181


<&p Mueve la entrada del coproceso a la entrada estándar.
>&p Mueve la salida del coproceso a la salida estándar.

Si una de estas opciones de redirección va precedida de un dígito, el dígito especifica el número de


descriptor de archivo al que se hace referencia (en lugar del valor por omisión de 0 ó 1). En el siguiente
ejemplo, el shell abre el descriptor de archivo 2 para grabar como duplicado del descriptor de archivo 1:
... 2>&1

El orden en que se especifica la redirección es importante. El shell evalúa la redirección, de acuerdo con
la asociación (DescriptorArchivo, Archivo), en el momento de realizar la evaluación. Por ejemplo, en la
sentencia:
... 1>Archivo 2>&1

el descriptor de archivo 1 está asociado al archivo que especifica el parámetro Archivo. El shell asocia el
descriptor de archivo 2 al archivo que se asocia al descriptor de archivo 1 (Archivo). Si se invirtiera el
orden de las redirecciones, el descriptor de archivo 2 se asociaría al terminal (dando por supuesto que
anteriormente hubiera sido el descriptor de archivo 1) y el descriptor de archivo 1 se asociaría al archivo
que especifica el parámetro Archivo.

Si un mandato va seguido de un & y el control de trabajos no está activo, la entrada estándar por omisión
para el mandato es el archivo vacío, /dev/null. De lo contrario, el entorno para la ejecución de un
mandato contiene los descriptores de archivo del shell que efectúa la llamada mediante las
especificaciones de entrada y de salida.

Para obtener más información acerca de la redirección, consulte el “Capítulo 4. Redirección de entrada y
salida” en la página 43.

Recurso de coproceso
El shell Korn, o shell POSIX, le permite ejecutar uno o más mandatos como procesos en segundo plano.
Estos mandatos, que se ejecutan desde un script de shell, se denominan coprocesos. Los coprocesos
son útiles cuando desea comunicar con un programa.

Un coproceso se designa colocando el operador |& detrás de un mandato. Tanto la entrada como la
salida estándar del mandato se enlazan con el script.

Un coproceso debe cumplir con las siguientes restricciones:


v Incluir un carácter de nueva línea al final de cada mensaje
v Enviar cada mensaje de salida a la salida estándar
v Borrar su salida estándar después de cada mensaje.

El siguiente ejemplo demuestra cómo se pasa la entrada y se devuelve desde un coproceso:


echo "Proceso inicial"
./FileB.sh |&
read -p a b c d
echo "Leer desde coproceso: $a $b $c $d"
print -p "Pasado al coproceso"
read -p a b c d
echo "Pasado nuevamente desde el coproceso: $a $b $c $d"
FileB.sh
echo "El coproceso está ejecutándose"
read a b c d
echo $a $b $c $d

La salida estándar resultante es:

182 Guía del usuario del sistema: Sistema operativo y dispositivos


Proceso inicial
Leer desde coproceso: El coproceso está ejecutándose
Pasado nuevamente desde el coproceso: Pasado al coproceso

El mandato print -p le permite escribir en el coproceso. Para leer desde el coproceso, emita el mandato
read -p.

Redirección de la entrada y salida del coproceso


La entrada y salida estándar de un coproceso se reasigna a un descriptor de archivo numerado utilizando
la redirección de E/S. Por ejemplo, el mandato:
exec 5>&p

mueve la entrada del coproceso al descriptor de archivo 5.

Una vez se ha efectuado esta operación, puede utilizar la sintaxis de redirección estándar para redirigir la
salida del mandato al coproceso. También puede iniciar otro coproceso. La salida de ambos coprocesos
se asocia al mismo conducto y se lee con el mandato read -p. Para detener el coproceso, escriba:
read -u5

Estado de la salida en el shell Korn o shell POSIX


Los errores detectados por el shell, por ejemplo errores de sintaxis, hacen que el shell devuelva un
estado de salida distinto a cero. De lo contrario, el shell devuelve el estado de salida del último mandato
llevado a cabo. El shell informa de errores detectados durante la ejecución imprimiendo el mandato o
nombre de función y la condición de error. Si el número de la línea en la que se ha producido un error es
mayor que 1, el número de la línea también se imprime entre [ ] (corchetes) tras el nombre del mandato o
de la función.

En el caso de un shell no interactivo, un error que haya encontrado un mandato incorporado especial u
otro tipo de mandato dará lugar a que el shell grabe un mensaje de diagnóstico, como el que se muestra
en la tabla siguiente:

Error Especial incorporado Otros programas de


utilidad
Error de sintaxis de lenguaje del shell saldrá saldrá
Error de sintaxis del programa de utilidad (error en opción u saldrá no saldrá
operando)
Error de redirección saldrá no saldrá
Error de asignación de variable saldrá no saldrá
Error de expansión saldrá no saldrá
Mandato no encontrado no se aplica podría salir
Script de punto no encontrado saldrá no se aplica

Si alguno de los errores se muestra como ″finalizará (puede finalizar)″ se produce en un subshell, el
subshell finalizará (puede finalizar) con un estado distinto a cero, pero el script que contiene el subshell
no finalizará a causa del error.

En todos los casos que se muestran en la tabla, un shell interactivo grabará un mensaje de diagnóstico
en el error estándar, sin finalizar.

Para obtener más información acerca de la redirección, consulte el apartado ″“Redirección de entrada y
de salida en el shell Korn o shell POSIX” en la página 181″.

Capítulo 11. Shells 183


v “Información relacionada con el shell Korn” en la página 209

Mandatos del shell Korn o shell POSIX


El shell Korn es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Se
ajusta a la Interfaz de Sistema Operativo Portable para Entornos del Sistema (POSIX), un estándar
internacional para sistemas operativos. POSIX no es un sistema operativo, sino que es un estándar cuya
finalidad es facilitar la portabilidad de las aplicaciones, en el nivel del fuente, entre muchos sistemas. Las
funciones de POSIX se crean al principio del shell Korn. El shell Korn (también conocido como el shell
POSIX) ofrece muchas de las mismas funciones de los shells Bourne y C, por ejemplo posibilidades de
redirección E/S, sustitución de variables y sustitución de nombres de archivo. También incluye algunas
funciones de mandatos y de programación adicionales:

Evaluación aritmética El shell Korn, o shell POSIX, puede efectuar aritmética de enteros utilizando el mandato let
incorporado, utilizando cualquier base de 2 a 36. En el apartado “Evaluación aritmética en el
shell Korn o shell POSIX” en la página 177 se proporciona una descripción más detallada de
esta función.
Histórico de El shell Korn o shell POSIX almacena un archivo que registra todos los mandatos que entre.
mandatos Puede utilizar un editor de texto para alterar un mandato en este archivo histórico y volver a
emitir el mandato. Para obtener más información acerca de la función del histórico de
mandatos, consulte el apartado “Histórico de mandatos del shell Korn o shell POSIX” en la
página 185.
Recurso de En el apartado “Recurso de coproceso” en la página 182 se proporciona información que le
coproceso permitirá ejecutar programas como procesos de fondo y enviar y recibir información para
esos procesos de fondo.
Edición El shell Korn o shell POSIX ofrece opciones de edición en línea que le permiten editar la
línea de mandatos. Están disponibles editores similares a emacs, gmacs y vi. En el apartado
“Edición en línea en el shell Korn o shell POSIX” en la página 200 se proporciona una
descripción más detallada de esta función.

En este apartado se explica lo siguiente:


v “Entorno del shell Korn”
v “Inicio del shell” en la página 185
v “Histórico de mandatos del shell Korn o shell POSIX” en la página 185

Entorno del shell Korn


Todas las variables (y los valores que se asocian a éstas) que un mandato reconoce al inicio de su
ejecución constituyen su entorno. Este entorno incluye variables que un mandato hereda de sus variables
y proceso padre especificados como palabras clave en la línea de mandatos que llama al mandato. El
shell interactúa con el entorno de varios modos. Cuando se inicia, el shell explora el entorno y crea un
parámetro para cada nombre encontrado, dando al parámetro el valor correspondiente y marcándolo para
exportación. Los mandatos ejecutados heredan el entorno.

Si modifica los valores de los parámetros del shell o crea nuevos valores utilizando los mandatos export
o typeset -x, los parámetros formarán parte del entorno. Por lo tanto, desde el punto de vista de cualquier
mandato ejecutado, el entorno se compone de pares nombre-valor originalmente heredados por el shell,
cuyos valores podría modificar el shell actual, además de cualquier adición que resulte de la utilización de
los mandatos export o typeset -x. El mandato ejecutado (subshell) verá las modificaciones que crea para
las variables de entorno que ha heredado, pero necesitará exportar dichas variables para sus shells o
procesos hijo para ver los valores modificados.

184 Guía del usuario del sistema: Sistema operativo y dispositivos


El entorno para cualquier mandato o función simple se modifica prefijando con una o más asignaciones
de parámetros. Un argumento de asignación de un parámetro es una palabra en el formato
Identificador=Valor.De este modo, las dos expresiones siguientes son equivalentes (en lo que respecta a
la ejecución del mandato).
TERM=450 Mandato argumentos
(export TERM; TERM=450; Mandato argumentos)

Si se ha establecido el distintivo -k, todos los argumentos de asignaciones de parámetros se colocan en


el entorno, incluso si aparecen después del nombre del mandato. Lo siguiente primero imprime a=b c y
después c:
echo a=b c
set -k
echo a=b c

Nota: Esta función está pensada para utilizarse con los scripts que se han escrito para versiones
anteriores del shell. Se recomienda encarecidamente que no se utilice en scripts nuevos.

Inicio del shell


Puede iniciar el shell Korn con el mandato ksh o con el mandato psh (shell POSIX).

Si el shell se inicia mediante el mandato exec y el primer carácter del argumento cero ($0) es el guión (-),
se da por supuesto que el shell es un shell de inicio de sesión. El shell primero lee los mandatos del
archivo /etc/profile y, a continuación, del archivo .profile del directorio actual o del archivo
$HOME/.profile, si existe uno de estos archivos. Seguidamente, el shell lee los mandatos del archivo
indicado realizando la sustitución de parámetros en el valor de la variable de entorno ENV, si existe el
archivo.

Si especifica el parámetro Archivo [Parámetro] al invocar al shell Korn o al shell POSIX, el shell ejecuta el
archivo de script que identifica el parámetro Archivo, incluidos los parámetros especificados. El archivo de
script especificado debe tener permiso de lectura; los valores setuid y setgid se pasan por alto. El shell
lee a continuación los mandatos.

Nota: No especifique un archivo de script con los distintivos -c o -s.

Consulte el apartado “Sustitución de parámetros en el shell Korn o shell POSIX” en la página 172 para
obtener más información acerca de los parámetros de posición.

Indicador del shell


Cuando se utiliza de forma interactiva, el shell realiza una solicitud con el valor del parámetro PS1 antes
de leer un mandato. Si en cualquier momento se entra una nueva línea y el shell requiere más entrada
para poder completar un mandato, el shell emite el indicador secundario (el valor del parámetro PS2).

Histórico de mandatos del shell Korn o shell POSIX


El shell Korn o POSIX guarda los mandatos entrados desde el dispositivo de terminal en un archivo
histórico. Si se ha establecido, el valor de la variable HISTFILE es el nombre del archivo histórico. Si la
variable HISTFILE no se ha establecido o no puede escribirse, el archivo histórico que se utiliza es
$HOME/.sh_history. Si el archivo histórico no existe y el shell Korn no puede crearlo o si no existe y el
shell Korn no tiene permiso para añadirlo, el shell Korn utiliza un archivo temporal como archivo histórico.
El shell accede a los mandatos de todos los shells interactivos utilizando el archivo histórico indicado con
permisos apropiados.

Capítulo 11. Shells 185


Por omisión, el shell Korn o POSIX guarda el texto de los 128 últimos mandatos entrados desde un
dispositivo de terminal. El tamaño del archivo histórico (especificado por la variable HISTSIZE) no está
limitado, aunque un archivo histórico muy grande puede hacer que el shell Korn se arranque muy
lentamente.

Sustitución del histórico de mandatos


Utilice el mandato incorporado fc para listar o editar partes del archivo histórico. Para seleccionar una
parte del archivo a editar o listar, especifique el número del primer carácter o caracteres del mandato.
Puede especificar un solo mandato o un rango de mandatos.

Si no especifica un programa editor como argumento para el mandato incorporado normal fc, se utiliza el
editor que especifica la variable FCEDIT. Si no se ha definido la variable FCEDIT, se utiliza el archivo
/usr/bin/ed. El mandato o mandatos editados se imprimen y ejecutan cuando sale del editor.

El guión del nombre del editor (-) se utiliza para saltar la fase de edición y volver a ejecutar el mandato.
En este caso, puede utilizarse un parámetro de sustitución en el formato Antiguo=Nuevo para modificar el
mandato antes de que se ejecute. Por ejemplo, si para r se especifica el alias fc -e -, cuando se escriba
r bad=good c se ejecutará el mandato más reciente que empiece por la letra c y se sustituirá la primera
aparición de la serie bad por la serie good.

Para obtener más información acerca de la utilización del mandato de shell history, consulte el apartado
“Listado de los mandatos entrados anteriormente (mandato de shell history)” en la página 26 y el mandato
fc en la publicación AIX 5L Version 5.1 Commands Reference.

Mandatos incorporados del shell Korn o shell POSIX


Los mandatos especiales se crean en el shell Korn y en el shell POSIX y se ejecutan en el proceso de
shell. A menos que se indique algo distinto, la salida se graba en el descriptor de archivo 1 y el estado de
la salida es cero (0) si el mandato no contiene ningún error de sintaxis. Se permite la redirección de
entrada y de salida. Existen dos tipos de mandatos incorporados, los mandatos incorporados especiales y
los mandatos incorporados normales.

Consulte el apartado “Lista de mandatos incorporados del shell Korn o shell POSIX” en la página 197 para
ver un listado alfabético de estos mandatos.

Los mandatos especiales incorporados se diferencian de los mandatos normales incorporados de este
modo:
v Un error de sintaxis en un mandato incorporado especial podría dar lugar a la finalización del shell que
ejecuta el mandato. Esto no ocurre si se produce un error de sintaxis en un mandato normal
incorporado. Si un error de sintaxis en un mandato especial incorporado no finaliza el programa de
shell, el valor de salida es distinto de cero.
v Las asignaciones de variables especificadas con mandatos especiales incorporados permanecen
vigentes después de que se complete el mandato. Esta situación no se produce con los mandatos
normales incorporados.
v Las redirecciones de E/S se procesan después de las asignaciones de parámetros.

Además, las palabras que están en el formato de una asignación de parámetro a continuación de los
mandatos especiales export, readonly y typeset se expanden con las mismas normas que la asignación
de un parámetro. Esto significa que la sustitución de la tilde se realiza después de = y que la subdivisión
de palabras y la sustitución del nombre del archivo no se realizan.

Descripciones de los mandatos incorporados especiales


El shell Korn proporciona los siguientes mandatos especiales incorporados:

186 Guía del usuario del sistema: Sistema operativo y dispositivos


: eval newgrp shift
. exec readonly times
break exit return trap
continue export set typeset
unset

: [Argumento ...] Expande únicamente argumentos. Se utiliza cuando se necesita un mandato, como en la
condición then de un mandato if, pero cuando el mandato no ha de realizar ninguna acción.
. Archivo [Argumento Lee el archivo completo especificado y a continuación ejecuta los mandatos. Los mandatos
...] se ejecutan en el entorno de shell actual. La vía de búsqueda que especifica la variable
PATH se utiliza para buscar el directorio que contiene el archivo especificado. Si se
especifican argumentos, pasan a ser los parámetros posicionales. De lo contrario, los
parámetros posicionales permanecen intactos. El estado de salida es el estado del último
mandato ejecutado. Consulte el apartado “Sustitución de parámetros en el shell Korn o shell
POSIX” en la página 172 para obtener más información acerca de los parámetros de
posición.

Nota: El mandato .Archivo [Argumento ...] lee todo el archivo antes de que se ejecuten
los mandatos. Por lo tanto, los mandatos alias y unalias del archivo no se aplican a
las funciones que se definen en el archivo.
break [n] Sale del bucle de delimitación for, while, until o select, si existe uno. Si especifica el
parámetro n, el mandato realizará interrupciones basándose en el número de niveles que se
especifica mediante el parámetro n. El valor de n puede ser cualquier entero igual o mayor
que 1.
continue [n] Reanuda la siguiente iteración del bucle de delimitación for, while, until o select. Si
especifica la variable n, el mandato se reanudará en el bucle delimitador que ocupe la
posición n. El valor de n puede ser cualquier entero igual o mayor que 1.
eval [Argumento ...] Lee los argumentos especificados como entrada al shell y ejecuta el mandato o mandatos
resultantes.
exec [Argumento ...] Ejecuta un mandato especificado por el argumento en lugar de este shell (sin crear un
proceso nuevo). Los argumentos de entrada y salida pueden aparecer y afectar al proceso
actual. Si no especifica un argumento, el mandato exec modificará los descriptores de
archivos de conformidad con la lista de redirección de entrada y salida. En este caso,
cuando haya más de dos descriptores de archivo que se abren con este mecanismo se
cierra cuando se llama a otro programa.
exit [n] Sale del shell con el estado de salida que especifica el parámetro n. El parámetro n debe ser
un entero decimal sin signo entre el 0 y el 255. Si omite el parámetro n, el estado de salida
será el del último mandato ejecutado. Un carácter de fin de archivo también provoca la salida
del shell, a menos que se haya activado la opción ignoreeof del mandato especial set.
export -p [Nombre[= Marca los nombres especificados para su exportación automática al entorno de los mandatos
Valor]] ... que se ejecutarán posteriormente.

-p graba en salida estándar los nombres y valores de todas las variables exportadas, en el
formato siguiente:
"export %s= %s\n", <nombre> <valor>
newgrp [Grupo] Equivale al mandato exec/usr/bin/newgrp [Grupo].

Nota: Este mandato no tiene retorno.


readonly -p [Nombre[= Marca los nombres que especifica el parámetro Nombre como de sólo lectura. Ninguna
Valor]] ... asignación posterior puede cambiar estos nombres.

-p graba en salida estándar los nombres y valores de todas las variables exportadas, en el
formato siguiente:
"export %s= %s\n", <nombre> <valor>
return [n] Hace que la función de un shell vuelva al script de llamada. El estado de retorno se
especifica mediante la variable n. Si omite la variable n, el estado de retorno será el del
último mandato ejecutado. Si invoca el mandato return fuera de una función o de un script,
será igual al de un mandato exit.

Capítulo 11. Shells 187


set [+ Si no se especifica ninguna opción o argumento, el mandato set graba los nombres y los
|-abCefhkmnostuvx ] valores de todas las variables de shell en el orden de clasificación del entorno local actual.
[+ |-o Opción]... [+ |-A Cuando se especifican opciones, definirán o eliminarán la definición de atributos del shell,
Nombre] [Argumento como se describe a continuación. Cuando se especifican argumentos, estos permitirán definir
...] o eliminar la definición de parámetros posicionales, tal como se describe a continuación. Los
distintivos de este mandato se interpretan como se indica a continuación:
-A
Asignación de matriz. Elimina el establecimiento del parámetro Nombre y asigna
valores secuencialmente a partir de la lista del parámetro Argumento que se ha
especificado. Si se utiliza el distintivo +A, no se eliminará primer el establecimiento
del parámetro Nombre.
-a Exporta automáticamente todos los parámetros posteriores que se definan.
-b Notifica al usuario las finalizaciones de trabajos asíncronos o en segundo plano.
-C Equivalente a set -o noclobber.
-e Ejecuta la ruptura ERR, si se ha establecido, y sale si un mandato tiene un estado
de salida que no es cero. Esta modalidad está inhabilitada mientras se leen perfiles.
-f Inhabilita la sustitución de nombres de archivo.
-h Designa cada mandato como un seudónimo con seguimiento la primera vez que se
encuentra.
-k Sitúa todos los argumentos de asignación de parámetros del entorno de 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
(consulte el apartado “Control de trabajos en el shell Korn o shell POSIX” en la
página 199.)
-n Lee mandatos y comprueba si existen errores de sintaxis, pero no los ejecuta. Este
distintivo se ignora para shells interactivos.

188 Guía del usuario del sistema: Sistema operativo y dispositivos


-o Opción
Imprime los valores actuales de la opción y un mensaje de error si no especifica un
argumento. Puede establecer más de una opción en una única línea de mandatos
ksh. Si se utiliza el distintivo +o, se elimina el establecimiento de la opción
especificada. Los argumentos, como especifica la variable Opción, pueden ser uno
de los 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.
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.
ignoreeof
No sale del shell cuando encuentra un carácter de fin de archivo. Para salir
del shell, debe utilizar el mandato exit o pulsar la secuencia de teclas
Control-D más de 11 veces.
keyword
Es igual al distintivo -k.

Nota: Este distintivo se ha mantenido únicamente para conservar la


compatibilidad con las versiones anteriores del shell Bourne. Se
desaconseja su uso.
markdirs
Añade una / a todos los nombres de directorio que son el resultado de una
sustitución de nombre de archivo.
monitor
Igual que el distintivo -m.
noclobber
Impide que la redirección trunque archivos existentes. Cuando especifique
esta opción, deberá existir una barra vertical a continuación del símbolo de
redirección (>|) para permitir el truncamiento de un archivo.
noexec
Igual que el distintivo -n.
noglob
Igual que el distintivo -f.
nolog Impide que se guarden las definiciones de funciones en el archivo histórico.
nounset
Igual que el distintivo -u.
privileged
Igual que el distintivo -p.

Capítulo 11. Shells 189


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 entra el carácter de escape 033, situará el editor
en 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.
-p Inhabilita el proceso del archivo $HOME/.profile y utiliza el archivo /etc/suid
_profile en lugar del archivo ENV. Esta modalidad se habilita siempre que el ID de
usuario vigente (UID) o ID de grupo (GID) no sea igual que el UID o GID real.
Desactivar esta opción define el UID o GID vigente en el UID y GUI real.

Nota: El sistema no soporta la opción -p, ya que el sistema operativo no


soporta los scripts de shell setuid.
-s Ordena los parámetros posicionales lexicográficamente.
-t Sale después de leer y ejecutar un mandato.

Nota: Este distintivo se ha mantenido únicamente para conservar la


compatibilidad con las versiones anteriores del shell Bourne. Se desaconseja
su uso.
-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 y sus argumentos a medida que se ejecutan.
- Desactiva los distintivos -x y -v y detiene el examen de argumentos para distintivos.
— Impide que se modifique ningún distintivo. Esta opción es útil para establecer el
parámetro $1 en un valor que empiece por un -. Si no hay ningún argumento que
siga a este distintivo, no se definen los parámetros posicionales.

Si delante de cualquier distintivo del mandato set se especifica un signo + en lugar de un


signo -, el distintivo quedará desactivado. Puede utilizar estos distintivos cuando llame al
shell. El conjunto actual de distintivos se encuentra en el parámetro $-. A menos que
especifique el distintivo -A, los argumentos restantes son parámetros posicionales y se les
asigna, por orden, $1, $2, ..., etc. Si no se proporciona ningún argumento, los nombres y los
valores de todos los parámetros con nombre se imprimirán en la salida estándar.
shift [n] Renombra los parámetros posicionales, comenzando por $n+1 ... hasta $1 ... El valor por
omisión del parámetro n es 1. El parámetro n es cualquier expresión aritmética que se
evalúe en un número no negativo menor que o igual al parámetro $#.
times Imprime las horas de usuario y del sistema totales para el shell y para procesos que se
ejecutan desde el shell.

190 Guía del usuario del sistema: Sistema operativo y dispositivos


trap [Mandato] [Señal] Ejecuta el mandato especificado cuando el shell recibe la señal o señales especificadas. El
... parámetro Mandato se lee una vez cuando se establece la ruptura y una vez cuando se
toma la ruptura. El parámetro Señal puede especificarse como un número o como el nombre
de la señal. Los mandatos de ruptura se ejecutan en orden de número de señal. Cualquier
intento de definir una ruptura o una señal que se ignoró en la entrada al shell actual no es
efectivo.

Si el mandato es un -, todas las rupturas volverán a establecerse en sus valores originales.


Si omite el mandato y la primera señal es un número de señal numérica, el mandato ksh
volverá a establecer el valor del parámetro o parámetros Señal en los valores originales.

Nota: Si omite el mandato y la primera señal es un nombre simbólico, la señal se


interpreta como un mandato.

Si el valor del parámetro Señal es la señal ERR, el mandato especificado se ejecutará


siempre que un mandato tenga un estado de salida que no sea cero. Si la señal es DEBUG,
el mandato especificado se ejecutará después de cada mandato. Si el valor del parámetro
Señal es la señal 0 o EXIT y el mandato trap se ejecuta dentro del cuerpo de una función, el
mandato especificado se ejecutará tras completarse la función. Si el parámetro Señal es 0 o
EXIT para un mandato trap establecido fuera de cualquier función, el mandato especificado
se ejecutará al salir del shell. El mandato trap sin argumentos imprime una lista de
mandatos asociados con cada número de señal.

Para obtener una lista completa de los valores del parámetro Señal, que se utilizan en el
mandato trap sin el prefijo SIG, consulte la subrutina sigaction, sigvec o signal en la
publicación AIX 5L Version 5.1 Technical Reference: Base Operating System and Extensions
Volume 2.

Capítulo 11. Shells 191


typeset [+HLRZfilrtux Define atributos y valores para parámetros de shell. Cuando se invoca dentro de una
[n]] [Nombre[= Valor]] función, se crea una nueva instancia del parámetro Nombre. El valor y el tipo del parámetro
... se restauran cuando se completa la función. Con el mandato typeset, puede especificar los
distintivos siguientes:
-H Proporciona correlación AIX a archivo del sistema principal en máquinas que no son
AIX.
-L Justifica el texto por la izquierda y elimina los blancos iniciales del parámetro Valor.
Si el parámetro n tiene un valor que no es cero, define la anchura del campo; de lo
contrario, se determina utilizando la anchura del valor de su primera asignación.
Cuando se asigna el parámetro, se rellena por la derecha con blancos o se trunca,
si es necesario, para que encaje en en campo. Los ceros iniciales se eliminan si
también se ha establecido el distintivo -Z. El distintivo -R se desactiva.
-R Justifica por la derecha y rellena con blancos iniciales. Si el parámetro n tiene un
valor que no es cero, define la anchura del campo; de lo contrario, se determina
utilizando la anchura del valor de su primera asignación. El campo permanece
rellenado con blancos o se trunca desde el final si se reasigna el parámetro. El
distintivo L se desactiva.
-Z Justifica el texto por la derecha y lo rellena con ceros iniciales si el primer carácter
que no es un blanco es un dígito y no se ha establecido el distintivo -L. Si el
parámetro n tiene un valor distinto de cero, define la anchura del campo; de lo
contrario, está determinada por la anchura del valor de su primera asignación.
-f Indica que los nombres hacen referencia a los nombres de funciones, en lugar de
nombres de parámetros. No pueden realizarse asignaciones y los otros distintivos
válidos son -t, -u y -x. El distintivo -t activa el rastreo de ejecución para esta
función. El distintivo -u hace que esta función se marque como no definida. La
definición de función se busca en la variable FPATH cuando se hace referencia a la
función. El distintivo -x permite dejar en vigor la definición de función entre scripts
de shell que no son una llamada independiente del mandato ksh.
-i Identifica el parámetro como un entero, con una aritmética más rápida. Si el
parámetro n tiene un valor que no es cero, define la base aritmética de salida; de lo
contrario, la primera asignación determina la base de salida.
-l Convierte todos los caracteres mayúsculas en minúsculas. El distintivo de
conversión en mayúsculas -u está desactivado.
-r Marca los nombres que especifica el parámetro Nombre como de sólo lectura.
Ninguna asignación posterior puede cambiar estos nombres.

-t Identifica los parámetros designados. El usuario puede definir los y no tiene ningún
significado especial para el shell.
-u Convierte todos los caracteres en minúsculas a caracteres mayúsculas. El distintivo
de minúsculas -l está desactivado.
-x Marca el nombre que especifica el parámetro Nombre para su exportación
automática al entorno de los mandatos que se ejecutarán posteriormente.
La utilización de un signo + en lugar de un signo - desactiva los distintivos del
mandato typeset. Si no especifica parámetros Nombre pero sí especifica distintivos,
se imprimirá una lista de los nombres (y, opcionalmente, de los valores) de los
parámetros en los que se han establecido esos distintivos. (La utilización de un
signo + en lugar de un signo - impide que se impriman los valores.) Si no especifica
nombres ni distintivos, se imprimen los nombres y atributos de todos los
parámetros.

192 Guía del usuario del sistema: Sistema operativo y dispositivos


unset [-fv ] Nombre ... Elimina la definición de los valores y atributos de los parámetros proporcionados por la lista
de nombres. Si se especifica -v, Nombre hará referencia a un nombre de variable y el shell
eliminará su establecimiento y luego lo eliminará del entorno. No puede eliminarse la
definición de las variables de sólo lectura. La eliminación del establecimiento de las variables
ERRNO, LINENO, MAILCHECK, OPTARG, OPTIND, RANDOM, SECONDS, TMOUT y
subrayado ( _) eliminará sus significados especiales, aunque se asignen posteriormente.

Si se define el distintivo -f, Nombre hace referencia al nombre de una función y el shell
eliminará la definición de la función.

Descripciones de mandatos incorporados normales


El shell Korn proporciona los siguientes es incorporados:

alias fg print ulimit


bg getopts pwd umask
cd jobs read unalias
command kill setgroups wait
echo let test whence
fc

alias [-t ] [-x ] Crea o redefine las definiciones de alias o graba definiciones de alias existentes en la salida
[NombreAlias[=Serie]] estándar.
...
Para obtener más información, consulte el mandato alias en la publicación AIX 5L Version
5.1 Commands Reference.
bg [IDTrabajo...] Sitúa el trabajo especificado en segundo plano. El trabajo actual se establece como trabajo
de fondo si el parámetro IDTrabajo no se ha especificado. Consulte el apartado “Control de
trabajos en el shell Korn o shell POSIX” en la página 199 para obtener más información
acerca del control de trabajos.

Para obtener más información acerca de la ejecución de los trabajos como trabajos de
fondo, consulte el mandato bg en la publicación AIX 5L Version 5.1 Commands Reference.
cd [Argumento]
cd Viejo Nuevo Este mandato puede estar en uno de los dos formatos. En el primer formato, cambia del
directorio actual al directorio que especifica el parámetro Argumento. Si el valor del
parámetro Argumento es -, se cambia al directorio anterior. La variable de shell HOME es el
valor por omisión del parámetro Argumento. La variable PWD se establece en el valor del
directorio actual.

La variable de shell CDPATH define cada vía de búsqueda del directorio que contiene el
valor del parámetro Argumento. Los nombres de los directorios alternativos se separan por
medio de un carácter :. La vía de acceso por omisión es nula, especificando el directorio
actual. El directorio actual está especificado por un nombre de vía de acceso nulo, que
aparece inmediatamente después del signo de igual o entre los delimitadores de dos puntos
en cualquier parte de la lista de vías de acceso. Si el argumento especificado empieza por
una /, no se utiliza la vía de búsqueda. De lo contrario, se busca en todos los directorios de
la vía de acceso.

El segundo formato del mandato cd sustituye la serie que especifica la variable Nuevo por la
serie que especifica la variable Viejo para el nombre del directorio actual, PWD, e intenta
cambiar al nuevo directorio.
command [-p ]
NombreMandato
[Argumento ...]
command [-v | -V ] Command hace que el shell trate al mandato y argumentos especificados como si fueran un
NombreMandato mandato simple, suprimiendo la búsqueda de función del shell.

Para obtener más información, consulte el mandato command en la publicación AIX 5L


Version 5.1 Commands Reference.

Capítulo 11. Shells 193


echo [Serie ...] Graba series de caracteres a salida estándar. Consulte el mandato echo para obtener
información acerca de su utilización y conocer su descripción. El distintivo -n no está
soportado.
fc [-r ] [-e Editor]
[Primero [Último]]
fc -l [-n ] [-r ] [Primero
[Último]]
fc -s [Viejo= Nuevo] Muestra el contenido del archivo histórico de mandatos o llama a un editor para efectuar
[Primero] modificaciones y vuelve a ejecutar mandatos entrados anteriormente en el shell.

Para obtener más información, consulte el mandato fc en la publicación AIX 5L Version 5.1
Commands Reference.
fg [IDTrabajo] Sitúa cada trabajo especificado en el primer plano. Si no especifica ningún trabajo, el
mandato sitúa el trabajo actual en el primer plano.

Para obtener más información acerca de la ejecución de los trabajos como trabajos en
primer plano, consulte el mandato fg en la publicación AIX 5L Version 5.1 Commands
Reference.
getopts SerieOpción Comprueba el parámetro Argumento en busca de opciones legales.
Nombre [Argumento ...]
Para obtener más información, consulte el mandato getopts en la publicación AIX 5L Version
5.1 Commands Reference.
jobs [-l | -n | -p ] Muestra el estado de trabajos iniciados en el entorno de shell actual. Si no es ha
[IDTrabajo ...] especificado ningún trabajo específico con el parámetro IDTrabajo, se visualiza la
información de estado de todos los trabajos activos. Si se informa de la finalización de un
trabajo, el shell elimina el ID del proceso de dicho trabajo de la lista de los que conoce el
entorno de shell actual.

Para obtener más información, consulte el mandato jobs en la publicación AIX 5L Version
5.1 Commands Reference.

kill [ -s { NombreSeñal Envía una señal (por omisión, la señal SIGTERM) a un proceso en ejecución. Esta acción
| NúmeroSeñal } ] por omisión normalmente detiene los procesos. Si desea detener un proceso, especifique el
IDProceso... ID del proceso (PID) en la variable IDProceso. El shell informa al PID de cada proceso que
kill [ -NombreSeñal | está ejecutándose en segundo plano (a menos que inicie más de un proceso en un
-NúmeroSeñal ] conducto, en cuyo caso el shell informa del número del último proceso). También puede
IDProceso... utilizar el mandato ps para localizar el número de ID de proceso de mandatos.
kill -l [ EstadoSalida ] Lista nombres de señales.

Para obtener más información, consulte el mandato kill en la publicación AIX 5L Version 5.1
Commands Reference.
let Expresión ... Evalúa expresiones aritméticas especificadas. El estado de salida es 0 si el valor de la última
expresión es distinto de cero y 1 si sucede lo contrario. Consulte el apartado “Evaluación
aritmética en el shell Korn o shell POSIX” en la página 177 para obtener más información.

194 Guía del usuario del sistema: Sistema operativo y dispositivos


print [-Rnprsu [n]] Imprime la salida del shell. Si no ha especificado ningún distintivo, o si se han especificado
[Argumento ...] los distintivos del guión (-) o del guión doble (—), los argumentos se imprimen en la salida
estándar, como describe el mandato echo. Los distintivos hacen lo siguiente:
-R Imprime en modalidad bruta (los convenios de escape del mandato echo se pasan
por alto). El distintivo -R imprime todos los argumentos y distintivos subsiguientes
distintos de -n.
-n Impide que se añada un carácter de nueva línea a la salida.
-p Graba los argumentos en el conducto del proceso ejecutado con |& en lugar de en
la salida estándar.
-r Imprime en modalidad bruta. Los convenios de escape del mandato echo se pasan
por alto.
-s Graba los argumentos en el archivo histórico en lugar de en la salida estándar.
-u Especifica un número de unidad de descriptor de archivo de un dígito, n, en el que
se coloca la salida. El valor por omisión es 1.
pwd Equivale a print Nota: El mandato interno del shell Korn pwd no da soporte a los enlaces simbólicos.
-r - $PWD.
read [-prsu [n ]] Acepta la entrada del shell. Se lee una línea y ésta se divide en campos, utilizando los
[Nombre?Solicitud] caracteres de la variable IFS como separadores.
[Nombre...]
Para obtener más información, consulte el mandato read en la publicación AIX 5L Version
5.1 Commands Reference.
setgroups Ejecuta el mandato /usr/bin/setgroups, el cual se ejecuta como un shell separado. Consulte
el mandato setgroups para obtener información acerca de su funcionamiento. No obstante,
existe una diferencia. El mandato incorporado setgroups invoca un subshell, pero el
mandato setgroups sustituye el shell que está ejecutándose actualmente. Puesto que el
mandato incorporado sólo recibe soporte por razones de compatibilidad, se recomienda que
los scripts utilicen el nombre absoluto de vía de acceso /usr/bin/setgroups en lugar del
mandato incorporado del shell.
test Es igual a [expresión]. Consulte el apartado “Expresiones condicionales para el shell Korn o
el shell POSIX” en la página 198 para obtener información acerca de su utilización y conocer
su descripción.

Capítulo 11. Shells 195


ulimit [-HSacdfmst ] Establece o visualiza los límites de los recursos del proceso definidos por el usuario tal como
[Límite] se definen en el archivo /etc/security/limits. Este archivo contiene seis límites por omisión:
fsize = 2097151
core = 2048
cpu = 3600
data = 131072
rss = 65536
stack = 8192

Estos valores se utilizan como valores por omisión cuando se añade un nuevo usuario al
sistema. Los valores se establecen con el mandato mkuser cuando el usuario se añade al
sistema o bien se cambian con el mandato chuser.

Las categorías de los límites pueden ser dinámicas o fijas. Los usuarios pueden cambiar sus
límites flexibles, hasta el valor máximo establecido por los límites fijos, utilizando el mandato
ulimit. Debe tener autorización de usuario root para cambiar los límites fijos de recursos.

Muchos sistemas no contienen uno o más de dichos límites. El límite de un recurso


especificado se establece cuando se especifica el parámetro Límite. El valor del parámetro
Límite puede ser un número de la unidad que se ha especificado con cada recurso o bien el
valor unlimited. Puede especificar los distintivos del mandato ulimit siguientes:
-H Especifica que se define el límite fijo del recurso proporcionado. Si tiene
autorización de usuario root, puede aumentar el límite fijo. Cualquier usuario puede
reducirlo.
-S Especifica que se define el límite dinámico para el recurso proporcionado. Un límite
limitado puede aumentarse hasta el valor del límite fijo. Si no se especifican las
opciones -H ni -S, el límite se aplica a ambos.
-a Lista todos los límites de recursos actuales.
-c Especifica el número de bloques de 512 bytes en el tamaño de vuelcos de imagen
de memoria.
-d Especifica el tamaño, en KB, del área de datos.
-f Especifica el número de bloques de 512 bytes para archivos grabados por los
procesos hijo (pueden leerse archivos de cualquier tamaño).
-m Especifica el número de KB para el tamaño de la memoria física.
-n Especifica el límite en el número de descriptores de archivos que un proceso podría
haber abierto.
-s Especifica el número de KB para el tamaño del área de pila.
-t Especifica el número de segundos que se utilizará en cada proceso.
El límite del recurso actual se imprime cuando se omite la variable Límite. El límite flexible se
imprime, a menos que especifique el distintivo -H. Cuando especifique más de un recurso, el
nombre y unidad del límite se imprimen antes del valor. Si no se proporciona ninguna opción,
se da por supuesto el distintivo -f. Cuando cambie el valor, defina tanto los límites fijos como
los dinámicos en Límite a no ser que especifique -H o -S.

Para obtener más información acerca de los límites de recursos del usuario y del sistema,
consulte la subrutina getrlimit, setrlimit o vlimit en la publicación AIX 5L Version 5.1
Technical Reference: Base Operating System and Extensions Volume 1.
umask [-S ] [Máscara] Determina los permisos de archivo. Este valor, junto con los permisos del proceso de
creación, determina los permisos de un archivo cuando se crea el archivo. El valor por
omisión es 022. Si no se especifica el parámetro Máscara, el mandato umask muestra en
salida estándar la máscara de creación en modalidad de archivos del entorno de shell actual.

Para obtener más información acerca de permisos de archivo, consulte el mandato umask
en la publicación AIX 5L Version 5.1 Commands Reference.

196 Guía del usuario del sistema: Sistema operativo y dispositivos


unalias { -a | Elimina la definición de cada nombre de alias que se ha especificado o bien elimina todas
NombreAlias... } las definiciones de alias si se utiliza el distintivo -a. Se eliminan las definiciones de alias del
entorno de shell actual.

Para obtener más información, consulte el mandato unalias en la publicación AIX 5L Version
5.1 Commands Reference.
wait [IDProceso...] Espera al trabajo especificado y termina. Si no especifica un trabajo, el mandato espera a los
procesos hijo activos actualmente. El estado de salida de este mandato es el del proceso al
que espera.

Para obtener más información, consulte el mandato wait en la publicación AIX 5L Version
5.1 Commands Reference.
whence [-pv ] Nombre Indica, para cada nombre especificado, cómo se interpretaría si se utilizara como un nombre
... de mandato. Cuando se utilice sin ninguno de los distintivos, whence visualizará el nombre
absoluto de vía de acceso, si existe, que corresponde a cada nombre.
-p Efectúa una búsqueda de vías de acceso del nombre o nombres especificados si
son alias, funciones o palabras reservadas.
-v Genera un informe más detallado en el que se especifica a qué tipo corresponde
cada nombre.

Lista de mandatos incorporados del shell Korn o shell POSIX

Mandatos incorporados especiales


: (dos puntos) Expande únicamente argumentos.
. (punto) Lee un archivo especificado y, a continuación, ejecuta los mandatos.
break Sale del bucle de delimitación for, while, until o select, si existe uno.
continue Reanuda la siguiente iteración del bucle de delimitación for, while, until o select.
eval Lee los argumentos como entrada al shell y ejecuta el mandato o mandatos resultantes.
exec Ejecuta el mandato que especifica el parámetro Argumento, en lugar de este shell, sin crear un
nuevo proceso.
exit Sale del shell cuyo estado de salida especifica el parámetro n.
export Marca nombres para exportación automática al entorno de mandatos ejecutados sucesivamente.
newgrp Equivale al mandato exec /usr/bin/newgrp [Grupo ...].
readonly Marca los nombres especificados como de sólo lectura.
return Hace que el shell vuelva al script de invocación.
set A menos que se especifiquen opciones o argumentos, graba los nombres y los valores de todas
las variables de shell en el orden de clasificación del entorno local actual.
shift Cambia el nombre de los parámetros de posición.
times Imprime las horas de usuario y del sistema acumuladas correspondientes al shell y a los procesos
que se ejecutan desde el shell.
trap Ejecuta el mandato especificado cuando el shell recibe la señal o señales especificadas.
typeset Define atributos y valores para parámetros de shell.
unset Elimina el establecimiento de los valores y atributos de los parámetros especificados.

Mandatos incorporados normales


alias Imprime una lista de los alias en la salida estándar.
bg Establece los trabajos especificados como trabajos de fondo.
cd Cambia el directorio actual por el directorio especificado o sustituye la serie actual por la serie
especificada.
echo Graba series de caracteres a salida estándar.

Capítulo 11. Shells 197


fc Selecciona un rango de mandatos del último mandato de variable HISTSIZE escribiendo en el
terminal. Vuelve a ejecutar el mandato especificado tras la realización de la sustitución antiguo por
nuevo.
fg Establece el trabajo especificado como trabajo en primer plano.
getopts Comprueba el parámetro Argumento en busca de opciones legales.
jobs Lista información acerca de cada trabajo especificado.
kill Envía la señal TERM (terminar) a los trabajos o procesos especificados.
let Evalúa expresiones aritméticas especificadas.
print Imprime la salida del shell.
pwd Equivale al mandato print -r -$PWD.
read Acepta la entrada del shell.
ulimit Establece o visualiza los límites de recursos de proceso del usuario tal como se ha definido en el
archivo /etc/security/limits.
umask Determina los permisos de archivo.
unalias Elimina los parámetros que están en la lista de nombres de la lista de alias.
wait Espera al trabajo especificado y termina.
whence Indica la forma en que se interpretará cada nombre especificado si éste se utiliza como un nombre de
mandato.

Consulte el apartado “Mandatos incorporados del shell Korn o shell POSIX” en la página 186 para obtener
más información.

Expresiones condicionales para el shell Korn o el shell POSIX


Una expresión condicional se utiliza con el mandato compuesto [[ para probar los atributos de los
archivos y para comparar series. La subdivisión de palabras y la sustitución del nombre del archivo no se
realizan en las palabras que aparecen entre [[ y ]]. Cada expresión se construye a partir de una o más de
las siguientes expresiones unitarias o binarias:

-a Archivo Verdadero, si el archivo especificado es un enlace simbólico que señala a otro archivo que
existe.
-b Archivo Verdadero, si existe el archivo especificado y es un archivo especial de bloque.
-c Archivo Verdadero, si el archivo especificado existe y es un archivo especial de caracteres.
-d Archivo Verdadero, si existe el archivo especificado y es un directorio.
-e Archivo Verdadero, si existe el archivo especificado.
-f Archivo Verdadero, si existe el archivo especificado y es un archivo ordinario.
-g Archivo Verdadero, si el archivo especificado existe y se ha establecido su bit setgid.
-h Archivo Verdadero, si existe el archivo especificado y es un enlace simbólico.
-k Archivo Verdadero, si existe el archivo especificado y se ha definido su bit reversible.
-n Serie Verdadero, si la longitud de la serie especificada es distinta de cero.
-o Opción Verdadero, si la opción especificada está activada.
-p Archivo Verdadero, si existe el archivo especificado y es un archivo especial FIFO o un conducto.
-r Archivo Verdadero, si el archivo especificado existe y el proceso actual puede leerlo.
-s Archivo Verdadero, si existe el archivo especificado y su tamaño es mayor que 0.
-t DescriptorArchivo Verdadero, si está abierto un número de descriptor de archivo especificado y está asociado
con un dispositivo de terminal.
-u Archivo Verdadero, si el archivo especificado existe y se ha establecido su bit setuid.
-w Archivo Verdadero, si existe el archivo especificado y el bit de grabación está activado. No obstante,
no será posible grabar el archivo en un sistema de archivos de sólo lectura aunque su
prueba indique que es verdadero.
-x Archivo Verdadero, si el archivo especificado existe y el distintivo execute se ha activado. Si el
archivo especificado existe y es un directorio, el proceso actual tiene permiso para buscar en
el directorio.
-z Serie Verdadero, si la longitud de la serie especificada es 0.
-L Archivo Verdadero, si existe el archivo especificado y es un enlace simbólico.

198 Guía del usuario del sistema: Sistema operativo y dispositivos


-O Archivo Verdadero, si existe el archivo especificado y el propietario es el ID de usuario vigente de
este proceso.
-G Archivo Verdadero, si existe el archivo especificado y su grupo coincide con el ID de grupo vigente
de este proceso.
-S Archivo Verdadero, si existe el archivo especificado y es un socket.
Archivo1 -nt Archivo2 Verdadero, si Archivo1 existe y es más reciente que Archivo2.
Archivo1 -ot Archivo2 Verdadero, si Archivo1 existe y es más antiguo que Archivo2.
Archivo1 -ef Archivo2 Verdadero, si Archivo1 yArchivo2 existen y hacen referencia al mismo archivo.
Serie1 = Serie2 Verdadero, si Serie1 es igual a Serie2.
Serie1 != Serie2 Verdadero, si Serie1 no es igual a Serie2.
Serie = Patrón Verdadero, si la serie especificada coincide con el patrón especificado.
Serie != Patrón Verdadero, si la serie especificada no coincide con el patrón indicado.
Serie1 < Serie2 Verdadero, si Serie1 aparece antes que Serie2 basándose en el valor ASCII de sus
caracteres.
Serie1 >Serie2 Verdadero, si Serie1 aparece después de Serie2 basándose en el valor ASCII de sus
caracteres.
Expresión1 -eq Verdadero, si Expresión1 es igual a Expresión2.
Expresión2
Expresión1 -ne Verdadero, si Expresión1 no es igual a Expresión2.
Expresión2
Expresión1 -lt Verdadero, si Expresión1 es menor que Expresión2.
Expresión2
Expresión1 -gt Verdadero, si Expresión1 es mayor que Expresión2.
Expresión2
Expresión1 -le Verdadero, si Expresión1 es menor que o igual a Expresión2.
Expresión2
Expresión1 -ge Verdadero, si Expresión1 es mayor que o igual a Expresión2.
Expresión2

Nota: En cada una de las expresiones anteriores, si la variable Archivo es parecida a /dev/fd/n,
donde n es un entero, la prueba se aplica al archivo abierto cuyo número de descriptor es n.

Puede crear una expresión compuesta a partir de estas expresiones primitivas utilizando cualquiera de las
expresiones siguientes, que se enumeran en orden descendente de precedencia:

(Expresión) Verdadero, si la expresión especificada es verdadera. Se utiliza para agrupar


expresiones.
! Expresión Verdadero, si la expresión especificada es falsa.
Expresión1 && Expresión2 Verdadero, si Expresión1 y Expresión2 son verdaderas.
Expresión1 || Expresión2 Verdadero, si Expresión1 o bien Expresión2 es verdadera.

Control de trabajos en el shell Korn o shell POSIX


El shell Korn, o el shell POSIX, proporciona un recurso para controlar secuencias de mandatos o trabajos.
Cuando ejecuta el mandato especial set -m, el shell Korn asocia un trabajo a cada conducto. Mantiene
una tabla de los trabajos actuales, que se imprimen mediante el mandato jobs, y les asigna números
enteros pequeños.

Cuando un trabajo se inicia como proceso de fondo con un &, el shell imprime una línea que tiene un
aspecto similar al siguiente:
[1] 1234

Esto indica que el trabajo, que se ha iniciado como proceso de fondo, era el trabajo número 1. También
muestra que el trabajo tenía un proceso (de nivel superior) con el ID de trabajo 1234.

Capítulo 11. Shells 199


Si va a ejecutar un trabajo y desea efectuar alguna otra operación, utilice la secuencia de teclas
Control-Z. Esta secuencia de teclas envía una señal STOP al trabajo actual. El shell normalmente indica
que el trabajo se ha detenido y muestra a continuación un indicador del shell. Seguidamente, puede
manipular el estado de ese trabajo (estableciéndolo como trabajo de fondo con el mandato bg), ejecutar
otros mandatos y, finalmente, volver a establecerlo como trabajo en primer plano con el mandato fg. La
secuencia de teclas Control-Z se aplica inmediatamente y es como una interrupción en tanto que, cuando
se escribe la secuencia, el shell descarta la salida pendiente y la entrada no leída.

Un trabajo que se ejecuta en segundo plano se detiene e intenta leer desde el terminal. Normalmente, se
permite a los trabajos en segundo plano generar salida. Puede inhabilitar esta opción emitiendo el
mandato sttytostop. Si establece esta opción del terminal, los trabajos de fondo se detendrán cuando
intenten producir la salida o leer la entrada.

Puede hacer referencia a los trabajos del shell Korn de varios modos. A un trabajo se hace referencia por
medio del ID de proceso de cualquiera de sus procesos o bien de una de las formas siguientes:

%Número Especifica el trabajo que tiene el número indicado.


%Serie Especifica cualquier trabajo cuya línea de mandatos empieza por la variable Serie.
%?Serie Especifica cualquier trabajo cuya línea de mandatos contiene la variable Serie.
%% Especifica el trabajo actual.
%+ Equivale a %%.
%- Especifica el trabajo anterior.

Este shell sabe inmediatamente cuándo cambia el estado de un proceso. Normalmente, le informa
siempre que un trabajo queda bloqueado de forma que no es posible continuar. El shell realiza esta
acción justo antes de imprimir una indicación, por lo tanto, no vuelve a interrumpir el trabajo del usuario.

Cuando la modalidad de supervisión está habilitada, cada trabajo de fondo que se completa desencadena
las rupturas que se han establecido para la señal CHLD.

Si intenta abandonar el shell (escribiendo exit o utilizando la secuencia de teclas Control-D) mientras
existen trabajos que se han detenido o que están en ejecución, el sistema le avisa con el mensaje Hay
trabajos detenidos (ejecutándose). Utilice el mandato jobs para ver qué trabajos están afectados. Si,
inmediatamente, vuelve a intentar salir, el shell finalizará los trabajos detenidos y en ejecución sin
avisarle.

Manejo de señales
Las señales SIGINT y SIGQUIT de un mandato invocado se pasan por alto si el mandato va seguido de
un & y la opción monitor del trabajo no se ha activado. De lo contrario, las señales tienen los valores que
el shell hereda de su padre.

Cuando una señal para la que se ha definido una ruptura se recibe mientras el shell está esperando a
que finalice un mandato en primer plano, la ruptura asociada con dicha señal no se ejecutará hasta que
haya finalizado el mandato en primer plano. Por lo tanto, no se realiza una ruptura en una señal CHILD
hasta que finaliza el trabajo en primer plano.
v “Información relacionada con el shell Korn” en la página 209

Edición en línea en el shell Korn o shell POSIX


Normalmente, escribe cada línea de mandatos desde un dispositivo de terminal y le sigue un carácter de
nueva línea (RETURN o LINE FEED). Cuando activa la opción de edición emacs, gmacs o vi, puede
editar la línea de mandatos.

200 Guía del usuario del sistema: Sistema operativo y dispositivos


Los siguientes mandatos entran en modalidades de edición:

set -o emacs Entra en la “Modalidad de edición emacs” e inicia un editor en línea de estilo emacs.
set -o gmacs Entra en la “Modalidad de edición emacs” e inicia un editor en línea de estilo gmacs.
set -o vi Entra en la “Modalidad de edición vi” en la página 203 e inicia un editor en línea de estilo vi.

Una opción de edición se selecciona automáticamente cada vez que a la variable VISUAL o EDITOR se
le asigna un valor que finaliza por cualquiera de estos nombres de opciones.

Nota: Para utilizar las funciones de edición, el terminal debe aceptar RETURN como retorno de
carro sin salto de línea. Un espacio debe sobregrabar el carácter actual de la pantalla.

Cada modalidad de edición abre una ventana en la línea actual. La anchura de la ventana es el valor de
la variable COLUMNS, si se ha definido; de lo contrario, la anchura equivale a 80 espacios de carácter. Si
la línea es superior a la anchura de la ventana menos dos, el sistema notifica que está viendo un marco
al final de la ventana. A medida que se mueve el cursor y llega a los límites de la ventana, la ventana se
centra alrededor del cursor. Las marcas visualizadas son:

> Indica que la línea continúa por el lado derecho de la ventana.


< Indica que la línea se amplía en el lado izquierdo de la ventana.
* Indica que la línea se amplía en ambos lados de la ventana.

Los mandatos de búsqueda en cada modalidad de edición proporcionan acceso al archivo histórico del
shell Korn. Sólo se coincide con series. Si el carácter inicial de la serie es un |, la coincidencia debe
empezar desde el primer carácter de la línea.

En este apartado se explica lo siguiente:


v “Modalidad de edición emacs”
v “Modalidad de edición vi” en la página 203

Modalidad de edición emacs


Se entra en modalidad emacs cuando se habilita la opción emacs o gmacs. La única diferencia entre
estas dos modalidades es el modo en que cada una de ellas maneja el mandato de edición Control-T.
Para editar, mueva el cursor hasta el punto que necesita corrección e inserte o suprima caracteres o
palabras, según se requiera. Todos los mandatos de edición son caracteres de control o secuencias de
escape.

Los mandatos de edición funcionan desde cualquier lugar en una línea (no tiene por qué ser al principio).
No pulse la tecla Intro o el salto de línea (flecha abajo) después de mandatos de edición, excepto como
se indique.

Control-F Mueve el cursor hacia adelante (derecha) un carácter.


Esc-F Mueve el cursor hacia adelante una palabra (una serie de caracteres que consta de sólo
letras, dígitos y subrayados).
Control-B Mueve el cursor hacia atrás (izquierda) un carácter.
Esc-B Mueve el cursor hacia atrás una palabra.
Control-A Mueve el cursor al principio de la línea.
Control-E Mueve el cursor al final de la línea.
Control-] c Hace avanzar el cursor por la línea actual hasta el carácter indicado.
Esc-Control-] c Hace retroceder el cursor por la línea actual hasta el carácter indicado.
Control-X Control-X Intercambia el cursor y la marca.
ERASE Suprime el carácter anterior. (Carácter de supresión definido por el usuario tal como define
el mandato stty, normalmente la secuencia de teclas Control-H.)

Capítulo 11. Shells 201


Control-D Suprime el carácter actual.
Esc-D Suprime la palabra actual.
Esc-Retroceso Suprime la palabra anterior.
Esc-H Suprime la palabra anterior.
Esc-Supr Suprime la palabra anterior. Si el carácter de interrupción es la tecla Supr, este mandato no
funcionará.
Control-T Cambia el carácter actual por el siguiente carácter en modalidad emacs. Transpone los dos
caracteres anteriores en modalidad gmacs.
Control-C Convierte a mayúsculas el carácter actual.
Esc-C Convierte a mayúsculas la palabra actual.
Esc-L Convierte la palabra actual a minúsculas.
Control-K Suprime desde el cursor hasta el final de la línea. Si va precedido de un parámetro
numérico cuyo valor es menor que la posición actual del cursor, este mandato de edición
suprime desde la posición determinada hasta el cursor. Si va precedido de un parámetro
numérico cuyo valor es mayor que la posición actual del cursor, este mandato de edición
suprime desde el cursor hasta la posición determinada del cursor.
Control-W Suprime desde el cursor hasta la marca.
Esc-P Sitúa la región desde el cursor hasta la marca en la pila.
KILL Carácter para matar definido por el usuario que se define en el mandato stty y que, por lo
general, corresponde a la secuencia de teclas Control-G o a un signo @. Mata toda la
línea actual. Si se entran dos caracteres de matar en sucesión, todos los caracteres de
matar posteriores provocan un salto de línea (útil cuando se utilizan terminales de papel).
Control-Y Restaura el último elemento eliminado de la línea. (Devuelve el elemento a la línea).
Control-L Avanza una línea e imprime la línea actual.
Control-@ (Carácter nulo) Define una marca.
Esc-espacio Define una marca.
Control-J (Nueva línea) Ejecuta la línea actual.
Control-M (Retorno) Ejecuta la línea actual.
EOF Procesa el carácter de fin de archivo, normalmente la secuencia de teclas Control-D, como
fina de archivo sólo si la línea actual es nulo.
Control-P Busca el mandato anterior. Cada vez que se entra la secuencia de teclas Control-P, se
accede al mandato anterior cada vez. Retrocede una línea cuando no está en la primera
línea de un mandato de múltiples líneas.
Esc-< Busca la línea de histórico menos reciente (más antigua).
Esc-> Busca la línea de histórico más reciente (más nueva).
Control-N Busca la siguiente línea de mandatos. Cada vez que se pulsa la secuencia de teclas
Control-N, se accede a la siguiente línea sucesiva.
Control-R Serie Invierte el histórico de búsqueda de una línea de mandatos anterior que contiene la serie
que especifica el parámetro Serie. Si se proporciona un valor de 0, la búsqueda es hacia
adelante. La serie especificada termina por on carácter de Intro o de nueva línea. Si la
serie va precedida de un carácter |, la línea de la coincidencia debe empezar por el
parámetro Serie. Si se omite el parámetro Serie, se accede a la siguiente línea de
mandatos que contiene el parámetro Serie más reciente.En este caso, un valor de 0
invierte la dirección de la búsqueda.
Control-O (Operar) Ejecuta la línea actual y busca la línea relativa a la línea actual del archivo
histórico.
Esc Dígitos (Escape) Define el parámetro numérico. Los dígitos se toman como un parámetro para el
siguiente mandato. Los mandatos que aceptan un parámetro son Control-F, Control-B,
ERASE, Control-C, Control-D, Control-K, Control-R, Control-P, Control-N, Control-],
Esc-., Esc-Control-], Esc-_, Esc-B, Esc-C, Esc-D, Esc-F, Esc-H, Esc-L yEsc-Control-H.
Esc Letras (Tecla de software) Busca en la lista de alias un alias que se denomina _Letra. Si se define
un alias con este nombre, su valor se sitúa en la cola de entrada. El parámetro Letra no
debe especificar una de las funciones de escape.
Esc-[ Letras (Tecla de software) Busca en la lista de alias un alias cuyo nombre es subrayado doble
Letra (__Letra). Si se define un alias con este nombre, su valor se sitúa en la cola de
entrada. Este mandato puede utilizarse para teclas de función de programa en muchos
terminales.

202 Guía del usuario del sistema: Sistema operativo y dispositivos


Esc-. Inserta en la línea la última palabra del mandato anterior. Si va precedido de un parámetro
numérico, el valor de este parámetro determina qué palabra insertar en lugar de la última
palabra.
Esc-_ Igual que la secuencia de teclas Esc-. anterior.
Esc-* Intenta efectuar sustitución de nombres de archivo en la palabra actual. Se añade un
asterisco si la palabra no coincide con ningún nombre de archivo o contiene caracteres de
patrón especiales.
Esc-Esc Finalización de nombre de archivo. Sustituye la palabra actual por el prefijo más largo
común de todos los nombres de archivo que coinciden con la palabra actual con un
asterisco añadido. Si la coincidencia es exclusiva, se añadirá una / si el archivo es un
directorio y se añadirá un espacio si el archivo no es un directorio.
Esc-= Lista los archivos que coinciden con el patrón de palabras actual si se añadió un asterisco.
Control-U Multiplica el parámetro del mandato siguiente por 4.
\ Ignora el siguiente carácter. Los caracteres de edición y los caracteres ERASE, KILL e
INTERRUPT (por lo general, la tecla Supr) puede entrarse en una línea de mandatos o en
una serie de búsqueda si van precedidos de una \. La barra inclinada invertida elimina las
funciones de edición del siguiente carácter, si existe alguno.
Control-V Muestra la versión del shell.
Esc-# Inserta un carácter # al principio de la línea y, a continuación, ejecuta la línea. Esto hace
que se inserte un comentario en el archivo histórico.

Modalidad de edición vi
La modalidad de edición vi tiene dos tipos de modalidad de escritura. Cuando entra un mandato, está en
modalidad de entrada. Para editar, debe entrar la modalidad Control pulsando la tecla Esc.

La mayoría de los mandatos de control aceptan un parámetro Cuenta (o número total) de repetición
opcional delante del mandato. Cuando se está en modalidad vi en la mayoría de sistemas, se habilita
inicialmente el proceso canónico. Se hace un eco del mandato de nuevo si:
v La velocidad es de 1200 baudios o superior.
v El mandato contiene caracteres de control.
v Ha transcurrido menos de un segundo desde que se imprimió el indicador.

El carácter Esc termina el proceso canónico para el resto del mandato y puede entonces modificar la
línea de mandatos. Este esquema tiene las ventajas del proceso canónico con el eco de escritura
anticipado de la modalidad bruta. Si también se ha establecido la opción viraw, el proceso canónico
siempre está inhabilitado. Esta modalidad es implícita en los sistemas que no dan soporte a dos
delimitadores de fin de línea alternativos y podría ser útil para determinados terminales.

Los mandatos vi disponibles se agrupan en las siguientes categorías:


v “Mandatos de edición de entrada”
v “Mandatos de edición de movimiento” en la página 204
v “Mandatos de edición de búsqueda” en la página 204
v “Mandatos de edición de modificación de texto” en la página 204
v “Mandatos de edición varios” en la página 205

Mandatos de edición de entrada


Nota: Por omisión, el editor está en modalidad de entrada.

ERASE (Carácter para borrar definido por el usuario que se define en el mandato stty y que, por lo general,
corresponde a Control-H o a #.) Suprime el carácter anterior.
Control-W Suprime la palabra separada por blancos anterior.
Control-D Finaliza el shell.

Capítulo 11. Shells 203


Control-V Ignora el siguiente carácter. Los caracteres de edición, por ejemplo ERASE o KILL, pueden entrarse en
una línea de mandatos o en una serie de búsqueda si van precedidos de una secuencia de teclas
Control-V. La secuencia de teclas Control-V elimina las funciones de edición del siguiente carácter (si
existe).
\ Ignora el siguiente carácter ERASE o KILL.

Mandatos de edición de movimiento


Los mandatos de edición de movimiento mueven el cursor:

[Cuenta]l Mueve el cursor hacia adelante (derecha) un carácter.


[Cuenta]w Mueve el cursor hacia adelante una palabra alfanumérica.
[Cuenta]W Mueve el cursor al principio de la siguiente palabra que sigue a un blanco.
[Cuenta]e Mueve el cursor al final de la palabra actual.
[Cuenta]E Mueve el cursor al final de la palabra separada por un blanco actual.
[Cuenta]h Mueve el cursor hacia atrás (izquierda) un carácter.
[Cuenta]b Mueve el cursor hacia atrás una palabra.
[Cuenta]B Mueve el cursor a la palabra separada por blancos anterior.
[Cuenta]| Mueve el cursor a la columna que especifica el parámetro Cuenta.
[Cuenta]fc Busca el siguiente carácter c en la línea actual.
[Cuenta]Fc Busca el carácter c anterior en la línea actual.
[Cuenta]tc Equivale a f seguido de h.
[Cuenta]Tc Equivale a F seguido de l.
[Cuenta]; Repite el número de veces que especifica el parámetro Cuenta el último mandato de búsqueda de
un solo carácter: f, F, t o T.
[Cuenta], Invierte el último mandato de búsqueda de un solo carácter el número de veces que especifica el
parámetro Cuenta.
0 Mueve el cursor al principio de una línea.
| Mueve el cursor al primer carácter no blanco de una línea.
$ Mueve el cursor al final de una línea.

Mandatos de edición de búsqueda


Los mandatos de edición de búsqueda acceden al histórico de mandatos:

[Cuenta]k Busca el mandato anterior.


[Cuenta]- Equivale al mandato k.
[Cuenta]j Busca el siguiente mandato. Cada vez que se entra el mandato j, se accede al siguiente mandato.
[Cuenta]+ Equivale al mandato j.
[Cuenta]G Busca el mandato cuyo número especifica el parámetro Cuenta. El valor por omisión es el mandato
histórico menos reciente.
/Serie Busca hacia atrás en el histórico un mandato anterior que incluye la serie especificada. La serie
especificada termina por on carácter de Intro o de nueva línea. Si la serie especificada va precedida
de un carácter |, la línea de la coincidencia debe empezar por el parámetro Serie. Si el valor del
parámetro Serie es nulo, se utiliza la serie anterior.
?Serie Igual que /Serie a excepción de que la búsqueda se efectúa hacia adelante.
n Busca la siguiente coincidencia del último patrón de los mandatos /Serie o ?.
N Busca la siguiente coincidencia del último patrón de los mandatos /Serie o ?, pero en la dirección
opuesta. Busca en el histórico la serie que se ha especificado en el mandato /Serie anterior.

Mandatos de edición de modificación de texto


Los mandatos de edición de modificación de texto modifican la línea:

a Entra en modalidad de entrada y entra texto detrás del carácter actual.


A Añade texto al final de la línea. Equivale al mandato $a.
[Cuenta]cMovimiento

204 Guía del usuario del sistema: Sistema operativo y dispositivos


c[Cuenta]Movimiento Suprime el carácter actual hasta el carácter al que el parámetro Movimiento
especifica que ha de moverse el cursor y entra en modalidad de entrada. Si el valor
del parámetro Movimiento es c, se suprime toda la línea y se entra en modalidad de
entrada.
C Suprime desde el carácter actual hasta el final de la línea y entra en modalidad de
entrada. Equivale al mandato c$.
S Equivale al mandato cc.
D Suprime desde el carácter actual hasta el final de la línea. Equivalente al mandato
d$.

[Cuenta]dMovimiento

d[Cuenta]Movimiento Suprime el carácter actual hasta, e inclusive, el carácter que especifica el parámetro
Movimiento. Si Movimiento es d, se suprime toda la línea.
i Entra en modalidad de entrada e inserta texto delante del carácter actual.
I Inserta texto antes del principio de la línea. Equivale al mandato 0i.
[Cuenta]P Sitúa la modificación de texto anterior antes del cursor.
[Cuenta]p Sitúa la modificación de texto anterior después del cursor.
R Entra en modalidad de entrada y escribe sobre los caracteres de la pantalla.
[Cuenta]rc Sustituye el número de caracteres que especifica el parámetro Cuenta, empezando
desde la posición actual del cursor, por el carácter que especifica el parámetro c.
Este mandato también avanza el cursor después de sustituir los caracteres.
[Cuenta]x Suprime el carácter actual.
[Cuenta]X Suprime el carácter anterior.
[Cuenta]. Repite el mandato de modificación de texto anterior.
[Cuenta]x Invierte las mayúsculas por minúsculas, o viceversa, que corresponden al número de
caracteres que especifica el parámetro Cuenta, empezando desde la posición actual
del cursor y hace que el cursor avance.
[Cuenta]_ Añade la palabra que especifica el parámetro Cuenta del mandato anterior y entra en
modalidad de entrada. Si se ha omitido el parámetro Cuenta, se utilizará la última
palabra.
* Añade un * a la palabra actual e intenta realizar la sustitución del nombre de archivo.
Si no se encuentra ninguna coincidencia, suena el timbre. De lo contrario, la palabra
se sustituye por el patrón coincidente y se entra en modalidad de entrada.
\ Finalización de nombre de archivo. Sustituye la palabra actual por el prefijo común
más largo de todos los nombres de archivo que coinciden con la palabra actual con
un asterisco añadido. Si la coincidencia es exclusiva, se añadirá una / si el archivo
es un directorio. Si el archivo no es un directorio, se añadirá un espacio.

Mandatos de edición varios


Estos son otros mandatos de edición:

[Cuenta]yMovimiento
y[Cuenta]Movimiento Extrae el carácter actual hasta, e inclusive, el carácter que marca la posición del cursor
que especifica el parámetro Movimiento y coloca todos esos caracteres en el
almacenamiento intermedio de supresión. El texto y el cursor permanecen intactos.
Y Mueve desde la posición actual hasta el final de la línea. Equivalente al mandato y$.
u Revierte el último mandato de modificación de texto.
U Revierte todos los mandatos de modificación de texto efectuados en la línea.
[Cuenta]v Devuelve el mandato fc -e ${VISUAL:-${EDITOR:-vi}} Cuenta del almacenamiento
intermedio de entrada. Si se ha omitido el parámetro Cuenta, se utilizará la línea actual.
Control-L Avanza una línea e imprime la línea actual. Este mandato sólo es vigente en modalidad
de control.
Control-J (Nueva línea) Ejecuta la línea actual, independientemente de la modalidad.
Control-M (Retorno) Ejecuta la línea actual, independientemente de la modalidad.

Capítulo 11. Shells 205


# Envía la línea tras la inserción de un carácter # al principio de la línea. Útil si desea
insertar la línea actual en el histórico sin ejecutarla.

Si la línea de mandatos contiene un carácter de conducto (una barra vertical) o un


carácter de dos puntos o un carácter de nueva línea, los caracteres # adicionales se
insertarán al principio de cada uno de estos símbolos. Para suprimir todos los signos de
libra, recupere la línea de mandatos del histórico y entre otro #.
= Lista los nombres de archivo que coinciden con la palabra actual si se hubiera añadido
un asterisco.
@Letra Busca en la lista de alias un alias denominado _Letra. Si se ha definido un alias con este
nombre, su valor se sitúa en la cola de entrada para proceso.

Shell Korn ampliado (ksh93)


Además del shell Korn del sistema por omisión (/usr/bin/ksh), AIX proporciona una versión ampliada
disponible como /usr/bin/ksh93. Esta versión ampliada es compatible en sentido ascendente con la
versión por omisión actual e incluye algunas funciones adicionales que no están disponibles en
/usr/bin/ksh. La tabla siguiente contiene una visión general de estas funciones adicionales.

Funciones de ksh93
Las funciones siguientes están disponibles en /usr/bin/ksh93:

Mejoras Puede utilizar las funciones libm (funciones de correlación que normalmente se encuentran en
aritméticas el lenguaje de programación C), en expresiones aritméticas, tales como $ value=$((sqrt(9))).
Hay disponibles más operadores aritméticos, incluyendo los operadores monádicos +, ++, -- y
la construcción ?: (por ejemplo, ″x ? y : z″), así como el operador , (coma). Las bases
aritméticas se soportan hasta base 64. La aritmética de coma flotante también está soportada.
″typeset -E″ (exponencial) se puede utilizar para especificar el número de dígitos significativos
y ″typeset -F″ (flotante) se puede utilizar para especificar el número de espacios decimales
para la variable aritmética. Ahora la variable SECONDS se redondea a la centésima de segundo,
en lugar de al segundo.
Variables ksh93 da soporte a las variables compuestas. Una variable compuesta permite a un usuario
compuestas especificar varios valores en un solo nombre de variable. Se asigna a cada variable una
variable de subscripción, separada de la variable padre con un . (punto). Por ejemplo:
$ myvar=( x=1 y=2 )
$ print "${myvar.x}"
1
Asignaciones Se da soporte a las asignaciones compuestas al inicializar conjuntos, tanto para conjuntos
compuestas indexados como para conjuntos asociativos. Los valores de asignación están situados entre
paréntesis, tal como se muestra en el ejemplo siguiente:
$ numbers=( cero uno dos tres )
$ print ${numbers[0]} ${numbers[3]}
cero tres
Conjuntos Un conjunto asociativo es un conjunto con una cadena de caracteres como índice.
asociativos
El mandato typeset utilizado con el distintivo -A permite al usuario especificar conjuntos
asociativos en ksh93. Por ejemplo:
$ typeset -A teammates
$ teammates=( [juan]=ruiz [maría]=lopez )
$ print ${teammates[maría]}
lopez

206 Guía del usuario del sistema: Sistema operativo y dispositivos


Referencias de El mandato typeset utilizado con el distintivo -n permite al usuario asignar un nombre de
nombres de variable como referencia a otra. De esta manera, la modificación del valor de una variable
variables modificará a su vez el valor de la variable a la que hace referencia. Por ejemplo:
$ greeting="hola"
$ typeset -n welcome=greeting # establece la referencia
$ welcome="buenos días" # prevalece sobre el valor anterior
$ print $greeting
buenos días
Expansiones de Las siguientes construcciones de expansión de parámetros están disponibles en ksh93:
parámetros v ${!varname} es el nombre de la propia variable.
v ${!varname[@]} nombra los índices para el conjunto varname.
v ${param:offset} es una subserie de param, que empieza en offset.
v ${param:offset:num} es una subserie de param, que empieza en offset, para num número
de caracteres.
v ${@:offset} indica todos los parámetros de posición que empiezan en offset.
v ${@:offset:num} indica los parámetros de posición num que empiezan en offset.
v ${param/pattern/repl} evalúa param, sustituyendo la primera aparición de pattern con repl.
v ${param//pattern/repl} evalúa param, sustituyendo cada aparición de pattern con repl.
v ${param/#pattern/repl} si param empieza por pattern, param se sustituye por repl.
v ${param/%pattern/repl} si param acaba en pattern, param se sustituye por repl.
Funciones de Una función de disciplina es una función que está asociada con una variable específica. Esto
disciplina permite al usuario definir una función y llamar a la misma cada vez que se hace referencia a
dicha variable, se define o deja de estar definida. Estas funciones toman la forma de
varname.function, donde varname es el nombre de la variable y function es la función de
disciplina. Hay tres funciones de disciplina predefinidas: get, set y unset.
v Se invoca la función varname.get cada vez que se hace referencia a varname. Si se ha
definido la variable especial .sh.value en esta función, el valor de varname cambia a este
valor. Un ejemplo sencillo es la hora:
$ function time.get
> {
> .sh.value=$(date +%r)
> }
$ print $time
09:15:58 AM
$ print $time # cambiará en unos segundos
09:16:04 AM
v Se invoca la función varname.set cada vez que se define varname. La variable .sh.value
recibe el valor que se le asignó. El valor asignado a varname es el valor de .sh.value al
completarse la función. Por ejemplo:
$ function adder.set
> {
> let .sh.value="
$ {.sh.value} + 1"
> }
$ adder=0
$ echo $adder
1$ adder=$adder
$ echo $adder
2
v Se ejecuta la función varname.unset cada vez que se deja de definir varname. En realidad
la variable no se deja de definir a menos que se deje de definir en la misma función; de lo
contrario, mantiene su valor.

En todas las funciones de disciplina, la variable especial .sh.name se define como el nombre
de la variable, mientras que .sh.subscript se define como el valor de subscripción de
variables, en caso de que sea aplicable.

Capítulo 11. Shells 207


Entornos de Las funciones declaradas con el formato de función myfunc se ejecutan en un entorno de
función función separado. Las funciones declaradas myfunc() se ejecutan con el mismo entorno que el
shell padre.
Variables Las variables que empiezan por .sh. están reservadas por el shell y tienen un significado
especial. Consulte la descripción de Funciones de disciplina de más arriba para obtener una
explicación de .sh.name , .sh.value y .sh.subscript. También está disponible .sh.version, que
representa la versión del shell.

Nota: La variable ERRNO ya no está disponible.


Valores de Los valores de retorno de mandatos en ksh93 son los siguientes:
retorno de v Si no se encuentra el mandato a ejecutar, el valor de retorno se establece en 127.
mandatos
v Si se encuentra el mandato a ejecutar, pero éste no es ejecutable, el valor de retorno es
126.
v Si se ejecuta el mandato, pero termina con una señal, el valor de retorno es 256 y el número
de señal.
Normas de En primer lugar se buscan los mandatos incorporados especiales, seguidos de todas las
búsqueda PATH funciones (incluidas las que están en los directorios FPATH), seguidas de otros mandatos
incorporados. Anteriormente, todos los mandatos incorporados se buscaban antes que todas
las funciones y no se buscaban las funciones FPATH hasta después de todo lo demás en
PATH.
Histórico del Shell El mandato hist le permite visualizar y editar el histórico de los mandatos de shells. En el shell
ksh, se utiliza el mandato fc. El mandato fc es ahora un alias de hist. Las variables son
HISTCMD, que se incrementa una vez para cada mandato ejecutado en los históricos actuales
de los shells, y HISTEDIT, que especifica qué editor usar al utilizar el mandato hist.

208 Guía del usuario del sistema: Sistema operativo y dispositivos


Mandatos v Se ha añadido el mandato incorporado builtin. El mandato builtin lista todos los mandatos
incorporados incorporados disponibles.
v Se ha añadido el mandato printf como un mandato incorporado. Éste funcione de manera
similar a la rutina de biblioteca printf() C. Consulte la página del manual del mandato printf.
v Se ha añadido el mandato incorporado disown. disown bloquea el shell para que no envíe
un SIGHUP al mandato especificado.
v Se ha añadido el mandato getconf como un mandato incorporado. Funciona de la misma
manera que un mandato autónomo /usr/bin/getconf. Consulta la página del manual del
mandato getconf.
v El mandato incorporado read tiene dos distintivos:
– read -d {char} permite al usuario especificar un delimitador de caracteres en lugar de una
nueva línea por omisión.
– read -t {seconds} permite al usuario especificar un límite de tiempo en segundos después
del cual el mandato read excederá el tiempo de espera. Si read excede el tiempo de
espera, devolverá FALSE.
v El mandato incorporado exec tiene dos distintivos:
– exec -a {name} {cmd} especifica que el argumento 0 de cmd será sustituido por name.
– exec -c {cmd} indica a exec que borre el entorno antes de ejecutar cmd.
v El mandato incorporado kill tiene dos distintivos:
– kill -n {signum} se utiliza para especificar un número de señal para enviar a un proceso,
mientras que kill -s {signame} se utilizar para especificar un nombre de señal.
– kill -l, sin argumentos, lista todos los nombres de señal pero no sus números.
v El mandato incorporado whence tiene dos distintivos.
– El distintivo -a visualiza todas las concordancias, no sólo la primera encontrada.
– El distintivo -f indica a whence que no busque ninguna función.
v Se ha añadido una secuencia de caracteres de escape para ser utilizada por los mandatos
print y echo. La tecla Esc (Escape) se puede representar mediante la secuencia \E.
v Todos los mandatos incorporados regulares reconocen el distintivo -?, que muestra la
sintaxis para el mandato especificado.

Información relacionada con el shell Korn


“Capítulo 11. Shells” en la página 159

“Mandatos del shell Korn o shell POSIX” en la página 184

“Mandatos del shell Korn o shell POSIX” en la página 165

“Alias de mandatos en el shell Korn o shell POSIX” en la página 170

“Sustitución de parámetros en el shell Korn o shell POSIX” en la página 172

“Sustitución de mandatos en el shell Korn o shell POSIX” en la página 176

“Evaluación aritmética en el shell Korn o shell POSIX” en la página 177

“Subdivisión de campos en el shell Korn o shell POSIX” en la página 179

“Sustitución del nombre del archivo en el shell Korn o POSIX” en la página 179

“Eliminación de delimitadores” en la página 180

“Redirección de entrada y de salida en el shell Korn o shell POSIX” en la página 181

Capítulo 11. Shells 209


“Control de trabajos en el shell Korn o shell POSIX” en la página 199

“Edición en línea en el shell Korn o shell POSIX” en la página 200

Los mandatos ksh y stty.

Los mandatos del shell Korn alias, cd, export, fc, getopts, read, set y typeset.

El archivo /etc/passwd.

“Shell Bourne”

“Shell C” en la página 227

Shell Bourne
El shell Bourne es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. El
mandato bsh ejecuta el shell Bourne.

El shell Bourne puede ejecutarse como un shell de inicio de sesión o como un subshell bajo el shell de
inicio de sesión. Sólo el mandato login puede llamar al shell Bourne como shell de inicio de sesión. Para
ello, éste utiliza un formato especial del nombre de mandato bsh: -bsh. Cuando la llamada se realiza con
un guión inicial (-), el shell lee y ejecuta en primer lugar los mandatos que se encuentran en el archivo
/etc/profile del sistema y en el archivo $HOME/.profile, si existe. El archivo /etc/profile establece las
variables que necesitan todos los usuarios. Finalmente, el shell está preparado para leer los mandatos de
la entrada estándar.

Si se especifica el parámetro Archivo [Parámetro] al iniciarse el shell Bourne, el shell ejecuta el archivo de
script que el parámetro Archivo identifica, incluidos los parámetros especificados. El archivo de script
especificado debe disponer de permiso de lectura; los valores setuid y setgid se pasan por alto. A
continuación se leen los mandatos. No deberá especificarse un archivo de script si se utiliza el distintivo
-c o -s.

Entorno de shell Bourne


Todas la variables (y los valores que se asocian a éstas) que un mandato puede reconocer al inicio de su
ejecución constituyen su entorno. Este entorno incluye variables que un mandato hereda de sus variables
y proceso padre especificados como palabras clave en la línea de mandatos que llama al mandato.

El shell pasa a sus procesos hijo las variables con nombre como argumentos para el mandato export
incorporado. Este mandato coloca las variables con nombre en los entornos del shell y de sus futuros
procesos hijo.

Los parámetros de palabra clave son pares variable-valor que aparecen en forma de asignaciones, por lo
general antes del nombre del procedimiento en una línea de mandatos (pero véase también el distintivo
del mandato set). Estas variables se colocan en el entorno del procedimiento que está llamándose.

Por ejemplo, veamos el siguiente procedimiento simple, que visualiza los valores de dos variables
(guardadas en un archivo de mandatos denominado key_command):
# key_command
echo $a $b

Las líneas de mandatos siguientes generan la salida que se muestra a continuación:

210 Guía del usuario del sistema: Sistema operativo y dispositivos


Input Output
a=key1 b=key2 key_command key1 key2
a=tom b=john key_command tom john

Los parámetros de palabra clave de un procedimiento no se incluyen en el número total de parámetros


que se almacena en $#.

Un procedimiento puede acceder a los valores de las variables de su entorno. No obstante, si cambia
alguno de estos valores, los cambios no se reflejan en el entorno de shell. Son locales para el
procedimiento en cuestión. Para colocar los cambios en el entorno que el procedimiento pasa a sus
procesos hijo, deberá exportar los nuevos valores que están dentro de ese procedimiento.

Para obtener una lista de las variables que pueden exportarse desde el shell actual, escriba:
export

Pulse Intro.

Para obtener una lista de las variables de sólo lectura del shell actual, escriba:
readonly

Pulse Intro.

Para obtener una lista de los pares variable-valor del entorno actual, escriba:
env

Pulse Intro.

Para obtener más información acerca de los entornos de usuario, consulte el apartado “Archivo
/etc/environment” en la página 143

Shell restringido
El shell restringido se utiliza para definir nombres de inicio de sesión y entornos de ejecución cuyas
posibilidades están más controladas que las del shell Bourne. El mandato Rsh o bsh -r abre el shell
restringido. El comportamiento de estos mandatos es idéntico al del mandato bsh, a excepción de que no
están permitidas las acciones siguientes:
v Cambiar de directorio (con el mandato cd).
v Establecer el valor de las variables PATH o SHELL.
v Especificar nombres de vías de acceso o de mandatos que contengan una barra inclinada (/).
v Restringir la salida.

Si el shell restringido determina que un mandato a ejecutar es un procedimiento de shell, utiliza el shell
Bourne para ejecutar el mandato. De este modo, es posible proporcionar a un usuario final
procedimientos de shell que accedan a la plena potencia del shell Bourne al mismo tiempo que impone un
menú limitado de mandatos. En este esquema se da por supuesto que el usuario final no dispone de
permisos de grabación y ejecución en el mismo directorio.

Si se especifica el parámetro Archivo [Parámetro] al iniciarse el shell Bourne, el shell ejecuta el archivo de
script que el parámetro Archivo identifica, incluidos los parámetros especificados. El archivo de script
especificado debe tener permiso de lectura. Los valores setuid y setgid de los archivos de script se
pasan por alto. El shell lee a continuación los mandatos.

Nota: No debe especificar un archivo de script si utiliza el distintivo -c o -s.

Capítulo 11. Shells 211


Cuando se inicia con el mandato Rsh, el shell aplica restricciones tras interpretar los archivos .profile y
/etc/environment. Por lo tanto, la persona encargada de escribir el archivo .profile tiene control total
sobre las acciones del usuario, pues realiza las acciones de configuración y sitúa al usuario en un
directorio adecuado (probablemente, distinto del directorio de inicio de sesión). Un administrador puede
crear un directorio de mandatos en el directorio /usr/rbin que el mandato Rsh puede utilizar cambiando la
variable PATH para que contenga el directorio. Si se ha iniciado con el mandato bsh -r, el shell aplica
restricciones al interpretar los archivos .profile.

Cuando se llama con el nombre Rsh, el shell restringido lee el archivo .profile del usuario
($HOME/.profile). Actúa como un shell Bourne normal mientras realiza esta operación, a excepción de
que una interrupción da lugar a una salida inmediata en lugar de a un retorno al nivel de los mandatos.
v “Información relacionada con el shell Bourne” en la página 227

Mandatos del shell Bourne


Cuando emite un mandato en el shell Bourne, primero éste evalúa el mandato y efectúa todas las
sustituciones indicadas. A continuación, éste ejecuta el mandato, siempre que:
v El nombre de mandato es un mandato especial incorporado del shell Bourne
O BIEN
v El nombre de mandato coincide con el nombre de una función definida. Si es así, el shell establece los
parámetros de posición en los parámetros de la función.

Si el nombre del mandato no coincide ni con un mandato incorporado ni con el nombre de una función
definida y el mandato especifica el nombre de un archivo ejecutable que es un programa compilado
(binario), el shell (como padre) arranca un nuevo proceso (hijo) que ejecuta inmediatamente el programa.
Si el archivo está marcado como ejecutable, pero no es un programa compilado, el shell presupone que
es un procedimiento de shell. En este caso, el shell arranca otra instancia de sí mismo (un subshell), para
leer el archivo y ejecutar los mandatos que éste incluye. El shell también ejecuta un mandato entre
paréntesis en un subshell. Para el usuario final, se ejecuta un programa compilado exactamente del
mismo modo que un procedimiento de shell. El shell normalmente busca mandatos en directorios del
sistema de archivos, en este orden:
1. /usr/bin
2. /etc
3. /usr/sbin
4. /usr/ucb
5. $HOME/bin
6. /usr/bin/X11
7. /sbin
8. Directorio actual

El shell busca en cada directorio, por orden, continuando con el siguiente directorio si no puede encontrar
el mandato.

Nota: El orden en el que el shell realiza la búsqueda en los directorios lo determina la variable
PATH. Puede cambiar la secuencia particular de los directorios en los que ha de buscarse
estableciendo nuevamente la variable PATH.

Si proporciona un nombre de vía de acceso específico al ejecutar un mandato (por ejemplo,


/usr/bin/sort), el shell no buscará en ningún directorio que no sea el especificado. Si el nombre del
mandato contiene una barra inclinada (/), el shell no utilizará la vía de búsqueda.

212 Guía del usuario del sistema: Sistema operativo y dispositivos


Puede especificar un nombre completo de vía de acceso que empiece por el directorio raíz (como
/usr/bin/sort). También puede especificar un nombre de vía de acceso relativo al directorio actual. Por
ejemplo, si especifica
bin/myfile

el shell buscará en el directorio actual un directorio denominado bin y en el directorio del archivo myfile.

Nota: El shell restringido no ejecuta mandatos que contengan una barra inclinada (/).

El shell recuerda la ubicación de la vía de búsqueda de cada mandato ejecutado (para evitar posteriores
mandatos exec innecesarios). Si encuentra el mandato en un directorio relativo (cuyo nombre no
comienza por /), el shell debe volver a determinar la ubicación del mandato siempre que cambie el
directorio actual. El shell olvida todas las ubicaciones recordadas cada vez que cambia la variable PATH o
ejecuta el mandato hash -r.

En este apartado se explica lo siguiente:


v “Caracteres delimitadores”
v “Manejo de señales” en la página 214
v “Mandatos incorporados del shell Bourne” en la página 215
v “Sustitución de mandatos en el shell Bourne” en la página 219
v “Información relacionada con el shell Bourne” en la página 227

Caracteres delimitadores
Muchos caracteres tienen un significado especial para el shell. Algunas veces deseará conocer dicho
significado. Los apóstrofos (’) y comillas (″) delimitando una serie o una barra inclinada invertida (\) antes
de un carácter le permiten adivinar el significado del carácter.

Todos los caracteres, excepto los apóstrofos delimitadores, se interpretan literalmente, eliminando
cualquier significado especial. De este modo, el mandato:
stuff='echo $? $*; ls * | wc'

asigna la serie literal echo $? $*; ls * | wc a la variable stuff. El shell no ejecuta los mandatos echo,
ls y wc ni expande las variables $?$* y el carácter especial * (asterisco).

Dentro de las comillas dobles, el significado especial de los caracteres $ (signo del dólar), ′ (acento grave)
y ″ (comillas dobles) siguen teniendo aplicación, mientras que todos los demás caracteres se toman
literalmente. De este modo, dentro de comillas, se efectúa la sustitución de mandatos y variables.
Además, los delimitadores no afectan a los mandatos de una sustitución de mandatos que es parte de la
serie delimitada, de forma que los caracteres conservan su significado especial.

Considere la siguiente secuencia:


ls *
file1 file2 file3
message="Este directorio contiene ′ls * ′ "
echo $message
Este directorio contiene file1 file2 file3

Esto muestra que el carácter especial * (asterisco) dentro de la sustitución de mandatos se ha expandido.

Para ocultar el significado especial de los caracteres $ (signo de dólar), ′ (apóstrofo invertido) y ″
(comillas) delimitados por comillas, preceda dichos caracteres con una barra inclinada invertida (\).
Cuando no utilice delimitadores, preceder un carácter con una barra inclinada invertida es equivalente a

Capítulo 11. Shells 213


situarlo entre delimitadores. Por tanto, una barra inclinada invertida precediendo un carácter de nueva
línea (es decir, una barra inclinada invertida al final de la línea) oculta el carácter de nueva línea y le
permite continuar la línea de mandatos en la siguiente línea física.

Manejo de señales
El shell pasa por alto las señales INTERRUPT y QUIT para un mandato invocado si el mandato finaliza
con un & (ampersand); es decir, si se ejecuta como proceso de fondo. De lo contrario, las señales tienen
los valores heredados del shell por su padre con la excepción de la señal SEGMENTATION VIOLATION.
Para obtener más información, consulte el mandato trap incorporado del shell Bourne.

Mandatos compuestos del shell Bourne


Un mandato compuesto es uno de los siguientes:
v Conducto (uno o más mandatos simples separados por el símbolo | (conducto))
v Lista de mandatos simples
v Mandato que comienza por una palabra reservada
v Mandato que comienza por el operador de control ( (paréntesis de apertura).

A menos que se indique lo contrario, el valor devuelto por un mandato compuesto es el del último
mandato simple ejecutado.

Palabras reservadas
Las palabras reservadas siguientes sólo se reconocen cuando aparecen sin comillas como primera
palabra de un mandato:
for do done
case esac
if then fi
elif else
while until
{ }
( )

for Identificador [in Establece el parámetro Identificador en la palabra o palabras que el parámetro
Palabra . . .] do Lista done Palabra especifica (de una en una) y ejecuta los mandatos que se especifican en el
parámetro Lista. Si omite inPalabra . . ., el mandato for ejecuta el parámetro Lista
para cada parámetro de posición que se haya establecido y el proceso finaliza
cuando se han utilizado todos los parámetros de posición.
case Palabra in Patrón Ejecuta los mandatos que se han especificado en el parámetro Lista que se asocian
[|Patrón] . . . ) Lista;; [Patrón al primer parámetro Patrón que coincide con el valor del parámetro Palabra. Utiliza
[|Patrón] . . . ) Lista;;] . . . la misma notación coincidente de caracteres en patrones que se utilizan para
esac sustitución de nombres de archivo, excepto que una / (barra inclinada) punto . inicial
o un punto que sigue inmediatamente a una barra inclinada no tiene por qué
coincidir explícitamente.
if Lista then Lista [elif Lista Ejecuta los mandatos que se han especificado en el parámetro Lista que sigue al
then Lista] . . . [else Lista] fi mandato if. Si el mandato devuelve un valor de salida que sea cero, el shell ejecuta
el parámetro Lista que sigue al primer mandato then. De lo contrario, ejecuta el
parámetro Lista que sigue al mandato elif (si existe). Si este valor de salida es cero,
el shell ejecuta el parámetro Lista que sigue al siguiente mandato then. Si el
mandato devuelve un valor de salida distinto de cero, el shell ejecuta el parámetro
Lista que sigue al mandato else (si existe). Si no se realiza ningún else Lista o then
Lista, el mandato if devuelve un valor de salida cero.

214 Guía del usuario del sistema: Sistema operativo y dispositivos


while Lista do Lista done Ejecuta los mandatos que se han especificado en el parámetro Lista que sigue al
mandato while. Si el valor de salida del último mandato de while Lista es cero, el
shell ejecuta el parámetro Lista que sigue al mandato do. Continúa la repetición en
bucle por las listas hasta que el valor de salida del último mandato de while Lista es
distinto de cero. Si no se ejecutan ningún mandato en do Lista, el mandato while
devuelve un valor de salida cero.
until Lista do Lista done Ejecuta los mandatos que se especifican en el parámetro Lista que sigue al mandato
until. Si el valor de salida del último mandato de until Lista es distinto de cero,
ejecuta el parámetro Lista que sigue al mandato do. Continúa la repetición en bucle
por las listas hasta que el valor de salida del último mandato de until Lista es cero.
Si no se ejecuta ningún mandato en do Lista, el mandato until devuelve un valor de
salida cero.
( Lista ) Ejecuta los mandatos del parámetro Lista en un subshell.
{ Lista; } Ejecuta los mandatos del parámetro Lista en el proceso de shell actual y no inicia un
subshell.
Nombre () { Lista } Define una función a la que el parámetro Nombre hace referencia. El cuerpo de la
función es la lista de mandatos entre las llaves especificadas por el parámetro Lista.

Mandatos incorporados del shell Bourne


Los mandatos especiales se crean en el shell Bourne y se ejecutan en el proceso del shell. A no ser que
se indique lo contrario, la salida se graba en el descriptor de archivo 1 (stdout) y el estado de la salida es
0 (cero) si el mandato no contiene ningún error de sintaxis. Se permite la redirección de entrada y de
salida.

Consulte el apartado “Lista de mandatos incorporados del shell Bourne” en la página 226 para ver un
listado alfabético de estos mandatos.

Los siguientes mandatos especiales se tratan de forma algo distinta a otros mandatos especiales
incorporados:
: (dos puntos) exec shift
. (punto) exit times
break export trap
continue readonly wait
eval return

El shell Bourne procesa estos mandatos de este modo:


v Las listas de asignaciones de parámetros de palabra clave que preceden el mandato permanecen en
vigor cuando se completa el mandato.
v Las redirecciones de E/S se procesan después de las asignaciones de parámetros.
v Los errores de un script de shell hacen que el script detenga el proceso.

Descripciones de mandatos especiales


El shell Bourne proporciona los siguientes mandatos especiales incorporados:

Mandatos
incorporados
: Devuelve un valor de salida de cero.
. Archivo Lee y ejecuta mandatos del parámetro Archivo y vuelve. No inicia un subshell. El shell utiliza
la vía de búsqueda especificada por la variable PATH para localizar el directorio que
contiene el archivo especificado.
break [ n ] Sale de los bucles delimitadores del mandato for, while o until, si existe alguno. Si
especifica la variable n, el mandato break realizará interrupciones basándose en el número
de niveles que se especifica mediante la variable n.

Capítulo 11. Shells 215


Mandatos
incorporados
continue [ n ] Reanuda la siguiente iteración de los bucles delimitadores del mandato for, while o until. Si
especifica la variable n, el mandato se reanudará en el bucle delimitador que ocupe la
posición n.
cd Directorio ] Cambia del directorio actual a Directorio. Si no especifica Directorio, se utilizará el valor de la
variable de shell HOME. La variable de shell CDPATH define la vía de búsqueda de
Directorio. CDPATH es una lista de nombres de directorios alternativos separados mediante
signos de dos puntos. Un nombre de vía de acceso nulo especifica el directorio actual (que
es la vía de acceso por omisión). Este nombre de vía de acceso nulo aparece
inmediatamente después del signo igual en la asignación o entre los delimitadores de dos
puntos en cualquier parte de la lista de vías de acceso. Si Directorio empieza por / (una
barra inclinada), el shell no utiliza la vía de búsqueda. De lo contrario, el shell busca en cada
directorio de la variable de shell CDPATH.

Nota: El shell restringido no puede ejecutar el mandato de shell cd.


echo Serie . . . ] Graba series de caracteres a salida estándar. Consulte el mandato echo para obtener
información acerca de su utilización y parámetros. El distintivo -n no recibe soporte.
eval [ Lee los argumentos como entrada al shell y ejecuta el mandato o mandatos resultantes.
Argumento . . . ]
exec [ Ejecuta el mandato que especifica el parámetro Argumento en lugar de este shell sin crear
Argumento . . . ] un nuevo proceso. Pueden aparecer argumentos de entrada y de salida y, si no aparecen
otros argumentos, hacen que se modifique la entrada o salida del shell. Esto no se
recomienda para el shell de inicio de sesión.
exit [ n ] Da lugar a que un shell salga con el valor de salida que el parámetro n especifica. Si omite
este parámetro, el valor de salida será el del último mandato ejecutado (la secuencia de
teclas Control-D también provoca la finalización del shell). El valor del parámetro n puede
estar comprendido entre el 0 y el 255, inclusive.
export [ Marca los nombres especificados para su exportación automática a los entornos de los
Nombre . . . ] mandatos que se ejecutarán posteriormente. Si no especifica el parámetro Nombre, el
mandato export visualizará una lista con todos los nombres que se han exportado en este
shell. No puede exportar nombres de función.
hash [ -r ][ Busca y recuerda la ubicación en la vía de búsqueda de cada Mandato especificado. El
Mandato . . . ] distintivo -r hace que el shell olvide todas las ubicaciones. Si no especifica el distintivo o
ningún mandato, el shell mostrará información acerca de los mandatos recordados en el
siguiente formato:
Hits Cost Command
Hits indica el número de veces que el proceso de shell ha ejecutado un mandato. Cost es
una medida del trabajo necesario para localizar un mandato en la vía de búsqueda. Command
muestra los nombres de vías de acceso de cada mandato especificado. Ciertas situaciones
requieren que se vuelva a calcular la ubicación de un mandato; por ejemplo, la ubicación de
un nombre de vía de acceso relativa cuando cambia el directorio actual. Los mandatos para
los que podría realizarse se indican mediante un * (asterisco) junto a la información de Hits.
Cost aumenta cuando se efectúa el nuevo cálculo.
pwd Muestra el directorio actual. Consulte el mandato pwd para ver una explicación de opciones
de mandato.
read [ Nombre . . . ] Lee una línea de la entrada estándar. Asigna la primera palabra de la línea al primer
parámetro Nombre, la segunda palabra al segundo parámetro Nombre, y así sucesivamente,
asignando las palabras restantes al último parámetro Nombre. Este mandato devuelve un
valor de 0 a no ser que encuentre un carácter de fin de archivo.
readonly [ Marca el nombre que especifica el parámetro Nombre como de sólo lectura. El valor del
Nombre . . . ] nombre no puede restablecerse. Si no especifica ningún Nombre, el mandato readonly
visualiza una lista con todos los nombres de sólo lectura.
return [ n ] Da lugar a que una función salga con un valor de retorno n. Si no especifica la variable n, la
función devuelve el estado del último mandato ejecutado en esa función. Este mandato sólo
es válido cuando se ejecuta en una función de shell.

216 Guía del usuario del sistema: Sistema operativo y dispositivos


Mandatos
incorporados
set [ Distintivo [ Define uno o más de los siguientes distintivos:
Argumento ] . . . ]
-a
Marca para exportación todas las variables a las que se efectúa una asignación. Si
la asignación precede al nombre de un mandato, el atributo de exportación sólo es
vigente para el entorno de ejecución de dicho mandato, excepto cuando la
asignación precede a uno de los mandatos especiales incorporados. En este caso,
el atributo de exportación persiste después de que se ha completado el mandato
incorporado. Si la asignación no precede el nombre de un mandato o si la
asignación es resultado de la operación de los mandatos getopts o read, el atributo
de exportación persiste hasta que se elimina la definición de la variable.
-e Sale inmediatamente si existen todas las siguientes condiciones para un mandato:
v Sale con un valor de retorno mayor que 0 (cero).
v No es parte de la lista compuesta de un mandato while, until o if.
v No se prueba utilizando listas AND u OR.
v No es un conducto precedido de la palabra reservada ! (signo de admiración).
-f Inhabilita la sustitución de nombres de archivo.
-h Localiza y recuerda los mandatos llamados en funciones a medida que se definen
las funciones. (Normalmente, estos mandatos se localizan cuando se efectúa la
función; vea el mandato hash.)
-k Sitúa todos los parámetros de palabra clave en el entorno de un mandato, no sólo
aquellos que preceden el nombre de mandato.
-n Lee mandatos, pero no los ejecuta. El distintivo -n puede utilizarse para comprobar
si existen errores de sintaxis en el script de shell.
-t Sale después de leer y ejecutar un mandato.
-u Trata una variable sin definir como un error y sale inmediatamente cuando efectúa
la sustitución de variables. Un shell interactivo no sale.
-v Muestra las líneas de entrada del shell a medida que se leen.
-x Muestra los mandatos y sus argumentos antes de que se ejecuten.
— No cambia ninguno de los distintivos. Resulta útil al establecer el parámetro de
posición $1 para una serie de caracteres que empiece por un guión (-).
La utilización de un signo más (+) en lugar de un guión (-) elimina el establecimiento de los
distintivos. También puede especificar estos distintivos en la línea de mandatos del shell. La
variable especial $- contiene el conjunto actual de distintivos.

Cualquier Argumento para el mandato set pasa a ser un parámetro posicional y se asigna,
por orden, a $1, $2, etc. Si no especifica un distintivo o un Argumento, el mandato set
visualizará todos los nombres y valores de las variables actuales del shell.
shift [n] Desplaza argumentos de línea de mandatos a la izquierda; es decir, reasigna el valor de los
parámetros posicionales desechando el valor actual de $1 y asignando el valor de $2 a $1,
de $3 a $2, etc. Si existen más de 9 argumentos de línea de mandatos, el décimo se
asignará a $9 y los restantes quedarán sin asignación (hasta después de ejecutarse otro
shift). Si existen 9 argumentos o menos, el mandato shift eliminará el establecimiento del
parámetro de posición con la numeración más alta que tenga un valor.

El parámetro de posición $0 nunca se desplaza. El mandato shift n es una notación


abreviada que especifica el número n de desplazamientos consecutivos. El valor por omisión
del parámetro n es 1.
test Expresión | [ Evalúa expresiones condicionales. Consulte el mandato test para obtener información acerca
Expresión ] de los distintivos y parámetros del mandato. El distintivo -h no está soportado por el mandato
test incorporado en bsh.

Capítulo 11. Shells 217


Mandatos
incorporados
times Muestra las horas de usuario y del sistema totales para procesos que se ejecutan desde el
shell.
trap [ Mandato ] [ n Ejecuta el mandato que especifica el parámetro Mandato cuando el shell recibe la señal o
] . . . señales que se especifican mediante el parámetro n. Los mandatos trap se ejecutan por
orden de número de señal. Cualquier intento de definir una ruptura o una señal que se
ignoró en la entrada al shell actual no es efectivo.

Nota: El shell explora el parámetro Mandato una vez cuando se establece la ruptura y
nuevamente cuando se acepta la ruptura.

Si no especifica un mandato, todas las rupturas que especifica el parámetro n volverán a


establecerse en sus valores actuales. Si especifica una serie nula, el shell y los mandatos
que llama ignoran esta señal. Si el parámetro n es cero (0), el mandato especificado se
ejecutará cuando salga del shell. Si no especifica un mandato o señal, el mandato trap
muestra una lista de mandatos asociados con cada número de señal.
type [Nombre . . . ] Para cada Nombre especificado, indica cómo los interpretaría el shell como un nombre de
mandato.
ulimit [-HS] [ -c | -d | Muestra o ajusta recursos del shell asignados. Existen dos modalidades para visualizar los
-f | -m | -s | -t] [límite] valores de recursos del shell, que pueden visualizarse individualmente o como un grupo. La
modalidad por omisión es visualizar recursos definidos en el valor limitado o el límite inferior
como un grupo.

El valor de recursos de shell depende del ID de usuario vigente del shell actual. El nivel fijo
de un recurso sólo puede definirse si el ID de usuario vigente del shell actual es raíz.
Recibirá un error si el usuario no es root e intenta definir el nivel fijo de un recurso. Por
omisión, el usuario root define los límites fijos y limitados de un recurso particular. Por lo
tanto, el usuario root debe tener cuidado al utilizar los valores de la utilización de límites del
distintivo -S, -H o del distintivo por omisión. A menos que sea un usuario root, sólo podrá
establecer el límite flexible de un recurso. Una vez que un usuario no root ha reducido un
límite, no puede aumentarse, incluso al límite del sistema original.

Para definir un límite de recurso, seleccione el distintivo apropiado y el valor límite del nuevo
recurso, que debe ser un entero. Sólo podrá establecer un límite de recurso cada vez. Si se
especifica más de un distintivo de recurso, recibirá resultados indefinidos. Por omisión, ulimit
con sólo un nuevo valor en la línea de mandatos establece el tamaño de archivo del shell.
La utilización del distintivo -f es opcional.

Puede especificar los distintivos del mandato ulimit siguientes:


-c Define o muestra segmentos de imagen de memoria para el shell.
-d Define o muestra segmentos de datos para el shell.
-f Define o muestra el tamaño de archivos para el shell.
-H Define o muestra límites fijos de recursos (sólo usuario root).
-m Define o muestra memoria para el shell.
-s Define o muestra segmentos de pila para el shell.
-S Define o muestra límites limitados de recursos.
-t Define o muestra el máximo de tiempo CPU para el shell.
umask [nnn] Determina los permisos de archivo. Este valor, junto con los permisos del proceso de
creación, determina los permisos de un archivo cuando se crea el archivo. El valor por
omisión es 022. Cuando no se entra ningún valor, umask muestra el valor actual.
unset [Nombre . . .] Elimina la variable o función correspondiente para cada nombre que especifique el parámetro
Nombre. No puede eliminarse la definición de las variables de shell PATH, PS1, PS2,
MAILCHECK e IFS.

218 Guía del usuario del sistema: Sistema operativo y dispositivos


Mandatos
incorporados
wait [n] Espera a que el proceso hijo cuyo número de proceso especifica el parámetro n salga y, a
continuación, devuelve el estado de salida de ese proceso. Si no especifica el parámetro n,
el shell esperará a todos los procesos hijo actualmente activos y el valor de retorno será 0.

Sustitución de mandatos en el shell Bourne


La sustitución de mandatos le permite capturar la salida de cualquier mandato como un argumento para
otro mandato. Cuando especifica una línea de mandatos dentro de acentos graves(′′), el shell ejecuta en
primer lugar el mandato o mandatos y, a continuación, sustituye la expresión completa, incluidos los
acentos graves, por la salida. Esta función suele utilizarse para proporcionar valores a las variables de
shell. Por ejemplo, la sentencia:
today=′date′

asigna una serie de caracteres que representa la fecha actual para la variable today. La siguiente
asignación guarda, en la variable files, el número de archivos del directorio actual:
files=′ls | wc -l′

Puede efectuar sustitución de mandatos en cualquier mandato que grabe a salida estándar.

Para anidar la sustituciones de mandatos, especifique delante de cada uno de los acentos graves
anidados una barra inclinada invertida (\), como en el ejemplo siguiente:
logmsg=′echo El directorio de inicio de sesión es \′pwd\′′

También puede especificar valores para las variables del shell de forma indirecta utilizando el mandato
especial read. Este mandato toma una línea de la entrada estándar (usualmente el teclado) y asigna
palabras consecutivas en dicha línea a cualquier variable designada. Por ejemplo:
read first init last

toma una línea de entrada en el formato:


J. Q. Public

y tiene el mismo efecto que si hubiera escrito:


first=J. init=Q. last=Public

El mandato especial read asigna las palabras de exceso a la última variable.

Sustitución de variables y nombres de archivo en el shell Bourne


El shell Bourne le permite efectuar sustituciones de variables y nombres de archivo.

Los siguientes apartados le ofrecen información acerca de cómo crear y sustituir variables en el shell
Bourne:
v “Sustitución de variables en el shell Bourne” en la página 220
v “Variables definidas por el usuario” en la página 220
v “Sustitución condicional” en la página 223
v “Parámetros de posición” en la página 224
v “Sustitución de nombres de archivos en el shell Bourne” en la página 225
v “Clases de caracteres” en la página 225

Capítulo 11. Shells 219


Sustitución de variables en el shell Bourne
El shell Bourne dispone de varios mecanismos para crear variables (asignar el valor de una serie a un
nombre). Ciertas variables, parámetros posicionales y parámetros de palabra clave se definen
normalmente únicamente en una línea de mandatos. Otras variables son simplemente nombres a los que
el usuario o el shell puede asignar valores de serie.

Variables definidas por el usuario


El shell reconoce variables alfanuméricas a las que pueden asignarse valores de series. Para asignar un
valor de serie a un nombre, escriba:
Nombre=Serie

Pulse Intro.

Un nombre es una secuencia de letras, dígitos y subrayados que comienza por un subrayado o una letra.
Para utilizar el valor que ha asignado a una variable, añada un símbolo de dólar ($) al principio de su
nombre. De esta forma, la variable $Nombre produce el valor que especifica la variable Serie. Observe
que no existen espacios alrededor del signo igual (=) en una sentencia de asignación. (No pueden
aparecer parámetros posicionales en una sentencia de asignación. Sólo pueden establecerse como se
describe en el apartado “Parámetros de posición” en la página 224.) Puede situar más de una asignación
en una línea de mandatos, pero recuerde que el shell efectúa las asignaciones de derecha a izquierda.

Si especifica la variable Serie entre comillas dobles o comillas simples (″ o ’), el shell no tratará los
blancos, las tabulaciones, los caracteres de punto y coma y los caracteres de nueva línea que están
dentro de la serie como delimitadores de palabra, sino que los intercalará literalmente en la serie.

Si especifica la variable Serie entre comillas dobles (″), el shell seguirá reconociendo los nombres de
variables de la serie y realizará la sustitución de las variables; es decir, sustituirá las referencias a los
parámetros de posición y otros nombres de variables precedidos por el símbolo del dólar ($) por sus
valores correspondientes, si existen. El shell también efectúa sustitución de mandatos en series que están
delimitadas por comillas.

Si especifica la variable Serie entre comillas simples (’), el shell no sustituirá las variables o mandatos que
están dentro la serie. En la secuencia siguiente se muestra un ejemplo de esta diferencia:
You: num=875
number1="Añadir $num"
number2='Añadir $num'
echo $number1
System: Add 875
You: echo $number2
System: Add $num

El shell no reinterpreta los blancos de las asignaciones después de la sustitución de variables. De este
modo, las siguientes asignaciones dan como resultado que $first y $second tengan el mismo valor:
first='una serie con blancos intercalados'
second=$first

Cuando hace referencia a una variable, puede especificar el nombre de la variable (o el dígito que
designa a un parámetro de posición) entre { } para delimitar el nombre de la variable de cualquier serie
que le siga. En particular, si el carácter que sigue inmediatamente al nombre es una letra, un dígito o un
subrayado y la variable no es un parámetro de posición, es necesario utilizar llaves:

220 Guía del usuario del sistema: Sistema operativo y dispositivos


You: a='Esto es un'
echo "${a}n ejemplo"
System: Esto es un ejemplo
You: echo "$a prueba"
System: Esto es una prueba

Consulte el apartado “Sustitución condicional” en la página 223 para obtener información acerca de una
utilización diferente de las llaves en las sustituciones de variables.

Variables que utiliza el shell


El shell utiliza las siguientes variables. Aunque el shell establece algunas de ellas, puede establecer o
volver a establecer personalmente todas las variables:

CDPATH Especifica la vía de búsqueda para el mandato cd (cambiar directorio).


HOME Indica el nombre del directorio de inicio de sesión, el directorio que se convierte en el directorio
actual al completarse un inicio de sesión. El programa login inicializa esta variable. El mandato
cd utiliza el valor de la variable $HOME como valor por omisión.Utilizando esta variable en
lugar de un nombre de vía de acceso explícito en un procedimiento de shell permite que el
procedimiento se ejecute desde un directorio distinto sin alteraciones.
IFS Caracteres que son separadores de campo internos (los caracteres que el shell utiliza durante
la interpretación de los blancos; consulte el apartado “Interpretación de los blancos” en la
página 223). El shell define inicialmente la variable IFS para que incluya los caracteres blanco,
tabulación y nueva línea.
LANG Determina el entorno local que ha de utilizarse para las categorías de entorno local cuando la
variable LC_ALL y la variable de entorno correspondiente (que empieza por LC_) no
especifican un entorno local. Para obtener más información acerca de los entornos locales,
consulte el apartado ″Locale Overview″ de la publicación AIX 5L Version 5.1 System
Management Concepts: Operating System and Devices.
LC_ALL Determina el entorno local que ha de utilizarse para alterar temporalmente los valores de las
categorías de entorno local que especifican los valores de la variable de entorno LANG o
cualquier variable de entorno que empiece por LC_. Para obtener más información acerca de
escenarios y la variable de entorno LANG, consulte el apartado Locale Overview″ en la
publicación AIX 5L Version 5.1 System Management Concepts: Operating System and
Devices.
LC_COLLATE Define el orden de clasificación a utilizar cuando se ordenen nombres y cuando se produzcan
rangos de caracteres en patrones. Para obtener información acerca de los entornos locales y
acerca de la variable de entorno LANG, consulte el apartado ″Locale Overview″ en la
publicación AIX 5L Version 5.1 System Management Concepts: Operating System and
Devices.
LC_CTYPE Determina el entorno local para la interpretación de secuencias de bytes de datos de texto
como caracteres (es decir, caracteres de un solo byte frente a caracteres de varios bytes de
los argumentos y archivos de entrada), qué caracteres se han definido como letras (clase de
caracteres alpha) y el comportamiento de las clases de caracteres dentro de la patrones de
coincidencia. Para obtener más información acerca de los entornos locales, consulte el
apartado ″Locale Overview″ de la publicación AIX 5L Version 5.1 System Management
Concepts: Operating System and Devices.
LC_MESSAGES Determina el idioma en que deben escribirse los mensajes. Para obtener información acerca
de escenarios y la variable de entorno LANG, consulte el apartado ″Locale Overview″ en la
publicación AIX 5L Version 5.1 System Management Concepts: Operating System and
Devices.
LIBPATH Especifica la vía de búsqueda para bibliotecas compartidas.
LOGNAME Especifica el nombre de inicio de sesión, marcado como readonly en el archivo /etc/profile.
MAIL Indica el nombre de la vía de acceso del archivo utilizado por el sistema de correo para
detectar la llegada de correo nuevo. Si se establece esta variable, el shell comprueba
periódicamente la hora de modificación de este archivo y visualiza el valor de $MAILMSG si la
hora ha cambiado y si la longitud del archivo es mayor que 0. Establezca la variable MAIL en
el archivo .profile. El valor que los usuarios del mandato mail le asignan normalmente es
/usr/spool/mail/$LOGNAME.

Capítulo 11. Shells 221


MAILCHECK Número de segundos que el shell espera antes de volver a comprobar la llegada de correo en
los archivos que especifican las variables MAILPATH o MAIL. El valor por omisión es 600
segundos (10 minutos). Si define la variable MAILCHECK a 0, el shell efectúa la comprobación
antes de cada solicitud.
MAILMSG El mensaje de notificación de correo. Si establece explícitamente la variable MAILMSG en una
serie nula (MAILMSG=″″), no se visualizará ningún mensaje.
MAILPATH Una lista de nombres de archivo separada por signos de dos puntos. Si define esta variable, el
shell le informará de la llegada de correo en cualquier de los archivos especificados en la lista.
Tras el nombre de cada archivo puede especificar un carácter % y el mensaje que ha de
visualizarse cuando llegue correo. De lo contrario, el shell utilizará el valor de la variable
MAILMSG o, por omisión, el mensaje [TIENE CORREO NUEVO].

Nota: Cuando se establece la variable MAILPATH, se comprueban esos archivos en


lugar del archivo que establece la variable MAIL. Para comprobar los archivos definidos
por la variable MAILPATH y el archivo definido por la variable MAIL, especifique el
archivo MAIL en la lista de archivos MAILPATH.
PATH La vía de búsqueda para mandatos, que es una lista ordenada de nombres de vías de acceso
de directorios separadas por dos puntos. El shell busca en dichos directorios en el orden
especificado cuando busca mandatos. Una serie nula en cualquier parte de la lista representa
el directorio actual.

La variable PATH suele inicializarse en el archivo /etc/environment, por lo general, en


/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin. Puede redefinir esta variable para que se
ajuste a sus requisitos. La variable PATH que se proporciona en el archivo .profile también
incluye $HOME/bin y el directorio actual.

Si tiene un directorio de mandatos específico de un proyecto, por ejemplo, /project/bin, en el


que desea que se busque antes que en los directorios del sistema estándar, establezca la
variable PATH como se indica a continuación:
PATH=/project/bin:$PATH

El mejor lugar para establecer la variable PATH en un valor distinto del valor por omisión es en
el archivo $HOME/.profile. No puede redefinir la variable PATH si va a ejecutar mandato bajo
el shell restringido.
PS1 La serie que se utilizará como indicador principal del sistema. Un shell interactivo muestra la
serie de este indicador cuando espera entrada. El valor por omisión de la variable PS1 es $
seguido de un espacio en blanco, para los usuarios que no son root.
PS2 El valor de la serie de indicador secundario. Si el shell espera más entrada cuando encuentra
un carácter de nueva línea como entrada, solicita el valor de la variable PS2. El valor por
omisión de la variable PS2 es el carácter >, seguido de un espacio en blanco.
SHACCT El nombre de un archivo que posee. Si se define esta variable, el shell graba un registro
estadístico en el archivo para cada script de shell que se ejecuta. Puede utilizar programas de
contabilidad como acctcom y acctcms para analizar los datos recopilados.
SHELL El nombre de la vía de acceso del shell, que se conserva en el entorno. Esta variable debe
establecerla y exportarla el archivo $HOME/.profile de cada inicio de sesión restringido.
TIMEOUT El número de minutos que un shell permanece inactivo antes de que finalice. Si esta variable
se establece en un valor mayor que cero (0), el shell sale si no se entra un mandato dentro del
número de segundos indicado tras la emisión del indicador PS1. (Tenga en cuenta que el shell
puede compilarse con un límite máximo que no puede superarse para este valor). Un valor de
cero indica sin límite de tiempo.

Variables especiales predefinidas


Varias variables tienen significados especiales. Sólo el shell define las siguientes variables.

$@ Expande los parámetros de posición, empezando por $1. Cada parámetro está separado por un espacio.

Si utiliza ″ ″ para delimitar $@, el shell considera que cada parámetro de posición es una serie separada. Si
no existen parámetros posicionales, el shell Bourne expande la sentencia a una serie nula sin delimitar.

222 Guía del usuario del sistema: Sistema operativo y dispositivos


$* Expande los parámetros de posición, empezando por $1. El shell separa cada parámetro utilizando el primer
carácter del valor de la variable IFS.

Si utiliza ″ ″ para delimitar $*, el shell incluye los valores de los parámetros de posición entre comillas dobles.
Los valores están separados por el primer carácter de la variable IFS.
$# Especifica el número de parámetros posicionales pasados al shell, sin contar el nombre del propio
procedimiento de shell. De esta forma, la variable $# produce el número del parámetro de posición con la
numeración más alta que se ha establecido. Una de las utilizaciones principales de esta variable es comprobar
la presencia del número necesario de argumentos. Sólo son accesibles a través del shell los parámetros
posicionales $0 a $9.Consulte el apartado “Parámetros de posición” en la página 224 para obtener más
información.
$? Especifica el valor de salida del último mandato ejecutado. Su valor es una serie decimal. La mayoría de
mandatos devuelven un valor 0 para indicar que se ha finalizado satisfactoriamente. El propio shell devuelve el
valor actual de la variable $? como valor de salida.
$$ Identifica el número de proceso del proceso actual. Puesto que los números de proceso son exclusivos entre
todos los procesos existentes, esta serie suele utilizarse para generar nombres exclusivos para archivos
temporales.

El ejemplo siguientes ilustra la práctica recomendada de crear archivos temporales en un directorio utilizado
solamente para dicho propósito:
temp=/tmp/$$
ls >$temp
.
.
.
rm $temp
$! Especifica el número de proceso del último proceso en segundo plano que se ha ejecutado utilizando el
terminador &.
$- Una serie que consta de los nombres de los distintivos de ejecución definidos actualmente en el shell.

Interpretación de los blancos


Después de haber realizado la sustitución de variables y de mandatos, el shell explora el resultado en
busca de separadores de campo internos (los que se definen en la variable de shell IFS). El shell divide la
línea en palabras diferentes en cada lugar y encuentra uno o más de dichos caracteres separando cada
palabra distinta con un solo espacio. A continuación retiene los argumentos nulos explícitos (″″ o ’’) y
desecha los argumentos nulos implícitos (los que derivan de los parámetros que no tienen valores).

Sustitución condicional
Por lo general, el shell sustituye la expresión $Variable por el valor de la serie que se ha asignado a la
variable Variable, si existe una. Sin embargo, existe una notación especial que permite la sustitución
condicional, en función de si la variable se ha establecido o no es nula, o ambas cosas. Por definición,
una variable está definida si siempre se le ha asignado un valor. El valor de una variable puede ser la
serie nula, que puede asignarse a una variable de una de las formas siguientes:

A=

bcd=″″

Efg=’’ Asigna la serie nula a A, bcd y Efg.


set ’’ ″″ Define el primer y segundo parámetro posicional en la serie nula y elimina la definición de todos
los demás parámetros posicionales.

A continuación se muestra una lista de las expresiones disponibles que puede utilizar para efectuar
sustituciones condicionales:

Capítulo 11. Shells 223


${Variable- Serie} Si se ha establecido la variable, sustituya el valor Variable en lugar de esta
expresión. De lo contrario, sustituya esta expresión por el valor de Serie.
${Variable:-Serie} Si se ha establecido la variable y no es nula, sustituya el valor Variable en
lugar de esta expresión. De lo contrario, sustituya esta expresión por el valor
de Serie.
${Variable=Serie} Si se ha establecido la variable, sustituya el valor Variable en lugar de esta
expresión. De lo contrario, establezca el valor Variable en el valor Serie y, a
continuación, sustituya el valor Variable en lugar de esta expresión. No puede
asignar valores a parámetros posicionales de este modo.
${Variable:=Serie} Si se ha establecido la variable y no es nula, sustituya el valor Variable en
lugar de esta expresión. De lo contrario, establezca el valor Variable en el valor
Serie y, a continuación, sustituya el valor Variable en lugar de esta expresión.
No puede asignar valores a parámetros posicionales de este modo.
${Variable?Serie} Si se ha establecido la variable, sustituya el valor Variable en lugar de esta
expresión. De lo contrario, muestra un mensaje en el formato:
Variable: Serie

y sale del shell actual (a no ser que sea el shell de inicio de sesión). Si no
especifica un valor para la variable Serie, el shell muestra el siguiente mensaje:
Variable: parámetro nulo o no establecido
${Variable:?Serie} Si se ha establecido la variable y no es nula, sustituya el valor Variable en
lugar de esta expresión. De lo contrario, muestra un mensaje en el formato:
Variable: Serie

y sale del shell actual (a no ser que sea el shell de inicio de sesión). Si no
especifica el valor Serie, el shell visualizará el mensaje siguiente:
Variable: parámetro nulo o no definido
${Variable+Serie} Si se ha establecido la variable, sustituya el valor Serie en lugar de esta
expresión. De lo contrario, sustituya la serie nula.
${Variable:+Serie} Si se ha establecido la variable y no es nula, sustituya el valor Serie en lugar
de esta expresión. De lo contrario, sustituya la serie nula.

En la sustitución condicional, el shell no evalúa la variable Serie hasta que éste utiliza esta variable como
serie sustituida. De este modo, en el ejemplo siguiente, el shell ejecuta el mandato pwd sólo si d no está
definido o es nulo:
echo ${d:-′pwd′}

Parámetros de posición
Cuando se ejecuta un procedimiento de shell, el shell crea implícitamente parámetros posicionales que
hacen referencia a cada palabra de la línea de mandatos por su respectiva posición. La palabra que
ocupa la posición 0 (el nombre del procedimiento) se denomina $0, la siguiente palabra (el primer
parámetro) se denomina $1 y así sucesivamente, hasta $9. Para hacer referencia a parámetros de la
línea de mandatos con números mayores de 9, utilice el mandato incorporado shift.

Puede volver a establecer los valores de los parámetros de posición explícitamente utilizando el mandato
set.

Nota: Cuando no se especifica un argumento para una posición, su parámetro de posición se


establece en nulo. Los parámetros de posición son globales y pueden pasarse a procedimientos de
shell anidados.

224 Guía del usuario del sistema: Sistema operativo y dispositivos


Sustitución de nombres de archivos en el shell Bourne
Los parámetros de mandatos son a menudo nombres de archivo. Puede generar automáticamente una
lista de nombres de archivo como parámetros en una línea de mandatos. Para hacerlo, especifique un
carácter que el shell reconozca como un carácter que coincide con un patrón. Cuando un mandato incluya
dicho carácter, el shell lo sustituirá por los nombres de archivo de un directorio.

Nota: El shell Bourne no da soporte a la expansión de nombres de archivos basada en la


clasificación de equivalencia de caracteres.

La mayoría de caracteres de un patrón coinciden, pero también puede utilizar algunos caracteres
coincidentes con patrón especiales en su patrón. Estos caracteres especiales son:

* Coincide con cualquier serie, incluyendo la serie nula.


? Coincide con cualquier carácter.
[. ..] Coincide con cualquiera de los caracteres delimitados entre corchetes.
[! . . . ] Coincide con cualquier carácter entre corchetes que no sea uno de los caracteres que siguen al
signo de admiración.

Dentro de los corchetes, un par de caracteres separados por un - especifica el conjunto de todos los
caracteres que léxicamente se encuentran dentro del rango de inclusión de ese par, de acuerdo con la
clasificación binaria de los valores de los caracteres.

La coincidencia con patrones tiene algunas restricciones. Si el primer carácter del nombre de un archivo
es un punto (.), éste sólo puede coincidir con un patrón que también empiece por un punto. Por ejemplo, *
coincide con los nombres de archivos myfile y yourfile, pero no con los nombres de archivos .myfile y
.yourfile. Para encontrar estos archivos, utilice un patrón como este:
.*file

Si un patrón no coincide con ningún nombre de archivo, se devuelve el propio patrón como resultado de
la búsqueda de coincidencia que se ha intentado.

Los nombres de los archivos y de los directorios no deben contener los caracteres *, ?, [, o ], pues ello
puede provocar una repetición infinita (es decir, bucles infinitos) durante los intentos de búsqueda de
patrones de coincidencia.

Clases de caracteres
También puede utilizar clases de caracteres para la coincidencia de los nombres de archivos:
[[:clasecaracteres:]]

Este formato indica al sistema que debe buscar caracteres simples que pertenezcan a la clase
especificada. Las clases definidas corresponden a subrutinas ctype. Son:

Clase de carácter Definición


alnum Caracteres alfanuméricos
alpha Letras mayúsculas y minúsculas
blank Espacio o tabulador horizontal
cntrl Caracteres de control
digit Dígitos
graph Caracteres gráficos
lower Letras minúsculas
print Caracteres imprimibles
punct Caracteres de puntuación

Capítulo 11. Shells 225


Clase de carácter Definición
space Espacio, tabulador horizontal, retorno de carro, nueva línea, tabulador vertical o
carácter de salto de página
upper Caracteres mayúsculas
xdigit Dígitos hexadecimales

Redirección de entrada y de salida en el shell Bourne


En general, la mayoría de mandatos no conocen o no les importa si la entrada o la salida está asociada
con el teclado, la pantalla o un archivo. De este modo, puede utilizarse un mandato convenientemente en
el teclado o en un conducto.

Las siguientes opciones de redirección pueden aparecer en cualquier parte de un mandato simple.
También pueden preceder o seguir a un mandato, pero no se pasan al mandato.

<Archivo Utiliza el archivo especificado como entrada estándar.


>Archivo Utiliza el archivo especificado como salida estándar. Crea el archivo si no existe; de lo
contrario, lo trunca a longitud cero.
> >Archivo Utiliza el archivo especificado como salida estándar. Crea el archivo si no existe; de lo
contrario, añade la salida al final del archivo.
<<[-]eofstr Lee como entrada estándar todas las líneas desde la variable eofstr hasta una línea que sólo
contiene eofstr o bien hasta un carácter de fin de archivo. Si algún carácter de la variable
eofstr tiene delimitadores, el shell no expandirá ni interpretará ninguno de los caracteres de
las líneas de entrada. De lo contrario, realizará la sustitución de la variable y del mandato y
pasará por alto el carácter de nueva línea que tiene delimitadores (\nueva-línea). Utilice una \
para delimitar los caracteres que están dentro de la variable eofstr o dentro de las líneas de
entrada.

Si añade un - a la opción de redirección <<, se saltarán todas las tabulaciones iniciales de la


variable eofstr y de las líneas de entrada.
<&Dígito Asocia la entrada estándar al descriptor de archivo que especifica la variable Dígito.
>&Dígito Asocia la salida estándar al descriptor de archivo que especifica la variable Dígito.
<&- Cierra la entrada estándar.
>&- Cierra la salida estándar.

Nota: El shell restringido no permite la redirección de salida.

Para obtener más información acerca de la redirección, consulte el “Capítulo 4. Redirección de entrada y
salida” en la página 43 y el apartado “Información relacionada con el shell Bourne” en la página 227.

Lista de mandatos incorporados del shell Bourne


: Devuelve un valor de salida cero.
. Lee y ejecuta mandatos de un parámetro de archivo y a continuación los procesa.
break Sale de los bucles de los mandatos de delimitación for, while o until, si existe alguno.
cd Cambia el directorio actual al directorio especificado.
continue Reanuda la siguiente iteración de los bucles de los mandatos de delimitación for, while o until.
echo Graba series de caracteres a salida estándar.
eval Lee los argumentos como entrada al shell y ejecuta el mandato o mandatos resultantes.
exec Ejecuta el mandato que especifica el parámetro Argumento, en lugar de este shell, sin crear un
nuevo proceso.
exit Sale del shell cuyo estado de salida especifica el parámetro n.
export Marca nombres para exportación automática al entorno de mandatos ejecutados sucesivamente.
hash Localiza y recuerda la posición de la vía de búsqueda o mandatos especificados.

226 Guía del usuario del sistema: Sistema operativo y dispositivos


pwd Muestra el directorio actual.
read Lee una línea de la entrada estándar.
readonly Marca el nombre que especifica el parámetro Nombre como de sólo lectura.
return Hace que una función salga con un valor de retorno especificado.
set Controla la visualización de varios parámetros para salida estándar.
shift Desplaza argumentos de línea de mandatos a la izquierda.
test Evalúa expresiones condicionales.
times Muestra las horas de usuario y del sistema totales para procesos que se ejecutan desde el shell.
trap Ejecuta el mandato especificado cuando el shell recibe la señal o señales especificadas.
type Interpreta cómo interpretaría el shell un nombre especificado como un nombre de mandato.
ulimit Muestra o ajusta recursos del shell asignados.
umask Determina los permisos de archivo.
unset Elimina la variable o función correspondiente a un nombre especificado.
wait Espera a que finalice el proceso hijo especificado e informa de su estado de terminación.

Consulte el apartado “Mandatos incorporados del shell Bourne” en la página 215 para obtener más
información.

Información relacionada con el shell Bourne


“Capítulo 11. Shells” en la página 159

“Shell Bourne” en la página 210

“Shell restringido” en la página 211

“Mandatos del shell Bourne” en la página 212

“Sustitución de variables y nombres de archivo en el shell Bourne” en la página 219

“Redirección de entrada y de salida en el shell Bourne” en la página 226

El mandato bsh o Rsh, el mandato login.

El mandato especial del shell Bourne read.

La subrutina setuid, la subrutina setgid.

El archivo especial null.

El archivo environment, el formato de archivo profile.

“Mandatos del shell Korn o shell POSIX” en la página 184

“Shell C”

Shell C
El shell C es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Utiliza
una sintaxis que es similar al lenguaje de programación C. El mandato csh inicia el shell C.

Cuando se inicia la sesión, primero busca el archivo de configuración de todo el sistema /etc/csh.cshrc.
Si lo encuentra, el shell C ejecuta los mandatos almacenados en dicho archivo. A continuación, el shell C
ejecuta el archivo de configuración de todo el sistema /etc/csh.login, si está disponible. Seguidamente,

Capítulo 11. Shells 227


busca en el directorio inicial los archivos .cshrc y .login. Si existen, contienen información de usuario
personalizada pertinente para ejecutar el shell C. Todas las variables establecidas en los archivos
/etc/csh.cshrc y /etc/csh.login podrían alterarlas temporalmente los archivos .cshrc y .login del
directorio $HOME. Sólo el usuario root puede modificar los archivos /etc/csh.cshrc y /etc/csh.login.

Los archivos /etc/csh.login y $HOME/.login sólo se ejecutan una vez durante el inicio de sesión.
Generalmente se utilizan para contener definiciones de variables de entorno, mandatos que desea que se
ejecuten una vez durante el inicio de sesión o mandatos que definen características del terminal.

Los archivos /etc/csh.cshrc y $HOME/.cshrc se ejecutan durante el inicio de sesión y cada vez que se
invoca el mandato csh o un script del shell C. Generalmente se utilizan para definir características del
shell C como los alias y variables del shell C (por ejemplo, history, noclobber o ignoreeof). Se recomienda
utilizar únicamente los mandatos que se describen en el apartado “Mandatos incorporados del shell C” en
la página 229 en los archivos /etc/csh.cshrc y $HOME/.cshrc, ya que la utilización de otros mandatos
incrementa el tiempo de arranque de los scripts de shell.

En este apartado se explica lo siguiente:


v “Limitaciones del shell C”
v “Manejo de señales” en la página 229
v “Mandatos del shell C” en la página 229
– “Mandatos incorporados del shell C” en la página 229
– “Expresiones y operadores del shell C” en la página 236
– “Sustitución de mandatos en el shell C” en la página 237
– “Ejecución de mandatos no incorporados del shell C” en la página 238
v “Sustitución del histórico en el shell C” en la página 238
– “Listas de histórico” en la página 239
– “Especificación de eventos” en la página 239
– “Delimitación con apóstrofos y comillas” en la página 241
v “Sustitución de alias en el shell C” en la página 241
v “Sustitución de variables y nombres de archivo en el shell C” en la página 242
– “Sustitución de variables en el shell C” en la página 242
– “Sustitución de nombres de archivos en el shell C” en la página 244
– “Expansión de nombres de archivo” en la página 244
– “Abreviatura de los nombres de archivos” en la página 245
– “Clases de caracteres” en la página 245
v “Variables de entorno en el shell C” en la página 246
v “Redirección de entrada y salida en el shell C” en la página 248
v “Control de trabajos en el shell C” en la página 249
v “Información relacionada del shell C” en la página 251

Limitaciones del shell C


A continuación se describen las limitaciones del shell C:
v Las palabras no pueden ser mayores de 1024 bytes.
v Las listas de argumentos están limitadas a ARG_MAX. Los valores de la variable ARG_MAX se
encuentran en el archivo /usr/include/sys/limits.h.
v El número de argumentos para un mandato que implica expansión de nombres está limitado a una
sexta parte del número de bytes permitidos en una lista de argumentos.

228 Guía del usuario del sistema: Sistema operativo y dispositivos


v Las sustituciones de mandatos no pueden sustituir más bytes de los que están permitidos en una lista
de argumentos.
v Para detectar bucles, el shell limita el número de sustituciones de alias en una sola línea a 20.
v El mandato csh no soporta expansión de nombres de archivo en clasificación de equivalencia de
caracteres.

Manejo de señales
El shell C normalmente ignora las señales de finalización. Los trabajos que se ejecutan desconectados
son inmunes a las señales generadas desde el teclado (INTERRUPT, QUIT y HANGUP).Otras señales
tienen los valores que el shell hereda de su padre. Puede controlar el manejo del shell de las señales
INTERRUPT y TERMINATE de los procedimientos del shell con onintr. Los shells de inicio de sesión
toman o pasan por alto las señales TERMINATE en función de su configuración. Los shells que no son
shells de inicio de sesión pasan señales TERMINATE a los procesos hijo. Las señales INTERRUPT en
ningún caso están permitidas cuando un shell de inicio de sesión está leyendo el archivo .logout.

Mandatos del shell C


Un mandato simple es una secuencia de palabras separadas por blancos o tabulaciones.

Una palabra es una secuencia de caracteres o de números, o de ambos, que no contiene espacios en
blanco sin comillas. Además, los caracteres siguientes y caracteres dobles también forman palabras
simples cuando se utilizan como separadores de mandatos o terminadores:
& | ;
&& || << > >
< > ( )

Estos caracteres especiales pueden ser parte de otras palabras. Sin embargo, si van precedidos de una \,
el shell no podrá interpretarlos como caracteres especiales. Las series de caracteres que se especifican
entre ’ ’ o ″ ″ (pares de caracteres de comillas correctamente emparejados) o acentos graves también
pueden formar partes de palabras. Los blancos, las tabulaciones y los caracteres especiales no forman
palabras separadas cuando se delimitan con estas marcas. Asimismo, también puede delimitar un
carácter de nueva línea dentro de estas marcas colocando delante de éste una \.

La primera palabra de la secuencia de mandato simple (con número 0) especifica normalmente el nombre
de un mandato. Las palabras restantes, con algunas excepciones, se pasan a dicho mandato. Si el
mandato especifica un archivo ejecutable que es un programa compilado, el shell ejecuta inmediatamente
dicho programa. Si el archivo está marcado como ejecutable, pero no es un programa compilado, el shell
presupone que es un script de shell. En este caso, el shell inicia otra sesión de sí mismo (un subshell),
para leer el archivo y ejecutar los mandatos incluidos.

En este apartado se explica lo siguiente:


v “Mandatos incorporados del shell C”
v “Expresiones y operadores del shell C” en la página 236
v “Sustitución de mandatos en el shell C” en la página 237
v “Ejecución de mandatos no incorporados del shell C” en la página 238
v “Información relacionada del shell C” en la página 251

Mandatos incorporados del shell C


Los mandatos incorporados se ejecutan en el shell. Si existe un mandato incorporado, como cualquier
componente de un conducto, excepto el último, el mandato se ejecuta en un subshell.

Capítulo 11. Shells 229


Nota: Si entra un mandato desde el indicador de mandatos del shell C, el sistema buscará en primer
lugar un mandato incorporado. Si no existe ningún mandato incorporado, el sistema buscará en los
directorios que especifica la variable de shell path un mandato del sistema. Algunos mandatos
incorporados del shell C y mandatos del sistema operativo tienen el mismo nombre. No obstante,
estos mandatos no necesariamente funcionan del mismo modo. Examine la descripción del mandato
apropiado para obtener información acerca de cómo funciona el mandato.

Si ejecuta un script de shell desde el shell y la primera línea del script de shell empieza por
#!/NombreVíaAccesoShell, el shell C ejecutará el shell que se especifica en el comentario para procesar el
script. De lo contrario, ejecutará el shell por omisión (el shell que está enlazado con /usr/bin/sh). Si la
ejecución la realiza el shell por omisión, puede que los mandatos incorporados del shell C no se
reconozcan. Para que el sistema ejecute mandatos del shell C, especifique #!/usr/bin/csh como primera
línea del script.

Consulte el apartado “Lista de mandatos incorporados del shell C” en la página 250 para obtener un
listado alfabético de los mandatos incorporados.

Descripciones de mandatos del shell C


El shell C proporciona los siguientes mandatos incorporados:

alias [Nombre [ListaPalabras]] Muestra todos los alias si no especifica parámetros. De lo contrario, el
mandato visualizará el alias del Nombre especificado. Si se especifica
ListaPalabras, este mandato asignará el valor de ListaPalabras al Nombre del
alias. El Nombre de alias especificado no puede ser alias ni unalias.
bg [%Trabajo ...] Sitúa el trabajo actual o el trabajo especificado por Trabajo en segundo plano,
continuando el trabajo si estaba detenido.
break Reanuda la ejecución tras completarse la acción end del mandato delimitador
foreach o while más cercano.
breaksw Interrumpe desde un mandato switch; reanuda después del mandato endsw.
case Etiqueta: Define una Etiqueta en un mandato switch.
cd[Nombre] Equivalente al mandato chdir (vea la descripción que sigue).
chdir [Nombre] Cambia del directorio actual al directorio que especifica la variable Nombre. Si
no especifica Nombre, el mandato cambiará al directorio inicial. Si el valor de
la variable Nombre no es un subdirectorio del directorio actual y no empieza
por /, ./ o bien ../, el shell comprobará cada componente de la variable de
shell cdpath para verificar si tiene un subdirectorio que coincida con el valor
de la variable Nombre. Si la variable Nombre es una variable de shell que
tiene un valor que empieza por /, el shell lo intentará con éste para verificar si
se trata de un directorio. El mandato chdir es equivalente al mandato cd.
continue Continúa la ejecución desde la acción end del mandato delimitador whileo
foreach más cercano.
default: Etiqueta la especificación de mayúsculas o de minúsculas correspondiente a
default en una sentencia switch. El valor por omisión (default) debe venir
después de todas las demás etiquetas case.
dirs Muestra la pila de directorios.
echo Graba series de caracteres a la salida estándar del shell.
else Ejecuta los mandatos que siguen al segundo else en una secuencia de
mandatos if(Expresión) then ...else if(Expresión2)then ... else ... endif.
end Establece sucesivamente la variable Nombre en cada miembro que especifica
la variable Lista y ejecuta la secuencia de Mandatos entre las sentencias
foreach y las sentencias end coincidentes. Las sentencias foreach y end
deben aparecer solas en líneas independientes.

Utiliza la sentencia continue para continuar el bucle y la sentencia break


para finalizar el bucle prematuramente. Cuando se lee el mandato foreach
desde el terminal, el shell C solicita con un signo ? para permitir la entrada de
Mandatos. Los mandatos incluidos en bucles, solicitados por un signo ?, no
se sitúan en la lista del histórico.

230 Guía del usuario del sistema: Sistema operativo y dispositivos


endif Si la variable Expresión es verdadera, ejecuta los Mandatos que siguen a la
primer sentencia then.Si else if Expresión2 es verdadero, ejecuta los
Mandatos que siguen a la segunda sentencia then. Si else if Expresión2 es
falso, ejecuta los Mandatos que siguen a else. Es posible cualquier número
de pares else if. Sólo se necesita una sentencia endif. El segmento else es
opcional. Las palabras else y endif sólo pueden utilizarse al principio de las
líneas de entrada. El segmento if debe aparecer solo en su propia línea de
entrada o después de un mandato else.
endsw Hace coincidir sucesivamente cada etiqueta case con el valor de la variable
serie. Con serie, primero se expande el mandato y el nombre de archivo.
Utilice los caracteres de patrones de coincidencia *, ? y [ . . . ] en las
etiquetas case, cuyas variables se expanden. Si ninguna de las etiquetas
coincide antes de que se encuentre una etiqueta default, la ejecución
empieza tras la etiqueta default. La etiqueta case y la etiqueta default deben
aparecen al principio de la línea. El mandato breaksw da lugar a que la
ejecución continúe tras el mandato endsw. De lo contrario, el control de las
etiquetas case y default podría no ser satisfactorio, como en el lenguaje de
programación C. Si no coincide ninguna etiqueta y no hay valor por omisión
(default), la ejecución continúa después del mandato endsw.
eval Parámetro . . . Lee el valor de la variable Parámetro como entrada para el shell y ejecuta el
mandato o mandatos resultantes en el contexto del shell actual. Utilice este
mandato para ejecutar mandatos que se han generado como resultado de la
sustitución de un mandato o variable, ya que el análisis se produce antes de
estas sustituciones.
exec Mandato Ejecuta el Mandato especificado en lugar del shell actual.
exit [(Expresión) Sale del shell con el valor de la variable de shell status (si no se ha
especificado ninguna Expresión) o bien con el valor de la Expresión
especificada.
fg [%Trabajo ...] Lleva al primer plano el trabajo actual o el trabajo especificado por Trabajo,
continuando el trabajo si estaba detenido.
foreach Nombre (Lista) Define sucesivamente una variable Nombre para cada miembro especificado
Mandato. . . por la variable Lista y una secuencia de mandatos hasta llegar a un mandato
end.
glob Lista Visualiza la Lista utilizando la expansión del histórico, de la variable y del
nombre de archivo. Sitúa un carácter nulo entre palabras y no incluye un
retorno de carro al final.
goto Palabra Continúa con la ejecución tras la línea que especifica la variable Palabra. De
la Palabra especificada se expande el nombre de archivo y el mandato para
producir una serie que tiene el formato que especifica la variable Etiqueta:. El
shell hace retroceder su entrada hasta donde le es posible y busca una línea
que tiene el formato Etiqueta:, posiblemente precedida de espacios en blanco
o de tabulaciones.
hashstat Muestra estadísticas indicando con qué eficacia ha localizado mandatos la
tabla hash.
history [-r | -h] [n] Muestra la lista de eventos históricos. Los eventos más antiguos se muestran
en primer lugar. Si especifica un número n, sólo se visualizará el número
especificado de sucesos más recientes. El distintivo -r invierte el orden en el
que han de visualizarse los sucesos para que el suceso más reciente sea el
que se visualice en primer lugar. El distintivo -h visualiza la lista del histórico
sin números iniciales. Utilice este distintivo para producir archivos que puedan
utilizarse con el distintivo -h del mandato source.
if (Expresión) Mandato Ejecuta el Mandato especificado (incluidos sus argumentos) si la Expresión
especificada es verdadera. La sustitución de variables de la variable Mandato
tiene lugar en la primera fase, al mismo tiempo que el resto de la sentencia if.
El Mandato especificado debe ser un mandato simple (en lugar de un
conducto, una lista de mandatos o una lista de mandatos entre paréntesis).

Nota: Se produce redirección de entrada y de salida aunque la variable


Expresión sea falsa y no se ejecute el Mandato.

Capítulo 11. Shells 231


jobs [-l] Lista los trabajos activos. Con el distintivo -l (l minúscula), el mandato jobs
lista los ID de proceso además del número y nombre de trabajo.
kill -l | [[-Señal] % Trabajo...|PID...] Envía la señal TERM (terminar) o la señal que especifica Señal al Trabajo o
PID (proceso) especificado. Especifique las señales por número o por nombre
(como se indica en el archivo /usr/include/sys/signal.h, sin el prefijo SIG). El
distintivo -l (L minúscula) muestra una lista con los nombres de las señales.
limit [-h] [Recurso [Uso-máx]] Limita la utilización del recurso especificado por el proceso actual y de cada
proceso que crea. Los límites de los recursos del proceso están definidos en
el archivo /etc/security/limits. Los recursos controlables son el tiempo de
unidad central de proceso (CPU), el tamaño de los archivos, el tamaño de los
datos, el tamaño del vuelco de la imagen de memoria y la utilización de
memoria. Los valores máximos permitidos para estos recursos se establecen
con el mandato mkuser cuando el usuario se añade al sistema. Se cambian
con el mandato chuser.

Las categorías de los límites pueden ser dinámicas o fijas. Los usuarios
pueden aumentar sus límites limitados hasta el máximo impuesto por los
límites fijos. Debe tener autorización de usuario root para poder aumentar un
límite limitado por encima del límite fijo o para cambiar límites fijos. El
distintivo -h muestra los límites fijos en lugar de los límites dinámicos.

Si no se especifica un parámetro Uso-máx, el mandato limit visualiza el límite


actual del recurso especificado. Si no se especifica el parámetro Recurso, el
mandato limit visualiza los límites actuales de todos los recursos. Para
obtener más información acerca de los recursos que el submandato limit
controla, consulte la subrutina getrlimit, setrlimit o vlimit en la publicación
AIX 5L Version 5.1 Technical Reference: Base Operating System and
Extensions Volume 1.

El parámetro Uso-máx para el tiempo de CPU se especifica en formato


hh:mm:ss. El parámetro Uso-máx para los otros recursos se especifica como
un número de coma flotante o bien como un entero, opcionalmente seguido
de un factor de escala. El factor de escala es: k o kilobytes (1024 bytes), m o
megabytes o bien b o bloques (las unidades que utiliza la subrutina ulimit se
explican en la publicación AIX 5L Version 5.1 Technical Reference: Base
Operating System and Extensions Volume 2 ). Si no especifica un factor de
escala, se presupone k para todos los recursos. Para los nombres de los
recursos y los factores de escala, la especificación de prefijos no ambiguos
de los nombres es suficiente.

Nota: Este mandato limita la memoria física (utilización de memoria)


disponible para un proceso sólo si existen otros procesos activos que
están en contención por la memoria del sistema.
login Finaliza un shell de inicio de sesión y lo sustituye por una instancia del
mandato /usr/bin/login. Es una forma de finalizar la sesión (que se incluye
para mantener la compatibilidad con los mandatos ksh y bsh).
logout Finaliza el shell de inicio de sesión. Este mandato debe utilizarse si se ha
establecido la opción ignoreeof.
nice [+n] [Mandato] Si no se especifica ningún valor, define la prioridad de mandatos ejecutados
en este shell a 24. Si se especifica el distintivo +n, establece que a la
prioridad se añada el número especificado. Si se especifican el distintivo +n y
Mandato, ejecuta Mandato con la prioridad 24 más el número especificado. Si
dispone de autorización de usuario root, puede ejecutar la sentencia nice con
un número negativo. El Mandato siempre se ejecuta en un subshell y se
aplican las restricciones situadas en mandatos en sentencias if simples.

232 Guía del usuario del sistema: Sistema operativo y dispositivos


nohup [Mandato] Hace que hangups se pase por alto en el resto del script cuando no se ha
especificado ningún Mandato. Si se especifica Mandato, el Mandato
especificado se ejecutará y se ignorarán las interrupciones anómalas. Para
ejecutar un conducto o una lista de mandatos, coloque el conducto o la lista
en un script de shell, otorgue al script permiso de ejecución y utilice el script
de shell como el valor de la variable Mandato. Todos los procesos que se
ejecutan como procesos de fondo con & están eficazmente protegidos para
que no pueda enviarse a éstos una señal hangup cuando se finalice la
sesión. Sin embargo, estos procesos siguen siendo susceptibles de que se
les envíen explícitamente hangups a menos que se utilice la sentencia
nohup.
notify [%Trabajo...] Hace que el shell le notifique de forma asíncrona cuando se produzca un
cambio en el estado del trabajo actual o del Trabajo especificado.
Normalmente, el shell proporciona la notificación justo antes de que presente
el indicador del shell. Esta función es automática si se define la variable del
shell notify.
onintr [- | Etiqueta] Controla la acción del shell en interrupciones. Si no se especifican
argumentos, restaura la acción por omisión del shell en interrupciones, lo que
finaliza los scripts de shell o vuelve al nivel de entrada de mandatos. Si se
especifica un distintivo -, hace que todas las interrupciones se pasen por alto.
Si se especifica Etiqueta, hace que el shell ejecute una sentencia goto
Etiqueta cuando el shell recibe una interrupción o cuando un proceso hijo
finaliza debido a una interrupción. En cualquier caso, si el shell se ejecuta
independientemente y las interrupciones se pasan por alto, todas las formas
de la sentencia onintr dejan de tener significado. El shell sigue ignorando las
interrupciones y todos los mandatos llamados.
popd [+n] Aparece la pila de directorios y cambia al nuevo directorio superior. Si
especifica una variable n, el mandato desecha la entrada número n de la
pila.Los elementos de la pila de directorios están numerados desde el
principio, comenzando por 0.
pushd [+n|Nombre] Sin argumentos, intercambia los dos elementos superiores de la pila de
directorios. Con la variable Nombre, el mandato cambia al nuevo directorio y
coloca el directorio actual antiguo (como se especifica en la variable de shell
cwd) en la pila de directorios. Si especifica una variable +n, el mandato rota
el componente número n de la pila de directorios para que ocupe la posición
del primer elemento y cambia a éste. Los miembros de la pila de directorios
están numerados desde el principio, comenzando por 0.
rehash Da lugar a que vuelva a calcularse la tabla hash interna de contenido de los
directorios en la variable de shell path. Esta acción es necesaria si se añaden
nuevos mandatos a los directorios en la variable de shell path mientras está
conectado. El mandato rehash sólo es necesario si se añaden mandatos a
unos de los directorios propios del usuario o si alguien cambia el contenido
de uno de los directorios del sistema.
repeat Cuenta Mandato Ejecuta el Mandato especificado, con las mismas restricciones que los
mandatos de las sentencias if simples, el número de veces que Cuenta
especifique.

Nota: Las redirecciones de E/S sólo se producen una vez, aunque la


variable Cuenta sea 0.

Capítulo 11. Shells 233


set [[Nombre[n]] [ = Palabra]] | Muestra el valor de todas las variables del shell cuando se utiliza sin
[Nombre = (Lista)] argumentos. Las variables que tienen más de una palabra simple como valor
se muestran en una lista de palabras entre paréntesis. Si sólo se especifica
Nombre, el shell C establece la variable Nombre en la serie nula. De lo
contrario, establece Nombre en el valor de la variable Palabra o bien
establece la variable Nombre en la lista de palabras que especifica la variable
Lista. Cuando se especifica n, el componente número n de la variable
Nombre está definido con el valor de la variable Palabra; el componente
número n ya debe existir.En todos los casos, se expanden nombres de
archivo y mandatos para el valor. Estos argumentos pueden repetirse para
establecer varios valores en un único mandato set. No obstante, la expansión
de variables se produce para todos los argumentos antes de que se produzca
cualquier definición.
setenvNombre Valor Establece el valor de la variable de entorno que especifica la variable Nombre
en Valor, una única serie. Las variables de entorno más comúnmente
utilizadas, USER, TERM, HOME y PATH, se importan automáticamente a las
variables de shell C y se exportan de las variables de shell C user, term,
home y path. Para éstas, no es necesario utilizar la sentencia setenv.
shift [Variable] Desplaza los miembros de la variable de shell argv o de la Variable
especificada hacia la izquierda. Se producirá un error si la variable de shell
argv o la Variable especificada no se ha establecido o tiene un valor menor
que una palabra.
source[-h] Nombre Lee los mandatos que especifica la variable Nombre. Puede anidar los
mandatos source. No obstante, si se anidan demasiado profundamente, el
shell puede quedarse sin descriptores de archivo. Un error en un mandato
source a cualquier nivel finaliza todos los mandatos source anidados. Por lo
general, la entrada que tiene lugar durante los mandatos source no se coloca
en la lista del histórico. El distintivo -h hace que los mandatos se coloquen en
la lista del histórico sin ejecutarlos.
stop [%Trabajo ...] Detiene el trabajo actual o el Trabajo especificado que se ejecuta en segundo
plano.
suspend Detiene el shell como si se hubiera recibido una señal STOP.
switch (serie) Inicia una secuencia de mandatos switch (Serie) case Serie : ... breaksw
default: ... breaksw endsw. Esta secuencia de mandatos hace coincidir
sucesivamente cada etiqueta con el valor de la variable Serie. Si ninguna de
las etiquetas coincide antes de que se encuentre una etiqueta por omisión, la
ejecución se iniciará tras la etiqueta por omisión.

234 Guía del usuario del sistema: Sistema operativo y dispositivos


time [Mandato] El mandato time controla la temporización automática de los mandatos. Si no
especifica la variable Mandato, el mandato time visualiza un resumen del
tiempo que ha necesitado el shell y sus hijos. Si especifica un mandato con la
variable Mandato, se calculará su tiempo. A continuación, el shell visualizará
un resumen de tiempos, como se describe en la variable de shell time. Si es
necesario, se crea un shell adicional para visualizar las estadísticas de tiempo
cuando se completa el mandato.

A continuación se muestra un ejemplo de la utilización de time con el


mandato sleep:
time sleep

La salida de este mandato puede tener este aspecto:


0.0u 0.0s 0:00 100% 44+4k 0+0io 0pf+0w

A continuación se describen los siete campos de la salida:


Campo Descripción
Primero
Número de segundos de tiempo CPU dedicado al proceso del
usuario
Segundo
Número de segundos de tiempo CPU consumido por el kernel en
nombre del proceso del usuario
Tercero
Tiempo transcurrido (tiempo de reloj) por el mandato
Cuarto Tiempo de CPU de usuario total más tiempo del sistema, como
porcentaje del tiempo transcurrido
Quinto Promedio de memoria compartida utilizada, más promedio de
espacio de datos no compartido, en kilobytes
Sexto Número de operaciones de entrada y salida de bloques
Séptimo
Faltas de página más número de intercambios
umask [Valor] Determina los permisos de archivo. Este Valor, junto con los permisos del
proceso de creación, determina los permisos de un archivo cuando se crea el
archivo. El valor por omisión es 022. El valor actual se visualizará si no se
especifica Valor.
unalias *|Patrón Descarta todos los alias que tienen nombres que coinciden con la variable
Patrón. Todos los alias se eliminan por medio del mandato unalias *. La
ausencia de alias no origina un error.
unhash Inhabilita la utilización de la tabla hash interna para la localización de
programas en ejecución.
unlimit [-h][Recurso] Elimina la limitación de la variable Recurso. Si no se especifica ninguna
variable Recurso, se eliminan todas las limitaciones de recurso. Consulte la
descripción del mandato limit para ver la lista de nombres de Recurso.

El distintivo -h elimina los límites fijos correspondientes. Sólo un usuario con


autorización de usuario root puede cambiar los límites fijos.
unset *|Patrón Elimina todas las variables que tienen nombres que coinciden con la variable
Patrón. Utilice unset * para eliminar todas las variables. Si no se definen
variables, no se origina ningún error.
unsetenv Patrón Elimina todas las variables del entorno cuyos nombres coinciden con el
Patrón especificado. (Consulte el mandato incorporado setenv).
wait Espera a todos los trabajos en segundo plano. Si el shell es interactivo, un
INTERRUPT (normalmente, la secuencia de teclas Control-C) interrumpe la
espera. El shell muestra a continuación los nombres y números de todos los
trabajos que se sabe que están pendientes.

Capítulo 11. Shells 235


while (Expresión) Mandato. . . end Evalúa los Mandatos que se encuentran entre las sentencias while y las
sentencias end coincidentes mientras la expresión que especifica la variable
Expresión evalúe un valor distinto de cero. Puede utilizar la sentencia break
para finalizar y la sentencia continue para continuar el bucle
prematuramente. Las sentencias while y end deben aparecer solas en sus
líneas de entrada. Si la entrada es desde un terminal, las solicitudes se
producen después de while (Expresión), similar a la sentencia foreach.
@ [Nombre[n] = Expresión] Muestra los valores de todas las variables de shell cuando se utilizan sin
argumentos. De lo contrario, establece el nombre que especifica la variable
Nombre en el valor de la variable Expresión. Si la expresión contiene los
caracteres <, >, & o |, esta parte de la expresión debe especificarse entre
paréntesis. Cuando se especifica n, el componente número n de la variable
Nombre se establece en la variable Expresión. Deben existir ya tanto la
variable Nombre como su componente número n.

Están disponibles los operadores del lenguaje C, como *= y +=. El espacio


que separa la variable Nombre del operador de asignación es opcional. Sin
embargo, los espacios serán necesarios para separar los componentes de la
variable Expresión que, de lo contrario, se leería como si fuera una única
palabra. Los operadores de sufijo especiales, el signo más doble (++) y el
guión doble (- -) aumentan y disminuyen, respectivamente, el valor de la
variable Nombre.

Expresiones y operadores del shell C


El mandato incorporado @ y las sentencias exit, if y while aceptan expresiones que incluyan operadores
similares a los del lenguaje C, con la misma precedencia. Están disponibles los siguientes operadores:

Operador Significado
() cambiar prioridad
x complemento
! negación
*/ % multiplicar, dividir, módulo
+ - sumar, restar
<< > > desplazamiento a la izquierda, desplazamiento a la derecha
<= >= < > operadores relacionales
== != =x !x comparación de series/coincidencia con patrón
& ″and″ bitwise
| ″or exclusivo″ bitwise
| ″or inclusivo″ bitwise
&& ″and″ lógico
|| ″or″ lógico

En la lista anterior, la prioridad de los operadores se reduce en la lista de izquierda a derecha, de arriba a
abajo.

Nota: Los operadores + y - se asocian por la derecha. Por ejemplo, la evaluación de a + b - c se


efectúa de este modo:
a + (b - c)

y no:
(a + b) - c

Los operadores ==, !=, =x y !x comparan sus argumentos como series; todos los demás operadores
operan en números. Los operadores =x y !x son similares a los operadores == y !=, a excepción de que la

236 Guía del usuario del sistema: Sistema operativo y dispositivos


parte que se encuentra más a la derecha es un patrón con el que se hace coincidir el operando que se
encuentra más a la izquierda. Esto reduce la necesidad de utilizar la sentencia switch en procedimientos
de shell cuando lo único que se necesita realmente es la coincidencia con patrón.

Los operadores lógicos or (||) y and (&&) también están disponibles. Por ejemplo, pueden utilizarse para
comprobar un rango de números:
if ($#argv > 2 && $#argv < 7) then

En el ejemplo anterior, el número de argumentos debe ser mayor de 2 y menor de 7.

Las series que empiezan por cero (0) se consideran números octales. La falta de argumentos o los
argumentos nulos se consideran 0. Todas las expresiones dan como resultado series que representan
números decimales. Tenga en cuenta que dos componentes de una expresión pueden aparecer en la
misma palabra. Excepto cuando están junto a los componentes de las expresiones que son
sintácticamente significativas para el analizador (& | < > ( )), los componentes de la expresión deben
incluir espacios a su alrededor.

Disponibles también en las expresiones como operandos primitivos están las ejecuciones de mandatos
especificadas entre ( ) y las consultas de archivos en el formato (-operator Nombre archivo), donde
operator es uno de los siguientes:

r Acceso de lectura
w Acceso de grabación
x Acceso de ejecución
e Existencia
o Propiedad
z Tamaño cero
f Archivo plano
d Directorio

Del Nombre archivo especificado se expanden el mandato y el nombre de archivo y, a continuación, se


prueba para verificar si dispone de la relación especificada con el usuario real. Si Nombre archivo no
existe o no puede accederse a éste, todas las consultas devuelven el valor false(0). Si el mandato se
ejecuta satisfactoriamente, la consulta devuelve el valor true(1). De lo contrario, el mandato falla, la
consulta devuelva un valor de falso (0). Si necesita información de estado más detallada, ejecute el
mandato fuera de una expresión y, a continuación, examine la variable de shell status.

Sustitución de mandatos en el shell C


En la sustitución de mandatos, el shell ejecuta un mandato especificado y sustituye ese mandato por su
salida. Para realizar la sustitución de mandatos en el shell C, especifique el mandato o la serie de
mandatos entre acentos graves (′ ′). El shell interrumpe normalmente la salida del mandato en palabras
separadas con blancos, tabulaciones y caracteres de nueva línea. A continuación sustituye el mandato
original con esta salida.

En el ejemplo siguiente, los acentos graves (′ ′) que rodean al mandato date indican que se sustituirá la
salida del mandato:
echo La fecha y hora actuales son: ′date′

La salida de este mandato puede tener este aspecto:


La fecha y hora actuales son: Mié Abr 8 13:52:14 CDT 1992

El shell C efectúa sustitución de mandatos selectivamente en los argumentos de mandatos de shell


incorporados. Esto significa que no expande dichas partes de expresiones que no se evalúan. En el caso

Capítulo 11. Shells 237


de mandatos que no son incorporados, el shell sustituye el nombre de mandato independientemente de la
lista de argumentos. La sustitución se produce en un hijo del shell principal, sólo después de que el shell
efectúe redirección de entrada o salida.

Si una serie de mandatos se especifica entre ″ ″, el shell sólo tratará a los caracteres de nueva línea
como si fueran separadores de palabras, conservando de esta forma los espacios en blanco y las
tabulaciones que están dentro de la palabra. En todos los casos, el carácter simple final de nueva línea
no fuerza una nueva palabra.

Ejecución de mandatos no incorporados del shell C


Cuando el shell C determina que un mandato no es un mandato incorporado del shell, intenta ejecutar el
mandato con la llamada al sistema execv. Cada palabra de la variable de shell path indica el nombre de
un directorio desde el que el shell intenta ejecutar el mandato. Si no se especifica ni el distintivo -c ni el
distintivo -t, el shell organiza los nombres de esos directorios en una tabla interna. El shell intenta realizar
la llamada al sistema exec en un directorio sólo si existe alguna posibilidad de que el mandato resida allí.
Si desactiva este mecanismo con el mandato unhash o especifica en el shell el distintivo -c o -t, el shell
realizará la concatenación con el nombre de mandato indicado para formar un nombre de vía de acceso
de un archivo. De todas formas, el shell también realizará esta acción para cada componente de directorio
de la variable path que no empiece por /. El shell intenta a continuación ejecutar el mandato.

Los mandatos entre paréntesis siempre se ejecutan en un subshell. Por ejemplo:


(cd ; pwd) ; pwd

muestra el directorio inicial sin cambiar la ubicación del directorio actual. No obstante, el mandato:
cd ; pwd

cambia la ubicación del directorio actual al directorio inicial. Los mandatos entre paréntesis suelen
utilizarse más a menudo para impedir que el mandato chdir afecte al shell actual.

Si el archivo tiene permiso de ejecución, pero no es binario ejecutable para el sistema, el shell presupone
que es un archivo que contiene mandatos del shell y ejecuta un nuevo shell para leerlo.

Si hay un alias para el shell, las palabras del alias se prefijan a la lista de argumentos para formar el
mandato de shell. La primera palabra del alias debe ser el nombre completo de la vía de acceso del shell.

Sustitución del histórico en el shell C


La sustitución de histórico le permite modificar palabras individuales de mandatos anteriores para crear
nuevos mandatos. La sustitución de histórico facilita la repetición de mandatos, de argumentos de un
mandato anterior en el mandato actual o arreglar errores de escritura en el mandato anterior escribiendo
menos de lo normal.

Las sustituciones de histórico comienzan por el carácter ! y pueden aparecer en cualquier punto de la
línea de mandatos, siempre que no estén anidadas (es decir, una sustitución de histórico no puede
contener otra sustitución de histórico). Delante del signo ! puede especificar una \ para cancelar el
significado especial del signo de admiración. Además, si sitúa el signo ! delante de un espacio en blanco,
tabulación, carácter de nueva línea, = o (, la sustitución del histórico no se produce.

Las sustituciones de histórico también pueden realizarse especificando un | delante de una línea de
entrada. El shell repite cualquier línea de entrada que contenga sustituciones de histórico en la estación
de trabajo antes de ejecutar dicha línea.

En este apartado se explica lo siguiente:


v “Listas de histórico” en la página 239

238 Guía del usuario del sistema: Sistema operativo y dispositivos


v “Especificación de eventos”
v “Delimitación con apóstrofos y comillas” en la página 241
v “Información relacionada del shell C” en la página 251

Listas de histórico
La lista del histórico guarda mandatos que el shell lee de la línea de mandatos y que constan de una o
más palabras. La sustitución del histórico vuelve a introducir secuencias de palabras de estos mandatos
guardados en la corriente de entrada.

La variable de shell history controla el tamaño de la lista del histórico. Debe establecer la variable de
shell history del archivo .cshrc o de la línea de mandatos con el mandato incorporado set. El mandato
anterior siempre se retiene, con independencia del valor de la variable history. Los mandatos de la lista
del histórico se numeran secuencialmente comenzando desde 1. El mandato history incorporado genera
salida del tipo:
9 write michael
10 ed write.c
11 cat oldwrite.c
12 diff *write.c

El shell muestra las series de mandatos con sus números de evento. No suele ser necesario utilizar
números de evento para referirse a los mismos, pero puede visualizar el número de evento actual como
parte del indicador del sistema situando un ! en la serie del indicador de mandatos que se ha asignado a
la variable de entorno prompt.

Una referencia completa del histórico contiene una especificación de suceso, un designador de palabra y
uno o más modificadores en el formato general que se muestra a continuación:
Suceso[.]Palabra:Modificador[:Modificador] . . .

Nota: Sólo puede modificarse una palabra. No se permite una serie que incluya blancos.

En el ejemplo anterior de la salida del mandato history, el número de suceso actual es 13. Utilizando
este ejemplo, lo siguiente se refiere a eventos anteriores:

!10 Número de evento 10.


!-2 Número de evento 11 (el evento actual menos 2).
!d Palabra de mandato que empieza por d (número de evento 12).
!?mic? Palabra de mandato que contiene la serie mic (número de evento 9).

Estos formatos, sin modificaciones posteriores, reintroducen simplemente las palabras de los eventos
especificados, cada una de ellas separada por un blanco. Como caso especial, !! hace referencia al
mandato anterior; el mandato !! solo en una línea de entrada vuelve a ejecutar el mandato anterior.

Especificación de eventos
Para seleccionar palabras de un suceso, especifique un signo : tras la especificación de suceso y uno de
los designadores de palabra siguientes (las palabras de una línea de entrada se numeran
secuencialmente empezando desde el 0):

0 Primera palabra (el nombre del mandato).


n navo argumento.
| Primer argumento.
$ Último argumento.
% Palabra que coincide con una ?serie? inmediatamente anterior.
x-y Rango de palabras de la palabra xava a la palabra yava.
-y Rango de palabras desde la primera palabra (0) a la palabra yava.

Capítulo 11. Shells 239


* Desde el primero hasta el último argumento o nada si sólo hay una palabra (el nombre del mandato) en el
evento.
x* Desde el xavo argumento hasta el último argumento.
x- Como x*, pero omitiendo el último argumento.

Puede omitir el carácter de los dos puntos (:) que separa la especificación de suceso del designador de
palabra si éste último empieza por un carácter |, $, *, - o %. También puede situar una secuencia de los
siguientes modificadores después del designador de palabras opcional, cada una de ellas precedidas de
dos puntos:

h Elimina una extensión de nombre de vía de acceso final, dejando la cabecera.


r Elimina un componente .xxx final, dejando el nombre de la raíz.
e Elimina todo menos la extensión .xxx final.
s/PalabraAntigua/NuevaPalabra/ Sustituye el valor de la variable NuevaPalabra por el valor de la variable
PalabraAntigua.

La parte izquierda de una sustitución no es un patrón en el sentido de una serie reconocida por un editor,
sino que es una palabra, una unidad simple sin blancos. Por lo general, la / delimita la palabra original
(PalabraAntigua) y su sustitución (NuevaPalabra). No obstante, puede utilizar cualquier carácter como
delimitador. En el ejemplo siguiente, la utilización del carácter % como delimitador permite que pueda
incluirse una / en las palabras:
s%/home/myfile%/home/yourfile%

El shell sustituye el carácter & por el texto NuevaAntigua en la variable NuevaPalabra. En el ejemplo
siguiente, /home/myfile se convierte en /temp/home/myfile.
s%/home/myfile%/temp&%

El shell sustituye una palabra nula de una sustitución por la última sustitución o bien por la última serie
utilizada en la exploración de contexto !?Serie?. Puede omitir el delimitador final (/) si el carácter que le
sigue inmediatamente es un carácter de nueva línea. Puede omitir los siguientes modificadores para
delimitar la lista del histórico:

t Elimina todos los componentes de nombres de vía de acceso iniciales, dejando el final.
& Repite la sustitución anterior.
g Aplica el cambio globalmente; es decir, todas las apariciones de cada línea.
p Muestra el nuevo mandato, pero no lo ejecuta.
q Coloca delimitadores en las palabras sustituidas, evitando de esta forma que se realicen sustituciones
adicionales.
x Actúa como el modificador q, pero separa las palabras donde existen caracteres en blanco, tabulaciones y
caracteres de nueva línea.

A menos que el modificador g se haya especificado delante de los modificadores anteriores, el cambio
sólo se aplicará a la primera palabra que pueda modificarse.

Si proporciona una referencia de histórico sin una especificación de suceso (por ejemplo, !$), el shell
utilizará el mandato anterior como suceso. Si se produce una referencia histórica anterior en la misma
línea, el shell repite la referencia anterior. Así pues, la siguiente secuencia proporciona el primer y último
argumento del mandato que coincide con ?foo?.
!?foo?| !$

Puede existir una abreviatura especial de una secuencia del histórico cuando el primer carácter que no es
un blanco de una línea de entrada es un signo |. Esto equivale a !:s|, con lo que se proporciona una
forma abreviada adecuada para las sustituciones del texto de la línea anterior. El mandato | lb| lib
corrige la ortografía de lib del mandato anterior.

240 Guía del usuario del sistema: Sistema operativo y dispositivos


Si el necesario, puede especificar una sustitución del histórico entre { } para aislarla de los caracteres que
le siguen. Por ejemplo, si desea utilizar una referencia al mandato:
ls -ld xpaul

para efectuar el mandato:


ls -ld xpaula

utilice la siguiente construcción:


!{l}a

En este ejemplo, !{l}a busca un mandato que empieza por l y añade una a al final.

Delimitación con apóstrofos y comillas


Delimite las series entre apóstrofos y comillas para impedir todas o algunas de las sustituciones que se
aplican. La especificación de las series entre ’ ’ evita que se realicen interpretaciones adicionales,
mientras que la especificación de las series entre ″ ″ permite que puedan realizarse expansiones
adicionales. En ambos casos, el texto resultante pasa a ser (todo o parte) una palabra simple.

Sustitución de alias en el shell C


Un alias es un nombre que se asigna a un mandato o a una serie de mandatos. El shell C le permite
asignar alias y utilizarlos como utilizaría los mandatos. El shell mantiene una lista de los alias que define.

Después de que el shell examine la línea de mandatos, la divide en palabras distintas y comprueba la
primera palabra de cada mandato, de izquierda a derecha, para ver si tiene un alias. Si lo hace, el shell
utiliza el mecanismo histórico para sustituir el texto del alias con el texto del mandato referenciado por el
alias. Las palabras resultantes sustituyen la lista de mandatos y argumentos. Si no se hace ninguna
referencia a la lista del histórico, la lista de argumentos permanece intacta.

Para obtener información acerca del mecanismo histórico del shell C, consulte el apartado “Sustitución del
histórico en el shell C” en la página 238

Los mandatos incorporados alias y unalias se utilizan para establecer, visualizar y modificar la lista de los
alias. El mandato alias se utiliza en el formato siguiente:
alias [Nombre [ListaPalabras]]

La variable opcional Nombre especifica el alias del nombre especificado. Si especifica una lista de
palabras con la variable ListaPalabras, el mandato la asigna como el alias de la variable Nombre. Si emite
el mandato alias sin ninguna de las variables opcionales, éste visualizará todos los alias del shell C.

Si el alias del mandato ls es ls -l, el mandato:


ls /usr

se sustituirá por el mandato:


ls -l /usr

La lista de argumentos no se altera puesto que no hay ninguna referencia a la lista del histórico en el
mandato con un alias. De forma similar, si el alias del mandato lookup es:
grep \!| /etc/passwd

el shell sustituirá lookup bill por:


grep bill /etc/passwd

Capítulo 11. Shells 241


En este ejemplo, !| hace referencia a la lista del histórico y el shell la sustituye por el primer argumento
de la línea de entrada, en este caso bill.

Puede utilizar caracteres coincidentes con patrón especiales en un alias. El mandato:


alias lprint 'pr &bslash2.!* >

> print'

crea un mandato que formatea sus argumentos a la impresora de líneas. El carácter ! queda protegido
del shell en el alias por medio de la utilización de comillas simples para que no se expanda hasta que se
ejecute el mandato pr.

Si el shell localiza un alias, efectúa la transformación de palabras del texto de entrada y comienza de
nuevo el proceso de alias en la línea de entrada reformada. Si la primera palabra o el texto siguiente es
igual que el antiguo, se impide la formación de bucles marcándolo para terminar el proceso de alias. Los
otros bucles posteriores se detectan y generan un error.
v “Información relacionada del shell C” en la página 251

Sustitución de variables y nombres de archivo en el shell C


El shell C le permite efectuar sustituciones de variables y de nombres de archivo.

Los siguientes apartados le ofrecen información acerca de cómo crear y sustituir variables en el shell C:
v “Sustitución de variables en el shell C”
v “Sustitución de nombres de archivos en el shell C” en la página 244
v “Expansión de nombres de archivo” en la página 244
v “Abreviatura de los nombres de archivos” en la página 245
v “Clases de caracteres” en la página 245
v “Información relacionada del shell C” en la página 251

Sustitución de variables en el shell C


El shell C mantiene un conjunto de variables, cada una de las cuales tiene como valor una lista de cero o
más palabras. Algunas de estas variables están definidas por el shell o el shell hace referencia a ellas.
Por ejemplo, la variable argv es una imagen de la lista de variables del shell, y a las palabras que
componen el valor de esta variable se hace referencia de formas especiales.

Puede cambiar y visualizar los valores de las variables con los mandatos set y unset. De las variables a
las que hace referencia el shell, algunas son conmutadores (variables que activan o desactivan valores).
El shell no examina los conmutadores de un valor, sólo comprueba si están o no establecidos. Por
ejemplo, la variable de shell verbose es un conmutador que da lugar a la ejecución de echo en la entrada
de mandatos. El valor de esta variable es el resultado de la emisión del distintivo -v desde la línea de
mandatos.

Otras operaciones tratan a las variables numéricamente. El mandato @ realiza cálculos numéricos, y el
resultado de ellos se asigna a la variable. No obstante, los valores de las variables siempre están
representados como (cero o más) series. Para las operaciones numéricas, la serie nula se considera que
es cero y la segunda y siguientes palabras de los valores de varias palabras se pasan por alto.

Cuando emita un mandato, el shell analizará la línea de entrada y efectuará la sustitución de alias. A
continuación, antes de ejecutar el mandato, efectuará la sustitución de variables. El carácter $ se utiliza
para la sustitución. No obstante, se pasa sin modificar si está seguido de un blanco, tabulador o carácter
de nueva línea. La especificación del carácter $ después de una \ evita que tenga lugar esta expansión,
excepto en dos casos:

242 Guía del usuario del sistema: Sistema operativo y dispositivos


v El mandato se ha especificado entre ″ ″. En este caso, el shell siempre efectúa la sustitución.
v El mandato se ha especificado entre ’ ’. En este caso, el shell nunca efectúa la sustitución. Las series
delimitadas por ’ ’ se interpretan para sustitución de mandatos. (Consulte el apartado “Sustitución de
mandatos en el shell C” en la página 237.)

El shell reconoce la redirección de entrada y de salida antes de la expansión de variables y las expande
por separado. De lo contrario, el nombre de mandato y la lista completa de argumentos se expanden
juntos. Es, por tanto, posible que la primera palabra (mandato) genera más de una palabra, la primera de
las cuales pasa a ser el nombre de mandato y el resto pasan a ser parámetros.

A menos que se haya especificado entre ″ ″ o que se haya proporcionado el modificador :q, el resultado
de la sustitución de variables podría someterse finalmente a la sustitución de los nombres de archivos y
mandatos. Cuando está delimitada entre comillas, una variable con un valor que consta de varias
palabras se expande a una sola palabra o a una parte de una palabra, con las palabras del valor de la
variable separadas por blancos. Cuando aplica el modificador :q a una sustitución, la variable se expande
en varias palabras. Cada palabra está separada por un blanco y delimitada entre comillas para impedir
sustitución de nombres de archivo y mandatos posterior.

Las notaciones que se describen a continuación le permiten introducir variables en la entrada del shell.
Excepto como se indica, es un error hacer referencia a una variable que no está definida con el mandato
set.

Puede aplicar los modificadores :gh, :gt, :gr, :h, :r, :q y :x a las sustituciones siguientes. Si aparecen { }
en el formato del mandato, los modificadores deben aparecer entre llaves. La implementación actual sólo
admite un modificador : en cada expansión de variable.

$Nombre
${Nombre} Se sustituye por las palabras que se han asignado a la variable Nombre, cada una de ellas
separadas por un blanco. Las llaves aíslan la variable Nombre de los caracteres siguientes
que, de otra forma, formarían parte de ésta. Los nombres de las variables empiezan por una
letra y se componen de hasta 20 letras y dígitos, incluido el carácter del subrayado (_). Si la
variable Nombre no especifica una variable de shell pero se ha establecido en el entorno, se
devuelve su valor. El modificador precedido por dos puntos, además de los demás formatos
descritos aquí, no está disponible en este caso.
$Nombre[número]
${Nombre[número]} Sólo selecciona algunas de las palabras del valor de la variable Nombre. El número se somete
a la sustitución de variables y puede estar compuesto de un solo número o de dos números
separados por un -. La primera palabra del valor de la serie de una variable tiene el número 1.
Si se omite el primer número de un rango, se toma el valor por omisión 1. Si se omite el
último número de un rango, el valor por omisión es $#Nombre. El símbolo * selecciona todas
las palabras. No es un error que un rango esté vacío si se omite el segundo argumento o está
en un rango.
$#Nombre
${#Nombre} Proporciona el número de palabras de la variable Nombre. Es útil cuando se utiliza en un
[número], como se ha indicado anteriormente. Por ejemplo, $Nombre[$#Nombre.
$0 Sustituye el nombre del archivo cuya entrada de mandatos se lee. Se produce un error si no
se conoce el nombre.
$número
${número} Equivale a $argv[número].
$* Equivalente a $argv[*].

Puede que las sustituciones siguientes no puedan cambiarse con modificadores :.

$?nombre
${?nombre} Sustituye a la serie 1 si se ha establecido la variable nombre; a cero (0) si no se ha establecido esta
variable.

Capítulo 11. Shells 243


$?0 Sustituye a 1 si se conoce el nombre de archivo de entrada actual; a cero (0) si no se conoce el
nombre de archivo.
$$ Sustituye el número de proceso (decimal) del shell padre.
$< Sustituye una línea de la entrada estándar, sin interpretación posterior. Utilice esta sustitución para
leer desde el teclado en un procedimiento del shell.

Sustitución de nombres de archivos en el shell C


El shell C proporciona un compendio de varias funciones para ahorrar tiempo y pulsaciones. Si una
palabra contiene cualquiera de los caracteres *, ?, [ ] o { } o bien empieza por una tilde (x), esa palabra es
candidata de la sustitución del nombre del archivo. El shell C interpreta la palabra como un patrón y
sustituye dicha palabra por una lista ordenada alfabéticamente de nombres de archivo que coinciden con
el patrón.

Se utiliza el orden de clasificación actual, tal como especifican las variables de entorno LC_COLLATE o
LANG. En una lista de palabras que especifica sustitución de nombres de archivo, se produce un error si
ningún patrón coincide con un nombre de archivo existente. No obstante, no se requiere que coincidan
todos los patrones. Sólo los símbolos de coincidencia de caracteres *, ? y [ ] indican patrones de
coincidencia o expansión del nombre del archivo. La tilde (x) y los caracteres { } indican abreviatura de
nombre de archivo.

Expansión de nombres de archivo


El carácter * puede coincidir con cualquier serie de caracteres, incluida la serie nula. Por ejemplo, en un
directorio que contiene los archivos:
a aa aax alice b bb c cc

el mandato echo a* imprime todos los nombres de archivos que empiezan por el carácter a:
a aa aax alice

Nota: Cuando se busca la coincidencia de los nombres, los caracteres PUNTO (.) y / deben coincidir
explícitamente.

El carácter ? puede coincidir con cualquier carácter individual. El mandato:


ls a?x

lista todos los nombres de archivo que comienzan por la letra a, seguidos de un solo carácter y que
finalizan con la letra x:
aax

Para buscar la coincidencia de un único carácter o de un rango de caracteres, especifique el carácter o


caracteres entre [ ]. El mandato:
ls [abc]

lista todos los nombres de archivo que coinciden exactamente con uno de los caracteres delimitados:
a b c

Dentro de los corchetes, un rango léxico de caracteres se indica mediante [a-z]. Los caracteres que
coinciden con este patrón se definen mediante el orden de clasificación actual.

244 Guía del usuario del sistema: Sistema operativo y dispositivos


Abreviatura de los nombres de archivos
La tilde (x) y los caracteres { } indican abreviatura de nombre de archivo. Se utiliza una x al principio de
un nombre de archivo para representar directorios iniciales. Cuando aparece solo, el carácter x realiza la
expansión en el directorio inicial, tal como se refleja en el valor de la variable de shell home. Por ejemplo,
el mandato:
ls x

lista todos los archivos y directorios que se encuentran en el directorio $HOME.

Cuando va seguido de un nombre compuesto de letras, dígitos y de caracteres -, el shell busca un


usuario que tenga ese nombre y sustituye el directorio $HOME de ese usuario.

Nota: Si el carácter x va seguido de un carácter distinto de una letra o una /, o bien aparece en
cualquier punto que no sea al principio de una palabra, la expansión no se realiza.

Para buscar la coincidencia de los nombres de los archivos sin escribir el nombre completo del archivo,
especifique los nombres de los archivos entre { }. El patrón a{b,c,d}e es una forma abreviada de abe ace
ade. El shell mantiene el orden de izquierda a derecha y almacena por separado el resultado las
coincidencias a bajo nivel para preservar este orden. Puede que esta construcción esté anidada. De este
modo:
xsource/s1/{oldls,ls}.c

se expande a:
/usr/source/s1/oldls.c /usr/source/s1/ls.c

si el directorio inicial de source es /usr/source. De forma similar:


../{memo,*box}

puede expandirse a:
../memo ../box ../mbox

Nota:memo se almacena con el resultado de la coincidencia de *box. Como caso especial, los
caracteres {, } y { } se pasan sin modificarse.

Clases de caracteres
También puede utilizar clases de caracteres que coincidan con nombres de archivos dentro de una
indicación de rangos:
[:clasecaracteres:]

Este formato indica al sistema que debe buscar caracteres simples que pertenezcan a la clase
especificada. Las clases definidas corresponden a subrutinas ctype.

Clase de carácter Definición


alnum Caracteres alfanuméricos
alpha Letras mayúsculas y minúsculas
cntrl Caracteres de control
digit Dígitos
graph Caracteres gráficos
lower Letras minúsculas
print Caracteres imprimibles
punct Carácter de puntuación
space Espacio, tabulador horizontal, retorno de carro, nueva línea, tabulador vertical o carácter de salto
de página
upper Caracteres mayúsculas

Capítulo 11. Shells 245


Clase de carácter Definición
xdigit Dígitos hexadecimales

Imagine que está en un directorio que contiene los siguientes archivos:


a aa aax Alice b bb c cc

Escriba el mandato siguiente en un indicador de mandatos del shell C:


ls [:lower:]

Pulse Intro.

El shell C lista todos los nombres de archivo que comienzan por caracteres en minúsculas:
a aa aax b bb c cc

Para obtener más información acerca de las expresiones de las clases de caracteres, consulte el mandato
ed.

Variables de entorno en el shell C


Ciertas variables tienen un significado especial para el shell C. De estas, argv, cwd, home, path,
prompt, shell y status siempre las establece el shell. Excepto para las variables cwd y status, esta
acción sólo tiene lugar durante la inicialización. Estas variables conservan sus valores, a menos que
vuelvan a establecerse explícitamente.

El mandato csh copia las variables de entorno USER, TERM, HOME y PATH en las variables csh, user,
term, home y path respectivamente. Los valores vuelven a copiarse al entorno siempre que se
restablezcan las variables normales del shell. La variable path sólo puede establecerse en el archivo
.cshrc, ya que los subprocesos csh importan la definición de la vía de acceso del entorno y vuelven a
exportarla si ha cambiado.

Las variables siguientes tienen significados especiales:

argv Contiene los argumentos que se pasan a scripts de shell. Los parámetros de posición de esta
variable se sustituyen.
cdpath Especifica una lista de directorios alternativos en los que el mandato chdir o cd buscará
subdirectorios.
cwd Especifica el nombre completo de la vía de acceso del directorio actual.
echo Se establece cuando se utiliza el distintivo de línea de mandatos -x; cuando se establece, da lugar
a que cada mandato y argumento ejecuten echo justo antes de su ejecución. En el caso de
mandatos que no son incorporados, todas las expansiones se producen antes de la repetición. Se
ejecuta echo para los mandatos incorporados antes de la sustitución del nombre del archivo y del
mandato, pues estas sustituciones se realizan entonces de forma selectiva.
histchars Especifica un valor de serie para cambiar los caracteres utilizados en la sustitución de histórico.
Utilice el primer carácter de su valor como carácter de sustitución del histórico; ello sustituye el
carácter por omisión, !. El segundo carácter de su valor sustituye al carácter | en las sustituciones
rápidas.

Nota: El establecimiento del valor histchars en un carácter utilizado en los nombres de los
archivos o mandatos podría dar lugar a una sustitución del histórico no intencionada.
history Contiene un valor numérico para controlar el tamaño de la lista del histórico. No se desecha
ningún mandato que está referenciado en este evento. Los valores muy largos de la variable
history podrían dar lugar a que el shell experimentara una insuficiencia de memoria.
Independientemente de que esta variable esté definida o no, el shell C siempre guarda el último
mandato que se ejecutó en la lista del histórico.

246 Guía del usuario del sistema: Sistema operativo y dispositivos


home Indica el directorio inicial, inicializado desde el entorno. La expansión del nombre de archivo del
carácter de la tilde (x) hace referencia a esta variable.
ignoreeof Especifica que el shell ignora un carácter de fin de archivo de dispositivos de entrada que son
estaciones de trabajo. Esto impide que los shell puedan matarse accidentalmente cuando lee un
carácter de fin de archivo (Control-D).
mail Especifica los archivos en los que busca correo el shell. Esto se efectúa después de cada
finalización de mandato que da como resultado un indicador si ha transcurrido un intervalo de
tiempo especificado. El shell visualiza el mensaje Mail in file. si el archivo tiene una hora de
acceso anterior a su hora de cambio.
Si la primera palabra del valor de la variable mail es un valor numérico, especifica un intervalo
distinto de tiempo (en segundos) de comprobación del correo; el valor por omisión es 600 (10
minutos). Si especifica varios archivos de correo, el shell visualizará el mensaje New mail in file
cuando exista correo en el archivo especificado.
noclobber Sitúa restricciones en redirección de salida para garantizar que no se destruyen accidentalmente
archivos y que las redirecciones se añaden a archivos existentes.
noglob Inhibe la expansión de nombres de archivo. Esto resulta más útil en los scripts de shell que no
gestionan nombres de archivos o bien cuando se ha obtenido una lista de nombres de archivos y
no se desean expansiones adicionales.
nonomatch Especifica que no se producen errores si una expansión de nombres de archivo no coincide con
ningún archivo existente, sino que se devuelve el patrón de primitivos. Sí es un error cuando el
patrón primitivo no se ha formado correctamente.
notify Especifica que el shell envía notificación asíncrona de cambios en los estados de trabajos. El valor
por omisión presenta los cambios en los estados justo antes de visualizar el indicador del shell.
path Especifica los directorios en que se buscan los mandatos para ejecución. Una palabra nula
especifica el directorio actual. Si no se ha establecido ninguna variable path, sólo podrán
ejecutarse nombres completos de vías de acceso. La vía de búsqueda por omisión (del archivo
/etc/environment que se utiliza durante el inicio de sesión) es:
/usr/bin /etc /usr/sbin /usr/ucb /usr/bin/X11 /sbin
Normalmente, un shell al que no se le proporciona el distintivo -c o -t organiza el contenido de los
directorios de la variable path tras leer .cshrc y cada vez que vuelve a establecerse la variable
path. Si se añaden nuevos mandatos a estos directorios mientras el shell está activo, deberá
especificar el mandato rehash o puede que no se encuentren los mandatos.
prompt Especifica la serie que se visualiza antes de que lea cada mandato de una entrada de estación de
trabajo interactiva. Si aparece un ! en la serie, se sustituye por el número de suceso actual. Si el
carácter ! está en una serie delimitada por apóstrofos o comillas, el carácter ! debe ir precedido de
una \. La variable prompt por omisión para los usuarios que no disponen de autorización de
usuario root es %. La variable prompt por omisión para el usuario root es #.
savehist Especifica un valor numérico para controlar el número de entradas de la lista del histórico que
están guardadas en el archivo x/.history cuando finaliza la sesión. Se guarda cualquier mandato al
que se haga referencia en este número de eventos. Durante el arranque, el shell lee x/.history en
la lista del histórico, permitiendo que el histórico pueda guardarse entre inicios de sesión. Los
valores muy largos de la variable savehist pueden ralentizar el arranque del shell.
shell Especifica el archivo en que reside el shell C. Se utiliza para forzar a los shells que interpreten
archivos que tienen definidos bits de ejecución, pero que el sistema no ejecuta. Se inicializa en el
directorio inicial del shell C.
status Especifica el estado devuelto por el último mandato. Si el mandato termina anormalmente, se
añade 0200 al estado. Los mandatos incorporados que no son satisfactorios devuelven un estado
de salida 1. Los mandatos incorporados satisfactorios establecen su estado en el valor 0.
time Controla la temporización automática de mandatos. Si está definida esta variable, cualquier
mandato que tarde más del número de segundos de CPU especificados mostrará una línea de
recursos utilizados al final de la ejecución. Para obtener más información acerca de las salidas por
omisión, consulte el mandato time.
verbose Esta variable, que se establece mediante el distintivo de línea de mandatos -v, da lugar a que las
palabras de cada mandato se visualicen tras la sustitución del histórico.

v “Información relacionada del shell C” en la página 251

Capítulo 11. Shells 247


Redirección de entrada y salida en el shell C
Antes de que el shell C ejecute un mandato, busca caracteres de redirección en la línea de mandatos.
Estas notaciones especiales indican al shell que redirija la entrada y la salida.

Puede redirigir la entrada y la salida estándar de un mandato utilizando las siguientes sentencias de
sintaxis:

< Archivo Abre el Archivo especificado (del que primero se expande la variable, el mandato y el
nombre de archivo) como entrada estándar.
<<Palabra Lee la entrada del shell hasta la línea que coincide con el valor de la variable Palabra. La
variable Palabra no depende de la sustitución de la variable, del nombre de archivo o del
mandato. Cada línea de entrada se compara con la variable Palabra antes de realizarse las
sustituciones en la línea. A menos que aparezca un carácter delimitador (\, ″, ’ o ′.) en la
variable Palabra, el shell realiza la sustitución de la variable y del mandato en las líneas
intermedias, lo que permite que el carácter \ pueda utilizarse para delimitar a los caracteres
$, \ y ′. Los mandatos que se sustituyen están formados completamente de blancos,
tabulaciones y caracteres de nueva línea preservados, excepto el carácter de nueva línea
final, que se elimina. El texto resultante se coloca en un archivo temporal anónimo, que se
pasa al mandato como entrada estándar.

> Archivo

>!Archivo

>& Archivo

>&!Archivo Utiliza el Archivo especificado como salida estándar. Si el Archivo no existe, se crea. Si el
Archivo existe, se trunca y se pierde su contenido anterior. Si se ha establecido la variable
de shell noclobber, Archivo no debe existir o ser un archivo especial de caracteres; de lo
contrario, se generará un error. Esto ayuda a prevenir la destrucción accidental de archivos.
En este caso, utilice los formatos que incluyen un ! para suprimir esta comprobación. Archivo
se expande del mismo modo que los nombres de archivos de entrada <. El formato >&
redirige la salida estándar y el error estándar al Archivo especificado. En el ejemplo siguiente
se muestra cómo redirigir por separado la salida estándar a /dev/tty y el error estándar a
/dev/null. Los paréntesis son obligatorios para permitir separar la salida estándar y el error
estándar.
% (find / -name vi -print > /dev/tty) >& /dev/null

> >Archivo

> >!Archivo

> >& Archivo

> >&!Archivo Utiliza el Archivo especificado como salida estándar como >, pero añade la salida al final
de Archivo. Si se ha establecido la variable de shell noclobber, se generará un error si
Archivo no existe, a menos que se proporcione uno de los formatos que incluyen un !.
De lo contrario, será parecido a >.

Un mandato recibe el entorno en el que llamó al shell, cambiado por los parámetros de entrada/salida y la
presencia del mandato como un conducto. De este modo, a diferencia de algunos shells anteriores, los
mandatos que se ejecutan desde un script de shell no tienen acceso al texto de los mandatos por
omisión, sino que reciben la entrada estándar original del shell. Utilice el mecanismo << para presentar
datos en línea. Esto permite a los archivos de mandatos del shell funcionar como componentes de

248 Guía del usuario del sistema: Sistema operativo y dispositivos


conductos y también permite que el bloque de shell lea su entrada. Tenga en cuenta que la entrada
estándar por omisión de un mandato que se ejecuta sin asociaciones no cambia por el archivo /dev/null
vacío. En lugar de ello, la entrada estándar sigue siendo la entrada estándar original del shell.

Para redirigir el error estándar mediante un conducto con la salida estándar, utilice el formato |& en lugar
de utilizar únicamente el carácter |.

Flujo de control
El shell contiene mandatos que pueden utilizarse para regular el flujo de control en archivos de mandatos
(scripts de shell) y (en modos útiles, pero limitados) desde entrada de línea de mandatos del shell. Todos
estos mandatos funcionan haciendo que el shell se repita, o se salte, en su entrada.

Las sentencias foreach, switch y while y el formato if-then-else de la sentencia if necesitan que las
palabras clave principales aparezcan en un solo mandato simple y en una línea de entrada.

Si no pueden efectuarse búsquedas en la entrada del shell, el shell sitúa en almacenamiento intermedio la
entrada siempre que se lea un bucle y busca en el almacenamiento intermedio interno para efectuar el
repaso implicado por el bucle. Hasta donde están permitido, los goto de retroceso se ejecutan
satisfactoriamente en las entradas en las que no pueden realizarse búsquedas.
v “Información relacionada del shell C” en la página 251

Control de trabajos en el shell C


El shell asocia un número de trabajo con cada proceso. Mantiene una tabla de trabajos actuales y les
asigna números enteros pequeños. Cuando inicia un trabajo como proceso de fondo con un &, el shell
imprime una línea que tiene un aspecto similar al siguiente:
[1] 1234

La línea indica que el número de trabajo es el 1 y que el trabajo se compone de un único proceso cuyo ID
de proceso es 1234. Utilice el mandato incorporado jobs para ver la tabla de los trabajos actuales.

Un trabajo que se ejecuta en el segundo plano compite por la entrada si intenta leer de la estación de
trabajo. Los trabajos en segundo plano también pueden producir salida para la estación de trabajo que se
intercala con la salida de otros trabajos.

Existen varios modos de hacer referencia a trabajos del shell. Utilice el carácter % para especificar el
nombre de un trabajo. Este nombre puede ser el número de trabajo o el nombre del mandato que inició el
trabajo, si este nombre es exclusivo. Por lo tanto si, por ejemplo, un proceso make está ejecutándose
como el trabajo 1, puede hacer referencia a éste con %1. También puede hacer referencia a éste con
%make, si sólo existe un trabajo suspendido con un nombre que empiece por la serie make. También puede
utilizar:
%?Serie

para especificar un trabajo cuyo nombre contiene la variable Serie, si sólo existe un trabajo que reúna
tales características.

El shell detecta inmediatamente siempre que un proceso cambia de estado. Si un trabajo queda
bloqueado de forma que no se puede continuar, el shell envía un mensaje a la estación de trabajo. Este
mensaje se muestra sólo después de que pulse la tecla Intro. Sin embargo, si se ha establecido la
variable de shell notify, el shell emitirá inmediatamente un mensaje que indica los cambios producidos en
el estado de los trabajos de fondo. Utilice el mandato incorporado notify para marcar un único proceso de
modo que se informe con prontitud de los cambios que se producen en su estado. Por omisión, el
mandato notify marcará el proceso actual.
v “Información relacionada del shell C” en la página 251

Capítulo 11. Shells 249


Lista de mandatos incorporados del shell C
alias Visualiza los alias especificados o todos los alias.
bg Establece los trabajos actuales o los trabajos especificados como trabajos de fondo.
break Reanuda la ejecución tras el final del último mandato de delimitación foreach o while.
breaksw Realiza una interrupción desde un mandato switch.
case Define una etiqueta en un mandato switch.
cd Cambia el directorio actual al directorio especificado.
chdir Cambia el directorio actual al directorio especificado.
continue Continúa la ejecución del mandato de delimitación foreach o while más próximo.
default Etiqueta la especificación de mayúsculas o minúsculas por omisión en una sentencia switch.
dirs Visualiza la pila de directorios.
echo Graba series de caracteres en la salida estándar del shell.
else Ejecuta los mandatos que siguen al segundo else en una secuencia de mandatos if (Expresión)
then ...else if (Expresión2) then ... else ... endif.
end Indica el final de una secuencia de mandatos precedida por el mandato foreach. Véase también el
mandato while.
endif Ejecuta los mandatos que siguen a la segunda sentencia then en una secuencia de mandatos if
(Expresión) then ... else if (Expresión2) then ... else ... endif.
endsw Marca el final de una secuencia de mandatos switch (Serie) case Serie : ... breaksw default: ...
breaksw endsw. Esta secuencia de mandatos hace coincidir sucesivamente cada etiqueta de
especificación de mayúsculas o minúsculas con el valor de la variable Serie. La ejecución continúa
después del mandato endsw si se ejecuta un mandato breaksw o si no se ha encontrado ninguna
etiqueta coincidente y no existe ningún valor por omisión.
eval Lee los valores de las variables como entrada para el shell y ejecuta el mandato o mandatos
resultantes en el contexto del shell actual.
exec Ejecuta el mandato especificado en lugar del shell actual.
exit Sale del shell con el valor de la variable de shell de estado o con el valor de la expresión
especificada.
fg Establece los trabajos actuales o los especificados como trabajos en primer plano, continuando con
su ejecución si se han detenido.
foreach Define sucesivamente una variable Nombre para cada miembro especificado por la variable Lista y
una secuencia de mandatos hasta llegar a un mandato end.
glob Visualiza la lista utilizando la expansión de histórico, de variable y de nombre de archivo.
goto Continúa con la ejecución después de una línea especificada.
hashstat Visualiza estadísticas que indican el grado de eficacia de la tabla hash en la localización de
mandatos.
history Muestra la lista de eventos históricos.
if Ejecuta un mandato especificado si una expresión indicada es verdadera.
jobs Lista los trabajos activos.
kill Envía la señal TERM (terminar) o la señal que especifica la variable Señal al trabajo o proceso
especificado.
limit Limita la utilización de un recurso especificado por parte del proceso actual y de cada proceso que
éste crea.
login Finaliza un shell de inicio de sesión y lo sustituye por una instancia del mandato /usr/sbin/login.
logout Finaliza el shell de inicio de sesión.
nice Establece la prioridad de los mandatos que se ejecutan en el shell.
nohup Da lugar que los estados de entrada en suspensión se pasen por alto en la parte restante de un
procedimiento.
notify Da lugar a que el shell le notifique de forma asíncrona cuando cambie el estado del trabajo actual o
de un trabajo especificado.
onintr Controla la acción del shell en interrupciones.
popd Muestra la pila de directorios y vuelve al nuevo directorio superior.
pushd Intercambia elementos de la pila de directorios.
rehash Da lugar a que vuelva a calcularse la tabla hash en la que se incluye el contenido de los directorios
de la variable de shell de vía de acceso.

250 Guía del usuario del sistema: Sistema operativo y dispositivos


repeat Ejecuta el mandato especificado, aplicando las mismas restricciones que las del mandato if, el
número de veces que se especifica.
set Muestra el valor de todas las variables de shell.
setenv Modifica el valor de la variable de entorno especificada.
shift Desplaza la variable especificada hacia la izquierda.
source Lee el mandato que especifica la variable Nombre.
stop Detiene los trabajos actuales o los especificados que están ejecutándose como trabajos de fondo.
suspend Detiene el shell como si se hubiera recibido una señal STOP.
switch Inicia una secuencia de mandatos switch (Serie) case Serie : ... breaksw default: ... breaksw
endsw. Esta secuencia de mandatos hace coincidir sucesivamente cada etiqueta de especificación
de mayúsculas o minúsculas con el valor de la variable Serie. Si ninguna de las etiquetas coincide
antes de que se encuentre una etiqueta por omisión, la ejecución se iniciará tras la etiqueta por
omisión.
time Visualiza un resumen del tiempo que ha empleado el shell y sus procesos hijo.
umask Determina los permisos de archivo.
unalias Descarta todos los alias cuyos nombres coinciden con la variable Patrón.
unhash Inhabilita la utilización de la tabla hash interna para la localización de programas en ejecución.
unlimit Elimina las limitaciones de los recursos.
unset Elimina todas las variables cuyos nombres coinciden con la variable Patrón.
unsetenv Elimina todas las variables de entorno cuyos nombres coinciden con la variable Patrón especificada.
wait Espera a todos los trabajos en segundo plano.
while Evalúa los mandatos que aparecen entre la secuencia de mandatos while y mandatos end
coincidentes mientras la expresión que especifica la variable Expresión evalúe un valor distinto de
cero.
@ Visualiza el valor de las variables de shell especificadas.

Consulte el apartado “Mandatos incorporados del shell C” en la página 229 para obtener más información.

Información relacionada del shell C


“Capítulo 11. Shells” en la página 159

“Mandatos del shell C” en la página 229

“Sustitución del histórico en el shell C” en la página 238

“Sustitución de alias en el shell C” en la página 241

“Sustitución de variables y nombres de archivo en el shell C” en la página 242

“Variables de entorno en el shell C” en la página 246

“Redirección de entrada y salida en el shell C” en la página 248

“Control de trabajos en el shell C” en la página 249

Los mandatos csh y ed.

Los mandatos incorporados del shell C alias, unalias, jobs, notify y set.

Capítulo 11. Shells 251


252 Guía del usuario del sistema: Sistema operativo y dispositivos
Capítulo 12. Herramientas y programas de utilidad varios
A continuación se describen algunas tareas comunes que puede realizar utilizando mandatos del sistema
operativo. Se exponen el mandato y un ejemplo de cómo utilizar el mandato para cada una de las tareas
siguientes:
v “Localización de un mandato mediante una palabra clave (mandato apropos)”
v “Visualización de una agenda (mandato cal)”
v “Visualización de mensajes de recordatorio (mandato calendar)” en la página 254
v “Visualización de información de ayuda para nuevos usuarios (mandato help)” en la página 255
v “Inicio de los cursos de formación asistida por ordenador (mandato learn)” en la página 255
v “Recordatorio de salida (mandato leave)” en la página 256
v “Obtención de los factores de un número (mandato factor)” en la página 256
v “Conversión de unidades de medida (mandato units)” en la página 257
v “Envío de mensajes a otro usuario que ha iniciado la sesión (mandato write)” en la página 259
v “Resumen de mandatos para herramientas y programas de utilidad varios” en la página 261

Localización de un mandato mediante una palabra clave (mandato


apropos)
Puede visualizar las secciones de manual que contienen cualquiera de las Palabras clave indicadas en
sus títulos con el mandato apropos. El mandato apropos considera cada palabra por separado y no tiene
en cuenta si las letras están en mayúsculas o en minúsculas. Las palabras que forman parte de otras
palabras también se muestran. Por ejemplo, cuando busca la palabra compile, el mandato apropos
también busca todas las instancias de la palabra compiler.

El mandato apropos equivale a utilizar el mandato man con la opción -k.

Por ejemplo, para buscar las secciones de manual que contienen la palabra password en sus títulos,
escriba:
apropos password

Pulse Intro.

Consulte el mandato apropos en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización de una agenda (mandato cal)


El mandato cal graba en la salida estándar una agenda para el año o mes especificado.

El parámetro Mes indica el nombre del mes para el que desea la agenda. Puede ser un número de 1 a 12
entre Enero y Diciembre, respectivamente. Si no se especifica ningún Mes, el mandato cal toma por
omisión el mes en curso.

El parámetro Año indica el año para el que desea la agenda. Puesto que el mandato cal puede visualizar
una agenda para cualquier año comprendido entre el 1 y el 9999, escriba el año completo en lugar de
sólo los dos últimos dígitos. Si no se especifica ningún Año, el mandato cal toma por omisión el año en
curso.

Por ejemplo, para que se visualice una agenda para febrero de 1984 en la estación de trabajo, escriba:

© Copyright IBM Corp. 1997, 2001 253


cal 2 1984

Pulse Intro.

Por ejemplo, para que se imprima una agenda para 1984, escriba:
cal 1984 | qprt

Pulse Intro.

Por ejemplo, para que se visualice una agenda para el año 84 d. de C., escriba:
cal 84

Pulse Intro.

Consulte el mandato cal en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Visualización de mensajes de recordatorio (mandato calendar)


Puede leer un archivo denominado calendar (agenda), que se crea en el directorio inicial con el mandato
calendar. El mandato graba en la salida estándar cualquier línea del archivo que contenga la fecha de
hoy o de mañana.

El mandato calendar reconoce formatos de fecha como Dic. 7 ó 12/7. También reconoce el carácter
especial * (asterisco) cuando va seguido de una / (barra inclinada). Por ejemplo, interpreta que */7
significa el séptimo día de cada mes.

Los viernes, el mandato calendar graba todas las líneas que contienen las citas para el viernes, sábado,
domingo y lunes. Sin embargo, no reconoce los días festivos, por lo tanto, funcionará sin tener ello en
cuenta y proporcionará únicamente la planificación del siguiente día.

Un archivo calendar normal puede tener el aspecto siguiente:


*/25 - Preparar informe mensual
Ago. 12 - Vuelo a Zaragoza
ago 23 - reunión del consejo
Marta está fuera - 8/23, 8/24, 8/25
8/24 - Pago de coche de alquiler
sab ago/25 - viaje a la playa
Agosto 27 - Reunión con Simmons
Agosto 28 - Reunión con Wilson

Si hoy es viernes, 24 de agosto, el mandato calendar visualizará lo siguiente:


*/25 - Preparar informe mensual
Marta está fuera - 8/23, 8/24, 8/25
8/24 - Pago de coche de alquiler
sab ago/25 - viaje a la playa
Agosto 27 - Reunión con Simmons

Consulte el mandato calendar en la publicación AIX 5L Version 5.1 Commands Reference para conocer
la sintaxis exacta.

254 Guía del usuario del sistema: Sistema operativo y dispositivos


Visualización de información de ayuda para nuevos usuarios (mandato
help)
Puede hacer que se visualice una pantalla con una página de información utilizando el mandato help.

En el indicador de mandatos, escriba:


help

Pulse Intro.

El sistema visualizará información parecida a la siguiente:


En un manual impreso encontrará la ayuda que necesita.
Lea el manual "Utilización y gestión de AIX".

Los mandatos:
man -k palabra clave lista mandatos relevantes para una palabra clave
man mandato imprime las páginas de un manual referentes
a un mandato
serán de ayuda; otros mandatos básicos son:
cat - concatena archivos (y los imprime)
ex - editor de texto
ls - lista el contenido de directorios
mail - envía y recibe correo
passwd - cambia la contraseña de inicio de sesión
sccshelp - visualiza información en el sistema de
control de codificación fuente
smit - herramienta de interfaz de gestión del sistema
tset - define modalidades de terminal
who - quién es en el sistema
write - escribe mensajes a otro usuario
Puede encontrar programas acerca del correo mediante el mandato:
man -k mail
e imprimir la documentación del mandato man con: man mail
Puede abandonar la sesión escribiendo "exit".

Consulte el mandato help en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Inicio de los cursos de formación asistida por ordenador (mandato


learn)
Puede practicar con la utilización de archivos, editores, macros y otras funciones con el mandato learn,
que proporciona cursos de formación asistida por ordenador. La primera vez que utilice el mandato learn,
se le mostrarán una serie de preguntas con las que podrá determinarse el tipo de formación que desea
recibir. Tras la primera utilización del mandato, se le situará en el punto en el finalizó la sesión del
mandato learn anterior.

El mandato learn busca la primera lección que contiene el tema que ha especificado. Puede especificar
cualquiera de los siguientes temas:
v Archivos
v Editor
v Más archivos
v Macros
v EQN
v C.

Capítulo 12. Herramientas y programas de utilidad varios 255


Por ejemplo, para tomar la lección en línea que trata acerca de los archivos, escriba:
learn files

Pulse Intro.

A continuación, se le solicitará que especifique información adicional.

Consulte el mandato learn en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Recordatorio de salida (mandato leave)


Puede hacer que el sistema le recuerde que debe salir a una hora especificada con el mandato leave. Se
le avisará 5 minutos y 1 minuto antes de la hora especificada, luego de nuevo a la hora especificada y
cada minuto después de la misma. Cuando finalice la sesión, el mandato leave saldrá justo antes de
haber visualizado el siguiente mensaje.

Si no especifica una hora, el mandato leave le pregunta ¿Cuándo tiene que salir? Una respuesta
newline da lugar a la salida del mandato leave; de lo contrario, se da por supuesto que la respuesta es
una hora. Este formato es adecuado para su inclusión en un archivo .login o .profile.

Especifique la hora en formato hhmm. Todas las horas se convierten a reloj de 12 horas y se supone que
están relacionadas con las siguientes 12 horas. Puede utilizar el distintivo + para establecer el número de
horas y minutos que han de transcurrir desde el momento actual hasta la hora en que desee que se
active la alarma.

Nota: El mandato leave pasa por alto las operaciones de interrupción, salida y terminación. Para
eliminar la especificación del mandato leave, debe finalizar la sesión o bien utilizar el mandato
kill -9 y proporcionar el ID de proceso.

Por ejemplo, para que se le recuerde que tiene que salir a las 3:45, escriba:
leave 345

Pulse Intro.

Por ejemplo, para que se le recuerde que tiene que salir en 20 minutos, escriba:
leave +0020

Pulse Intro.

Consulte el mandato leave en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Obtención de los factores de un número (mandato factor)


Puede obtener los factores de números con el mandato factor. Cuando se llama sin haberse especificado
un valor para el parámetro Número, el mandato factor espera hasta que se escribe un número positivo
menor que 1E14 (100.000.000.000.000). A continuación graba los factores primos de dicho número en
salida estándar. Muestra cada factor el número apropiado de veces. Para salir, escriba 0 (cero) o
cualquier carácter no numérico.

Cuando se llama con un argumento, el mandato factor determina los factores primos del parámetro
Número, graba el resultado en la salida estándar y sale.

256 Guía del usuario del sistema: Sistema operativo y dispositivos


Por ejemplo, para calcular los factores primos del número 123, escriba:
factor 123

Pulse Intro.

Se visualizará lo siguiente:
123
3
41

Consulte el mandato factor en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Conversión de unidades de medida (mandato units)


Puede convertir las cantidades expresadas en una medida en sus equivalentes en otra unidad de medida
con el mandato units. El mandato units es un mandato interactivo. Le solicitará la unidad desde la que
desea efectuar la conversión y la unidad a la que desea efectuar la conversión.

Nota: Este mandato sólo realiza cambios de escala multiplicativos. Es decir, puede convertir desde
un valor a otro cuando la conversión implica una multiplicación. Por ejemplo, no puede convertir
grados Fahrenheit en grados Celsius y viceversa porque, en la conversión, debe añadirse o restarse
el valor 32.

El mandato units reconoce lb (abreviatura de ″libra″ en inglés) como unidad de masa, pero considera que
pound (″libra″ en inglés, que se aplica al peso o a la moneda) hace referencia a la libra esterlina
británica, no al peso. Los nombres compuestos se ejecutan juntos (como, por ejemplo, el término inglés
lightyear, que significa año luz). Siguiendo con el inglés, las unidades británicas que difieren de sus
equivalentes americanos deben ir precedidas de br (por ejemplo, brgallon, para los galones británicos).
El archivo /usr/share/lib/unittab contiene una lista completa de las unidades que el mandato units utiliza.
También puede definir nuevas unidades en el archivo unittab o bien crear y utilizar un Archivo propio que
sobregrabe los valores de factor de conversión estándar del archivo unittab.

El mandato units reconoce las unidades, abreviaturas y prefijos métricos en inglés más utilizados,
además de los siguientes:

pi Razón de la circunferencia al diámetro


c Velocidad de la luz
e Carga de un electrón
g Aceleración de la gravedad
force Equivale a g
mole Número de Avogadro
water Presión por unidad de altura de agua
au Unidad astronómica

Por ejemplo, para visualizar los factores para la conversión de pulgadas en centímetros, escriba:
units

you have: in
you want: cm

Pulse Intro.

El mandato units devuelve los valores siguientes:

Capítulo 12. Herramientas y programas de utilidad varios 257


* 2.540000e+00
/ 3.937008e-01

La salida le indica que multiplique el número de pulgadas por 2,540000e+00 para obtener centímetros y
que multiplique el número de centímetros por 3,937008e-01 para obtener pulgadas.

Estos números están en notación exponencial estándar, por lo tanto, 3,937008e-01 significa 3,937008 x
10-1, que equivale a 0,3937008.

Nota: El segundo número siempre es el valor recíproco del primero; por ejemplo, 2,54 equivale a
1/0,3937008.

Por ejemplo, para convertir una medida en unidades distintas, escriba:


units
you have: 5 years
you want: microsec

Pulse Intro.

El mandato units devuelve los valores siguientes:


* 1.577846e+14
/ 6.337753e-15

La salida muestra que 5 years (cinco años) equivale a 1,577846 x 1014 microsegundos y que un
microsegundo equivale a 6,337753 x 10-15 años.

Por ejemplo, para proporcionar fracciones en las medidas, escriba:


units
you have: 1|3 mi
you want: km

Pulse Intro.

El mandato units devuelve los valores siguientes:


* 5.364480e-01
/ 1.864114e+00

La barra vertical (|) indica división, por lo tanto, 1|3 significa un tercio. Esto indica que un tercio de milla
equivale a 0,536448 kilómetros.

Por ejemplo, para incluir exponentes en las medidas, escriba:


units
you have: 1.2-5 gal
you want: floz

Pulse Intro.

El mandato units devuelve los valores siguientes:


* 1.536000e-03
/ 6.510417e+02

La expresión 1.2-5 gal equivale a 1,2 x 10-5. No escriba una e delante del exponente (es decir, 1.2e-5
gal no es válido). Este ejemplo muestra que 1.2 x 10-5 (0.000012) galones es igual a 1.536 x 10-3
(0.001536) onzas de fluido.

Si las unidades que especifica después de you have: y de you want: no son compatibles:

258 Guía del usuario del sistema: Sistema operativo y dispositivos


you have: ft
you want: lb

El mandato units devuelve el mensaje y los valores siguientes:


conformability
3.048000e-01 m
4.535924e-01 kg

El mensaje conformability significa que las unidades que ha especificado no pueden convertirse. La
longitud se mide en pies y la masa en libras, por lo tanto convertir de una a otra no tiene sentido. Así
pues, el mandato units visualiza el equivalente de cada valor en unidades estándar.

En otras palabras, este ejemplo muestra que un pie equivale a 0,3048 metros y que una libra equivale a
0,4535924 kilogramos.

Consulte el mandato units en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Envío de mensajes a otro usuario que ha iniciado la sesión (mandato


write)
Puede enviar mensajes a otros usuarios a través del sistema en tiempo real con el mandato write.
Proporciona comunicación del tipo conversación con otro usuario que tenga la sesión iniciada. Cada
usuarios envía y recibe alternativamente mensajes cortos de otra estación de trabajo. Pueden enviarse
mensajes largos situando el mensaje completo en un archivo y redirigiendo dicho archivo como entrada
para el mandato write.

Cuando se emite el mandato write, éste envía el mensaje siguiente de forma inmediata, junto con un
sonido para captar la atención (carácter BEL ASCII) al destinatario o destino del mensaje:
Mensaje de IDRemitente en NombreSistemaPrincipalRemitente (ttynn) [Date] ...

Con una conexión satisfactoria, el mandato write envía dos caracteres BEL ASCII a ambas estaciones de
trabajo. El pitido alerta al emisor de que el mensaje puede comenzar y alerta al destinatario de que se
está recibiendo un mensaje.

Por ejemplo, para escribir un mensaje para el usuario june, que ha iniciado la sesión, escriba:
write june

Pulse Intro.

Escriba:
¡Tenemos que hablar! Nos vemos en la sala de máquinas a las 12:30.

Pulse Intro.

A continuación, pulse la secuencia de teclas Control-D para finalizar la modalidad del mandato write.

Si su ID de usuario es, por ejemplo, karen y está utilizando la estación de trabajo tty3 en la estación de
trabajo de june se visualizará lo siguiente:
Mensaje de karen en trek tty3 Aug 17 11:55:24 ...
¡Tenemos que hablar! Nos vemos en la sala de máquinas a las 12:30.

<EOT>

Por ejemplo, para mantener una conversación con el usuario june, escriba:

Capítulo 12. Herramientas y programas de utilidad varios 259


write june

Pulse Intro.

Escriba:
Nos vemos en la sala de máquinas a las 12:30.o

Pulse Intro.

Con ello se inicia la conversación. La o que aparece al principio de la siguiente línea significa que el
mensaje ha terminado. Indica a June que está esperando una respuesta. No pulse Control-D si desea
continuar.

Ahora June responde escribiendo:


write karen

Pulsa la tecla Intro y escribe:


Tengo que hacer unas pruebas a las 12:30. ¿Nos vemos a las 3?
o

Y usted puede responder:


Vale--en la sala de máquinas a las 3.
oo

Las letras oo significan ″cambio y fuera″, que indican a June que ya no tiene nada más que decirle. Si
June también ha especificado oo, ambos usuarios pulsan Control-D para finalizar la conversación.

Por ejemplo, para escribir al usuario june para enviarle un mensaje preparado, escriba:
write june < message.text

Pulse Intro.

Esto escribirá el contenido del archivo message.text en la estación de trabajo de june.

Por ejemplo, para escribir a una persona que utiliza la estación de trabajo console, escriba:
write console

Pulse Intro.

Escriba:
La impresora del edificio 998 se ha atascado.
Por favor enviad ayuda.

Pulse Intro.

A continuación, pulse la secuencia de teclas Control-D.

Con ello se escribe el mensaje que va a enviarse a la persona que ha iniciado la sesión en la estación de
trabajo /dev/console.

Puede utilizar el mandato write para conversar con los usuarios de otros sistemas principales. Puede
identificar a un usuario de un sistema principal remoto utilizando el distintivo -nNombreSistemaPrincipal o
el parámetro Usuario@SistemaPrincipal. Para escribir a un usuario que se encuentran en un sistema
remoto, el daemon writesrv debe estar en ejecución en el sistema principal actual y en el sistema
principal remoto.

260 Guía del usuario del sistema: Sistema operativo y dispositivos


Por ejemplo, para enviar un mensaje al usuario spuds que se encuentra en el sistema principal remoto
partya, escriba:
write -n partya spuds

Pulse Intro.

Escriba:
Acaba de llegar la cinta nueva,
ven a verme para recogerla.
Gracias

Pulse Intro.

A continuación, pulse la secuencia de teclas Control-D.

O bien
write spuds@partya

Escriba:
Acaba de llegar la cinta nueva,
ven a verme para recogerla.
Gracias

Pulse Intro.

A continuación, pulse la secuencia de teclas Control-D.

Consulte el mandato write en la publicación AIX 5L Version 5.1 Commands Reference para conocer la
sintaxis exacta.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

Resumen de mandatos para herramientas y programas de utilidad


varios
apropos Localiza mandatos mediante consulta de palabras clave.
cal Muestra una agenda.
calendar Graba mensajes recordatorios en la salida estándar.
factor Calcula el factor de un número.
help Proporciona información de ayuda para nuevos usuarios.

Capítulo 12. Herramientas y programas de utilidad varios 261


learn Proporciona cursos de formación asistida por ordenador y prácticas para utilizar archivos, editores,
macros y otras funciones.
leave Proporciona mensajes recordatorios.
units Convierte unidades de una medida a unidades equivalentes en otra medida.
write Envía mensajes a otros usuarios del sistema.

Información relacionada
“Visión general de los mandatos” en la página 22

“Visión general de los procesos” en la página 32

“Sistemas de archivos” en la página 54

“Visión general de los directorios” en la página 57

“Capítulo 6. Archivos” en la página 69

“Capítulo 9. Seguridad de los archivos y del sistema” en la página 127

“Capítulo 2. Entorno de usuario e información del sistema” en la página 13

262 Guía del usuario del sistema: Sistema operativo y dispositivos


Capítulo 13. Servicio de biblioteca de documentación
Introducción
El Servicio de biblioteca de documentación le permite leer, buscar e imprimir documentos HTML en línea.
Proporciona una aplicación de biblioteca que aparece en el navegador Web. La aplicación incluye enlaces
para leer los documentos instalados y un formulario de búsqueda que puede utilizar para buscar texto.
Cuando realiza una búsqueda, una página de resultados visualiza los resultados de la búsqueda con
enlaces a los documentos que contienen las palabras de destino de la búsqueda.

Desde AIX 5.1, también puede bajar versiones imprimibles de los manuales utilizando el botón Imprimir
herramienta del formulario del servicio de biblioteca de documentación.

Se proporcionan dos formularios: una búsqueda global que muestra todos los volúmenes instalados en un
servidor de búsqueda y una búsqueda específica que sólo busca un conjunto de volúmenes, por ejemplo
los manuales de una aplicación.

El servicio de biblioteca de documentación le permite buscar los documentos que se han registrado en el
servicio de búsqueda. El registro lo realiza el administrador del sistema. En el servidor de búsqueda, no
puede buscar los documentos de Internet o los documentos no registrados.

Si escribe documentos HTML desde su sitio, el administrador del sistema puede añadir esos documentos
a la biblioteca de documentación con el fin de que pueda leer, buscar e imprimir los documentos.

Utilización del Servicio de biblioteca de documentación


Para utilizar la Biblioteca:
v Para leer la documentación que se ha instalado en la biblioteca por omisión del sistema, realice una de
las acciones siguientes:
– Escriba docsearch en la línea de mandatos.
– Abra el subpanel de ayuda del escritorio CDE. Pulse en el icono del servicio de búsqueda de
documentación, que tiene el aspecto de unos binoculares.

Nota: Si tiene una copia del CD de AIX 4.3 (o versión posterior), puede leerla desde un PC.
Inserte el CD en la unidad de CD-ROM del PC. Si el CD de la documentación es AIX 4.3.3 o
corresponde a una versión más reciente, utilice un navegador Web para abrir el archivo del CD
denominado readme.htm, que se encuentra en el directorio superior del CD. Si dispone de
una versión comprendida entre AIX 4.3.0 y AIX 4.3.2 del CD de Documentación básica, abra el
archivo usr/share/man/info/en_US/a_doc_lib/aixgen/topnav/topnav.htm:
v Para abrir una biblioteca almacenada en un servidor de documentación remoto, en la barra de
localización del navegador, escriba el URL siguiente:
http://nombre_servidor[:número_boca]/cgi-bin/ds_form

Este URL abre el formulario de búsqueda global para buscar los documentos que están almacenados
en el servidor con el nombre que ha especificado en nombre_servidor.

Nota: Sólo será necesario escribir el número_boca si la boca no es el estándar 80.

Por ejemplo, si desea buscar los documentos registrados en un servidor de búsqueda


denominado hinson y éste utiliza la boca 80, escriba:
http://hinson/cgi-bin/ds_form

© Copyright IBM Corp. 1997, 2001 263


Una vez que el formulario de búsqueda correspondiente a un servidor aparece en el navegador,
puede crear una señal en el texto que le lleve de nuevo al servidor. El administrador del sistema
crea una página web que contiene enlaces a todos los servidores de documentación distintos de
una organización.

La documentación también está disponible, para su búsqueda y lectura, en el sitio Internet


www.ibm.com/servers/aix/library. Tenga en cuenta que aunque este sitio contiene los manuales básicos
del sistema operativo, puede que no contenga otra documentación instalada en el servidor de
documentación local.
v Por lo general, los formularios de búsqueda específica se inician desde los enlaces de búsqueda
que se encuentran dentro de los documentos HTML. Suelen aparecer en las páginas de manuales de
aplicaciones o en archivos de ayuda. Por ejemplo, existe un enlace de ″búsqueda″ en cada página de
la biblioteca. Cuando se pulsa en uno de estos enlaces de búsqueda se inicia un formulario de
búsqueda específica que le permite buscar sólo en los volúmenes de la biblioteca.
v Seleccione los volúmenes que desea buscar. Pulse en el recuadro de selección junto al nombre de
cada volumen mostrado. Por omisión, se busca en todos los volúmenes a no ser que especifique otro
valor.

Tras abrirse la aplicación de biblioteca, puede pulsar en el enlace de Ayuda del extremo superior derecho
para obtener instrucciones acerca de la utilización de la biblioteca.

Cómo cambiar el idioma del Servicio de biblioteca de documentación


Por omisión, cuando abre los iconos del Escritorio de CDE para utilizar el Servicio de búsqueda de
documentación o la Biblioteca básica del sistema operativo, los documentos que se visualizan aparecen
en el mismo idioma que el que utiliza el Escritorio de CDE.

Sin embargo, puede que necesite ver la documentación en un idioma distinto al del escritorio. Por
ejemplo, el escritorio se ejecuta en el idioma nativo, pero puede que los manuales sólo estén disponibles
en inglés. Puede cambiar el idioma de la documentación para que los documentos aparezcan en un
idioma distinto del utilizado en el escritorio.

Notas:
1. Estas técnicas no tendrán ningún efecto en el idioma utilizado si abre un documento o un
formulario de búsqueda desde un enlace HTML que se encuentra dentro de otro documento.
Estas técnicas sólo afectarán al idioma utilizado en los iconos del escritorio Servicio de
búsqueda de documentación o Biblioteca básica.
2. Asegúrese de que se haya instalado documentación para el idioma que desea utilizar.

Puede cambiar el idioma de la documentación ejecutando el mandato siguiente:


/usr/bin/chdoclang entorno local

Donde entorno local ha de sustituirse por el nombre del entorno local que constituye el nuevo idioma para
visualizar y buscar documentación. Los nombres de los entornos locales se enumeran en el apartado
Locale Naming Conventions de la publicación AIX 5L Version 5.1 System Management Concepts:
Operating System and Devices.

Notas:
1. Para que el cambio de idioma entre en vigor, deberá finalizar la sesión y volver a iniciarla.
2. Si está utilizando el Escritorio de CDE, también debe editar el archivo $HOME/.dtprofile del
Escritorio para que el valor del idioma de la documentación del archivo $HOME/.profile se lea
durante el inicio de sesión del CDE. Para ello, lleve a cabo los pasos siguientes:
v Abra el archivo .dtprofile en el editor dtpad escribiendo el mandato siguiente:
dtpad $HOME/.dtprofile

264 Guía del usuario del sistema: Sistema operativo y dispositivos


v Busque la línea que contiene el texto:
DTSOURCEPROFILE=true
v Si existen caracteres de comentario (#) al principio de esa línea, suprima sólo los caracteres
#, no la línea entera. Si no existen caracteres de comentario, cierre el editor.
v Guarde el archivo .dtprofile que ha cambiado.
v Finalice la sesión y vuelva a iniciarla.

Por ejemplo, si desea cambiar el idioma de la documentación para que aparezca en español (es_ES),
escriba el mandato siguiente:
/usr/bin/chdoclang es_ES

Finalice la sesión del escritorio y vuelva a iniciarla.

Después de cambiar el idioma de la documentación, puede suprimir el valor de idioma de forma que la
documentación aparezca de nuevo en el mismo idioma que el escritorio. Para suprimir el valor del idioma,
escriba el mandato siguiente:
/usr/bin/chdoclang -d

Finalice la sesión del escritorio y vuelva a iniciarla.

Capítulo 13. Servicio de biblioteca de documentación 265


266 Guía del usuario del sistema: Sistema operativo y dispositivos
Apéndice A. Acceso a la información con InfoExplorer
Nota: InfoExplorer ha dejado de entregarse con el sistema operativo base. Ahora, la documentación
puede verse mediante la utilización del Servicio de biblioteca de documentación (Documentation
Library Service). Este apartado se incluye para los usuarios de versiones anteriores que siguen
utilizando el programa InfoExplorer de un release anterior.

En este apartado se describen los distintos tipos de documentación que están disponibles en la Biblioteca
de base de información de hipertexto y cómo se utiliza InfoExplorer para acceder a la información.

Utilización de la interfaz ASCII de InfoExplorer


La interfaz del programa InfoExplorer ASCII proporciona una guía de aprendizaje para usuarios no
iniciados y contiene procedimientos para efectuar otras tareas tal como se describen en la siguiente visión
general.

El programa InfoExplorer es la herramienta que se utiliza para adquirir conocimientos acerca de este
sistema operativo y de otro software. Como usuario de una interfaz ASCII, tiene acceso a muchos
volúmenes de documentación de software y hardware. Puesto que la información de InfoExplorer es
hipertexto, dicha información puede leerse sin tener que cambiar de página. En lugar de ello, puede ver la
información en la pantalla y seleccionar enlaces para moverse de un artículo a otro. De este modo, puede
elegir su propia vía a través de la documentación hipertexto.

Utilización de las pantallas de InfoExplorer


En la interfaz ASCII InfoExplorer, existen varias pantallas que contienen diferentes tipos de información.
Por ejemplo, utilizará algunas pantallas específicamente para desplazarse. Estas pantallas, que incluyen
el Índice de temas y tareas y los Libros, son pantallas de navegación. El programa InfoExplorer muestra
las pantallas de navegación de una en una. El contenido de esta pantalla se renueva cada vez que
selecciona una función que muestra su información en esta ubicación.

Otro tipo de pantalla contiene el texto que desea leer. Estas pantallas se denominan pantallas de lectura.
Las pantallas de lectura proporcionan información conceptual, de procedimientos o de referencia.
Muestran artículos que le ilustran un tema, le explican cómo efectuar una tarea o le proporcionan
información acerca de mandatos llamadas, subrutinas, archivos o formatos de archivos.

Desde las pantallas de navegación y de lectura, puede abrir otras pantallas para efectuar tareas
específicas. El programa InfoExplorer proporciona las siguientes pantallas orientadas a tareas:

Búsqueda simple Gestiona las búsquedas sobre un título o base de información para un grupo
simple de palabras.
Búsqueda compuesta Gestiona las búsquedas sobre series de búsqueda compuestas en una o
más bases de información seleccionadas.
Lista de coincidencias de búsqueda Muestra dónde se han encontrado coincidencias de búsqueda y el número de
artículos en que se han encontrado.
Glosario Visualiza un término o frase del glosario seleccionado desde una pantalla de
lectura.
Editor por omisión Le permite definir valores por omisión para distintas funciones de
InfoExplorer.
Editor de preferencias Proporciona un método para personalizar las opciones del programa
InfoExplorer.
Lista de enlaces Le permite seleccionar un enlace anterior y acceder a la información, suprimir
un enlace anterior de la lista, borrar todas las listas o renombrar un enlace
anterior.

© Copyright IBM Corp. 1997, 2001 267


Lista de archivos Le permite cargar un archivo guardado anteriormente, guardar una lista en un
archivo o suprimir un archivo.

Cuando inicie una sesión, el programa InfoExplorer muestra en primer lugar la pantalla de navegación y a
continuación la pantalla de lectura. La pantalla de lectura contiene el artículo ″Bienvenido a la interfaz
ASCII InfoExplorer″, que muestra cómo efectuar operaciones básicas y explica cómo acceder a la ayuda,
copyrights y marcas registradas de InfoExplorer. Vuelva a la pantalla de navegación pulsando Control-w.

Utilización de menús
La interfaz ASCII InfoExplorer muestra una barra de menús en la parte superior de cada pantalla. Puede
seleccionar las opciones del menú para acceder a funciones específicas de InfoExplorer.

Obtención de ayuda
Para obtener más información acerca de cómo utilizar el programa InfoExplorer, puede utilizar la ayuda de
InfoExplorer. Utilizando la ayuda, puede hallar más información acerca de la utilización de la pantalla
actual o puede ir a una lista de artículos que explican cómo funciona el programa InfoExplorer.

Para obtener Ayuda, pulse la secuencia de teclas Control-O, utilice las teclas de flecha para resaltar la
palabra Ayuda y pulse la tecla Intro. A continuación puede elegir entre las siguientes opciones:

En pantalla Muestra información de ayuda específica para la pantalla que está visualizando, incluyendo
enlaces a artículos que describen la pantalla, además de funciones disponibles desde
dicha pantalla y una lista de menús disponibles con enlaces a descripciones de las
opciones de menú.

Puede seleccionar enlaces para visualizar información que desea leer. Para volver a la
pantalla de información de la ayuda tras seleccionar un enlace, utilice la opción de menú
Vía o Histórico de la barra de menús.
Lista de ayudas Visualiza la Lista de ayudas, una lista de enlaces de hipertexto a artículos que describen
aspectos clave del programa y de la documentación de InfoExplorer, junto con enlaces a
las ayudas para cada pantalla individual.

Iniciación
Nota: InfoExplorer ha dejado de entregarse con el sistema operativo base. Ahora, la documentación
puede verse mediante la utilización del Servicio de biblioteca de documentación (Documentation
Library Service). Este apartado se incluye para los usuarios de versiones anteriores que siguen
utilizando el programa InfoExplorer de un release anterior.

El programa InfoExplorer es una herramienta potente de recuperación con distintas ayudas de navegación
por información que le ayudan a localizar y gestionar información. Aprender sólo algunas de estas ayudas
es todo lo que necesita para comenzar a utilizarlo. Utilice los procedimientos básicos que aprenderá en
este apartado para explorar la base de información de InfoExplorer, donde encontrará información de gran
utilidad.

Siga la guía de aprendizaje paso a paso utilizando las teclas de avance de página y retroceso de página
o enlaces a procedimientos individuales.

En este apartado puede aprender acerca de:


v “Inicio del programa ASCII InfoExplorer” en la página 269
v “Reconocimiento de los tipos de pantallas” en la página 269
v “Selección de un enlace de hipertexto” en la página 270

268 Guía del usuario del sistema: Sistema operativo y dispositivos


v “Desplazamiento por la información” en la página 271
v “Selección de una opción de menú” en la página 271
v “Cómo volver a una ubicación anterior” en la página 272
v “Búsqueda de información” en la página 272
v “Impresión de información” en la página 275
v “Acceso a la ayuda” en la página 276
v “Utilización de teclas especiales y de secuencias de teclas” en la página 276
v “Inicio de una biblioteca de InfoExplorer alternativa” en la página 278
v “Detención del programa ASCII InfoExplorer” en la página 278

Inicio del programa ASCII InfoExplorer


Para iniciar el programa InfoExplorer, escriba info en el indicador de mandatos del sistema operativo y
pulse la tecla Intro.

Nota: Si desea iniciar el programa ASCII InfoExplorer desde una ventana, escriba info -a en un
indicador de mandatos del sistema operativo y pulse la tecla Intro.

El artículo ″Bienvenido a la interfaz ASCII de InfoExplorer″ o bien la “Pantalla de navegación” visualiza la


pantalla de lectura. La pantalla de bienvenida le explica cómo efectuar operaciones básicas de pantalla y
cómo acceder a la ayuda, copyrights y marcas registradas de InfoExplorer.

Reconocimiento de los tipos de pantallas


En el programa InfoExplorer existen dos tipos principales de pantallas: la “Pantalla de navegación” y la
“Pantalla de lectura” en la página 270.

Pantalla de navegación
La pantalla de navegación es el punto de partida para encontrar documentación acerca del sistema
operativo y otros programas disponibles en la estación de trabajo y contiene información destinada a
ayudarle a encontrar la documentación deseada. La información está organizada por tema y tarea, por
libro o alfabéticamente por mandatos o elemento de consulta de programación. Las rutas primarias de
navegación se muestran en la pantalla de navegación:

Índice de temas y tareas Muestra información por tarea. Es el artículo de navegación por omisión.
Mandatos Muestra una lista alfabética de mandatos disponibles.
Libros Muestra artículos por orden de libros.
Consulta de programación Muestra listas de funciones de programación en orden alfabético por
categorías funcionales.

Nota: La información de navegación de este apartado se aplica al programa InfoExplorer. La


información de navegación podría o no aplicarse a otras bibliotecas.

La primera línea de la pantalla contiene la barra de menús y la segunda línea muestra una barra de título
en contraste invertido. El título de la pantalla se muestra en el extremo derecho de la barra de título. Esta
barra de título también separa las opciones de menú del texto del artículo.

Mientras visualiza el programa InfoExplorer a través de la interfaz ASCII, sólo está disponible una pantalla
de navegación a la vez. Cada vez que seleccione un enlace con otro artículo de navegación, el contenido
del artículo que seleccione sustituirá el contenido del artículo original. Por ejemplo, si está visualizando el
Índice de temas y tareas y decide ver Mandatos, una lista de mandatos sustituirá el Índice de temas y
tareas en la pantalla de navegación.

Apéndice A. Acceso a la información con InfoExplorer 269


Pantalla de lectura
La pantalla de lectura contiene información de procedimientos, conceptual y de consulta. La información
de procedimientos explica cómo llevar a cabo una tarea, la información conceptual trata acerca de
distintos temas y la información de consulta proporciona información acerca de mandatos, subrutinas, etc.

Como en la pantalla de navegación, la primera línea de la pantalla muestra las opciones de menú y la
segunda línea muestra una barra de título en contraste invertido. Se muestra ″Documento de información″
en el extremo derecho de la barra de título. Esta barra de título también separa las opciones de menú del
texto del artículo.

Mientras visualiza el programa InfoExplorer mediante la interfaz ASCII, sólo está disponible una pantalla
de lectura a la vez. Cada vez que seleccione un enlace con otro artículo, el contenido del artículo que
seleccione sustituirá el contenido del artículo original. Por ejemplo, si está visualizando el artículo ″Inicio
del programa InfoExplorer (interfaz ASCII)″ y decide visualizar el artículo del mandato info, el artículo del
mandato info sustituye al artículo ″Inicio del programa InfoExplorer (interfaz ASCII)″ en la pantalla de
lectura.

Moverse entre pantallas


Para visualizar la pantalla de navegación desde la pantalla de lectura (o para retroceder a una pantalla de
lectura actual desde la pantalla de navegación), pulse la tecla Control y, manteniéndola pulsada, pulse la
tecla w (Control-w). La secuencia de teclas Control-w conmuta entre la pantalla de navegación y la
pantalla de lectura. También puede moverse entre las pantallas utilizando opciones de menú disponibles
en la barra de menús.

Antes de continuar, conmute hacia atrás y hacia adelante unas cuantas veces entre las pantallas de
navegación y de lectura. Observe las diferencias entre ellas.

Algunos tipos de pantallas adicionales son búsqueda, glosario, archivo y programa de utilidad. Para
obtener más información acerca de los diversos tipos de pantallas, consulte el artículo en línea de
InfoExplorer “Para acceder a la ayuda en una pantalla específica” en la página 276.

Selección de un enlace de hipertexto


Imagine que necesita información acerca de cómo imprimir un archivo en una impresora de líneas. Puede
comenzar la búsqueda con una ruta de navegación primaria, por ejemplo la Lista de tareas. Desde la
Lista de tareas, puede seguir enlaces hipertexto hasta que llegue a la pantalla que contiene la información
que desea.

Un enlace hipertexto es una conexión entre una unidad de información y otra. Estos enlaces se visualizan
como texto subrayado. Cuando vaya a un enlace, el enlace cambiará a contraste invertido. Para visualizar
la unidad de información conectada o destino, pulse la tecla Intro.

La pantalla de bienvenida muestra cinco enlaces. Aparecen como una lista de cinco temas subrayados.

Para moverse hasta el siguiente enlace hipertexto, pulse el tabulador o la secuencia de teclas Control-f. Si
el siguiente enlace no está visible actualmente en la pantalla, la pantalla se actualiza para mostrar el
enlace. Para retroceder hasta el enlace anterior, pulse la secuencia de teclas Control-b.

Para seleccionar un enlace hipertexto, siga estos pasos:


1. Si el cursor de texto no está en el área de texto de la pantalla, pulse la secuencia de teclas Control-o.
2. Vaya al siguiente enlace hipertexto pulsando el tabulador o la secuencia de teclas Control-f.
3. Vaya al enlace anterior pulsando la secuencia de teclas Control-b.
4. Para seleccionar el enlace, pulse la tecla Intro. El texto destino aparece en la pantalla.

270 Guía del usuario del sistema: Sistema operativo y dispositivos


Practique moviendo el cursor de un enlace a otro con las secuencias de teclas Control-f y Control-b.
Antes de continuar con el siguiente apartado, seleccione uno de los enlaces de la pantalla Bienvenido.
Recuerde que puede volver a la pantalla de navegación principal pulsando la secuencia de teclas
Control-w.

Nota: Para no abandonar esta pantalla, no seleccione ninguno de los enlaces de este artículo.

No puede visualizar gráficos en un terminal ASCII. Cuando se selecciona un enlace a una unidad gráfica,
aparece un panel emergente con un mensaje que indica que no puede visualizarse la imagen. El mensaje
le indica que pulse una tecla para continuar. Por ejemplo, los artículos de mandatos contiene diagramas
de sintaxis que sólo pueden visualizarse en una pantalla de gráficos. No obstante, puede visualizar la
versión de corchetes y llaves de la sintaxis en un terminal ASCII.

Desplazamiento por la información


Puede avanzar o retroceder por el texto que se visualiza en la pantalla de navegación o en la pantalla de
lectura utilizando las teclas y secuencias de teclas que se han definido para ello. Para obtener más
información, consulte el apartado ″“Utilización de teclas especiales y de secuencias de teclas” en la
página 276″.
v Para ir a la pantalla anterior, utilice la tecla Re Pág o la secuencia de teclas Control-P.
v Para ir a la pantalla siguiente, utilice la tecla Av Pág o la secuencia de teclas Control-N.
v Para mover el cursor de texto una línea hacia arriba, pulse la tecla flecha arriba.
v Para mover el cursor de texto una línea hacia abajo, pulse la tecla flecha abajo.

Antes de continuar, pruebe a moverse hacia arriba y hacia abajo en el texto de la pantalla del terminal.

Selección de una opción de menú


Cada pantalla de InfoExplorer contiene una barra de menús que se encuentra en la parte superior de la
pantalla. Las barras de menús contienen muchos de los menús que necesita para utilizar funciones de
InfoExplorer. Por ejemplo, el menú Visualizar le permite seleccionar el documento de navegación que
desea visualizar en la pantalla y el menú Ayuda proporciona ayuda para utilizar el programa InfoExplorer.

Para seleccionar una opción de menú, efectúe las siguientes operaciones:


1. Active la barra de menús pulsando la secuencia de teclas Control-O.
2. Utilice las teclas de flecha izquierda y flecha derecha para resaltar el título del menú que desea
visualizar y pulse Intro o escriba el carácter subrayado en el título del menú. El menú se muestra
como un panel desplegable con varias opciones.
3. Utilice las flechas arriba y abajo para resaltar una opción de menú y pulse Intro o escriba el carácter
subrayado en la opción de menú. Se llama a la opción que seleccione o se visualiza otro menú en un
panel emergente. Las opciones de menú se visualizan en la barra de menús.

Tras visualizar un menú, puede que desee descartarlo sin seleccionar ninguna opción. Para hacerlo, pulse
la secuencia de teclas Control-0. El cursor vuelve a la pantalla.

Para seleccionar una opción en un panel emergente, efectúe las siguientes operaciones:
1. Active la barra de menús como haría normalmente, utilizando la secuencia de teclas Control-O.
2. Resalte una opción escribiendo el carácter subrayado en la opción que desea o utilizando las teclas
de flecha izquierda y derecha.
3. Seleccione la opción pulsando la tecla Intro. El panel emergente se cierra y se lleva a cabo la acción
apropiada.

Apéndice A. Acceso a la información con InfoExplorer 271


Tras visualizar un panel emergente, puede que desee descartarlo sin seleccionar ninguna opción. Para
ello, pulse la secuencia de teclas Control-O y seleccione Abandonar en la barra de menús.

Antes de continuar con el siguiente apartado, practique utilizando menús. Intente visualizar el menú Vía
de acceso y seleccionar la opción Mostrar lista. Aparece un panel emergente que muestra la lista de Vía
de acceso. Para cerrar el panel emergente, seleccione Salir en la barra de menús.

Nota: Para no abandonar este artículo, no seleccione ninguna ubicación en la lista Vía de acceso.

Cómo volver a una ubicación anterior


Durante la sesión de InfoExplorer, el programa InfoExplorer mantiene dos tipos de registro de los lugares
en los que ha estado anteriormente; la Lista del histórico y la Lista de vía de acceso. Estas listas le
permiten volver a las ubicaciones anteriores en la base de información.

La lista del histórico registra cada ubicación de la base de información en la que ha estado. Para ver la
Lista del histórico, visualice el menú .Historico y seleccione la opción Listar todo. Para aprender a utilizar
la Lista del histórico, vaya al menú Ayuda y seleccione Lista de ayudas en el menú desplegable. La
Búsqueda de información en InfoExplorer, en la Lista de ayudas, proporciona información acerca de la
función Histórico.

La Lista de vías realiza el seguimiento de la ruta de navegación que ha utilizado, empezando desde un
artículo de navegación primario (Índice de temas y tareas, Libros, Mandatos o Consulta de programación).
Cada vez que vuelva a una pantalla de navegación primaria, la lista de vías de acceso anterior se
sobregrabará.

El menú Vía de acceso contiene tres opciones: Mostrar lista, Anterior y Siguiente. Utilice la opción
Mostrar lista para visualizar la Lista de vías. Utilice las opciones Anterior y Siguiente para saltar a la
siguiente ubicación o a la ubicación anterior sin visualizar la Lista de vías.

Para volver a la ubicación anterior en el programa InfoExplorer, efectúe las siguientes operaciones:
1. Active la barra de menús pulsando la secuencia de teclas Control-O.
2. Escriba P para visualizar el menú Vía de acceso.
3. Escriba S para visualizar la Lista de vías. Se visualiza un recuadro emergente que lista las ubicaciones
de la vía de acceso. Si se encuentra en una pantalla de navegación primaria, recibirá un mensaje
indicando que la lista de vías de acceso está vacía.
4. Resalte la ubicación a la que desea volver utilizando las teclas de flecha arriba y abajo.
5. Seleccione la opción Ir a de la barra de menús. El texto se visualiza en la pantalla de lectura.

Antes de continuar, intente seguir la vía de acceso en sentido ascendente y descendente utilizando las
opciones Siguiente y Anterior. Recuerde, si retrocede en la vía de acceso a un artículo de navegación
primaria (por ejemplo, el Índice de tareas), la lista de vías de acceso se vacía y no puede seguir una vía
hacia abajo hasta que inicia una nueva vía. Si desea volver a una ubicación que no está en la vía de
acceso actual, utilice la función Histórico.

Nota: Para no abandonar esta pantalla, no utilice la función Vía de acceso desde esta pantalla.

Búsqueda de información
La parte inicial de este capítulo describía cómo localizar información utilizando rutas de navegación
primarias, pero si no sabe cuál es la tarea o mandato o en qué libro encontrar la información, puede
buscar virtualmente cada palabra en la base de información de InfoExplorer. Utilizando el recurso de
búsqueda InfoExplorer, puede buscar información por palabra o por frase.

272 Guía del usuario del sistema: Sistema operativo y dispositivos


Están disponibles dos tipos de búsqueda en el programa InfoExplorer: la búsqueda simple y la búsqueda
compuesta. La búsqueda simple le permite buscar una palabra o serie de palabras (en orden exacto) en
el texto, en los títulos de los artículos o en ambos. (En la versión ASCII de InfoExplorer, la selección Título
de artículo en el menú Buscar le proporciona una búsqueda simple de títulos de artículos). La búsqueda
compuesta le permite buscar una palabra, un conjunto de palabras o varios conjuntos de palabras. Puede
especificar de forma más avanzada la búsqueda con las siguientes opciones:
v Opciones de conexión AND, OR y BUT NOT
v Opciones de proximidad
v Categorías de búsqueda

Puede especificar las bases de información en las que desea buscar tanto para la búsqueda simple como
para la búsqueda compuesta. Existen dos formas de especificar una selección de base de información:
v Puede especificar una selección de base de información temporal desde la ventana Búsqueda
compuesta. Esta selección se aplica a la búsqueda simple y a la compuesta y permanece en vigor
durante la sesión actual de InfoExplorer o hasta que la cambia durante la sesión.
v Puede especificar una selección de base de información como valor por omisión seleccionando Valores
por omisión en el menú de información y seleccionando la opción DBselect. Una selección de base de
información efectuada desde la ventana Valores por omisión se aplica a la búsqueda simple y a la
búsqueda compuesta y permanece en vigor para sesiones posteriores de Info. (Las selecciones de
base de información temporal efectuadas desde la ventana Búsqueda compuesta pueden alterar
temporalmente la selección por omisión durante una sesión de InfoExplorer, pero la selección por
omisión se restablecerá cuando reinicie InfoExplorer).

A modo de ejemplo, los pasos siguientes le llevan a una búsqueda simple del mandato qprt y especifican
con más precisión la búsqueda con una selección de base de datos desde el menú Búsqueda compuesta.

Nota: Para no abandonar este artículo, no intente realizar una búsqueda desde esta pantalla. Si el
sistema se ha configurado para imprimir, puede imprimir una copia de este artículo mediante el
menú de información, seleccionado la opción Imprimir artículo. Utilice la copia impresa para seguir
el procedimiento.

Para efectuar una búsqueda simple del mandato qprt, siga estos pasos:
1. Visualice el menú Buscar en la barra de menús.
2. Seleccione la opción Simple del menú Buscar. Se muestra el panel emergente Búsqueda simple.
3. En el campo Encontrar, escriba el mandato qprt y pulse la tecla Intro. El panel emergente Lista de
coincidencias de búsqueda muestra la siguiente información:
v Bases de información donde se encuentran las coincidencias de la búsqueda
v El número de coincidencias que se ha encontrado
v El número de artículos en que se han encontrado
4. Con las teclas de Flecha hacia arriba y hacia abajo, resalte Guías de usuario, Guías de gestión del
sistema y Consulta de mandatos en la lista de la base de información y pulse la tecla Intro. Aparece
el panel emergente Buscar: Lista de títulos con la lista de títulos de artículos que contienen la serie de
búsqueda (qprt).

Nota: Si sólo uno de los artículos contiene la serie de búsqueda, ese artículo se visualizará en
una pantalla de lectura (no se visualizará ningún panel emergente).
5. Seleccione el segundo título de la lista Mandato qprt y pulse la tecla Intro. El artículo se muestra en
la pantalla de lectura. Observe que la frase ″Mandato qprt″ está resaltada para mostrar en qué parte
del artículo se trata la palabra.
6. Para que se visualice la siguiente coincidencia, vaya a la barra de menús y seleccione el menú
Buscar.

Apéndice A. Acceso a la información con InfoExplorer 273


7. Seleccione la opción de menú Siguiente coincidencia y pulse la tecla Intro. Se muestra la siguiente
coincidencia de ″mandato qprt″. Esta función le permite moverse en la base de información a otros
lugares del artículo o a otros artículos en los que se trata acerca de la frase ″mandato qprt″.
8. Para que se visualice la coincidencia anterior, seleccione la opción Coincidencia anterior del menú
Buscar y pulse la tecla Intro. Se muestra la coincidencia anterior de ″mandato qprt″.
9. Para que vuelva a visualizarse la lista de títulos, seleccione la opción Mostrar lista de aciertos del
menú Buscar y pulse la tecla Intro. Vuelve a visualizarse la lista de títulos.
Si hay muchas coincidencias, puede ser difícil encontrar la información correcta. Puede que tenga que
leer varios artículos para encontrar la información que desea. También puede utilizar una búsqueda
compuesta para afinar la búsqueda. Para obtener información acerca de una búsqueda compuesta,
utilice la Lista de ayudas de InfoExplorer, que le permite ver instrucciones paso a paso para los
procedimientos de InfoExplorer que se utilizan con más frecuencia. En la Lista de ayudas, seleccione
Efectuar una búsqueda compuesta.

Otro modo de precisar con más exactitud el alcance de la búsqueda es ir al menú de búsqueda
compuesta y seleccionar la base de datos que con más probabilidad contiene la información que desea.
Existen varias bases de datos para seleccionar en función del sistema. Por ejemplo, si desea limitar la
búsqueda a información acerca de cómo utilizar y gestionar, seleccione la base de datos Utilización,
gestión y mandatos.

Para especificar una base de datos desde el panel emergente de búsqueda compuesta, siga estos pasos:
1. Pulse la secuencia de teclas Control-O para ir a la barra de menús.
2. Seleccione la opción DBselect. Se visualiza la Lista de bases de datos.
3. Un signo >(mayor que) a la izquierda de una base de información en esta lista indica que la base de
información está incluida en la búsqueda compuesta actual.
4. Marque las bases de datos que desea excluir de la búsqueda con estas acciones:
a. Utilice las teclas de flecha arriba y flecha abajo para seleccionar una base de datos incluida en la
búsqueda en la que no desea buscar. La base de datos aparecerá resaltada.
b. Pulse la secuencia de teclas Control-O para ir a la barra de menús en el panel emergente Lista de
bases de datos.
c. Seleccione la opción Eludir. Se elimina el signo > del margen.
Repita este procedimiento para cada base de datos en la que no desee buscar.
5. Marque las bases de datos que desea incluir en la búsqueda con estas acciones:
a. Utilice las teclas de flecha arriba y flecha abajo para seleccionar una base de datos no incluida
actualmente en la búsqueda. La base de datos se resaltará.
b. Pulse la secuencia de teclas Control-O para ir a la barra de menús en el panel emergente Lista de
bases de datos.
c. Seleccione la opción Seleccionar. El signo > se visualizará a la izquierda de la base de datos
seleccionada.
Repita este procedimiento para cada base de datos en la que desea buscar.
6. Cuando haya terminado de seleccionar bases de datos, pulse la secuencia de teclas Control-O para ir
a la barra de menús y seleccione la opción Abandonar. Vuelve a aparecer el panel emergente
Búsqueda compuesta (con todas las bases de información visualizadas en el Campo de búsqueda)
y puede continuar con la búsqueda.

Cuando especifica una selección de base de datos desde el menú Búsqueda compuesta, la selección se
conserva hasta que la cambia o hasta que abandona la sesión de InfoExplorer. Esta selección de base de
datos se aplicará tanto a búsquedas simples como compuestas. Puede guardar una selección de base de
datos para sesiones posteriores de InfoExplorer desde la ventana Valores por omisión bajo el menú de
información.

274 Guía del usuario del sistema: Sistema operativo y dispositivos


Impresión de información
Puede imprimir la siguiente información desde la interfaz ASCII de InfoExplorer:
v “Para imprimir un artículo desde una pantalla de lectura”
v “Para imprimir un artículo desde una pantalla de navegación”
v “Para imprimir referencias desde una pantalla de navegación”
v “Para imprimir artículos desde una lista de coincidencias de búsqueda”
v “Para imprimir notas públicas y privadas”

Nota: Deberá tener una o más impresoras configuradas en el sistema.

Para imprimir un artículo desde una pantalla de lectura


1. Pulse la secuencia de teclas Control-O para activar la barra de menús. La opción de menú info es el
valor por omisión y aparece resaltada.
2. Pulse la tecla Intro para que se visualicen las opciones del menú info.
3. Pulse la tecla P para seleccionar la opción Imprimir artículo. Se imprime el artículo visualizado
actualmente en la pantalla de lectura.

Para imprimir un artículo desde una pantalla de navegación


1. Pulse la secuencia de teclas Control-O para activar la barra de menús. La opción de menú info es el
valor por omisión y aparece resaltada.
2. Pulse la tecla Intro para que se visualicen las opciones del menú info. La opción Imprimir artículo es
el valor por omisión y aparece resaltada.
3. Pulse la tecla Intro. Se imprime el artículo de navegación actual.

Para imprimir referencias desde una pantalla de navegación


1. Pulse la secuencia de teclas Control-O para activar la barra de menús. La opción de menú info es el
valor por omisión y aparece resaltada.
2. Pulse la tecla Intro para que se visualicen las opciones del menú info.
3. Pulse la tecla de Flecha hacia abajo hasta que la opción Imprimir referencias aparezca resaltada.
4. Pulse la tecla Intro para imprimir todos los artículos con referencias en la pantalla de navegación.

Para imprimir artículos desde una lista de coincidencias de búsqueda


1. Pulse la secuencia de teclas Control-O para activar la barra de menús. La opción info es el valor por
omisión y aparece resaltada.
2. Pulse la tecla S para seleccionar la opción de menú Buscar.
3. Pulse la tecla de la Flecha hacia abajo hasta que la opción Mostrar lista de aciertos aparezca
resaltada y, a continuación, pulse la tecla Intro. Aparece el panel emergente Buscar: Lista de títulos.
4. Pulse la secuencia de teclas Control-O para activar la barra de menús en el panel emergente Buscar:
Lista de títulos.
5. Pulse la tecla P para seleccionar la opción Imprimir. Se imprimen todos los artículos con referencias
en el panel emergente Buscar: Lista de títulos.

Para imprimir notas públicas y privadas


1. Pulse la secuencia de teclas Control-O para activar la barra de menús. La opción info es el valor por
omisión y aparece resaltada.
2. Pulse la tecla N para seleccionar la opción Notas. La opción Listar todo es el valor por omisión y
aparece resaltada.
3. Pulse la tecla Intro para visualizar el panel emergente Lista de notas.
4. Pulse la secuencia de teclas Control-O para activar la barra de menús en el panel emergente Lista de
notas.

Apéndice A. Acceso a la información con InfoExplorer 275


5. Pulse la tecla P para seleccionar la opción Imprimir. Se imprimen todas las notas del panel
emergente Lista de notas.

Acceso a la ayuda
Desde una pantalla de InfoExplorer, puede ver información de ayuda acerca de las funciones y opciones
que están disponibles en la pantalla de InfoExplorer que está visualizando o bien puede buscar en una
lista de temas para los que se proporciona información de ayuda.

Para acceder a la ayuda en una pantalla específica


El programa InfoExplorer utiliza muchos tipos de pantallas distintos además de las pantallas de
navegación y de lectura básicas, por ejemplo:
v Pantallas de glosario
v Lista de pantallas de enlace
v Pantallas de archivos
v Pantallas de búsqueda simple y compuesta

Cada tipo de pantalla sirve para un objetivo determinado y proporciona una función distinta. El menú
Ayuda en cada pantalla contiene una opción En pantalla, que visualiza un artículo que describe la función
que está disponible en la pantalla actual.

Para ver Ayuda en una pantalla específica, efectúe las siguientes acciones:
1. Active la barra de menús pulsando la secuencia de teclas Control-O.
2. Utilice las teclas de flecha para resaltar Ayuda y pulse la tecla Intro para visualizar el menú Ayuda.
3. Utilice las teclas de flecha para seleccionar la opción En pantalla y pulse la tecla Intro. Un artículo de
Ayuda sustituirá al artículo de lectura actual.

Antes de continuar con el siguiente apartado, pruebe a leer los artículos de ayuda disponibles para las
pantallas abiertas actualmente. Utilice la función Vía de acceso para volver a esta pantalla.

Para acceder a la Lista de ayudas


El menú Ayuda proporciona dos opciones de ayuda, la Lista de ayudas y En pantalla. La opción En
pantalla le permite obtener información acerca de la pantalla actual. Para obtener más información acerca
de esta opción, consulte el apartado ″“Para acceder a la ayuda en una pantalla específica”″. La opción
Lista de ayudas del menú Ayuda visualiza una lista de los temas de ayuda de InfoExplorer. Para utilizar
la lista de ayudas, efectúe las siguientes acciones:
1. Active la barra de menús pulsando la secuencia de teclas Control-O.
2. Utilice las teclas de flecha para resaltar el menú Ayuda y pulse la tecla Intro. Se muestra el menú
Ayuda.
3. Seleccione la opción Lista de ayudas para visualizar la lista de ayudas.
4. Seleccione un tema de ayuda y pulse la tecla Intro.

La lista de ayudas contiene procedimientos paso a paso para una amplia gama de tareas. Antes de ir al
siguiente apartado, seleccione una opción o dos en la lista de ayudas. Observe las que están disponibles
e intente utilizar las ayudas para aprender y practicar nuevas técnicas.

Utilización de teclas especiales y de secuencias de teclas


En la interfaz ASCII InfoExplorer, debe utilizar las teclas especiales y las secuencias de teclas para
desplazarse en una pantalla, seleccionar opciones de un menú, acceder a pantallas adicionales e iniciar
procesos. En función del lugar desde el que está trabajando, es decir, desde un área de texto o desde
una barra de menús, aparecerán distintas teclas y secuencias de teclas activas. Para obtener más
información acerca de las áreas de texto y de las barras de menús, consulte los apartados “Teclas y

276 Guía del usuario del sistema: Sistema operativo y dispositivos


secuencias de teclas que se utilizan en las áreas de texto” y “Teclas y secuencias de teclas que se
utilizan en las barras de menús”, respectivamente.

Teclas y secuencias de teclas que se utilizan en las áreas de texto


Puede utilizar las siguientes teclas y secuencias de teclas en áreas de texto:

Teclas Acción
Control-W Se mueve entre la pantalla de navegación y la pantalla de lectura. Si se visualiza la
pantalla de navegación, puede pulsar la secuencia de teclas Control-W para visualizar la
pantalla de lectura. Si se visualiza la pantalla de lectura, puede pulsar la secuencia de
teclas Control-W para visualizar la pantalla de navegación.
Control-F o Tabulador Se mueve al siguiente enlace hipertexto.
Control-B Se mueve al enlace hipertexto anterior.
Intro o Retorno Activa la operación. Por ejemplo, si ha ido al siguiente enlace hipertexto y pulsa la tecla
Intro, el sistema sigue el enlace y muestra la información destino.
Control-L Renueva la pantalla.
Control-N o Av Pág Se desplaza verticalmente a la siguiente pantalla.
Control-P o Re Pág Se desplaza verticalmente a la pantalla anterior.
Flecha izquierda Mueve el cursor de texto un carácter a la izquierda. Si el texto puede desplazarse
horizontalmente y el cursor de texto está en el extremo izquierdo de la pantalla, el texto se
desplaza un carácter.
Flecha derecha Mueve el cursor de texto un carácter a la derecha. Si el texto puede desplazarse
horizontalmente y el cursor de texto está en el extremo derecho de la pantalla, el texto se
desplaza un carácter.

Nota: Las teclas de la Flecha hacia la izquierda y hacia la derecha del programa
InfoExplorer no funcionan en terminales WYSE.
Flecha arriba Mueve el cursor de texto una línea hacia arriba. Si el cursor de texto está en la línea
superior de la pantalla, el texto se desplaza verticalmente, de línea en línea.
Flecha abajo Mueve el cursor de texto una línea hacia abajo. Si el cursor de texto se encuentra en la
última línea de la pantalla, el texto de desplaza verticalmente, una línea cada vez.
< Mueve el cursor de texto 20 caracteres a la izquierda. Si el texto puede desplazarse
horizontalmente, el texto se desplaza 20 caracteres a la izquierda.
> Mueve el cursor de texto 20 caracteres a la derecha. Si el texto puede desplazarse
horizontalmente, el texto se desplaza 20 caracteres a la derecha.

Teclas y secuencias de teclas que se utilizan en las barras de menús


Las siguientes teclas y secuencias de teclas le ayudan a trabajar con opciones de la barra de menús:

Teclas Acción
Control-O Activa o desactiva la barra de menús. Si el cursor de texto se encuentra en el área de texto
de la pantalla, puede pulsar la secuencia de teclas Control-O para activar la barra de menús.
Si la barra de menús ya está activa, puede pulsar la secuencia de teclas Control-O para
desactivarla, lo que mueve el cursor de texto al área de texto.
Esc-Esc o Control-O Cierra un menú desplegable de barra de menús y sitúa el cursor en el área de texto.
Tabulador Va a la siguiente opción de barra de menús. Si no se muestra un menú desplegable y pulsa
la tecla de flecha derecha, se muestra la siguiente opción de barra de menús en contraste
invertido.

En barras de menú de pantalla emergente, mueve el cursor desde la barra de menús hasta
el área de texto si no hay ningún menú desplegable de barra de menús seleccionado
actualmente.
Flecha izquierda Va a la opción anterior de la barra de menús. Si no se muestra un menú desplegable y
pulsa la tecla de flecha izquierda, se muestra la opción de barra de menús anterior en
contraste invertido.

Si se muestra un menú desplegable y pulsa la tecla de flecha izquierda, se selecciona la


opción de barra de menús anterior y se muestra su menú desplegable.

Apéndice A. Acceso a la información con InfoExplorer 277


Teclas Acción
Flecha derecha Va a la siguiente opción de barra de menús. Si no se muestra un menú desplegable y pulsa
la tecla de flecha derecha, se muestra la siguiente opción de barra de menús en contraste
invertido.

Si se muestra un menú desplegable y pulsa la tecla de flecha derecha, se selecciona la


siguiente opción de barra de menús y se muestra se menú desplegable.
Flecha arriba Muestra el menú desplegable correspondiente a la opción de barra de menús o mueve la
selección a la opción anterior en un menú desplegable.
Flecha abajo Muestra el menú desplegable correspondiente a la opción de barra de menús seleccionada
o mueve la selección a la siguiente opción en un menú desplegable.
Intro o Retorno Activa la operación seleccionada. Por ejemplo, si se muestra una opción de barra de menús
en contraste invertido y pulsa la tecla Intro, se muestra el menú desplegable. Si ya se
muestra un menú desplegable y pulsa la tecla Intro, se lleva a cabo la acción apropiada en
la opción que se muestra en contraste invertido.

En algunos casos, la barra de menús de una pantalla emergente contiene opciones que inician o detienen
un proceso. También es posible utilizar las teclas siguientes para moverse en una pantalla emergente o
para circular entre opciones de la pantalla:

Teclas Acción
Tabulador Se mueve al campo siguiente.
Flecha izquierda Se mueve a la opción anterior en un círculo de opciones.
Flecha derecha Se mueve a la siguiente opción en un círculo de opciones.
Barra espaciadora Circula entre las opciones de un círculo de opciones.
Flecha arriba Selecciona la opción anterior en una lista.
Flecha abajo Selecciona la siguiente opción en una lista.
Intro o Retorno Activa la operación seleccionada o finaliza la entrada de texto y avanza al campo siguiente.

Inicio de una biblioteca de InfoExplorer alternativa


Puede solicitar al programa InfoExplorer que cargue una biblioteca de bases de datos alternativa
utilizando el distintivo -l con el mandato info. Por ejemplo, si desea iniciar la biblioteca de InfoExplorer
que contiene la documentación C++, FORTRAN y la documentación Ada, inicie la biblioteca con el
siguiente mandato:
info -l compiler

Detención del programa ASCII InfoExplorer


Para salir del programa InfoExplorer desde la pantalla de navegación o desde la pantalla de lectura,
efectúe las siguientes acciones:
1. Active la barra de menús pulsando la secuencia de teclas Control-O.
2. Utilice las teclas de flecha para resaltar el menú Salir y pulse la tecla Intro. Aparecerá el menú Salir.
3. Seleccione la opción Confirmar pulsando Intro. Se muestra el indicador de mandatos del sistema
operativo y se detiene el programa InfoExplorer.

Personalización del programa ASCII InfoExplorer


Puede personalizar muchas funciones del programa InfoExplorer para que se ajusten a su estilo y sus
necesidades. Para hacerlo, defina los valores por omisión y las preferencias de InfoExplorer. Por ejemplo,
puede determinar qué bases de información va a utilizar y qué impresora por omisión va a utilizar. Puede
especificar sus preferencias para aspectos tales como el número de eventos históricos que desea seguir y
el tipo de salida de impresión que desea.

278 Guía del usuario del sistema: Sistema operativo y dispositivos


Las diferencias principales entre valores por omisión y preferencias son que el programa inicia la mayoría
de los valores por omisión durante el arranque y que pueden especificarse diferentes valores por omisión
para Bibliotecas distintas, pero las preferencias se aplican a todas las bibliotecas. Cuando cambia algunos
valores por omisión, por ejemplo el artículo de navegación, debe salir y reiniciar el programa. Los valores
por omisión como, por ejemplo, los mandatos de impresión, entran en vigor cuando se guardan. Cuando
define preferencias, todos los cambios entran en vigor inmediatamente.

Los siguientes apartados describen cómo personalizar la interfaz ASCII de InfoExplorer:


v “Cambio de los valores por omisión en la interfaz ASCII de InfoExplorer”
v “Cambio de las preferencias en la interfaz ASCII de InfoExplorer” en la página 280

Cambio de los valores por omisión en la interfaz ASCII de InfoExplorer


Con el programa InfoExplorer, puede definir muchos valores por omisión. Son los valores que utiliza el
programa InfoExplorer en el arranque. Puede seleccionar Valores por omisión bajo Opciones en el
menú desplegable InfoExplorer para definir valores por omisión para:
v “Designación de un artículo de navegación por omisión”
v “Designación de archivos por omisión”
v “Designación de un archivo de plantilla de notas por omisión”
v “Cambio de la base de datos de búsqueda por omisión” en la página 280
v “Designación de impresoras por omisión” en la página 280

Designación de un artículo de navegación por omisión


Por omisión, el programa InfoExplorer muestra inicialmente el Índice de temas y tareas como artículo de
navegación primario. Puede cambiar este valor por omisión al artículo de navegación que se adapte mejor
a sus objetivos. A continuación, en el arranque, el programa InfoExplorer muestra automáticamente el
nuevo artículo de navegación por omisión.

Para obtener información acerca de procedimientos, consulte Definición de valores por omisión
(InfoExplorer ASCII) en la ayuda en línea de InfoExplorer.

Designación de archivos por omisión


Puede que desee disponer de una guía para seguir una vía específica mientras utiliza el programa
InfoExplorer o puede que desee volver a rastrear la vía de una sesión anterior. Para gestionar este
aspecto, puede designar un archivo histórico específico por omisión. De este modo, cuando utilice la
opción Histórico, el archivo histórico por omisión o la guía le guiarán a la vía designada.

También puede designar un archivo de señales o un archivo de notas como archivo de señales o de
notas por omisión y seguir esas vías específicas en sesiones posteriores.

Para obtener información acerca de procedimientos, consulte Definición de valores por omisión
(InfoExplorer ASCII) en la ayuda en línea de InfoExplorer.

Designación de un archivo de plantilla de notas por omisión


Cuando cree una nota en la documentación hipertexto, la pantalla del editor estará inicialmente en blanco.
Puede escribir la nota en la ventana en blanco. Para utilizar un formato concreto para escribir notas,
puede especificar una plantilla de notas. Si ha creado y guardado muchas plantillas de notas, puede
designar una de ellas como valor por omisión. A continuación, cuando utilice la opción Nota, el programa
InfoExplorer visualizará la plantilla de notas por omisión.

Para obtener información acerca de procedimientos, consulte Definición de valores por omisión
(InfoExplorer ASCII) en la ayuda en línea de InfoExplorer.

Apéndice A. Acceso a la información con InfoExplorer 279


Cambio de la base de datos de búsqueda por omisión
Por omisión, cuando efectúe búsquedas con el programa InfoExplorer, la búsqueda incluirá las bases de
información cargadas con el programa. No obstante, no siempre es necesario incluir todas las bases de
información en la búsqueda. Para que sus búsquedas sean más eficaces, puede especificar en qué bases
de información debe buscarse durante sesiones actuales y futuras. También puede restablecer la
selección de base de información a su formato original (valor por omisión del sistema) de forma que se
incluyan de nuevo en la búsqueda las bases de información cargadas con el programa.

Para obtener información acerca de procedimientos, consulte Definición de valores por omisión
(InfoExplorer ASCII) en la ayuda en línea de InfoExplorer.

Designación de impresoras por omisión


Algunas impresoras están mejor definidas para impresión simple o para impresión de alta calidad. En el
programa InfoExplorer, puede designar una impresora por omisión para los distintos tipos de impresión:
simple o de alta calidad. La opción Impresión de alta calidad utiliza el programa troff para convertir un
documento en salida para fotocomposición. Cuando emita un mandato de impresión para una pantalla, la
impresora que ha designado recibe automáticamente dicho mandato determinado. Si no especifica una
cola de impresión, la acción por omisión es utilizar la primera cola que se especifica en el archivo
/etc/qconfig.

Por ejemplo, si ha designado la impresora daves3812 y si en las preferencias ha establecido la impresión


de alta calidad, cuando elija la opción Imprimir, el trabajo de impresión se enviará automáticamente a esa
impresora.

Nota: El programa de formateo de documentos troff debe estar instalado en el sistema para poder
utilizar la función de impresión de alta calidad.

Para obtener información acerca de procedimientos, consulte Definición de valores por omisión
(InfoExplorer ASCII) en la ayuda en línea de InfoExplorer.

Cambio de las preferencias en la interfaz ASCII de InfoExplorer


Con el programa InfoExplorer, puede definir muchas preferencias. Utilice la opción Preferencias en el
menú desplegable de información para establecer sus preferencias para:
v “Cambio del tamaño de la lista del histórico”
v “Elección del editor de notas”
v “Cambio de la salida de impresión” en la página 281

Cambio del tamaño de la lista del histórico


El tamaño de una lista del histórico puede oscilar entre 0 (cero) y 1000 eventos. El valor por omisión del
sistema para el tamaño de la lista del histórico es de 100 eventos. Puede cambiar el tamaño por omisión
para que se adapte a su situación particular. A continuación puede aplicar los cambios únicamente a la
sesión actual o guardarlos para sesiones actuales y posteriores.

Para obtener información acerca de procedimientos, consulte Definir preferencias (InfoExplorer ASCII) en
la ayuda en línea de InfoExplorer.

Elección del editor de notas


Existen varios editores de notas disponibles en la interfaz InfoExplorer ASCII, incluyendo INed y vi. El
editor de notas por omisión del sistema es vi. Si prefiere utilizar INed u otro editor para escribir sus notas,
puede cambiar el valor por omisión. A continuación puede aplicar los cambios únicamente a la sesión
actual o guardarlos para sesiones actuales y posteriores.

280 Guía del usuario del sistema: Sistema operativo y dispositivos


Para obtener información acerca de procedimientos, consulte Definir preferencias (InfoExplorer ASCII) en
la ayuda en línea de InfoExplorer.

Cambio de la salida de impresión


Existen dos tipos de salida de impresión disponible en la interfaz InfoExplorer ASCII: simple y de alta
calidad. El valor por omisión del sistema para salida de impresión es impresión simple, que no acepta
resaltados o diferencias de fonts. Si prefiere utilizar impresión de alta calidad, puede cambia el valor por
omisión.

Nota: El programa para formatear documentos troff deberá haberse instalado en el sistema para
poder utilizar la función de impresión de alta calidad. El programa troff convierte un documento en
salida para fotocomposición.

A continuación puede aplicar los cambios a la sesión actual únicamente o también a las sesiones futuras.

Para obtener información acerca de procedimientos, consulte Definir preferencias (InfoExplorer ASCII) en
la ayuda en línea de InfoExplorer.

Recursos de X disponibles para el programa InfoExplorer


Puede personalizar el color de la ventana, su posición y su tamaño en el programa InfoExplorer
estableciendo los recursos de X en el archivo .Xdefaults. Esto puede hacerse para los tipos de ventanas
siguientes:

Tipo de ventana Nombre de recurso


Lista de señales blistTopLevelShell
Citas citTopLevelShell
Búsqueda compuesta compoundTopLevelShell
Selección de bases de datos dbSelectionTopLevelShell
Editor de valores por omisión defTopLevelShell
Documento (lectura) docTopLevelShell
Archivo (enlace de archivo) fileTopLevelShell
Selección de archivos fileSelTopLevelShell
Nota a pie de página footTopLevelShell
Glosario glossaryTopLevelShell
Gráficos graphicTopLevelShell
Lista del histórico hlistTopLevelShell
Introducción introTopLevelShell
Definición de biblioteca libinstTopLevelShell
Selección de bibliotecas libSelTopLevelShell
Lista de títulos tlistTopLevelShell
Mensaje messageTopLevelShell
Lista de coincidencias mlSelectionTopLevelShell
Navegación navTopLevelShell
Editor de notas neditTopLevelShell
Lista de notas nlistTopLevelShell
Contorno outlineTopLevelShell
Lista de vías de acceso plistTopLevelShell
Preferencias prefTopLevelShell
Referencias refTopLevelShell
Búsqueda simple searchTopLevelShell

El nombre de recurso de nivel más alto en InfoExplorer es Info-gr. Por ejemplo, para cambiar la anchura
de la ventana de navegación, añada el nombre de recurso siguiente al archivo .xdefaults:

Apéndice A. Acceso a la información con InfoExplorer 281


Info_gr.navTopLevelShell.width: 800

Para que se visualicen los ISOfonts, añada el nombre de recurso siguiente al archivo .xdefaults:
Info_gr.fontfilestr: isofonts

282 Guía del usuario del sistema: Sistema operativo y dispositivos


Apéndice B. Avisos
Esta información se ha desarrollado para productos y servicios que se ofrecen en EE.UU.
Es posible que IBM no ofrezca los productos, servicios o características que se describen en este
documento en otros países. Consulte con el representante local de IBM para obtener información sobre
los productos y servicios que están actualmente disponibles en su área. Cualquier referencia a un
producto, programa o servicio IBM no pretende afirmar ni implica que sólo se pueda utilizar dicho
producto, programa o servicio IBM. En su lugar se puede utilizar cualquier producto, programa o servicio
funcionalmente equivalente que no infrinja los derechos de propiedad intelectual de IBM. Sin embargo, es
responsabilidad del usuario la evaluación y la verificación del funcionamiento de cualquier producto,
programa o servicio que no sea de IBM.
IBM puede tener patentes o solicitudes de patentes pendientes que afecten a los temas que se describen
en este documento. El suministro de este documento no proporciona ninguna licencia sobre estas
patentes. Puede enviar consultas sobre patentes a:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
EE.UU.

Para consultas sobre licencias relacionadas con información de doble byte (DBCS), póngase en contacto
con el Departamento de Propiedad Intelectual de IBM de su país o envíe las consultas, por escrito a:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokio 106, Japón

El párrafo siguiente no se aplica al Reino Unido ni a ningún otro país en el que tales disposiciones
entren en contradicción con la ley local: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROPORCIONA ESTA PUBLICACIÓN "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, NI EXPLÍCITA NI
IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A, LAS GARANTÍAS IMPLÍCITAS DE NO
INCUMPLIMIENTO, COMERCIALIZACIÓN O ADECUACIÓN A UN PROPÓSITO DETERMINADO.
Algunos países no permiten la exclusión de garantías expresas o implícitas en determinadas operaciones
comerciales, por lo que es posible que este párrafo no se aplique en su caso.
Esta información puede contener incorrecciones técnicas o errores tipográficos. Periódicamente se
realizarán modificaciones en la información aquí contenida; dichos cambios se incorporarán en nuevas
ediciones de la publicación. IBM puede realizar en cualquier momento cambios y/o mejoras en el(los)
producto(s) y/o programa(s) que se describen en esta publicación sin previo aviso.

IBM puede utilizar o distribuir cualquier información que se le suministre del modo que considere más
adecuado sin incurrir por ello en ninguna obligación con el remitente.

Los titulares de una licencia de este programa que deseen obtener información sobre el mismo con la
finalidad de habilitar: (i) el intercambio de información entre programas creados independientemente y
otros programas (incluido éste) y (ii) la utilización mutua de la información que se ha intercambiado,
deben ponerse en contacto con:
IBM Corporation
Dept. LRAS/Bldg. 003
11400 Burnet Road
Austin, TX 78758-3498
EE.UU.
Esta información puede estar disponible, sujeta a los términos y condiciones apropiados, incluyendo en
algunos casos, el pago de una tarifa.
El programa bajo licencia que se describe en este documento y todo el material bajo licencia disponible

© Copyright IBM Corp. 1997, 2001 283


para el mismo los proporciona IBM bajo los términos del IBM Customer Agreement, el IBM International
Program License Agreement o cualquier acuerdo entre IBM y el usuario.

La información sobre productos no IBM se ha obtenido de los suministradores de dichos productos, de


sus anuncios publicados u otras fuentes disponibles públicamente. IBM no ha probado dichos productos y
no puede confirmar la exactitud del rendimiento, la compatibilidad o cualquier otra información relacionada
con productos no IBM. Las preguntas sobre las posibilidades de los productos no IBM deben dirigirse a
los suministradores de dichos productos.

Esta información contiene ejemplos de datos e informes utilizados en operaciones comerciales diarias.
Para ilustrarlas del modo más completo posible, los ejemplos incluyen nombres de personas, empresas,
marcas y productos. Todos estos nombres son ficticios y cualquier semejanza con los nombres y
direcciones utilizados en una empresa real es una mera coincidencia.

284 Guía del usuario del sistema: Sistema operativo y dispositivos


Índice
A archivos (continuación)
enlace 86, 87
agenda
enlazados, eliminación 89
visualización 253
entorno 143
alias
expansión 120
mandato
expresiones de coincidencia
shell Korn o POSIX 170
búsqueda 76
alias de mandatos
expresiones normales 73
shell Korn o POSIX 170 formato
sustitución de la tilde 171 para impresión 106
archivo para visualización 78
árboles 54 fusión de las líneas de varios 84
descriptores 46 grabación en la salida
permisos 130 desde el punto especificado 83
archivo .env 144 identificación del tipo 78
archivo /etc/environment 143 localización de secciones 25
archivo /etc/profile 142 manejo 73
archivo .mwmrc 147 metacaracteres 72
archivo .profile 143, 144 modalidad de acceso
archivo .Xdefaults 146 establecimiento 87
archivo .xinitrc 145 modalidades de acceso 130
archivo de entorno 143 movimiento 75
archivo raíz 55 nombres de vías de acceso 59, 71
archivos numeración de líneas 85
adición de una sola línea de texto 49 pegado de texto 84
archivador 124 permisos 71
ASCII 70 propiedad 87, 129
binarios 70 realización de la copia de seguridad 121
búsqueda de una serie 80 recuperación del almacenamiento 124
cálculo del número restauración
bytes 82 utilización del mandato smit 124
líneas 82 restauración de la copia de seguridad 123
palabras 82 supresión 74
cambio supresión del DOS 91
desde un archivo enlazado 87 tipos
permisos 133 directorio 70
propiedad 129 especiales 70
cambio del nombre 75 normales 70
clasificación de texto 80 visualización 78
columnas, eliminación 85 unión 45
comodines 72 visión general 69
comparación 66, 81 visualización
compresión 118 contenido 78
concatenación 45 primeras líneas 82
convenios de denominación 71 últimas líneas 83
copia 75 archivos ASCII
de cinta o disco 117 impresión en una impresora PostScript 107
de la pantalla 50 archivos de arranque
desde el DOS 90 shell C 228
en el DOS 90 sistema 142
corte de campos seleccionados de 83 archivos de DOS
creación con redirección desde el teclado 45 conversión 89
definición 53 copia 90
descompresión 120 listado del contenido 91
desempaquetado 120 supresión 91
ejecutables 70 archivos de inicio de sesión
eliminación 74 archivo .env 144
empaquetado 118 archivo /etc/environment 143

© Copyright IBM Corp. 1997, 2001 285


archivos de inicio de sesión (continuación)
archivo /etc/profile 142
C
calendar
archivo .profile 143, 144
mandato 254
archivos de perfil
cambio del nombre
utilización 142 archivos 75
archivos de recursos directorios 61
modificación 146, 147 caracteres delimitadores
archivos de texto shell Bourne 213
búsqueda de series 80 shell Korn o POSIX 168
clasificación 80 CDRFS 55
columnas cintas
eliminación 85 comprobación de la coherencia 118
concatenación 45 copia en o desde 117
creación desde la entrada de teclado 45 clases
líneas usuario 130
numeración 85 cola
secciones dispositivo 96
corte 83 print 95
pegado 84 comodines 72
archivos enlazados comparación de archivos 81
eliminación 89 componente de fondo
archivos PostScript impresora 97
conversión de ASCII 109 compresión de archivos 118
concatenación de archivos de texto 45
argumentos 24
concatenación por conductos
aritmética
definición 22, 47
conversión de unidades 257 conductos
obtención de factores de números 256 definición 47
aritmética de enteros 177 consola
arranque visualización del nombre 14
control de ventanas y aplicaciones en 145 contraseñas
ASCII a PostScript cambio o establecimiento 9
automatización de la conversión 109 directrices 8
conversión de archivos 109 establecimiento en nulas 10
control de accesos
edición de información 139
B establecimiento de información 138
listas 136
backup
permisos ampliados 135
cintas visualización de información 138
ventajas de 113 control de trabajos
cómo se hace 121 shell C 249
compresión de archivos antes de 118 shell Korn o POSIX 199
directrices 111 controles de acceso
finalidad de 111 listas 134
mandato 121 convenios de denominación
utilización del mandato smit 122 archivos 71
biblioteca directorios 59
preferida conversión de unidades de medida
interfaz de ventanas 155 mandato units 257
bloqueo del terminal 139 copia
borra el contenido de la pantalla 49 archivos de cinta o disco 117
búsqueda archivos en cinta o disco 116
en o desde cinta 117
base de información por omisión
en o desde disquetes 116
interfaz ASCII 280
copia de la pantalla en un archivo 50
palabras clave 253
correlaciones
búsqueda de palabras clave teclado 16
mandato apropos 253 correlaciones del teclado
bytes listado de las disponibles actualmente 16
cálculo del número de 82 corte de secciones 83

286 Guía del usuario del sistema: Sistema operativo y dispositivos


D edición en línea (continuación)
modalidad de edición vi 203
descartar la salida 46
modalidad emacs 201
directorio x (inicial) 60
edición en línea del shell Korn
directorio $HOME 60
modalidad de edición vi 203
directorios 58
modalidad emacs 201
abreviaturas 60
editor ed 73
cambio 62
editor emacs 201
cambio de los permisos 133
editor InEd 73
cambio del nombre 61
editor vi 203
cambio del propietario 129
editores 73, 200
comparación del contenido 66
eliminación de delimitadores
convenios de denominación 59
shell Korn o POSIX 180
copia 63
enlaces
creación 61
creación 87
definición 53
eliminación 89
eliminación 65
fijos 87
enlace 86
simbólicos 87
especificación con abreviaturas 60
tipos 87
estructura 58
visión general 86
inicial 59
entorno
listado de archivos 64
establecimiento
listado de los archivos de DOS 91
usuario 143
modalidades de acceso 130
sistema 13
movimiento 61
visualización del actual 17
nombres de vías de acceso 59
entrada estándar
organización 58
copia en un archivo 48
padre 59
definición 44
raíz
redirección 46
definición 53
espacio
subdirectorios 58
visualización del disponible 56
supresión 65
estado de la salida
tipos 58
shell Korn o POSIX 183
trabajo 59
evaluación aritmética
visión general 57
shell Korn o POSIX 177
visualización
expresiones
actual 62
búsqueda de archivos con coincidencia 76
contenido 64
expresiones normales 73
directorios .. (doble punto) 60
directorios . (punto) 60
dispositivo /dev/rfd0 113 F
dispositivo /dev/rmt0 file
dispositivo de cintas mandato 78
utilización 113 filtros
dispositivos definición 47
visualización de información acerca de 13 fin de sesión
disquetes cómo se hace 4
copia en o desde 116 font
formato 114 cambio 150
manejo 113 interfaz de ventanas 154
distintivos fonts
en mandatos 23 listado de los disponibles para utilizarse 15
documento de entrada en línea 47, 181 formación
documentos de entrada en línea 47 formación asistida por ordenador 255
formación asistida por ordenador 255
formateo de disquetes 114
E formato de texto
edición caracteres ampliados de un solo byte 31
en línea soporte de caracteres de varios bytes 31
shell Korn o POSIX 200 soporte internacional de caracteres 30
edición en línea función de automantenimiento
shell Korn o POSIX 200 interfaz de ventanas 155

Índice 287
G impresoras reales 96
impresoras virtuales 96
gestión de horarios
indicador
creación de recordatorios 256
cambio del sistema 151
grabación de mensajes de recordatorio 254
inicio
shell Bourne 210
shell C 227
H shell Korn o POSIX 185
help windows Window Manager 145
mandato 255 X 144
visualización de información 255 inicio de sesión
histórico cómo se hace 2
edición 29 ID de usuario, como otro 3
lista mandato 3
establecimiento del tamaño 280 mensajes
suceso supresión 4
cambio del tamaño 155 nombre
sustitución visualización 5
shell C 238 remoto 1
histórico de mandatos varios en el mismo sistema 3
shell Korn o POSIX 185 interfaz ASCII
history personalización
mandato 26 visión general 278
valores por omisión
visión general 279
I visión general 267
ID interfaz ASCII de InfoExplorer
usuario 129 ayuda 268, 276
ID de usuario de inicio de sesión 128 bibliotecas alternativas, inicio 278
idiomas búsqueda 272
bidireccionales 19 detención 278
idiomas bidireccionales 19 enlaces de hipertexto
imagen selección 270
preferencia de visualización 155 impresión 275
impresión 95, 105 movimiento por el texto 271
archivos ASCII en una impresora PostScript 107 opciones de menú, selección 271
formateo de archivos para 106 pantallas
liberación de trabajos de impresión 104 moverse entre 270
movimiento de trabajos de impresión 105 tipos 269
retención de trabajos de impresión 104 salida 278
impresión desde InfoExplorer 275 interfaz de ventana
impresora PostScript recursos de X disponibles en 281
interfaz de ventanas
impresión de archivos ASCII 107
personalización 152
impresoras 95
cancelación de un trabajo 101
cola 95
componente de fondo 97
J
condiciones de estado 103 JFS 55
dispositivo de cola 96
inicio de un trabajo 98 L
locales 97 lectura del visor de tres dígitos 3
qdaemon 96 línea de texto
reales 96 adición a un archivo 49
remotas 97 líneas
spooler 96 cálculo del número de 82
valor por omisión lista de mandatos 101
interfaz ASCII 280 > 44
interfaz de ventanas 154 >> 45
virtuales 96 <<<< 46
visualización del estado de un trabajo 103 | 47
impresoras locales 97 acledit 139

288 Guía del usuario del sistema: Sistema operativo y dispositivos


lista de mandatos 101 (continuación) lista de mandatos 101 (continuación)
aclget 138 learn 255
aclput 138 leave 256
aixterm 19 ln 87
alias 29 lock 139
apropos 253 logname 6
at 38, 39 ls 64
atq 39 lscfg 13
backup 121 lscons 14
banner 51 lsdisp 15
bsh 161, 210 lsfont 15
cal 253 lsgroup 132
calendar 254 lskbd 16
capture 50 lslpp 16
cat 45, 79 man 25
cd 59, 62 mandato cpio -o 116
clear 49 mkdir 61
colrm 85 more 79
compress 118 mv 75
cp 63, 75 mvdir 61
cpio -i 117 mwm 145
csh 161, 227 nice 36
cut 83 nl 85
chfont 150 pack 118
chmod 133 page 79
chown 129 passwd 9
chpq 109 paste 84
del 89 pg 79
df 56 pr 106
diff 81 printenv 18
dircmp 66 ps 34
dosdel 91 psh 161, 185
dosdir 91 pwd 62
dosread 90 qcan 101
doswrite 90 qchk 101
echo 49 qhld 104
env 17 qmov 105
exit 4 qpri 103
export 149 qprt 98
factor 256 r 28
fc 186 renice 36
fdformat 114 restore 123
file 78 rm 74, 89
fin de sesión 4 rmdir 65
find 76 rsh 161
flcopy 116 Rsh 161, 211
format 114 script 50
fsck 115 sh 161
grep 48, 80 shutdown 5
grupos 129 smit 25, 100, 122
head 82 sort 80
help 255 stty 17, 151
history 26 su 3
id 7 tail 83
inicio de sesión 3 tapechk 118
kill 40 tar 124
ksh 161, 185 tcopy 117
mandatos incorporados especiales 187, 188, tee 48
190, 191, 192, 193 touch 4
mandatos incorporados normales 193, 194, 195, tsh 161
196, 197 tty 15

Índice 289
lista de mandatos 101 (continuación) mandato format 114
uname 6 mandato fsck 115
uncompress 120 mandato Gestor del sistema basado en la Web 104
units 257 mandato grep 48, 80
unpack 120 mandato groups 129
wc 82 mandato head 82
whatis 26 mandato id 7
whereis 25 mandato kill 40
who 7 mandato ksh 161, 185
who am i 6 mandato learn 255
whoami 5 mandato leave 256
write 259 mandato ln 87
xlock 139 mandato lock 139
logout mandato logname 6
mandato 4 mandato ls 64
mandato lscfg 13
mandato lscons 14
M mandato lsdisp 15
mandato acledit 139 mandato lsfont 15
mandato aclget 138 mandato lsgroup 132
mandato aclput 138 mandato lskbd 16
mandato aixterm 19 mandato lslpp 16
mandato alias 29 mandato man 25
mandato apropos 253 mandato mkdir 61
mandato at 38, 39, 40 mandato more 79
mandato atq 39 mandato mv 75
mandato banner 51 mandato mvdir 61
mandato bsh 161, 210 mandato mwm 145
mandato cal 253 mandato nice 36
mandato capture 50 mandato nl 85
mandato cat 45, 79 mandato pack 118
mandato cd 59, 62 mandato page 79
mandato clear 49 mandato passwd 9
mandato colrm 85 mandato paste 84
mandato compress 118 mandato pg 79
mandato cp 63, 75 mandato pr 106
mandato cpio -i 117 mandato printenv 18
mandato cpio -o 116 mandato ps 34
mandato csh 161, 227 mandato psh 161, 185
mandato cut 83 mandato pwd 62
mandato chfont 150 mandato qcan 101
mandato chmod 133 mandato qchk 101
mandato chown 129 mandato qhld 104
mandato chpq 109 mandato qmov 105
mandato del 89 mandato qpri 103
mandato df 56 mandato qprt 98
mandato diff 81 mandato r (repeat) 28
mandato dircmp 66 mandato renice 36
mandato dosdel 91 mandato restore 123
mandato dosdir 91 mandato rm 74, 89
mandato dosread 90 mandato rmdir 65
mandato doswrite 90 mandato rsh 161
mandato echo 49 mandato Rsh 161, 211
mandato env 17 mandato script 50
mandato exit 4 mandato sh 161
mandato export 149 mandato shutdown 5
mandato factor 256 mandato smit 25, 100, 122
mandato fc 186 mandato sort 80
mandato fdformat 114 mandato stty 17, 151
mandato find 76 mandato su 3
mandato flcopy 116 mandato tail 83

290 Guía del usuario del sistema: Sistema operativo y dispositivos


mandato tapechk 118 manejo de señales
mandato tar 124 shell Bourne 214
mandato tcopy 117 shell C 229
mandato tee 48 shell Korn o POSIX 200
mandato touch 4 mensajes
mandato tsh 161 envío a la salida estándar 49
mandato tty 15 envío de mensajes a otros usuarios 259
mandato uname 6 visualización en pantalla 49
mandato uncompress 120
mensajes de inicio de sesión, supresión 4
mandato units 257
mandato unpack 120 mensajes de recordatorio
finalidad de 118 mandato calendar 254
mandato wc 82 mensajes en tiempo real
mandato whatis 26 envío de mensajes a otros usuarios 259
mandato whereis 25 metacaracteres 72
mandato who 7 modalidades de acceso
mandato who am i 6 archivos 130
mandato whoami 5 clases de usuarios 130
mandato write 259 control 130
mandato xlock 139 directorios 130
mandatos información del grupo
alias visualización 132
creación 29 permisos base 135
distintivos representación de
utilización 23 numérica 131
entrada 22 simbólica 130
espacios entre 22 valor por omisión
formatear texto 30 representación numérica para 131
función representación simbólica para 130
descripción 26 modificadores
guardar los entrados 26
en mandatos 23
histórico, edición 29
incorporados 186
shell Bourne 215
shell C 229
N
información acerca de NFS 55
visualización 25 nombre abreviado de los mandatos
mandatos largos en varias líneas creación 29
entrada 23 nombres, visualización
nombre del mandato inicio de sesión 5
definición 23 sistema operativo 6
nombres abreviados
nombres de recursos
creación 29
parámetros 24 interfaz de ventana 281
repetición 28 nombres de vías de acceso
sensibles a las mayúsculas y las minúsculas 23 absolutos 60, 71
sentencias de uso 24 definición 71
shell Bourne 212 directorio 59
shell C 229 notas
shell Korn o POSIX 165 establecimiento del editor preferido
sintaxis 22 interfaz ASCII 280
sustitución de series 28 impresión
varios mandatos en una línea InfoExplorer 275
entrada 22 plantilla por omisión
visión general 22 interfaz ASCII 279
mandatos especiales
número de identificación de proceso 32
shell Bourne 215
número de inodo 58, 70, 86
mandatos incorporados 186
shell Bourne 215 número de referencia de nodo de índice 58
shell C 229 número PID
mandatos para formatear texto 30 descripción 32

Índice 291
O procesos (continuación)
en primer plano 33
obtención de factores de números
en segundo plano 33
mandato factor 256
establecimiento de la prioridad inicial 36
opciones
inicio 33
en mandatos 23
listado de los planificados 39
operador de redirección de adición (>>) 45
planificación para procesarlos posteriormente 38
operador de redirección de entrada (<<<<) 46
reinicio de uno detenido 37
operador de redirección de salida (>) 44
visualización de todos los activos 34
visualización del estado 35
P zombie 33
procesos en primer plano
páginas de manual
definición 33
localización mediante búsquedas de palabras
procesos en segundo plano
clave 253
definición 33
palabras
productos de software
cálculo del número de 82
visualización de información acerca de 16
palabras reservadas
programa
shell Korn o POSIX 170
copia de la salida en un archivo 48
pantallas
programa ASCII InfoExplorer
borrar 49
artículo de navegación
copia de la visualización en un archivo 48
designación de valores por omisión 279
copia en un archivo 50
base de datos de búsqueda
designación de la navegación por omisión 279
cambio del valor por omisión 280
listado de las disponibles en el sistema 15
editor de notas
visualización de texto en una pantalla cada vez 79
elección 280
visualización del texto en letras grandes 51
impresoras
parámetros
designación por omisión 280
en mandatos 24
personalización 278
shell Korn o POSIX 172
preferencias
parámetros de posición
cambio de valores 280
shell Bourne 224
salida de impresión
patrones de coincidencia
cambio 281
shell Bourne 225
valores por omisión
shell Korn o POSIX 179
cambio 279
permisos
programa de ventanas InfoExplorer
ampliados 135
personalización 152
archivo 133
programa InfoExplorer
base 135
detención 278
directorio 133
inicio 269
permisos ampliados 135
salida 278
permisos base 135
visión general
personalización
interfaz ASCII 267
entorno del sistema 149
InfoExplorer
interfaz ASCII 278
interfaz de ventanas 152
Q
preferencias qdaemon 96
visión general
interfaz de ventanas 154
proceso daemon R
descripción 33 recordatorios de salida
proceso zombie 33 mandato leave 256
procesos recurso de coproceso
cambio de la prioridad 36 shell Korn o POSIX 182
cancelación 36 recursos
proceso en primer plano 36 descripción 146
daemon 33 recursos de X
descripción 32 interfaz de ventana 281
detención 37 red
proceso en segundo plano 40 visualización del nombre
eliminación de la planificación 40 con el mandato uname 7

292 Guía del usuario del sistema: Sistema operativo y dispositivos


redirección shell Bourne (continuación)
entrada estándar 46 sustitución de mandatos 219
salida a un archivo 44 sustitución del nombre del archivo 225
salida de error estándar 46 variables 221
salida estándar 44 definidas por el usuario 220
redirección de E/S especiales predefinidas 222
shell Bourne 226 sustitución 220
shell C 248 shell C
shell Korn o POSIX 181 control de trabajos 249
redirección de entrada 44 expresiones 236
redirección de entrada y salida 226 inicio 227
redirección de la entrada y la salida limitaciones 228
desde coprocesos 183 mandatos
referencias incorporados 229
impresión desde las pantallas de InfoExplorer 275 utilización 229
remotas manejo de señales 229
impresoras 97 operadores 236
remoto redirección de la entrada y la salida 248
inicio de sesión 1 sustitución de alias 241
sustitución de mandatos 237
sustitución de variables 242
S sustitución del histórico 238
salida sustitución del nombre del archivo 244
descartar con el archivo /dev/null 46 variables predefinidas y de entorno 246
redirección a un archivo 44 shell estándar
salida de error estándar expresiones condicionales 198
redirección 46 Shell Korn 206
salida estándar shell Korn o shell POSIX
adición a un archivo 45 alias de mandatos 170
definición 44 sustitución de la tilde 171
redirección 44 control de trabajos 199
seguridad coprocesos
amenazas 127 redirección de la entrada y salida desde 183
archivo 127 delimitadores 168
sistema 127 edición 200
sentencias de uso eliminación de delimitadores 180
para mandatos 24 entorno 184
series estado de la salida 183
búsqueda en los archivos de texto 80 evaluación aritmética 177
shell expresiones condicionales 198
programas 164 histórico de mandatos 185
scripts inicio 185
creación 164 mandatos
especificación de un shell 164 compuestos 166
variables funciones 167
exportación 149 incorporados 186
shell Bourne utilización 165
caracteres delimitadores 213 mandatos incorporados 186
entorno 210 manejo de señales 200
inicio 210 palabras reservadas 170
mandatos patrones de coincidencia 179
incorporados 215 recurso de coproceso 182
lista 214 redirección de la entrada y la salida 181
utilización 212 subdivisión de campos 179
mandatos especiales 215 sustitución de mandatos 176
manejo de señales 214 sustitución de parámetros 172
palabras reservadas 214 sustitución del nombre del archivo 179
parámetros de posición 224 variables
patrones de coincidencia 225 definidas por el usuario 175
redirección de la entrada y la salida 226 predefinidas 174
sustitución condicional 223 Shell ksh93 206

Índice 293
shell POSIX 184 shells (continuación)
Shell POSIX 206 tipos 161
shell restringido Shells 206
inicio 211 sistema
shells archivos de arranque 142
Bourne encendido 2
entorno 210 entorno 13
inicio 210 gestión
mandatos incorporados 215 tareas de los sistemas de archivos 54
parámetros de posición 224 indicador
redirección de la entrada y la salida 226 cambio 151
sustitución condicional 223 personalización del entorno 149
sustitución de mandatos 219 seguridad 127
sustitución de variables 220 shutdown 5
sustitución del nombre del archivo 225 variables por omisión 142
variables 221 visualización del nombre 6
variables definidas por el usuario 220 sistema de archivos de CD-ROM (CDRFS) 55
variables especiales predefinidas 222 sistema de archivos de diario (JFS) 55
C sistema operativo
control de trabajos 249 finalización de la sesión 4
inicio 227 inicio de sesión 2
mandatos incorporados 229 visualización del nombre
manejo de señales 229 con el mandato uname 6
redirección de la entrada y la salida 248 sistemas de archivos
sustitución de alias 241 comprobación de la coherencia 115
sustitución de mandatos 237 definición 53
sustitución de variables 242 ejemplo
sustitución del histórico 238 ilustración 71
sustitución del nombre del archivo 244 espacio disponible
variables predefinidas y de entorno 246 visualización 56
conceptos 159 estructura 55
disponibles 161 raíz 55
fiable, inicio 161 realización de reparaciones interactivas 115
funciones 160 tipos
Korn o POSIX sistema de archivos de diario (JFS) 55
control de trabajos 199 sistemas de archivos de red (NFS) 55
delimitadores 168 visión general 54
edición en línea 200, 201, 203 sistemas de archivos de red (NFS) 55
entorno 184 SMIT
estado de la salida 183 impresión
evaluación aritmética 177 control de 97
expresiones condicionales 198 soporte de caracteres de varios bytes
inicio 185 formato de texto 31
mandato 170, 176, 185 soporte internacional de caracteres
mandatos compuestos 166 formato de texto 30
mandatos incorporados 186 spooler de impresión 96
manejo de señales 200 supresión
palabras reservadas 170 archivos 74
parámetros 172 directorios 65
recurso de coproceso 182 sustitución condicional
redirección de la entrada y la salida 181
shell Bourne 223
sustitución del nombre del archivo 179
sustitución de alias
utilización de mandatos 165
restringido shell C 241
inicio 211 sustitución de la tilde
scripts creación de alias de mandatos
especificación de un shell 164 shell Korn o POSIX 171
scripts de shell sustitución de mandatos
creación 164 shell Bourne 219
terminología shell C 237
definiciones 162 shell Korn o POSIX 176

294 Guía del usuario del sistema: Sistema operativo y dispositivos


sustitución de variables
shell Bourne 220
V
valores por omisión
shell C 242
shell Korn o POSIX 174 archivo de señales de InfoExplorer
interfaz ASCII 279
sustitución del nombre del archivo
interfaz de ventanas 153
shell Bourne 225 archivo histórico de InfoExplorer
shell C 244 interfaz ASCII 279
shell Korn o POSIX 179 interfaz de ventanas 153
archivos de notas de InfoExplorer
interfaz ASCII 279
T interfaz de ventanas 153
teclas de control artículo de navegación de InfoExplorer
cambio 151 interfaz ASCII 279
visualización de valores 17 interfaz de ventanas 153
terminal bases de información de InfoExplorer
interfaz ASCII 280
bloqueo 139
interfaz de ventanas 154
reserva
impresoras de InfoExplorer
utilización del mandato lock 139
interfaz ASCII 280
visualización de valores 18
interfaz de ventanas 154
visualización del nombre 15
plantilla de notas de InfoExplorer
texto
interfaz ASCII 279
adición a un archivo 49 interfaz de ventanas 153, 279
visualización en letras grandes 51 variables
tipos exportación de shell 149
sistema de archivos de CD-ROM (CDRFS) 55 shell Bourne 221
tipos de archivos de impresión definidas por el usuario 220
alteración temporal de la determinación especiales predefinidas 222
automática 109 shell C
trabajos predefinidas y de entorno 246
eliminación de la planificación 40 shell Korn o POSIX
listado de los planificados 39 definidas por el usuario 175
planificación 38 predefinidas 174
trabajos de impresión variables de entorno
visualización de valores 18
cancelación 101
definición 95 vías de acceso
especificación de la prioridad 103 directorio 59
formateo de archivos para 106 visor de tres dígitos 3
inicio 98 visualización
liberación 104 agenda 253
movimiento 105 archivos
retención 104 primeras líneas 82
visualización del estado 101 últimas líneas 83
contenido del archivo 78
directorio de archivos
U actual 62
unidades de medida contenido 64
fonts disponibles 15
conversión 257
ID de usuario 7
usuario
información de ayuda 255
clases 130 información de control de accesos 138
grupos información del grupo de usuario 132
definición 129 mensajes de recordatorio 254
visualización de información 132 nombre de inicio de sesión 5
ID nombre de la consola 14
cambio por otro 3 nombre del sistema 6
usuarios nombre del terminal 15
envío de mensajes a otros 259 pantallas disponibles 15
visualización del ID del sistema 7 productos de software 16
visualización del sistema actual 7 texto de la pantalla en letras grandes 51

Índice 295
W
windows Window Manager
inicio 145

X
X Window System
inicio 144, 145

296 Guía del usuario del sistema: Sistema operativo y dispositivos


Hoja de Comentarios
AIX 5L Versión 5.1
Guía del usuario del sistema: Sistema operativo y dispositivos

Número de Publicación SC10-9309-03

Por favor, sírvase facilitarnos su opinión sobre esta publicación, tanto a nivel general (organización, contenido,
utilidad, facilidad de lectura,...) como a nivel específico (errores u omisiones concretos). Tenga en cuenta que los
comentarios que nos envíe deben estar relacionados exclusivamente con la información contenida en este manual
y a la forma de presentación de ésta.
Para realizar consultas técnicas o solicitar información acerca de productos y precios, por favor diríjase a su
sucursal de IBM, business partner de IBM o concesionario autorizado.
Para preguntas de tipo general, llame a ″IBM Responde″ (número de teléfono 901 300 000).
Al enviar comentarios a IBM, se garantiza a IBM el derecho no exclusivo de utilizar o distribuir dichos comentarios
en la forma que considere apropiada sin incurrir por ello en ninguna obligación con el remitente.
Comentarios:

Gracias por su colaboración.


Para enviar sus comentarios:
v Envíelos por correo a la dirección indicada en el reverso.
v Envíelos por correo electrónico a: aix6koub@austin.ibm.com

Si desea obtener respuesta de IBM, rellene la información siguiente:

Nombre Dirección

Compañía

Número de teléfono Dirección de e-mail


Hoja de Comentarios
SC10-9309-03
IBM

IBM S.A.
National Language Solutions Center
Avda. Diagonal, 571
Edif. ″L’Illa″
Barcelona 08029
España

SC10-9309-03
IBM

SC10-9309-03

S-ar putea să vă placă și