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.)
I have found your posts to be very useful.
I am beginning to wonder if there is a definition of OS X 'Terminal Commands'.
No. Actually thinking of commands as 'Terminal' commands can lead you astray.
The Terminal is just a semi-dumb program that passes keyboard input to the Unix shell you are using (there are many Unix shells), and the Terminal displays text the shell, or commands run by the shell send to standard output and standard error. Besides that the Terminal does not do a lot more with respect to Unix commands.
The Shell (default is bash - Bourne Again Shell; named after Steven Bourne, creator of the first popular shell called the Bourne Shell or sh). Anyway there is also the ksh (Korn) shell, zsh shell, the csh shell, and the tcsh shell. There are most likely others, but these are the most popular.
Anyway, the shell is what gives the command prompt. It looks at the first white space separated thing you type as the command. If it is not a reserved statement (if/then/else/fi, case/esac, variable=value, etc...), or a build-in command (cd, export, set, print, echo, etc...), then the shell searches a list of directories stored in the PATH environment variable checking to see if the command you typed is the name of a file stored in one of those directories. If it finds a match, it creates a subprocess, and tells the operating system to execute that file. The operating system will determine if it is a program or a script and do the right thing.
The user can modify the PATH environment variable to include additional directories in PATH so that even more programs and scripts can be considered programs.
And if the command is not in PATH, then the user can always just type the full path to the program. For example:
The bottom line is that there is no definitive list of Unix commands on any Unix based operating system.
Perhaps wrongly I was working on the assumption that it included commands which would do anything if used in the Terminal. Any thoughts on this?
I was aware that apropos ' ' included most manual pages but could not see an easy way to reliably weed out only items not included in my definition. At least this method was not as bad as the long Apple list which includes manual pages for many items not on a standard installation.
Actaully apropos only displays the man pages that are found via the MANPATH environmet variable when the whatis database was created, and if MANPATH does not exist, then the default man page directory list.
And even if you find every last man page and make sure the correct directory is in the MANPATH environment variable, that only covers commands which have man pages. Any commands/programs/scripts you create may not have man pages, and there 3rd party programs you might install that may or may not have man pages.
Then again, even if you do not find everything, you still have a lot of man pages at your disposal, 95% of you will most likely rarely if ever use. 🙂
Jan 04, 2019 List of my most used commands and shortcuts in the terminal for Mac - 0nn0/terminal-mac-cheatsheet. List of my most used commands and shortcuts in the terminal for Mac - 0nn0/terminal-mac-cheatsheet. Show the help manual for command whatis command Gives a. Feb 06, 2017 Getting Info & Explanation for Each Terminal Command. You can easily retrieve information and an explanation on any of the shown commands by using the handy open man page trick, which will launch a manual for the chosen command into a new terminal window.Here’s how it works in the context of the all inclusive commands list on Mac OS.
All Mac Terminal Commands
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.
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.
Common Terminal Commands Mac
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.