thomerton

🐧

Intro to Programming Languages

15 / 234 10554 / 35212


Commands

Time of First Successful Submission: 2026-05-14 17:32:45

Command Arguments

Time of First Successful Submission: 2026-05-14 17:33:19

Command History

Time of First Successful Submission: 2026-05-14 17:34:01

The Root Path

Time of First Successful Submission: 2026-05-14 17:36:16

Absolute Paths

Time of First Successful Submission: 2026-05-14 17:36:52

Changing position

Time of First Successful Submission: 2026-05-14 17:37:55

Changing to an Absolute Path

Time of First Successful Submission: 2026-05-14 17:40:24

Relative Paths

Time of First Successful Submission: 2026-05-14 17:56:29

Cat

Time of First Successful Submission: 2026-05-15 01:24:30

Ls

Time of First Successful Submission: 2026-05-15 01:33:22

Ls All

Time of First Successful Submission: 2026-05-15 01:41:03

Find

Time of First Successful Submission: 2026-05-15 02:09:35

Piping Echo

Time of First Successful Submission: 2026-05-19 17:59:02

Piping Stdout

Time of First Successful Submission: 2026-05-19 18:00:28

Piping Stdin

Time of First Successful Submission: 2026-05-19 18:07:51


Start Here

10 / 12 21665 / 47856


Using the Terminal

Time of First Successful Submission: 2026-05-14 16:58:35

Using the VSCode Workspace

Time of First Successful Submission: 2026-05-14 17:01:41

Using the GUI Desktop

Time of First Successful Submission: 2026-05-14 17:02:58

Pasting into the Desktop

Time of First Successful Submission: 2026-05-14 17:04:17

Restarting Challenges

Time of First Successful Submission: 2026-05-14 17:06:50

Challenge Programs

Time of First Successful Submission: 2026-05-14 17:10:42

The Flag File

Time of First Successful Submission: 2026-05-14 17:12:59

Using Privileged Mode

Time of First Successful Submission: 2026-05-14 17:16:26

Persistent Home Directories - One

Time of First Successful Submission: 2026-05-14 17:21:53

Persistent Home Directories - Two

Time of First Successful Submission: 2026-05-14 17:22:30


Linux Luminarium

128 / 128 3276 / 35689


Intro to Commands

Time of First Successful Submission: 2026-05-14 17:32:45

Intro to Arguments

Time of First Successful Submission: 2026-05-14 17:33:19

Command History

Time of First Successful Submission: 2026-05-14 17:34:01

The Root

Time of First Successful Submission: 2026-05-14 17:36:16

Program and absolute paths

Time of First Successful Submission: 2026-05-14 17:36:52

Position thy self

Time of First Successful Submission: 2026-05-14 17:37:55

Position elsewhere

Time of First Successful Submission: 2026-05-14 17:40:24

implicit relative paths, from /

Time of First Successful Submission: 2026-05-14 17:56:29

explicit relative paths, from /

Time of First Successful Submission: 2026-05-14 17:46:49

implicit relative path

Time of First Successful Submission: 2026-05-14 17:48:50

home sweet home

Time of First Successful Submission: 2026-05-14 17:54:33

cat: not the pet, but the command!

Time of First Successful Submission: 2026-05-15 01:24:30

catting absolute paths

Time of First Successful Submission: 2026-05-15 01:25:05

more catting practice

Time of First Successful Submission: 2026-05-15 01:28:12

grepping for a needle in a haystack

Time of First Successful Submission: 2026-05-15 01:29:41

comparing files

Time of First Successful Submission: 2026-05-15 01:32:06

listing files

Time of First Successful Submission: 2026-05-15 01:33:22

touching files

Time of First Successful Submission: 2026-05-15 01:34:17

removing files

Time of First Successful Submission: 2026-05-15 01:35:10

moving files

Time of First Successful Submission: 2026-05-15 01:36:52

