Fulton Browne

Plan9 tips

Rio shortcuts

Special char's

Because of utf8 through the entire system plan9 supports man special charecters, all of which can be typed with basic keyboard shortcuts. see keyboard(6) for a partial list and summary. to get a full list cat /lib/keyboard.

Note: all these short cut reqire alt as the leader key. For example /lib/keyboard says:

00A1  !!          ยก	inverted exclamation mark

So you type alt - ! - !

name space importing

You can import namespaces's of a remote system set up as a cpu service (service=cpu).

Note: in these exapmples I use the command rimport. This only works in 9front, use the import command in legacy or labs

You can read the mail of a remote system with:

; rimport [ip or url] /mail
; mail

You can mount the /srv/ directory for access to another systems running services. For example mount /srv and view the dumps of another machine.

; rimport [ip or url] /srv
; 9fs dump

you can mount /proc to manage and debug proccess on remote machines.

For example:

; rimport [ip or url] /proc
; acid [pid of remote proc]
; Kill [name of remote proc] | rc

In 9front the rexport command does the reverse, allowing you to export a local namespace to a remote cpu server.

For example, you could give a remote server access to your local network with

rexport /net [ip or url]

And then mounting the new /srv entry to /net

See rcpu(1)


mycroftiv has built a wonderful set of tools for plan9 namespacing called ANTS (Advanced Namesspace ToolS). The full install reqires you to apply patches and reinstall the kernel but many of the tools only reqire a plan9/9front system.

One of these tools is hubfs.

Hubfs is a 9p server which creates buffered multiplexing
pipelike files with several applications.  One use is a

plan9 equivalent of programs such as screen/tmux for detach- able persistent shells. Another is as the server-side of an irc-like application. Another is as the "broadcast station" for streaming audio. It can be thought of as a lightweight "pub-sub" service with a filesystem interface. Hub invokes hubfs to create a 9p filesystem of pipe-like Hubs available as a /srv and starts an rc(1) shell with its file descrip- tors redirected to these hubs, then uses hubshell as a client for these connections. The overall usage model is somewhat similar to screen/tmux but without the additional complexities of TTY management.


Hubfs is a core component of the ants system.

One of the main tools in the ants suit is rerootwin. It allows you to change to root of a name space while preserving the /dev, /net, /srv, /mnt, /n, and /shr file systems. This allows you to use diffrent roots over a single cpu or terminal instance. Paired with hubfs you can commumicate between the roots using a shell or pipe. A simple example with the public, read only gridroot.

; gridstart -m
old grid connections found in /srv, remove? (y/n)
grid services mounted
; rerootwin -f gridroot
binding /mnt/wsys /mnt/term/dev
; # you have been rerooted
; service=con
; . $home/lib/profile
cpu% grio # start up a graphical session