Plan9

The Front Fell Off

Tips & Tricks

RC key bindings

Mouse

ACME

Tags

Manuals

man <name> | page

Search man pages:

lookman

Networking

man ipconfig

ip/ping ibm.com

Get IP/DNS settings

cat /net/ndb

Ping

(Del to exit)

ip/ping wp.pl

Listen with command

This will listen on TCP port 99 and run cat to process data (will echo stuff back).

aux/listen1 tcp!*!99 cat

FTP

See man listen.

aux/listen tcp21

Logs

See for listen log:

cat /sys/log/listen

Processes

ps -a

Kill

Kill <match>

Manually:

chown 666 /proc/ID/ctl
echo kill > /proc/ID/ctl

Namespace

ns

List file descriptors

ls /fd

List TCP connections

cat /net/tcp/*/^(local remote status)

Drivers

cat /dev/drivers

Managing hjfs

Open system console (to avoid spam on the screen):

cat /dev/kprint

Connect (or use echo instead) to hjfs deamon:

con -C /srv/hjfs.cmd

CTRL+\+enter gives >> prompt; type q to exit con.

Commands (see man hjfs):

List users:

cat /adm/users

Logs

Console log:

cat /dev/kprint

Log files:

/sys/log/

Castor9 gemini

Castor9 browser is also available on http://shithub.us or 9fs 9til.de

Docs

Stream

Challenges

HTML/Gemini

You are correct, you create the $home/html directory then create your index.html and/or index.gem files there. You can view your user site using the respective:

urls.

curl https://9p.sdf.org/who/index.html -v --insecure

curl http://9p.sdf.org/who/hxd/index.html

They need /usr/web/who/hxd created (mounted?).

See /bin/mkhomepg.

Config files

Listen & services

Services

Start all services matching ls /bin/service/tcp*

aux/listen

Custom listen

aux/listen1 will listen on proto, ip and port and execute command for each incoming connection and forward stdin/out to the connection.

Normally it runs as user none.

Echo on TCP 888
aux/listen1 tcp!*!888 cat
Collect data sent
aux/listen1 -t tcp!*!888 tee -a data

Send data out

aux/listen1 tcp!*!888 echo foobar
CPU server (-t to use current user)
aux/listen1 -t tcp!*!17010 /bin/cpu -R &

Auth & CPU servers

Create user on the file system

 

Keyfs user database

This creates /adm/keys encypted (DES?) user database file and mounts its content under /mnt/keys.

auth/keyfs -p # (in rc terminal, no acme)

Now we can crate user in the encrypted /adm/keys file:

auth/changeuser hxd

This will write new /adm/keys file and also show the user in /mnt/keys as parsed out of the file.