copying files

Time of First Successful Submission: 2026-05-15 01:37:42

hidden files

Time of First Successful Submission: 2026-05-15 01:41:03

An Epic Filesystem Quest

Time of First Successful Submission: 2026-05-15 01:51:04

making directories

Time of First Successful Submission: 2026-05-15 01:52:52

finding files

Time of First Successful Submission: 2026-05-15 02:09:35

linking files

Time of First Successful Submission: 2026-05-17 15:53:12

Learning From Documentation

Time of First Successful Submission: 2026-05-17 15:55:41

Learning Complex Usage

Time of First Successful Submission: 2026-05-17 16:04:12

Reading Manuals

Time of First Successful Submission: 2026-05-17 16:10:04

Searching Manuals

Time of First Successful Submission: 2026-05-17 16:14:49

Searching For Manuals

Time of First Successful Submission: 2026-05-17 16:20:38

Helpful Programs

Time of First Successful Submission: 2026-05-17 16:23:13

Help for Builtins

Time of First Successful Submission: 2026-05-17 16:26:38

Matching with *

Time of First Successful Submission: 2026-05-19 16:16:19

Matching with ?

Time of First Successful Submission: 2026-05-19 16:17:23

Matching with []

Time of First Successful Submission: 2026-05-19 16:19:43

Matching paths with []

Time of First Successful Submission: 2026-05-19 16:20:47

Multiple globs

Time of First Successful Submission: 2026-05-19 16:22:17

Mixing globs

Time of First Successful Submission: 2026-05-19 16:24:46

Exclusionary globbing

Time of First Successful Submission: 2026-05-19 17:01:23

Tab completion

Time of First Successful Submission: 2026-05-19 17:02:30

Multiple options for tab completion

Time of First Successful Submission: 2026-05-19 17:05:03

Tab completion on commands

Time of First Successful Submission: 2026-05-19 17:05:40

Redirecting output

Time of First Successful Submission: 2026-05-19 17:59:02

Redirecting more output

Time of First Successful Submission: 2026-05-19 18:00:28

Appending output

Time of First Successful Submission: 2026-05-19 18:01:13

Redirecting errors

Time of First Successful Submission: 2026-05-19 18:06:08

Redirecting input

Time of First Successful Submission: 2026-05-19 18:07:51

Grepping stored results

Time of First Successful Submission: 2026-05-19 18:13:59

Grepping live output

Time of First Successful Submission: 2026-05-19 18:15:02

Grepping errors

Time of First Successful Submission: 2026-05-19 18:16:28

Filtering with grep -v

Time of First Successful Submission: 2026-05-19 18:17:36

Filtering with sed

Time of First Successful Submission: 2026-05-19 18:20:06

Duplicating piped data with tee

Time of First Successful Submission: 2026-05-19 18:33:44

Process substitution for input

Time of First Successful Submission: 2026-05-21 13:48:33

Writing to multiple programs

Time of First Successful Submission: 2026-05-21 13:58:16

Split-piping stderr and stdout

Time of First Successful Submission: 2026-05-21 14:06:23

Named pipes

Time of First Successful Submission: 2026-05-21 15:47:11

Printing Variables

Time of First Successful Submission: 2026-05-21 15:55:02

Setting Variables

Time of First Successful Submission: 2026-05-21 15:55:33

Multi-word Variables

Time of First Successful Submission: 2026-05-21 15:56:14

Exporting Variables

Time of First Successful Submission: 2026-05-21 16:00:11

Printing Exported Variables

Time of First Successful Submission: 2026-05-21 16:00:34

Storing Command Output

Time of First Successful Submission: 2026-05-21 16:01:30

Reading Input

Time of First Successful Submission: 2026-05-21 16:03:30

Reading Files

Time of First Successful Submission: 2026-05-21 16:15:08

Translating characters

Time of First Successful Submission: 2026-05-22 00:35:05

