Skip to content

Command reference — the eqshell (0.4 Beta)

Prompt: root::users / $. Commands marked ✓ userland are ring-3 .mrp programs compiled inside the OS (by equinoxinstall, or by eggkg install bash for the coreutils). Everything else is a builtin in the kernel shell.

The shell supports pipes (|), output/input redirection (>, <), globbing (*) and history — the text toolset is pipe-ready out of the box:

grep -n printf /test/hello.c | tr a-z A-Z > /mnt/out.txt

Thin base ISO: the classic coreutils (ls cat cp mv rm mkdir rmdir touch stat as full tools) are not bundled — they arrive with eggkg install bash (PACKAGES.md). The shell ships eqbash builtins (lf, showf, cdir, cfile, copy, del, …) plus bash-name aliases (mkdir, touch, rm, cp, …) so old reflexes keep working until the package lands; after the install, the package tools take over via the system path.

1. Filesystem — navigation & files

Command Type Function / example
ls [dir], lf [dir] builtin list directory (RAMFS and /mnt alike); ls -l for details
cd <dir>, pwd builtin change / print working directory
tree [dir] builtin recursive directory tree
cat <file>, showf <file> builtin print file (absolute paths OK: cat /eqshell.log)
cfile <name>, ccfile <name> <text> builtin create file / create with one line of content
touch <name> builtin alias of cfile (empty file)
save <name> << "text" builtin create/overwrite a file with multi-line text (ends on an empty line)
edit <file> builtin full-screen editor (arrows/PgUp/PgDn/Home/End/Tab; Ctrl+S save, Ctrl+Q quit)
copy SRC [->] DST builtin copy files and trees; glob (*); destination dirs auto-created
cp SRC DST builtin alias of copy
move SRC DST builtin move / rename
delfile <name>, rm <name> builtin delete one file (not recursive)
deldir <name>, rmdir <name> builtin delete an empty directory
del PATH builtin delete a file or tree recursively
cdir <name>, mkdir <name> builtin create a directory
pren <old> <new> builtin rename
xxd <file> [n] builtin hex dump of the first n bytes (default 64)
mount hdX / umount hdX builtin attach / detach a FAT32 volume at /mnt
diskinfo builtin drive + volume details
fm, eqgu builtin GUI file manager / settings+editor (LVGL)

2. Text tools (✓ userland, after equinoxinstall)

Command Function Example
grep [-i] [-n] [-c] [-v] PAT FILE… search lines; mini-regex . X* ^ $ grep -n printf /test/hello.c
head [-n N] FILE / tail [-n N] FILE first/last N lines (default 10) tail -n 3 serial.log
wc [-l -w -c] FILE count lines/words/bytes wc -l /test/hello.c
sort [-r] FILE sort lines asc/desc sort -r names.txt
uniq [-c] FILE drop adjacent duplicates sort x \| uniq -c x
cut -d D -f LIST FILE extract fields (N, N-M, N-, commas) cut -d : -f 1 users.txt
tr SET1 SET2 FILE / tr -d SET FILE translate / delete chars; ranges a-z; escapes \n \t \r \0 tr a-z A-Z data.txt
rev FILE reverse each line rev data.txt
nl FILE number lines nl /test/hello.c
more FILE pager, 23 lines/page, q quits more /test/libc.c
find [dir] [-name SUB] recursive search (depth 8) find / -name mrp
which NAME resolve through the system path which grep
diff F1 F2 line compare (first 20, </> style) diff a.txt b.txt
strings FILE [minlen] printable runs strings doom.mrp 8
cksum FILE… 32-bit checksum + size cksum cat.mrp
basename PATH / dirname PATH path splitting dirname /mnt/doom1.wad
fstest 24-check syscall/file suite fstest
pipedemo pipe + wait demo (child writes, parent reads) pipedemo

3. Processes

Command Function
ps task table: pid, name, state, CPU, memory
kill <pid> terminate a task
wait [pid] block until a child exits; prints its status
spawn <x.mrp> [args] start a new ring-3 task with args
run <x.mrp> / ./x.mrp / ./x.elf run an MRP / ELF32 program
yield give up the CPU slice
sleep <ms> tick-precise sleep
switch <n> switch virtual console (same as F1/F2)
meminfo user pool: total/free, per-task faulted/reserved, zombies

4. Compiler, self-hosting, packages

Command Function
equinoxinstall the installer wizard — disk → layout → NIC → build userland in-OS (see INSTALL.md)
equinoxinstall -compile <dir> compile userland from <dir>/libc + <dir>/tools only
equinoxinstall -build <ruf\|name\|*.ruf> build via ruf v3 recipe / one tool / glob
mtcc <file.c> compile and run C in the OS — mtcc /test/hello.c
mtcc -c <file.c> / mtcc -make <file.ruf> compile only / run a build recipe (SELF_HOSTING.md)
eggkg update\|install\|remove\|list\|search\|info\|sync package manager (PACKAGES.md) — eggkg install bash brings the coreutils
set … configuration store + eqshell runner (CONFIGURATION.md)
Qfs -list-disk\|-format\|-install-boot disk tool (QFS.md)

5. Hardware & introspection

Command Function
lspci PCI table (bus/dev/fn, vendor:device, class, IRQ, BARs)
cpu CPUID info (vendor, features)
info banner: version, RAM, uptime
memmap physical memory map / kernel regions
malloc / alloc <n> / free <addr> kernel heap status & probe
syscalls live syscall table #0–#54
sctest syscall path self-test
ring / ringstats ring-buffer test & statistics
tick timer value & rate (100 Hz)
mouse PS/2 mouse test
random / math <expr> / calc <expr> RNG, expression evaluator
hex <n> / dec <n> hex⇄dec conversion
testconv teststr testvector libc self-tests
clock RTC time/date

6. Networking

Command Function
ifconfig driver, MAC, DHCP lease, counters
ping <host> ICMP — not forwarded by QEMU slirp; use tcpping
tcpping <host> [port] TCP probe + RTT
dns <host> resolve via DNS
mget <url> [-port n] HTTP/HTTPS download (redirects ≤3)
httpd web server :80 (status + RAMFS) — host: http://localhost:8080/
nettask / netdbg network task / stack diagnostics

7. Graphics, desktop, games & audio

Command Function
gui LVGL desktop (settings, editor, file manager)
desktop EquiX — the ThorVG vector desktop
tvgdemo / tvginfo / tvgbench ThorVG renderer demos/benchmark
settings settings panel
color <n> text color
doom [args] DOOM (doom -iwad /mnt/doom1.wad)
beep / song PC speaker tests

8. Misc

Command Function
echo <text> print
clear clear screen
reboot reboot the machine
panic [text] deliberate panic-handler test

Example session

root::users / $ equinoxinstall                 # 1. build the userland in-OS
root::users / $ eggkg update && eggkg install bash -y   # 2. coreutils
root::users / $ mtcc /test/hello.c             # 3. compile & run C live
root::users / $ grep -n printf /test/hello.c | tr a-z A-Z
root::users / $ Qfs -list-disk                 # 4. disks (PATA + SATA)
root::users / $ mount hde && ls /mnt           #    SATA disk via AHCI
root::users / $ cd /mnt && save note.txt << "persisted across reboots"
root::users / $ mget https://github.com/octocat/Hello-World
root::users / $ ps                             # 5. tasks; F1/F2 consoles
root::users / $ set net.driver e1000 && set -w /equinox/conf/system.ecf
root::users / $ doom -iwad /mnt/doom1.wad