
Explore Linux, an open source operating system with distributions for servers, data centers, and supercomputers; learn to install, use command line, automate tasks with bash scripting, and secure the system.
Examine the evolution from Unix at Bell Labs to Linux and its shells. Understand how Bash and the command line enable text-based interactions using commands like echo, cat, and pwd.
Explore how the Linux file system organizes data from the root downward. Boot holds boot loader files and kernel images, while etc stores configuration like passwd and fstab.
Master virtualization concepts, including server virtualization, storage virtualization, and network virtualization, and learn how bare metal and hosted hypervisors run multiple virtual machines with isolation and scalable cloud computing support.
Install VirtualBox on Windows by downloading the Windows hosts installer, installing the 64-bit Microsoft Visual C++ redistributable, rebooting, then completing the VirtualBox setup with next, yes, and finish.
Learn to install Linux Debian in VirtualBox by creating a virtual machine, partitioning the disk, and installing the core system with bootloader, standard system utilities, and a desktop environment.
Learn about the Linux root user and how sudo replaces the substitute user command for secure privilege escalation, reducing password disclosure, lack of accountability, and excessive privileges, with command logging.
Explore how Linux environment variables influence processes by displaying the current user, host name, and home directory with echo commands, and inspect the path for directories the shell searches.
Add the current user to the sudo group to run commands as root. Reboot to apply changes, verify membership with groups, and confirm root access with whoami.
Explore how Linux package management works across major distributions, using apt, dnf, and pacman; define repositories, configure sources.list, and master common commands for install, update, search, and upgrade.
Learn to manage files and directories in bash using cp, mv, rm, and ls. View contents with cat, search text with grep, and copy directories recursively with cp -R.
Explore how to view and analyze file content using cat, head, tail, more, and the less viewer, navigate and search within files, and count lines, words, and characters with wc.
Master bash redirection and piping to control input and output, write echo output to files with > and >>, chain commands, and encode/decode with hexadecimal and base64.
Learn to sort text by city names in Linux using the sort command, sorting by field 3,3, optionally setting the separator with -t ':' and reversing with -r.
Master text processing in linux by counting occurrences of lines with -c, displaying duplicates with -d, showing only unique lines, and sorting by content length with sort and uniq.
Extract fields from text using a field separator to display specific and ranged fields; use sort and unique to remove duplicates, and show the first field as the status code.
Master the translate command in Linux to replace or delete characters in an input stream and transform text. Remove whitespace, keep single spaces, and convert uppercase to lowercase.
Use diff to compare two linux text files, displaying differences with minus and plus signs and red/green lines, then use comm on sorted files to show common and unique lines.
Learn to manipulate data with awk to extract specific fields from text files, use field numbers and separators, and display or format IP addresses, cities, and countries.
Use regular expressions in Linux with awk and grep to match patterns in credentials.txt, extract password hashes, compute lengths with wc -c, and apply -e, -o, and -i options.
Search Linux binaries and files with which, whereis, locate, and find to reveal full paths. Read manual pages with man, and refine results by using grep, ls, and cat.
Archive files with tag to create a single archive, then compress with gzip or bzip2 to reduce size. The lecture shows that bzip2 achieves a higher compression rate than gzip.
Decompress gzip and bzip2 archives into tar files and extract their contents to reveal the original files.
Archive and compress files in one step with tar czvf archive.tar.gz data, then list and extract the archive; repeat with bzip2 using tar cjvf archive.tar.bz2 data.
Learn to create and manage compressed archives with 7zip, compare its efficiency, list contents, extract all files, and protect archives with a password using 7z add and 7z x.
Master vim by installing it with apt install vim or dnf install vim-enhanced, then switch between normal and insert modes and save with :w or exit with :q.
Describe how Linux uses user accounts with unique UIDs and group IDs, including root with UID 0, home directories, and pseudo users like postgres and nginx, with restricted permissions.
Explore how Linux stores user information in passwd and shadow files, including user id, home directory, shells, password hashes, salt, and password aging fields.
Master Linux user information with who am I, w, and who to view current users; use last with the I option and id Alex to reveal user IDs and groups.
Create and manage system users with sudo and useradd, setting home directories and shells, configuring passwords, and verifying entries in /etc/passwd and /etc/shadow.
Learn how Linux file ownership divides access into owner, group, and others. Manage access with read, write, and execute permissions, view ownership with ls and getfacl, and express permissions numerically.
Master Linux file permissions and ownership by practicing with two users named data and Tomcat, adjusting read, write, and execute rights with chmod to protect secret data.
Enable setuid to let an executable run with the owner's escalated privileges. Learn how enabling and removing setuid with chmod on root-owned command such as cat allows reading any file.
Set the sticky bit on a shared directory to restrict deletion and renaming to the file owner or root, demonstrated with Alex and Peter's shared data.
Enable setgid on a shared directory to make new files inherit the directory's group, demonstrated with Alex and Peter sharing data in the Pentesters group.
Learn to use a terminal and bash to write and run a simple script that echoes hello world, shows date and directory contents, and explains shell scripting for automation.
Master bash variables by declaring, assigning, and accessing them with $, using double vs single quotes, applying command substitution, and leveraging environment variables in scripts.
Demonstrate bash arithmetic with $((...)) to add and subtract, use expr for calculations, and convert decimals to hexadecimal with printf %x in a script using x and y.
Explore how bash if statements enable conditional execution by evaluating conditions with then, else, and fi, including checking numeric values, multiple conditions, and file or command existence.
Master bash while loops by executing commands while a condition is true, using a counter, and reading hosts from a file to resolve IPs with dig.
Master bash for loops to iterate over values, assign items to a counter, and execute commands such as echo and base64 encoding or decoding, plus backing up files with cp.
Learn how bash exit codes indicate success or failure, check them with $? in scripts, and use for loops and ping to scan a local network for reachable hosts.
Learn how to make http requests from the command line using curl, including get and post methods, headers, data encoding, ip info queries, proxies, and handling ssl certificates.
Demonstrates downloading and uploading files with curl, including resuming downloads with -C and uploading via -F, plus a bash script using curl to fetch IP geolocation from ipinfo.io.
Learn to install wget and use it to download files, rename outputs, download multiple files from a list, save to a directory, show progress, and resume interrupted downloads.
Learn how to inspect and alter the user-agent header in HTTP requests, using curl and wget with custom user agents, and automate random user agents in a bash script.
Explore data encoding and decoding with base64 and hexadecimal, and how hash functions produce fixed-size digests. See how hashing protects passwords and ensures data integrity.
Learn how data encryption turns plaintext into ciphertext and back, compare symmetric and asymmetric schemes, and explore session keys, public/private keys, and examples like aes, rds, rsa, and elliptic curve.
Demonstrate hybrid encryption by combining asymmetric and symmetric methods; exchange a session key with Bob's public key, then encrypt data with the session key and destroy it after use.
Learn to encrypt and decrypt files in Linux using OpenSSL in a bash workflow, including base64 encoding and key derivation from a password.
Learn to automate encryption of all files in a target directory by a bash script that uses openssl, reads a password securely, encrypts each file, and deletes originals.
Demonstrates decrypting system files with a bash script, part 3, by listing files, obtaining the decryption password, and using openssl to decrypt each file and remove the encrypted versions.
Learn how Linux cron jobs automate tasks by scheduling commands with cron syntax and crontab, including creating, listing, editing, and removing jobs.
Understand how cron jobs run with their owner's privileges and how to enumerate root-owned tasks in cron directories. Learn a privilege escalation using a writable script and setuid on /bin/bash.
Differentiate foreground and background processes, and learn pid concepts, parent-child relationships, and monitoring with ps, ps3, top, and echo $$.
Manage Linux processes using ps, top, and jobs to monitor CPU and memory while wget runs, suspend with ctrl-z, resume with bg/fg, and terminate with signals.
Discover systemd as the Linux system and service manager, and learn how daemons, units, sockets, and timers control services like SSH, cron, and Apache.
Manage linux services with systemd using the Apache web server as an example. Install Apache on Fedora/RedHat or Debian/Ubuntu, then start, stop, restart, and enable or disable automatic boot.
Search three directories for unit files by priority: etc systemd system, then run systemd system, then lib systemd system; place custom units in etc systemd system to override defaults.
Configure a systemd service with a shell script that saves the current time to time.txt, define unit and service sections, then systemctl daemon-reload and start.
Learn how to use systemd timers to schedule a systemd service for daily tasks, such as backing up a production database, with one shot services triggered at midnight.
Create a one-shot systemd service unit and a timer unit to execute a shell script every 30 seconds, with accurate millisecond timing and persistent timer behavior.
Explore networking fundamentals, including protocols, mac and ip addresses, arp tables, and how switches and routers interconnect devices on local area networks to enable data transfer.
Master the seven OSI layers from physical bits to application services like email and file transfer. Learn how MAC addresses, IP addresses, and ports enable layer-specific messaging.
Data encapsulation spans from application layer through the presentation and session layers, attaching session IDs, transport ports, IP header and addresses, forming IP packets and ethernet frames that become bits.
Demonstrates how a data frame travels from computer one to computer two across two networks via two routers, highlighting the default gateway, eth0/eth1 interfaces, mac addresses, and routing table decisions.
Establish a tcp connection using the three way handshake: syn, syn ack, and arc. Then exchange data with tcp push arc packets and close the connection with fin arc packets.
Use the ip command to list and manage network interfaces, view addresses and mac addresses, and identify the loopback interface. Explore routing with the routing table and the default gateway.
Learn how to use the ping command to test host reachability by sending ICMP echo requests and interpreting replies, round-trip time, packet loss, and transmission statistics.
Netcat, the tcp/ip swiss army knife, tests network services by issuing get requests to read http content like hello message.txt. It demonstrates downloading and uploading files with redirection over tcp.
Master tcpdump to capture and analyze icmp and tcp traffic, install and use filters, observe a tcp handshake, http requests, and display packet content in ascii for debugging.
Explore how the secure shell protocol enables encrypted client and server connections for administration and file transfers, through OpenSSH, the handshake, Diffie-Hellman key exchange, and host or public key authentication.
Install and configure the secure shell server and verify ssh and sshd components. Connect from a client to the remote server with ssh, accept the host key, and authenticate.
Explore how ssh handshake authenticates client and server, verifies host keys, and manages known_hosts with sha-256 fingerprints for elliptic curve keys.
Learn to authenticate SSH clients with public keys by generating key pairs, protecting the private key with a passphrase, and placing the public key on the remote server.
Generate a 4096-bit RSA key, copy its public key to the remote server, and connect using a key passphrase. Disable password authentication to enforce public key only SSH access.
Explore how the file transfer protocol uses two TCP connections—the command channel on port 21 and the data channel on port 20—along with user authentication and file transfer workflows.
Understand FTP active and passive modes to establish the data channel, detailing port 20 and the command port, and how passive mode solves firewall constraints.
Install and configure a Linux ftp server with vsftpd, connect from a client, switch between binary and ascii modes, enable passive mode, and transfer files using get and mget.
Learn to transfer files with FTP using put to upload, fix permission denied by enabling write in vsftpd, and delete with mdelete. Enable passive mode and restart FTP service.
Explore how the secure file transfer protocol (sftp) uses ssh authentication and port 22 to provide secure, encrypted file transfers, replacing ftp's two connections on ports 21 and 20.
Explore why ftp is insecure and how sftp encrypts file transfers. See tcpdump captures of ftp traffic, then use sftp with public key authentication and commands like put and get.
GNU/Linux Operating System is one of the biggest open source projects, and it is considered the backbone of the internet, driving the majority of web servers, data centers, super computers and serving as the standard for cloud computing, virtualization, and containerization technologies.
Given all these factors, mastering Linux is crucial for enhancing your career prospects, and this course will help you achieve this target.
By the end of this course, all Individuals whether they're recent graduates, career changers from other IT fields, or seasoned professionals, will master Linux Administration and Shell Scripting.
What you will learn in this course:
- Key Concepts about Linux File System.
- How to use the Command Line Interface.
- Scripting in Bash and how to Write Shell scripts to automate system administrative tasks.
- How to manage System files and System packages.
- Archiving And Compressing Files using tar, gzip, bzip2, 7zip...
- Data Manipulation and Text Processing using, sort, uniq, cut, tr, diff, comm...
- Data Manipulation and Regular Expression using awk, grep...
- How to install and use the advanced text editor VIM.
- How to manage System Users, Groups and their permissions.
- Managing Linux Processes and learn how to monitor, start and stop processes.
- Managing Linux Processes and learn how to background and foreground processes.
- Key Concepts about Linux services, Systemd, Systemd unit files, systemd timers...
- Managing Linux Services and learn how to create, start, stop and monitor systemd services
- How to manage System services and Cron jobs.
- Automate System Tasks using Cron Jobs
- Key Concepts about Cryptography.
- How to Secure your data using Encryption/Decryption.
- Key Concepts about Networking: OSI Model, Data Encapsulation, TCP Packets Flow and TCP-3-Way-Handshake...
- Linux Networking Administration.
- Network Troubleshooting.
- Analyzing network traffic.
- Key Concepts about SSH Protocol.
- Remote Servers Administration using SSH protocol.
- Setup and configuration of an SSH Server.
- Secure the SSH Server.
- Key Concepts about FTP and SFTP Protocols.
- Setup and configuration of an FTP Server.
- File Transfer using FTP Protocol.
- Setup and configuration of an SFTP Server.
- Secure File Transfer using SFTP Protocol.