Both sides previous revisionPrevious revisionNext revision | Previous revision |
boot_camp_9p_resource [2023/10/23 03:32] – [9p html directory example] hc9 | boot_camp_9p_resource [2024/09/27 00:23] (current) – [Boot Camp 9p resource] ro: hc9 |
---|
| ====== Boot Camp 9p resource ====== |
| |
| |x| https://9p.sdf.org //(an amd64 plan9front ((plan9front running natively on hardware.)) complement to the SDF Plan 9 Boot Camp ((NetBSD Xen [] running Plan 9 Boot Camp participants' VMs, during the announced Plan 9 Boot Camp occurrences.)))//| |
| |x|SDF Plan 9 [[vps_-_9front#communication_resources|Boot Camp 9p communication resources]] (please ask for help)| |
| |
| The [[https://9p.sdf.org|9p.sdf.org]] rio rc prompt is accessable with [[vps_-_9front#front_drawterm|9front Drawterm]] or [[vps_-_9front#a_9front_rcpu_application|an rcpu connection]]. A //9p.sdf.org// user name (-u USER) is required. |
| |
| <code> |
| |
| $ ./drawterm -a 9p.sdf.org -h 9p.sdf.org -u USER |
| </code> |
| |
| |//Optional:// ''drawterm -h 9p.sdf.org -u USER''||| |
| |//[[plan9front_-_drawterm_rio_and_stats#drawterm|Optional]]:// ''drawterm -a 9p.sdf.org -h 9p.sdf.org **-p** -u USER''|//[[plan9front_-_drawterm_rio_and_stats#persistent_network|persistent network]]//|| |
| |
| A Drawterm rc prompt (without rio; //teletype only//): |
| |
| <code> |
| |
| $ ./drawterm -G -h 9p.sdf.org -u USER |
| </code> |
| |
| |x|A Drawterm [[vps_-_9front#drawterm_and_file_transfer|file transfer]] hint:|''% lc /mnt/term''| |
| |
| |x|//Please use the chmod(1) command to restrict file permissions in your home directory (/usr/USERNAME)//.| |
| |
| <code> |
| |
| % lc -l /usr | grep rwxr-xr-x |
| </code> |
| |
| | [%%:!:%%] ((The [%%:!:%%] is interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) The ''%%9p.sdf.org%%'' server is ((SDF members may avoid this **''[Plan 9]''** server‚ if seeking [[wp>Parity|parity]] with the mentioned references: [[https://plan9.io/wiki/plan9/plan_9_wiki/|reference]] or [[https://wiki.9front.org/|reference]]. [%%:!:%%] //external links//)) shared with other users. The **//restrict file permissions//**\\ usage may vary depending on the user application. Please [[membership_levels#arpa|apply]], and **caution** if\\ testing a modified [[boot_camp_9p_resource#p_mail_example|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 - [[plan9front_-_factotum_delkey_pw|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 (([[https://9p.io/sys/doc/auth.html|Security in Plan 9]]; //The user may or may not have a secure store in which all his keys are kept.//))|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 <nowiki>...</nowiki>]'' - 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| |
| |
| |x|A related VPS //[[vps_-_9front#command_reminder|command reminder]]// list.| |
| |
| ===== bboard example ===== |
| |
| A [[plan9front_-_bboard_and_castor#p_bboard_acme_example|bboard acme example]]. |
| |
| ===== date and time example ===== |
| |
| |x|A scheduled Plan 9 Boot Camp [[plan_9_9front#tea_note_guide|TEA NOTE]]| |
| |x|Start the clock in a rio rc window.| |
| |
| <code> |
| |
| cpu% cp /adm/timezone/US_Pacific /env/timezone && clock.amber |
| </code> |
| |
| //The command will pick up the new timezone, but nothing already running or not sharing the environment will be affected.// |
| |
| ===== broke example ===== |
| |
| <code> |
| |
| cpu% psu -a | grep Broke |
| </code> |
| |
| <code> |
| |
| cpu% broke |
| </code> |
| |
| <code> |
| |
| cpu% broke $user |
| </code> |
| |
| ===== commode example ===== |
| |
| |**1.**|Avoid using a “**:**” (colon) in the 9p com //emote// text.|| |
| |a.|//The sequence for entering// ☺ //on an IBM keyboard is// ''ALT-:-%%)%%''.|[[plan9front_-_unicode_utf_and_fontviewer#keyboard|keyboard]]| |
| |
| <code> |
| |
| 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 |
| |
| </code> |
| |
| //Run ''com'' in a rio rc window, rather than a vt, to benefit from the Plan 9 <nowiki>I/O</nowiki>.// |
| |
| ===== face example ===== |
| |
| A [[plan9front_-_mailing_and_faces|face (create and install) example]]. |
| |
| ===== castor example ===== |
| |
| A [[plan9front_-_bboard_and_castor#p_castor_example|castor example]] ((A [[membership_levels#users|validated]] SDF user can create their own __[[gemini_site_setup_and_hosting_features#getting_started|Gemini space]]__‚ in addition an occasional //[[plan9front_-_bboard_and_castor#gemini|Gemini example]]//.)) ((The infrequent //[[plan9front_-_bboard_and_castor#gemini|Gemini example]]// is dependent on schedule availability.)). |
| |
| <code> |
| |
| cpu% castor gemini://sdf.org |
| </code> |
| |
| ===== 9p rio rc prompt example ===== |
| |
| <code> |
| |
| cpu% echo $prompt |
| cpu% |
| cpu% prompt='9p: ' |
| 9p: |
| 9p: echo $prompt |
| 9p: |
| 9p: prompt='⑨p: ' |
| ⑨p: |
| </code> |
| |
| ===== 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 [[https://9p.sdf.org/who/|9p.sdf.org]] for a static review of the //''mkhomepg''// results ((The process may take longer, a few hours, or days.)). |
| |
| | <del>''cpu% mkdir /usr/$user/html''</del> | **Avoid** ''//mkdir//''; the //Strike-through Text// is a reference. | |
| |
| <code> |
| |
| cpu% mkhomepg |
| </code> |
| |
| <code> |
| |
| cpu% touch /usr/$user/html/index.html |
| </code> |
| |
| <code> |
| |
| cpu% sed 10q /usr/$user/html/example.html |
| <html> |
| <body> |
| <h6>1st example</h6> |
| |
| <pre> |
| 2nd example |
| </pre> |
| |
| </body> |
| </html> |
| cpu% |
| </code> |
| |
| ^ optional ^^ |
| |**1.**| A //<title>//title//</title>// is not necessary for the default. ((The default description is //my internet homepage//.)) ((A [[membership_levels#users|validated]] SDF user can create __[[building_a_website_on_sdf|their own website]]__‚ in addition to the //[[https://9p.sdf.org/who/|internet homepage]]//.)) | |
| |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 <nowiki>https://9p.sdf.org/who/$user/index.html</nowiki>''| |
| |''mothra -k <nowiki>https://9p.sdf.org/~$user</nowiki>''| |
| |//''<nowiki>https://9p.sdf.org/who/</nowiki>''// links to all of the active homepages.| |
| |
| ===== 9p gemini index location ===== |
| |
| <code> |
| |
| cpu% touch /usr/$user/html/index.gem |
| </code> |
| |
| ^ Further 9p //gemini// functionality detail ((An infrequent //[[plan9front_-_bboard_and_castor#gemini|Gemini server example]]// is dependent on schedule availability.)), or inquiry, may occur during the upcoming Plan 9 Boot Camp. ^^ |
| |<del>''castor <nowiki>gemini://9p.sdf.org/who/$user/index.gem</nowiki>''</del>|SDF Plan 9 Boot Camp [[plan_9_9front#plan_9_boot_camp|event and information]]| |
| |
| ===== 9p mail example ===== |
| |
| A detailed [[plan9front_-_mailing_and_faces#p_mail|9p mail example]]. |
| |
| ===== default 9p lib/profile ===== |
| |
| The mentioned default profile may look slightly different than the SDF 9p profile. |
| |
| <file config $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% ' ' ') |
| } |
| </file> |
| |
| Useful modifications of the lib/profile above the **''case terminal''** statement. |
| |
| <file config 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. |
| </file> |
| |
| |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''**. |
| |
| <file config 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 |
| </file> |
| |
| |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''|<sup>''hget'' needs //''webfs''// to pull the aNONradio schedule; ''@a''</sup>| |
| |//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.| |
| |
| <code> |
| |
| cpu% ps | awk '$1 !~ /^(glenda|none|upas)$/ { print $1 }' | sort | uniq -c | sort -n |
| </code> |
| |
| ===== vt and ssh example ===== |
| |
| ^ Command ^ Option ^ Manual ^ |
| |SSH:|''ssh user@sdf.org''|http://man.9front.org/1/ssh| |
| |VT:|''vt [-f font]''|http://man.9front.org/1/vt| |
| |
| <code> |
| |
| cpu% vt |
| </code> |
| |
| === From a vt window: === |
| |
| |x|There is the possibility of entering the [[plan9front_-_factotum_delkey_pw|incorrect password]].| |
| |
| <code> |
| |
| cpu% ssh USER@sdf.org |
| |
| !Adding key: proto=pass server=sdf.org service=ssh thumb=XoXoXoXoXoXoXoXoXo user=USER |
| password: |
| ! |
| </code> |
| |
| ^ 24x80 ^ <= select 24x80 ^ |
| | crnl | | |
| | nlcr | | |
| | cooked | | |
| | blocksel | | |
| | exit | | |
| |
| |x|Press the right mouse button, while the pointer is over a vt window. Select “24x80” to toggle the vt window size.|| |
| |1.|OPTIONAL – Avoid using the //<= select 24x80// 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''//| |
| |
| <code> |
| |
| $ stty -a |
| </code> |
| |
| <file config; A snippet from the stty -a output.> |
| speed 9600 baud; 0 rows; 0 columns; queue = 1024; line = termios; |
| </file> |
| |
| <code> |
| |
| $ stty rows 24 columns 80 |
| $ stty -a |
| </code> |
| |
| <file config; A snippet from the stty -a output.> |
| speed 9600 baud; 24 rows; 80 columns; queue = 1024; line = termios; |
| </file> |
| |
| <code> |
| |
| $ exit |
| </code> |
| |
| <code> |
| |
| cpu% |
| </code> |
| |
| | 24x80 | | |
| | 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.| |
| |
| <code> |
| |
| cpu% |
| </code> |
| |
| ===== Reference book ===== |
| |
| |**1.**|Introduction to Operating Systems Abstractions [[https://archive.org/details/plan9designintro|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 [[https://archive.org/details/plan9designintro|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 === |
| |
| ^ Topic / Subject ^^^ |
| |AWK|[[https://archive.org/search.php?query=title%3A%28AWK%20programming%29|title:(AWK programming)]]|<sup>archive.org</sup>| |
| |
| |x|Previous dedicated links are located at the [[plan_9_9front#links|VPS Plan 9 / 9front]] tutorial. (wiki)| |
| |
| ===== 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 [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]], browsers. |
| |