Programación de la Shell de Linux - Fco. Manuel Maestre Alamo

Description

Apuntes esquematizados de Programación de la Shell de Linux
Francisco Manuel Maestre Alamo
Note by Francisco Manuel Maestre Alamo, updated more than 1 year ago
Francisco Manuel Maestre Alamo
Created by Francisco Manuel Maestre Alamo about 2 years ago
9
0

Resource summary

Page 1

Caracteres especiales para la Shell

*    Comodín de cualquier grupo de caracteres ¿    Comodín de cualquier carácter simple. [..]    Rangos de selección ;    Separador en el agrupamiento de órdenes <    Redireccionamiento de entrada >    Redireccionamiento de salida >>    Añade a la salida al “archivo” reseñado 2>    Envía los mensajes de error al “archivo” indicado 2>>    Añade los errores al archivo especificado |    Encauzamiento de órdenes &    Ejecución en segundo plano =    Asignación de valores a variables $    Valor o contenido de una variable `..`    Ejecución previa de la orden incluida \    Eliminación de interpretación del carácter siguiente ‘..’    Eliminación de interpretación de todo lo incluido “..”    Eliminación de interpretación salvo $ \ ‘ “

Page 2

Variables de Entorno

HOME   Nombre del directorio con la cuenta del usuario PATH   Un conjunto de nombres de directorio separados por el símbolo : en los que buscar los comandos LOGNAME     Nombre del usuario SHELL   Nombre completo del shell que se está utilizando TERM   Tipo de terminal que se está utilizando

Page 3

Variables locales

PPID   Número identificador del proceso padre PWD   Nombre del directorio de trabajo actual OLDPWD   Nombre del anterior directorio de trabajo antes de ejecutar por última vez el comando cd RANDOM   Un número entero generado al azar PS1   Cadena que presenta el shell cada vez que solicita un comando PS2   Cadena que presenta el shell cada vez que solicita la continuación de un comando que ocupa varias líneas de pantalla  

Page 4

Consulta avanzada de variables

${v}   Idéntico a $v. Se utiliza en los casos de ambigüedad ${#v}   Número de caracteres de la cadena que contiene v ${#v[*]}   Número de elementos del vector v ${v-c}   Si v ha sido definida su valor, en otro caso c ${v=c}   Si v ha sido definida su valor, en otro caso le asigna ahora el valor c ${v+c}   Si v ha sido definida c, en otro caso la cadena vacía ${v?c}   Si v ha sido definida su valor, en otro caso se muestra en la salida de errores la cadena c y termina la ejecución del shell script ${v:+c}    ${v:=c}    ${v:-c}   ${v:?c}   Similar a los modos de consulta en que no aparece el símbolo :,  pero a las variables además de estar definidas se les exige que el valor que contienen no sea la cadena vacía. ${v#p}    ${v##p}   El valor de la variable, pero eliminando del mismo todos los caracteres iniciales que encajen en el patrón p. Si usamos # se elimina la subcadena más corta y si usamos ## se elimina la más larga. ${v%p}   ${v%%p}      Similar a ${v#p} y ${v##p} pero eliminando la subcadena por el final. ${v:ini:num}   Extrae num caracteres de la variable v a partir de la posición ini

Page 5

Variables especiales

$$         Número de proceso del shell script en el que se está utilizando $0         Nombre completo del shell script en que se está utilizando $1..$9   $n hace referencia al n–ésimo argumento de la línea de comandos $?         El código de retorno del último comando ejecutado $#         Número de argumentos $*         La lista de todos los argumentos

Page 6

-            Menos unario !            Negación lógica * / %     Multiplicación, división y resto + -         Suma y resta <= >= < >   Operadores relacionales == !=      Igualdad y desigualdad =            Asignación a variable &&         Y lógico ||          O lógico

Comando let

Page 7

Comando expr

+      Suma -      Resta \*    Multiplicación \ /    División %     Resto

Page 8

Comando test

FICHEROS -e fichero   Cierto si existe fichero -r fichero   Cierto si se tiene permiso de lectura en el fichero -w fichero  Cierto si se tiene permiso de escritura en el fichero -x fichero   Cierto si se tiene permiso de ejecución en el fichero -d fichero   Cierto si fichero existe y es un directorio -f fichero   Cierto si fichero existe y no es un directorio -h fichero   Cierto si fichero existe y es un enlace simbólico -c fichero   Cierto si es un fichero especial de caracteres -b fichero   Cierto si es un fichero especial de bloques -s fichero   Cierto si el tamaño de fichero es > 0 (es decir, no está vacío) CADENAS -n c   Cierto si existe la cadena c -z c   Cierto si la cadena c está vacía (la longitud de la cadena no es cero) c1 = c2   Cierto si las dos cadenas son iguales c1 != c2   Cierto si las dos cadenas son diferentes ENTEROS e1 -eq e2   Cierto si los dos enteros son iguales (e1=e2) e1 -ne e2   Cierto si los dos enteros son diferentes (e1e2) e1 -gt e2   Cierto si e1 es mayor estricto que e2 (e1>e2) e1 -ge e2   Cierto si e1 es mayor o igual que e2 (e1>=e2) e1 -lt e2   Cierto si e1 es menor estricto que e2 (e1 < e2) e1 -le e2   Cierto si e1 es menor o igual que e2 (e1 <=e2) EXPRESIONES (LOGICOS) ! exp   Cierto si la expresión e es falsa (es decir, invierte el sentido de la opción) exp1 -a exp2   Cierto si las dos expresiones son ciertas Exp1 -o exp2   Cierto si la primera o la segunda expresión o ambas son ciertas \( exp \)   Los paréntesis se usan para agrupar expresiones y cambiar el orden de evaluación

Page 9

case..in..esac

case e in    p1,1 | p1,2 | … | p1,n1 ) lista de comandos ;;    p1,1 | p1,2 | … | p1,n2 ) lista de comandos ;;    …    pm,1 | pm,2 | … | pm,n1 ) lista de comandos ;;    *) Lista de comandos;; esac

Page 10

if .. then .. fi

if l1 then     l2 elif l3 then     l4 elif l5 then     l6 … else     ln fi

Page 11

for..do..done

for v in c1 c2 … cn do     lista de sentencias done   for v in {valor_inicial … valor_final} do     lista de sentencias done for v {valor_inicial … valor_final..incremento} do     lista de sentencias done   for v (( EXP1; EXP2; EXP3 )) do     lista de sentencias done   for (( ;  ; )) do     sentencias done  

Page 12

while l1 do      l2 done

while..do..done

Page 13

until..do..done

until l1 do      l2 done

Show full summary Hide full summary

Similar

TIPOS Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
vic m
Hadware de red
Esmeralda Perez
TIPOS Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
LEIDY MELO
Databases
Dean Whittle
GCSE Biology, Module B4
jessmitchell
A2 Organic Chemistry - Reactions
yannycollins
Biology B1
Kelsey Phillips
Teaching Using GoConqr's Tools
Micheal Heffernan
Using GoConqr to teach Maths
Sarah Egan
World War I
Lydia Klein
1PR101 2.test - Část 14.
Nikola Truong