====== 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. $ ./drawterm -a 9p.sdf.org -h 9p.sdf.org -u USER |//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//): $ ./drawterm -G -h 9p.sdf.org -u USER |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)//.| % lc -l /usr | grep rwxr-xr-x | [%%:!:%%] ((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 ...]'' - 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.| 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-:-%%)%%''.|[[plan9front_-_unicode_utf_and_fontviewer#keyboard|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 ===== 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.)). cpu% castor gemini://sdf.org ===== 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 [[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.)). | ''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
1st example
  2nd example
  
cpu%
^ optional ^^ |**1.**| A ////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, ////a_title_that_speaks_completely////\\ must have contiguous characters. | |i.| A request to repair the //// 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 ((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. ^^ |''castor gemini://9p.sdf.org/who/$user/index.gem''|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. 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. 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''**. 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 ===== ^ Command ^ Option ^ Manual ^ |SSH:|''ssh user@sdf.org''|http://man.9front.org/1/ssh| |VT:|''vt [-f font]''|http://man.9front.org/1/vt| cpu% vt === From a vt window: === |x|There is the possibility of entering the [[plan9front_-_factotum_delkey_pw|incorrect password]].| cpu% ssh USER@sdf.org !Adding key: proto=pass server=sdf.org service=ssh thumb=XoXoXoXoXoXoXoXoXo user=USER password: ! ^ 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''//| $ stty -a speed 9600 baud; 0 rows; 0 columns; queue = 1024; line = termios; $ stty rows 24 columns 80 $ stty -a speed 9600 baud; 24 rows; 80 columns; queue = 1024; line = termios; $ exit cpu% | 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.| cpu% ===== 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)]]|archive.org| |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.