You are on page 1of 3

Expresiones Regulares en Linux

Expresion Descripción
Se usa para que el shell trate lo encerrado en ellas como literal, pero a
diferencia de las comillas simples ' ', en este caso se expanden las variables.

[adrian@laptop-adrian ~]$ echo "$USER"


"…"
adrian
[adrian@laptop-adrian ~]$ echo '$USER'
$USER

Si comienza una palabra, el resto de la línea es un comentario (Ignora todo el


# texto hasta el final de la línea).

El valor de una variable se puede obtener insertando el signo pesos $ antes


del nombre de la variable, si la variable no esta definida se obtiene cero.
$var Obtiene el valor de la variable var o cero si la variable var no esta
$ definida
x=Hola luego realizo echo $x con lo cual mostrara por las salida estándar
Hola

El shell sustituye el resultado de la orden (es igual que `orden`) Ejemplo:

[adrian@laptop-adrian ~]$ echo `date`


$(orden) dom oct 31 01:50:46 VET 2010
[adrian@laptop-adrian ~]$ echo $(date)
dom oct 31 01:50:56 VET 2010

Si var existe y no es nula, proporciona cadena en caso contrario


${var:+cadena} proporciona el valor nulo

Proporciona el valor de la variable var, en caso contrario proporciona


${var:-cadena} cadena

Proporciona el valor de la variable var, en caso contrario asigna cadena a


${var:=cadena} var y lo proporciona como resultado.

Proporciona el valor de la variable var, en caso contrario visualiza var


${var:?cadena} seguido por cadena

Proporciona el valor de la variable var o cero si la variable var no esta


definida. Se utiliza cuando hay que añadir algo al valor.
x=Hola luego realizo echo $x con lo cual mostrara por las salida estándar
${var}
Hola pero si quiero que muestre Holanda no puedo poner echo
$xnda debo poner echo ${x}nda

Se usa para que el shell trate lo encerrado en ellas siempre como literal.
'...'
Expresion Descripción
Agrupa comandos en un sub shell, se usa cuando hay precedencias mayores.
(…) (date; who) | wc no será lo mismo que date; who | wc

Cualquier cadena de cero o más caracteres.


*

Denota el directorio actual, generalmente usado para ejecutar aplicaciones.


./
Es muy común que se cometa el error cuando se manejan archivos ocultos
(que empiezan por punto). Ejemplo.
ls -l /home/pepe/.* no solo listara todos los directorios y
.[a-zA-Z]* subdirectorios que empiezan por punto, sino que también, listará los
archivos del directorio padre ".." (/home). Si esto se comete con otros
comandos como chown o rm el error podría ser más grave.

Cualquier cadena que empiece con L y termine con a (Lana, Losa, Luna)
/L..a/
Coloca la salida estándar en la salida error estándar (0 la EE; 1 es la SE; 2 es
1>&2 la SEE)

Coloca el error estándar en la salida estándar (0 la EE; 1 es la SE; 2 es la


2>&1 SEE)

Redirecciona el Error Estándar al pozo ciego de Linux, utilizarlo en:


find / -iname pp 2>/dev/null para que no ensucie la terminal
2>/dev/null con elementos como:
«/var/log/..»: Permiso denegado

Se puede ejecutar más de un comando en una sola línea de comandos


; separando los comandos con un punto y coma (;)

Toma la entrada de un programa desde pp (short < pp es similar a


< pp short pp)

Colocar la salida en el archivo pp, el archivo será creado en caso de no


> pp existir y si ya existe su contenido será remplazado.

Opera igual que > con la diferencia que añade al final del archivo
>> pp
Cualquier carácter, solo un carácter
?
Ejecuta p1, si lo logra, ejecuta p2
p1 && p2

Ejecuta p1, si no se logra, ejecuta p2


P1 || p2
Le indica al shell que tome la entrada del archivo pp
sh pp

Agrego a la variable el valor pp


var=$pp

Asigna a la variable var el valor hola


var=hola

Una lista de caracteres rodeados por [ y ] concuerda con cualquier carácter


de esa lista; si el primer carácter de la lista es el acento circunflejo ^ entonces
concuerda con cualquier carácter de fuera de la lista. Por ejemplo, la
[] expresión regular [0123456789] concuerda con cualquier carácter
dígito, [Hh]ola, satisface a Hola como a hola.
[a-zA-Z] cualquier carácter formado por letras mayúsculas o minúsculas

Antes de un carácter especial hace que dicho carácter sea interpretado


literalmente, como por ejemplo cuando tenemos que referirnos a nombres
con espacios
\ $cd carpeta\ sin\ título/
O tenemos que buscar una cadena que contenga por ejemplo el carácter *
entonces será \*

Principio de cadena (línea), grep '^h' notas muestra líneas de notas


^ que empieza por h

El shell sustituye el resultado de la orden (es igual que $(orden)) Ejemplo:

[adrian@laptop-adrian ~]$ echo `date`


`orden` dom oct 31 01:50:46 VET 2010
[adrian@laptop-adrian ~]$ echo $(date)
dom oct 31 01:50:56 VET 2010

Coloca la salida estándar de un programa en la entrada estándar del otro (Esto


es una interconexión o Pipes).
|
ls | wc -1 Cuenta los archivos.

Lo que esta encerrado entre apostrofes será interpretado literalmente


´…´

You might also like