Video Summary

Beginner's Guide To The Linux Terminal

DistroTube

Main takeaways
01

Open the terminal via desktop menu, panel launcher, or Ctrl+Alt+T (on many Debian/Ubuntu systems).

02

Navigate with pwd and cd; use ~ as a shortcut for your home directory and Tab for autocomplete.

03

List files with ls (use -a for hidden files and -l for detailed info).

04

Create files with touch or nano (save/exit nano with Ctrl+X, Y, Enter); make directories with mkdir.

05

Move/copy with mv and cp; remove files with rm, rmdir, or rm -rf (use with caution). Use chmod to set permissions and chmod +x to make scripts executable before running ./script.sh.

Key moments
Questions answered

How can I open the terminal on my desktop?

Use your desktop's application menu or launcher, click a terminal icon on the panel, or press Ctrl+Alt+T on many Debian/Ubuntu-based systems.

What does pwd do and how do I return to my home directory?

pwd prints your current working directory. Use cd with no arguments, cd ~, or cd /home/yourusername to return to your home directory.

How do I show hidden files and detailed file info with ls?

Use ls -a to include hidden dot-files, and ls -l for a long listing that shows permissions, owner, size and timestamps. Combine flags like ls -la.

What's the quickest way to create and edit a new file?

Use touch filename to create an empty file, or open nano filename to create and edit it immediately. Save/exit nano with Ctrl+X, then Y and Enter.

How do I make a shell script executable and run it?

Set execute permission with chmod +x script.sh, then run it from the current directory with ./script.sh.

How can I find where a program's binary is located or search for files?

Use which program or whereis program to locate binaries (whereis also shows docs/libraries). Use locate for fast filename lookups and find for deeper, configurable searches.

Getting Started with the Terminal 01:00

"Today I wanted to make a comprehensive video for the absolute beginner on how to use the command line in Linux."

  • The video aims to provide a complete guide for beginners who are unfamiliar with the Linux terminal and command line.

  • Various ways to open the terminal are discussed, including navigating through the desktop menu or using hotkeys like Ctrl + Alt + T.

  • Once opened, the presenter makes the terminal full screen and zooms in for better visibility of the commands.

Basic Commands: pwd and cd 02:04

"The first terminal command I want you guys to run is just open up your terminal and type pwd."

  • The pwd command, which stands for "print working directory," is introduced as a way to display the current directory the user is in.

  • Users learn that their home directory is typically represented as /home/username, and the tilde ~ symbol serves as a shortcut to their home directory.

  • The cd command, meaning "change directory," allows users to navigate between directories, with a demonstration on how to change into the Downloads directory using auto-complete with the Tab key.

"You can do that three different ways with cd."

  • Multiple methods to return to the home directory using the cd command are presented, including specifying the full path, using the tilde symbol ~, or simply entering cd without any arguments.

  • To clear the terminal screen, the clear command or the shortcut Ctrl + L can be used to get a clean workspace.

Listing Directory Contents with ls 04:46

"The ls command is probably one of the most common, if not the most common command people run in the terminal."

  • The ls command is discussed as a way to list the contents of the current directory, but it initially only displays non-hidden files.

  • To view all files, including hidden ones (those starting with a period), users must use the ls -a command.

  • An explanation of flags for the ls command surfaces, particularly the -l flag for a long listing format, which provides additional details about each file, such as permissions, owner, size, and date created.

Understanding Manual Pages with man 07:16

"If you want to learn more in depth about a particular command, just view the man page."

  • The man command is introduced as the way to access manual pages for commands in the terminal, allowing users to explore additional flags and functionalities.

  • The example of using man ls demonstrates how users can learn about various options available for the ls command.

Creating Files 08:10

"If you want to create an empty file...you can just do this command here: touch."

  • Users learn several methods to create files, beginning with the touch command to create an empty file quickly.

  • Alternatively, if users wish to create and edit a new file immediately, they can utilize the nano text editor, facilitating the process of writing content directly into the new file.

Saving and Exiting Files in Nano 09:19

“Then you can use Ctrl + X to exit out of Nano and Y to save.”

  • You can exit the Nano text editor by pressing Ctrl + X.

  • To save changes before exiting, press Y and then Enter.

  • After saving, you can verify that the file has been created or updated by using the ls command to list files.

Creating and Managing Directories 09:50

“To create a directory, use the command mkdir followed by the directory name.”

  • The command mkdir stands for "make directory" and is used to create new directories.

  • After creating a directory, use the ls command to check if the directory was successfully created.

  • You can navigate into the newly created directory using the cd command followed by the directory name.

