— — cat [f1] ... p.76 cmp f1 f2 Filtros — — -ln +n -h cab -t concatena ficheros. sin ficheros: lee EE. compara ficheros. (T/F) p.92 comm p.90 compara conjuntos -13 id. sin columnas 1a ni 3a let421 let431 cuatro dos tres uno cut -ddelim -flista -clista -c2,5-7,10p.75 deja campos de lista. id. caracteres. 2o , 5o .. 7o , 10o .. fin. diff f1 f2 diferencia entre ficheros texto. -e secuencia-ed, lleva de f1 a f2 -c[n] dif. con contexto: n (3) lı́neas p.93 egrep como grep, ER modernas p.88,119 fgrep tira [f1] .. busca lı́neas con tira -v id. sin tira -f fich [f1] .. busca lı́neas de fich en f1 o en EE p.89 grep ER [f1] .. -v p.88,119 head [-n] busca lı́neas con ER. id. sin ER. n (10) primeras lı́neas. p.74 join f1 f2 p.77 nl p.97 une: claves comunes, producto cart. restos lı́nea. -ddel ... id. con delimitador del. -nf nc clave: campo nc, fichero nf -jnf nc idem. † -o listaCamposSalida -o 1.2 campo 2o fichero 1o , .. con f1 y diff -c obtiene f2 p.96 paste [f1] ... concatena lı́neas. -ddel [f1] ...id. con delimitador del. p.76 pr [f1] .. -m -n -wn prepara para imprimir ficheros en columnas paralelas cada fichero n columnas anchura (def. 72) 1 sed [f1] ... editor no interactivo: a SE -e com instrucciones en lı́nea. -f fich instrucciones en el fichero. -n no copia implı́cita a SE p.81 dónde - función - parámetros dónde (nada) todas las lı́neas 3 lı́nea tercera 6,$-2 lı́neas sexta .. última - 2 /ER/ lı́neas contienen ER /ER1 /,/ER2 / desde ER1 hasta ER2 dónde! complemento de dónde p.83 func. p escribe d borra r fich incluye fich a continuación. p.84 s/ER1 /tira2 / substituye 1a ER1 por tira2 p.123 s/.../g id. todas las apariciones sort [f1] ... -k 3,5 +2 -5 +7 [+n1 ] [-n2 ] -tdelim -r -n -u p.86 ordena (ascii) id. según campos 3..5 id. s. campos 3,4,5,8.. † ... (1er campo: 0 ) delimitador de campos orden decreciente ordena números quita lı́neas repetidas -c id. con recuento. -d iguales consecutivas: deja 1 lı́nea p.88 wc [f1] .. cuenta lı́neas, palabras y caract. -l sólo lı́neas -w palabras -c caracteres. p.100 — — split [f1] parte fichero/EE. cada 1000 lı́neas. en xaa, xab, ... [-n] [f1] id. cada n lı́neas. f1 rz id. en rzaa, rzab, ... - rz id. entrada estándar (EE). tail [-n] [-n +p] [±nb] [±nc] p.74 tr sec1 sec2 [-c] [-s] p.80 [-d] sec1 uniq n (10) últimas lı́neas. desde la lı́nea p al final. id. bloques. id. caracteres. cambia carac. id. posición. complemento sec1 elimina susbs. repetidas. borra caracteres en sec1. quita lı́neas iguales consecutivas. 2 Comandos — calculadora scale=n n decimales obase=n base (salida) base (entrada) p.204 ibase=n btoa -a p.212 cal cd p.61 last [n] us p.30 trabajar en directorio de entrada dir id. en dir chgrp gr f .. asocia f al grupo gr cp f1 f2 f1 ... dir -p p.46 p.115 p.223 du [dir] disco ocupado, cada directorio -a id. cada fichero -s id. en resumen (dir) p.222 echo exit file escribe parámetros en SE acaba sesión (sh) logout acaba sesión (sh) lpq presenta la cola de impresió lpr [f1] lprm [n] quita un trabajo (n) de la cola de impresión ls [dir] lista nombres (ficheros, dirs, etc.) en dir -l id. con más información -x en varias columnas (no -l y nombres empiezan por ‘. p.14 -a con número de i-nodo p.42 -i indica tipo de objeto p.58 -F -d sólo información del direct aplica recursivamente a su p.62 -R con fecha comple p.14 --full-time mail p.16 p.3 find dir cond1 .. busca en dir qué objetos cumplen las condicion(es) p.218 -name nm su nombre es nm -mtime [±]n modificado hace (±)n dı́as -atime [±]n accedido hace (±)n dı́as -size [±]n tamaño (±)n bloques semej. mailx (más sencillo mailx tipo/contenido de objeto/fichero p.16 3 pone en cola para imprimi p.116 copia ficheros, f1 a f2 id. f1 a dir/f1 mantiene fechas, dueño, .. df espacio libre en discos/particiones f2 : otro nombre de f dir/f1: otro nombre d f2 apunta a f1 p.23 chmod mod f .. cambia permisos de f [quien] ± perm [u] [g] [o] dueño, grupo, otros [r] [w] [x] leer, escribir, ejecut/inodo rwxr--r-p.114 744 chown us f .. da f a us más reciente que f fichero directorio i-nodo n imprime (T) \; ejecuta com últimas (n) sesiones id. del usuario us ln f1 f2 p.41,63 f1 ... dir p.46 -s f1 f2 convierte: binario → ascii id. ascii → binario saca calendario del mes actual a id. del año a m a id. del mes m del año a p.203 -newer f -type c -type d -inum n -print -exec com .. kill pid termina el proceso pid (se -9 ya! envı́a esa señal p.127 -señal — bc p.41,63 p.75 numera lı́neas no blancas. -ba id. todas. patch p.97 longitud (def. 66) salta n − 1 pags. pone otro encabezamiento. suprime lı́neas previas, finales, y cabecera. p.7 p.55 lee correo -f fch lee correo guardado e idus envı́a correo al usuari ret presenta mensaje siguien id. anterior n salta mensaje n-ésimo d marca mensaje para bor r para contestar a un men s fch salva mensaje en el fiche ~v permite editar (vi) el m make [ob ] actualiza el objetivo o -n sólo indica las accione -s actualiza en silencio p.167 4 man com manual del comando com p.25 mkdir dir1 dir2 crea directorio(s) p.62 more [f1].. presenta pantalla a pantalla p.19 mv f1 f2 f1 ... dir d1 d2 p.63 p.42 renombra f1 a f2 id. f1 a dir/f1 id. directorios od -b vuelca fichero/EE, formato octal -c id. formato carácter/octal p.21 passwd cambia contraseña ps [-]a x e p.126 f pwd p.11 muestra estado de mis procesos .. y ajenos .. y sin terminal asociado todos (Sys.V) información ampliada (Sys.V) nombre del directorio de trabajo p.61 :q acaba vi :q! acaba vi aunque se pierda cambios esc pasa a modo corrección :w [f ] guarda cambios (en el fichero f ) :w! id. aunque se pierda información : rango w id. lı́neas en el rango :.+,$w desde siguiente hasta última :r [f ] trae debajo f (o el fichero actual) :r! com trae debajo SE de ejecutar com :n pasa a editar el fichero siguiente :n! aunque se pierda ... :! com ejecuta com :!sh abre sesión anidada p.49 p.181 rm f1 .. borra (nombre de) un fichero -i id. interactivo -f fuerza, no pregunta nada. p.42 -r dir borra todo bajo dir rmdir dir1 ... borra directorio(s) spell [f] lista palabras desconocidas tar p.213 c x t v f fich -T fl - touch f crea o marca actualizado f umask n p.71 p.169 escribe valor máscara-u pone valor máscara-u units convierte unidades — p.205 maneja archivos formato tar crea extrae lista verboso, charlatán fich: origen(x) destino(c) fl: fichero con lista incluir EE (x), SE (c) tee f copia EE a SE y al fichero f p.115 p.62 — vi (ej: HP a Kw) — p.206 — vi f1 ... edita fichero(s) -c com comando(s) inicio de edición ./.exrc , o $EXINIT o ~/.exrc p.202 p.199 :wq — — — — — — — — — — — con ficheros guarda cambios y acaba vi 5 — — — — — — — — — — — — — s.o.s. :vi vuelve a modo visual ret.ret de modo-lı́nea-inserción a modo-lı́nea-corrección h j k l b B w W e E 0 | n| ˆ $ + ret % ( ) { } [[ ]] H nH M 2L — — — — — — — — — — — movimientos atrás un carácter abajo una lı́nea arriba una lı́nea adelante un carácter atrás una palabra atrás una palabra larga adelante una palabra adelante una palabra larga adelante a fin de palabra adelante a fin de palabra larga a la columna 1 a la columna 1 a la columna n a primera columna no blanca a última columna a comienzo de lı́nea anterior a comienzo de lı́nea siguiente a comienzo de lı́nea siguiente a paréntesis/llave asociado a comienzo de frase a fin de frase a comienzo de párrafo a fin de párrafo a comienzo de sección a fin de sección a primera lı́nea de pantalla a lı́nea n de pantalla a lı́nea media de pantalla a lı́nea penúltima de pantalla 6 L ˆB ˆU ˆD ˆF 1G nG G p.185 FC fC TC tC ; /ER ?ER n N a última lı́nea de pantalla atrás una pantalla atrás media pantalla adelante media pantalla adelante una pantalla comienzo del fichero lı́nea n-ésima fin del fichero (última lı́nea) — — — — — — — — — mov. - búsquedas mueve hasta C (hacia atrás) mueve hasta C (hacia adelante) mueve casi hasta C (hacia atrás) mueve casi hasta C (hacia adelante) repite última búsqueda busca ER (hacia adelante) busca ER hacia atrás repite última búsqueda repite última búsqueda (invierte sentido) ’C a posición marcada m C marca posición p.53 — — — — — — — — — — — — a inserción I i a A O o R inserta al comienzo de la lı́nea inserta antes del cursor añade después del cursor añade al final de la lı́nea abre lı́nea nueva encima e inserta abre lı́nea nueva debajo e inserta entra en modo reempazo r ˜ reemplaza carácter bajo el cursor cambia mayúscula / minúscula p.54 X x J dd yy Y — — — — — — — — — — — — — borrado borra el carácter anterior al cursor borra el carácter bajo el cursor junta lı́nea actual y siguiente borra lı́nea actual lleva a bufer lı́nea actual id. mov (imiento), y lo lleva a bu ymov lleva a bufer el objeto abarc por el mov (imiento) cmov cambia el objeto abarcado p el mov por lo que se teclee !mov com filtra con com el objeto abarcado por mov (imien P trae (antes) el contenido de bu p trae (después) el contenido de ”C a/de bufer nombrado antes de: d y c p P xp cambia carácter actual y sigui ddp cambia lı́nea actual y siguient p.192 ————————————— ˆG ˆL informa estado del fichero y ed refresca la pantalla ˆY ˆE expone una lı́nea por arriba expone una lı́nea por abajo :map C val :so f :set sm :set nu :set wm=n :set all define macro C toma como EE el fiche muestra el modo muestra número de lı́n permite escritura conti muestra opciones :g/ER/d borra lı́neas con ER :rango m ln mueve lı́neas (rango) b :rango s/ER1 /tira2 /g substituye todas ... en Versión provisional (v0.29). (11 de marzo de 2009) C LCearra (http://lem.eui.upm.es/luisj Números de página referidos a la 2 ción (prólogo de Febrero de 1999) d temas Abiertos-Unix (isbn: 84-87238 http://lem.eui.upm.es/~luisjc/sa/resumen-c . repite última modificación u deshace última modificación U deshace modificaciónes en lı́nea ”1P.. recupera 3 últ. objetos borrados n (previo) n veces (casi siempre) p.187 — — — — — — — — — — .. * movimiento dmov borra el objeto abarcado por el 7 8 — — sh — — sh interpreta comandos de EE f id. del fichero f -v escribe lo que lee -x escribe ‘+’ y comandos set -v escribe lo que lee set -x escribe ‘+’ y comandos * ? [13F] [..-..] secuencia (≥ 0) de caracteres cualquier carácter uno de esos caracteres ... rango > f >> f < f c1 | c2 << cent escribe en f (SE) id. a continuación lee de f (EE) la SE de c1 → EE de c2 lee (EE) lo que viene a continuación (hasta cent) p.66 > f 2>&1 c1 2>&1 | .. SEE con SE id. p.103 p.249 p.33 p.250 ejecuta y substituye por SE literal el carácter siguiente literal hasta siguiente igual id. salvo ‘ \ $ p.106 continúa en f , luego vuelve. p.247 comentario hasta fin lı́nea ; & (...) separa comandos ejecuta modo no interactivo crea proceso para ‘( )’ $n $0 shift v =val $v ${v} HOME PATH $$ $# $? $* parámetro n-ésimo nombre del programa $1 // , $1 ← $2 , ... asigna val a la variable v valor de la variable v id. directorio de entrada directorios de ejecutables identificador del proceso número de parámetros valor último comando lista de parámetros 9 p.237 while expresiónBooleana do listaComandos done p.238 if expresiónBooleana then listaComandos [else listaComandos ] fi case expresión in patrón ) listaComandos ;; ... esac ‘...‘ \ ’ " .f # c1 && c2 Y, si bien c1 : c2 c1 || c2 O, si mal c1 : c2 for v in listaPalabras do listaComandos done [function] nombreFunción () { listaComandos } p.242 read v1 ... — p.238 p.234 p.240 p.230 p.233 p.234 p.239 p.251 p.247 dirname p parte de directorios d/d2/a d/d2 a ./ p.246 evalúa expresión (en parámetros) * / % > < >= <= != & (se ajusta, ER ~ed) test expr evalúa condición/expresión [ expr ] id. -r f f existe y se puede leer. -w f ” se puede escribir. -x f ” tiene bit x. -f a a existe y es fichero -d a ” es directorio -u a ” tiene bit s us. -t SE hacia un terminal -z s longitud(s) es cero -n s longitud(s) no es cero s1 = s2 las tiras son idénticas 10 — p.245 ficheros de inicio p.248 awk — — awk pr [f ] .. aplica el programa pr a EE o al fichero(s) f .. -f fp el programa está en fp -F C el separador de campos es C p.143 p.125 p.103 lee: EE → variable(s) /etc/profile $HOME/.profile basename p [t ] p sin directorios (ni t ) expr + = | : p.241 s1 != s2 ” no son idénticas n1 -eq n2 los números son iguales n1 -ge n2 n1 ≥ n2 -ne -le -lt -gt -a Y -o O ! NO (...) agrupa programa: [ BEGIN {acción} ] [ dónde {acción} ] ... [ END {acción} ] dónde BEGIN prólogo p.145 END epı́logo (nada) registros, todos /ER/ registros con ER /ER1 /,/ER2 / desde ER1 hasta ER2 exprBooleana registros exprB cierta acción: secuencia de sentencias (nada) → print $1 campo 1o p.148 $99 campo 99o $0 todo el registro NR número de registro NF ” campos FS separador de campos RS ” registros OFS ” campos en salida FILENAME nombre del fichero print .. , .. imprime, formato implı́cito print ≡ print $0 p.149 printf(fm [,e1 ] ..) imprime con formato sprintf(fm [,e1 ] ..) convierte a formato \n cambio de lı́nea \r retorno de carro 11 \t \033 \nnn % %d %o %x %f %e %s %n... %0n... %-... %+... %8.3f %% tabulador escape ascii (número octal) formato ... decimal octal exadecimal coma fija notación cientı́fica tira de caracteres ... anchura n ... rellenando con ceros ... ajustando a la izquie ... ” derech anchura total 8, decima ‘ % ’ literal length(s) longitud de s substr(s,p,n) subtira de s, comi en p, longitud n substr(s,p) id. hasta el final index(s,s1) 1a posición de s1 e si no aparece: 0 s1 s2 encadena las tiras split(s,v,sep) parte s en el array devuelve núm. de p.161 < ~ !~ && || ! == > <= contiene no contiene != Y (secuencial) O (secuencial) NO if ( expresiónBooleana ) { sentencias } [ else { sentencias } ] while ( expresiónBooleana ) { sentencias } for ( sentencia1 ; expresiónBooleana ; sentencia2 ) { sentencias } for ( ind in vArray ) { sentencias } 12 >= comentario hasta fin lı́nea # + - * / % int(n) exp(n) log(n) sqrt(n) parte entera en logaritmo neperiano √ n v += expr -= ≡ v = v + expr *= /= %= v ++ ++ v v --- v (...) * + ? | p.156 function nombreF(listaParametros, espacio listaVarsLocales){ sentencias } p.164 compresión: comprime a SE tar pack unpack .z pcat compress .. -d .Z zcat gzip gunzip .gz gzcat bzip2 bunzip2 .bz2 bzcat — — expresiones regulares \C ^ $ . [abZ] [..-..] [^...] * — en red — — quita significado especial comienzo de lı́nea fin de lı́nea cualquier carácter (salvo lf) uno de esos caracteres ... rango ... complemento (salvo lf) cero o más veces lo anterior acceso a la máquina m p.260 p.258 rlogin m conecta con la máquina m -l ur id. como usuario ur p.257 rsh m c -n p.257 telnet m xarchie ejecuta c en la máquina m se toma EE de /dev/null conecta con la máquina m sin entorno unix cliente-X, busca en ftp’s p.262 Versión provisional (v0.29). (11 de marzo de 2009) C LCearra (http://lem.eui.upm.es/luisjc.html) Números de página referidos a la 2a edición (prólogo de Febrero de 1999) de Sistemas Abiertos-Unix (isbn: 84-87238-97-1) http://lem.eui.upm.es/~luisjc/sa/resumen-cu.html p.121 \{n1,n2 \} entre n1 y n2 repeticiones .. \{n \} n repeticiones de lo anterior p.121 13 — ftp m transferencia de ficheros con m anonymous sin cuenta remota binary caracteres no imprimibles get f trae f lleva f p.262 put f p.261 2.- antiguas p.121 \(...\) (sub)expresión marcada \n n-ésima (sub)expresión marcada \< comienzo de palabra \> fin de palabra 4.- modernas — rcp m1 m2 copia remota de m1 a m2 z j p.120 3.- antiguas sin vi p.123 1. más a la izquierta 2. más largo ping m 1.- común 1 2 3 4 x x x x x x x substituciones: ajuste — p.209 des.. ed grep more sed vi awk egrep p.161 toma valor, incrementa después incrementa antes decrementa después decrementa antes p.162 agrupar cero o más repeticiones .. anterior una o más repeticiones .. anterior cero o una vez lo anterior alternativa 14