Press Command + S During Startup Holding down Command + S during startup will boot your Mac into Single User Mode. This is a terminal interface that allows you to login and interact with your. Sep 10, 2012 10 Terminal Commands That Every Mac User Should Know 1. Disable Lion/Mountain Lion's Pop-up Accent Window. Change the Default Backup Periods in Time Machine. Drag Dashboard Widgets onto the Desktop. I always forget that the Dashboard exists on my Mac. Disable Lion/Mountain Lion's.
The Terminal app allows you to control your Mac using a command prompt. Why would you want to do that? Well, perhaps because you’re used to working on a command line in a Unix-based system and prefer to work that way. Terminal is a Mac command line interface. There are several advantages to using Terminal to accomplish some tasks — it’s usually quicker, for example. In order to use it, however, you’ll need to get to grips with its basic commands and functions. Once you’ve done that, you can dig deeper and learn more commands and use your Mac’s command prompt for more complex, as well as some fun, tasks.
Curated Mac apps that keep your Mac’s performance under control. Avoid Terminal commands, avoid trouble.
Download FreeThe Terminal app is in the Utilities folder in Applications. To open it, either open your Applications folder, then open Utilities and double-click on Terminal, or press Command - spacebar to launch Spotlight and type 'Terminal,' then double-click the search result.
You’ll see a small window with a white background open on your desktop. In the title bar are your username, the word 'bash' and the dimensions of the window in pixels. Bash stands for 'Bourne again shell'. There are a number of different shells that can run Unix commands, and on the Mac Bash is the one used by Terminal.
If you want to make the window bigger, click on the bottom right corner and drag it outwards. If you don’t like the black text on a white background, go to the Shell menu, choose New Window and select from the options in the list.
If Terminal feels complicated or you have issues with the set-up, let us tell you right away that there are alternatives. MacPilot allows to get access to over 1,200 macOS features without memorizing any commands. Basically, a third-party Terminal for Mac that acts like Finder.
For Mac monitoring features, try iStat Menus. The app collects data like CPU load, disk activity, network usage, and more — all of which accessible from your menu bar.
The quickest way to get to know Terminal and understand how it works is to start using it. But before we do that, it’s worth spending a little time getting to know how commands work. To run a command, you just type it at the cursor and hit Return to execute.
Every command is made up of three elements: the command itself, an argument which tells the command what resource it should operate on, and an option that modifies the output. So, for example, to move a file from one folder to another on your Mac, you’d use the move command 'mv' and then type the location of the file you want to move, including the file name and the location where you want to move it to.
Let’s try it.
Type cd ~/Documentsthen and press Return to navigate to your Home folder.
Type lsthen Return (you type Return after every command).
You should now see a list of all the files in your Documents folder — ls is the command for listing files.
To see a list of all the commands available in Terminal, hold down the Escape key and then press y when you see a question asking if you want to see all the possibilities. To see more commands, press Return.
Unix has its own built-in manual. So, to learn more about a command type man [name of command], where 'command' is the name of the command you want find out more about.
There are a few things you need to bear in mind when you’re typing commands in Terminal, or any other command-line tool. Firstly, every character matters, including spaces. So when you’re copying a command you see here, make sure you include the spaces and that characters are in the correct case.
You can’t use a mouse or trackpad in Terminal, but you can navigate using the arrow keys. If you want to re-run a command, tap the up arrow key until you reach it, then press Return. To interrupt a command that’s already running, type Control-C.
Commands are always executed in the current location. So, if you don’t specify a location in the command, it will run wherever you last moved to or where the last command was run. Use the cdcommand, followed by a directory path, like in Step 1 above, to specify the folder where you want a command to run.
There is another way to specify a location: go to the Finder, navigate to the file or folder you want and drag it onto the Terminal window, with the cursor at the point where you would have typed the path.
Here’s another example. This time, we’ll create a new folder inside your Documents directory and call it 'TerminalTest.'
Open a Finder window and navigate to your Documents folder.
Type cd and drag the Documents folder onto the Terminal window.
Now, type mkdir 'TerminalTest'
Go back to the Finder, open Text Edit and create a new file called 'TerminalTestFile.rtf'. Now save it to the TerminalTest folder in your Documents folder.
In the Terminal window, type cd ~/Documents/TerminalTest then Return. Now type lsand you should see 'TerminalTestFile' listed.
To change the name of the file, type this, pressing Return after every step:
That will change the name of the file to 'TerminalTestFile2'. You can, of course, use any name you like. The mv command means 'move' and you can also use it to move files from one directory to another. In that case, you’d keep the file names the same, but specify another directory before typing the the second instance of the name, like this:
mv ~/Documents/TerminalTest TerminalTestFile.rtf ~/Documents/TerminalTest2 TerminalTestFile.rtf
Terminal can be used for all sorts of different tasks. Some of them can be performed in the Finder, but are quicker in Terminal. Others access deep-rooted parts of macOS that aren’t accessible from the Finder without specialist applications. Here are a few examples.
In a Terminal window, type ditto [folder 1] [folder 1] where 'folder 1' is the folder that hosts the files and 'folder 2' is the folder you want to move them to.
To see the files being copied in the Terminal window, type -v after the command.
You’ll need the URL of the file you want to download in order to use Terminal for this.
cd ~/Downloads/
curl -O [URL of file you want to download]
If you want to download the file to a directory other than your Downloads folder, replace ~/Downloads/ with the path to that folder, or drag it onto the Terminal window after you type the cd command.
If you don’t want macOS to save screenshots to your Desktop when you press Command-Shift-3, you can change the default location in Terminal
defaults write com.apple.screencapture location [path to folder where you want screenshots to be saved]
Hit Return
killall SystemUIServer
Hit Return
By default, macOS saves screenshots as .png files. To change that to .jpg, do this:
defaults write com.apple.screencapture type JPG
Press Return
killall SystemUIServer
Press Return
The command used to delete, or remove, files in Terminal is rm. So, for example, if you wanted to remove a file in your Documents folder named 'oldfile.rtf' you’d use cd ~/Documents to go to your Documents folder then to delete the file. As it stands, that will delete the file without further intervention from you. If you want to confirm the file to be deleted, use -i as in rm -i oldfile.rtf
To delete all the files and sub-folders in a directory named 'oldfolder', the command is rm -R oldfolder and to confirm each file should be deleted, rm -iR oldfolder
Just because you can use Terminal to delete files on your Mac, doesn’t mean you should. It’s a relatively blunt instrument, deleting only those files and folders you specify.
If your goal in removing files or folders is to free up space on your Mac, or to remove junk files that are causing your Mac to run slowly, it’s far better to use an app designed for the purpose. CleanMyMac X is one such app.
It will scan your Mac for files and recommend which ones you can delete safely, as well as telling you how much space you’ll save. And once you’ve decided which files to delete, you can get rid of them in a click. You can download CleanMyMac here.
As you can see, while Terminal may look scary and seem like it’s difficult to use, it really isn’t. The key is learning a few commands, such as those we’ve outlined above, and getting to know the syntax for those commands.
However, you should be careful when using Terminal, it’s a powerful tool that has deep access to your Mac’s system files. Check commands by googling them if you’re not sure what they do. And if you need to delete files to save space, use an app like CleanMyMac X to do it. It’s much safer!
macOS is an intuitive operating system, so you don’t have to spend lot of time learning the basics; Knowing this, why should you learn and take advantage of the Unix command line available on your Mac? We have four good reasons:
With so many Mac commands, it’s often difficult to remember and use them all. We’re here to help with a detailed cheat sheet of Mac Terminal commands you can use to unlock enhanced productivity on your system.
Launch the Terminal app from Applications > Utilities or search for it via Spotlight. Then you can get started with some of the powerful commands below.
Command | Action |
---|---|
Shortcuts | |
Tab | Auto-complete file and folder names |
Ctrl + A | Go to the beginning of the line you're currently typing on |
Ctrl + E | Go to the end of the line you're currently typing on |
Ctrl + U | Clear the line before the cursor |
Ctrl + K | Clear the line after the cursor |
Ctrl + W | Delete the word before the cursor |
Ctrl + T | Swap the last two characters before the cursor |
Esc + T | Swap the last two words before the cursor |
Ctrl + L | Clear the screen |
Ctrl + C | Kill whatever you're running |
Ctrl + D | Exit the current shell |
Option + → | Move cursor one word forward |
Option + ← | Move cursor one word backward |
Ctrl + F | Move cursor one character forward |
Ctrl + B | Move cursor one character backward |
Ctrl + Y | Paste whatever was cut by the last command |
Ctrl + Z | Puts whatever you're running into a suspended background process |
Ctrl + _ | Undo the last command |
Basics | |
/ (Forward Slash) | Top level directory |
. (Single Period) | Current directory |
. (Double Period) | Parent directory |
~ (Tilde) | Home directory |
sudo [command] | Run command with the security privileges of the super user |
nano [file] | Opens the Terminal editor |
open [file] | Opens a file |
[command] -h | Get help about a command |
man [command] | Show the help manual of the command |
Change Directory | |
cd | Home directory |
cd [folder] | Change directory, e.g. cd Documents |
cd ~ | Home directory |
cd/ | Root of the drive |
cd - | Previous directory or folder you last browsed |
pwd | Show your working directory |
cd. | Move up to the parent directory |
cd./. | Move up two levels |
List Directory Contents | |
ls | Display the name of files and subdirectories in the directory |
ls -C | Force multi-column output of the listing |
ls -a | List all entries including those with .(period) and .(double period) |
ls -1 | Output the list of files in one entry per line format |
ls -F | Display a / (slash) immediately after each path that is a directory, * (asterisk) after executable programs or scripts, and @ after a symbolic link |
ls -S | Sort files or entries by size |
ls -l | List in a long format. Includes file mode, owner and group name, date and time file was modified, pathname, and more |
ls -lt | List the files sorted by time modified (most recent first) |
ls -lh | Long listing with human readable file sizes in KB, MB, or GB |
ls -lo | List the file names with size, owner, and flags |
ls -la | List detailed directory contents, including hidden files |
File Size and Disk Space | |
du | List usage for each subdirectory and its contents |
du -sh [folder] | Human readable output of all files in a directory |
du -s | Display an entry for each specified file |
du -sk* sort -nr | List files and folders, totaling the size including the subfolders. Replace sk* with sm* to list directories in MB |
df -h | Calculate your system's free disk space |
df -H | Calculate free disk space in powers of 1,000 (as opposed to 1,024) |
File and Directory Management | |
mkdir <dir> | Create new folder named <dir> |
mkdir -p <dir>/<dir> | Create nested folders |
mkdir <dir1> <dir2> <dir3> | Create several folders at once |
mkdir '<dir>' | Create a folder with a space in the filename |
rmdir <dir> | Delete a folder (only works on empty folders) |
rm -R <dir> | Delete a folder and its contents |
touch <file> | Create a new file without any extension |
cp <file> <dir> | Copy a file to the folder |
cp <file> <newfile> | Copy a file to the current folder |
cp <file>~/<dir>/<newfile> | Copy a file to the folder and rename the copied file |
cp -R <dir> <'new dir'> | Copy a folder to a new folder with spaces in the filename |
cp -i <file><dir> | Prompts you before copying a file with a warning overwrite message |
cp <file1> <file2> <file3>/Users/<dir> | Copy multiple files to a folder |
rm <file> | Delete a file (This deletes the file permanently; use with caution.) |
rm -i <file> | Delete a file only when you give confirmation |
rm -f <file> | Force removal without confirmation |
rm <file1> <file2> <file3> | Delete multiple files without any confirmation |
mv <file> <newfilename> | Move/rename |
mv <file> <dir> | Move a file to the folder, possibly by overwriting an existing file |
mv -i <file> <dir> | Optional -i flag to warn you before overwriting the file |
mv *.png ~/<dir> | Move all PNG files from current folder to a different folder |
Command History | |
Ctrl + R | Search through previously used commands |
history n | Shows the previous commands you've typed. Add a number to limit to the last n items |
![value] | Execute the last command typed that starts with a value |
!! | Execute the last command typed |
Permissions | |
ls -ld | Display the default permission for a home directory |
ls -ld/<dir> | Display the read, write, and access permission of a particular folder |
chmod 755 <file> | Change the permission of a file to 755 |
chmod -R 600 <dir> | Change the permission of a folder (and its contents) to 600 |
chown <user>:<group> <file> | Change the ownership of a file to user and group. Add -R to include folder contents |
Processes | |
ps -ax | Output currently running processes. Here, a shows processes from all users and x shows processes that are not connected with the Terminal |
ps -aux | Shows all the processes with %cpu, %mem, page in, PID, and command |
top | Display live information about currently running processes |
top -ocpu -s 5 | Display processes sorted by CPU usage, updating every 5 seconds |
top -o rsize | Sort top by memory usage |
kill PID | Quit process with ID <PID>. You'll see PID as a column in the Activity Monitor |
ps -ax grep <appname> | Find a process by name or PID |
Network | |
ping <host> | Ping host and display status |
whois <domain> | Output whois info for a domain |
curl -O <url/to/file> | Download file via HTTP, HTTPS, or FTP |
ssh <username>@<host> | Establish SSH connection to <host> with user <username> |
scp <file><user>@<host>:/remote/path | Copy <file> to a remote <host> |
Homebrew | |
brew doctor | Check brew for potential problems |
brew install <formula> | Install a formula |
brew uninstall <formula> | Uninstall a formula |
brew list | List all the installed formulas |
brew search | Display available formulas for brewing |
brew upgrade | Upgrade all outdated and unpinned brews |
brew update | Fetch latest version of homebrew and formula |
brew cleanup | Remove older version of installed formula |
brew tap homebrew/cask | Tap the cask repository from GitHub |
brew cask list | List all installed casks |
brew cask install <cask> | Install the given cask |
brew cask uninstall <cask> | Uninstall the given cask |
Search | |
find <dir> -name <'file'> | Find all files named <file> inside <dir>. Use wildcards (*) to search for parts of filenames |
grep '<text>' <file> | Output all occurrences of <text> inside <file> (add -i for case insensitivity) |
grep -rl '<text>' <dir> | Search for all files containing <text> inside <dir> |
Output | |
cat <file> | Output the content of <file> |
less <file> | Output the contents of <file> using the less command that supports pagination and more |
head <file> | Output the first 10 lines of <file> |
<cmd> > > <file> | Appends the output of <cmd> to <file> |
<cmd> > <file> | Direct the output of <cmd> into <file> |
<cmd1> <cmd2> | Direct the output of <cmd1> to <cmd2> |
There are lot of commands in this cheat sheet. But you don’t have to learn all of them at once! Pick a few that integrate well with your workflow and save you the most time. Once you’ve mastered these commands, there’s still more to learn about the Terminal to enhance your experience with it.
For further reading, we’ve looked at how to customize the Mac Terminal and make it more useful How to Customize the Mac Terminal and Make It More UsefulThe Terminal app on your Mac is powerful, but it's a bit bland out of the box. Here's how to personalize Terminal for your needs. Read More .