Mac Terminal Commands and Tricks List
Many MacOS users may find the Terminal and its commands daunting at first glance. Using the Mac Terminal might appear as if you’re attempting to compromise a system, although that’s certainly not the intention. Familiarizing yourself with Mac Terminal commands, however, can empower you to excel in the MacOS environment.
What is a Terminal on Mac?
As a Terminal emulator, it grants you text-based access into the operating system, offering a swifter means of navigating the operating system if you are well-versed in MacBook terminal commands. Once you grasp its fundamental functions, you can tackle more complex tasks, and using the Terminal can become an enjoyable experience.
Although mastering the Terminal won’t instantly transform you into an IT specialist, it does mark the initial stride toward that objective if that’s your ambition.
How to open the Terminal on Mac?
The Terminal application can be found in the Utilities folder within the Applications directory. You have multiple options for accessing it:
- Through Finder, follow this path to locate the Terminal application: Applications > Utilities > Terminal
- Alternatively, you can use Spotlight Search. Simply press the Command and Space keys simultaneously to open the Spotlight Search bar. Then, type “Terminal” and click on the first suggestion.
Using either of these two methods will open the Mac command prompt, which appears as a black box, as shown below.
The appearance of your Terminal may vary depending on your settings. To make it more tailored to your preferences, it’s advisable to adjust the appearance, and you can achieve this by changing the Terminal theme.
Here’s how you can do it:
- While in Terminal, go to the top menu bar and select “Preferences.”
- In the preferences menu, go to the “Profiles” tab.
- Here, you can customize the Terminal’s appearance, including options such as background color, text color, and font.
Terminal tricks you should know
Navigating the Terminal may not be as intuitive as navigating a graphical user interface (GUI) application. Therefore, it’s essential to familiarize yourself with some key aspects when learning to use the Terminal.
- Navigation: You can use either the arrow keys or the mouse to move within the Terminal. If you need to edit a previously entered command, navigate left or right using the arrow keys to the desired edit point. Alternatively, you can use the mouse by holding the ALT key and clicking at the desired position within the line.
- Command History: To reuse previously entered commands, employ the up and down arrow keys. These keys allow you to cycle through your command history, eliminating the need to retype the same command repeatedly.
- Exact Typing: useful terminal commands for mac must be entered precisely as shown, with each character, space, and symbol being critical. Omitting or altering any character can yield unexpected results.
- Execution: After entering a command, press the return/enter key to execute it. If you wish to halt a running command, simultaneously press CTRL + C. This will interrupt the command’s execution.
- File Location: Keep in mind that Terminal commands operate within the current file location. To change the file location, you’ll need to use a Terminal command, which will be introduced below.
| Read More:- Windows Terminal Download for PC
Mac Terminal Commands List
A multitude of commands is available for your use. Let’s concentrate on a selection of the most frequently used MacOS Terminal commands that are essential for mastering the Terminal.
|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|
|Option + Shift + Cmd + C||Copy plain text|
|Shift + Cmd + V||Paste the selection|
|exit||End a shell session|
|/ (Forward Slash)||Top-level directory|
|.. (Double Period)||Parent directory|
|~ (Tilde)||Home directory|
|sudo [command]||Run command with the security privileges of the superuser|
|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 commands
|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 commands
|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 -l /||List of the file system from root with symbolic links|
|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 a 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|
|ditto -V [folder path][new folder]||Copy the contents of a folder to a new folder. In here “-V” print a line of status for every file copied|
|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 the current folder to a different folder|
Changing permissions for files and folders is a crucial step in safeguarding resources from unauthorized access. Permissions can be granted for reading, writing, and executing by the owner, a specific group, or others.
To check the permissions of a file, you can employ the “ls -l” command, which we discussed in the “List Directory Commands” section. This command displays a list of all files and folders in a long format. In the left-most column, you’ll notice a notation like the following:
- Example 1: “rw-r–r–“
- Example 2: “drw-r-xr-x”
These notations consist of nine slots organized into three groups, each designated for a different type of user: owner, groups, and others. In the first example, “rw-r–r–,” the owner has read (r) and write (w) permissions but lacks execute (x) permission. Both groups and others have only read (r) permission.
In the second case, “drw-r-xr-x,” in addition to the standard permission sets, there is a “d” character indicating that this is a directory.
Before delving into specific commands for changing permissions, it’s essential to become acquainted with octal permission notation.
|Permission||Octal Value||Permission Notation|
|Write and Execute||3||-wx|
|Read and Execute||5||r-x|
|Read and Write||6||rw-|
|Read, Write and Execute||7||rwx|
The Terminal application allows you to set octal notation permissions for files and directories. Let’s look at what commands you can use.
|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|
|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|
|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>|
|arp -a||View a list of all devices on your local network. It will show you the IP and MAC address of all the devices|
|ifconfig en0||View your device IP and MAC address|
|traceroute [hostname]||Identify the path and the hops traversed by the packets from your device to the destination address|
|brew doctor||Check brew for potential problems|
|brew help||List of useful homebrew formula and cask commands|
|brew install <formula>|<cask>||Install a formula or cask|
|brew uninstall <formula>|<cask>||Uninstall a formula or cask|
|brew list –formula||List only installed formulas|
|brew list –cask||List only installed casks|
|brew deps <formula>|<cask>||List all the dependencies of a formula or cask|
|brew search text|/regex/||Search formula or cask through regex|
|brew upgrade <formula>|<cask>||Upgrade the formula or cask|
|brew outdated <formula>|<cask>||Search for outdated formula or cask|
|brew outdated –formula||Search for outdated formula|
|brew outdated –cask||Search for outdated cask|
|brew pin [installed_formula]||Pin a formula from getting upgraded|
|brew unpin [installed_formula]||Unpin to upgrade a package|
|brew cleanup||Remove stale lock files and outdated packages for all formula and casks|
Environment Variable or Path
|printenv||Display a list of currently set environment variables. Also tells you which shell you’re using|
|$echo||Tells the terminal to print something and show it to you|
|echo $PATH||Check the value of the PATH variable which stores a list of directories with executable files|
|echo $PATH > path.txt||Export the path directory to a text file|
|export PATH=$PATH:absolute/path to/program/||Execute a program via terminal only in your current session. If you use a program regularly, add the path to shell configuration file.|
|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>|
|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>|
Determining File Type
Sometimes the extension will not help you in determining the type of file. In that case the following command can help you pinpoint the exact type.
|file <file>||Determines file type|
What is the purpose of the Terminal on Mac?
The Terminal on Mac serves as a text-based interface to interact with the operating system. It allows for efficient navigation and control using Mac Terminal commands, making it a powerful tool for tasks beyond what a graphical user interface (GUI) can accomplish.
How can I change permissions for files and directories using the Terminal?
You can change permissions using the
chmod command followed by the desired permission settings. For example,
chmod 755 filename grants read, write, and execute permissions to the owner and read and execute permissions to the group and others. You can also use
chown to change the ownership of files and directories.
How can I determine the file type in the Terminal?
To determine the file type in the Terminal, use the
file command followed by the filename. This command will provide information about the type of file, helping you identify it even if the file extension is not informative.
Is using the Terminal on Mac difficult for beginners?
For beginners, the Terminal on Mac may initially seem daunting. However, with practice and an understanding of basic commands, it becomes accessible and can greatly enhance your Mac experience.
What are some important tips for navigating the Terminal efficiently?
Navigating the Terminal effectively requires some key skills:
- Use arrow keys or the mouse to move within the Terminal.
- Navigate command history with the up and down arrow keys to avoid retyping commands.
- Enter commands accurately, as even small deviations can lead to unexpected results.
- Execute a command by pressing Enter, and halt a running command with Ctrl + C.
the macOS Terminal and its commands, though initially intimidating, offer powerful tools to enhance your Mac experience. Learning these commands, whether you’re a novice or aiming for advanced skills, allows for efficient navigation and a wide range of tasks. Embrace the Terminal to unlock your Mac’s full potential and excel in the macOS environment.