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.
- Often when writing Bash scripts, you will need to terminate the script when a certain condition is met or to take action based on the exit code of a command. In this article, we will cover the Bash exit built-in command and the exit statuses of the executed commands.
- #!/bin/bash #Authenticate Terminus terminus auth:login #Provide the target site name (e.g. Your-awesome-site) echo 'Provide the site name (e.g. Your-awesome-site), then press ENTER to reset the Dev environment to Live:'; read SITE; #Set the Dev environment's connection mode to Git echo 'Making sure the environment's connection mode is set to.
A terminal for a more modern age. DOWNLOAD GITHUB. A shell is a command line interpreter that accepts and runs commands. If you have ever run any Linux command before, then you have used the shell. When you open a terminal in Linux, you are already running the default shell of your system. Bash is often the default shell in most Linux distributions. This is why bash is often synonymous to shell.
Curated Mac apps that keep your Mac’s performance under control. Avoid Terminal commands, avoid trouble.
Download FreeHow to open Terminal on Mac
The 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.
Basic Mac commands in Terminal
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.
Terminal rules
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:
- cd~/Documents/Terminal Test
- mv TerminalTestFile TerminalTestFile2.rtf
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
More advanced Terminal commands
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.
Copy files from one folder to another
- 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.
Download files from the internet
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.
Change the default location for screenshots
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
Change the default file type for screenshots
By default, macOS saves screenshots as .png files. To change that to .jpg, do this:
- defaults write com.apple.screencapture type JPGNaoh atomic weight. Exact Mass: 39.992509 g/mol: Computed by PubChem 2.1 (PubChem release 2019.06.18) Monoisotopic Mass: 39.992509 g/mol: Computed by PubChem 2.1 (PubChem release 2019.06.18) Topological Polar Surface Area: 1 Ų: Computed by Cactvs 3.4.6.11 (PubChem release 2019.06.18) Heavy Atom Count: 2: Computed by PubChem: Formal Charge: 0: Computed by PubChem: Complexity: 2.
- Press Return
- killall SystemUIServer
- Press Return
Delete all files in a folder
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.
Another way to free up space
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!
If you have to do it more than once, automate it!
You will often find yourself repeating a single task on Linux over and over again. It may be a simple backup of a directory or it could be cleaning up temporary files or it can even be cloning of a database.
Automating a task is one of the many useful scenarios where you can leverage the power of bash scripting.
Let me show you how to create a simple bash shell script, how to run a bash script and what are the things you must know about shell scripting.
Create and run your first shell script
Let’s first create a new directory named scripts that will host all our bash scripts.
Now inside this 'scripts directory', create a new file named hello.sh using the cat command:
Insert the following line in it by typing it in the terminal:
Press Ctrl+D to save the text to the file and come out of the cat command.
You can also use a terminal-based text editor like Vim, Emacs or Nano. If you are using a desktop Linux, you may also use a graphical text editor like Gedit to add the text to this file.
Terminus Shot
So, basically you are using the echo command to print 'Hello World'. You can use this command in the terminal directly but in this test, you'll run this command through a shell script.
Now make the file hello.sh executable by using the chmod command as follows:
And finally, run your first shell script by preceding the hello.sh with your desired shell “bash”:
You'll see
Hello, World!
printed on the screen. That was probably the easiest Hello World program you have ever written, right?Here's a screenshot of all the steps you saw above:
Convert your shell script into bash script
Confused? Don't be confused just yet. I'll explain things to you.
Bash which is short for “Bourne-Again shell” is just one type of many available shells in Linux.
A shell is a command line interpreter that accepts and runs commands. If you have ever run any Linux command before, then you have used the shell. When you open a terminal in Linux, you are already running the default shell of your system.
Bash is often the default shell in most Linux distributions. This is why bash is often synonymous to shell.
The shell scripts often have almost the same syntaxes, but they also differ sometimes. For example, array index starts at 1 in Zsh instead of 0 in bash. A script written for Zsh shell won't work the same in bash if it has arrays.
To avoid unpleasant surprises, you should tell the interpreter that your shell script is written for bash shell. How do you do that? You use shebang!
The SheBang line at the beginning of shell script
The line “#!/bin/bash” is referred to as the shebang line and in some literature, it’s referred to as the hashbang line and that’s because it starts with the two characters hash ‘#’ and bang ‘!’.
With shiny Cheat Sheet RStudio® is a trademark of RStudio, Inc. CC BY RStudio. [email protected]. 844-448-1212. rstudio.com Building an App - Complete the template by adding arguments to fluidPage and a body to the server function. Basics Learn more at shiny.rstudio.com/tutorial. shiny 0.12.0. Shiny Cheat Sheet learn more at shiny.rstudio.com Shiny 0.10.0 Updated: 6/14 1. Structure Each app is a directory that contains a server.R file and usually a ui.R file (plus optional extra files) app-name!!!!!r.r ' server.R ui.R DESCRIPTION README www (optional) used in showcase mode (optional) data, scripts, etc. Shiny dashboard cheat sheet.
When you include the line “#!/bin/bash” at the very top of your script, the system knows that you want to use bash as an interpreter for your script. Thus, you can run the hello.sh script directly now without preceding it with bash.
Adding your shell script to the PATH (so that it can be run from any directory)
You may have noticed that I used ./hello.sh to run the script; you will get an error if you omit the leading ./
Bash thought that you were trying to run a command named hello.sh. When you run any command on your terminal; they shell looks for that command in a set of directories that are stored in the PATH variable.
You can use echo to view the contents of that PATH variable:
The colon character (:) separates the path of each of the directories that your shell scans whenever you run a command.
Linux commands like echo, cat etc can be run from anywhere because their executable files are stored in the bin directories. The bin directories are included in the PATH. When you run a command, your system checks the PATH for all the possible places it should look for to find the executable for that command.
If you want to run your bash script from anywhere, as if it were a regular Linux command, add the location of your shell script to the PATH variable.
First, get the location of your script's directory (assuming you are in the same directory), use the PWD command:
Use the export command to add your scripts directory to the PATH variable.
Notice that I have appended the 'scripts directory' to the very end to our PATH variable. So that the custom path is searched after the standard directories.
The moment of truth is here; run hello.sh:
It works! This takes us to end of this tutorial. I hope you now have some basic idea about shell scripting.
Terminus Wash Definition
Since I introduced you to PATH variable, stay tuned for the next bash scripting tutorial where I discuss shell variables in detail.
Become a Member for FREE
Become a member to get the regular Linux newsletter (2-4 times a month) and access member-only contents.
Bash Terminus Command Not Found
Join the conversation.