Deleting characters

Time of First Successful Submission: 2026-05-22 00:36:02

Deleting newlines

Time of First Successful Submission: 2026-05-22 01:25:47

Extracting the first lines with head

Time of First Successful Submission: 2026-05-22 01:29:23

Extracting specific sections of text

Time of First Successful Submission: 2026-05-22 01:39:50

Sorting data

Time of First Successful Submission: 2026-05-22 01:40:39

Listing Processes

Time of First Successful Submission: 2026-05-22 14:15:50

Killing Processes

Time of First Successful Submission: 2026-05-22 14:21:25

Interrupting Processes

Time of First Successful Submission: 2026-05-22 14:27:14

Killing Misbehaving Processes

Time of First Successful Submission: 2026-05-22 14:33:36

Suspending Processes

Time of First Successful Submission: 2026-05-22 14:35:54

Resuming Processes

Time of First Successful Submission: 2026-05-22 14:36:37

Backgrounding Processes

Time of First Successful Submission: 2026-05-22 14:39:38

Foregrounding Processes

Time of First Successful Submission: 2026-05-22 14:41:07

Starting Backgrounded Processes

Time of First Successful Submission: 2026-05-22 14:41:43

Process Exit Codes

Time of First Successful Submission: 2026-05-22 14:43:39

Becoming root with su

Time of First Successful Submission: 2026-05-22 16:25:40

Other users with su

Time of First Successful Submission: 2026-05-22 16:26:33

Cracking passwords

Time of First Successful Submission: 2026-05-22 16:29:42

Using sudo

Time of First Successful Submission: 2026-05-22 16:34:33

Changing File Ownership

Time of First Successful Submission: 2026-05-23 16:51:54

Groups and Files

Time of First Successful Submission: 2026-05-23 17:57:39

Fun With Groups Names

Time of First Successful Submission: 2026-05-23 18:12:30

Changing Permissions

Time of First Successful Submission: 2026-05-23 18:27:50

Executable Files

Time of First Successful Submission: 2026-05-23 18:29:50

Permission Tweaking Practice

Time of First Successful Submission: 2026-05-23 18:35:11

Permissions Setting Practice

Time of First Successful Submission: 2026-05-24 13:31:07

The SUID Bit

Time of First Successful Submission: 2026-05-23 18:49:35

Chaining with Semicolons

Time of First Successful Submission: 2026-05-24 13:32:41

Building on Success

Time of First Successful Submission: 2026-05-24 13:33:23

Handling Failure

Time of First Successful Submission: 2026-05-24 13:35:14

Your First Shell Script

Time of First Successful Submission: 2026-05-24 13:41:13

Redirecting Script Output

Time of First Successful Submission: 2026-05-24 13:58:19

Executable Shell Scripts

Time of First Successful Submission: 2026-05-24 14:01:47

Understanding Shebangs

Time of First Successful Submission: 2026-05-26 14:57:50

Scripting with Arguments

Time of First Successful Submission: 2026-05-26 15:01:35

Scripting with Conditionals

Time of First Successful Submission: 2026-05-26 15:04:43

Scripting with Default Cases

Time of First Successful Submission: 2026-05-26 15:05:34

Scripting with Multiple Conditions

Time of First Successful Submission: 2026-05-26 15:09:02

Reading Shell Scripts

Time of First Successful Submission: 2026-05-26 15:10:01

Launching Screen

Time of First Successful Submission: 2026-05-26 15:11:30

Detaching and Attaching

Time of First Successful Submission: 2026-05-26 15:16:26

Finding Sessions

Time of First Successful Submission: 2026-05-26 15:19:50

Switching Windows

Time of First Successful Submission: 2026-05-26 15:24:43

Detaching and Attaching (tmux)

Time of First Successful Submission: 2026-05-26 15:26:25

Switching Windows (tmux)

Time of First Successful Submission: 2026-05-26 15:29:55

