Mac Execute App From Terminal

OS X's command line and I have never been what I'd call 'friendly'; rather, we have a mutual respect and understanding about not messing with each other. (Well, as much of a mutual respect as one can have between a human being and a code window.)

Oct 26, 2013  Question: Q: How to execute any app from the terminal but running as root. I need to run one of the apps in /Applications so that it is run by root, opening it from the terminal. Well what I want to do is run a program called DeltaWalker which tries to make directories in my 2 Mac machines to be the same. As it is now, the.

While the average person should never have any reason to visit Terminal, Apple's command line interface app actually does give you access to quite a few neat tricks and shortcuts... if you're willing to take a peek.

What is Terminal?

Apple's Terminal app is a direct interface to OS X's bash shell — part of its UNIX underpinnings. When you open it, Terminal presents you with a white text screen, logged in with your OS X user account by default.

Here's the important part: With a system administrator account and password, you have direct access to tweaking almost everything about your computer's software code; that means that while this little window provides great power, it comes with great responsibility. In short, be careful before using Terminal to execute commands, and make sure you understand what you're typing.

You can also use Terminal to securely connect to other machines, web servers, and even create your own scripts, but those are how-tos for another day. For now, we're going to focus on using Terminal to explore your own computer.

Basic Terminal commands you should know

Before we get started with the fun stuff, let's learn some basic Terminal terminology and commands. These form the framework for more complex interactions (aka, the fun stuff).

How to execute a Terminal command

You can type something in the Terminal window until you're blue in the face, but it won't execute until you press the Return key on your keyboard. At that point, it will either return an error if you've typed something incorrectly, or the command will execute.

Unless you're executing a command that requires the display of text in Terminal, you won't have any indicator that what you've done has been successful; you'll just get a new line with your user name on it once the command is finished processing.

When writing commands and paths in Terminal, almost everything is case sensitive: This means that you need to remember to properly capitalize 'Dock' when referring to the Dock, or OS X won't understand your command.

What's a path?

You can use Terminal to get direct access to your files without using the Finder. To do so, you build something called a path. Paths look similar in some ways to website sub-directories, and follow the structure of your folders.

Paths take two forms: absolute paths and relative paths. An absolute path starts at the root level of your hard drive, and is displayed as '/'. So if you wanted to make a path to your Applications folder, you would write '/Applications/'.

Relative paths are defined based on where you've already navigated to, and represented by './'. For instance, if you go to the '/Applications/' folder in Terminal, that's your current working directory (cwd). You can then get to your Utilities folder by typing './Utilities/' rather than '/Applications/Utilities'.

When you first launch Terminal, you're starting in the current working directory of /Users/myusername/ (also known as your User folder).

How to display and move between files in Terminal

To actually put all this path knowledge to use, you'll need the Terminal commands for displaying and changing files.

ls: The 'ls' command, by itself, displays the contents of the cwd. So if I were just to type 'ls' in Terminal, it would display the contents of my user directory:

You can optionally add an absolute or relative or path if you want to view a different directories. So, for example, if I wanted to view the Utilities folder inside Applications, I could type 'ls /Applications/Utilities/'. This won't change your current working directory, but it'll let you view other directories on your hard drive.

You can add options to view more information about that directory. The options for 'ls' include:

  • -l, which lets you view the permissions of each file in the directory
  • -R, which will not only show each folder in the directory, but all their files, as well
  • -a, which will show any hidden files in the current directory

cd: Where the 'ls' command lets you view a directory, the 'cd' command will actually move to that directory (change your cwd). For instance, if after viewing the Utilities folder, you want to move to it, you'd type 'cd /Applications/Utilities/'.

pwd: Write this command by itself to help you remember the path of your current directory. When typed into terminal, it will print the full path of your cwd.

man: This command, followed by another Unix command, lets you read the Unix manual about the second command. This is super useful if you want to try a cool Terminal trick you found online, but aren't sure what those commands actually do.

Run application from terminal mac

For instance, typing 'man ls' will get you information on the 'ls' command, which lists directory contents.

How to modify files, folders, and preferences in Terminal

defaults: This command is often used in Terminal tips and tricks to tweak applications and system settings via their preference files. You can use it to do things like disable transparency in the menu bar, always show your scroll bars, change trackpad behavior, and much much more. You'll usually see this paired with either 'write' and a string, as with this:

The code above lets you save all your screenshots as JPGs instead of the system default PNG.

killall: If you execute a Terminal command that affects any system process or app, you're going to need to reboot the process to make it take effect. 'killall' followed by the process will do so. (This is also another way to force quit misbehaving apps or processes if your Force Quit menu isn't behaving.) Remember, this command and its target are case sensitive.

