Este documento ofrece una introducción a la línea de comandos en Mac OS X, destacando que es un sistema operativo UNIX y que todo es un archivo. Explica conceptos como redirecciones de entrada/salida, tuberías para encadenar comandos, y comandos útiles como ls, find, grep y awk. También cubre shell scripts, integración con el entorno gráfico de Mac OS X, y recursos como man y say.
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. 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.
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. 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. 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
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. 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”