The PATH Variable

Time of First Successful Submission: 2026-05-26 15:32:26

Setting PATH

Time of First Successful Submission: 2026-05-26 15:33:25

Finding Commands

Time of First Successful Submission: 2026-05-26 15:35:51

Adding Commands

Time of First Successful Submission: 2026-05-27 19:00:05

Hijacking Commands

Time of First Successful Submission: 2026-05-27 19:11:33

Bashrc Backdoor

Time of First Successful Submission: 2026-05-28 13:08:38

Sniffing Input

Time of First Successful Submission: 2026-05-28 13:29:59

Overshared Directories

Time of First Successful Submission: 2026-05-28 13:39:11

Tricky Linking

Time of First Successful Submission: 2026-05-28 13:51:01

Sniffing Process Arguments

Time of First Successful Submission: 2026-05-28 13:55:56

Snooping on Configurations

Time of First Successful Submission: 2026-05-28 13:59:45

The Fork Bomb

Time of First Successful Submission: 2026-05-28 14:26:51

Disk-Space Doomsday

Time of First Successful Submission: 2026-05-28 15:28:42

rm -rf /

Time of First Successful Submission: 2026-05-28 15:41:17

Life after rm -rf /

Time of First Successful Submission: 2026-05-28 16:10:02

Finding meaning after rm -rf /

Time of First Successful Submission: 2026-05-28 16:16:44


Computing 101

50 / 126 1364 / 20527


Your First Register

Time of First Successful Submission: 2026-05-29 13:20:44

Your First Syscall

Time of First Successful Submission: 2026-05-29 13:23:42

Exit Codes

Time of First Successful Submission: 2026-05-29 13:26:06

Building Executables

Time of First Successful Submission: 2026-05-29 13:34:57

Moving Between Registers

Time of First Successful Submission: 2026-05-29 13:39:13

Loading From Memory

Time of First Successful Submission: 2026-05-29 19:15:47

More Loading Practice

Time of First Successful Submission: 2026-05-29 19:17:12

Dereferencing Pointers

Time of First Successful Submission: 2026-05-29 19:57:12

Dereferencing Yourself

Time of First Successful Submission: 2026-05-29 20:32:07

Dereferencing with Offsets

Time of First Successful Submission: 2026-05-29 20:33:22

Stored Addresses

Time of First Successful Submission: 2026-05-29 20:56:26

Double Dereference

Time of First Successful Submission: 2026-05-29 21:03:11

The Stack

Time of First Successful Submission: 2026-05-29 22:08:27

Stack Offsets

Time of First Successful Submission: 2026-05-29 22:09:50

Program Arguments on the Stack

Time of First Successful Submission: 2026-05-29 22:12:13

Popping From the Stack

Time of First Successful Submission: 2026-05-29 22:14:58

Disassembling Programs

Time of First Successful Submission: 2026-05-30 14:08:56

Tracing Syscalls

Time of First Successful Submission: 2026-05-30 14:12:43

Starting GDB

Time of First Successful Submission: 2026-05-30 14:13:47

Quitting GDB

Time of First Successful Submission: 2026-05-30 14:14:23

Starting Programs in GDB

Time of First Successful Submission: 2026-05-30 14:15:40

Disassembling in GDB

Time of First Successful Submission: 2026-05-30 14:17:16

Stepping Through Instructions

Time of First Successful Submission: 2026-05-30 14:19:26

Reading Register Values

Time of First Successful Submission: 2026-05-30 14:20:09

Popping Stack Values

Time of First Successful Submission: 2026-05-30 14:22:35

Examining Memory

Time of First Successful Submission: 2026-05-30 14:24:12

Examining Stack Pointers

Time of First Successful Submission: 2026-05-30 14:26:29

Cooperative Debugging

Time of First Successful Submission: 2026-05-30 14:39:24

Writing Output

