Linux System Administration and Shell Scripting Notes


Installation and Virtualization

  • Hypervisors: VMware Workstation 15 Pro and Oracle VirtualBox are used for virtualization.

  • Disk Partitioning Structures:   - MBR: Legacy, limit of ~2 To, max 4 primary partitions.   - GPT: Modern (UEFI), limit of ~9.4 Zo, supports ~128 partitions, features redundancy (CRC).

  • LVM (Logical Volume Manager): Offers flexibility to extend volumes across physical disks.

File System Management

  • Standard Directory Hierarchy:   - /bin: Essential binaries.   - /etc: Configuration files.   - /home: User personal directories.   - /root: Admin personal directory.   - /var: Variable data (logs).   - /dev: Device files.

  • Inodes: Unique index numbers containing metadata (permissions, owner, size).

  • Links:   - Hard Link: Same inode as the original; cannot cross partitions.   - Symbolic Link: A separate file acting as a pointer (shortcut) to another path.

Permissions and Users

  • User Types: root (administrator) and standard users via sudo.

  • Permissions (rwx):   - r (Read = 4), w (Write = 2), x (Execute = 1).   - Categories: Owner, Group, Others.

  • Special Bits:   - SetUID/SetGUID: Allows execution with owner/group privileges (e.g., /usr/bin/passwd).   - Sticky Bit: Prevents users from deleting files they do not own in shared folders.

Network Configuration

  • Tools: iproute2 (commands like ip addr, ip link, ip route) replaces the deprecated net-tools (ifconfig).

  • Key Files:   - /etc/network/interfaces: Network interface config.   - /etc/resolv.conf: DNS configuration (often handled by resolvconf package).   - /etc/hostname and /etc/hosts: System identification.

  • SSH Security: Use of public/private keys via tools like PuTTY GEN for passwordless authentication.

Process and Service Management

  • Process Monitoring: ps aux, top/htop, and pstree.

  • Process Priority (NICE): Values range from -20 (highest) to 19 (lowest). Only root can set negative values.

  • Services (Daemons):   - SystemV: Uses init and runlevels (0-6) with scripts in /etc/init.d/.   - SystemD: Modern manager using Units (.service, .target, .socket). Controlled via systemctl (start, stop, enable, status).

  • Automation: Cron using crontab -e for task scheduling.

Disk Management and RAID

  • RAID Levels:   - RAID0: Stripping (Performance, no redundancy).   - RAID1: Mirroring (Redundancy).   - RAID5: Minimum 3 disks, parity-based redundancy.   - RAID6: Minimum 4 disks, double parity.

  • Tools: mdadm for software RAID management; SMART (smartmontools) for disk health monitoring.

  • Mounting: /etc/fstab manages automatic mounting at boot using UUIDs.

Shell Scripting (Bash)

  • Interpreters: Bash (Bourne Again Shell) is standard.

  • Variable Management:   - Environment variables: PATH</code>,<code>PATH</code>, <code>USER, HOME</code>.  −Quoting:<code>′...′</code>(literal),<code>"..."</code>(interpolates<code>HOME</code>.   - Quoting: <code>'...'</code> (literal), <code>"..."</code> (interpolates <code>), `...` or $(...) (command substitution).

  • Conditionals & Loops:   - if [ expression ]; then ... fi   - for var in list; do ... done   - case $var in pattern) ... ;; esac

  • Test Operators: -eq (equal), -ne (not equal), -lt (less than), -e (file exists), -d (directory exists).

  • Return Codes: 0 indicates success/true; non-zero indicates failure/false.