Moving and Copying Files 11:15

“You can use the mv command to move files and cp to copy them.”

  • The mv command is used to move files from one location to another.

  • To copy files, utilize the cp command, which keeps the original file in its location while creating a duplicate in the specified directory.

Removing Files and Directories 12:18

“To remove a file, use the rm command followed by the file’s path.”

  • The rm command deletes a specified file, requiring the full path if not in the same directory.

  • To remove an empty directory, the rmdir command is used, but it will fail if the directory contains any files.

  • For directories that have contents, rm -rf can be used to remove the directory and all its contents; however, caution is advised when using this command.

Finding Programs and Files 15:06

“To find the binary of a program, you can use the which or whereis command.”

  • The which command provides the path to the binary executable of a specified program.

  • The whereis command offers additional information, including the paths to the binary, libraries, and the manual page.

  • For searching files containing specific names or patterns, the locate command is efficient, while the find command allows for deeper searches throughout the system.

Using the Find Command 17:50

“The find command is powerful and supports various flags for complex searches.”

  • The find command allows searching through directories and can be customized using flags, such as -iname for case-insensitive searches.

  • Care must be taken when using commands that manage files and directories, especially when using recursive deletion flags, to avoid unintentional loss of data.

Using the Echo and Printf Commands 19:00

"The echo command is the most common for printing outputs in the command line."

  • The echo command is a fundamental tool for displaying text in the command line. For example, using echo "hello world" prints "hello world" to the terminal.

  • You can use either double quotes or single quotes with echo, as both will correctly display the text.

  • However, printf provides enhanced functionality over echo, allowing for formatted outputs and the use of escape sequences.

  • With printf, you can create multi-line outputs by utilizing escape sequences like \n for new lines, making it more powerful for formatted text.

Redirecting Output to Files 20:10

"The greater than sign redirects output to a file."

  • Using the greater than sign (>), you can redirect the output of a command to a file. For instance, printf "one\ntwo\nthree" > file1.txt will create or overwrite file1.txt with the specified text.

  • If the file does not exist, it will be created automatically. If it exists, its contents will be overwritten.

  • To view the contents of the file, you can use the cat command, which will display what is written inside.

Viewing Large Files with Less 21:32

"The less command is a better way to view large files as it starts at the top."

  • The less command is more effective than cat for viewing large files because it allows you to scroll through the file rather than just dumping the entire content at once.

  • When using less, you start at the top of the file and can navigate down line by line by hitting the Enter key.

  • To exit less, simply type q for quit, making it a user-friendly way to handle large text files.

Searching for Text with Grep 22:11

"The grep utility is essential for searching specific strings in text."

  • The grep command is a powerful search utility that allows you to find specific strings of text within files.

  • For example, executing grep 'alias' .bashrc searches for the word "alias" in the .bashrc file and outputs every line that contains the word.

  • This utility is incredibly valuable for programmers and system administrators who need to locate specific configurations or functions in large script files.

Utilizing Piping with Commands 22:54

"The pipe symbol takes the output of one program and directs it into another."

  • The pipe symbol (|) connects the output of one command to the input of another, creating a powerful chain of commands.

  • For example, you can use ls -l | grep 'txt' to list all files in long format and filter the output to show only those containing 'txt'.

  • This kind of chaining allows for complex data manipulation and analysis directly in the command line.

Using Head and Tail Commands to View File Portions 25:56

"The head command prints the first 10 lines by default, while tail prints the last 10 lines."

  • The head command is designed to display the first ten lines of a file by default, which is useful for quickly checking file contents.

  • Conversely, tail shows the last ten lines, allowing users to quickly view the end of a file without scrolling through the entire content.

  • You can specify a different number of lines to output using the -n option, enabling finer control over the content you wish to view.

Changing File Permissions with Chmod 27:14

"The chmod command is used to change file permissions in Linux."

  • The chmod command allows users to modify the access rights for files and directories.

  • You can set permissions in either symbolic format (like rwxr-xr-x) or numeric form (such as 755). For example, executing chmod 755 file1.txt grants read, write, and execute permissions to the owner, and read and execute permissions to the group and others.

  • Understanding how to use chmod effectively is crucial for maintaining security and accessibility in a Linux environment.

Executing Shell Scripts and Handling Permissions 28:38

