aboutsummaryrefslogtreecommitdiff
path: root/iso/na.lyx
diff options
context:
space:
mode:
Diffstat (limited to 'iso/na.lyx')
-rw-r--r--iso/na.lyx7090
1 files changed, 7090 insertions, 0 deletions
diff --git a/iso/na.lyx b/iso/na.lyx
new file mode 100644
index 0000000..bbe948a
--- /dev/null
+++ b/iso/na.lyx
@@ -0,0 +1,7090 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+En UNIX/Linux existen tres grandes familias de intérpretes de órdenes o
+
+\emph on
+shells
+\emph default
+:
+\family typewriter
+sh
+\family default
+,
+\family typewriter
+csh
+\family default
+ y
+\family typewriter
+ksh
+\family default
+.
+ Nos centraremos en
+\family typewriter
+bash
+\family default
+, el Bourne-Again Shell, un
+\emph on
+shell
+\emph default
+ libre de la familia de
+\family typewriter
+sh
+\family default
+.
+ Podemos acceder a este:
+\end_layout
+
+\begin_layout Itemize
+Directamente, si el sistema arranca en modo texto.
+\end_layout
+
+\begin_layout Itemize
+El sistema suele tener 12 terminales virtuales.
+ El modo gráfico suele usar las dos primeras, por lo que podemos acceder
+ a modo texto pulsando
+\family typewriter
+C-M-F
+\emph on
+
+\begin_inset Formula $i$
+\end_inset
+
+
+\family default
+\emph default
+ con
+\begin_inset Formula $i=3,\dots,12$
+\end_inset
+
+ y volver al modo gráfico con
+\family typewriter
+C-M-F1
+\family default
+ o
+\family typewriter
+C-M-F2
+\family default
+ dependiendo del sistema.
+\end_layout
+
+\begin_layout Itemize
+También, desde el modo gráfico, podemos usar un programa de simulación del
+ terminal, que permite ejecutar órdenes desde el entorno de ventanas.
+ Destacan
+\family typewriter
+konsole
+\family default
+ de KDE y
+\family typewriter
+gnome-terminal
+\family default
+ de GNOME.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+bash
+\family default
+ es programable a partir de ficheros de texto con listas de órdenes, llamados
+
+\series bold
+guiones
+\emph on
+shell
+\series default
+\emph default
+ (
+\emph on
+shell scripts
+\emph default
+) o
+\series bold
+\emph on
+scripts
+\series default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+En general, las órdenes que aceptan varias opciones a la vez de una sola
+ letra permiten escribir, por ejemplo,
+\family typewriter
+-abcd
+\family default
+ en vez de
+\family typewriter
+-a -b -c -d
+\family default
+, y esto también vale si la última orden requiere un argumento.
+ Todos los procesos, cuando finalizan, devuelven un
+\series bold
+código de salida
+\series default
+ (
+\emph on
+exit code
+\emph default
+) o
+\series bold
+estado de salida
+\series default
+ (
+\emph on
+exit status
+\emph default
+) al proceso padre, que generalmente es 0 cuando la ejecución es correcta
+ y un valor entre 1 y 255 cuando hay un error.
+
+\end_layout
+
+\begin_layout Standard
+Ejecutar
+\family typewriter
+\emph on
+comando
+\emph default
+ --help
+\family default
+ en general muestra una breve ayuda sobre una orden externa.
+ Otras fuentes son la ayuda de
+\family typewriter
+bash
+\family default
+, la de
+\family typewriter
+man
+\family default
+, la documentación de las distribuciones, sitios como FAQs, foros, etc.,
+ y proyectos de documentación libre como TLDP.
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+De aquí en adelante buscad en todos estos sitios antes de preguntarme a
+ mí.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Las órdenes se ejecutan siempre desde el
+\series bold
+directorio actual
+\series default
+ en el que nos encontremos.
+ Cada usuario tiene un
+\series bold
+directorio personal
+\series default
+, que suele ser
+\family typewriter
+/home/
+\emph on
+usuario
+\family default
+\emph default
+, siendo
+\family typewriter
+\emph on
+usuario
+\family default
+\emph default
+ el nombre del usuario.
+\end_layout
+
+\begin_layout Standard
+Los ficheros y directorios tienen una serie de permisos para el propietario
+ (o usuario), el grupo y el resto de usuarios.
+ Para cada uno de estos se definen los siguientes permisos:
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="20text%">
+<column alignment="center" valignment="top" width="30text%">
+<column alignment="center" valignment="top" width="40text%">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Permiso
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Fichero
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Directorio
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Lectura (
+\family typewriter
+r
+\family default
+)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Leer el contenido.
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Obtener la lista de entradas.
+ No es necesario para acceder a ellas si conocemos su nombre.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Escritura (
+\family typewriter
+w
+\family default
+)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Modificar el contenido.
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Crear, borrar o modificar entradas.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Ejecución (
+\family typewriter
+x
+\family default
+)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Ejecutar el fichero.
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Acceder al nodo-i de las entradas para acceder a subdirectorios o ficheros
+ u obtener los metadatos de estos.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Además de los permisos especiales:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+t
+\family default
+ (
+\emph on
+sticky bit
+\emph default
+): En un directorio, un usuario con permiso de lectura puede crear ficheros,
+ pero sólo puede borrar los que le pertenecen.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+u+s
+\family default
+ (suid): En un ejecutable, el UID cambia al del propietario al ejecutarlo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+g+s
+\family default
+ (sgid): En un ejecutable, el GID cambia al del grupo del fichero al ejecutarlo.
+ En un directorio, los ficheros creados dentro pertenecen al grupo del directori
+o, y no (ne
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ce
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+sa
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ria
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+men
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+te) al grupo activo de quien lo crea.
+\end_layout
+
+\begin_layout Standard
+Los permisos se representan en notación estándar como la cadena
+\family typewriter
+rwxrwxrwx
+\family default
+, con 3 grupos para usuario, grupo y otros, respectivamente, donde se sustituyen
+ los caracteres de los permisos que no están por
+\family typewriter
+-
+\family default
+.
+ La
+\family typewriter
+x
+\family default
+ de usuario o grupo, respectivamente, cambia a una
+\family typewriter
+s
+\family default
+ si está activo el suid o el sgid.
+ La
+\family typewriter
+x
+\family default
+ de otros cambia a una
+\family typewriter
+t
+\family default
+ si está activo el
+\emph on
+sticky bit
+\emph default
+.
+ También se puede representar en octal, considerando en esta cadena que
+ un permiso que se da es un 1 y uno que no es un 0, y convirtiendo el número
+ binario resultante a octal.
+\end_layout
+
+\begin_layout Standard
+A continuación vemos versiones reducidas y traducidas de las páginas
+\family typewriter
+man
+\family default
+ (del manual) de los principales comandos, que definen un subconjunto de
+ la funcionalidad de estos en la implementación de GNU.
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+bash
+\end_layout
+
+\begin_layout Standard
+Si bien veremos que el
+\emph on
+shell
+\emph default
+ permite crear variables, estas son variables locales, que son heredadas
+ por los hijos del
+\emph on
+shell
+\emph default
+ (si bien al modificarlas estos no se actualizan en el proceso padre ni
+ al revés) pero desaparecen en cuanto estos llaman a
+\family typewriter
+exec
+\family default
+.
+ No obstante, cada proceso en UNIX incluye un
+\series bold
+entorno
+\series default
+ con una serie de
+\series bold
+variables de entorno
+\series default
+, que se heredan de padres a hijos en
+\family typewriter
+fork
+\family default
+, no se borran al usar
+\family typewriter
+exec
+\family default
+ y los procesos pueden crear, modificar o borrar.
+ Por ejemplo,
+\family typewriter
+LOGNAME
+\family default
+ contiene el nombre del usuario que ha iniciado sesión.
+\end_layout
+
+\begin_layout Standard
+Los procesos disponen por defecto de tres descriptores de fichero:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Entrada estándar
+\series default
+ (0): Para recibir datos de entrada.
+ Normalmente es el teclado.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Salida estándar
+\series default
+ (1): Para mostrar resultados.
+ Normalmente la pantalla.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Salida estándar de error
+\series default
+ (2): Para mostrar mensajes de error.
+ Normalmente la pantalla.
+\end_layout
+
+\begin_layout Standard
+Estos se pueden redireccionar para almacenar datos de salida o recibir datos
+ de entrada de un fichero, o comunicar unos procesos con otros
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+bash
+\family default
+ —
+\emph on
+GNU Bourne-Again SHell
+\end_layout
+
+\begin_layout Subsubsection*
+SINOPSIS
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+bash
+\series default
+ [opciones] [comando | archivo]
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES
+\end_layout
+
+\begin_layout Standard
+Todas las opciones de un caracter documentadas en la descripción del comando
+ interno
+\family typewriter
+\series bold
+set
+\family default
+\series default
+ pueden usarse como opciones al invocar el
+\emph on
+shell
+\emph default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+ARGUMENTOS
+\end_layout
+
+\begin_layout Standard
+Si quedan argumentos tras las
+\family typewriter
+\emph on
+opciones
+\family default
+\emph default
+, el primero de estos se entiende como el nombre de un fichero con comandos
+
+\emph on
+shell
+\emph default
+, que guarda en el parámetro
+\family typewriter
+\series bold
+$0
+\family default
+\series default
+, y el resto de argumentos los guarda en los parámetros posicionales, en
+ orden creciente.
+ Entonces
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ lee y ejecuta los comandos de este archivo y termina su ejecución.
+ El estado de salida de
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ es el del último comando ejecutado en el
+\emph on
+script
+\emph default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+INVOCACIÓN
+\end_layout
+
+\begin_layout Standard
+Cuando
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ se invoca como
+\emph on
+shell
+\emph default
+ de inicio de sesión interactivo, ejecuta los comandos de
+\family typewriter
+~/.bash_profile
+\family default
+, si existe.
+ Cuando un
+\emph on
+shell
+\emph default
+ de inicio de sesión interactivo termina, ejecuta los comandos de
+\family typewriter
+~/.bash_logout
+\family default
+.
+ Cuando se inicia un
+\emph on
+shell
+\emph default
+ interactivo que no es de inicio de sesión,
+\family typewriter
+\series bold
+bash
+\family default
+\series default
+ ejecuta los comandos de
+\family typewriter
+~/.bashrc
+\family default
+, si existe.
+\end_layout
+
+\begin_layout Subsubsection*
+DEFINICIONES
+\end_layout
+
+\begin_layout Description
+Blanco Espacio o tabulador.
+\end_layout
+
+\begin_layout Description
+Palabra Secuencia de caracteres interpretada como una unidad por el
+\emph on
+shell
+\emph default
+.
+\end_layout
+
+\begin_layout Description
+Nombre Palabra con solo caracteres alfanuméricos y barras bajas que no comienza
+ por un número.
+\end_layout
+
+\begin_layout Description
+Metacaracter Caracter que, si no está entre comillas, separa palabras.
+ Uno de
+\family typewriter
+|
+\family default
+,
+\family typewriter
+&
+\family default
+,
+\family typewriter
+;
+\family default
+,
+\family typewriter
+(
+\family default
+,
+\family typewriter
+)
+\family default
+,
+\family typewriter
+<
+\family default
+,
+\family typewriter
+>
+\family default
+, espacio, tabulador y salto de línea.
+\end_layout
+
+\begin_layout Description
+Operador
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+control Palabra que realiza una función de control.
+ Una de
+\family typewriter
+||
+\family default
+,
+\family typewriter
+&
+\family default
+,
+\family typewriter
+&&
+\family default
+,
+\family typewriter
+;
+\family default
+,
+\family typewriter
+;;
+\family default
+,
+\family typewriter
+;&
+\family default
+,
+\family typewriter
+;;&
+\family default
+,
+\family typewriter
+(
+\family default
+,
+\family typewriter
+)
+\family default
+,
+\family typewriter
+|
+\family default
+,
+\family typewriter
+|&
+\family default
+ y salto de línea.
+\end_layout
+
+\begin_layout Subsubsection*
+GRAMÁTICA DEL SHELL
+\end_layout
+
+\begin_layout Paragraph*
+Comandos simples
+\end_layout
+
+\begin_layout Standard
+Secuencia opcional de asignaciones de variables seguida de una lista de
+ palabras separadas por blancos, seguida de redirecciones, y terminada por
+ un operador de control.
+ La primera palabra indica el comando a ejecutar, pasado como argumento
+ 0, y el resto son los argumentos a dicho comando.
+\end_layout
+
+\begin_layout Paragraph*
+Tuberías,
+\emph on
+pipelines
+\emph default
+ o
+\emph on
+pipes
+\end_layout
+
+\begin_layout Standard
+Formadas por uno o varios comandos simples separados por
+\family typewriter
+\series bold
+|
+\family default
+\series default
+, para conectar la salida estándar del de la izquierda con la entrada estándar
+ de la siguiente, o por
+\family typewriter
+|&
+\family default
+, abreviación para
+\family typewriter
+2>&1|
+\family default
+, y que se ejecutan en paralelo en sus respectivos procesos.
+\end_layout
+
+\begin_layout Paragraph*
+Listas
+\end_layout
+
+\begin_layout Standard
+Formadas por una o más tuberías separadas por
+\family typewriter
+;
+\family default
+,
+\family typewriter
+&
+\family default
+,
+\family typewriter
+&&
+\family default
+ o
+\family typewriter
+||
+\family default
+, y terminadas opcionalmente por
+\family typewriter
+;
+\family default
+,
+\family typewriter
+&
+\family default
+ o un salto de línea.
+
+\family typewriter
+\series bold
+&&
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+||
+\family default
+\series default
+ tienen igual precedencia, seguidos por
+\family typewriter
+\series bold
+;
+\family default
+\series default
+ y
+\family typewriter
+\series bold
+&
+\family default
+\series default
+, de igual precedencia.
+ Una secuencia de uno o más saltos de línea puede aparecer en una lista
+ en lugar de un
+\family typewriter
+;
+\family default
+ para delimitar comandos.
+\end_layout
+
+\begin_layout Standard
+Si un comando termina con
+\family typewriter
+\series bold
+&
+\family default
+\series default
+, se ejecuta en segundo plano en una
+\emph on
+subshell
+\emph default
+.
+ Comandos separados por
+\family typewriter
+\series bold
+;
+\family default
+\series default
+ se ejecutan secuencialmente.
+\end_layout
+
+\begin_layout Standard
+Las listas Y (AND) y O (OR) son secuencias de una o más tuberías separadas
+ por
+\family typewriter
+\series bold
+&&
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+||
+\family default
+\series default
+, respectivamente.
+ Una lista AND tiene forma
+\family typewriter
+\emph on
+comando1
+\emph default
+
+\series bold
+&&
+\series default
+
+\emph on
+comando2
+\family default
+\emph default
+, y en esta
+\family typewriter
+\emph on
+comando2
+\family default
+\emph default
+ se ejecuta si y sólo si
+\family typewriter
+\emph on
+comando1
+\family default
+\emph default
+ devuelve 0.
+ Una lista OR tiene forma
+\family typewriter
+\emph on
+comando1
+\emph default
+
+\series bold
+||
+\series default
+
+\emph on
+comando2
+\family default
+\emph default
+, y en esta
+\family typewriter
+\emph on
+comando2
+\family default
+\emph default
+ se ejecuta si y sólo si
+\family typewriter
+\emph on
+comando1
+\family default
+\emph default
+ devuelve un valor distinto de 0.
+ El estado de salida de las listas Y y O es el del último comando ejecutado
+ en la lista.
+\end_layout
+
+\begin_layout Subsubsection*
+Comandos compuestos
+\end_layout
+
+\begin_layout Standard
+En la mayoría de los siguientes casos los
+\family typewriter
+;
+\family default
+ pueden sustituirse por uno o más saltos de línea.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+(
+\emph on
+lista
+\emph default
+)
+\family default
+ La
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ se ejecuta en un
+\emph on
+subshell
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+{
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+}
+\family default
+ La
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ se ejecuta en el
+\emph on
+shell
+\emph default
+ actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+if
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+then
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+elif
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+then
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+else
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+fi
+\family default
+\series default
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+ Ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en
+\family typewriter
+\series bold
+if
+\family default
+\series default
+ y, si devuelve cero, ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en
+\family typewriter
+\series bold
+then
+\family default
+\series default
+.
+ De lo contrario evalúa la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ de cada
+\family typewriter
+\series bold
+elif
+\family default
+\series default
+ y, si devuelve cero, ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en el
+\family typewriter
+\series bold
+then
+\family default
+\series default
+ correspondiente y termina el comando, y si esto no ocurre, se ejecuta la
+
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ en
+\family typewriter
+\series bold
+else
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+case
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+palabra
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+in
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+[
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+|
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+)
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+;;
+\begin_inset space ~
+\end_inset
+
+]
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+esac
+\family default
+\series default
+ Busca el primer
+\family typewriter
+\emph on
+patrón
+\family default
+\emph default
+ que coincida (según
+\begin_inset Quotes fld
+\end_inset
+
+Expansión de nombres de archivo
+\begin_inset Quotes frd
+\end_inset
+
+ pero sin considerar
+\family typewriter
+/
+\family default
+ de manera especial) con el valor de la
+\family typewriter
+\emph on
+palabra
+\family default
+\emph default
+ una vez expandida y ejecuta la
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ correspondiente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+while
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista1
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+do
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista2
+\emph default
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+done
+\family default
+\series default
+ Ejecuta
+\family typewriter
+\emph on
+lista1
+\family default
+\emph default
+ y, si devuelve 0, ejecuta
+\family typewriter
+\emph on
+lista2
+\family default
+\emph default
+ y repite esta acción.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+for
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+in
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+palabra
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+...
+\begin_inset space ~
+\end_inset
+
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+do
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+;
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+done
+\family default
+\series default
+ Una vez expandida la lista de
+\family typewriter
+\emph on
+palabra
+\family default
+\emph default
+s, para cada una, ejecuta
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ con la variable
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ establecida a dicha palabra, en orden.
+\end_layout
+
+\begin_layout Paragraph*
+Definiciones de funciones
+\end_layout
+
+\begin_layout Standard
+Una función
+\emph on
+shell
+\emph default
+ es un objeto que se llama como un comando simple y ejecuta un comando compuesto
+ con un nuevo conjunto de parámetros posicionales.
+ Se declaran como:
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+function
+\series default
+
+\emph on
+nombre
+\emph default
+
+\emph on
+comando_compuesto
+\end_layout
+
+\begin_layout Subsubsection*
+PARÁMETROS
+\end_layout
+
+\begin_layout Standard
+Un parámetro es una entidad que almacena valores, y puede ser un nombre,
+ un número o uno de los caracteres en
+\begin_inset Quotes fld
+\end_inset
+
+Parámetros especiales
+\begin_inset Quotes frd
+\end_inset
+
+.
+ Si es un nombre se le llama
+\series bold
+variable
+\series default
+, y puede ser asignado mediante la sentencia
+\family typewriter
+nombre=[
+\emph on
+valor
+\emph default
+]
+\family default
+.
+ No puede haber espacios entre el
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+, el signo
+\family typewriter
+=
+\family default
+ y el
+\family typewriter
+\emph on
+valor
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Parámetros posicionales
+\end_layout
+
+\begin_layout Standard
+Se denotan por un número positivo distinto de 0 en decimal.
+\end_layout
+
+\begin_layout Paragraph*
+Parámetros especiales
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+@
+\family default
+\series default
+ Todos los parámetros posicionales, en orden creciente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+#
+\family default
+\series default
+ Número de parámetros posicionales, en decimal.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+?
+\family default
+\series default
+ Estado de salida de la tubería ejecutada más recientemente en primer plano.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+$
+\family default
+\series default
+ PID del
+\emph on
+shell
+\emph default
+ actual.
+ Si se ejecuta en un
+\emph on
+subshell
+\emph default
+ con
+\family typewriter
+()
+\family default
+, no devuelve el PID del
+\emph on
+subshell
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+!
+\family default
+\series default
+ PID del último trabajo puesto a ejecutar en segundo plano.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+0
+\family default
+\series default
+ Nombre con el que se ha invocado al
+\emph on
+script
+\emph default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Variables de shell
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+PWD
+\family default
+ El directorio actual, variable establecida por el
+\emph on
+shell
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+HOME
+\family default
+\series default
+ Directorio personal del usuario actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+PATH
+\family default
+\series default
+ Lista de directorios separados por
+\family typewriter
+:
+\family default
+ en los que el
+\emph on
+shell
+\emph default
+ busca comandos.
+\end_layout
+
+\begin_layout Subsubsection*
+EXPANSIÓN
+\end_layout
+
+\begin_layout Standard
+Una barra invertida (
+\family typewriter
+
+\backslash
+
+\family default
+) anula el significado especial del caracter siguiente.
+ Encerrar ca
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rac
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+te
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+res entre comillas simples (
+\family typewriter
+'
+\family default
+) preserva el valor literal de todos, incluso de
+\family typewriter
+
+\backslash
+
+\family default
+, anulando la expansión y la separación de palabras.
+ Encerrarlos entre comillas dobles (
+\family typewriter
+"
+\family default
+) anula toda expansión salvo la expansión de parámetros, la sustitución
+ de comandos y el significado de
+\family typewriter
+
+\backslash
+
+\family default
+ cuando el siguiente caracter es
+\family typewriter
+$
+\family default
+,
+\family typewriter
+`
+\family default
+,
+\family typewriter
+"
+\family default
+ o un salto de línea.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de llaves
+\end_layout
+
+\begin_layout Standard
+Una palabra que contenga
+\family typewriter
+{
+\emph on
+arg1
+\emph default
+,
+\emph on
+arg2
+\emph default
+,
+\family default
+...
+\family typewriter
+}
+\family default
+ es sustituida (recursivamente) por varias palabras resultado de sustituir
+ dicha expresión por cada una de las palabras entre llaves.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de tilde
+\end_layout
+
+\begin_layout Standard
+En una palabra no entrecomillada, si empieza por
+\family typewriter
+\series bold
+~
+\family default
+\series default
+ seguido de
+\family typewriter
+\series bold
+/
+\family default
+\series default
+, o si este es el único caracter de la palabra, este es sustituido por el
+ valor del parámetro
+\family typewriter
+\series bold
+HOME
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de parámetros
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+${
+\emph on
+parámetro
+\emph default
+}
+\family default
+ es sustituido por el valor del
+\family typewriter
+\emph on
+parámetro
+\family default
+\emph default
+.
+ Las llaves son opcionales y sirven para delimitar el parámetro (de lo contrario
+ se considera que es el nombre más largo formado por caracteres consecutivos
+ después del
+\family typewriter
+$
+\family default
+ o, si no hay ninguno, por el primer caracter).
+ Si el primer caracter del
+\family typewriter
+\emph on
+parámetro
+\family default
+\emph default
+ es
+\family typewriter
+\series bold
+!
+\family default
+\series default
+, el valor de la variable formada por el resto del
+\family typewriter
+\emph on
+parámetro
+\family default
+\emph default
+ se usa como nombre del parámetro y es expandido en lugar del propio parámetro.
+\end_layout
+
+\begin_layout Paragraph*
+Sustitución de comandos
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+$(
+\emph on
+comando
+\emph default
+)
+\family default
+ o
+\family typewriter
+`
+\emph on
+comando
+\emph default
+`
+\family default
+ ejecuta el
+\family typewriter
+\emph on
+comando
+\family default
+\emph default
+ en una
+\emph on
+subshell
+\emph default
+ y es sustituido por la salida del comando.
+ Sin comillas, el intérprete entiende los saltos de línea dentro de la salida
+ como separadores de palabras.
+\end_layout
+
+\begin_layout Subsubsection*
+Expansión aritmética
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+$((
+\emph on
+expresión
+\emph default
+))
+\family default
+ se sustituye por el resultado de evaluar la
+\family typewriter
+\emph on
+expresión
+\family default
+\emph default
+ aritmética (ver
+\begin_inset Quotes fld
+\end_inset
+
+Evaluación aritmética
+\begin_inset Quotes frd
+\end_inset
+
+).
+
+\end_layout
+
+\begin_layout Paragraph*
+División de palabras
+\end_layout
+
+\begin_layout Standard
+Se preservan los argumentos nulos
+\family typewriter
+""
+\family default
+ y
+\family typewriter
+''
+\family default
+, pero no los que resultan de una expansión de un parámetro sin valor.
+\end_layout
+
+\begin_layout Paragraph*
+Expansión de rutas de archivo
+\end_layout
+
+\begin_layout Standard
+Cuando una palabra contiene
+\family typewriter
+*
+\family default
+,
+\family typewriter
+?
+\family default
+ o
+\family typewriter
+[
+\family default
+, el intérprete lo sustituye por una lista de nombres de archivo que cumplan
+ el patrón indicado.
+ El caracter
+\family typewriter
+.
+
+\family default
+ al principio de un nombre o inmediatamente detrás de una
+\family typewriter
+/
+\family default
+ debe reconocerse explícitamente en el patrón.
+ En este, la mayoria de caracteres se reconocen a sí mismo,
+\family typewriter
+*
+\family default
+ reconoce cero o más caracteres cualesquiera,
+\family typewriter
+?
+\family default
+ un caracter cualquiera, y
+\family typewriter
+[
+\family default
+...
+\family typewriter
+]
+\family default
+ indica cualquiera de los caracteres entre corchetes, salvo porque si el
+ primer caracter es
+\family typewriter
+!
+\family default
+, el significado pasa a ser cualquier caracter no indicado tras el
+\family typewriter
+!
+\family default
+, pudiendo en ambos casos indicar rangos como
+\family typewriter
+\emph on
+a
+\emph default
+-
+\emph on
+z
+\family default
+\emph default
+,
+\end_layout
+
+\begin_layout Paragraph
+Eliminación de comillas
+\end_layout
+
+\begin_layout Standard
+Una vez realizadas todas las expansiones se eliminan todas las ocurrencias
+ no entrecomilladas de los caracteres
+\family typewriter
+
+\backslash
+
+\family default
+,
+\family typewriter
+'
+\family default
+ y
+\family typewriter
+"
+\family default
+ que no fueran generadas por dichas expansiones.
+\end_layout
+
+\begin_layout Subsubsection*
+REDIRECCIÓN
+\end_layout
+
+\begin_layout Standard
+Estos operadores pueden aparecer detrás de un comando para redirigir su
+ entrada y salida.
+\end_layout
+
+\begin_layout Paragraph*
+Redirección de entrada
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]<
+\emph on
+fichero
+\family default
+\emph default
+ para redirigir la entrada del descriptor
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ (o 0) desde
+\family typewriter
+\emph on
+fichero
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Redirección de salida
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]>
+\emph on
+fichero
+\family default
+\emph default
+ para redirigir la salida del descriptor
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ (o 1) al
+\family typewriter
+\emph on
+fichero
+\family default
+\emph default
+, truncándolo si ya existía.
+\end_layout
+
+\begin_layout Paragraph*
+Anexado de salida redirigida
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]>>
+\emph on
+fichero
+\family default
+\emph default
+, similar a lo anterior pero si el
+\family typewriter
+\emph on
+fichero
+\family default
+\emph default
+ existe añade los nuevos datos al final.
+\end_layout
+
+\begin_layout Paragraph*
+Duplicado de descriptores de archivo
+\end_layout
+
+\begin_layout Standard
+Con
+\family typewriter
+[
+\emph on
+n
+\emph default
+]>&
+\emph on
+m
+\family default
+\emph default
+ para duplicar la salida del descriptor
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ (o 1) al descriptor
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+ALIAS
+\end_layout
+
+\begin_layout Standard
+Permiten que una cadena sea sustituida por una palabra cuando se usa como
+ la primera de un comando simple.
+ Si esta primera palabra no está entre comillas, se comprueba para ver si
+ es un alias, en cuyo caso se reemplaza por el texto del alias.
+\end_layout
+
+\begin_layout Subsubsection*
+EVALUACIÓN ARITMÉTICA
+\end_layout
+
+\begin_layout Standard
+Las expresiones entre paréntesis (que no tienen que ir precedidos por
+\family typewriter
+
+\backslash
+
+\family default
+) se evalúan primero.
+ De mayor a menor prioridad:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+-
+\begin_inset space ~
+\end_inset
+
++
+\family default
+ Menos y más unarios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+**
+\family default
+ Exponencial.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+*
+\begin_inset space ~
+\end_inset
+
+/
+\begin_inset space ~
+\end_inset
+
+%
+\family default
+ Multiplicación, división y resto.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
++
+\begin_inset space ~
+\end_inset
+
+-
+\family default
+ Suma y resta.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+=
+\family default
+ Asignación (a la izquierda está el nombre de una variable).
+\end_layout
+
+\begin_layout Standard
+La expansión de parámetros se realiza antes de evaluar la expresión, y los
+ valores de parámetros se fuerzan a un entero.
+ Las constantes que empiezan por
+\family typewriter
+0
+\family default
+ se interpretan en octal, mientras que las que empiezan por
+\family typewriter
+0x
+\family default
+ o
+\family typewriter
+0X
+\family default
+ se interpretan como hexadecimal.
+ No debe haber espacio entre operandos y operadores.
+\end_layout
+
+\begin_layout Subsubsection*
+EJECUCIÓN DE COMANDOS
+\end_layout
+
+\begin_layout Standard
+Si el nombre del comando no contiene
+\family typewriter
+/
+\family default
+, si es el nombre de una función la ejecuta, o si es el nombre de un comando
+ interno, y de lo contrario busca en los directorios en
+\family typewriter
+\series bold
+PATH
+\family default
+\series default
+ uno que contenga un ejecutable con el nombre del comando.
+ Si contiene
+\family typewriter
+/
+\family default
+, lo interpreta como una ruta a un ejecutable.
+ La ejecución de un fichero ejecutable se realiza mediante un
+\family typewriter
+fork
+\family default
+ tras el cual el proceso hijo hace un
+\family typewriter
+exec
+\family default
+ y el padre, salvo que el proceso se deba ejecutar en segundo plano, espera
+ a que termine el hijo con
+\family typewriter
+wait
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+PROMPTS
+\end_layout
+
+\begin_layout Standard
+El intérprete suele mostrar un prompt como
+\family typewriter
+[
+\emph on
+usuario
+\emph default
+@
+\emph on
+nombremáquina
+\emph default
+
+\emph on
+directorio
+\emph default
+] $
+\family default
+, donde
+\family typewriter
+\emph on
+usuario
+\family default
+\emph default
+ es el nombre del usuario conectado al sistema,
+\family typewriter
+\emph on
+nombremáquina
+\family default
+\emph default
+ es el nombre de la máquina y
+\family typewriter
+\emph on
+directorio
+\family default
+\emph default
+ es el nombre del directorio actual, o
+\family typewriter
+~
+\family default
+ para el directorio personal del usuario.
+\end_layout
+
+\begin_layout Subsubsection*
+COMANDOS INTERNOS DEL SHELL
+\end_layout
+
+\begin_layout Standard
+Muchos de estos también son externos pero han sido incorporados al código
+ de
+\family typewriter
+bash
+\family default
+ para acelerar su ejecución.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+alias
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+nombre
+\emph default
+=
+\emph on
+valor
+\family default
+\emph default
+ Establece un alias con el
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+valor
+\family default
+\emph default
+ dados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+break
+\family default
+\series default
+ Sale de un bucle
+\family typewriter
+\series bold
+for
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+while
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+cd
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+dir
+\emph default
+]
+\series bold
+
+\family default
+\series default
+Cambia el directorio actual al último en que habíamos estado si
+\family typewriter
+\emph on
+dir
+\family default
+\emph default
+ es
+\family typewriter
+-
+\family default
+, al directorio
+\family typewriter
+\emph on
+dir
+\family default
+\emph default
+ en caso contrario, o al directorio personal si
+\family typewriter
+\emph on
+dir
+\family default
+\emph default
+ no se especifica.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+continue
+\family default
+\series default
+ Continúa un bucle
+\family typewriter
+\series bold
+for
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+while
+\family default
+\series default
+ por la siguiente iteración.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+echo
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+opción
+\emph default
+]...
+ [
+\emph on
+arg
+\emph default
+]...
+
+\family default
+ Imprime los
+\family typewriter
+\emph on
+arg
+\family default
+\emph default
+umentos por la salida estándar, separados por espacio y seguidos de un salto
+ de línea.
+ Con
+\family typewriter
+\series bold
+-n
+\family default
+\series default
+, no se imprime el salto de línea al final.
+ Con
+\family typewriter
+\series bold
+-e
+\family default
+\series default
+, interpreta las secuencias:
+\end_layout
+
+\begin_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+b
+\family default
+\series default
+ Retrocede una posición.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+f
+\family default
+\series default
+ Alimentación de página.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+n
+\family default
+\series default
+ Salto de línea.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+
+\backslash
+t
+\family default
+\series default
+ Tabulador horizontal.
+\end_layout
+
+\end_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+exit
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\family default
+\emph default
+ Provoca que el
+\emph on
+shell
+\emph default
+ termine su ejecución con un estado de salida de
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+export
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+nombre
+\emph default
+[=
+\emph on
+palabra
+\emph default
+]]
+\family default
+ El
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ dado se convierte en variable de entorno.
+ Si se proporciona una
+\family typewriter
+\emph on
+palabra
+\family default
+\emph default
+, se asigna como valor a la variable.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+help
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+comando
+\family default
+\emph default
+ Muestra ayuda detallada de un
+\family typewriter
+\emph on
+comando
+\family default
+\emph default
+ interno.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+let
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\emph default
+...
+
+\family default
+ Evalúa una lista de
+\family typewriter
+\emph on
+expr
+\family default
+\emph default
+esiones aritméticas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+printf
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+formato
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+arg
+\emph default
+]...
+
+\family default
+ Imprime los
+\family typewriter
+\emph on
+arg
+\family default
+\emph default
+umentos por la salida estándar según un
+\family typewriter
+\emph on
+formato
+\family default
+\emph default
+, al estilo de C.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+pwd
+\family default
+\series default
+ Imprime la ruta absoluta del directorio actual.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+read
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+nombre
+\emph default
+]
+\family default
+ Lee una línea de la entrada estándar y la asigna como valor de
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+set
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[
+\emph on
+opción
+\emph default
+]...
+
+\family default
+ Sin opciones, imprime el nombre y el valor de todas las variables del
+\emph on
+shell
+\emph default
+ (incluyendo las de entorno).
+ Opciones:
+\end_layout
+
+\begin_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-u
+\family default
+\series default
+ Trata las variables no asignadas como errores en la expansión, mostrando
+ un mensaje de error.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Muestra las líneas de entrada de órdenes conforme se leen.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-x
+\family default
+\series default
+ Tras expandir cada comando simple,
+\family typewriter
+\series bold
+for
+\family default
+\series default
+ o
+\family typewriter
+\series bold
+case
+\family default
+\series default
+, muestra el comando y sus argumentos expandidos.
+\end_layout
+
+\end_deeper
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+shift
+\family default
+\series default
+ Los parámetros posicionales desde el 2 cambian su número a uno menos, y
+ el re
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pre
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+sen
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ta
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+do por el número
+\family typewriter
+$#
+\family default
+ se desestablece.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+test
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\family default
+\emph default
+ Funciona como la orden externa
+\family typewriter
+test
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+[
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+]
+\family default
+\series default
+ Ídem.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+env
+\end_layout
+
+\begin_layout Standard
+Imprime el nombre y el valor de las variables de entorno.
+\end_layout
+
+\begin_layout Section
+Ficheros y directorios
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+ls [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Lista información sobre los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s (por defecto, el directorio actual).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Lista en formato largo.
+ Cada línea se corresponde con una entrada.
+ El primer ca
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rac
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ter es
+\family typewriter
+d
+\family default
+ para un directorio,
+\family typewriter
+-
+\family default
+ para un fichero regular,
+\family typewriter
+l
+\family default
+ para un enlace simbólico,
+\family typewriter
+b
+\family default
+ para un fichero especial de bloques, etc.
+ A continuación, los permisos en notación estándar, el número de enlaces
+ físicos que tiene la entrada, el usuario y el grupo al que pertenece, el
+ tamaño del fichero en bytes, su fecha y hora de última modificación y finalment
+e su nombre.
+ Si no se especifica se usa el formato corto, que solo muestra el nombre.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-R
+\family default
+\series default
+ Lista también los subdirectorios de forma recursiva.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ No omite los ficheros y directorios
+\begin_inset Quotes fld
+\end_inset
+
+ocultos
+\begin_inset Quotes frd
+\end_inset
+
+ (los que empiezan por
+\family typewriter
+.
+\family default
+).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-S
+\family default
+\series default
+ Ordena por tamaño, empezando por el fichero más grande.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\family default
+\series default
+ Ordena por tiempo de modificación, empezando por la entrada modificada
+ más recientemente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Invierte el orden del listado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\family default
+\series default
+ Lista los directorios que se pasan como parámetros y no su contenido.
+\end_layout
+
+\begin_layout Standard
+Si hay dos opciones contradictorias, predomina la última.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+touch [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el tiempo de modificación de cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ al actual.
+ Un
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ que no existe es creado vacío.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cp
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+cp
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+-T
+\emph default
+]
+\emph on
+ORIGEN DESTINO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+cp
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+ORIGEN
+\emph default
+...
+
+\emph on
+DIRECTORIO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+cp
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+-t DIRECTORIO ORIGEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Copia
+\family typewriter
+\emph on
+ORIGEN
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+DESTINO
+\family default
+\emph default
+, o múltiples
+\family typewriter
+\emph on
+ORÍGEN
+\family default
+\emph default
+es a un
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+ existente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Copia directorios recursivamente.
+ Usado para copiar directorios.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Pide confirmación antes de sobrescribir.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ Equivale a
+\family typewriter
+-dR --preserve=all
+\family default
+, que conserva todos los atributos posibles de los
+\family typewriter
+\emph on
+ORÍGEN
+\family default
+\emph default
+es.
+ Sin esto, los elementos copiados tienen como usuario y grupo a quien hace
+ la copia, como tiempos asociados los de cuando la copia termina, los permisos
+ dependen de la configuración del sistema y usuario, etc.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mv
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mv
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+-T
+\emph default
+]
+\emph on
+ORIGEN DESTINO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mv
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+ORIGEN
+\emph default
+...
+
+\emph on
+DIRECTORIO
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+mv
+\series default
+ [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+-t DIRECTORIO ORIGEN
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el nombre de
+\family typewriter
+\emph on
+ORIGEN
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+DESTINO
+\family default
+\emph default
+, o mueve
+\family typewriter
+\emph on
+ORÍGEN
+\family default
+\emph default
+es a
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Pide confirmación antes de sobrescribir.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+rm [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Borra (desenlaza) los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Pide confirmación antes de borrar cada entrada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Elimina directorios y sus contenidos recursivamente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\family default
+\series default
+ Nunca pide confirmación.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mkdir [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DIRECTORIO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Crea los
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+s, si no existen ya.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+rmdir [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+DIRECTORIO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Elimina los
+\family typewriter
+\emph on
+DIRECTORIO
+\family default
+\emph default
+s, si están vacíos.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cat [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Concatena
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s a la salida estándar.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+less [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra el contenido de los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s (o de la entrada estándar) página a página, pudiendo avanzar y retroceder.
+\end_layout
+
+\begin_layout Subsubsection*
+COMANDOS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+/
+\emph on
+patrón
+\family default
+\emph default
+ Busca hacia delante una línea que contenga el
+\family typewriter
+\emph on
+patrón
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+chown [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+PROPIETARIO
+\emph default
+][
+\emph on
+:
+\emph default
+[
+\emph on
+GRUPO
+\emph default
+]]
+\emph on
+FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el usuario y/o grupo de cada fichero dado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-R
+\family default
+\series default
+ Opera en ficheros y directorios recursivamente.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+chgrp [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+GRUPO FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Cambia el grupo de cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+GRUPO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+chmod [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+MODO FICHERO
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Establece los permisos de los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s a los indicados en
+\family typewriter
+\emph on
+MODO
+\family default
+\emph default
+, que puede ser una representación simbólica de los cambios o un número
+ en octal.
+\end_layout
+
+\begin_layout Standard
+La representación simbólica tiene formato
+\family typewriter
+[
+\series bold
+ugo
+\series default
+...][[
+\series bold
+-+
+\series default
+][
+\emph on
+perms
+\emph default
+...]...]
+\family default
+, donde
+\family typewriter
+\emph on
+perms
+\family default
+\emph default
+ es 0 o más letras de
+\family typewriter
+\series bold
+rwxXst
+\family default
+\series default
+ o una sola letra del conjunto
+\family typewriter
+\series bold
+ugo
+\family default
+\series default
+.
+ La combinación de las letras
+\family typewriter
+\series bold
+ugo
+\family default
+\series default
+ controla qué permisos cambian: los de usuario (
+\family typewriter
+\series bold
+u
+\family default
+\series default
+), grupo (
+\family typewriter
+\series bold
+g
+\family default
+\series default
+) u otros (
+\family typewriter
+\series bold
+o
+\family default
+\series default
+).
+ El operador
+\family typewriter
+\series bold
++
+\family default
+\series default
+ causa que los bits seleccionados se añadan a los existentes, y
+\family typewriter
+\series bold
+-
+\family default
+\series default
+ causa que se eliminen.
+ Las letras
+\family typewriter
+\series bold
+rwxXst
+\family default
+\series default
+ seleccionan los bits de modo.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+find [
+\emph on
+punto-de-inicio
+\emph default
+]...
+ [expresión]
+\end_layout
+
+\begin_layout Standard
+Busca en los árboles de directorios a partir de cada
+\family typewriter
+punto-de-inicio
+\family default
+ dado (por defecto
+\family typewriter
+.
+\family default
+) evaluando la
+\family typewriter
+expresión
+\family default
+, de izquierda a derecha, de acuerdo a las reglas de precedencia, hasta
+ que se conoce el resultado.
+\end_layout
+
+\begin_layout Subsubsection*
+EXPRESIÓN
+\end_layout
+
+\begin_layout Standard
+Está compuesta por una secuencia de:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Tests Devuelven verdadero o falso normalmente según alguna propiedad del
+ fichero.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Acciones Tienen efectos secundarios y devuelven verdadero o falso normalmente
+ según si tienen éxito o no.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Opciones
+\begin_inset space ~
+\end_inset
+
+globales Afectan a la operación de los tests y acciones en cualquier parte
+ de la línea de comandos.
+ Siempre devuelven verdadero.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+Operadores Unen los otros elementos dentro de la expresión.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES GLOBALES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-depth
+\family default
+\series default
+ Procesa el contenido de cada directorio antes del directorio en sí.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-maxdepth
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+N
+\family default
+\emph default
+ Desciende un máximo de
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ (entero no negativo) niveles.
+ Así, si
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ es 0, solo se procesan los
+\family typewriter
+punto
+\family default
+s
+\family typewriter
+-de-inicio
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+TESTS
+\end_layout
+
+\begin_layout Standard
+Los argumentos numéricos (indicados como
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+) pueden ser especificados como
+\family typewriter
+\emph on
++n
+\family default
+\emph default
+ para mayor que
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+,
+\family typewriter
+\emph on
+-n
+\family default
+\emph default
+ para menor que
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ o
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ para exactamente
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-empty
+\family default
+\series default
+ El fichero o directorio es vacío.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-name
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\emph default
+
+\family default
+El nombre coincide con el patrón, el cual reconoce
+\family typewriter
+*
+\family default
+,
+\family typewriter
+?
+\family default
+ y
+\family typewriter
+[
+\family default
+ igual que
+\family typewriter
+bash
+\family default
+ pero no excluye del reconocimiento un
+\family typewriter
+.
+
+\family default
+ al comienzo del nombre de archivo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-iname
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+patrón
+\family default
+\emph default
+ Como
+\family typewriter
+-name
+\family default
+, pero sin distinguir mayúsculas de minúsculas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-size
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+[cwbkMG]
+\family default
+El tamaño del fichero es, redondeando al alza a la unidad especificada,
+
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+ La unidad puede ser:
+\family typewriter
+c
+\family default
+ para bytes,
+\family typewriter
+w
+\family default
+ para palabras de 2 bytes,
+\family typewriter
+b
+\family default
+ para bloques de 512 bytes (por defecto),
+\family typewriter
+k
+\family default
+ para kiBs,
+\family typewriter
+M
+\family default
+ para MiBs y
+\family typewriter
+G
+\family default
+ para GiBs.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-mtime
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+
+\family default
+El archivo fue modificado por última vez hace
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ días, redondeando a la baja.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-atime
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+
+\family default
+Igual pero para el último acceso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-ctime
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\emph default
+
+\family default
+Igual pero para el último cambio de estado (ubicación y metadatos).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-newer
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+fichero
+\emph default
+
+\family default
+El fichero ha sido modificado más recientemente que el fichero dado.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-type
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+c
+\emph default
+
+\family default
+El fichero es de tipo
+\family typewriter
+\emph on
+c
+\family default
+\emph default
+, que es
+\family typewriter
+d
+\family default
+ para directorios,
+\family typewriter
+f
+\family default
+ para ficheros ordinarios,
+\family typewriter
+l
+\family default
+ para enlaces simbólicos, etc.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-perm
+\series default
+
+\begin_inset space ~
+\end_inset
+
+[-|/]
+\emph on
+mode
+\emph default
+
+\family default
+El fichero tiene los permisos indicados (si no hay un prefijo), al menos
+ estos permisos (
+\family typewriter
+-
+\family default
+) y alguno de estos (
+\family typewriter
+/
+\family default
+).
+\end_layout
+
+\begin_layout Subsubsection*
+ACCIONES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-print
+\family default
+\series default
+ Imprime la ruta de archivo completa seguida de un salto de línea y devuelve
+ verdadero.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-exec
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+comando
+\emph default
+
+\family default
+Ejecuta un comando, formado por todos los argumentos que siguen a
+\family typewriter
+-exec
+\family default
+ hasta encontrar un argumento
+\begin_inset Quotes fld
+\end_inset
+
+
+\family typewriter
+;
+\family default
+
+\begin_inset Quotes frd
+\end_inset
+
+ (exclusive), sustituyendo en este la cadena
+\family typewriter
+{}
+\family default
+ por el nombre del archivo.
+ Devuelve verdadero si y sólo si el comando devuelve 0.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-ok
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+comando
+\emph default
+
+\family default
+Como
+\family typewriter
+-exec
+\family default
+ pero pregunta primero al usuario si desea ejecutar el comando, y si no
+ acepta, devuelve falso.
+ La entrada de dicho comando se redirige desde
+\family typewriter
+/dev/null
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-printf
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+formato
+\family default
+\emph default
+ Imprime
+\family typewriter
+\emph on
+formato
+\family default
+\emph default
+ interpretando secuencias de escape con
+\family typewriter
+
+\backslash
+
+\family default
+ como en C y directivas
+\family typewriter
+%
+\family default
+:
+\family typewriter
+%p
+\family default
+indica el nombre del fichero,
+\family typewriter
+ %s
+\family default
+ su tamaño,
+\family typewriter
+%u
+\family default
+ el nombre de su pro
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+pie
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ta
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rio, etc.
+\end_layout
+
+\begin_layout Subsubsection*
+OPERADORES
+\end_layout
+
+\begin_layout Standard
+De mayor a menor prioridad:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+(
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+)
+\family default
+ Fuerza prioridad.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+!
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr
+\family default
+\emph default
+ Cierto si
+\family typewriter
+\emph on
+expr
+\family default
+\emph default
+ es falso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+expr1
+\begin_inset space ~
+\end_inset
+
+expr2
+\family default
+\emph default
+ Conjunción.
+
+\family typewriter
+\emph on
+expr2
+\family default
+\emph default
+ no es evaluada si
+\family typewriter
+\emph on
+expr1
+\family default
+\emph default
+ devuelve falso.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+expr1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+-a
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr2
+\family default
+\emph default
+ Igual que
+\family typewriter
+\emph on
+expr1 expr2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+expr1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+-o
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+expr2
+\family default
+\emph default
+ Disyunción.
+
+\family typewriter
+\emph on
+expr2
+\family default
+\emph default
+ no es evaluada si
+\family typewriter
+\emph on
+expr1
+\family default
+\emph default
+ devuelve verdadero.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+mktemp
+\end_layout
+
+\begin_layout Standard
+Crea un fichero temporal de forma segura e imprime su nombre.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+dd [
+\emph on
+OPERANDO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Copia un fichero, convirtiendo y formateando según los operandos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+bs=
+\series default
+\emph on
+BYTES
+\family default
+\emph default
+ Lee y escribe hasta
+\family typewriter
+\emph on
+BYTES
+\family default
+\emph default
+ bytes a la vez.
+
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+count
+\series default
+=
+\emph on
+N
+\family default
+\emph default
+ Copia sólo
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ bloques de la entrada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+if=
+\series default
+\emph on
+FICHERO
+\family default
+\emph default
+ Lee del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+of=
+\series default
+\emph on
+FICHERO
+\family default
+\emph default
+ Escribe al
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\emph on
+BYTES
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+N
+\family default
+\emph default
+ pueden ir seguidos de sufijos multiplicativos:
+\begin_inset Formula $\mathtt{M}=1024\cdot1024$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+/dev/zero
+\end_layout
+
+\begin_layout Standard
+Las lecturas desde este fichero especial siempre devuelven bytes que contienen
+ 0.
+\end_layout
+
+\begin_layout Section
+Ayuda
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+apropos [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+palabra-clave
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Busca la
+\family typewriter
+\emph on
+palabra-clave
+\family default
+\emph default
+ en las descripciones de las páginas del manual.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+whatis [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+nombre
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+Busca entre los nombres de las páginas del manual aquellos que se asemejen
+ al
+\family typewriter
+\emph on
+nombre
+\family default
+\emph default
+ dado.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+man
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+man
+\series default
+ [
+\series bold
+-a
+\series default
+] [
+\series bold
+-S
+\series default
+
+\emph on
+lista
+\emph default
+] [[
+\emph on
+sección
+\emph default
+]
+\emph on
+página
+\emph default
+...
+ ]...
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+man -k
+\series default
+
+\emph on
+palabra-clave
+\emph default
+...
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+man -f
+\series default
+
+\emph on
+página
+\emph default
+...
+\end_layout
+
+\begin_layout Subsubsection*
+DESCRIPCIÓN
+\end_layout
+
+\begin_layout Standard
+Muestra la
+\family typewriter
+\emph on
+página
+\family default
+\emph default
+ indicada en la
+\family typewriter
+\emph on
+sección
+\family default
+\emph default
+ indicada (si no se especifica, va buscándola en las secciones en un cierto
+ orden) dentro del manual del sistema.
+ Las
+\family typewriter
+\emph on
+página
+\family default
+\emph default
+s están ordenadas en
+\family typewriter
+\emph on
+seccion
+\family default
+\emph default
+es para programación, administración del sistema, funciones de biblioteca
+ de C, ficheros de configuración, etc.
+ El número de
+\family typewriter
+\emph on
+sección
+\family default
+\emph default
+ aparece, junto con el nombre de la
+\family typewriter
+\emph on
+página
+\family default
+\emph default
+, en la primera línea de esta.
+\end_layout
+
+\begin_layout Subsubsection*
+OPCIONES
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-a
+\family default
+\series default
+ No termina la búsqueda en la primera página, sino que muestra todas las
+ coincidentes.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-S
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+lista
+\family default
+\emph default
+
+\family typewriter
+\emph on
+lista
+\family default
+\emph default
+ es una lista de números de sección separadas por
+\family typewriter
+:
+\family default
+ que sobrescribe el orden en que se buscan las páginas (puede especificarse
+ una sola sección).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-k
+\family default
+\series default
+ Equivale a
+\family typewriter
+apropos
+\family default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\family default
+\series default
+ Equivale a
+\family typewriter
+whatis
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection*
+FICHEROS
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+/etc/man.db.conf
+\family default
+ Configuración de
+\family typewriter
+man
+\family default
+.
+\end_layout
+
+\begin_layout Section
+Filtros
+\end_layout
+
+\begin_layout Standard
+Son programas que reciben información por la entrada estándar, la procesan
+ y muestran el resultado por su salida estándar.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+grep [
+\emph on
+OPCIÓN
+\emph default
+]...
+ PATRÓN [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Busca un
+\family typewriter
+\emph on
+PATRÓN
+\family default
+\emph default
+ en cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o en la entrada estándar).
+\end_layout
+
+\begin_layout Paragraph*
+Control de reconocimiento
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ Ignora diferencias entre mayúsculas y minúsculas
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-v
+\family default
+\series default
+ Invierte el sentido del reconocimiento, seleccionando sólo las líneas que
+ no coinciden.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-w
+\family default
+\series default
+ Selecciona solo las líneas que contienen el patrón como palabra completa,
+ esto es, al principio de la línea o precedido por un caracter no alfabético,
+ y al final de la línea o seguido de un caracter no alfabético.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-x
+\family default
+\series default
+ Selecciona sólo las líneas que coinciden completamente con el patrón.
+\end_layout
+
+\begin_layout Subsubsection*
+Control de salida general
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ No muestra las líneas coincidentes sino su número.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ No muestras las líneas coincidentes sino los archivos en los que hay alguna.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-o
+\family default
+\series default
+ Muestra solo las partes coincidentes no vacías de cada línea, con cada
+ parte en una línea separada.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-q
+\family default
+\series default
+ No imprime nada a la salida estándar.
+\end_layout
+
+\begin_layout Paragraph
+Control de los prefijos de línea en la salida
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-h
+\family default
+\series default
+ Suprime el nombre de archivo como prefijo de cada línea.
+ Esto es por defecto cuando sólo hay un
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o sólo la entrada estándar).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\family default
+\series default
+ Prefija cada línea con su número dentro del fichero, siendo la primera
+ la 1.
+\end_layout
+
+\begin_layout Subsubsection*
+EXPRESIONES REGULARES
+\end_layout
+
+\begin_layout Standard
+Una expresión regular es un patrón que describe un conjunto de cadenas de
+ caracteres.
+ La mayoría de caracteres son expresiones que se reconocen a sí mismas.
+ Un caracter con significado especial debe ser precedido por
+\family typewriter
+
+\backslash
+
+\family default
+ para que tenga este comportamiento.
+ El
+\family typewriter
+.
+
+\family default
+ reconoce un único caracter cualquiera.
+\end_layout
+
+\begin_layout Paragraph*
+Clases de caracteres y expresiones entre corchetes
+\end_layout
+
+\begin_layout Standard
+La sintaxis
+\family typewriter
+[
+\family default
+...
+\family typewriter
+]
+\family default
+ indica un caracter cualquiera entre los corchetes, salvo si el primero
+ es ^, que entonces es un caracter cualquiera que no este entre dicho
+\family typewriter
+^
+\family default
+ y el
+\family typewriter
+]
+\family default
+, exclusive.
+ En ambos casos se pueden usar rangos como
+\family typewriter
+\emph on
+a
+\emph default
+-
+\emph on
+z
+\family default
+\emph default
+, que indican todos los caracteres entre
+\family typewriter
+\emph on
+a
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+z
+\family default
+\emph default
+, inclusive.
+\end_layout
+
+\begin_layout Paragraph*
+Posicionamiento
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+^
+\family default
+ y
+\family typewriter
+$
+\family default
+ se refieren respectivamente a una cadena vacía al principio o al final
+ de una línea.
+\end_layout
+
+\begin_layout Paragraph
+Repetición
+\end_layout
+
+\begin_layout Standard
+Una expresión puede ir seguida por
+\family typewriter
+*
+\family default
+ para indicar que esta se puede repetir cero o más veces, por
+\family typewriter
+
+\backslash
++
+\family default
+ indicando que se puede repetir una o más veces o por
+\family typewriter
+
+\backslash
+{
+\emph on
+n
+\emph default
+,
+\emph on
+m
+\emph default
+}
+\family default
+ para indicar que se puede repetir entre
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ y
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+ veces, inclusive.
+\end_layout
+
+\begin_layout Subsubsection*
+Concatenación
+\end_layout
+
+\begin_layout Standard
+Dos expresiones regulares se pueden concatenar para formar una expresión
+ que reconoce a cualquier cadena formada por la concatenación de dos subcadenas
+ reconocidas respectivamente por estas subexpresiones.
+\end_layout
+
+\begin_layout Subsubsection*
+ESTADO DE SALIDA
+\end_layout
+
+\begin_layout Standard
+0 si alguna línea coincide, 1 si no coincide, y 2 si hay un error y no se
+ ha especificado
+\family typewriter
+-q
+\family default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+sort [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Concatena los
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+s (o lee de la entrada estándar) e imprime por la salida estándar el resultado
+ de ordenarlos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\family default
+\series default
+ Ordena numéricamente (por defecto lo hace alfabéticamente), incluyendo
+ números negativos y con decimales, considerando que un número termina cuando
+ aparece el primer caracter no numérico, incluyendo espacios.
+ El separador decimal es
+\family typewriter
+.
+
+\family default
+ en inglés y
+\family typewriter
+,
+\family default
+ en español.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\family default
+\series default
+ Invierte el resultado de las comparaciones.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-k
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+KEYDEF
+\family default
+\emph default
+ Ordena según una clave dada por
+\family typewriter
+\emph on
+KEYDEF
+\family default
+\emph default
+.
+ Se puede especificar varias veces para indicar una lista de claves de las
+ que cada una se comprueba en caso de empate en la anterior.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-t
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+SEP
+\family default
+\emph default
+ Usa el caracter
+\family typewriter
+\emph on
+SEP
+\family default
+\emph default
+ como separador de campos.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\emph on
+KEYDEF
+\family default
+\emph default
+ tiene formato
+\family typewriter
+F[.C][OPTS][,F[.C][OPTS]]
+\family default
+ para las posiciones de inicio y final, donde
+\family typewriter
+F
+\family default
+ es un número de campo y
+\family typewriter
+C
+\family default
+ una posición de caracter en el campo, ambos empezando por 1, y la posición
+ de final por defecto es el final de línea.
+ Si no se ha especificado
+\family typewriter
+-t
+\family default
+, los caracteres de un campo se cuentan desde el principio del espacio en
+ blanco precedente, y
+\family typewriter
+OPTS
+\family default
+ es una o más
+\family typewriter
+\emph on
+OPCION
+\family default
+\emph default
+es de una letra que sobrescriben las opciones de orden global para dicha
+ clave.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+tr [
+\emph on
+OPCIÓN
+\emph default
+]...
+
+\emph on
+CONJUNTO1
+\emph default
+ [
+\emph on
+CONJUNTO2
+\emph default
+]
+\end_layout
+
+\begin_layout Standard
+Sustituye, elimina repeticiones o elimina caracteres de la entrada estándar,
+ escribiendo a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ Usa el complemento de
+\family typewriter
+\emph on
+CONJUNTO1
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\family default
+\series default
+ Elimina caracteres de
+\family typewriter
+\emph on
+CONJUNTO1
+\family default
+\emph default
+, no sustituye.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\family default
+\series default
+ Reemplaza secuencias de caracteres que aparecen en el último
+\family typewriter
+\emph on
+CONJUNTO
+\family default
+\emph default
+ dado por una sola ocurrencia.
+\end_layout
+
+\begin_layout Standard
+Los
+\family typewriter
+\emph on
+CONJUNTO
+\family default
+\emph default
+s se especifican como secuencias de caracteres.
+ La mayoría se representan a sí mismos.
+ Secuencias interpretadas:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+
+\backslash
+n
+\family default
+ Salto de línea.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+
+\backslash
+t
+\family default
+ Tabulador.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+a
+\emph default
+-
+\emph on
+z
+\family default
+\emph default
+ Todos los caracteres desde
+\family typewriter
+\emph on
+a
+\family default
+\emph default
+ hasta
+\family typewriter
+\emph on
+z
+\family default
+\emph default
+ en orden ascendente.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[
+\emph on
+c
+\emph default
+*
+\emph on
+n
+\emph default
+]
+\emph on
+n
+\family default
+\emph default
+ copias de
+\family typewriter
+\emph on
+c
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[:alnum:]
+\family default
+ Todas las letras y dígitos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[:blank:]
+\family default
+ Todos los caracteres de espaciado horizontal.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+[:digit:]
+\family default
+ Todos los dígitos.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+cut
+\emph on
+OPCIÓN
+\emph default
+...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime las partes seleccionadas de líneas de cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+, o de la entrada estándar, a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\series default
+\emph on
+
+\begin_inset space ~
+\end_inset
+
+LISTA
+\family default
+\emph default
+ Selecciona solo estos caracteres.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+DELIM
+\family default
+\emph default
+ Usa
+\family typewriter
+\emph on
+DELIM
+\family default
+\emph default
+ en vez de el tabulador como delimitador de campos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\series default
+\emph on
+
+\begin_inset space ~
+\end_inset
+
+LISTA
+\family default
+\emph default
+ Selecciona sólo estos campos; imprimiendo también por defecto cualquier
+ línea que no contenga delimitador.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+--complement
+\family default
+\series default
+ Imprime el complemento de los caracteres o campos seleccionados.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\family default
+\series default
+ No imprime líneas que no contengan delimitadores.
+\end_layout
+
+\begin_layout Standard
+Usar
+\family typewriter
+-c
+\family default
+ o
+\family typewriter
+-f
+\family default
+, pero no ambos.
+ Cada
+\family typewriter
+\emph on
+LISTA
+\family default
+\emph default
+ contiene un rango, o varios separados por comas.
+ Cada rango puede ser:
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ Caracter o campo
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+-ésimo, contando desde 1.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+-
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+ Del caracter o campo
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+-ésimo al
+\family typewriter
+\emph on
+m
+\family default
+\emph default
+-ésimo, inclusive.
+\end_layout
+
+\begin_layout Standard
+Nótese que los campos vacíos también cuentan, por lo que a veces es necesario
+ usar
+\family typewriter
+tr
+\family default
+ para eliminar repeticiones de
+\family typewriter
+\emph on
+DELIM
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+uniq [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+ENTRADA
+\emph default
+ [
+\emph on
+SALIDA
+\emph default
+]]
+\end_layout
+
+\begin_layout Standard
+Filtra lineas adyacentes coincidentes de
+\family typewriter
+\emph on
+ENTRADA
+\family default
+\emph default
+ (o la entrada estándar), escribiendo a
+\family typewriter
+\emph on
+SALIDA
+\family default
+\emph default
+ (o la salida estándar).
+ Sin opciones, las líneas coincidentes (iguales) se eliminan a partir de
+ la segunda.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-c
+\family default
+\series default
+ Añade antes de cada línea el número de ocurrencias.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\family default
+\series default
+ Sólo imprime líneas duplicadas, una por grupo.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-D
+\family default
+\series default
+ Imprime todas las líneas duplicadas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-i
+\family default
+\series default
+ No distingue mayúsculas de minúsculas al comparar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\begin_inset space ~
+\end_inset
+
+
+\series default
+\emph on
+n
+\family default
+\emph default
+ No compara los
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ primeros caracteres.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-w
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+n
+\family default
+\emph default
+ Sólo compara los
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ primeros caracteres.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+head [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime las primeras 10 líneas del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o la entrada estándar) a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-
+\series default
+\emph on
+n
+\family default
+\emph default
+ Imprime las primeras
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+ líneas en vez de las primeras 10.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+tail [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime las últimas 10 líneas del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o la entrada estándar) a la salida estándar.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+\emph on
++n
+\family default
+\emph default
+ Imprime empezando por la línea
+\family typewriter
+\emph on
+n
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+column [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Formatea su entrada en múltiples columnas.
+ Modos:
+\end_layout
+
+\begin_layout Paragraph*
+Tabla
+\end_layout
+
+\begin_layout Standard
+Determina el número de columnas de la entrada y crea una tabla.
+ Este modo se activa con la opción
+\family typewriter
+\series bold
+-t
+\family default
+\series default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+wc [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Imprime el número de saltos de línea, palabras y bytes del
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ (o la salida estándar).
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-l
+\family default
+\series default
+ Imprime el número de saltos de línea.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+tee [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+FICHERO
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Copia la entrada estándar a cada
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+, y también a la salida estándar.
+\end_layout
+
+\begin_layout Section
+
+\emph on
+Scripting
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+seq
+\emph on
+PRIMERO INCREMENTO ÚLTIMO
+\end_layout
+
+\begin_layout Standard
+Imprime los números de
+\family typewriter
+\emph on
+PRIMERO
+\family default
+\emph default
+ a
+\family typewriter
+\emph on
+ÚLTIMO
+\family default
+\emph default
+, inclusive, en pasos de
+\family typewriter
+\emph on
+INCREMENTO
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+echo [
+\emph on
+OPCIÓN
+\emph default
+]...
+ [
+\emph on
+CADENA
+\emph default
+]...
+\end_layout
+
+\begin_layout Standard
+Muestra las
+\family typewriter
+\emph on
+CADENA
+\family default
+\emph default
+s de caracteres por la salida estándar.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+test
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+test
+\series default
+
+\emph on
+EXPRESIÓN
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+\series bold
+[
+\series default
+
+\emph on
+EXPRESIÓN
+\emph default
+ ]
+\end_layout
+
+\begin_layout Standard
+Termina con el estado determinado por la
+\family typewriter
+\emph on
+EXPRESIÓN
+\family default
+\emph default
+, devolviendo 0 si esta es verdadera y 1 si es falsa.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+(
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+)
+\family default
+ Fuerza precedencia.
+ Devuelve lo que devuelva la expresión.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+!
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR
+\family default
+\emph default
+
+\begin_inset Quotes fld
+\end_inset
+
+No
+\begin_inset Quotes frd
+\end_inset
+
+ lógico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+EXPR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-a
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR2
+\family default
+\emph default
+
+\begin_inset Quotes fld
+\end_inset
+
+Y
+\begin_inset Quotes frd
+\end_inset
+
+ lógico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+EXPR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-o
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+EXPR2
+\family default
+\emph default
+
+\begin_inset Quotes fld
+\end_inset
+
+O
+\begin_inset Quotes frd
+\end_inset
+
+ lógico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-eq
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+ Los enteros son iguales.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-ne
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+ Los enteros son distintos.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-lt
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $<$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-le
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $\leq$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-gt
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $>$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+INT1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+
+\series bold
+-ge
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+INT2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+INT1
+\family default
+\emph default
+
+\begin_inset Formula $\geq$
+\end_inset
+
+
+\family typewriter
+\emph on
+INT2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-z
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR
+\family default
+\emph default
+ La cadena es vacía.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-n
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR
+\family default
+\emph default
+ La cadena no es vacía.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+=
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+ Las cadenas son iguales.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+!=
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+ Las cadenas son distintas.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+<
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+STR1
+\family default
+\emph default
+
+\begin_inset Formula $<$
+\end_inset
+
+
+\family typewriter
+\emph on
+STR2
+\family default
+\emph default
+, en orden lexicográfico.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\emph on
+STR1
+\emph default
+
+\begin_inset space ~
+\end_inset
+
+>
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+STR2
+\family default
+\emph default
+
+\family typewriter
+\emph on
+STR1
+\family default
+\emph default
+
+\begin_inset Formula $>$
+\end_inset
+
+
+\family typewriter
+\emph on
+STR2
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-e
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ El
+\family typewriter
+\emph on
+FICHERO
+\family default
+\emph default
+ existe.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-r
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y se tiene permiso de lectura.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-w
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y se tiene permiso de escritura.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-x
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y se tiene permiso de ejecución.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-f
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y es regular.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-d
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y es un directorio.
+\end_layout
+
+\begin_layout Labeling
+\labelwidthstring 00.00.0000
+
+\family typewriter
+\series bold
+-s
+\series default
+
+\begin_inset space ~
+\end_inset
+
+
+\emph on
+FICHERO
+\family default
+\emph default
+ Existe y no es vacío.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+true
+\end_layout
+
+\begin_layout Standard
+Devuelve 0.
+\end_layout
+
+\begin_layout Subsection*
+
+\family typewriter
+false
+\end_layout
+
+\begin_layout Standard
+Devuelve 1.
+\end_layout
+
+\end_body
+\end_document