# [HOW TO] Launch Application from Terminal?



## Kiup (Feb 26, 2003)

How do I launch an application from the terminal?

Thanks for the help


----------



## gatorparrots (Feb 26, 2003)

The command is simply *open* (which can also be used for opening directories). The most basic example of launching an application:
open /path/to/some.app

More complex possibilities also exist:
open "/Volumes/Macintosh HD/foo.txt"
opens the document in the default application for its type (as determined by LaunchServices).

open /Applications/
opens that directory in the Finder.

open -a /Applications/TextEdit.app "/Volumes/Macintosh HD/foo.txt"
opens the document in the application specified (in this case, TextEdit).

open -e "/Volumes/Macintosh HD/foo.txt"
opens the document in TextEdit (the *-e* option specifies TextEdit).

open http://www.apple.com/
opens the URL in the default browser (lynx, naturally *wink*)

open "file://localhost/Volumes/Macintosh HD/foo.txt"
opens the document in the default application for its type (as determined by LaunchServices).

open "file://localhost/Volumes/Macintosh HD/Applications/"
opens that directory in the Finder.


----------



## Kiup (Feb 26, 2003)

Thanks allot, very simple, just couldn't seem to find the info anywhere.  Thanks again!!!


----------



## gatorparrots (Feb 26, 2003)

If you need to edit a root-owned system configuration file, it is possible to do so with a graphical text editor, for example.

*Carbon Applications*
Older Carbon applications have to be run via *LaunchCFMApp* because they are in the wrong binary format for Mac OS X, so LaunchCFMApp handles the necessary translation. 

To launch a Carbon application directly (without using open), one has to actually run LaunchCFMApp, giving it the application as an argument:
/System/Library/Frameworks/Carbon.framework/Versions/Current/Support/LaunchCFMApp '/path/to/some/application'. 

*open* can also be used to launch Carbon applications. *open* simulates a double click, hence the package name is given, rather than the full path to the executable. *open*'s main advantage is in opening documents since it uses the Finder's 'open with' database of what applications open what documents, and in opening Carbon applications. Using *open*, most of the difficult work is done for you: open '/path/to/some/application'

To launch a Carbon application with root privileges, you have to prepend *sudo -b* to the first command above. Here is a specific example:
sudo -b /System/Library/Frameworks/Carbon.framework/Versions/Current/Support/LaunchCFMApp '/Applications/BBEdit Lite 6.1/BBEdit Lite 6.1 for OS X'

*Cocoa Applications*
To run applications as root, we use *sudo*.  However combining *open* and *sudo* in this form:
sudo open /path/to/some.app
results in *sudo* running *open* as root, but _*open* still opens the application as the original user_!!!

Therefore, the longer method of specifying the full path name for Cocoa applications (not just to the *.app* package, but to the actual executable): 
sudo "/Applications/TextEdit.app/Contents/MacOS/TextEdit"

(The *-b* flag can be specified to run appropriate applications in the background. You can't use *&* and *sudo* when an authentication password is required, necessitating the need for the *-b* flag.)


----------

