Traducciones: Português, Español, English
1. Operadores
Operadores Aritméticos | |
---|---|
+ |
Adición |
- |
Substracción |
* |
Multiplicación |
/ |
Divición |
% |
Resto |
** |
Exponenciación |
Operadores de Asignación | |
= |
Asigna un valor a una variable |
+= |
Incrementa variable por una constante |
-= |
Disminuye variable por una constante |
*= |
Multiplica variable por una constante |
/= |
Divide variable por una constante |
%= |
Resto de la divición por una constante |
++ |
Incrementa en 1 el valor de la variable |
-- |
Disminuye en 1 el valor de la variable |
Operadores Relacionales | |
== |
Igual a |
!= |
Distinto a |
> |
Mayor que |
>= |
Mayor o Igual que |
< |
Menor que |
<= |
Menor o Igual que |
Operadores Lógicos | |
&& |
Y lógico (AND) |
|| |
O lógico (OR) |
Operadores de BIT | |
<< |
Desplaza a la izquierda |
>> |
Desplaza a la derecha |
& |
Y de bit (AND) |
| |
O de bit (OR) |
^ |
O exclusivo de bit (XOR) |
~ |
Negación de bit |
! |
NO de bit (NOT) |
Operadores de BIT (atribución) | |
<<= |
Desplaza a la izquierda |
>>= |
Desplaza a la derecha |
&= |
Y de bit |
|= |
O de bit |
^= |
O exclusivo de bit |
2. Redireccionamento
Operador | Acción |
---|---|
< |
Redirecciona hacia la entrada estándar (STDIN) |
> |
Redirecciona hacia la salida estándar (STDOUT) |
2> |
Redirecciona hacia la salida de errores (STDERR) |
>> |
Redirecciona hacia la entrada estándar, anexando |
2>> |
Redirecciona hacia la salida de errores, anexando |
| |
Conecta salida estándar a la entrada estándar de otro comando |
2>&1 |
Conecta salida de errores a la salida estándar |
>&2 |
Conecta salida estándar a la salida de errores |
>&- |
Cierra la salida estándar |
2>&- |
Cierra la salida de errores |
3<>arch |
Conecta descriptor de archivos 3 al archivo 'arch' |
<<FIN |
Alimenta entrada estándar (Here Document) |
<<-FIN |
Alimenta entrada estándar, cortando TABs |
<(cmd) |
Salida de comando 'cmd' es un archivo: diff <(cmd1) <(cmd2) |
>(cmd) |
Entrada de comando 'cmd' es un archivo: tar cf >(bzip2 -c >file.tbz) $dir |
3. Variables especiales
Variable | Parámetros Posicionales |
---|---|
$0 |
Parámetro número 0 (nombre del comando o función) |
$1 |
Parámetro número 1 (de la línea de comandos o función) |
... |
Parámetro número N ... |
$9 |
Parámetro número 9 (de la línea de comandos o función) |
${10} |
Parámetro número 10 (de la línea de comandos o función) |
... |
Parámetro número NN ... |
$# |
Número total de parámetros en línea de comando o función |
$* |
Todos los parámetros, como una string única |
$@ |
Todos los parámetros, como varias strings protegidas |
Variable | Misceláneos |
$$ |
PID del proceso actual (del propio script) |
$! |
PID del último job en segundo plano |
$_ |
Último argumento del último comando ejecutado |
$? |
Código de retorno del último comando ejecutado |
4. Expanción de variables
Sintaxis | Expanción Condicional |
---|---|
${var:-texto} |
Si var no está definida, devuelve 'texto' |
${var:=texto} |
Si var no está definida, definir como 'texto' |
${var:?texto} |
Si var no está definida, devuelve el error 'texto' |
${var:+texto} |
Si var está definida, devuelve 'texto', sino devuelve vacío |
Sintaxis | Expanción de Strings |
${var} |
Igual que $var, pero no ambiguo |
${#var} |
Devuelve tamaño de la string |
${!var} |
Ejecuta el contenido de $var (igual a 'eval \$$var') |
${!texto*} |
Devuelve nombres de variables que comienzan con 'texto' |
${var:N} |
Devuelve texto a partir de la posición 'N' |
${var:N:tam} |
Devuelve 'tam' caracteres a partir de la posición 'N' |
${var#texto} |
Corta 'texto' del inicio de la string |
${var##texto} |
Corta 'texto' del inicio de la string (* goloso) |
${var%texto} |
Corta 'texto' del final de la string |
${var%%texto} |
Corta 'texto' del final de la string (* goloso) |
${var/texto/nuevo} |
Substituye 'texto' por 'nuevo', una vez |
${var//texto/nuevo} |
Substituye 'texto' por 'nuevo', siempre |
${var/#texto/nuevo} |
Si string empieza con 'texto', substituye 'texto' por 'nuevo' |
${var/%texto/nuevo} |
Si string termina con 'texto', substituye 'texto' por 'nuevo' |
5. Bloques y agrupamientos
Sintaxis | Descripción | Ejemplo |
---|---|---|
"..." |
Protege una string, pero reconoce a $, \ y ` como especiales | "abc" |
'...' |
Protege una string por completo (ningún carácter es especial) | 'abc' |
$'...' |
Protege una string completamente, pero interpreta \n, \t, \a, etc | $'abc\n' |
`...` |
Ejecuta comandos en un subshell | `ls` |
{...} |
Agrupa comandos en un bloque | { ls ; } |
(...) |
Ejecuta comandos en un subshell | ( ls ) |
$(...) |
Ejecuta comandos en un subshell, devolviendo el resultado | $( ls ) |
((...)) |
Testea una operación aritmética, devolviendo 0 ó 1 | ((5 > 3)) |
$((...)) |
Devuelve el resultado de una operación aritmética | $((5+3)) |
[...] |
Testea una expreción, devolviendo 0 ó 1 (alias del comando 'test')| [ 5 -gt 3 ] | |
[[...]] |
Testea una expreción, devolviendo 0 ó 1 (puede usar && y ||) | [[ 5 > 3 ]] |
6. if, for, select, while, until, case
if | for / select |
---|---|
if COMANDO then ... elif COMANDO then ... else ... fi |
for VAR in LISTA do ... done o: for ((exp1;exp2;exp3)) |
while / until | case |
while COMANDO do ... done |
case $VAR in txt1) ... ;; txt2) ... ;; txtN) ... ;; *) ... ;; esac |
7. Opciones del comando test ó [
Comparando Números | |
---|---|
-lt |
Menor que (LessThan) |
-gt |
Mayor que (GreaterThan) |
-le |
Menor o igual a (LessEqual) |
-ge |
Mayor o igual a (GreaterEqual) |
-eq |
Igual a (EQual) |
-ne |
No igual a (NotEqual) |
Comparando Strings | |
= |
Es igual |
!= |
No es igual |
-n |
No es nula |
-z |
Es nula |
Operadores Lógicos | |
! |
NO lógico (NOT) |
-a |
Y lógico (AND) |
-o |
O lógico (OR) |
Tests sobre archivos | |
-b |
es un dispositivo de bloque |
-c |
es un dispositivo de carácter |
-d |
es un directorio |
-e |
es un archivo existente |
-f |
es un archivo normal |
-g |
el bit SGID está activado |
-G |
el grupo del archivo es el del usuario |
-k |
el sticky-bit está activado |
-L |
el archivo es un link simbólico |
-O |
el archivo pertenece al usuario actual |
-p |
el archivo es un named pipe |
-r |
el archivo tiene permisos de lectura |
-s |
el tamaño del archivo es mayor que cero |
-S |
el archivo es un socket |
-t |
el descriptor de archivos N es un tty |
-u |
el bit SUID está activado |
-w |
el archivo tiene permisos de escritura |
-x |
el archivo tiene permisos de ejecución |
-nt |
el archivo es más nuevo (NewerThan) |
-ot |
el archivo es más antiguo (OlderThan) |
-ef |
el archivo es el mismo (EqualFile) |
8. Escapes especiales para usar en el prompt (PS1)
Escape | Recordatorio | Se expande como... |
---|---|---|
\a | Alerta | Alerta (bip) |
\d | Date | Fecha en formato "Día Mes Fecha" (Sat Jan 15) |
\e | Escape | Carácter Esc |
\h | Hostname | Nombre de la máquina sin el dominio (dhcp11) |
\H | Hostname | Nombre completo de la máquina (dhcp11.empresa) |
\j | Jobs | Número de jobs activos |
\l | Tty | Nombre del terminal corriente (ttyp1) |
\n | Newline | Nueva línea |
\r | Return | Retorno de carro |
\s | Shell | Nombre del shell (basename $0) |
\t | Time | Horario en formato 24 horas HH:MM:SS |
\T | Time | Horario en formato 12 horas HH:MM:SS |
\@ | At | Horario en formato 12 horas HH:MM am/pm |
\A | At | Horario en formato 24 horas HH:MM |
\u | Usuario | Nombre de login del usuario corriente |
\v | Versión | Versión de Bash (2.00) |
\V | Versión | Versión+subversión de Bash (2.00.0) |
\w | Working Dir | Directorio corriente, ruta completa ($PWD) |
\W | Working Dir | Directorio corriente, solo el último (basename $PWD) |
\! | Histórico | Número del comando corriente en el histórico |
\# | Número | Número del comando corriente |
\$ | ID | Muestra "#" para root, "$" para usuarios normales |
\nnn | Octal | Carácter cuyo octal es nnn |
\\ | Backslash | Barra invertida \ literal |
\[ | Escape | Inicia una secuencia de escape (ej: código de colores) |
\] | Escape | Termina una secuencia de escape |
9. Escapes reconocidos por el comando echo
Escape | Recordatorio | Descripción |
---|---|---|
\a | Alerta | Alerta (bip) |
\b | Backspace | Carácter Backspace |
\c | EOS | Termina una string |
\e | Escape | Carácter Esc |
\f | Form feed | Alimentación |
\n | Newline | Nueva línea |
\r | Return | Retorno de carro |
\t | Tab | Tabulación horizontal |
\v | Vtab | Tabulación vertical |
\\ | Backslash | Barra invertida \ literal |
\nnn | Octal | Carácter cuyo octal es nnn |
\xnn | Hexa | Carácter cuyo hexadecimal es nn |
10. Formateadores del comando date
Formato | Descripción |
---|---|
%a |
Nombre día de la semana abreviado (Dom..Sáb) |
%A |
Nombre día de la semana (Domingo..Sábado) |
%b |
Nombre del mes abreviado (Ene..Dic) |
%B |
Nombre del mes (Enero..Diciembre) |
%c |
Fecha completa (Sat Nov 04 12:02:33 EST 1989) |
%y |
Año (00..99) |
%Y |
Año (1970...) |
%m |
Mes (01..12) |
%d |
Día (01..31) |
%j |
Día del año (001..366) |
%H |
Horas (00..23) |
%M |
Minutos (00..59) |
%S |
Segundos (00..60) |
%s |
Segundos desde 1º de Enero de 1970 |
%% |
Un % literal |
%t |
Un TAB |
%n |
Una nueva línea |
11. Formateadores del comando printf
Formato | Descripción |
---|---|
%d |
Número decimal |
%o |
Número octal |
%x |
Número hexadecimal (a-f) |
%X |
Número hexadecimal (A-F) |
%f |
Número con coma |
%e |
Número en notación científica (e+1) |
%E |
Número en notación científica (E+1) |
%s |
String |
12. Identificadores de archivos del comando ls -l
Letra | Recordatorio | Tipos de Archivo (primer carácter) |
---|---|---|
- | - | Archivo normal |
d | Directory | Directorio |
l | Link | Link simbólico |
b | Block | Dispositivo de bloque (HD) |
c | Char | Dispositivo de caracteres (modem serial) |
s | Socket | Socket mapeado a archivo (comunicación de procesos) |
p | Pipe | FIFO o Named Pipe (comunicación de procesos) |
Letra | Recordatorio | Permisos de Archivo (los nueve caracteres siguientes) |
- | - | Permiso desactivado |
r | Read | Acceso de lectura |
w | Write | Acceso de escritura |
x | eXecute | Acceso de ejecución (o acceso al directorio) |
X | eXecute | Acceso al directorio solamente |
s | Set ID | Ejecución para usuario/grupo (SUID, SGID) - permiso 'x' activado |
S | Set ID | Ejecución para usuario/grupo (SUID, SGID) - permiso 'x' desactivado |
t | sTicky | Usuarios solo borran sus propios archivos - permiso 'x' activado |
T | sTicky | Usuarios solo borran sus propios archivos - permiso 'x' desactivado |
13. Comodines para nombres de archivos (glob)
Comodín | Se expande como... | Ejemplo |
---|---|---|
* |
Cualquier cosa | *.txt |
? |
Un carácter cualquiera | archivo-??.zip |
[...] |
Cualquier carácter entre... | [Aa]rchivo.txt |
[^...] |
Cualquier carácter excepto... | [^A-Z]*.txt |
{...} |
Cualquiera de los texto separados por coma | archivo.{txt,html} |
14. Comodines para los ítems del comando case
Comodín | Se expande como... | Ejemplo |
---|---|---|
* |
Cualquier cosa | *.txt) echo ;; |
? |
Un carácter cualquiera | archivo-??.zip) echo ;; |
[...] |
Cualquier carácter entre... | [0-9]) echo ;; |
[^...] |
Cualquier carácter excepto... | [^0-9]) echo ;; |
...|... |
Cualquier texto separado por | | txt|html) echo ;; |
15. Señales para usar con trap/kill/killall
# | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac |
---|---|---|---|---|---|---|---|
1 | HUP | HUP | HUP | HUP | HUP | HUP | HUP |
2 | INT | INT | INT | INT | INT | INT | INT |
3 | QUIT | QUIT | QUIT | QUIT | QUIT | QUIT | QUIT |
4 | ILL | ILL | ILL | ILL | ILL | ILL | ILL |
5 | TRAP | TRAP | TRAP | TRAP | TRAP | TRAP | TRAP |
6 | ABRT | ABRT | IOT | LOST | ABRT | ABRT | ABRT |
7 | BUS | EMT | EMT | EMT | EMT | EMT | EMT |
8 | FPE | FPE | FPE | FPE | FPE | FPE | FPE |
9 | KILL | KILL | KILL | KILL | KILL | KILL | KILL |
10 | USR1 | BUS | BUS | BUS | BUS | BUS | BUS |
11 | SEGV | SEGV | SEGV | SEGV | SEGV | SEGV | SEGV |
12 | USR2 | SYS | SYS | SYS | SYS | SYS | SYS |
# | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac |
13 | PIPE | PIPE | PIPE | PIPE | PIPE | PIPE | PIPE |
14 | ALRM | ALRM | ALRM | ALRM | ALRM | ALRM | ALRM |
15 | TERM | TERM | TERM | TERM | TERM | TERM | TERM |
16 | - | URG | USR1 | URG | USR1 | USR1 | URG |
17 | CHLD | STOP | USR2 | STOP | USR2 | USR2 | STOP |
18 | CONT | TSTP | CHLD | TSTP | CHLD | CHLD | TSTP |
19 | STOP | CONT | PWR | CONT | PWR | PWR | CONT |
20 | TSTP | CHLD | WINCH | CHLD | VTALRM | WINCH | CHLD |
21 | TTIN | TTIN | URG | TTIN | PROF | URG | TTIN |
22 | TTOU | TTOU | IO | TTOU | IO | IO | TTOU |
23 | URG | IO | STOP | IO | WINCH | STOP | IO |
24 | XCPU | XCPU | TSTP | XCPU | STOP | TSTP | XCPU |
# | Linux | Cygwin | SystemV | AIX | HP-UX | Solaris | BSD/Mac |
25 | XFSZ | XFSZ | CONT | XFSZ | TSTP | CONT | XFSZ |
26 | VTALRM | VTALRM | TTIN | - | CONT | TTIN | VTALRM |
27 | PROF | PROF | TTOU | MSG | TTIN | TTOU | PROF |
28 | WINCH | WINCH | VTALRM | WINCH | TTOU | VTALRM | WINCH |
29 | IO | LOST | PROF | PWR | URG | PROF | INFO |
30 | PWR | USR1 | XCPU | USR1 | LOST | XCPU | USR1 |
31 | SYS | USR2 | XFSZ | USR2 | - | XFSZ | USR2 |
32 | - | - | - | PROF | - | WAITING | - |
33 | - | - | - | DANGER | - | LWP | - |
34 | - | - | - | VTALRM | - | FREEZE | - |
35 | - | - | - | MIGRATE | - | THAW | - |
36 | - | - | - | PRE | - | CANCEL | - |
37 | - | - | - | - | - | LOST | - |
Como obtener el listado: trap -l, kill -l ó killall -l
Ver también: man 7 signal
16. Códigos de retorno de comandos
Código | Significado | Ejemplo |
---|---|---|
0 | No hubo errores, ejecución finalizó OK | echo |
1 | La mayoría de los errores comunes | echo $((1/0)) |
2 | Error de uso en algún 'builtin' de Shell | - |
126 | Comando no ejecutable (sin permisos) | touch a ; ./a |
127 | Comando no encontrado ("command not found") | echooo |
128 | El parámetro para 'exit' no es un decimal | exit 1.0 |
128+n | 128 + código de la señal que mató al proceso | kill -9 $PPID #exit 137 |
130 | Programa interrumpido con Ctrl+C (128 + 2) | - |
255 | El parámetro para 'exit' no está entre 0 y 255 | exit -1 |
17. Códigos de colores (ANSI)
Color | Letra | Fondo |
---|---|---|
Negro | 30 | 40 |
Rojo | 31 | 41 |
Verde | 32 | 42 |
Amarillo | 33 | 43 |
Azul | 34 | 44 |
Rosa | 35 | 45 |
Cian | 36 | 46 |
Blanco | 37 | 47 |
Atributo | Valor | |
Reset | 0 | |
Negrita | 1 | |
Subrayado | 4 | |
Parpadeando | 5 | |
Inverso | 7 | |
Ejemplos: ESC [ <N>;<N> m | ||
Texto normal (apaga colores) | ESC[m |
|
Negrita | ESC[1m |
|
Amarillo | ESC[33;1m |
|
Fondo azul, letra gris | ESC[44;37m |
|
Rojo parpadeando | ESC[31;5m |
|
En la línea de comando | ||
echo -e '\e[33;1m amarillo \e[m' |
||
echo -e '\033[33;1m amarillo \033[m' |
18. Metacaracteres de las expresiones regulares
Meta | Nombre | Descripción |
---|---|---|
. | Punto | Comodín para un carácter |
[] | Lista | Cualquiera de los caracteres listados |
[^] | Lista negativa | Cualquier carácter, excepto los listados |
? | Opcional | El objeto previo puede aparecer o no (opcional) |
* | Asterisco | El objeto previo puede aparecer en cualquier cantidad |
+ | Más | El objeto previo debe aparecer como mínimo una vez |
{,} | Llaves | El objeto previo debe aparecer en la cantidad indicada |
^ | Circunflejo | Comienzo de la línea |
$ | Pesos | Fin de la línea |
\b | Borde | Limita una palabra (letras, números y subrayado) |
\ | Escape | Carácter de escape para un meta, lo deja sin efecto |
| | O | Indica alternativas (usar con el grupo) |
() | Grupo | Agrupa partes de la expresión (cuantificable y multinivel) |
\1 | Retrovisor | Recupera el contenido del grupo 1 |
\2 | Retrovisor | Recupera el contenido del grupo 2 (sigue hasta el \9) |
.* | Comodín | Expande como cualquier cosa, es todo o nada |
?? | Opcional NG | Igual a opcional común, pero expande el mínimo posible |
*? | Asterisco NG | Igual a asterisco común, pero expande el mínimo posible |
+? | Más NG | Igual a más común, pero expande el mínimo posible |
{}? | Llaves NG | Igual a llaves comunes, pero expande el mínimo posible |
19. Metacaracteres que son diferentes en las aplicaciones
Programa | Opc | Más | Llaves | Borde | O | Grupo |
---|---|---|---|---|---|---|
awk | ? | + | - | - | | | () |
ed | \? | \+ | \{,\} | \b | \| | \(\) |
egrep | ? | + | {,} | \b | | | () |
emacs | ? | + | - | \b | \| | \(\) |
expect | ? | + | - | - | | | () |
find | ? | + | - | \b | \| | \(\) |
gawk | ? | + | {,} | \<\> | | | () |
grep | \? | \+ | \{,\} | \b | \| | \(\) |
mawk | ? | + | - | - | | | () |
perl | ? | + | {,} | \b | | | () |
php | ? | + | {,} | \b | | | () |
python | ? | + | {,} | \b | | | () |
sed | \? | \+ | \{,\} | \<\> | \| | \(\) |
vim | \= | \+ | \{,} | \<\> | \| | \(\) |
20. Caracteres ASCII imprimibles (ISO-8859-1) - texto
$ zzascii 32 64 @ 96 ` 162 ¢ 194 Â 226 â 33 ! 65 A 97 a 163 £ 195 Ã 227 ã 34 " 66 B 98 b 164 ¤ 196 Ä 228 ä 35 # 67 C 99 c 165 ¥ 197 Å 229 å 36 $ 68 D 100 d 166 ¦ 198 Æ 230 æ 37 % 69 E 101 e 167 § 199 Ç 231 ç 38 & 70 F 102 f 168 ¨ 200 È 232 è 39 ' 71 G 103 g 169 © 201 É 233 é 40 ( 72 H 104 h 170 ª 202 Ê 234 ê 41 ) 73 I 105 i 171 « 203 Ë 235 ë 42 * 74 J 106 j 172 ¬ 204 Ì 236 ì 43 + 75 K 107 k 173 205 Í 237 í 44 , 76 L 108 l 174 ® 206 Î 238 î 45 - 77 M 109 m 175 ¯ 207 Ï 239 ï 46 . 78 N 110 n 176 ° 208 Ð 240 ð 47 / 79 O 111 o 177 ± 209 Ñ 241 ñ 48 0 80 P 112 p 178 ² 210 Ò 242 ò 49 1 81 Q 113 q 179 ³ 211 Ó 243 ó 50 2 82 R 114 r 180 ´ 212 Ô 244 ô 51 3 83 S 115 s 181 µ 213 Õ 245 õ 52 4 84 T 116 t 182 ¶ 214 Ö 246 ö 53 5 85 U 117 u 183 · 215 × 247 ÷ 54 6 86 V 118 v 184 ¸ 216 Ø 248 ø 55 7 87 W 119 w 185 ¹ 217 Ù 249 ù 56 8 88 X 120 x 186 º 218 Ú 250 ú 57 9 89 Y 121 y 187 » 219 Û 251 û 58 : 90 Z 122 z 188 ¼ 220 Ü 252 ü 59 ; 91 [ 123 { 189 ½ 221 Ý 253 ý 60 < 92 \ 124 | 190 ¾ 222 Þ 254 þ 61 = 93 ] 125 } 191 ¿ 223 ß 255 ÿ 62 > 94 ^ 126 ~ 192 À 224 à 63 ? 95 _ 161 ¡ 193 Á 225 á
21. Caracteres ASCII imprimibles (ISO-8859-1) - imagen
22. Códigos listos para copiar y pegar
Condicionales con IF |
---|
if [ -f "$archivo" ]; then echo 'Archivo encontrado'; fi |
if [ ! -d "$dir" ]; then echo 'Directorio no encontrado'; fi |
if [ $i -gt 5 ]; then echo 'Mayor que 5'; else echo 'Menor que 5'; fi |
if [ $i -ge 5 -a $i -le 10 ]; then echo 'Entre 5 y 10 inclusive'; fi |
if [ $i -eq 5 ]; then echo '=5'; elif [ $i -gt 5 ]; then echo '>5'; else echo '<5'; fi |
if [ "$USER" = 'root' ]; then echo 'Hola root!'; fi |
if grep -qs 'root' /etc/passwd; then echo 'Usuario encontrado'; fi |
Condicionales con Y (&&) y O (||) |
[ -f "$archivo" ] && echo 'Archivo encontrado' |
[ -d "$dir" ] || echo 'Directorio no encontrado' |
grep -qs 'root' /etc/passwd && echo 'Usuario encontrado' |
cd "$dir" && rm "$archivo" && touch "$archivo" && echo 'listo!' |
[ "$1" ] && param=$1 || param='valor por defecto' |
[ "$1" ] && param=${1:-valorpordefecto} |
[ "$1" ] || { echo "Uso: $0 parámetro" ; exit 1 ; } |
Adicionar 1 a una variable $i |
i=$(expr $i + 1) |
i=$((i+1)) |
let i=i+1 |
let i+=1 |
let i++ |
Loop de 1 a 10 |
for i in 1 2 3 4 5 6 7 8 9 10; do echo $i; done |
for i in $(seq 10); do echo $i; done |
for ((i=1;i<=10;i++)); do echo $i; done |
i=1 ; while [ $i -le 10 ]; do echo $i ; i=$((i+1)) ; done |
i=1 ; until [ $i -gt 10 ]; do echo $i ; i=$((i+1)) ; done |
Loop sobre las líneas de un archivo o sobre la salida de un comando |
cat /etc/passwd | while read LINEA; do echo "$LINEA"; done |
grep 'root' /etc/passwd | while read LINEA; do echo "$LINEA"; done |
while read LINEA; do echo "$LINEA"; done < /etc/passwd |
while read LINEA; do echo "$LINEA"; done < <(grep 'root' /etc/passwd) |
Comodines en los ítems del comando case |
case "$dir" in /home/*) echo 'dir dentro de /home';; esac |
case "$user" in root|juan|maria) echo "Hola $user !";; *) echo "No te conozco";; esac |
case "$var" in ?) echo '1 letra';; ??) echo '2 letras';; ??*) echo 'más de 2';; esac |
case "$i" in [0-9]) echo '1 dígito';; [0-9][0-9]) echo '2 dígitos';; esac |
Cuadros con Dialog |
dialog --calendar 'abc' 0 0 31 12 1999 |
dialog --checklist 'abc' 0 0 0 item1 'desc1' on item2 'desc2' off |
dialog --fselect /tmp 0 0 |
(echo 50; sleep 2; echo 100) | dialog --gauge 'abc' 8 40 0 |
dialog --infobox 'abc' 0 0 |
dialog --inputbox 'abc' 0 0 |
dialog --passwordbox 'abc' 0 0 |
dialog --menu 'abc' 0 0 0 item1 'desc1' item2 'desc2' |
dialog --msgbox 'abc' 8 40 |
dialog --radiolist 'abc' 0 0 0 item1 'desc1' on item2 'desc2' off |
dialog --tailbox /tmp/archivo.txt 0 0 |
dialog --textbox /tmp/archivo.txt 0 0 |
dialog --timebox 'abc' 0 0 23 59 00 |
dialog --yesno 'abc' 0 0 |
Tip1: dialog ... && echo 'Presionó OK/Yes' || echo 'Presionó Cancel/No' |
Tip2: respuesta=$(dialog --stdout --TIPODECAIXA 'abc' ...) |
23. Atajos de la línea de comando (set -o emacs)
Atajo | Descripción | Tecla Similar |
---|---|---|
Ctrl+A | Mueve cursor al inicio de la línea | Home |
Ctrl+B | Mueve cursor un lugar a la izquierda | ← |
Ctrl+C | Envia señal EOF() al sistema | |
Ctrl+D | Borra un carácter a la derecha | Delete |
Ctrl+E | Mueve cursor al fin de la línea | End |
Ctrl+F | Mueve cursor un lugar a la derecha | → |
Ctrl+H | Borra un carácter a la izquierda | Backspace |
Ctrl+I | Completa archivos y comandos | Tab |
Ctrl+J | Línea nueva | Enter |
Ctrl+K | Corta del cursor al fin de la línea | |
Ctrl+L | Limpa la pantalla (igual que 'clear') | |
Ctrl+N | Próximo comando | |
Ctrl+P | Comando anterior | |
Ctrl+Q | Destraba el shell (ver Ctrl+S) | |
Ctrl+R | Busca en el histórico de comandos | |
Ctrl+S | Traba el shell (ver Ctrl+Q) | |
Ctrl+T | Intercambia dos caracteres de lugar | |
Ctrl+U | Corta la línea entera | |
Ctrl+V | inserta un carácter literal | |
Ctrl+W | Corta la palabra a la izquierda | |
Ctrl+X | Mueve cursor al inicio/fin de línea (x2) | Home/End |
Ctrl+Y | Pega el texto cortado |
24. La caja de herramientas del shellero
Comando | Función | Opciones útiles |
---|---|---|
cat | Muestra archivo | -n, -s |
cut | Extrae campo | -d -f, -c |
date | Muestra fecha | -d, +'...' |
diff | Compara archivos | -u, -Nr, -i, -w |
echo | Muestra texto | -e, -n |
find | Encuentra archivos | -name, -iname, -type f, -exec, -or |
fmt | Formatea párrafos | -w, -u |
grep | Encuentra cadena | -i, -v, -r, -qs, -n, -l, -w -x, -A -B -C |
head | Muestra inicio | -n, -c |
od | Muestra caracteres | -a, -c, -o, -x |
paste | Une archivos | -d, -s |
printf | Muestra texto | ninguna |
rev | Invierte texto | ninguna |
sed | Edita texto | -n, -f, s/esto/aquello/, p, d, q, N |
seq | Cuenta números | -s, -f |
sort | Ordena texto | -n, -f, -r, -k -t, -o |
tac | Invierte archivo | ninguna |
tail | Muestra final | -n, -c, -f |
tee | Archiva flujo | -a |
tr | Transforma texto | -d, -s, A-Z a-z |
uniq | Remueve duplicados | -i, -d, -u |
wc | Cuenta letras | -c, -w, -l, -L |
xargs | Gerencia argumentos | -n, -i |