ln: OS X has long offered aliases, which let you create links to files, folders, and applications elsewhere in the system without having to duplicate them. Unfortunately, certain apps don't play well with aliases. With the link command 'ln -s', you can create a low-level, UNIX-based symbolic link which most system processes will recognize. Likely, you'll never have to make a symbolic link, but on the off-chance you want to perform a Terminal trick that requires them, this is how you do it.

The first path listed is your original file's path; the second path is where you'd like your symbolic link.

chflags: This commands lets you view and change the flags on a file or folder. For most people, the only flags you're going to care about are 'hidden' and 'nohidden', which hide and unhide documents, respectively.

sudo: If you spend any time online, you've probably heard of 'sudo' before. This is Unix's override command, and lets you execute any command as an administrator — provided, of course, that you have the requisite password and permissions. It probably goes without saying, but as a Terminal beginner, it's generally a good idea not to mess with commands like 'sudo' unless you are 100 percent sure what you're doing.

How to use Terminal for fun and whimsy

say: Feeling lonely? You can make your computer say anything you like with the 'say' command, and you can even record it in audio format to your desktop, if you so choose.

telnet towel.blinkenlights.nl: This isn't technically something local to your Mac, but it's my all-time favorite Terminal trick. Some kind soul on the internet made an all-ASCII version of Star Wars: A New Hope; run the following code, and you'll be treated to a full showing. If it doesn't make you smile just a little bit, you might be dead inside.

macOS Catalina

Main

We may earn a commission for purchases using our links. Learn more.

Hacked

Breaking: More Twitter account features disable due to crypto hack

Verified and non-verified Twitter accounts are having some features disabled, including the ability to tweet. Twitter is recommending resetting your password.

Very often, in OS X, when one has a terminal command that needs to be used often, it's convenient to turn that UNIX command into a double-clickable desktop file with a recognizable icon. How can that possibly be done? I'll show you how.

OS X is based on BSD UNIX

Here's the basic outline of this tip.

  1. Create a UNIX script with a text editor that contains one or more terminal commands.
  2. Make it executable.
  3. Double click it in the Finder.

It's really quite simple, but there are a few things to be aware of. I'll walk you through it and add some notes as needed.

I. Create a script. UNIX scripts are similar to AppleScript. There are commands and a syntax. From time to time you'll see articles that show how to change an OS X preference from the command line. For example, you may have seen this terminal command that strips the drop shadow from your screenshots:

Note #1. The Terminal app location is /Applications/Utilities/Terminal.app

Scripts are a sequence of commands, managed by the scripting language, to a achieve a task. The easiest way to write a script is to use a text editor, like OS X's built-in TextEdit, found in the Applications folder.

Note #2. Make sure the Preferences for TextEdit are set correctly. Preferences > New Document > Plain text. Once set, relaunch TextEdit.

Here's a simple script that uses the 'uptime' command to display how long it's been since your Mac was rebooted.

Note #3. The first line tells OS X to use the Bash scripting language. There are several to chose from. We won't dig into that here.

Copy and paste this script into a new TextEdit file. Call it 'ByYourCommand.txt' Save this file on your desktop.

II. Make the Script Executable.

Mac Os Execute App From Terminal

1. In the Finder, delete the file extension '.txt' The Finder will ask for confirmation.

2. Open the Terminal app and navigate to the file. Substitute your own login name instead of mine. Like this:

Mac Execute App From Terminal 7

3. Still in the terminal, execute this UNIX command:

Note #4. This UNIX command makes the file executable, that is, double-clickable.

Note #5. If you have antivirus software installed, it may object, depending on its preferences, to an executable script being inserted into a file that was created by an OS X text editor. Just ignore the warning.

At this point, you'll notice that the file's icon has changed to this:

Using Terminal Mac

III. Double click the file 'ByYourCommand' on the desktop. The Terminal app will launch, the script will be executed, and you'll see the results, like this:

Uptime: one day, 21 h since my last reboot.

Run Application From Terminal Mac

If you need to edit the script, you'll have to add the '.txt' extension back. (Or, as the geeks will point out, edit with a UNIX editor like vi. I had to say that.)

Running Mac App From Terminal

This is as far as we'll go with a one line command. Once you get the hang of this and learn a whole lot more, you'll find yourself happily creating your own custom scripts—if you decide to learn Bash or one of the other UNIX shells available. A new door is open to create your own scripts, but you should, of course, learn much more about UNIX and scripting before you go wild with this newfound superpower. A really careless act could render your OS X corrupted and/or unbootable.