Saltar al contenido

Ejecutar aplicaciones desde Terminal

21 junio 2009

terminalHoy he estado pensando en porqué cuando pasamos el Reparador de Permisos de Mac OS X, hay permisos que realmente no repara, ya que si lo pasamos una segunda vez, ahí siguen los permisos erróneos. Se me ha ocurrido, que quizás, la causa fuera un problema de falta de privilegios del usuario para modificar ficheros en ciertos directorios.

Así es que me he preguntado cómo podría hacer para ejecutar la Utilidad de Discos, con permisos de root.

Por supuesto, tenía intención de hacerlo desde Terminal. Y tras buscar un rato, he encontrado dos posibilidades de ejecutar aplicaciones .app desde Terminal usando la línea de comandos.

1- Forma sencilla:

Hay un comando en Leopard que nos va a permitir ejecutar cualquier tipo de aplicación desde la línea de comandos. Realmente la función de este comando es comportarse como si hubiéramos hecho doble click en el archivo en cuestión. Hablo del comando: open

La sintáxis del comando es realmente sencilla: open /ruta/de/la/aplicacion/Aplicacion.app

Por ejemplo, si queremos ejecutar la utilidad de Discos, sería tan sencillo como:

open “/Applications/Utilities/Disk Utility.app”

Las comillas son necesarias, porque hay un espacio en blanco en la ruta y como sabéis los espacios en blanco se consideran separadores de los parámetros del comando.

Por supuesto con open no podemos sólo lanzar aplicaciones, sino que podremos abrir cualquier tipo de fichero con su aplicación predeterminada. Recordad, es como si hiciéramos doble click sobre ese fichero.

Si queréis conocer todos los parámetros posibles para ejecutar open, os remito a su manual. Desde Terminal, ejecutad: man open

2- Forma menos sencilla

No he querido poner dificil en el título, porque realmente esta forma de ejecutar una aplicación es tremendamente sencilla, lo que ocurre es que requiere un poquito más de esfuerzo (por llamarlo de alguna forma).

Las aplicaciones .app de Mac OS X, no son más que paquetes que contienen todo lo necesario para que la aplicación pueda ejecutarse de forma adecuada. Estos paquetes contienen los recursos que necesita la aplicación (como vídeos, imagenes, sonidos…), los script de inicio de la aplicación (binarios UNIX), librerías, etc…

Precisamente lo que nos interesa a nosotros son los scripts UNIX para lanzar la aplicación. Son con ellos con los que vamos a interactuar.

Cada aplicación (paquete) tiene una estructura de directorios estándar y por tanto sabremos que el script que nos interesa ejecutar, se va a encontrar siempre dentro de una ruta predeterminada dentro del paquete de la aplicación: Contents/MacOS/NombreApp

Por ejemplo si quisiéramos ejecutar la aplicación Vista Previa con este método, simplemente tendríamos que ejecutar el siguiente comando:

- Primero entramos en la carpeta de aplicaciones: cd /Applications

- Y después hacemos uso de los comandos UNIX para ejecutar el script:

./Preview.app/Contents/MacOS/Preview

Recordad que ./ lo utilizamos en los sistemas UNIX para ejecutar archivos binarios, para los que el usuario tiene permisos de ejecución.

Por supuesto si quisiéramos ejecutar cualquiera de estos comandos como root, simplemente tenemos que añadir delante el comando: sudo

sudo ./Preview.app/Contents/MacOS/Preview

Nos pedirá la contraseña de nuestro usuario. Al escribirla no tendremos eco, no veremos los caracteres que vamos escribiendo, pero tranquilos que sí se están escribiendo. ;)

About these ads
6 comentarios leave one →
  1. 11 agosto 2009 12:26

    ¡Fantástico! Hace tiempo que quería saber cómo hacer esto mismo. Hoy lo necesitaba urgentemente y tu artículo lo explica a las mil maravillas. ¡Muchas gracias por tu aportación, a delicious de cabeza!

    • 11 agosto 2009 13:13

      De nada hombre, para esos estamos. Me alegra que esta entrada le sirva a la gente.

  2. Ángel Mateus Enlace permanente
    14 agosto 2010 18:35

    Se le agradece. Estaba buscando como ejecutar aplicaciones directamente desde el terminal como root y ha sido fabuloso encontrar este artículo. Como soy linuxero, ejecutaba desde la linea de comandos pero ninguna aplicación corria.

    Gracias, gracias.

    • 15 agosto 2010 12:07

      De nada, me alegra que sirva :D

  3. 13 julio 2011 23:04

    Gracias !!! :)

  4. 20 julio 2013 19:46

    No soy mucho de dejar comentarios de agradecimiento perpetua ata vez me ha sido de mucha ayuda así que gracias ;)

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: