Last Updated on April 11, 2023 by GeeksGod
As part of this course, you will learn most of the important Linux commands that can come in handy while working in Linux-based environments.
Here are the high-level details of the Linux Commands that are covered as part of this hands-on course.
You will get started by having an appropriate environment to practice. Windows users can set up Ubuntu 20.04 using wsl.Once the environment is ready, you will understand how to get started with basic Linux Commands.The most commonly used command in Linux is ls. It is used to list the files. We will see different variations of ls by going through all the relevant arguments.One of the powerful Linux commands and also my favorite is “find”. It helps us to filter the files and directories based on name, type, modified time, etc. You will learn how to use the find command effectively from the perspective of finding the files based on the criteria.As we understand how to get details related to files and folders in Linux, we will go through the details related to previewing the data in files using important Linux commands such as cat, tail, more, etc. Also, we will review Linux commands such as cut, sort, uniq to process the data. All these commands are typically used against text files.After going through details related to ls, find commands as well as commands related to processing data in files, we will walk you through the details related to file and folder properties in Linux. You will get an overview of commands such as useradd, userdel, chmod, etc which are typically associated with file permissions.One of the key aspects related to files and folders is to manage them effectively. We will go through the details about managing files and folders using Linux commands such as cp for copy, mv for move or rename, rm for delete or remove, tar to build uncompressed as well as compressed tar balls. Also, you will get a taste of the awk command to automate some of the common tasks such as reorganizing the files based on patterns.The core components of a computer are nothing but CPU, Memory, and Storage. In this section or module, you will be learning Linux commands such as lscpu to get CPU details, free to get memory details, and then df and du to get storage details.At times, we need to make sure the data is in files as well as codebase to troubleshoot the production issues or bugs in QA. In this section, you will learn how to use the Linux command called diff to compare files and folders and review the differences.Environment Variables are the ones that can impact the sessions logged in by users in Linux. As part of this section, you will be learning details related to Variables, Environment Variables. Also, you will understand how to list all the Environment Variables using Linux commands such env, and how to get a value of a Variable or Environment Variable using the Linux command echo. On top of these things, you will also learn all important aspects related to one of the most important Environment Variables called PATH.As we gain a decent amount of knowledge related to Linux commands using a single server, it is time for us to explore other important commands such as ssh, scp, pssh, pscp, etc which require more than one Linux System or Server. Also, we need to go through basic networking concepts. To learn commands to interact between the servers as well as to understand basic networking concepts, we will get started with AWS to provision Ubuntu-based virtual machines. These Virtual Machines will be used in the subsequent sections to learn the concepts mentioned earlier as part of this bullet point.Once we go through the details about getting started with AWS, we will focus on learning all key concepts related to SSH such as sshd daemon, updating ssh config files, and restarting sshd using systemctl or service command. Also, we will go through the details related to passwordless login and also ability to run commands remotely via ssh. We will also understand how to set up parallel ssh and then run commands on multiple Linux systems in parallel.To be comfortable with learning in a Linux environment, it is very important for one to understand key concepts such as different types of IP Addresses, Port Numbers, relationships between applications and databases with ports, etc. In this section, we will go through all important networking concepts using apache2, MongoDB, etc. Once we are comfortable with SSH, it is time for us to use tools such as scp which uses ssh under the hood to copy files and folders between the Linux Systems. We will also explore parallel scp to copy files in parallel to multiple target systems from one source system. Also, we will go through the details related to speeding up the copy using different techniques which include submitting multiple scp commands using nohup.One of the important aspects for any IT Engineer is to troubleshoot the application issues deployed in Linux by reviewing logs generated by applications. After going through scp, you will learn how to troubleshoot issues by using grep and find against log files of the applications deployed on the Linux Server.To ensure that we can monitor and manage Linux Servers, we not only need to understand how to manage applications and databases in Linux but also need to understand the performance of the applications. For managing applications and databases on a Linux server, one should be familiar with commands such as apt to install applications and systemctl or service to manage the life cycle of applications and databases. To monitor, one should be familiar with commands such as ps, lsof, top, etc. You will learn how to monitor and manage applications as well as databases using examples such as ssh, apache2, mongodb, jupyterlab, etc.As we learned quite a few commands and tools on Linux, now it is time for us to work on increasing productivity by using appropriate tools, especially for Windows users. You will see the relevance and also how to setup tools such as notepad++, winscp, visual studio code with remote development extension, git tools for Windows, etc.Organizations will end up having hundreds of servers to support their applications. However, these hundreds of servers need to follow a handful of templates. Using Server Automation tools like Ansible, we should be able to automate the process of configuring a large number of servers using a handful of templates. You will get an overview of Ansible covering some of the core concepts of Ansible such as running commands, inventory, playbooks, variables, roles, etc.Also, you will understand how to use programming languages like Python to take care of automation by using modules such as os, glob, subprocess, etc.
Basic Linux Commands
Running the first command on LinuxGetting usage of Linux commands using the helpOverview of Files and FoldersFully Qualified or Absolute Paths and Relative Paths of Files and Folders
Listing files and folders in Linux File System using ls
Overview of ls command to list files and folders in LinuxSetup Files and Folders from GitHub Account to learn Shell CommandsSetup Jupyter Lab to go through help on linux commandsGetting the properties of files and folders using the ls command in LinuxSorting ls output while listing files in LinuxList files and folders in Linux sorted by timeList files and folders in Linux sorted by sizeOverview of Hidden Folders and FilesListing Hidden Files and Folders in LinuxListing the files and folders recursively in LinuxExploring Control Arguments while listing files in LinuxOverview of representation of file sizesOverview of alias command and ll to list files and folders
Filtering files and folders in Linux File System
Introduction to the filtering files and folders on Linux File SystemAccessing Windows Files and Folders from Linux setup using wslOverview of grep commandFew basic examples using grep and pipingOverview of Piping while running shell commandsOverview of Basic Pattern MatchingDeep Dive into the wc command to get word count or line countOverview of the find command to filter files and foldersUnderstand the behavior of the simplest form of find command in LinuxUsing Linux find command to find directories or foldersUsing Linux find command to find files by type and patternOverview of Standard Directories in LinuxGet the list of files based on the modified time using the Linux find commandGet the list of files based on size using the Linux find command
Processing Data in Files using Linux Commands
Introduction to commands used for processing data in files using LinuxOverview of Different File FormatsGet file format or type using file command in LinuxPreview the data in the text file using head command in LinuxPreview the data in the text file using tail commandInstall apache web server on Ubuntu LinuxGenerate Apache Logs every second using shell script and nohupMonitoring Logs using tail command in LinuxPreview the data in the text file using more commandExtract data from files in Linux using cut commandSort data in files in Linux using sort commandSort data in files in Linux using sort command based on key and delimiterExtract Information and Redirect to a file in LinuxGetting Unique Records from File using sort in LinuxUsing uniq to get unique values in Linux
Understanding File and Folder Properties
Introduction to Properties of Files and FoldersUnderstand File and Folder Properties provided by ls commandUnderstanding Owner of the Files in LinuxOverview of groups associated with files and folders in LinuxCreating Groups in Linux using groupaddCreate users in Linux using useradd commandSpecifying bash as the default shell while creating users in LinuxCreate Users with Group in LinuxAdd users to supplementary or secondary groups in LinuxOverview of File Permissions in LinuxOverview of umask for default permissions on Files and FoldersPermissions on Home Folders for different Linux UsersFile and Folder Permissions for Groups and OthersConclusion for File and Folder Properties using Linux
Managing Files and Folders in Linux
Introduction to Managing Files and Folders in LinuxGenerate empty files in Linux using touch commandCreating Directories in Linux using mkdir commandOverview of awk command in LinuxOverview of cp command to copy files in LinuxUsing cp command to copy files in LinuxCreate multiple folders at once using awk in LinuxCopy files using Patterns in LinuxAutomate file copy using awk and cp in linuxCopying folders recursively using cp command in LinuxCopying files using cp while preserving properties in LinuxMoving Files in linux using mv commandAutomate file move using awk and mv in linuxOverview of tar command to take the backupsCreate backup of files and folders using tar command in linuxRestoring Files and Folders using tar command in LinuxMoving Folders in Linux using mv commandOverview of rm command to remove files from Linux File SystemDelete files from Linux File System using rm commandUse alias to delete files interactively from Linux File SystemDelete folders from Linux File System using rm commandRestore Data Folder from the tar ballDelete files using find and rm from Linux file system based on nameDelete files using find and awk from Linux file system based on nameGenerate log files for multiple years using touch with patternsUpdate timestamp of files based on names in Linux using touchDelete files using find and rm based on modified time in LinuxRenaming the files and folders in Linux
Basic System Commands in Linux
Introduction to Basic System Commands in LinuxOverview of core components of a computerGet CPU Details using lscpu command in LinuxGet Memory Details using free on LinuxGet Storage Details using df in LinuxGet Disk Usage Details using du in LinuxGet largest folders and files using du and sort on LinuxUnderstand Storage Details of Directories using du on WindowsGet storage use of folders and filesGet Storage Details of larger files using find and du
Comparing Files and Folders in Linux using diff
Introduction to comparing files and folders in Linux using diffOverview of the diff commandPrepare Dataset to explore diff command in LinuxUnderstand the output of the diff command in LinuxCompare Files Ignoring Blank Lines and White Spaces using diff in LinuxCompare Files Ignoring case using diff in LinuxUnified and Side By Side Comparison using diff in LinuxCompare Folders in Linux using the diff command
Variables and Environment Variables in Linux
Creating and Printing Variables using echo in LinuxOverview of Environment Variables in Linux and env commandOverview of Environment Variables in WindowsReview some of the standard environment variables in LinuxGet the location of commands in linux using whichReview PATH and unset PATH in LinuxRelevance of PATH Environment Variable while running Linux CommandsOverview of Profile and rc in LinuxCreate a simple shell script and grant execute permissions in LinuxUpdate PATH with parent folders of custom applicationsUpdate PATH in profile with parent folders of custom applications
Getting Started with AWS
Introduction to Getting Started with AWSSigning up for AWSOverview of AWS Web ConsoleOverview of AWS EC2 Console or DashboardCreate AWS EC2 Key Pair using AWS EC2 ConsoleCreate our first AWS EC2 Instance using Ubuntu 20Login into AWS EC2 Instance using Key PairOverview of AWS Free Tier and PricingOverview of AWS Web Console Cloud ShellOverview of AWS EC2 Instance ConceptsManaging AWS EC2 Instances
Overview of SSH to interact with remote servers
Introduction to Overview of SSH to interact with Remote ServersCreate Multiple AWS EC2 InstancesDifferent Modes of SSH Login to Remote ServersUnderstanding Password less login to Remote ServerOverview of SSH Daemons on Remote ServersUnderstand SSH Properties Files and PropertiesEnabling Password login on Remote ServerRun Commands on Remote Servers using SSHConnect to Remote Servers from Windows using Powershell as well as wslSetup pssh or parallel-ssh on Mac as well as Ubuntu LinuxRun Commands on multiple servers using parallel-ssh or psshRun Commands on multiple servers using pssh using the hosts fileEnable Password less login using ssh keys and the ssh-copy-id commandTerminate AWS EC2 Instances used for demo
Basic Networking Concepts using Linux
Introduction to Basic Networking Concepts using LinuxProvision EC2 Instance from AWSOverview of AWS Security GroupsOverview of Different Types of IP AddressesInstall Apache Webserver on UbuntuUpdate Security Group to access Apache Web ApplicationOverview of Daemon or Background Processes and PortsUnderstanding Structure of IP AddressOverview of DNS Aliases for IP AddressesInstall Jupyter Lab on UbuntuRun Jupyter Lab using LocalhostUpdate Security Group to access Jupyter LabSetup Mongo DB on AWS EC2 InstanceRun MongoDB on Universal IP AddressUpdate Security Group to access Mongo DBCleanup AWS EC2 Instance used to demo networking concepts
Copy Files and Folders between Multiple Systems using scp
Introduction to Copying Files and Folders between multiple Linux Systems using scpProvision of multiple EC2 Instances from AWSConnect to EC2 Instances using Windows PowershellConnect to EC2 Instances from Linux on WindowsPrepare Data Sets to explore Copying FilesOverview of scp for secure copy between Multiple SystemsCopy Files using scp between Multiple SystemsCopy Folders using scp between Multiple SystemsCopy Tar Ball or Zip File using scp between Linux ServersSetup parallel-scp or pscp to copy files to multiple systemsPrepare Target Systems by recreating folders using psshCopy Files onto remote machines in parallel using pscpCopy Folders onto remote machines in parallel using pscpOverview of Copying Files and Folders between two systems in parallelSubmit Long-Running Applications or Commands in the Background using nohupRun multiple scp commands in parallel using nohup in LinuxStop or Terminate AWS EC2 Instances used for the tasks
Troubleshooting Application issues using find and grep in Linux
Introduction to Troubleshooting Applicatin Issues using find and grep in LinuxReview Standard Location for Application Logs on LinuxSetup Log Files to explore grep and find to troubleshoot the issuesOverview of Standard Log Message FormatQuick Review of find command to get log file names based on criteriaGetting help or official documentation or man page on Linux grep commandOverview of Standard Input, output and errorRedirect Linux Command or Program Results to a fileOverview of Null Device in LinuxRedirect stanard output and error to files and null device in LinuxOverview of Case Sensitivity in LinuxSearch for error lines from files in Linux using find and grepGet File Names with errors using grep and find in LinuxPerform Whole Word Search using Grep CommandSearch for multiple patterns in the files using find and grep in LinuxGet number of lines with pattern using find and grep in linuxGet line number and output line using grep in LinuxGet additional lines along with error or exception lines using grep in Linux
Monitoring and Managing Linux Servers using System Commands
Introduction to Monitoring and Managing Linux Servers using System CommandsSetup EC2 Instance on AWS using Ubuntu 2Overview of Managing Softwares on Ubuntu using aptInstall Apache Web Server and Mongodb on UbuntuManage Applications and Databases using systemctl or service commandStart Apache Web Server and Mongodb using systemctlOverview of Service and its componentsRecap of commands to get Linux Server DetailsGet CPU or Load Average of Linux Server using uptime commandOverview of ps command to get details about processes on Linux ServerGet details of all the processes running on Linux Server using psGet list of processes owned by user on Linux Server using psCustomize the output of ps command for specific details of processesNumber of processes on Linux Server owned by each user using psGet Process Details for a service on Linux Server using ps commandOverview of lsof command to get list of open files on LinuxGet open file details using lsof for a given process idGet open file details using lsof for a given port numberGet Process Details using lsof command for a given fileTroubleshoot Port Usage on Linux using lsof commandOverview of top command in Linux to get system performance detailsGetting help or man page of top command in LinuxUsing Command Line Options of top command in LInuxCustomize top interactive interface in LinuxSwitching between groups in top interactive interface in LinuxKill Processes using top interactive interface in LinuxTerminate AWS EC2 Instance setup to practice Linux system management commands
Overview of Developer Tools for Linux using Windows
Introduction to Developer Tools for Linux on WindowsInstall Notepad++ on WindowsInstall WinScp on Windows to access files on remote Linux Servers or SitesAdd Site to WinScp for Password Login into Remote Linux ServerAdd Site to WinScp for Passwordless Login into Remote Linux ServerCopying Files between Windows and Remote Linux Systems using WinScpOpening Files on Remote Machines using WinScp and Notepad++ Locally on WindowsOverview of Advanced Editing Capabilities of Notepad++Overview of Visual Studio Code on Windows for Remote DevelopmentInstall Visual Studio Code on WindowsInstall Remote Development Extension Kit for Visual Studio CodeSetup Project on remote machine for remote development using Visual Studio CodeOpen Remote Project via SSH using Visual Studio CodeOpen Project via WSL using Visual Studio CodeAccess Configuration Files on Remote Machines using Visual Studio CodeInstall Git and Git Bash on WindowsInstall Beyond Compare on WindowsSetup Repository using Git to explore Beyond CompareQuick Demo of Beyond Compare to compare code base
Overview of Ansible for Server Automation
Introduction to Overview of Ansible for Server AutomationSetup Ansible on Ubuntu 20Provision EC2 Instances to learn AnsibleRun first command using Ansible on Multiple Instances using inline inventoryRun first command using Ansible on Multiple Instances using inventory fileUpdate Ansible Hosts Files on AWS EC2 RebootsOverview of Ansible help, man page and official documentationAdd User and Group Manually in LinuxAdd Group on remote instances using ansibleAdding User using Ansible user module on remote serversAdd Folder on remote systems using Ansible file moduleCopy authorized keys using Ansible copy moduleSetup Project Structure for Ansible Playbooks using Visual Studio CodeCreate and Run first ansible playbookDefine Variables for Credentials to run Ansible PlaybooksDevelop Ansible Playbook to Mange UsersGetting Started with Developing Ansible RolesDevelop and Validate Ansible Playbook with RoleAdding more tasks to the Ansible Role and Troubleshooting the issuesCreate Ansible Playbook with VariablesUsing Lists and Loops in Ansible PlaybooksUsing Tags to run specific tasks from PlaybooksUpdate Ansible Role and Playbook with variables and tagsAdd Variables under vars folder of Ansible RoleTerminate AWS EC2 Instances used for Ansible Tasks for Server AutomationConclusion of Overview of Server Automation using Ansible
Overview of Automation using Python on Linux
Introduction to Overview of Automation using Python on LinuxValidate Python and Python Modules such as pip on UbuntuSetup and Validate Jupyter Lab on UbuntuCreate Folder for Notebooks using Jupyter LabOverview of getpass module to get usernameRunning Linux Shell Commands from Jupyter NotebooksOverview of Python os moduleSetup Data Sets for Python and Linux IntegrationOverview of Python glob moduleOverview of running Linux Commands using subprocessSort all files in Linux File System by size using PythonUncompress all Compressed Files using Python on LinuxOverview of Python Multiprocessing ModuleUncompress Files in Parallel using Python multiprocessingAdd Extension to Files using PythonOverview of Copying Files using Python and scpRun Commands on Remote Machines using Python and sshCopy Files to multiple systems in parallel using Python and scp
Desired Audience
Here is the desired audience for this advanced course.
Experienced application developers to gain expertise related to Linux shell commandsExperienced Data Engineers to gain enough skills related to Linux shell commandsTesters to improve their testing capabilities by using Linux shell commands effectively
Prerequisites
LogisticsComputer with decent configuration (At least 4 GB RAM, however 8 GB is highly desired)Dual Core is required and Quad-Core is highly desiredChrome BrowserHigh-Speed Internet