Exam 2 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, ln
- 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
- Partition tables & partitions
- Tools: parted, gdisk, fdisk
- Filesystems
- Windows
- Linux
- Mac
- compatibility, metadata, structure
- Mounting & “ejecting”
- mounting to /
- automounting with
fstab
entries
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
- “pseudo terminals” via
tmux
- Service manipulation with
systemctl
- enable vs disable
- start, stop, reload / restart
- init / systemd
- systemctl (manage services
journalctl (manage service logging)
Git (version control)
- Version control as a concept
- Steps to clone with
ssh
for authentication
- Basic commands:
- clone
- add
- commit
- push
- pull
- status