Está en la página 1de 26

El shell: comandos bsicos de Linux

Cualquier usuario de Linux acabar antes o despus relacionndose con el sistema


empleando el modo texto, y no los entornos grficos. Este modo se basa en la
ejecucin de una serie de comandos, que son interpretados por un programa o shell.
Linux dispone de !arios de estos programas pero el ms habitual es conocido como
bash o "ourne #hell. #i Linux se ha arrancado en modo texto el sistema arranca de
forma directa el shell y queda a la espera de introduccin de nue!os comandos. #i se
ha arrancado en modo grfico se puede acceder al shell de dos formas:
#e puede acceder al shell del sistema presionando alguna de las siguientes
combinaciones de teclas:
$
%ctrl&'%alt&'%()&
$
%ctrl&'%alt&'%(*&
$
%ctrl&'%alt&'%(+&
$
%ctrl&'%alt&'%(,&
$
%ctrl&'%alt&'%(-&
$
%ctrl&'%alt&'%(.&
Esto hace que el sistema salga del modo grfico y acceda a alguna de las seis
consolas !irtuales de Linux, a las cuales tambin se puede acceder cuando se arranca
en modo de texto. /ara !ol!er al modo grfico hay que presionar %ctrl&'%alt&'%(0& o
%ctrl&'%alt&'%(1&.
La segunda forma es ms cmoda y menos radical permitiendo acceder al shell desde
el mismo entorno grfico. /ara esto hay que abrir un programa llamado terminal o
consola, por ejemplo: 2console 3en el entorno 45E6, xterm, gnome7terminal 3en
89:;E6, etc.
<ntroduccin
Existen una serie de nociones bsicas que hay que tener en cuenta a la hora de
introducir los comandos. En primer lugar citaremos las siguientes:
Los comandos hay que teclearlos exactamente.
Las letras may=sculas y min=sculas se consideran como diferentes.
En su forma ms habitual 3los shells de "ourne o de 4orn6, el sistema operati!o utili>a
un signo de ? como prompt para indicar que est preparado para aceptar comandos,
aunque este carcter puede ser fcilmente sustituido por otro u otros elegidos por el
usuario. En el caso de que el usuario acceda como administrador este signo se
sustituye por @.
Cuando sea necesario introducir el nombre de un fichero o directorio como argumento
a un comando, Linux, permite escribir las primeras letras del mismo y reali>a un
autorrellenado al presionar la tecla del tabulador. #i no puede distinguir entre di!ersos
casos rellenar hasta el punto en el que se diferencien. /or ejemplo, supongamos una
carpeta con los siguientes directorios:
/rogramas
5ocumentosAproyecto
5ocumentosApri!ados
Bl escribir cd /r%tab& Linux rellenar el resto del contenido hasta escribir cd
/rogramas. /or el contrario al escribir cd 5%tab& escribir cd 5ocumentos
Blgunos Comandos #encillos de L<9CD
/ara efectuar el cambio o la introduccin de un passEord o contraseFa se utili>a el
comando passEd. El proceso a seguir es el siguiente:
passEd
3current6 C9<D passEord: 3se teclea la contraseFa actualG no aparece en pantalla6
9eE C9<D passEord: 3se teclea la nue!a contraseFaG no aparece en pantalla6
Hetype neE C9<D passEord: 3se teclea de nue!o la nue!a contraseFa comprobando
que se ha tecleado bien. #i no coincide no se cambia produce el cambio6.
B continuacin se describen algunos comandos sencillos de que pueden ser =tiles
para familiari>arse con los comandos del sistema.
date ;uestra por pantalla el dIa y la hora.
cal )J,J ;uestra el calendario del aFo )J,J.
cal K- )J,J ;uestra el calendario de mayo de )J,J.
Eho <ndica qu usuarios tiene el ordenador en ese momento, en qu terminal estn y
desde qu hora.
Ehoami <ndica cul es la terminal y la sesin en la que se est trabajando.
man comando Lodos los manuales de Linux estn dentro del propio sistema operati!o,
y este comando permite acceder a la informacin correspondiente al comando
comando. /or ejemplo con man Eho aparecer por pantalla y de forma formateada por
pginas, la explicacin del comando Eho. #e puede na!egar a tra!s de estas pginas
con los cursores del teclado, y presionando q para salir.
clear Este comando limpia la consola.
5irectorio /ersonal
Como se ha !isto anteriormente el directorio personal es un directorio con un
determinado nombre asignado a un usuario. Los directorios personales habitualmente
son subdirectorios de Mhome 3en algunos casos se utili>a mnt, u otro subdirectorio de
orden inferior6. 8eneralmente el nombre coincide con el del nombre de usuario,
aunque puede no ser asI, y !arios usuarios pueden estar trabajando en el mismo
directorio. Cada usuario de Linux puede crear una estructura en rbol de
subdirectorios y archi!os tan compleja como desee bajo su directorio personal pero
normalmente nunca fuera de l.
Listado del contenido de directorios: comando ls
Cna de las acciones ms habituales a la hora de trabajar es mostrar el contenido de
un directorio, como se ha !isto existen herramientas grficas con este fin, no obstante
el shell incluye un programa con este mismo fin: ls, ls ;uestra los nombres de los
ficheros y subdirectorios contenidos en el directorio en el que se est. #lo se obtienen
los nombres de los ficheros, sin ninguna otra informacin.
ls 7a ;uestra todos los ficheros incluyendo algunos que ordinariamente estn ocultos
para el usuario 3aquellos que comien>an por un punto6. #e recuerda que el fichero
punto . indica el directorio actual y el doble punto .. el directorio padre, que contiene, al
actual.
ls 7l Esta es la opcin de lista larga: muestra toda la informacin de cada fichero
incluyendo: protecciones, tamaFo y fecha de creacin o del =ltimo cambio
introducido,...
ls 7c ;uestra ordenando por dIa y hora de creacin.
ls 7t ;uestra ordenando por dIa y hora de modificacin.
ls 7r ;uestra el directorio y lo ordena en orden in!erso.
ls subdir ;uestra el contenido del subdirectorio subdir.
ls 7l filename ;uestra toda la informacin sobre el fichero.
ls 77color ;uestra el contenido del directorio coloreado.
Las opciones anteriores pueden combinarse. /or ejemplo:
ls 7cr ;uestra el directorio ordenando in!ersamente por fechas.
El comando ls admite los caracteres de sustitucin o metacarcteres 3$6 y 3N6. El
carcter $ representa cualquier conjunto o secuencia de caracteres. El carcter N
representa cualquier carcter, pero slo uno. /or ejemplo:
ls $.gif ;uestra todos los nombres de ficheros que acaben en .gif, por ejemplo dib).gif,
a.gif, etc..
ls fileN ;uestra todos los ficheros cuyos nombres empiecen por file y tengan un
nombre de cinco caracteres, por ejemplo: file), file*, filea, etc.
Creacin de subdirectorios. Comando m2dir
El comando m2dir 3ma2e directory6 permite a cada usuario crear un nue!o
subdirectorio:
m2dir subdir)
donde subdir es el nombre del directorio que se !a a crear.
"orrado de subdirectorios. Comando rmdir
Este comando borra uno o ms directorios del sistema 3remo!e directory6, siempre que
estos subdirectorios estn !acIos. /or ejemplo:
rmdir subdir)
donde subdir es el nombre del directorio que se !a a eliminar.
Cambio de directorio. Comando cd
Este comando permite cambiar de directorio a partir del directorio actual de trabajo.
/or ejemplo,
cd MhomeM/edro En este ejemplo pasamos del directorio actual de trabajo al nue!o
directorio
MhomeM/edro, que ser desde ahora nuestro nue!o directorio.
cd dire 9os traslada al subdirectorio dire 3que deber existir como subdirectorio en el
directorio actual6.
cd .. Hetrocedemos un ni!el en la jerarquIa de directorios. /or ejemplo, si estamos
en MhomeM/edro y usamos este comando, pasaremos al escalafn inmediatamente
superior de la jerarquIa de directorios, en este caso a Mhome.
9ota: al contrario que en ;#75:# en Linux no existe la forma cd.. sin espacio entre cd
y los dos puntos.
cd 9os sit=a nue!amente en el directorio personal del usuario.
#ituacin actual. Comando pEd
El comando pEd 3print Eor2ing directory6 !isuali>a o imprime la ruta del directorio en el
que nos encontramos en este momento. Este comando es uno de los pocos que no
tiene opciones y se utili>a escribiendo simplemente pEd.
Bcceso a unidades de disco
Linux a diferencia de OindoEs no utili>a letras 3Pa:P, Pc:P, Pd:P, ...6 para acceder a las
distintas unidades de disco de un ordenador. En Linux para acceder al contenido de
una unidad de disco o de un C57H:; este tiene que haber sido pre!iamente
PmontadoP. El montado se reali>a mediante el comando mount, con lo que el contenido
de la unidad se pone a disposicin del usuario en el directorio de Linux que se elija.
/or ejemplo para acceder al C57H:; se teclearIa el siguiente comando:
mount 7t isoJ..K Mde!Mcdrom MmntMcdrom.
donde 7t isoJ..K indica el tipo de sistema que usa la unidad de disco para guardar los
ficheros 3las ms usuales son: isoJ..K en el caso de un C57H:;, !fat en el caso de
OindoEs, y ext* en el caso de Linux6, Mde!Mcdrom indica el dispositi!o que se !a a
montar. Lodos los dispositi!os estn representados por un fichero del directorio Mde!,
por ejemplo en el caso de un disquete ser seguramente Mde!MfdK, por =ltimo
MmntMcdrom es el directorio en el que se pondr a disposicin del usuario el contenido
del C57H:;. /ara montar disquetes se suele utili>ar el directorio MmntMfloppy.
5e todas formas el usuario siempre puede crear un directorio !acIo con el nombre que
el elija para montar las unidades de disco que desee donde desee. Cuando el usuario
haya dejado de usar ese disco deber PdesmontarloP mediante el comando umount
antes de sacar el disquete o el C57H:;. En este =ltimo caso deberIa escribir:
umount MmntMcdrom
/ara utili>ar el comando mount de la forma anterior hace falta ser administrador o root.
/ara que un usuario com=n pueda utili>ar disquetes, C57H:;, etc. hay que editar el
fichero MetcMfstab /or ejemplo para que cualquier usuario pueda acceder a un disquete
habr que indicar la siguiente lInea:
Mde!MfdK MmntMfloppy !fat user,noauto K K
Lambin habr que asegurarse de que el directorio MmntMfloppy sea accesible por
todos los usuarios.
Cna !e> seguidos los pasos anteriores cualquier usuario podr PmontarP un disquete
escribiendo el siguiente comando:
mount MmntMfloppy
Bl igual que antes el usuario deber ejecutar el comando umount MmntMfloppy antes de
sacar el disquete.
9ota: Existen en la actualidad distribuciones 3p. ej. Linux ;andra2e6 que reali>an este
proceso de forma automtica por lo que las unidades de disquete y C57H:; quedan
accesibles a todos los usuarios de una forma sencilla, empleando los comandos:
mount MmntMfloppy
umount MmntMfloppy
siempre que MmntMfloppy sea la ruta adecuada.
Copia de ficheros. Comando cp
Este comando tiene la siguiente forma,
cp file) file*
y hace una copia de file) y le llama file*. #i file* no existIa, lo crea con los mismos
atributos de file). #i file* existIa antes, su contenido queda destruido y es sustituido
por el de file). El fichero file* estar en el mismo directorio que file). Lanto file) como
file* indican el nombre de un archi!o, que puede incluir el la ruta al mismo si alguno de
ellos no se encuentra en el directorio actual. :tra posibilidad es:
cp file) file* namedir
que hace copias de file) y file* en el directorio namedir.
Lraslado y cambio de nombre de ficheros. Comando m!
Este comando tiene una forma similar al anterior,
m! file) file*
El comando m! reali>a la misma funcin que el anterior 3cp6 pero adems destruye el
fichero original. En definiti!a traslada el contenido de file) a file*G a efectos del usuario
lo que ha hecho es cambiar el nombre a file), llamndole file*. 5e igual forma,
m! file) file* namedir
traslada uno o ms ficheros 3file), file*,...6 al directorio namedir conser!ndoles el
nombre. El comando,
m! namedir) namedir*
cambia el nombre del subdirectorio namedir) por namedir*.
Qay que recalcar que el comando m! sir!e asI mismo para cambiar el nombre de los
ficheros.
Enlaces a ficheros. Comando ln
En Linux un mismo fichero puede estar repetido con ms de un nombre, ya que con el
comando cp se pueden reali>ar cuantas copias se desee del fichero. /ero, a !eces, es
ms prctico tener un mismo fichero con !arios nombres distintos, y lo que es ms
importante, poder acceder a l desde ms de un directorio. En Linux esto recibe el
nombre de enlaces m=ltiples a un fichero. El ahorro de espacio de disco es importante
al poder compartir un fichero ms de un usuario. Estos enlaces son muy prcticos a la
hora de utili>ar ficheros que pertenecen a directorios distintos. 8racias a los enlaces
se puede acceder a muchos ficheros desde un mismo directorio, sin necesidad de
copiar en ese directorio todos esos ficheros. La forma de este comando es,
ln file) file*
B partir de este momento el fichero file) tiene dos nombres: file) y file*. B diferencia
de los comandos cp y m!, este comando toma ms precauciones, ya que ad!ierte
pre!iamente si el nombre file* est ocupado, y en este caso no se ejecuta.
ln panacea subdirMpanacea
5espus de este comando el fichero panacea tendr el mismo nombre, pero a efectos
del usuario estar colocado en dos sitios distintos: en el directorio actual y en el
subdirectorio subdir. Los ficheros enla>ados a otro se borran como los ficheros
normales. #i se borra el fichero original permanece su contenido en los ficheros
enganchados.
"orrado de ficheros. Comando rm
Este comando tiene las formas siguientes,
rm file) file*
Este comando elimina uno o ms ficheros de un directorio en el cual tengamos
permiso de escritura. Con este comando resulta facilIsimo borrar ficheros in=tiles, y
desgraciadamente, tambin los =tiles. /or eso es con!eniente y casi imprescindible
emplear lo opcin 7i, de la forma siguiente:
rm 7i file) file*
Con esta opcin, Linux pedir confirmacin para borrar cada fichero de la lista, de si
realmente se desea su destruccin o no. #e recomienda usar siempre este comando
con esta opcin para e!itar el borrado de ficheros =tiles. /or ejemplo, si se teclea,
rm 7i superfluo
aparecer en pantalla el a!iso siguiente:
remo!e superfluoN
y habr que contestar y 3yes6 o n 3not6. En este comando se pueden utili>ar los
caracteres de sustitucin 3$ y N6, como por ejemplo,
rm fich$
que borrarIa todos los ficheros del directorio actual que comiencen por fich. El
comando
rm $
borrar todos los ficheros del directorio actual, mientras que
rm 7i $
reali>a una labor anloga, pero con pre!ia confirmacin.
CaracterIsticas de un fichero. Comando file
Este comando reali>a una serie de comprobaciones en un fichero para tratar de
clasificarlo. #u formato es:
file fich
Lras su ejecucin este comando muestra el tipo del fichero e informacin al respecto
del mismo.
Cambio de modo de los ficheros comandos chmod, choEn y chgrp
Los permisos de cada fichero se pueden !er con el comando ls 7l. /ara cambiar los
permisos de un fichero se emplea el comando chmod, que tiene el formato siguiente:
chmod oper permiso files
quien <ndica a quien afecta el permiso que se desea cambiar. Es una combinacin
cualquiera de las letras u para el usuario, g para el grupo del usuario, o para los otros
usuarios, y a para todos los anteriores. #i no se da el quien, el sistema supone a.
oper <ndica la operacin que se desea hacer con el permiso. /ara dar un permiso se
pondr un ', y para quitarlo se pondr un 7.
permiso <ndica el permiso que se quiere dar o quitar. #er una combinacin cualquiera
de las letras anteriores : r,E,x,s.
files 9ombres de los ficheros cuyos modos de acceso se quieren cambiar. /or
ejemplo, para quitar el permiso de lectura a los usuarios de un fichero el comando es:
chmod a 7r fichero.txt
Los permisos de lectura, escritura y ejecucin tienen un significado diferente cuando
se aplican a directorios y no a ficheros normales. En el caso de los directorios el
permiso r significa la posibilidad de !er el contenido del directorio con el comando lsG el
permiso E da la posibilidad de crear y borrar ficheros en ese directorio, y el permiso x
autori>a a buscar y utili>ar un fichero concreto.
/or otra parte, el comando choEn se emplea para cambiar de propietario 3Pchange
oEnerP a un determinado conjunto de ficheros. Este comando slo lo puede emplear el
actual propietario de los mismos. Los nombres de propietario que admite Linux son los
nombres de usuario, que estn almacenados en el fichero MetcMpassEd. La forma
general del comando choEn es la siguiente:
choEn neEoEner file) file* ...
Bnlogamente, el grupo al que pertenece un fichero puede ser cambiado con el
comando chgrp, que tiene una forma general similar a la de choEn,
chgrp neEgroup file) file*...
Los grupos de usuarios estn almacenados en el fichero MetcMgroup.
Espacio ocupado en el disco Comandos du y df
El comando du permite conocer el espacio ocupado en el disco por un determinado
directorio y todos los subdirectorios que cuelgan de l. /ara usarlo basta simplemente
colocarse en el directorio adecuado y teclear, du, ste comando da el espacio de disco
utili>ado en bloques. /ara obtener la informacin en bytes se debe emplear el
comando con la opcin Rh: du 7h
El comando df por el contrario informa del espacio usado por las particiones del
sistema que se encuentren montadas.
Sisuali>acin sin formato de un fichero. Comando cat
Este comando permite !isuali>ar el contenido de uno o ms ficheros de forma no
formateada. Lambin permite copiar uno o ms ficheros como apndice de otro ya
existente. Blgunas formas de utili>ar este comando son las siguientes,
cat filename #aca por pantalla el contenido del fichero filename.
cat file) file*... #aca por pantalla, secuencialmente y seg=n el orden especificado, el
contenido de los ficheros indicados.
cat file) file* &file+ El contenido de los ficheros file) y file* es almacenado en file+.
cat file) file* &&file+ El contenido de file) y file* es aFadido al final de file+.
cat &file) Bcepta lo que se introduce por el teclado y lo almacena en file) 3se crea
file)6. /ara terminar se emplea %ctrl&d
Comando head
head 70 filename escribe las 0 primeras lIneas del fichero filename
Sisuali>acin de ficheros con formato. Comando pr
Este comando, a diferencia de cat, imprime por consola el contenido de los ficheros de
una manera formateada, por columnas, controlando el tamaFo de pgina y poniendo
cabeceras al comien>o de las mismas. Est muy en relacin con el comando lp de
salida por impresora. Las formas ms importantes que admite son las siguientes:
pr file /roduce una salida estndar de .. lIneas por pgina, con un encabe>amiento
de - lIneas 3* en blanco, una de identificacin y otras * lIneas en blanco6.
pr 7ln file /roduce una salida de n lIneas por pgina 3cuando el tamaFo de papel de
impresora, por ejemplo, tiene un n=mero de lIneas distinto de ..6
pr 7p file Qace una pausa para presentar la pgina, hasta que se pulsa %return& para
continuar
pr 7t file #uprime las - lIneas del encabe>amiento y las del final de pgina.
pr 7En file Bjusta la anchura de la lInea a n posiciones.
pr 7d file Lista el fichero con espaciado doble.
pr 7h TcaracteresT file el argumento o cadena de caracteres TcaracteresT se con!ertirn
en la cabecera del listado.
pr 'n file <mprime el fichero a partir de la pgina n.
Bdems de los ejemplos anteriores, se pueden combinar !arias opciones en un mismo
comando, como por ejemplo en: pr 7dt file la salida de este comando es por la consola,
pero puede redireccionarse a otro fichero, por ejemplo, si ejecutamos el comando: pr
file) & file* se crea un fichero nue!o llamado file* que es idntico a file), pero con
formato por pginas y columnas.
Sisuali>acin de ficheros pantalla a pantalla. Comandos more y less
Estos comandos permiten !isuali>ar un fichero pantalla a pantalla. El n=mero de lIneas
por pantalla es de *+ lIneas de texto y una =ltima lInea de mensajes, donde aparecer
la palabra more. Cuando se pulsa la barra espaciadora 3el espacio en blanco6, se
!isuali>ar la siguiente pantalla. /ara salir de este comando 3terminar la !isuali>acin6
se pulsa %ctrl&d o q. /or ejemplo: more file
El comando less es muy similar al anterior pero permite el despla>amiento a lo largo
del texto empleando las teclas de cursores pudiendo despla>arse hacia arriba o abajo
de un fichero.
"=squeda en ficheros. Comandos grep, fgrep y egrep
El comando grep locali>a una palabra, cla!e o frase en un conjunto de directorios,
indicando en cules de ellos la ha encontrado. Este comando rastrea fichero por
fichero, por turno, imprimiendo aquellas lIneas que contienen el conjunto de caracteres
buscado. #i el conjunto de caracteres a buscar est compuesto por dos o ms
palabras separadas por un espacio, se colocar el conjunto de caracteres entre
apstrofes 3U6. #u formato es el siguiente:
grep UconjuntocaracteresU file) file* file+
siendo UconjuntocaracteresU la secuencia de caracteres a buscar, y file), file*, y file+)
los ficheros donde se debe buscar. Seamos un nue!o ejemplo:
grep ULH<B98CLBH<VBC<:9 ;BLH<VU matrix.f scaling.f
Este comando buscar LH<B98CLBH<VBC<:9 ;BLH<V entre las lIneas de los
ficheros matrix.f y scaling.f. Este comando permite seleccionar, entre todas las lIneas
de uno o ms ficheros, aquellas que contienen un moti!o que satisface una expresin
regular determinada.
grep W7opcionX expresinAregular Wreferencia...X
Las opciones principales son:
c lo =nico que se hace es escribir el n=mero de las lIneas que satisfacen la condicin.
i no se distinguen may=sculas y min=sculas.
l se escriben los nombres de los ficheros que contienen lIneas buscadas.
n cada lInea es precedida por su n=mero en el fichero.
s no se !uelcan los mensajes que indican que un fichero no se puede abrir.
! se muestran slo las lIneas que no satisfacen el criterio de seleccin.
B continuacin se muestra una serie de ejemplos.
Y grep Z[d\ text lIneas que comien>an por d.
Y grep Z[W[dX\ text lIneas que no comien>an por d.
Y grep 7! Z[C\ file) & file* quita las lIneas de file) que comien>an por C y lo copia en
file*.
Comandos tar y g>ip
Lanto el comando tar como g>ip son ampliamente empleados para la difusin de
programas y ficheros en Linux. El primero de ellos agrupa !arios ficheros en uno solo o
Parchi!oP, mientras que el segundo los comprime. En conjunto estos dos programas
act=an de forma muy similar a programas como Oin>ip. /ara crear un nue!o archi!o
se emplea:
tar Rc!f nombreAarchi!o.tar fichero) fichero* ]
donde fichero), fichero* etc. son los ficheros que se !an a aFadir al archi!o tar. #i se
desea extraer los ficheros se emplea
tar Rxp!f nombreAarchi!o.tar fichero) ]
Bl contrario que tar que agrupa !arios ficheros en uno, g>ip comprime un =nico fichero
con lo que la informacin se mantiene pero se reduce el tamaFo del mismo. El uso de
g>ip es muy sencillo
g>ip fichero
con lo que se comprime fichero 3que es borrado6 y se crea un fichero con nombre
fichero.g>. #i lo que se desea es descomprimir un fichero se emplea entonces:
g>ip Rd fichero.g>
recuperando el fichero inicial. Como se ha comentado al principio es tIpico emplear tar
y g>ip de forma consecuti!a, para obtener ficheros con extensin tar.g> o tg> que
contienen !arios ficheros de forma comprimida 3similar a un fichero >ip6. El comando
tar incluye la opcin > para estos ficheros de forma que para extraer los ficheros que
contiene:
tar R>xf fichero.tar.g>
Comandos de impresin
Comando lpr
El comando lpr se emplea para imprimir una serie de ficheros. #i se emplea sin
argumentos imprime el texto que se introdu>ca a continuacin en la impresora por
defecto. /or el contrario,
lpr nombreAfichero
imprime en la impresora por defecto el fichero indicado.
Hedirecciones y tuberIas
Hedirecciones
Los comandos de Linux tienen una entrada estndar 3n=mero K6 y dos salidas
estndar 3n=mero ) para la salida normal del comando, y n=mero * para la salida de
los mensajes de error que se puedan producir en su ejecucin6. /or defecto tanto la
entrada como las salidas estndar de los comandos son la propia terminal, a no ser
que por la propia naturale>a del comando se den en l los nombres de algunos
ficheros que hagan el papel de entrada y de salida. /or ejemplo, en el comando
cp file) file*
file) es la entrada y file* es la salidaG aquI no inter!ienen las entradas y salidas
estndar. #in embargo, cuando utili>amos por ejemplo el comando ls 3listado de
directorio6, la salida de este comando se dirige hacia la terminal. #i queremos que la
salida de este comando se dirija a un fichero llamado file, podrIamos escribir,
ls &file
el 3& es uno de los llamados operadores de redireccin y dirige la salida estndar
hacia el fichero indicado a continuacinG si este fichero no existe, se crea en ese
momento. :tros operadores de redireccin son el operador 3% que redirige la entrada
estndar desde un determinado fichero, y el operador 3&& que redirige la salida
estndar hacia otro fichero, pero aFadiendo dicha salida al final de ese fichero, sin
sobreescribir el contenido original. /or ejemplo, si cada !e> que entramos en el
sistema ejecutamos el comando,
date &&archi!o
tendremos un fichero llamado archi!o que contiene informacin sobre todas las !eces
que hemos entrado en el sistema. :tro ejemplo, para aFadir al fichero file* al final de
file) y al conjunto llamarle file+, serIa
cat file) file* &file+
o, si quisiramos que el fichero resultante fuera el mismo file),
cat file* &&file)
Cn ejemplo en redireccin a la entrada podrIa ser el siguiente,
mail juan %carta
que en!Ia al usuario juan el contenido del fichero carta.
LuberIas
#iguiendo con los ejemplos anteriores, si quisiramos en!iar a juan una lista de
nuestros ficheros podrIamos utili>ar los comandos,
ls &fichero
mail juan %fichero
rm fichero
Es decir que hemos conectado la salida estndar de ls con la entrada estndar de
mail, a tra!s de un fichero transitorio filelist. Linux permite hacer esta operacin
directamente, sin pasar por el fichero de almacenamiento transitorio: esto se hace
mediante el concepto de tuberIa 3pipe6, que consiste en empalmar la salida estndar
de un comando con la entrada estndar de otro. /ara el ejemplo anterior esto se hace
en la forma,
ls ^ mail juan
Con el operador de tuberIa 3^6 se pueden empalmar tantos comandos como se desee.
"ifurcacin o L 3comando tee6
B !eces interesa que la salida de un comando, adems de redirigirse a un
determinado fichero, se bifurque tambin hacia la terminal, con objeto de obser!ar
inmediatamente el resultado. Esto se consigue con el operador tee, que podrIa
emplearse de la siguiente forma:
ls ^ tee file
la salida de ls se bifurca hacia la terminal y hacia file.
#i quisiramos que la salida de este comando se aFadiera al final de file, deberIamos
utili>ar la opcin 7a,
ls ^ tee 7a file
Hedireccin de la salida de errores
Los mensajes de error se dirigen a la salida n=mero *, que normalmente es tambin la
terminal. B !eces, por ejemplo cuando se quiere ejecutar un comando en bac2ground
3ejecutar un comando en bac2ground es lan>ar su ejecucin y recuperar el control de
la terminal sin esperar a que termine, lo cual se hace aFadiendo el carcter _ al final
del comando6, interesa e!itar que los mensajes de error apare>can en la pantalla, pues
en ella habremos empe>ado a hacer otra cosa. #upongamos por ejemplo que
queremos compilar y montar en bac2ground un conjunto de ficheros, dirigiendo los
listados a un fichero llamado listados, y los mensajes de error a un fichero llamado
errores. Lo harIamos en la forma,
gcc prueba.c *&errores
con lo cual la salida * 3errores6 se redirige hacia el fichero errores. /ara redirigir la
salida estndar de errores al mismo fichero que la salida estndar se emplea un
comando como:
program %datos.d &resultados.r *&_)
Ejecucin de programas
Ejecucin en el fondo _ , 2ill, nice y nohup
/ara ejecutar un programa en el fondo, es decir, recuperando inmediatamente el
control del terminal, basta aFadir el carcter _ al final del comando de ejecucin:
program %datos.d &resultados.r _
inmediatamente aparecer en el terminal, debajo de esta lInea, un n=mero que es el
n=mero de proceso de la ejecucin de este programa. /ara detener definiti!amente
dicha ejecucin 3no se puede detener temporalmente6 se puede utili>ar el comando
2ill:
2ill n=merodeproceso
La ejecucin de un programa en el fondo no impide que apare>can en la pantalla los
mensajes de error que se produ>can 3a no ser que se haya redirigido la salida de
errores6, y que el programa se pare cuando se salga del sistema. /ara que el
programa contin=e ejecutndose a=n cuando nosotros hayamos terminado la sesin,
hay que utili>ar el comando nohup:
nohup program
#i no se utili>an redirecciones todas las salidas del programa se dirigen a un fichero
llamado nohup.out. Cuando se utili>a nohup el ordenador entiende que el usuario no
tiene prisa y automticamente disminuye la prioridad de la ejecucin. Existe un
comando, llamado nice, que permite reali>ar ejecuciones con baja prioridad, es decir
se le indica al ordenador que puede ejecutar de forma ms lenta esta aplicacin si
existen otras que sean ms urgentes. #e utili>a en las formas,
nice program _
nice nohup program _
/ara darle al programa la prioridad mInima habrIa que utili>ar el comando,
nice 7)J program _
donde el 7)J indica la mInima prioridad.
Comando time
El comando time, precediendo a cualquier otro comando, suministra informacin
acerca del tiempo total empleado en la ejecucin, del tiempo de C/C utili>ado por el
programa del usuario, y del tiempo de C/C consumido en utili>ar recursos del sistema.
/or ejemplo para saber el tiempo utili>ado en la compilacin y montaje del programa
prueba.c utili>arIamos el comando,
time gcc prueba.c
Comando top
Linux incluye una aplicacin llamada top cuya finalidad es manipular la ejecucin de
programas de una forma interacti!a. Esta aplicacin muestra una lista de los procesos
que se estn ejecutando. Los principales comandos de top son: u que muestra los
procesos que pertenecen a un determinado usuario, 2 equi!alente al comando 2ill para
matar un proceso y h que muestra la ayuda del programa.
/rogramas de comandos
El sistema operati!o Linux, al igual que otros sistemas operati!os, permite reali>ar
programas de comandos, esto es, programas constituidos por distintos comandos que
podrIan teclearse interacti!amente uno por uno en una terminal, pero que es muchas
!eces ms cmodo agruparlos en un fichero, y ejecutarlos con una sola instruccin
posteriormente.
Los comandos de Linux pueden ser externos 7 que implican la creacin de un nue!o
proceso, cuyo cdigo est en Mbin o MusrMbin7 e internos 7 cuyo cdigo est incluido en
el del intrprete shell que los ejecuta.
Cna cierta primera forma de agrupar comandos la ofrece Linux por medio del
carcter G. /or ejemplo, tecleando el comando,
dateG lsG Eho
el ordenador ejecutar sucesi!amente los comandos date, ls y Eho. Lambin podrIa
crearse con un editor de textos un fichero llamado comandos que contu!iera las lIneas
siguientes:
date
ls
Eho
/ara ejecutar este fichero de comandos puede teclearse,
sh comandos
o bien con!ertir el fichero comandos en directamente ejecutable por medio del
comando chmod en la forma,
chmod a'x comandos
de modo que el programa de comandos comandos puede ejecutarse simplemente
tecleando su nombre,
comandos
Los comandos sh comandos y comandos no son enteramente equi!alentes. BsI, el
primero de ellos exige que el fichero comandos est en el directorio de trabajo,
mientras que el segundo slo exige que el fichero comandos est en uno de los
directorios de b=squeda de comandos especificados en la !ariable /BLQ.
Cuando se ejecuta un fichero de comandos Linux abre lo que se llama un nue!o shell,
es decir un nue!o entorno para la ejecucin de los comandos. /ara que las !ariables
del capara>n original conser!en su !alor en el nue!o capara>n es necesario
prepararlas con la sentencia export antes de abrir el nue!o shell. /or ejemplo, como
consecuencia de lo que se acaba de decir, si en el interior de un fichero de comandos
se cambia de directorio con el comando cd, al acabar la ejecucin de dicho fichero
!ol!eremos automticamente al directorio inicial.
<ntroduccin de comentarios
/ara introducir lIneas de comentarios en un programa de comandos basta comen>ar
dichas lIneas con el carcter @. Qay que tomar la precaucin de que este carcter no
sea el primer carcter del fichero de comandos, porque entonces el ordenador
interpreta que el programa est escrito en C7shell 3una !ariante especial de C9<D
desarrollada en la Cni!ersidad de "er2eley6 y el resultado es impre!isible. /uede ser
buena prctica comen>ar todos los ficheros de comandos con una lInea en blanco.
Sariables del shell
C9<D permite definir !ariables en un fichero de comandos en la forma,
C#EH`MmntMmecanMjuanto
LEH;`hp*+J*
...
Es una prctica habitual el utili>ar nombres con letras may=sculas para las !ariables
del capara>n. /ara recuperar el !alor de una !ariable hay que precederla con el
carcter . /or ejemplo, utili>ando en otra parte del programa LEH;, en dicho lugar se
sustituirIa LEH; por su !alor, esto es, hp*+J*. El shell del Linux tiene definidas para
cada usuario unas !ariables estndar. /ara a!eriguar cules son basta teclear el
comando siguiente,
set
/ara definir otras !ariables propias de cada usuario puede utili>arse el fichero .profile,
que es un fichero de comandos propio de cada usuario que se ejecuta
automticamente al hacer el login. /ara definir !ariables que contengan espacios en
blanco deben encerrarse entre caracteres 3U6 o 3P , como por ejemplo,
(ECQB`P+) de 5iciembre de )J1.P
ms adelante se !er la diferencia entre el carcter 3U6 y el carcter 3P .
Comando echo
El comando echo imprime un determinado texto en la terminal. Cn ejemplo de
utili>acin de dicho comando puede ser el siguiente:
echo ;e gusta el sistema operati!o C9<D
El comando echo es de gran utilidad en los ficheros de comandos. Cuando el texto
que se desea escribir en la terminal contiene alguno de los caracteres especiales de
C9<D 3 $ N W X & && % _ G a U 6 hay que tomar precauciones especiales desconectando su
significado. Cna forma de hacerlo es precediendo dicho carcter con la barra in!ertida
3a6. BsI, para escribir mediante el comando echo tres asteriscos, utili>arIamos
echo a$a$a$
si no utili>ramos la barra in!ertida, el asterisco se interpretarIa como un carcter de
sustitucin y se imprimirIa el nombre de todos los ficheros del directorio. :tra forma de
anular el significado de los caracteres especiales es encerrando el texto a escribir
mediante comillas 3P o entre apstrofos normales 3U6. Los apstrofos 3U6 anulan el
significado de todos los caracteres comprendidos entre ellos. BsI pues, el triple
asterisco lo podrIamos escribir con el comando,
echo U$$$U
Las comillas 3P son menos restricti!as, y anulan el significado de todos los caracteres
excepto los tres siguientes: 3 T a6. Esto es muy importante porque si SBH es el nombre
de una !ariable, y SBH aparece en un comando echo entre apstrofos se escribe
SBH, mientras que si aparece entre comillas se escribe el !alor de la !ariable, al
cumplir el carcter su cometido.
El carcter 3a6 tiene otros significados, adems del ya !isto de anular el significado
especial de otros caracteres. BsI, sir!e como indicador de que un comando contin=a
en la lInea siguiente. Cuando se utili>a en la definicin interacti!a de un comando, en
la lInea siguiente aparece el prompt secundario 3& , que indica que se debe seguir
tecleando el comando. Cuando en un comando echo aparecen los caracteres 3ac6 y
3an6 quiere decir, respecti!amente, que no se cambie de lInea y que se salte de lInea,
al escribir por la pantalla.
El carcter apstrofo in!erso o acento gra!e 3T6 tiene tambin un significado especial.
Cuando en un comando echo aparece el nombre de otro comando encerrado entre
apstrofos in!ersos 3por ejemplo, TdateT, TEhoT, TlsT, ...6, el nombre de dicho comando
se sustituye por el resultado que genera al ejecutarse interacti!amente. Cn ejemplo
podrIa ser el siguiente:
echo PLos usuarios del sistema son anan TEhoTP
El lector puede hacer la prueba y obser!ar el resultado correspondiente.
/armetros de los ficheros de comandos
B los ficheros de comandos pueden pasrseles como parmetros un conjunto de una
o ms !ariables. 5entro del fichero de comandos estas !ariables o parmetros se
conocen con los nombres K, ), *, ..., J. La !ariable K representa el propio nombre del
fichero de comandos, y ), *, ..., J son los nombres de los parmetros propiamente
dichos.
Samos a comen>ar !iendo un ejemplo muy sencillo de programa de comandos al que
se le pasa slo una !ariable o parmetro. El comando de borrar de Linux rm no
confirma la operacin de borrado si no se le pone la opcin 37i6. Esto es peligroso
porque uno fcilmente puede ol!idarse de teclear dicha opcin y borrar lo que no
querIa borrar. Samos a crear un fichero de comandos llamado del que incluya dicha
opcin. 5icho fichero podrIa estar formado por,
echo Pbuiere borrar el fichero )NP
rm 7i )
5espus de darle a este fichero el correspondiente permiso de ejecucin con el
comando chmod, podrIamos borrar con confirmacin el fichero file tecleando, del file.
5entro del fichero de comandos, K !aldrIa del y ) !aldrIa file.
Cn programa de comandos ms complicado y que utili>a dos parmetros podrIa ser el
contenido en el fichero cambio, que intercambia el nombre de dos ficheros:
m! ) ficheropufo
m! * )
m! ficheropufo *
Este fichero se ejecutarIa en la forma,
cambio file) file*
En este ejemplo K es cambio, ) es file) y * es file*. En realidad a un fichero de
comandos se le pueden pasar todos los argumentos que se deseen, aunque slo hay
nombre especIfico para los nue!e primeros 3ms el propio nombre del comando6. El
n=mero de argumentos que se le pasa est contenido en la !ariable @. La !ariable $
contiene el conjunto de todos los parmetros. Cn nue!o ejemplo puede aclarar algo
ms este punto.
#i el programa del que hemos hecho pre!iamente lo hubiramos utili>ado en la forma:
del $.f
tericamente deberIa de borrar, con confirmacin, todos los ficheros (ortran del
directorio. En la prctica no es asI, porque 3$.f6 no representa un =nico argumento sino
muchos argumentos 3todos los ficheros (ortran del directorio6. Como resultado slo se
borra el primer fichero (ortran. /ara borrar todos e indicarnos adems cuntos
ficheros hay, el fichero del podrIa estar compuesto por los siguientes comandos:
echo PQay @ programas (ortran anP
rm 7i $
El comando shift hace posible utili>ar y distinguir parmetros que estn ms a la
derecha del no!eno lugar en la llamada al programa de comandos. En efecto, cuando
se llama al comando shift, * se con!ierte en ), + en *, etc, y lo que hubiera sido )K en
J, con lo cual ya se puede referenciar. El comando shift deja inalterado K y puede
utili>arse tantas !eces como se desee.
:tras posibilidades de los ficheros de comandos
Los ficheros de comandos tienen muchas ms posibilidades que las que se han
apuntado en esta <ntroduccin: pueden leer !ariables, preguntar por la existencia de
un fichero y por si es ejecutable o no, y admiten construcciones lgicas del tipo <(, 5:,
5: OQ<LE, etc. /ara utili>ar estas posibilidades acudir al manual correspondiente.
Compilando programas en Linux
Linux como cualquier sistema Cnix que se precie incluye un compilador de C y C''.
Esto no implica que se est limitado a estos dos lenguajes de programacin. /or el
contrario existen una gran cantidad de compiladores gratuitos para los lenguajes ms
importantes.
El compilador de CMC'' de Linux es un compilador de lInea de comandos, esto es, no
dispone de ninguna interfa> grfica que facilite la programacin y compilacin del
cdigo. Existen eso sI editores de texto capaces de mostrar la sintaxis del cdigo
resaltada como 2Erite, aunque la compilacin hay que reali>arla manualmente a tra!s
de una consola o terminal.
Compilacin y lin2ado
El primer paso para crear un programa, por ejemplo en C'', es crear el fichero de
cdigo fuente, y guardarlo en un fichero de texto por ejemplo e).cpp. Lras esto hay
que compilar el programa. /ara esto se emplear el comando g'', de la siguiente
forma:
g'' e).cpp
Con lo que conseguiremos que se compile el programa. Con este comando hemos
conseguido que se cree un programa llamado a.out en el directorio de trabajo. /ara
ejecutarlo emplearemos
.Ma.out
9ormalmente no desearemos que el programa se llame a.out sino que tenga un
nombre ms significati!o, como ejemploA), para conseguirlo emplearemos:
g'' 7o ejemploA) e).cpp
#i queremos ejecutar el programa emplearemos .MejemploA). #i el programa escrito
reali>a emplea alguna funcin que no se encuentre en la librerIa estndar hay que
incluirla en la orden de compilacin, por ejemplo:
g'' 7o ejemploA* e*.cpp 7lname
5onde name es el nombre de la librerIa. /or defecto estas se guardan en un fichero
cuyo nombre es
libname.so, cuya locali>acin suele ser MusrMlib.
#i el programa no est escrito en C'' sino en C las opciones de compilacin son las
mismas sal!o que en lugar del programa g'' se emplear el comando gcc.
gcc Ro ejemploA+ e+.c
Comando ma2e
Este comando sir!e para organi>ar la compilacin y el enla>ado de programas
complicados que dependen de muchos mdulos y librerIas diferentes. Cuando se
ejecuta este comando, se construye un nue!o ejecutable !ol!iendo a compilar slo
aquellos ficheros fuente que son ms recientes que el los ficheros compilados
correspondientes, teniendo en cuenta para ello las fechas de =ltima modificacin de
cada fichero. Este comando se basa en un fichero B#C<< 3llamado por defecto
ma2efile6 que contiene una relacin de dependencias entre los distintos mdulos, asI
como las acciones que hay que reali>ar para poner a punto cada mdulo, es decir para
pasar de un fuente a un objeto, por ejemplo. Este comando tiene la siguiente forma
general:
ma2e WRf ma2efilenameX WRargAoptX WexeAnameX
El fichero ma2efile 3con ste o con otro nombre in!ocado por medio de la opcin Rf6
contiene cuatro tipos de lIneas diferentes:
Y LIneas de comentario, que comien>an por el carcter 3@6. #i en una lInea cualquiera
aparece el carcter 3@6, se ignora todo lo que aparece a continuacin de dicho carcter
en dicha lInea.
Y LIneas de definicin de macros. Lienen la forma general,
<5E9L<(<CB5:H ` cadenaAdeAcaracteres
#i en alguna otra lInea aparece 3<5E9L<(<CB5:H6, dicha ocurrencia se sustituye por
cadenaAdeAcaracteres. 9o es necesario que el nombre del identificador est escrito
con may=sculas, pero es una costumbre bastante extendida el hacerlo asI. ;ediante el
uso de macros se pueden representar bre!emente pathnames o listas de nombres de
ficheros largos. #i el identificador tiene una sola letra, no hace falta poner los
parntesis. El comando ma2e tiene una serie de macros definidas por defecto que se
pueden listar con el comando ma2e Rp.
LIneas describiendo las relaciones de dependencia. Lienen la forma,
file.o fila.o ... : file).cpp file*.cpp ...
La lista de ficheros que estn a la i>quierda del carcter 3 dependen de los ficheros
que estn a la derecha. En estas lIneas se reali>a la sustitucin habitual de los
caracteres 3N$WX6
LIneas de comandos shell, comen>ando siempre por un tabulador. Estas lIneas
representan las acciones que hay que reali>ar para actuali>ar los ficheros
dependientes, seg=n las relaciones de dependencia descritas en la lInea anterior. En
una misma lInea de comandos puede haber !arios comandos separados por un
carcter 3 , y de este modo se ejecutan en un mismo procesoG si hay !arias lIneas de
comandos, cada lInea se ejecuta en un proceso diferente. Estos comandos shell
3compilaciones, etc.6 se ejecutan o no seg=n las fechas de los ficheros
correspondientes. Qay tambin una lista de dependencias implIcitas y de
macrodefiniciones standard que se pueden obtener con el comando ma2e 7p 3la salida
de este comando puede tener !arios cientos de lIneas6. B continuacin se presentan
algunos ejemplos de ficheros ma2efile.
B continuacin se muestran una serie de ejemplos
@ Esto es un ejemplo de fichero ma2efile
@ 5efiniciones de macros
ma ` ma*0ad.o ma*0bd.o ma*0cd.o
LE#L: test.o 3ma6
xlf Ro LE#L R: 3ma6
test.o: test.f
xlf Rc R: test.f
ma*0ad.o: ma*0ad.f
xlf Rc R: ma*0ad.f
ma*0bd.o: ma*0bd.f
xlf Rc R: ma*0bd.f
ma*0cd.o: ma*0cd.f
xlf Rc R: ma*0cd.f
Qay informaciones que no es necesario dar por que se suponen por defecto. /or
ejemplo, si el fichero objeto 3.o6 y el fichero C 3.c6 o C'' 3.cpp6 tienen el mismo sufijo,
no hace falta definir esas relaciones de dependencia, que por otra parte son tri!iales.
"=squeda a!an>ada en ficheros. Expresiones regulares
B !eces se desea encontrar las lIneas de un fichero que contienen una palabras o
palabras determinadas. Cuando el texto que se desea encontrar es =nico, lo que hay
que hacer es ponerlo tal cual en la seccin del comando que define la b=squeda, por
ejemplo
grep P/BLBLB#P ListaAdeAlaAcompra.txt
#in embargo, en otras ocasiones el texto que se desea buscar no es =nico, es decir,
no est unI!ocamente determinado como en el ejemplo anterior, sino que debe cumplir
unas ciertas condiciones, como la de estar escrito con may=sculas, comen>ar por
determinado carcter, estar a principio o final de lInea, etc. Este problema se puede
resol!er en muchos comandos de Linux por medio de las expresiones regulares que
se !an a presentar a continuacin.
Las expresionesAregulares son una forma de describir patrones para la b=squeda de
unas determinadas lIneas dentro de uno o ms ficheros B#C<<. #e trata pues de
encontrar las lIneas cuyo contenido cumple ciertas condiciones, que se definen en la
expresinAregular.
Caracteres especiales
En una expresinAregular se pueden utili>ar algunos caracteres que tienen un
significado especial.
#on los siguientes:
W comien>o de la definicin de un conjunto de caracteres
. un carcter cualquiera, excepto el %eol&
$ un conjunto de caracteres cualesquiera, excepto el primer carcter de una expresin
o inmediatamente despus de la secuencia a3
X terminacin de la definicin de un conjunto de caracteres
7 sir!e para definir el conjunto de caracteres que !an del que le precede al que le
sigue. #i !a detrs del W o delante del X, no es especial
[ comien>o de lInea, si est al comien>o de la expresin
[ conjunto complementario 3el que no cumple la condicin6, si est justo despus del
W que abre la definicin de un conjunto
fin de lInea, cuando est al final de una expresin.
a quita el significado especial a un carcter, excepto en la definicin de un conjunto de
caracteres
Expresiones regulares de un solo carcter
#e trata de buscar palabras o conjuntos de un solo carcter, que cumple ciertas
condiciones. B continuacin se presentan algunos ejemplos:
a$ representa el carcter $
. cualquier carcter, excepto el %eol&
Wa7fX un carcter cualquiera entre la a y la f
WB7VX cualquier letra may=scula
W[a7dX cualquier carcter que no sea una letra entre la a y la d
W:clase donde clase puede ser: digit 3cifra del K al J6, xdigit 3cifra hexadecimal6, alpha
3letra cualquiera6, upper 3letra may=scula6, loEer 3letra min=scula6, alnum 3letra o dIgito
cualquiera6,
space 3un espacio en blanco6, cntrl 3carcter de control6, punct 3un carcter de
puntuacin6 y print 3carcter imprimible6.
Expresiones regulares generales
#e pueden formar de acuerdo con las siguientes reglas:
7 una expresin regular de un slo carcter
Wa7>X cualquier letra min=scula
7 una expresin regular de un slo carcter, seguida del carcter $, representando
entonces todas las palabras de longitud positi!a o nula que se pueden construir con
los caracteres aceptados por la una expresiones regulares de un slo carcter
Wa7>X$ cualquier palabra escrita con min=sculas
7 concatenando 3poniendo una a continuacin de la otra6 dos expresiones regulares
construidas pre!iamente
Wa7>XWB7VX cualquier palabra de dos letras, de las cuales la primera es min=scula y la
segunda may=scula
7 Cna expresinAregular definida en la forma a3expresiones regularesa6 representa la
propia expresiones regulares 3es decir, definida ella sola6, pero define una forma de
referirse luego a esa expresiones regulares. En efecto las expresiones regulares
definidas de esta forma quedan afectadas por un n=mero del ) al J, y es posible luego
hacer referencia a una expresiones regulares por medio del n=mero que le
corresponde, en la forma an=mero. #i an=mero !a seguido de un $, esa subexpresin
puede repetirse un n=mero cualquiera de !eces.
[a3.$a6a)a) Bl comien>o de la lInea, un campo formado por un carcter cualquiera que se
repite las !eces que sea, !ol!iendo a aparecer dos !eces mas antes de que se acabe
la lInea. Esta expresin detectarIa las lIneas que contienen palabras 3o conjuntos de
palabras6 triples.
7 una expresiones regulares de un slo carcter seguida de a3enteroa6 representa
entero apariciones consecuti!as de alguno de los caracteres aceptados por la
expresiones regulares de un slo carcter. #i !a seguida de a3entero,a6 representa un
n=mero mInimo de entero apariciones consecuti!as. #i !a seguida de a3entero),
entero*a6 representa un mInimo de entero) y un mximo de entero* apariciones
consecuti!as. Los n=meros enteros deben estar comprendidos entre K y *--.
7 toda expresin que comien>a con [ indica que los caracteres buscados deben estar a
comien>o de la lInea
[Wa7>X$ selecciona las lIneas que slo contienen letras min=sculas
7 toda expresin que termina con indica que los caracteres buscados deben estar a
final de la lInea
[Wa7>Xac+adW[a7>Xac+ad selecciona las lIneas que comien>an con tres min=sculas, terminan
con tres caracteres cualesquiera pero que no son min=sculas, y no tiene ning=n otro
carcter entre medio.

También podría gustarte