Tutorial: Terminal Basics
Overview
The terminal, also known as the command-line interface (CLI), is a text-based interface that allows you to interact with your computer's operating system. By entering commands in the terminal, you can perform a wide range of tasks such as file management, system administration, and software installation. In this tutorial, you'll learn the basics of using the terminal, including some common commands to help you get started.
Tutorial Objectives
- Learn basic terminal commands for managing files and directories
- Understand how to connect to a remote server using SSH
- Know how to transfer files between your local machine and a remote server using SCP
Limitations
This tutorial is intended for beginners who have little to no experience using the command line interface. It covers basic commands and concepts and is not meant to be an exhaustive guide to using the terminal.
Other Resources
- Linux Command Line Basics (opens in a new tab)
- Introduction to the Mac OS X Command Line (opens in a new tab)
- Windows Command Prompt Tutorial (opens in a new tab)
Download and Installation
Terminals are built into most operating systems, so there is no need to install additional software. To access the terminal:
- macOS: Open the Terminal app (found in the Utilities folder within the Applications folder).
- Windows: Use Windows PowerShell or the Windows Subsystem for Linux (WSL).
- Linux: Open the terminal emulator for your distribution (e.g., GNOME Terminal, Konsole, xterm).
Basic Commands
Don't include the brakets [] when typing any of the commands on this page. They are used to indicate that the text inside the brackets is a placeholder for a value that you should replace with your own.
Copying and Moving Files
In the terminal, you can use commands to copy and move files or directories. Below are the commands for macOS/Linux, Windows PowerShell, and Windows Command Prompt:
cp [source] [destination] # Copy a file or directory from source to destination
mv [source] [destination] # Move a file or directory from source to destination
cd [directory] # Change the current directory to the specified one
pwd # Print the current working directory
ls # List the contents of the current directory
ls -l # List the contents of the current directory in long format
ls -a # List the contents of the current directory, including hidden files
Creating and Deleting Files
touch [file] # Create an empty file
mkdir [directory] # Create a new directory
rm [file] # Delete a file
rm -r [directory] # Delete a directory and all of its contents
Viewing and Editing Files
cat [file] # Print the contents of a file to the terminal
less [file] # View the contents of a file one page at a time
head [file] # Print the first 10 lines of a file
tail [file] # Print the last 10 lines of a file
nano [file] # Open a file in the nano text editor
SSH Secure Shell
This is how you connect to a remote server like daq3.
ssh [username]@[server] # Connect to a remote server
SCP Secure Copy
This is how you copy files to and from a remote server.
scp [source] [username]@[server]:[destination] # Copy a file or directory from source to destination on a remote server
scp [username]@[server]:[source] [destination] # Copy a file or directory from source on a remote server to destination
Look up History and Command information
history # List the last 1000 commands you have run
man [command] # View the manual page for a command
Change Permissions
You will need this to make a file executable.
chmod [permissions] [file] # Change the permissions of a file
Terminal Tutorial
In this tutorial, we will demonstrate the basic use of terminal commands. Follow the steps below to learn how to manage files and directories, view and edit files, and perform other useful tasks.
Prerequisites
Make sure you have a terminal open and ready to use. Follow the instructions in the "Download and Installation" section of the main tutorial if you are unsure how to access the terminal on your system.
Part 1:
In the first part of this tutorial, we will learn how to create, edit, and delete files and directories. We will also learn how to view the contents of files and change their permissions.
1. Create a New Directory
First, let's create a new directory called terminal-tutorial
.
mkdir terminal-tutorial
You have now created a new directory called terminal-tutorial
.
2. Change to the New Directory
Now, change the current directory to the terminal-tutorial
directory that you just created. And print your working directory.
cd terminal-tutorial
pwd
Here you can see you have moved to another directory and the path is printed.
3. Create an Empty File
Create an empty file named example.txt
inside the terminal-tutorial
directory.
touch example.txt
You have now created a new file called example.txt
.
4. Edit the File
Open example.txt
in a text editor, add some content, and save the changes.
nano example.txt
# Inside nano, use the arrow keys to navigate and type "Hello World" on the first line.
# When you're done editing, press Ctrl + X to exit.
# Press Y to confirm that you want to save the changes.
# Press Enter to confirm the file name.
Now you have edited the file and saved your changes. There are many editors inside and outside the terminal, and over time you will likely use many of them. But this is a simple way to start. Here is a nano cheat sheet (opens in a new tab).
5. Display File Contents
Now, let's display the contents of example.txt
.
cat example.txt
This will print the entire contents of the file to the terminal. If you want less output, you can use the head
command to print the first 10 lines of the file, or the tail
command to print the last 10 lines of the file.
6. Create a Backup
Make a copy of example.txt
named example_backup.txt
.
cp example.txt example_backup.txt
This makes a copy of the file and names it example_backup.txt
.
7. Delete a File
Delete the example_backup.txt file.
This is permanent! It does not go to the trash. Be careful!
rm example_backup.txt
8. List Directory Contents
List the contents of the terminal-tutorial directory.
ls
These commands will print the contents of the current directory. So, you can see all of the files and directories inside.
9. Edit the permissions of a file
Change the permissions of the example.txt file to be executable.
chmod +x example.txt
10. Change to the Parent Directory
Change the current directory to the parent directory of terminal-tutorial.
cd ..
This command moves you up one directory.
11. Remove the Directory
Remove the terminal-tutorial directory and its contents.
This is permanent! Be careful!
rm -r terminal-tutorial
Congratulations! You have now successfully performed basic file and directory operations using the terminal. Keep practicing these commands to become more proficient in using the terminal.
Part 2
Until you are more comfortable with the terminal, do not remove (rm) any files or directories from daq3. If you accidentally remove a file or directory, contact Dr. McNulty.
In part 2, we will learn how to connect to a remote server using SSH. We will connect to the daq3 server and run some commands.
12. Connect to a Remote Server using SSH
Use SSH to securely connect to a remote server.
ssh -Y daq@daq3.physics.isu.edu
Get your password from Dr. McNulty.
You will now be prompted to enter your password. Enter your password and press enter. Thats it! You are now connected to the daq3 server. You can use 'ls' and have a look at the file structure. Then go ahead and disconnect from the server by typing exit
and pressing enter.
13. Transfer Files using SCP
This is a dangerous command. When you scp files it will automaticly overwrite files with the same name. Only use the files in this tutorial to practice with. Do not try any other files until you are more comfortable with this command.
Use SCP (Secure Copy) to transfer files between your local machine and a remote server. Make sure you have disconnected from the daq3 server before continuing.
Copy a File from Your Local Machine to a Remote Server
First create a directory again 'terminal-tutorial ' on your local machine as in part 1 of this tutorial. And create a file named 'example.txt' in that directory. If have trouble doing this, go back to part 1 of this tutorial.
Now, you will copy the 'example.txt' file from your local machine to the remote server.
scp [local_file_path]/terminal-tutorial/example.txt daq@daq3.physics.isu.edu:/home/daq
Replace [local_file_path] with the actual path of the file on your local machine. you can use the command 'pwd' to get the path of the current directory.
You will be promtped again for your password. Enter your password and press enter.
Copy a File from a Remote Server to Your Local Machine
Now, you will copy the 'example.txt' file from the remote server to your local machine.
scp daq@daq3.physics.isu.edu:/home/daq/example.txt [local_file_path]/terminal-tutorial
You will be promtped again for your password. Enter your password and press enter.
14. Transfer a Directory using SCP
This is a dangerous command when you scp directories it will automaticly overwrite directories with the same name. Be very careful when using this command. Only use the directories in this tutorial to practice with. Do not try any other directories until you are more comfortable with this command.
Now you will transfer an entire directory from your local machine to the remote server. To transfer a directory and its contents, use the -r
option.
Copy a Directory from Your Local Machine to a Remote Server
scp -r [local_directory_path]/terminal-tutorial daq@daq3.physics.isu.edu:/home/daq
Copy a Directory from a Remote Server to Your Local Machine
scp -r daq@daq3.physics.isu.edu:/home/daq/terminal-tutorial [local_directory_path]
That's it! You now know how to use SSH to connect to a remote server and use SCP to transfer files between your local machine and the remote server. With these skills, you can efficiently manage your files and directories when working with remote systems.