Sobreviviendo commando style

797 views

Published on

Charla sobre la potencia de la terminal de MacOSX en una NSCoder Night en Madrid el 2011-05-11.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Sobreviviendo commando style

  1. 1. Sobreviviendocommando style Jorge Ortiz (@jdortiz)
  2. 2. ¿Por qué?• Porque podemos.• Porque hay cosas que es mejor hacerlas con comandos: contar, buscar en los contenidos, repetir y ver diferencias, etc.
  3. 3. Mac OS X es UNIX• Derivado de BSD (Darwin).• Suave por fuera y poderoso por dentro.• Shell = superpoderes• Dos ideas centrales: • Todo es un fichero • Utilidades dedicadas a una sola tarea que resuelve muy bien.
  4. 4. “Unix is user-friendly. Itsjust very selective about who its friends are.”
  5. 5. Redirecciones• Se puede guardar la salida de 0 cualquier comando con > (stdout)• Y también la de error con 2> 1 (stderr)• También se le puede pasar la 2 entrada con < (stdin)• Se puede añadir en vez de truncar con >>• cat envía un fichero por stdout ls > Listado.txt• echo envía lo siguiente por stdout.
  6. 6. Las tuberías (pipes)• Permiten encadenar las salidas de un comando con la entrada del siguiente. ps aux | grep root• Supone tratar el texto en el formato en el que viene.• Hay comandos que ayudan a convertir de un formato a otro.
  7. 7. Ejemplos con tuberías• Listar los procesos del root ps aux | grep root ps aux | awk ‘/root/ { print $0}’• Contar los procesos de shell ps aux | grep bash | wc -l• Mostrar los PIDs de las shells de root ps aux | grep bash | awk ‘{if($1==”root”) print $0}’ | grep -v bash ps aux | awk ‘/bash/ {if($1==”root”) print $0}’ | grep -v awk
  8. 8. Comandos utiles• Ficheros: ls, find, chmod, chown, chgrp, cp, mv, tar.• Procesos: ps, kill• Filtrado: grep, awk, perl, python... (con expresiones regulares).• Procesado: sort, wc, diff• Distribución: xargs y find -exec
  9. 9. man comando Ayuda
  10. 10. Y para las repeticiones• Shell script: secuencia de comandos con lógica de decisión y variables.• Permiten verificar un proceso complejo• Por ejemplo, copias en un USB del código, información del control de versiones.
  11. 11. Integración con Mac OS X• Abrir el finder: open .• Abrir lo que sea open ____• Interactuar con pasteboard (pbcopy y pbpaste).• Ver lo que hace un programa: opensnoop (similar a lsof basado en DTrace pero en continuo).• Usar la capa de invisibilidad de Potter: SetFile -a V ___• Hasta habla: say “Hello, boss”
  12. 12. GraciasNSCoder Night Madrid 11/05/2011

×