Boot Camp 9p resource
The 9p.sdf.org rio rc prompt is accessable with 9front Drawterm or an rcpu connection. A 9p.sdf.org user name (-u USER) is required.
$ ./drawterm -a 9p.sdf.org -h 9p.sdf.org -u USER
A Drawterm rc prompt (without rio; teletype only):
$ ./drawterm -G -h 9p.sdf.org -u USER
x | Please use the chmod(1) command to restrict file permissions in your home directory (/usr/USERNAME). |
% lc -l /usr | grep rwxr-xr-x
[:!:] 3) The 9p.sdf.org server is 4) shared with other users. The restrict file permissions
usage may vary depending on the user application. Please apply, and caution if
testing a modified email configuration. |
Possible "Tea Note" Presentation commands from the 9p rio rc prompt (%).
astro: | astro - print astronomical information | http://man.9front.org/7/astro |
battleship: | bts, btsd - multi-user on-line battleship (sink the fleet) | 9p man page battleship(1) |
bboard: | bboard [-nps] [-r n] | 9p contrib directory |
broke: | broke [ user ] - broken processes go away | http://man.9front.org/1/kill |
castor: | castor [address] - A Gemini browser for Plan 9 | |
chmod: | chmod - change mode | http://man.9front.org/1/chmod |
com: | com - An early version of commode | 9p contrib directory |
delkey: | delkey - delete keys from factotum | http://man.9front.org/1/delkey |
df: | df - disk usage | 9p contrib directory |
dircp: | tar, dircp - archiver | http://man.9front.org/1/tar |
auth/factotum: | factotum, fgui, userpasswd - authentication agent 5) | http://man.9front.org/4/factotum |
figlet: | FIGlet - display large characters made up of ordinary screen characters | |
file: | file - determine file type | http://man.9front.org/1/file |
find: | find [-1dfq] [path ...] - recursively list files. | 9p contrib directory; https://man.cat-v.org/9atom/1/find |
finger: | toe - A very basic finger client for plan9/9front. | |
fmt: | fmt, htmlfmt - simple text formatters | http://man.9front.org/1/fmt |
lookman: | man, lookman, sig - print or find pages of this manual | http://man.9front.org/1/man |
mkhomepg: | | 9p contrib directory |
mug: | mug - convert an image to a face icon | http://man.9front.org/1/mug |
p: | p - paginate | http://man.9front.org/1/p |
paint: | paint - create image files by drawing with a mouse or other pointing device | http://man.9front.org/1/paint |
spell: | spell, sprog - find spelling errors | http://man.9front.org/1/spell |
src: | src, Bfn - find source code for executable | http://man.9front.org/1/src |
top: | | 9p contrib directory |
tweak: | tweak - edit image files, subfont files, face files, etc. | http://man.9front.org/1/tweak |
upas/fs -f: | upasfs - mail file server | http://man.9front.org/4/upasfs |
uptime: | uptime - show how long system has been running | |
vdir: | vdir [-r] [directory] If the -r flag is passed, delete will recursively delete directories. (A minimalistic visual directory browser for Plan9.) | 9p contrib directory |
walk: | walk - walk a path | http://man.9front.org/1/walk |
who: | who, whois - who is using the machine | http://man.9front.org/1/who |
bboard example
date and time example
x | A scheduled Plan 9 Boot Camp TEA NOTE |
x | Start the clock in a rio rc window. |
cpu% cp /adm/timezone/US_Pacific /env/timezone && clock.amber
The command will pick up the new timezone, but nothing already running or not sharing the environment will be affected.
broke example
cpu% psu -a | grep Broke
cpu% broke
cpu% broke $user
commode example
1. | Avoid using a “:” (colon) in the 9p com emote text. |
a. | The sequence for entering ☺ on an IBM keyboard is ALT-:-) . | keyboard |
cpu% com
@help
commode version 6
@h help
@f finger user
@l list rooms
@p peek into a room
@g goto a room
@w who
@i idlers
@r review 50 lines
@R review N lines
@u post a shortened url
@a aNONradio schedule
@q quit
: emote
! run a command
Run com
in a rio rc window, rather than a vt, to benefit from the Plan 9 I/O.
face example
castor example
9p rio rc prompt example
cpu% echo $prompt
cpu%
cpu% prompt='9p: '
9p:
9p: echo $prompt
9p:
9p: prompt='⑨p: '
⑨p:
9p html directory example
mkhomepg
is used to automate the process. The process includes a 5 to 10 minute wait after mkhomepg
& touch
, once a background task is preformed. Review 9p.sdf.org for a static review of the mkhomepg
results 8).
cpu% mkdir /usr/$user/html | Avoid mkdir ; the Strike-through Text is a reference. |
cpu% mkhomepg
cpu% touch /usr/$user/html/index.html
cpu% sed 10q /usr/$user/html/example.html
<html>
<body>
<h6>1st example</h6>
<pre>
2nd example
</pre>
</body>
</html>
cpu%
optional |
1. | A <title>title</title> is not necessary for the default. 9) 10) |
a. | Although, <title>a_title_that_speaks_completely</title>
must have contiguous characters. |
i. | A request to repair the <title></title> was acknowledged
during the Tea Note. |
mothra -k https://9p.sdf.org/who/$user/index.html |
mothra -k https://9p.sdf.org/~$user |
https://9p.sdf.org/who/ links to all of the active homepages. |
9p gemini index location
cpu% touch /usr/$user/html/index.gem
Further 9p gemini functionality detail 11), or inquiry, may occur during the upcoming Plan 9 Boot Camp. |
castor gemini://9p.sdf.org/who/$user/index.gem | SDF Plan 9 Boot Camp event and information |
9p mail example
default 9p lib/profile
The mentioned default profile may look slightly different than the SDF 9p profile.
- $home/lib/profile.default
bind -qa $home/bin/rc /bin
bind -qa $home/bin/$cputype /bin
font=/lib/font/bit/vga/unicode.font
touch $home/lastlogin
switch($service){
case terminal
webcookies
webfs
plumber
echo -n accelerated > '#m/mousectl'
echo -n 'res 3' > '#m/mousectl'
prompt=('term% ' ' ')
fn term%{ $* }
rio
case cpu
bind /mnt/term/dev/cons /dev/cons
bind -q /mnt/term/dev/consctl /dev/consctl
>[2] /dev/null {
cp /dev/sysname /mnt/term/dev/label
if(wsys=`{cat /mnt/term/env/wsys} && ~ $#wsys 1) {
wsys=/mnt/term^$wsys
}
if not {
wsys=()
}
}
bind -a /mnt/term/dev /dev
prompt=('cpu% ' ' ')
fn cpu%{ $* }
if(! test -e /mnt/term/dev/wsys){
# call from drawterm
if(test -e /mnt/term/dev/secstore){
auth/factotum -n
read -m /mnt/term/dev/secstore >/mnt/factotum/ctl
echo >/mnt/term/dev/secstore
}
if not
auth/factotum
webcookies
webfs
plumber
rio
}
case con
prompt=('cpu% ' ' ')
}
Useful modifications of the lib/profile above the case terminal
statement.
- lib/profile snippet from above "case terminal"
bind -qa $home/bin/rc /bin
bind -qa $home/bin/$cputype /bin
bind -qa /usr/sdf/bin /bin
upasname=$user@9p.sdf.org
font=/lib/font/bit/vga/unicode.font
touch $home/lastlogin
switch($service){
case terminal <= THIS IS THE CASE TERMINAL LINE; no need to edit this line.
x | Optional: the $user can omit the upasname=$user@9p.sdf.org line if using the account without E-mail. |
Useful modification of the lib/profile below the case cpu
statement. Include upas/fs
after plumber
.
- lib/profile snippet from below "case cpu"
if not
auth/factotum
webcookies
webfs
plumber <= THIS IS THE PLUMBER LINE; no need to edit this line.
upas/fs
rio
x | Optional: the $user can omit the webcookies, webfs, plumber, and upas/fs lines to reduce number of processes initially, starting programs manually when needed. |
program | grouping commands |
abaco | webfs;abaco |
acme | plumber;upas/fs;acme |
faces -i | plumber;upas/fs;faces -i |
com | webfs;com | hget needs webfs to pull the aNONradio schedule; @a |
mothra -k | webfs;mothra -k |
neinbook | plumber;neinbook |
netsurf | webfs;netsurf |
ssh | auth/factotum;ssh |
webcookies | webcookies |
x | Optional: the $user can view the number of processes (numberofprocesses) initially, then later after starting or stopping applications manually. |
cpu% ps | awk '$1 !~ /^(glenda|none|upas)$/ { print $1 }' | sort | uniq -c | sort -n
vt and ssh example
From a vt window:
cpu% ssh USER@sdf.org
!Adding key: proto=pass server=sdf.org service=ssh thumb=XoXoXoXoXoXoXoXoXo user=USER
password:
!
24×80 | ⇐ select 24×80 |
crnl | |
nlcr | |
cooked | |
blocksel | |
exit | |
x | Press the right mouse button, while the pointer is over a vt window. Select “24×80” to toggle the vt window size. |
1. | OPTIONAL – Avoid using the ⇐ select 24×80 to toggle the vt. |
a. | $ stty rows 50 columns 100 | The mentioned option requires a larger rio rc and vt window |
b. | $ stty rows 42 columns 86 | The mentioned option requires a larger rio rc and vt window |
I. | cpu% wloc | A wloc output example for b.: window -r 555 56 1276 745 vt100 |
$ stty -a
- A snippet from the stty -a output.
speed 9600 baud; 0 rows; 0 columns; queue = 1024; line = termios;
$ stty rows 24 columns 80
$ stty -a
- A snippet from the stty -a output.
speed 9600 baud; 24 rows; 80 columns; queue = 1024; line = termios;
$ exit
cpu%
24×80 | |
crnl | |
nlcr | |
cooked | |
blocksel | |
exit | ⇐ select exit |
x | Press the right mouse button, while the pointer is over a vt window. Select “exit” to exit the vt window. |
cpu%
Reference book
1. | Introduction to Operating Systems Abstractions Using Plan 9 from Bell Labs (pdf; external archive) |
a. | execute[d] in the background; page 97, 102, 155, 184, 247 |
b. | mount table; page 161-164, 167-168, 327 |
2. | Introduction to Operating Systems Abstractions Using Plan 9 from Bell Labs (pdf; external archive) |
a. | 5.8. The file descriptor bulletin board; page 123-125 |
b. | 7.6. Local name space tricks; page 164-166 |
c. | 7.7. Device files; 166-167 |
d. | 7.8. Unions; page 167-169 |
e. | 7.11. Sand-boxing; 172-173 |
f. | 7.12. Distributed computing revisited; page 174-177 |
g. | 9 — More tools; 201 |
i. | 9.1. Regular expressions; 201-205 |
ii. | 9.2. Sorting and searching; 205-210 |
iii. | 9.3. Searching for changes; 210-214 |
iv. | 9.4. AWK; 214-219 |
v. | 9.5. Processing data; 219-224 |
vi. | 9.6. File systems; 224-228 |
h. | 14.2. The local machine; 358-359 |
i. | 14.3. Distributed security and authentication; page 359-362 |
j. | 14.4. Authentication agents; 362-367 |
Reference search
Conclusion or close
The wiki formatting used in this tutorial was reviewed with the SDF Plan 9 Boot Camp plan9front mothra browser, and the mothra option '-k': % mothra -k
. The intention was to support those SDF Plan 9 Boot Camp participants who may participate (in the Boot Camp) with a low-speed Internet connection. The outcome of the mentioned formatting decision is pending the approval of future wiki editors. Have fun.
This wiki page was reviewed with the Plan 9 abaco, and mothra, browsers.