"To execute a shell script, you need to have execute permissions."

  • When you create a shell script, you can run it by using the command ./script.sh. However, if you encounter a "permission denied" error, it means that the script does not have execute permissions set.

  • You can check the permissions of a file with ls -l script.sh, and you might see the absence of x (execute) permissions.

  • To grant execute permissions, you use the command chmod +x script.sh, giving the script the necessary permissions to run.

  • After adjusting the permissions, running ./script.sh will display the output, which should be "Hello World" in this case.

Using the History Command 29:51

"The history command shows a list of previously executed commands in your shell."

  • The history command allows you to see a list of commands you have recently executed, with each command numbered for easy reference.

  • You can quickly rerun a command from history by using the syntax !<command_number>.

  • For example, !84 will rerun the command associated with the number 84 in the history list.

  • Additionally, typing !! recalls the last command executed, making it very efficient, especially for commands that require repeated execution with sudo.

Managing Running Programs 31:57

"You can kill a running program using the kill command with its process ID."

  • In Linux, you can terminate a program using the kill command followed by the process ID (PID) of the program.

  • If multiple instances of a program are running, you can use killall <program_name> to terminate all instances at once.

  • The xkill command provides a graphical method by turning your cursor into a cross. Clicking on a program window will immediately close it.

  • Another powerful tool for managing processes is htop, which lists all running processes in an interactive interface, allowing you to select a process and kill it easily by pressing F9.

Testing Networking with Ping 34:43

"The ping command checks if your networking is working by sending packets to a specific address."

  • To verify your internet connection, you can use the ping command followed by a website address, like ping google.com.

  • This will continuously send packets to the specified address, displaying round trip times until you stop it using Ctrl + C.

  • It’s a straightforward way to check connectivity, especially during installations on less user-friendly distributions.

Downloading Files with Wget 35:14

"Wget allows you to download files from the web directly in the terminal."

  • The wget command is useful for downloading files from a given URL. For example, you could use it to download a Linux ISO by executing wget <URL>.

  • This command can often handle various protocols and is a simple way to grab files directly from the terminal without needing a web browser.

Useful Commands in Linux 35:52

"Commands like date and cal provide useful information directly from the terminal."

  • The date command shows the current date and time, and it can be customized using various flags to format the output differently.

  • The cal command is a simple way to display a calendar for the current month.

  • Additionally, bc serves as a basic calculator in the terminal. By running bc, you can perform arithmetic operations interactively.

Configuring Bash Aliases 37:06

"The .bashrc file is a configuration file that allows you to set aliases for command shortcuts."

  • In your home directory, the .bashrc file contains configuration settings and aliases that modify the behavior of the terminal.

  • You can open and edit this file using a text editor like nano .bashrc.

  • Aliases allow you to create shortcuts for longer commands, such as using alias ll='ls -la' to simplify the command for listing files.

  • After adding an alias, you can use it immediately in the terminal once you've sourced the .bashrc file or restarted the terminal session.

Creating Bash Aliases for System Updates 38:15

"What I would do is create an alias for this command to simplify future usage."

  • To make updating a Debian or Ubuntu system easier, it's recommended to create an alias for the update command. The commands involve running sudo apt update and sudo apt upgrade, which can be lengthy to type frequently.

  • Using nano, the user can edit the .bashrc file to add new aliases. For example, typing alias apt-up='sudo apt update && sudo apt upgrade' helps streamline the process.

  • After adding the alias, saving changes is essential, and the user can either close the terminal or execute the source ~/.bashrc command to apply updates without closing it.

Running Commands and Using Aliases 40:10

"Let's try that new alias apt-up, and it is running sudo apt update and then it's also going to run sudo apt upgrade."

  • Once the alias is set up correctly, invoking it allows the user to run both the update and upgrade commands with a single, easy-to-remember term.

  • The user can test the alias by entering apt-up, which will execute the intended commands and prompt for any changes, demonstrating the efficiency gained by using aliases.

Mastery Through Repetition and Practical Application 40:35

"If you just rewatch the video two or three times and actually run the commands, it will stick in your head."

  • Reinforcement is key in learning terminal commands. The importance of revisiting the material and practicing the commands several times cannot be overstated.

  • Achieving a level of comfort with command-line operations allows individuals to eliminate the use of graphical user interfaces for tasks like file management, which becomes faster with commands like ls for list directory contents.

Moving Beyond Basic Commands 41:30

"I think a lot of people think the terminal is harder than it actually is."

  • The perception that terminal usage is complicated often deters newcomers. However, by familiarizing oneself with basic operations, the terminal can become a powerful tool for daily tasks.

  • Encouragement is provided for users to delve into command-line learning, emphasizing that mastery of these commands can make using Linux systems more efficient and enjoyable.