Final Review for CEG 2350
Intro topics
- Shells
- Windows: powershell, cmd
- Linux / Mac: bash, sh, zsh
- SSH
- the command, its options, and structure of information
- private key files (location and permissions)
- public keys and the authorized_keys file
Files, directories, and OS structure
- Filesystem structure in Linux, Mac, and Windows
- Files vs directories
- Commands: ls, cp, mkdir, rmdir, vim, mv, rm, cd, cat, touch, head/tail, less/more
- Importance of names and extensions (file)
- Ownership & sharing
- rwx permissions in Linux
- user vs. group vs. other
- creating users & groups (and naming rules)
- chmod, chown, chgrp, adduser, deluser
- sudo & the root user
Scripting
- Environment variables
- Aliases & customizations (.bashrc, .profile)
- Commands: diff, find, file, wc, sort, uniq, whereis, which
-
IO streams (standard input, output (1) and error (2)) and redirection (<, >, », |
, tee) |
- executing scripts
- within current bash shell (source (or
.
)
- by specifying interpreter (bash)
- by specifying the interpreter with
#!
(./
)
- by name from any location (adding path to PATH)
- Scripting languages: bash
- variables
- reading input
- printf vs echo
- arguments
- conditionals (
test
)
- if
- for
- while
- case
- getopts
- functions
- Regular expressions
- grep (search)
- sed (search and replace)
- awk (manipulate formatted data)
Computer Hardware & VMs
- Computer Hardware:
- CPU
- RAM
- Motherboard
- Disks (HDD, SSD, NVME)
- GPU (discrete / dedicated vs integrated)
- VMs
- hypervisor
- host considerations when creating VMs
- installing guest VMs
Boot Process
- BIOS / UEFI
- POST
- bootloader
- kernel
- OS
Filesystems & Disks
- Devices
- block - SSD, HDD, NVME, CD, USB
- character -
/dev/null
, /dev/zero
, /dev/random
- Partition tables & partitions
- MBR vs GPT
- Tools: parted, gdisk, fdisk
- Filesystems
- Standard defaults for Windows, Linux, and Mac
- compatibility, metadata, structure
- inodes
- Symbolic links vs. hard links
- Tools:
ln
, stat
- Tools:
du
, df
, mkfs
- Mounting & “ejecting”
- mounting to
/
- automounting with
fstab
entries
- Tools:
mount
, umount
- Compression (
tar
& gzip
)
Process Control
- Terminology
- process
- application
- service / daemon
- Process states
- Running
- Sleeping
- Stopped
- Zombie
- Orphan
- Process metadata
- PID
- PPID
- User
- Command
- Controlling terminal
- Process manipulation
- viewing active processes
- killing processes
- foreground vs background processes (
bg
, fg
)
- “pseudo terminals” via
tmux
- Service manipulation with
systemctl
- enable vs disable
- start, stop, reload / restart
- format of a service unit file
- init / systemd
- systemctl (manage services)
- journalctl (view service logs)
- Tools:
ps
, top
, kill
, jobs
Programming
- Languages:
- Interpreted: bash, python
- Compiled: C / C++, Java (JDK vs JVM)
- Compilation (in C / C++):
- pre-processor
- compiler
- assembler
- linker
gcc
/ g++
and compilation flags
- Linux ELF (Executable & Linkable Format)
- Windows EXE
- Makefiles
make
- targets
- dependencies
- actions
- Tools:
which
, whereis
, ldd
Networking
- Core networking concepts
- Methods of communication (physical layer): wifi, ethernet, fiber
- Network interface (NIC)
- communicates over physical layer
- Media Access Control address (MAC)
- Network concepts
- IPv4 vs IPv6 addressing
- DNS
- DHCP
- subnets
- routes
- border gateways / Network Address Translation (NAT)
- ports
- IPv4 concepts
- Subnetting & CIDR notation
- Firewalls
- inbound / INPUT / ingress
- outbound / OUTPUT / egress
- common sense rules & trusted networks
- applied questions will be with a view of an AWS Security Group
- Commands:
ip
, route
, arp
, iptables
, ping
, curl
, wget
Network protocols
- HTTP
- HTTPS
- certificates & Certificate Authorities
- SSH
- ssh
- sftp
- Files:
- private key
- public key
config
known_hosts
authorized_keys
Git (version control)
- Version control as a concept
- Steps to clone with
ssh
for authentication
- Basic commands:
- clone
- add
- commit
- push
- pull
- status
- branch
- checkout
- merge
- Files: