miércoles, 24 de octubre de 2012

Linux I/O

La salida (Output) en pantalla se puede redireccionar a un fichero con el signo ">"
Standard Output (el contenido útil): 
  • ls -l /usr/bin > listado_bin.txt : crea fichero con el listado de ficheros de la carpeta /urs/bin (salida estandard)
  • ls -l /usr/bin >> listado_bin.txt : añade a continuación del ya existente carpeta /urs/bin
  • > listado_bin.txt : vacia el fichero
 Standard Error (los errores):
  • ls -l /bin/usr 2> ls-error.txt
  • ls -l /usr/bin &> est_err.txt : crea fichero con listado de ficheros y añade al final los errores
  • ls -l /bin/usr 2> /dev/null : para no mostrar errores, envía los mensajes al fichero /dev/null 
> : La toma (Input) de ficheros se puede redireccionar (>) a un fichero con:
  • cat movie.mpeg.0* > movie.mpeg : concatena todos los vídeos en uno
  • cat sirve para listar ficheros cortos (es un "less" pero sin parar en cada página)
  • cat > captura_teclado.txt 
    • Teclear: "Esto es una prueba de captura de teclado."
    • Pulsar [CTRL] + [D]
    • less captura_teclado.txt
| : Operador Pipe, para hacer Pipeline : lee el Standard Input y los saca en el Standar Ouput 
  • ls -l /usr/bin | less : lista el directorio "bin" con todas la páginas (Pipeline)
  •  ls /bin /usr/bin | sort | less : lista ordenada de todos los archivos de dos directorios (Filter)
  • ls /bin /usr/bin | sort | uniq | less : lo de antes pero sin duplicados (uniq)
  • ls /bin /usr/bin | sort | uniq -d | less : lista de los duplicados
wc : cuenta las líneas, palabras y bytes
  • wc ls-output.txt 
    • 7902   64566   503634 cuentame.txt :  lineas - palabras - bytes del fichero cuentame.txt
  • ls /bin /usr/bin | sort | uniq | wc -l 
    • 2728 :  numero de programas únicos 
grep : busca texto dentro de ficheros
  •  ls /bin /usr/bin | sort | uniq | grep zip : lista ordenada de todos las veces únicas que sale zip
    • bunzip2
    • bzip2
    • gunzip
    • gzip ...
head / tail : muestra el inicio y final de un fichero
  • head -n 5 ls-output.txt : lista la n=5 primeras lineas
    • -rwxr-xr-x 1 root root 31316 2007-12-05 08:58 [
    • -rwxr-xr-x 1 root root 8240 2007-12-09 13:39 411toppm ...
  • tail -n 5 ls-output.txt : lista las n=5 últimas lineas ...
    • -rw-r--r-- 1 root root 930 2007-11-01 12:23 zonetab2pot.pyo
    • lrwxrwxrwx 1 root root 6 2008-01-31 05:22 zsoelim -> soelim
  • ls /usr/bin | tail -n 5 : lista los últimos 5 ficheros de la carpeta /usr/bin
  • tail -f /var/log/messages : muestra continuamente (-f) el progreso del fichero de messages
    • Para detener pulsar [CTRL]+[c]
tee : muestra como va el proceso
  • ls /usr/bin | tee ls.txt | grep zip : guarda el fichero ls.txt con el listado de /usr/bin y muestra "algo" del proceso.
    • bunzip2 bzip2 gunzip gzip unzip zip zipcloak zipgrep zipinfo zipnote zipsplit