Time of First Successful Submission: 2026-05-30 22:17:54

Chaining Syscalls

Time of First Successful Submission: 2026-05-30 22:19:44

Writing Strings

Time of First Successful Submission: 2026-05-30 22:21:05

Reading Data

Time of First Successful Submission: 2026-05-30 22:27:46

Opening Files

Time of First Successful Submission: 2026-05-31 22:22:13

Hardcoding the Filename

Time of First Successful Submission: 2026-05-31 23:17:10

Comparing Values

Time of First Successful Submission: 2026-06-01 17:36:53

Comparing Characters

Time of First Successful Submission: 2026-06-01 17:42:02

Conditional Control Flow

Time of First Successful Submission: 2026-06-01 17:47:35

Comparing Strings

Time of First Successful Submission: 2026-06-01 17:52:39

Reverse the Password

Time of First Successful Submission: 2026-06-01 18:05:01

Conditionals Without Conditionals

Time of First Successful Submission: 2026-06-01 18:23:27

Looping

Time of First Successful Submission: 2026-06-01 18:32:21

Writing From a Shared Library

Time of First Successful Submission: 2026-06-02 16:19:10

Returning a Value

Time of First Successful Submission: 2026-06-02 23:20:11

Calling Through a Pointer

Time of First Successful Submission: 2026-06-02 23:31:15

Calling Through a Pointer with an Argument

Time of First Successful Submission: 2026-06-02 23:46:15

Reverse the Calculation

Time of First Successful Submission: 2026-06-02 14:23:57

Reverse the Reverse

Time of First Successful Submission: 2026-06-02 15:17:28

Dealing with Bitwise Operations

Time of First Successful Submission: 2026-06-02 15:22:08

Loops on Data

Time of First Successful Submission: 2026-06-02 15:31:42

Reaching Into the Caller's Frame

Time of First Successful Submission: 2026-06-11 16:32:35


Playing With Programs

1 / 116 24139 / 24141


What's the password?

Time of First Successful Submission: 2026-06-11 16:41:02


DSU Cyber Camps

10 / 104 21816 / 48151


Using the Terminal

Time of First Successful Submission: 2026-05-14 16:58:35

Using the VSCode Workspace

Time of First Successful Submission: 2026-05-14 17:01:41

Using the GUI Desktop

Time of First Successful Submission: 2026-05-14 17:02:58

Pasting into the Desktop

Time of First Successful Submission: 2026-05-14 17:04:17

Restarting Challenges

Time of First Successful Submission: 2026-05-14 17:06:50

Challenge Programs

Time of First Successful Submission: 2026-05-14 17:10:42

The Flag File

Time of First Successful Submission: 2026-05-14 17:12:59

Using Privileged Mode

Time of First Successful Submission: 2026-05-14 17:16:26

Persistent Home Directories - One

Time of First Successful Submission: 2026-05-14 17:21:53

Persistent Home Directories - Two

Time of First Successful Submission: 2026-05-14 17:22:30


GCA CTF

10 / 104 21816 / 48151


Using the Terminal

Time of First Successful Submission: 2026-05-14 16:58:35

Using the VSCode Workspace

Time of First Successful Submission: 2026-05-14 17:01:41

Using the GUI Desktop

Time of First Successful Submission: 2026-05-14 17:02:58

Pasting into the Desktop

Time of First Successful Submission: 2026-05-14 17:04:17

Restarting Challenges

Time of First Successful Submission: 2026-05-14 17:06:50

Challenge Programs

Time of First Successful Submission: 2026-05-14 17:10:42

The Flag File

Time of First Successful Submission: 2026-05-14 17:12:59

Using Privileged Mode

Time of First Successful Submission: 2026-05-14 17:16:26

Persistent Home Directories - One

Time of First Successful Submission: 2026-05-14 17:21:53

Persistent Home Directories - Two

Time of First Successful Submission: 2026-05-14 17:22:30