Fix ampersand symbols

master
peteyboy 2 years ago
parent 2b177b78b4
commit 623fac7007
  1. 2
      dump/VPS_Centos.html.docuwiki
  2. 4
      dump/VPS_Plan9.html.docuwiki
  3. 2
      dump/anonradio.html.docuwiki
  4. 8
      dump/att605.html.docuwiki
  5. 2
      dump/centericq_howto.html.docuwiki
  6. 2
      dump/dialup.html.docuwiki
  7. 2
      dump/e-mail-advanced.html.docuwiki
  8. 2
      dump/e-mail-blacklist-issues.html.docuwiki
  9. 8
      dump/ecl_tutorial.html.docuwiki
  10. 6
      dump/emacs-cheatsheet.html.docuwiki
  11. 6
      dump/emacs-tutorial.html.docuwiki
  12. 4
      dump/example.html.docuwiki
  13. 4
      dump/example_source.html.docuwiki
  14. 2
      dump/filetransfer.html.docuwiki
  15. 2
      dump/footnode.html.docuwiki
  16. 4
      dump/format.html.docuwiki
  17. 2
      dump/gnu_social.html.docuwiki
  18. 4
      dump/irc-channels.html.docuwiki
  19. 4
      dump/jabber.html.docuwiki
  20. 24
      dump/kbman.html.docuwiki
  21. 2
      dump/mdns-tutorial.html.docuwiki
  22. 16
      dump/membership.html.docuwiki
  23. 4
      dump/node1.html.docuwiki
  24. 2
      dump/node10.html.docuwiki
  25. 2
      dump/node11.html.docuwiki
  26. 6
      dump/node2.html.docuwiki
  27. 12
      dump/node3.html.docuwiki
  28. 16
      dump/node4.html.docuwiki
  29. 50
      dump/node5.html.docuwiki
  30. 24
      dump/node6.html.docuwiki
  31. 60
      dump/node7.html.docuwiki
  32. 18
      dump/node8.html.docuwiki
  33. 12
      dump/node9.html.docuwiki
  34. 2
      dump/psshfs.html.docuwiki
  35. 10
      dump/resources4web.html.docuwiki
  36. 2
      dump/sdf_minecraft.html.docuwiki
  37. 24
      dump/sdf_specific_commands.html.docuwiki
  38. 2
      dump/sdf_voip_ext.html.docuwiki
  39. 4
      dump/shells.html.docuwiki
  40. 6
      dump/smtpauth.html.docuwiki
  41. 34
      dump/software.html.docuwiki
  42. 14
      dump/unix50th.html.docuwiki
  43. 6
      dump/unx.html.docuwiki
  44. 4
      dump/vacation_auto-responder.html.docuwiki
  45. 2
      dump/xscrabble.html.docuwiki

@ -140,7 +140,7 @@ Be aware that this can be a lot of stuff and you may run out of space in hard dr
==== 3rd party repos ====
Most needs could do it well with repositoires shiped by default CentOS, but there are other options like the CentOS Plus repository, shiped but disabled by default, since this repo contains items that actually upgrade certain base CentOS components. This repo will change CentOS so that it is not exactly like the upstream provider's content. Popular packages from this repository include: postfix with database support, a rebuilt kernel with additional drivers & filesystem support, php5 and mysql5.
Most needs could do it well with repositoires shiped by default CentOS, but there are other options like the CentOS Plus repository, shiped but disabled by default, since this repo contains items that actually upgrade certain base CentOS components. This repo will change CentOS so that it is not exactly like the upstream provider's content. Popular packages from this repository include: postfix with database support, a rebuilt kernel with additional drivers & filesystem support, php5 and mysql5.
contrib is also a disabled default in CentOS. This repository contains packages contributed by CentOS users which do not overlap with any of the core distribution packages. These packages have not been tested by the CentOS developers and may not track the upstream version releases very closely.

@ -4,7 +4,7 @@
==== Note! ====
Some parts of this tutorial are copy&paste from Plan 9 wiki because they fit the flow of the writing as they are, so no claim from SDF's users is made over the authorship of such parts, which are clearly labeled as taken from Plan 9's wiki.
Some parts of this tutorial are copy&paste from Plan 9 wiki because they fit the flow of the writing as they are, so no claim from SDF's users is made over the authorship of such parts, which are clearly labeled as taken from Plan 9's wiki.
===== Get involved =====
@ -42,7 +42,7 @@ Activities of the SDF Plan9 Boot Camp include:
* To exit Plan 9 and be able to return **without** rebooting your server, Press **ctl-]** to close the console, then press 'q' to disconnect. You can return again by **ssh**ing to your allocated VPS server again (see [[#install|above]]) and getting back to the VPS console, and pressing 'c' to connect.
* The only line editor installed by default in the Plan 9 Image. is **//ed//**. For initially setting your DNS below or other tasks before you get DrawTerm running, [[https://www.howtoforge.com/linux-ed-command/|read this tutorial]] for this excrutiating experience (but then you can install DrawTerm). ===== Networking ========= Configuring Your IP Address ====In your control panel at "vps3.sdf.org", note YOUR_IP (e.g. 205.166.94.x) on the top line.Start your server, and log in via the console. (default=glenda)At the "rc" prompt (%), enter: "ip/ipconfig -g 205.166.94.1 ether /net/ether0 YOUR_IP 255.255.255.0"This configuration lasts until you reboot Plan 9. To make this permanent it is recommended to add this line to your /rc/bin/termrc.local file.To exit Plan 9 and be able to return **without** rebooting your server, see [[#know|above]].==== DNS Resolution ====You can get DNS resolution by editing "/lib/ndb/local" and changing: "ip=127.0.0.1 sys=localhost dom=localhost"to "ip=YOUR_IP sys=plan9 dom=plan9 dns=205.166.94.20"Once you've done that, from "rc" type "ndb/cs
ndb/dns -r"This configuration lasts until you reboot Plan 9. To make this permanent it is recommended to add those two lines to your /rc/bin/termrc.local file.To exit Plan 9 and be able to return **without** rebooting your server, see [[#know|above]].===== Drawterm =====Drawterm is essentially a BLIT terminal emulator which allows you to connect to your Plan9 system and load the //rio// windowing system. Rio is a direct successor of UNIX 'layers' and Plan 9 '8½'.At the "rc" prompt (%) in your Plan 9 VPS, enter these two lines. "echo 'key proto=p9sk1 dom=plan9 user=glenda !password=PASSWORD' >/mnt/factotum/ctl
aux/listen1 -t tcp!*!ncpu /bin/cpu -R &
aux/listen1 -t tcp!*!ncpu /bin/cpu -R &
"Replace PASSWORD with the password you want. This password lasts until you reboot Plan 9.To exit Plan 9 and be able to return **without** rebooting your server, see [[#know|above]].==== Getting Started with Drawterm ===={{http://sdf.org/tutorials/images/drawterm.png}}\\ Follow the [[https://web.archive.org/web/20120121090252/http://jgw.tx0.org/howto/building_drawterm.html|instructions]] to download and build Drawterm for your operating system. YOUR_IP must match the IP address described in [[#networking|Networking]].\\ "./drawterm -a YOUR_IP -c YOUR_IP -u glenda"After typing your password, press the right button of your mouse. A menu should appear. Then, release the button over the "New" option.\\ Now, press the right button again near the upper-left corner of drawterm, and drag the mouse to the lower right before releasing the button, drawing a rectangle.\\ You should now have a terminal window. The first thing you should probably do is to type "cat readme.rio" (or read it from [[http://sdf.org/tutorials/misc/readme.rio|here]])===== Plan 9 Applications ========= Browsing the Web ====You can use [[http://lab-fgb.com/abaco/|Abaco]] to browse the web. (Abaco is available in a default Plan 9 system.)You'll need to have your IP configured and DNS working in order to browse the web. After that, you'll have to run "webfs" and **then** "abaco". (You may want to add "webfs" in your "$home/lib/profile" just before plumber and rio; also, if you don't have a "$home/lib/webcookies" file, touch it.){{http://sdf.org/tutorials/images/abaco.png?600px}}When abaco starts, you can go to a webpage by clicking ""New"" with the middle button of the mouse, typing the address in the row below the one with ""Del Snarf Get …"" (see the previous figure: it's the one where the current address is), and pressing "Enter" on your keyboard. You can follow links by clicking on them, as is usual, with the left button (the shape of the cursor won't change, though).===== Adding a User =====You may wish to add a user to your system once you get the hang of things. There is really no need to create a new user when you are first starting out. To create a new user, you will have to connect to the file server console by typing: "con -l /srv/fscons"Now, at the file server prompt, create a new user. Replace USER with what you want your new user to be named: "uname USER USER"You will need to add that user to the "sys" group if you want it to be able to change system configuration files. Again, change USER to what your new user name is: "uname sys +USER"Exit the file server console by typing: "ctrl+\". You will now be at a ">>>" prompt; type "q" to quit.===== Configure Time zone =====**Taken from [[http://plan9.bell-labs.com/wiki/plan9/Installation_instructions/index.html|Plan 9 Wiki Installation Instructions]]**You might want to configure your system's timezone. Figure out in which timezone you are, and then, assuming e.g. you are in the CET zone log in as user adm, then: "cp /adm/timezone/CET /adm/timezone/local"Last, but not the least, you may also want to edit/change the "TIMESYNCARGS" in your "/rc/bin/termrc" or "/rc/bin/cpurc"; for example, to use an NTP service, set it to: "TIMESYNCARGS=(-n 0-north-america.pool.ntp.org)" and reboot. ===== Working in Plan 9 =====TODO check if title worksNow that you are connected to your Plan 9 console with your new user you should run: "/sys/lib/newuser"And setup a password for the user in factotum so you can login from Drawterm.**Taken from [[http://plan9.bell-labs.com/wiki/plan9/Installation_instructions/index.html|Plan 9 Wiki Installation Instructions]]**When you drawterm to a Plan 9 cpu server, your local files will be available at /mnt/term. This means you can freely copy files between Plan 9 and your other os without the use of any additional protocols. In other words, when working with drawterm, your environment is actually a composite of your local os and the Plan 9 system - technically it is a three node grid, because the Drawterm program acts as an ultra-minimal independent Plan 9 terminal system, connecting your host os to the Plan 9 cpu server.===== Useful Plan9 Commands =====While there are many similarities between UNIX and Plan9, there are specific commands which may be unfamiliar to UNIX users. However, some of these commands have their roots in early UNIX systems as well as BTL Research UNIX.
* //**fshalt -h**// - This will gracefully shutdown Plan 9
* //**ed**// - This archaic line editor is the only one installed by default in the Plan 9 Image. For initially setting your DNS above or other tasks before you get DrawTerm running, [[https://www.howtoforge.com/linux-ed-command/|read this tutorial]] for this excrutiating experience (but then you can install DrawTerm).===== Links ========= Tutorials ====

@ -76,7 +76,7 @@ To make it more useful for ANONRADIO use, it's helpful to put it into a shell sc
# anonradio - streams SDF ANONradio via sox(1);
# retries automatically if stream dropped
if [ -x $(which sox) ]; then
trap 'printf "\n anonradio stream terminated... \n" && exit 0' 2
trap 'printf "\n anonradio stream terminated... \n" && exit 0' 2
clear
while [ 1 ]
do clear

@ -1,16 +1,16 @@
[[https://sdf.org/tutorials/images/att605-4.jpg|{{https://sdf.org/tutorials/images/att605-4.jpg?30%}}]]
**//The SDF Travelling AT&T 605 UNIX Terminal//**
**//The SDF Travelling AT&T 605 UNIX Terminal//**
=== What is it? ===
This is a former terminal used on the AT&T 3B2/500 (retired 1998). It has been modified to work as a stand alone computer using a Raspberry Pi Zero W. Just give it a WIFI/hotspot and coordinate with SDF to use it at a vintage computer festival and help spread awareness of SDF's past as well as what we're doing today.
This is a former terminal used on the AT&T 3B2/500 (retired 1998). It has been modified to work as a stand alone computer using a Raspberry Pi Zero W. Just give it a WIFI/hotspot and coordinate with SDF to use it at a vintage computer festival and help spread awareness of SDF's past as well as what we're doing today.
=== How do I get it? ===
The terminal can be borrowed for up to 2 weeks. It is shipped in a double box with signage, an ipod/headphones (for the NPR story) and an assortment of SDF stickers and CDs to give away. To reserve the terminal for use at your event, contact 'membership' and provide full details. Please be sure to give enough lead time, preferrably 2 weeks prior to your event.
=== I wanna use it! Where will the SDF Travelling AT&T 605 UNIX Terminal be next? ===
=== I wanna use it! Where will the SDF Travelling AT&T 605 UNIX Terminal be next? ===
* Mar 23-24, 2019 - Seattle, WA - Vintage Computer Festival Pacific Northwest //**COMPLETED**//
* May 3-5, 2019 - Wall, NJ - Vintage Computer Festival East //**COMPLETED**//
@ -19,7 +19,7 @@ The terminal can be borrowed for up to 2 weeks. It is shipped in a double box wi
* Sep 14-15, 2019 - Elmhurst, Il - Vintage Computer Festival Midwest //**COMPLETED**//
* Nov 6, 2019 - Manhattan, NY - Suspenders NYC - Install Fest //**COMPLETED**//
* Dec 4, 2019 - Brooklyn, NY - NYC*BUG Holiday Party at Boat Bar //**COMPLETED**//
* Mar 19-22, 2020 - Tokyo, Japan - AsiaBSDcon - Tokyo University**CANCELLED**=== Technical Information ===**Configuration / New setup:**\\ Login as the user 'pi' with the randomly generated password and run 'sudo raspi-config'. This will allow you to setup the network once you're on site. Enter your SSID and passphrase through this dialog**Usage:**\\ While featuring raspian isn't really the point, you could use the terminal to feature local programs. If you login as user 'menu' password 'menu' and you have a network, you'll be connected to the Living Computer Museum's TTY service which will then allow you to connect to several vintage machines. Logging in as 'sdf' will take you to the old AT&T 3B2/500 when it is running in Seattle, WA (can be arranged).It also features sdfer Seth Morabito's AT&T 3B2/400 emulator which is a bit of a surreal experience - just login as '3b2' to spin up a virtual historical SDF.The terminal does not have a battery installed (due to leakage) so when you turn it on, it will default to 1200 7E1 with function key labels on. You'll want to set it to 9600 8N1 with labels off.[[https://sdf.org/tutorials/images/att605-6.jpg|{{https://sdf.org/tutorials/images/att605-6.jpg?30%}}]]**//The SDF Travelling AT&T 605 UNIX Terminal Setup Screen//////**=== Weight and Dimensions of the shipping box ===
* Mar 19-22, 2020 - Tokyo, Japan - AsiaBSDcon - Tokyo University**CANCELLED**=== Technical Information ===**Configuration / New setup:**\\ Login as the user 'pi' with the randomly generated password and run 'sudo raspi-config'. This will allow you to setup the network once you're on site. Enter your SSID and passphrase through this dialog**Usage:**\\ While featuring raspian isn't really the point, you could use the terminal to feature local programs. If you login as user 'menu' password 'menu' and you have a network, you'll be connected to the Living Computer Museum's TTY service which will then allow you to connect to several vintage machines. Logging in as 'sdf' will take you to the old AT&T 3B2/500 when it is running in Seattle, WA (can be arranged).It also features sdfer Seth Morabito's AT&T 3B2/400 emulator which is a bit of a surreal experience - just login as '3b2' to spin up a virtual historical SDF.The terminal does not have a battery installed (due to leakage) so when you turn it on, it will default to 1200 7E1 with function key labels on. You'll want to set it to 9600 8N1 with labels off.[[https://sdf.org/tutorials/images/att605-6.jpg|{{https://sdf.org/tutorials/images/att605-6.jpg?30%}}]]**//The SDF Travelling AT&T 605 UNIX Terminal Setup Screen//////**=== Weight and Dimensions of the shipping box ===
* 40 lbs
* 20 x 20 x 24 in
* Terminal goes into the inner box. There is a piece of foam to craddle the back

@ -2,7 +2,7 @@
CenterICQ is not actively maintained anymore, CenterIM is a fork and is actively maintained. However CenterICQ is still functional.
===== CenterICQ & CenterIM =====
===== CenterICQ & CenterIM =====
These same steps aply to connect to ICQ using CenterIM.

@ -11,7 +11,7 @@ Best way to learn about the //DIALUP// SDF membership is to login to your SDF sh
Some quick tips and things to note:
1) You can choose from 54,143 dialup numbers in the USA & Canada
1) You can choose from 54,143 dialup numbers in the USA & Canada
2) Connections from 1200bps to 52000bps or 64kbps to 128kbps ISDN
3) Read the bboard: for discussions on the membership
4) Your dialup login is you@tenex.org

@ -224,7 +224,7 @@ while [ 1 ]; do
SSH_PID=`ps aux | sed -n -e /sed/d -e /ssh\ \-N/p | wc -m`
if [ $SSH_PID -eq 0 ]; then
ssh $SSH_ARGS $LIS_PORT:$TAG_HOST:$TAG_PORT $SSH_USER@$SSH_HOST \
-p$SSH_PORT &>/dev/null
-p$SSH_PORT &>/dev/null
DATE_TIME=`date '+%y.%m.%d %T'`
echo "$DATE_TIME SSH Tunnel restarted.">>$LOG_FILE
fi

@ -23,7 +23,7 @@ Stuff to know:
* yahoo uses spamhaus, apparently, so you can use yahoo's request page, and also Spamhaus
* yahoo: here's a guide on [[https://www.rackaid.com/blog/how-to-remove-your-email-server-from-yahoos-blacklist/|how to fill out Yahoo's bulk email sender form]] (even if you are just a regular emailing schlub). [[http://help.yahoo.com/l/us/yahoo/mail/postmaster/bulkv2.html|Yahoo! Bulk Email Sender Form]]
* another customer contact form [[https://io.help.yahoo.com/contact/index?page=contactform&locale=en_US&token=Zh/BBVqXzLHlIbokbUqVWTUbuuQeXGkGnZzhKR2JQ4O6mMQdy9JSWdtWFXvjthcYCRj9bUIFfycOfG+4GOHPHoOGa8HwDO2+0kYRtTcdR8O13Mvs9cOruJ0TlC3hh4bCEtPlZ0yk7fvp1MFjGnAOWw==&selectedChannel=email-icon&isVip=false|https://io.help.yahoo.com/contact/index?page=contactform&locale=en_US...]]
* another customer contact form [[https://io.help.yahoo.com/contact/index?page=contactform&locale=en_US&token=Zh/BBVqXzLHlIbokbUqVWTUbuuQeXGkGnZzhKR2JQ4O6mMQdy9JSWdtWFXvjthcYCRj9bUIFfycOfG+4GOHPHoOGa8HwDO2+0kYRtTcdR8O13Mvs9cOruJ0TlC3hh4bCEtPlZ0yk7fvp1MFjGnAOWw==&selectedChannel=email-icon&isVip=false|https://io.help.yahoo.com/contact/index?page=contactform&locale=en_US...]]
* spamhaus https://www.spamhaus.org/lookup/
* outlook https://support.microsoft.com/en-us/supportrequestform/8ad563e3-288e-2a61-8122-3ba03d6b8d75
* comcast https://abuse.vadesecure.com/

@ -42,7 +42,7 @@ The default ECL prompt is ">". Enter Common-Lisp commands in the usual way:
> (* 4 5)
20
> (format t "hello SDF~&")
> (format t "hello SDF~&")
hello SDF
NIL
>
@ -55,7 +55,7 @@ To use ECL as a script executor (ie. CGI) the //-shell// and/or //-eval// option
ex: hello.lsp
% echo '(format t "~&Hello SDF~&")' > hello.lsp
% echo '(format t "~&Hello SDF~&")' > hello.lsp
% ecl -norc -script hello.lsp
Hello SDF
@ -141,8 +141,8 @@ Additional modifications can be made to the ECL startup file, such as user-defin
;; customizations
;; GNU clisp-like SHELL cmd
(defun shell (&optional (shell_cmd "$SHELL"))
"Args: (&optional shell_cmd)
(defun shell (&optional (shell_cmd "$SHELL"))
"Args: (&optional shell_cmd)
SHELL calls the EXT:SYSTEM function. Executes SHELL_CMD if given, otherwise
User sub-shell is spawned. SHELL_CMD be string or symbol, 256 characters max."
(ext:system shell_cmd))

@ -1,6 +1,6 @@
====== Emacs Cheatsheet ======
[[#sec1|Basic Movement and Editing Commands]][[#sec2|Kill & Yank (Cut/Copy and Paste)]][[#sec3|Search & Replace]][[#sec4|Emacs Modes]][[#sec5|Buffers]][[#sec6|Windows]][[#sec7|Dired Mode]][[#sec8|Shell Modes]][[#sec9|Getting Help]][[#sec10|w3m mode]][[#sec11|Sample .emacs]]
[[#sec1|Basic Movement and Editing Commands]][[#sec2|Kill & Yank (Cut/Copy and Paste)]][[#sec3|Search & Replace]][[#sec4|Emacs Modes]][[#sec5|Buffers]][[#sec6|Windows]][[#sec7|Dired Mode]][[#sec8|Shell Modes]][[#sec9|Getting Help]][[#sec10|w3m mode]][[#sec11|Sample .emacs]]
===== Basic Movement and Editing Commands =====
@ -30,7 +30,7 @@
| M-| | Execute shell command on region |
| Backspace | Delete previous character |
===== Kill & Yank (Cut/Copy and Paste) =====
===== Kill & Yank (Cut/Copy and Paste) =====
| C-space | Set the mark |
| C-w | Cut (kill) |
@ -40,7 +40,7 @@
| C-x h | Set point to start of buffer and mark to end of buffer (select the entire buffer) |
| C-x C-x | Swap point and mark |
===== Search & Replace =====
===== Search & Replace =====
| C-s | Incremental search forward |
| C-r | Incremental search backward |

@ -1,6 +1,6 @@
====== Emacs Tutorial ======
[[#sec1|Getting Started]][[#sec2|Basic Commands]][[#sec3|Getting Help]][[#sec4|Extended Commands and Command Completion]][[#sec5|Kill & Yank (Cut/Copy and Paste)]][[#sec6|Search & Replace]][[#sec7|Emacs Modes]][[#sec8|Buffers]][[#sec9|Windows]][[#sec10|Dired Mode]][[#sec11|Shell Modes]][[#sec12|Emacs Startup and Configuration]][[#sec13|Browsing the Web in Emacs with w3m]][[#sec14|Where to Go From Here]]
[[#sec1|Getting Started]][[#sec2|Basic Commands]][[#sec3|Getting Help]][[#sec4|Extended Commands and Command Completion]][[#sec5|Kill & Yank (Cut/Copy and Paste)]][[#sec6|Search & Replace]][[#sec7|Emacs Modes]][[#sec8|Buffers]][[#sec9|Windows]][[#sec10|Dired Mode]][[#sec11|Shell Modes]][[#sec12|Emacs Startup and Configuration]][[#sec13|Browsing the Web in Emacs with w3m]][[#sec14|Where to Go From Here]]
===== Getting Started =====
@ -50,7 +50,7 @@ GNU Emacs has excellent help facilities. Most of them are accessed with the pref
Emacs has the concept of //extended commands//, which consist of "M-x" followed by the name of the command. As an example of a useful extended command, sometimes the backspace key gets mapped to C-h (I find this happens sometimes under remote screen sessions, you'll know this is the case if you hit the backspace key twice and the emacs help buffer pops up, just hit "C-g" to clear the help window). To get the backspace key to act as it should (i.e., it deletes the previous character), you enter "M-x normal-erase-is-backspace-mode". That's a lot to type, so you can take advantage of Emacs' //command-completion// by typing a partial command and hitting the "Tab" key one or more times. In this case, you type "M-x normal-e" and hit "Tab", and Emacs will complete the command for you. You can then just hit "Enter" to execute the command. If you don't type enough of the command to make it unique, Emacs will display a list of alternatives for you to choose from. For example, if you type "M-x normal-" and hit the "Tab" key, Emacs will pop up a buffer named *Completion* with with two alternatives for you to choose from: normal-mode and mormal-erase-is-backspace-mode. Just type a bit more of the command you want and hit tab again to narrow the completion list or to complete the command if it is the only one left.
===== Kill & Yank (Cut/Copy and Paste) =====
===== Kill & Yank (Cut/Copy and Paste) =====
Most Emacs commands operate on the region defined by the //point//, which is the location of the cursor at any given time, and the //mark//, which is set with the command "C-space". To copy or cut a region of text, move the cursor to the start of the text area you are interested in and type "C-space". You will see "Mark set" in the echo area. Now move the cursor to the end of the text region (which moves the point) and type "M-w" for copy or "C-w" for cut (both called killing text). The text you copy or cut is stored by Emacs in the //kill-ring//, which is a circular buffer that stores the text snippets you kill in a last-in-first-out order. To paste the most recently stored text, move the cursor to where the text should be inserted, and type "C-y". The "y" stands for yank, what you'll see paste referred to in the Emacs help documentation (remember Emacs pre-dated modern windowing systems and other full-screen editors, so the terms cut and paste were not in use yet). After a yank ("C-y") command, you can replace the inserted text with earlier kills in turn by typing "M-y" one or more times. Each time you press "M-y" the next block of killed text is popped off of the kill ring and inserted into your buffer, replacing the last insert at the same time.
@ -64,7 +64,7 @@ Here are the commands we discussed above, and a few other useful ones:
| C-x h | Set point to start of buffer and mark to end of buffer (select the entire buffer) |
| C-x C-x | Go back to the last mark that was set |
===== Search & Replace =====
===== Search & Replace =====
Emacs has a nice search mode called //incremental search//. To use it, type "C-s". The text "I-search:" will appear in the echo area. Now start typing a search string. As you type, Emacs will search for your string in real-time (starting at point), highlighting any matches it finds. You can backspace and re-type text, and the search will continue to change with the text you type. When you find a match, you can hit "C-s" to search again and jump to the next match, or you can just hit "Enter" to exit the search mode and leave the cursor at the last match. "C-g" will abort the search and put your cursor back where you started. Searches will re-start at the top of a buffer if they hit the bottom. You can search backwards in a similar fashion with "C-r".

@ -22,10 +22,10 @@ Section 1Section 1.1Section 1.2Section 1.3Section 2Section 2.1Section 3Section 3
Book:
Author's last name, first initial. (Publication date). Book title. Additional information. City of publication: Publishing company.
Encyclopedia & Dictionary:
Encyclopedia & Dictionary:
Author's last name, first initial. (Date). Title of Article. Title of Encyclopedia (Volume, pages). City of publication: Publishing company.
Magazine & Newspaper Articles:
Magazine & Newspaper Articles:
Author's last name, first initial. (Publication date). Article title. Periodical title, volume number(issue number if available), inclusive pages.
Online periodical:

@ -154,10 +154,10 @@
Book:
Author's last name, first initial. (Publication date). Book title. Additional information. City of publication: Publishing company.
Encyclopedia & Dictionary:
Encyclopedia & Dictionary:
Author's last name, first initial. (Date). Title of Article. Title of Encyclopedia (Volume, pages). City of publication: Publishing company.
Magazine & Newspaper Articles:
Magazine & Newspaper Articles:
Author's last name, first initial. (Publication date). Article title. Periodical title, volume number(issue number if available), inclusive pages.
Online periodical:

@ -15,7 +15,7 @@ To transport data between SDF and your local (or any other external) machine, th
===== FTP - File Transfer Protocol =====
[[http://en.wikipedia.org/wiki/File_Transfer_Protocol|FTP (File Transfer Protocol)]] on SDF is available only for **downloading** public files. This is for security reasons. For upload and download of private files, [[#scp|scp and sftp]] must be used. \\ Note: ARPA membership allows for up-&download via FTP; however, it is better to use scp or sftp if possible, as FTP is unencrypted, and your passwords also have to travel in the clear.
[[http://en.wikipedia.org/wiki/File_Transfer_Protocol|FTP (File Transfer Protocol)]] on SDF is available only for **downloading** public files. This is for security reasons. For upload and download of private files, [[#scp|scp and sftp]] must be used. \\ Note: ARPA membership allows for up-&download via FTP; however, it is better to use scp or sftp if possible, as FTP is unencrypted, and your passwords also have to travel in the clear.
For download, point your FTP program to sdf.org and do anonymous FTP to read data (username "anonymous", password "//yourlogin//@sdf.org", or another of your e-mail addresses).

@ -163,7 +163,7 @@
.
.
... networking]][[node9.html#tex2html21|<sup>8.1</sup>]]Lookup //socket//, //connect//, //listen//, &amp; //accept// in the man.
... networking]][[node9.html#tex2html21|<sup>8.1</sup>]]Lookup //socket//, //connect//, //listen//, & //accept// in the man.
.
.

@ -247,10 +247,10 @@ No hotlinking of files from other sites: images must be uploaded to the /sys/htm
Book:
Author's last name, first initial. (Publication date). Book title. Additional information. City of publication: Publishing company.
Encyclopedia &amp; Dictionary:
Encyclopedia & Dictionary:
Author's last name, first initial. (Date). Title of Article. Title of Encyclopedia (Volume, pages). City of publication: Publishing company.
Magazine &amp; Newspaper Articles:
Magazine & Newspaper Articles:
Author's last name, first initial. (Publication date). Article title. Periodical title, volume number(issue number if available), inclusive pages.
Online periodical:

@ -272,7 +272,7 @@ You'll need to replace "nickname" with your nickname, and "userIDnumber" with yo
While GNU social allows you to do most of the same things you can do on other social media sites, there are some fundamental differences between the way things work on the federated OStatus network that GNU social uses ("The Fediverse") and the way they work on the closed virtual networks of, say, Facebook or Twitter.
On Twitter/Facebook/Google+/&amp;c.:
On Twitter/Facebook/Google+/&c.:
* All users connect to the same service provider
* Everyone's messages and relationships are stored in a big, central repository

@ -5,7 +5,7 @@ List of IRC channels currently defined on irc.sdf.org. You can see the current c
^ Channel ^ Remarks ^
^ #Arduino | |
^ #RaspberryPi | |
^ #anonradio | Welcome to #anonradio | run cmus &amp;&amp; :add http://anonradio.net:8000/anonradio.m3u &amp;&amp; relax |
^ #anonradio | Welcome to #anonradio | run cmus && :add http://anonradio.net:8000/anonradio.m3u && relax |
^ #artrev | NSA. can't hack Art, join us! |
^ #bashy2 | Contribute at https://notabug.org/mlaine/bashy2 |
^ #bashy2-debug | |
@ -15,7 +15,7 @@ List of IRC channels currently defined on irc.sdf.org. You can see the current c
^ #hopm | |
^ #hurtdesk | Have you tried turning it On and Off again? | Noob: blah blah blah? Leet: Did you RTFM? Noob: [yes/No]. Leet: Then why are you asking me? |
^ #irpg | http://irpg.demu.red because MA php fails... | /msg irpg_bot REGISTER <char name> <password> <char class> | /msg irpg_bot ALIGN <good|neutral|evil> |
^ #mature | Welcome to #mature | +18 only please &amp; thanks |
^ #mature | Welcome to #mature | +18 only please & thanks |
^ #minecraft | [CraftBukkit 1.8.3] mc.sdf.org | [Info] http://sdf.org/mc | [Dynamic Map] http://mc.sdf.org |
^ #pcom | |
^ #sdf | Welcome to #sdf | http://xkcd.com/1782/ | /j #anonradio | /j #gopher |

@ -73,7 +73,7 @@ After finishing this steps, Pidgin will try to connect to the jabber server and
Read bitlbee's documentation for how to get the server up and running. Then, to add SDF's jabber account:
- Go to the &amp;bitlbee channel in the server and register your user
- Go to the &bitlbee channel in the server and register your user
- Run the following command in that channel: **account add account_name user@jabber.sdf.org [passwd]**
- Run: **account account_name on**
@ -109,6 +109,6 @@ The easiest way to find other SDF Jabber users is to visit the conferences as de
You can also use your SDF account to chat with people who have accounts on other Jabber servers. Note that some people might call it `XMPP' instead of `Jabber'. One of the largest Jabber servers is Google Talk: you can chat to GMail/Google Talk users this way without needing a Google account. The Jabber address of those users is the same as their email address.
Created on Apr 18th by vosi &amp; ecelis
Created on Apr 18th by vosi & ecelis
$Id: jabber.html,v 1.13 2019/12/02 16:13:22 thegiant Exp $

@ -74,7 +74,7 @@ The other thing that is observable is the degree to which the GCOS version had t
inc-dec lvalue
lvalue inc-dec
unary rvalue
//"&amp;"// lvalue
//"&"// lvalue
rvalue binary rvalue
rvalue //"?"// rvalue //":"// rvalue
rvalue //"("// //{rvalue {","// rvalue//}<sub>0</sub> }<sub>0</sub><sup>1</sup> ")"//
@ -92,7 +92,7 @@ The other thing that is observable is the degree to which the GCOS version had t
binary //::=
"|"//
//"&amp;"//
//"&"//
//"=="//
//"!="//
//"<"//
@ -128,7 +128,7 @@ The other thing that is observable is the degree to which the GCOS version had t
=== Comments and Character Sets ===
\\ \\ Comments are delimited as in PL/I by /* and */. \\ \\ In general, B requires tokens to be separated by blanks, comments or newlines, however the compiler infers separators surrounding any of the characters "(){}[],;?:" or surrounding any maximal sequence of the characters "+-*/<>&amp;|!". \\ \\ The character set used in B is ANSCII. \\ \\ The syntactic variable 'alpha' is not defined. It represents the characters "A" to "Z", "a" to "z", "_", and backspace. \\ \\ The syntactic variable 'digit' is not defined. It represents the characters "0", "1", "2", ... "9". \\ \\ The syntactic variable 'char' is not defined. It is essentially any character in the set plus the escape character "*" followed by another character to represent characters not easily represented in the set. The following escape sequences are currently defined:
\\ \\ Comments are delimited as in PL/I by /* and */. \\ \\ In general, B requires tokens to be separated by blanks, comments or newlines, however the compiler infers separators surrounding any of the characters "(){}[],;?:" or surrounding any maximal sequence of the characters "+-*/<>&|!". \\ \\ The character set used in B is ANSCII. \\ \\ The syntactic variable 'alpha' is not defined. It represents the characters "A" to "Z", "a" to "z", "_", and backspace. \\ \\ The syntactic variable 'digit' is not defined. It represents the characters "0", "1", "2", ... "9". \\ \\ The syntactic variable 'char' is not defined. It is essentially any character in the set plus the escape character "*" followed by another character to represent characters not easily represented in the set. The following escape sequences are currently defined:
"
@ -165,15 +165,15 @@ The expression (b?f:g[i]) is evaluated to yield an rvalue which is interpreted t
"
evaluates the expression x to yield an rvalue, which is then interpreted as an lvalue. If it is then used in an rvalue context, the application of "*" yields the rvalue therein stored. The operator "*" can be thought of as indirection. \\ \\ The unary operator "&amp;" can be used to interpret an lvalue as an rvalue. Thus
evaluates the expression x to yield an rvalue, which is then interpreted as an lvalue. If it is then used in an rvalue context, the application of "*" yields the rvalue therein stored. The operator "*" can be thought of as indirection. \\ \\ The unary operator "&" can be used to interpret an lvalue as an rvalue. Thus
"
&amp;x
&x
"
evaluates the expression x as an lvalue. The application of "&amp;" then yields the lvalue as an rvalue. The operator "&amp;" can therefore be thought of as the address function. \\ \\ The names lvalue and rvalue come from the assignment statement which requires an lvalue on the left and an rvalue on the right.
evaluates the expression x as an lvalue. The application of "&" then yields the lvalue as an rvalue. The operator "&" can therefore be thought of as the address function. \\ \\ The names lvalue and rvalue come from the assignment statement which requires an lvalue on the left and an rvalue on the right.
=== 4.0 Expression Evaluation ===
@ -187,7 +187,7 @@ evaluates the expression x as an lvalue. The application of "&amp;" then yields
\\ \\
1. The rvalue (or indirection) prefix unary operator "*" is described in section 3.0. Its operand is evaluated to rvalue, and then used as an lvalue. In this manner, address arithmetic may be performed. 2. The lvalue (or address) prefix unary operator &amp; is also described in section 3.0. Note that &amp;*x is identically x, but *&amp;x is only x if x is an lvalue. 3. The operand of the negate prefix unary operator - is interpreted as an integer rvalue. The result is an rvalue with opposite sign. 4. The NOT prefix unary operator ! takes an integer rvalue operand. The result is zero if the operand is non-zero. The result is one if the operand is zero. 5. The increment "++" and decrement "--" unary operators may be used either in prefix or postfix form. Either form requires an lvalue operand. The rvalue stored in the lvalue is either incremented or decremented by one. The result is the rvalue either before or after the operation depending on postfix or prefix notation respectively. Thus if x currently contains the rvalue 5, then ++x and x++ both change x to 6. The value of ++x is 6 while x++ is 5. Similarly, --x and x-- store 4 in X. The former has rvalue result 4, the latter 5.
1. The rvalue (or indirection) prefix unary operator "*" is described in section 3.0. Its operand is evaluated to rvalue, and then used as an lvalue. In this manner, address arithmetic may be performed. 2. The lvalue (or address) prefix unary operator & is also described in section 3.0. Note that &*x is identically x, but *&x is only x if x is an lvalue. 3. The operand of the negate prefix unary operator - is interpreted as an integer rvalue. The result is an rvalue with opposite sign. 4. The NOT prefix unary operator ! takes an integer rvalue operand. The result is zero if the operand is non-zero. The result is one if the operand is zero. 5. The increment "++" and decrement "--" unary operators may be used either in prefix or postfix form. Either form requires an lvalue operand. The rvalue stored in the lvalue is either incremented or decremented by one. The result is the rvalue either before or after the operation depending on postfix or prefix notation respectively. Thus if x currently contains the rvalue 5, then ++x and x++ both change x to 6. The value of ++x is 6 while x++ is 5. Similarly, --x and x-- store 4 in X. The former has rvalue result 4, the latter 5.
\\ \\ Unary operators are bound right to left. Thus -!x++ is bound -(!(x++)).
@ -217,7 +217,7 @@ evaluates the expression x as an lvalue. The application of "&amp;" then yields
=== 4.8 AND operator ===
\\ \\ The AND operator "&amp;" takes operands as bit patterns. The result is the bit pattern that is the bit-wise AND of the operands. The operator binds and evaluates left to right.
\\ \\ The AND operator "&" takes operands as bit patterns. The result is the bit pattern that is the bit-wise AND of the operands. The operator binds and evaluates left to right.
=== The OR operator ===
@ -237,7 +237,7 @@ evaluates the expression x as an lvalue. The application of "&amp;" then yields
"
The assignment operator = merely evaluates the rvalue and stores the result in the lvalue. The assignment operators "=|", "=&amp;", "===", "=|=", "=<", "=<=", "=>", "=>=", "=<<", "=>>", "=+", "=-", "=%", "=*", and "=/" perform a binary operation (see sections 4.3 to 4.9) between the rvalue stored in the assignment's lvalue and the assignment's rvalue. The result is then stored in the lvalue. The expression x=*10 is identical to x=x*10. Note that this is not x= *10. The result of an assignment is the rvalue. Assignments bind right to left, thus x=y=0 assigns zero to y, then x, and returns the rvalue zero.
The assignment operator = merely evaluates the rvalue and stores the result in the lvalue. The assignment operators "=|", "=&", "===", "=|=", "=<", "=<=", "=>", "=>=", "=<<", "=>>", "=+", "=-", "=%", "=*", and "=/" perform a binary operation (see sections 4.3 to 4.9) between the rvalue stored in the assignment's lvalue and the assignment's rvalue. The result is then stored in the lvalue. The expression x=*10 is identical to x=x*10. Note that this is not x= *10. The result of an assignment is the rvalue. Assignments bind right to left, thus x=y=0 assigns zero to y, then x, and returns the rvalue zero.
=== 5.0 Statements ===
@ -415,7 +415,7 @@ Thus, it is expected that one of the external definitions is a function definiti
"
If the external object is defined with no initialization, it is initialized with zero. A single initialization with a constant initializes the external with the value of the constant. Initialization with a name initializes the external to the address of that name. Many such initializations may be accessed as a vector based at &amp;name.
If the external object is defined with no initialization, it is initialized with zero. A single initialization with a constant initializes the external with the value of the constant. Initialization with a name initializes the external to the address of that name. Many such initializations may be accessed as a vector based at &name.
=== 7.2 Vector Definitions ===
@ -543,7 +543,7 @@ c = char(string, i);\\ The i-th character of the string is returned. error = ch
auto adx, x, c, i, j;
i= 0; /* fmt index */
adx = &amp;x1; /* argument pointer */
adx = &x1; /* argument pointer */
loop :
while((c=char(fmt,i++) ) != `%') {
if(c == `*e')
@ -684,7 +684,7 @@ The above code as compared to the obvious 3 instruction directly executed equiva
1. The compiler makes sense of certain expressions with operators in ambiguous cases (e.g. a+++b) but not others even in unambiguous cases (e.g. a+++++b). 2. The B assembler /etc/ba does not correctly handle all possible combinations of intermediate language. The symptom is undefined symbols in the assembly of the output from /etc/ba. This is rare. 3. The B interpreter /etc/bilib is really a library of threaded code segment. The following code segments have not yet been written: "
b103 =&amp;
b103 =&
b104 ===
b105 =!=
b106 =<=

@ -106,7 +106,7 @@ It is based on the fact that your user id is the first part of the address for V
export LOGNAME HOME
echo "`date -u +%c` $REMOTE_ADDR $QUERY_STRING" >>$LOGF
chmod 600 $LOGF
cat <&amp;1 >/dev/null ; then
cat <&1 >/dev/null ; then
if [ -d "$HOME" ] ; then
if [ "$REMOTE_ADDR" = "`cat $OLDIP`" ] ; then
echo "Keeping ip at $REMOTE_ADDR"

@ -97,17 +97,17 @@ Allows an enrolled student at an accredited college or K-12 school to be validat
* hosting for 'yourdomain' + subdomains
* letsencrypt SSL certificate automatically issued and renewed
* private access log with daily &amp; monthly reports
* [[http://sdf1.org/vhosts/sdf-jp.org/|analog historical graphing &amp; reporting]]
* includes DNS &amp; VPM memberships
* private access log with daily & monthly reports
* [[http://sdf1.org/vhosts/sdf-jp.org/|analog historical graphing & reporting]]
* includes DNS & VPM memberships
* DBA included in levels above basic
* REGIS included with annual dues
* [[http://sdf1.org/index.cgi?vhost|complete VHOST dues &amp; features]]
* [[http://sdf1.org/index.cgi?vhost|complete VHOST dues & features]]
=== POINTER [Website Aliasing] ($30 annual) ===
* allows you to point to an additonal domain name to an existing VHOST membership domain
* DNS &amp; VPM memberships are included
* DNS & VPM memberships are included
=== MLIST [Mailing List] ($30 annual) ===
@ -163,7 +163,7 @@ Allows an enrolled student at an accredited college or K-12 school to be validat
* 5GB OS images are persistent and can be interchanged
* Additional disks available in 1GB, 3GB and 5GB increments
* Pre-build and communally managed pkgsrc for NetBSD
* [[http://sdf1.org/index.cgi?vps|complete VPS dues &amp; features]]
* [[http://sdf1.org/index.cgi?vps|complete VPS dues & features]]
=== MOTD ($4-$8/month) ===
@ -171,9 +171,9 @@ Allows an enrolled student at an accredited college or K-12 school to be validat
* pre-installed phpbb, Movable Type and others
* MySQL database (DBA membership)
* project site: [[http://motd.org|MOTD.ORG]]
* [[http://sdf1.org/index.cgi?motd|complete MOTD dues &amp; features]]
* [[http://sdf1.org/index.cgi?motd|complete MOTD dues & features]]
==== Where to send donations &amp; membership dues: ====
==== Where to send donations & membership dues: ====
=== POSTAL ADDRESS ===

@ -1,4 +1,4 @@
[[node2.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[unx.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node2.html|1. To Do]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[unx.html|Introduction to Unix &amp;]]\\ \\ \\
[[node2.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[unx.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node2.html|1. To Do]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[unx.html|Introduction to Unix &]]\\ \\ \\
===== Contents =====
@ -21,7 +21,7 @@
* [[node5.html#SECTION00553000000000000000|4.5.3 My Own E-mail]]
* [[node5.html#SECTION00560000000000000000|4.6 Viewing Files]]
* [[node5.html#SECTION00570000000000000000|4.7 Surf the Web]]
* [[node5.html#SECTION00580000000000000000|4.8 Upload &amp; Download]]
* [[node5.html#SECTION00580000000000000000|4.8 Upload & Download]]
* [[node5.html#SECTION00581000000000000000|4.8.1 FTP]]
* [[node5.html#SECTION00582000000000000000|4.8.2 scp]]
* [[node5.html#SECTION00583000000000000000|4.8.3 rcp]]

@ -1,4 +1,4 @@
[[node11.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node9.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node11.html|Bibliography]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node9.html|8. Hacking]]   ** [[node1.html|Contents]]**\\ \\
[[node11.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node9.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node11.html|Bibliography]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node9.html|8. Hacking]]   ** [[node1.html|Contents]]**\\ \\
====== 9. Meta ======

@ -1,4 +1,4 @@
{{../img/latex2html/next_g.png?37x24|next}} [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node10.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node10.html|9. Meta]]   ** [[node1.html|Contents]]**\\ \\
{{../img/latex2html/next_g.png?37x24|next}} [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node10.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node10.html|9. Meta]]   ** [[node1.html|Contents]]**\\ \\
===== Bibliography =====

@ -1,14 +1,14 @@
[[node3.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node1.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node3.html|2. Introduction]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node1.html|Contents]]   ** [[node1.html|Contents]]**\\ \\
[[node3.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node1.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node3.html|2. Introduction]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node1.html|Contents]]   ** [[node1.html|Contents]]**\\ \\
====== 1. To Do ======
How to make a web site on SDF. Probably mention the "mkhomepg" (or whatever it's called) command &amp; give pointers to other articles about HTML &amp; CGI.
How to make a web site on SDF. Probably mention the "mkhomepg" (or whatever it's called) command & give pointers to other articles about HTML & CGI.
Mention Tweak membership on SDF.
Mention some games.
Better discussion of membership levels on SDF. This is a toughie to do because this is mostly an introduction to unix, with only some SDF-specific goodies, not a full SDF policy document. Maybe it would be suitable to mention that any unix system might allow only certain users to run certain programs, &amp; I could give brief details of SDF's membership levels. This was requested or suggested by at least two people on //bboard// / GENERAL, so it's not a frivolous request. Hmmm...
Better discussion of membership levels on SDF. This is a toughie to do because this is mostly an introduction to unix, with only some SDF-specific goodies, not a full SDF policy document. Maybe it would be suitable to mention that any unix system might allow only certain users to run certain programs, & I could give brief details of SDF's membership levels. This was requested or suggested by at least two people on //bboard// / GENERAL, so it's not a frivolous request. Hmmm...
Discuss Zmodem (//rz//, //sz//).

@ -1,4 +1,4 @@
[[node4.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node2.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node4.html|3. What is Unix?]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node2.html|1. To Do]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
[[node4.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node2.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node4.html|3. What is Unix?]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node2.html|1. To Do]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
* [[#SECTION00310000000000000000|2.1 What to read first]]
@ -6,18 +6,18 @@
====== 2. Introduction ======
This is for people who are new to unix, especially people who are new to unix &amp; new to [[http://sdf.lonestar.org/|Super Dimension Fortress]] (SDF), a public access unix system.
This is for people who are new to unix, especially people who are new to unix & new to [[http://sdf.lonestar.org/|Super Dimension Fortress]] (SDF), a public access unix system.
I sometimes hang out in the chat rooms on SDF, &amp; almost every day someone enters who has recently created an account &amp; asks how to get started using unix &amp; the features of SDF. It's an awkward situation because there is a lot to know to get started with unix; it would be difficult to explain it all in a chat room. What's more, most of the regulars in those chat rooms have seen &amp; answered the question enough times that they understandably do not look forward to doing so again.
I sometimes hang out in the chat rooms on SDF, & almost every day someone enters who has recently created an account & asks how to get started using unix & the features of SDF. It's an awkward situation because there is a lot to know to get started with unix; it would be difficult to explain it all in a chat room. What's more, most of the regulars in those chat rooms have seen & answered the question enough times that they understandably do not look forward to doing so again.
So I'm answering that question here, once. If all goes well, when someone enters a chat room &amp; asks how to start learning about unix, someone can point them to this article.
So I'm answering that question here, once. If all goes well, when someone enters a chat room & asks how to start learning about unix, someone can point them to this article.
====== 2.1 What to read first ======
If you already know what unix is, or if you don't but you also don't enjoy reading about petty controversies about a definition, skip the ``What is Unix'' chapter &amp; start reading Chapter [[node5.html#basics|4]] ``Some Basic Commands''.
If you already know what unix is, or if you don't but you also don't enjoy reading about petty controversies about a definition, skip the ``What is Unix'' chapter & start reading Chapter [[node5.html#basics|4]] ``Some Basic Commands''.
----
[[node4.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node2.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node4.html|3. What is Unix?]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node2.html|1. To Do]]   ** [[node1.html|Contents]]**
[[node4.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node2.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node4.html|3. What is Unix?]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node2.html|1. To Do]]   ** [[node1.html|Contents]]**
Gene Michael Stover 2005-07-07

@ -1,4 +1,4 @@
[[node5.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node3.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node5.html|4. Some Basic Commands]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node3.html|2. Introduction]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
[[node5.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node3.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node5.html|4. Some Basic Commands]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node3.html|2. Introduction]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
* [[#SECTION00410000000000000000|3.1 Short Answer]]
* [[#SECTION00420000000000000000|3.2 Long Answer]]
@ -13,7 +13,7 @@ What is unix? That's a loaded question.
====== 3.1 Short Answer ======
The short answer is ``Unix is an operating system''. So is Gnu/Linux, which is often just called Linux. So are HP/UX, AIX, NeXT STEP (now called Apple Macintosh OS 10), &amp; Microthought Winders (often called many uncomplimentary things).
The short answer is ``Unix is an operating system''. So is Gnu/Linux, which is often just called Linux. So are HP/UX, AIX, NeXT STEP (now called Apple Macintosh OS 10), & Microthought Winders (often called many uncomplimentary things).
If this short answer is enough for you, congratulations on knowing the value of keeping things simple. Now skip ahead to Chapter [[node5.html#basics|4]] ``Some Basic Commands''.
@ -23,9 +23,9 @@ The long answer is ``It depends on who you ask''.
===== 3.2.1 My Opinion =====
In my opinion, unix is a description of the function of an operating system. I even say that unix is an Application Programmer's Interface (API). Any operating system which implements the unix API is a unix; it's an implementation of unix. Gnu/Linux is a unix.[[footnode.html#foot51|<sup>3.1</sup>]] Gnu/Linux is often called Linux, but strictly speaking, Linux is a unix kernel, but not a whole unix operating system. There are many other implementations of unix. I can name original BSD, OpenBSD, FreeBSD, NetBSD, HP/UX, AIX, Minix, Apple Macintosh OS 10, NeXT STEP, QNX, &amp; Lynx. There are probably others.
In my opinion, unix is a description of the function of an operating system. I even say that unix is an Application Programmer's Interface (API). Any operating system which implements the unix API is a unix; it's an implementation of unix. Gnu/Linux is a unix.[[footnode.html#foot51|<sup>3.1</sup>]] Gnu/Linux is often called Linux, but strictly speaking, Linux is a unix kernel, but not a whole unix operating system. There are many other implementations of unix. I can name original BSD, OpenBSD, FreeBSD, NetBSD, HP/UX, AIX, Minix, Apple Macintosh OS 10, NeXT STEP, QNX, & Lynx. There are probably others.
Now for some legal bullshit. ``UNIX'' is a trademark of [[http://www.opengroup.org/|The Open Group]]. From what I can infer from their web site about their opinions of what unix is, they would agree with me that it's a description of the function of a family of operating systems, but they would also add ``that we have certified to be UNIX''. So legally, it's not a UNIX unless The Open Group certifies it as a UNIX. So a lot of those operating systems I listed as unices are not UNIXes. It's a thoroughly sad case of legalities getting in the way of simplicity &amp; sanity.
Now for some legal bullshit. ``UNIX'' is a trademark of [[http://www.opengroup.org/|The Open Group]]. From what I can infer from their web site about their opinions of what unix is, they would agree with me that it's a description of the function of a family of operating systems, but they would also add ``that we have certified to be UNIX''. So legally, it's not a UNIX unless The Open Group certifies it as a UNIX. So a lot of those operating systems I listed as unices are not UNIXes. It's a thoroughly sad case of legalities getting in the way of simplicity & sanity.
Anyway, I say that if an operating system behaves like unix, then it's a unix, though not necessarily a UNIX{{img1.png?31x18|$^{(tm)}$}}.
@ -33,14 +33,14 @@ Anyway, I say that if an operating system behaves like unix, then it's a unix, t
Another opinion, which I don't share, is that Unix is a particular product. HP/UX is another. AIX is another. Gnu/Linux is another. You get the idea.
Fine, except that there is no product simply called ``Unix'' for sale today. You can't even point at a product that is the direct descendant of the original Unix that Ritchie &amp; Thompson wrote at AT&amp;T. Their Unix was //the// definitive Unix, the original, the one named Unix. You can't buy it today, methinks. And many of those that you can obtain today shared code with the original Unix. BSD is Unix as modified by students at the University of California in Berkeley. That's where sockets were invented. BSD branched into many implementations, several of which are alive &amp; well today. Theoretically, each of those implementations has at least some of the original Unix code in them. Yet somehow BSD isn't a unix? Get real. I'm sure there are similar examples of cross-pollination between the other unix operating systems available today.
Fine, except that there is no product simply called ``Unix'' for sale today. You can't even point at a product that is the direct descendant of the original Unix that Ritchie & Thompson wrote at AT&T. Their Unix was //the// definitive Unix, the original, the one named Unix. You can't buy it today, methinks. And many of those that you can obtain today shared code with the original Unix. BSD is Unix as modified by students at the University of California in Berkeley. That's where sockets were invented. BSD branched into many implementations, several of which are alive & well today. Theoretically, each of those implementations has at least some of the original Unix code in them. Yet somehow BSD isn't a unix? Get real. I'm sure there are similar examples of cross-pollination between the other unix operating systems available today.
Another problem with the claim that BSD, Gnu/Linux, &amp; the others are not unix is that it takes little effort to write a program that runs on all of them. There are enough differences that a non-trivial program requires a little care to be portable, but it's not like portability concerns affect the architecture of your program. All in all, it is easy to port code between HP/UX, AIX, Gnu/Linux, &amp; the BSDs. This isn't an accident. Those products are implementations of a single idea of what an operating system should be. That idea needs a name so that when you ask me what kind of operating system I program for a living, I don't have to reply with ``I'm an HP/UX, Gnu/Linux, AIX, FreeBSD, NetBSD, OpenBSD, QNX, &amp; others programmer''. I say the name for that concept is ``unix''. If not, then it's POSIX, but POSIX is also a trademarked term with a certification schedule from The Open Group (together with IEEE).
Another problem with the claim that BSD, Gnu/Linux, & the others are not unix is that it takes little effort to write a program that runs on all of them. There are enough differences that a non-trivial program requires a little care to be portable, but it's not like portability concerns affect the architecture of your program. All in all, it is easy to port code between HP/UX, AIX, Gnu/Linux, & the BSDs. This isn't an accident. Those products are implementations of a single idea of what an operating system should be. That idea needs a name so that when you ask me what kind of operating system I program for a living, I don't have to reply with ``I'm an HP/UX, Gnu/Linux, AIX, FreeBSD, NetBSD, OpenBSD, QNX, & others programmer''. I say the name for that concept is ``unix''. If not, then it's POSIX, but POSIX is also a trademarked term with a certification schedule from The Open Group (together with IEEE).
So somewhat out of contempt for our legal system's petty concerns for terminology, I say it's all ``unix''. There you have it, in more detail &amp; controversy than anyone with a sense of perspective would ever want.
So somewhat out of contempt for our legal system's petty concerns for terminology, I say it's all ``unix''. There you have it, in more detail & controversy than anyone with a sense of perspective would ever want.
----
[[node5.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node3.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node5.html|4. Some Basic Commands]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node3.html|2. Introduction]]   ** [[node1.html|Contents]]**
[[node5.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node3.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node5.html|4. Some Basic Commands]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node3.html|2. Introduction]]   ** [[node1.html|Contents]]**
Gene Michael Stover 2005-07-07

@ -1,4 +1,4 @@
[[node6.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node4.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node6.html|5. Learning More]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node4.html|3. What is Unix?]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
[[node6.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node4.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node6.html|5. Learning More]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node4.html|3. What is Unix?]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
* [[#SECTION00510000000000000000|4.1 The Command Line Shell]]
* [[#SECTION00520000000000000000|4.2 Listing Files]]
@ -10,7 +10,7 @@
* [[#SECTION00553000000000000000|4.5.3 My Own E-mail]]\\
* [[#SECTION00560000000000000000|4.6 Viewing Files]]
* [[#SECTION00570000000000000000|4.7 Surf the Web]]
* [[#SECTION00580000000000000000|4.8 Upload &amp; Download]]
* [[#SECTION00580000000000000000|4.8 Upload & Download]]
* [[#SECTION00581000000000000000|4.8.1 FTP]]
* [[#SECTION00582000000000000000|4.8.2 scp]]
* [[#SECTION00583000000000000000|4.8.3 rcp]]
@ -25,13 +25,13 @@
When you login to a unix system, you'll be on a command line. It'll have a prompt like ``"$"'' or ``"bash-2.04$ "'' or maybe ``"%"''. There are other variations.
The command line is how you communicate with the //shell//. The shell is a program that reads commands from a command line &amp; runs other programs. It does some other things, but they are mostly details. The main point of a shell is to run programs.
The command line is how you communicate with the //shell//. The shell is a program that reads commands from a command line & runs other programs. It does some other things, but they are mostly details. The main point of a shell is to run programs.
The traditional, original shell on unix is called the Bourne shell. If you're wondering why it's called the Bourne shell, ask yourself who might have written it.
The Bourne shell program is named "/bin/sh", but that program on most modern unices is actually a pointer to the Korn shell or the Born Again shell. Those two shells are more modern than the Bourne shell, but they are backward compatible with it.
There are other shells, including C shell ("/bin/csh") &amp; the restricted shell. You can change your shell on many unices with the "chsh" command. Since a shell is just a program, no magic behind it, you can use damned near any program you want as your shell. You could use Perl as your shell, I've used clisp as a shell (just for an experiment), or you could write your own shell.
There are other shells, including C shell ("/bin/csh") & the restricted shell. You can change your shell on many unices with the "chsh" command. Since a shell is just a program, no magic behind it, you can use damned near any program you want as your shell. You could use Perl as your shell, I've used clisp as a shell (just for an experiment), or you could write your own shell.
The important thing about a shell is that most of the things you type to it are interpreted as requests to run a program. If you type ``"ls"'', you're asking your shell to run a program called //ls//. If you type ``"bogie -k lap -f lap woo woo -d hickie"'', you're asking it to run a program called //bogie// with all that other crap as //command line arguments//.
@ -64,7 +64,7 @@ If you want //ls// to print the details about the files, give it the ``"-l"'' op
-rw-rw---- 1 gene gene 658 Dec 6 14:47 unx.toc
bash-2.04$
The first column, which has all those minus signs, //r//s, &amp; //w//s, shows the [[http://www.dartmouth.edu/~rc/help/faq/permissions.html|file permissions]]. The next column is the number of links to the file.[[footnode.html#foot89|<sup>4.1</sup>]] The next column is the user who owns the file. The next is the group of the file. Then there's the number of bytes in the file. Then the date the file was modified. Then the file's name.
The first column, which has all those minus signs, //r//s, & //w//s, shows the [[http://www.dartmouth.edu/~rc/help/faq/permissions.html|file permissions]]. The next column is the number of links to the file.[[footnode.html#foot89|<sup>4.1</sup>]] The next column is the user who owns the file. The next is the group of the file. Then there's the number of bytes in the file. Then the date the file was modified. Then the file's name.
Here's an exercise: Type ``"echo *"'' on the command line, like this:
@ -117,17 +117,17 @@ The //vi// commands might not make much sense at first, but notice that you can
Some programs besides //vi// which use the //vi// cursor-movement commands include:
* the mail reader called [[node5.html#mutt|mutt]], but just the //j// &amp; //k// keys in its menus
* "/usr/games/worm", an old game &amp; an excellent way to learn the //vi// commands
* the mail reader called [[node5.html#mutt|mutt]], but just the //j// & //k// keys in its menus
* "/usr/games/worm", an old game & an excellent way to learn the //vi// commands
* VIPER, a //vi//-emulator for [[node5.html#editors|emacs]]
====== 4.5 E-mail ======
Most unix systems give you multiple options for how to read your e-mail.
If you want to read your e-mail with a text-only program you run from the command line (which is how I read e-mail), some common programs are //mutt// and //pine//. Just type the name of either of those programs. If you see a list of e-mail, it means the program is available, &amp; you are running it. If you see an error message that says ``command not found'', it means your shell couldn't find it, maybe because it's not available on your unix.
If you want to read your e-mail with a text-only program you run from the command line (which is how I read e-mail), some common programs are //mutt// and //pine//. Just type the name of either of those programs. If you see a list of e-mail, it means the program is available, & you are running it. If you see an error message that says ``command not found'', it means your shell couldn't find it, maybe because it's not available on your unix.
You can figure out the basics of //mutt// or //pine// just by using them. People become almost religiously devoted to their favorite e-mail programs, so you can learn more detailed or subtle ways of using a mail program by asking someone who prefers that program. People are usually happy to tell you more than you want to know about how to use their favorite e-mail program. So pick one of them, figure out the basics on your own, &amp; then go find a long-time user of that program &amp; strike up a conversation about it with him.
You can figure out the basics of //mutt// or //pine// just by using them. People become almost religiously devoted to their favorite e-mail programs, so you can learn more detailed or subtle ways of using a mail program by asking someone who prefers that program. People are usually happy to tell you more than you want to know about how to use their favorite e-mail program. So pick one of them, figure out the basics on your own, & then go find a long-time user of that program & strike up a conversation about it with him.
I've never used //pine//, so I can't tell you how. I sometimes use //mutt//, so here is some super-quick info on using //mutt//.
@ -135,41 +135,41 @@ I've never used //pine//, so I can't tell you how. I sometimes use //mutt//, so
The official documentation about //mutt// is at http://www.mutt.org/.
When you run //mutt//, you'll see a list of e-mail messages. Each line on your screen will show a subject, a date, &amp; who sent the message.
When you run //mutt//, you'll see a list of e-mail messages. Each line on your screen will show a subject, a date, & who sent the message.
One of the messages will be selected. To view the selected message, type the Return, Enter, or Space-bar key (I can't remember which). You'll see the body of the message.
When you are viewing the body of a message, type the Space bar to page down. When you come to the end of the message, type the Space bar to view the next unread message. If there are no more unread messages, you'll see the list of messages again.
When you are viewing the body of a message, you can type ``"q"'' to quit that view &amp; return to the list of messages.
When you are viewing the body of a message, you can type ``"q"'' to quit that view & return to the list of messages.
In the list of messages, the ``"j"'' key moves the cursor down &amp; selects that message. The ``"k"'' key moves the cursor up &amp; selects that message. The ``"q"'' key exits //mutt//.
In the list of messages, the ``"j"'' key moves the cursor down & selects that message. The ``"k"'' key moves the cursor up & selects that message. The ``"q"'' key exits //mutt//.
===== 4.5.2 Graphical E-mail Readers =====
If you want to read your e-mail with a graphical e-mail reader, maybe the one in your web browser, you'll need a more elaborate setup. You'll need to instruct your mail client to use your unix account for sending &amp; receiving messages. It sends messages via the Simple Mail Transport Protocol (SMTP). It downloads messages that you receive via the Post Office Protocol version 3 (POP3). Of course, the unix system where you have your account must be configured to allow these operations. You'll need to refer to the documentation for that computer system to do all this, but it can be done if the unix system allows it.
If you want to read your e-mail with a graphical e-mail reader, maybe the one in your web browser, you'll need a more elaborate setup. You'll need to instruct your mail client to use your unix account for sending & receiving messages. It sends messages via the Simple Mail Transport Protocol (SMTP). It downloads messages that you receive via the Post Office Protocol version 3 (POP3). Of course, the unix system where you have your account must be configured to allow these operations. You'll need to refer to the documentation for that computer system to do all this, but it can be done if the unix system allows it.
===== 4.5.3 My Own E-mail =====
For the record, I usually use the //rmail// mode in Gnu Emacs for reading &amp; sending e-mail.
For the record, I usually use the //rmail// mode in Gnu Emacs for reading & sending e-mail.
====== 4.6 Viewing Files ======
If you have a file you want to read, use the //less// program to read it. For example, if the file is called "README" &amp; is in your current directory, type ``"less README"''. If that gets you a ``command not found'' error, try ``"more README"''.
If you have a file you want to read, use the //less// program to read it. For example, if the file is called "README" & is in your current directory, type ``"less README"''. If that gets you a ``command not found'' error, try ``"more README"''.
You'll see the first part of the file on your screen. (If it's a really short file, you'll see all of it on your screen.) To see the next screen-full, type the Space bar. To see the previous screen-full, type the ``"b"'' key. To quit viewing the file &amp; return to the command line, type the ``"q"'' key.
You'll see the first part of the file on your screen. (If it's a really short file, you'll see all of it on your screen.) To see the next screen-full, type the Space bar. To see the previous screen-full, type the ``"b"'' key. To quit viewing the file & return to the command line, type the ``"q"'' key.
====== 4.7 Surf the Web ======
A good web browser to use on a text-only command line is //lynx//. You can give it an URL to read on the command line, like this: ``"lynx http://lisp-p.org/"'' or ``"lynx http://google.com/"''. Use the Space bar to page down, the ``"b"'' key to page up, the arrow keys to select hyperlinks, &amp; the Return or Enter key to follow a hyperlink. Use the ``"q"'' key to quit.
A good web browser to use on a text-only command line is //lynx//. You can give it an URL to read on the command line, like this: ``"lynx http://lisp-p.org/"'' or ``"lynx http://google.com/"''. Use the Space bar to page down, the ``"b"'' key to page up, the arrow keys to select hyperlinks, & the Return or Enter key to follow a hyperlink. Use the ``"q"'' key to quit.
Unless the unix system where you have an account is very trusting, you probably cannot run a graphical web browser on it. Technically it can be done using the graphical system called X (which is common on unices), setting permissions with the //xhost// program, &amp; setting your DISPLAY environment variable, but it usually is not allowed on a public access unix.
Unless the unix system where you have an account is very trusting, you probably cannot run a graphical web browser on it. Technically it can be done using the graphical system called X (which is common on unices), setting permissions with the //xhost// program, & setting your DISPLAY environment variable, but it usually is not allowed on a public access unix.
====== 4.8 Upload &amp; Download ======
====== 4.8 Upload & Download ======
===== \\ 4.8.1 FTP =====
To transfer files between your home computer &amp; a remote unix, use the program called //ftp//. Your home computer almost certainly has a copy, even if you run Microthought Winders at home.
To transfer files between your home computer & a remote unix, use the program called //ftp//. Your home computer almost certainly has a copy, even if you run Microthought Winders at home.
To run //ftp//, first go to a command line. Then type ``"ftp ftp.freeshell.org"'' to connect to the FTP server at SDF.
@ -193,7 +193,7 @@ For example, if I want to copy "myfile.cpio.bz2" on my computer into the "tmp" d
Run ``"man scp"'' to get more information about using //scp//.
In my experience, //scp// takes longer than //ftp// to transfer files, &amp; it gives up easily. If either computer or the network is slow, //scp// gives up quickly. So I prefer //ftp//.
In my experience, //scp// takes longer than //ftp// to transfer files, & it gives up easily. If either computer or the network is slow, //scp// gives up quickly. So I prefer //ftp//.
Ed Chang has told me that there is an implementation of //scp// for Microthought Winders called WinSCP, at http://winscp.sourceforge.net/eng/about.php. I haven't tried it myself, but it sounds like it might be pretty good.
@ -213,9 +213,9 @@ If you don't have FTP on your home computer, you can transfer files via e-mail.
First, make sure you have an e-mail account that allows you to send files as attachments. You might use the e-mail account that your ISP supplied with your Internet connection, or you might create a Web e-mail account on Yahoo!, Hotmail, or any of the many other systems that provide free Web e-mail accounts.
To transfer a file from your home computer to SDF, you create an e-mail message on your e-mail account that is //not// on SDF. Attach the file; with a Web e-mail account, it'll allow you to upload the file into the e-ail message. Then send the message. Give it a minute to arrive, then login to your account on SDF. Receive the message with an e-mail program which knows how to deal with attached files. Mutt &amp; pine both know about attachments. Use that e-mail program to save the attachment to a file.
To transfer a file from your home computer to SDF, you create an e-mail message on your e-mail account that is //not// on SDF. Attach the file; with a Web e-mail account, it'll allow you to upload the file into the e-ail message. Then send the message. Give it a minute to arrive, then login to your account on SDF. Receive the message with an e-mail program which knows how to deal with attached files. Mutt & pine both know about attachments. Use that e-mail program to save the attachment to a file.
To transfer a file from SDF to your home computer through e-mail, login to SDF &amp; send the file to your non-SDF account as an attachment to an e-mail message. Then receive the message on your non-SDF e-mail account &amp; save the file to your home computer's file system.
To transfer a file from SDF to your home computer through e-mail, login to SDF & send the file to your non-SDF account as an attachment to an e-mail message. Then receive the message on your non-SDF e-mail account & save the file to your home computer's file system.
====== \\ 4.9 Editing Files ======
@ -223,12 +223,12 @@ There are two great religions in the modern world: //emacs// and //vi//.
The two most popular file editors on unix are //emacs// and //vi//.
//Emacs// is more properly called Gnu Emacs because emacs is a way of programming file editors, &amp; Gnu Emacs is just one editor written in that way. I believe Gnu Emacs was the first big production product of Gnu. Richard Stallman wrote it himself. It is a Lisp with screen-handling functions built-in. It's a great big powerful editor, an operating environment, &amp; I love it. To try emacs, type ``"emacs"'', wait for the screen to update, then type the Escape key, the "x" key, then ``"info"'', then press Return. Carefully read &amp; follow the instructions you see on the screen. It's kind of difficult to learn emacs from the start, but once you do, it's great.
//Emacs// is more properly called Gnu Emacs because emacs is a way of programming file editors, & Gnu Emacs is just one editor written in that way. I believe Gnu Emacs was the first big production product of Gnu. Richard Stallman wrote it himself. It is a Lisp with screen-handling functions built-in. It's a great big powerful editor, an operating environment, & I love it. To try emacs, type ``"emacs"'', wait for the screen to update, then type the Escape key, the "x" key, then ``"info"'', then press Return. Carefully read & follow the instructions you see on the screen. It's kind of difficult to learn emacs from the start, but once you do, it's great.
The other popular editor on unix is //vi//. I don't use vi much. Two web sites that discuss it are [[http://www.eng.hawaii.edu/Tutor/vi.html|Mastering the VI editor]] at the Department of Engineering at the university of Hawaii, and the [[http://www.thomer.com/vi/vi.html|Vi Lovers Home Page]].
----
[[node6.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node4.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node6.html|5. Learning More]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node4.html|3. What is Unix?]]   ** [[node1.html|Contents]]**
[[node6.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node4.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node6.html|5. Learning More]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node4.html|3. What is Unix?]]   ** [[node1.html|Contents]]**
Gene Michael Stover 2005-07-07

@ -1,4 +1,4 @@
[[node7.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node5.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node7.html|6. Super Dimension Fortress]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node5.html|4. Some Basic Commands]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
[[node7.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node5.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node7.html|6. Super Dimension Fortress]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node5.html|4. Some Basic Commands]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
* [[#SECTION00610000000000000000|5.1 The Man]]
* [[#SECTION00611000000000000000|5.1.1 The man is for real]]\\
@ -16,17 +16,17 @@ Most of a unix system is documented in the online manual, called the //man//. If
The man also has a simple search capability. The ``"-k"'' command line option tells the man to give you a list of entries that mention a particular keyword, which you also supply on the command line. If you want to get a list of the manual entries that menion networking, you would type ``"man -k network"''.
The man is divided into sections. If you don't specify a section when you ask the man to lookup documentation for a program, the man takes a guess about what section you mean, &amp; it usually assumes you mean the most general, high-level section available (section 1). You can specify a section as the second argument to //man//, before the keyword. For example, if I want to read about the "select" function in section 2 (the kernel API), I would type ``"man 2 select"''.
The man is divided into sections. If you don't specify a section when you ask the man to lookup documentation for a program, the man takes a guess about what section you mean, & it usually assumes you mean the most general, high-level section available (section 1). You can specify a section as the second argument to //man//, before the keyword. For example, if I want to read about the "select" function in section 2 (the kernel API), I would type ``"man 2 select"''.
Here are some things I recommend reading in the man to get started with unix. I give you the exact command to type, then an explanation of why I recommend that entry in the man.
**man man**This tells you how to use the online manual. **man 1 intro**This tells you about the general section of the online manual. You should also try ``"man 2 intro"'' &amp; all the other intros for sections 3 through 9. **man mutt**Tells you how to use //mutt//, the e-mail reader. **man pine**Tells you how to use //pine//, the e-mail reader. **man sh**Tells you how to use &amp; program the shell. **man 4 tcp**Tells you how to program TCP sockets. I suggest it here as an example of the breadth of information that's available in the online manual.
**man man**This tells you how to use the online manual. **man 1 intro**This tells you about the general section of the online manual. You should also try ``"man 2 intro"'' & all the other intros for sections 3 through 9. **man mutt**Tells you how to use //mutt//, the e-mail reader. **man pine**Tells you how to use //pine//, the e-mail reader. **man sh**Tells you how to use & program the shell. **man 4 tcp**Tells you how to program TCP sockets. I suggest it here as an example of the breadth of information that's available in the online manual.
===== 5.1.1 The man is for real =====
I tell newbies about the man all the time, but they usually don't try it.
I don't know why they don't believe me. I started using unix in college in 1985. In a class, the professor gave everyone an account &amp; told us to login after class &amp; type ``"man man"''. He didn't tell us anything else, not even what ``man man'' would do. By exploring the manual on my own time for a couple of evenings, plus a couple of conversations with the unix gurus that worked in the lab, I was pretty good with unix. It was an excellent way to start using &amp; programming unix.
I don't know why they don't believe me. I started using unix in college in 1985. In a class, the professor gave everyone an account & told us to login after class & type ``"man man"''. He didn't tell us anything else, not even what ``man man'' would do. By exploring the manual on my own time for a couple of evenings, plus a couple of conversations with the unix gurus that worked in the lab, I was pretty good with unix. It was an excellent way to start using & programming unix.
Maybe the newbies do believe me, but they're lazy.
@ -34,11 +34,11 @@ Maybe the newbies do believe me, but they're lazy.
Besides the unix //man//, Gnu/Linux computers usually have some information in a hypertext system call //info//.
To use //info// from the command line, just type ``"info"''. If you are a Gnu Emacs user, you can run emacs &amp; type Meta-x "info", &amp; you'll be presented with the same data in the same format that //info// would.
To use //info// from the command line, just type ``"info"''. If you are a Gnu Emacs user, you can run emacs & type Meta-x "info", & you'll be presented with the same data in the same format that //info// would.
//Info// is an interactive hypertext system. It predates the Web by at least five years, methinks. Read &amp; follow the instructions on the screen &amp; you'll be alright.
//Info// is an interactive hypertext system. It predates the Web by at least five years, methinks. Read & follow the instructions on the screen & you'll be alright.
//Info// systems are not always maintained as well as the man, but most are pretty good, &amp; some have a lot of excellent information. It is often well-written, too. It's an enjoyable read, &amp; since you can page through the entire system one screen-full at a time by typing the Space bar, it's convenient to read.
//Info// systems are not always maintained as well as the man, but most are pretty good, & some have a lot of excellent information. It is often well-written, too. It's an enjoyable read, & since you can page through the entire system one screen-full at a time by typing the Space bar, it's convenient to read.
Though it's not for beginning users, I'll mention here that one of my favorite sections in //info// is the documentation for Autoconf.
@ -46,20 +46,20 @@ Though it's not for beginning users, I'll mention here that one of my favorite s
I can't recommend any books on using unix. I learned it so long ago that I don't remember what books I used, or even if I used any books. Here are some interesting books about unix, though not exactly about //using// unix.
I like Mike Gancarz's book, //The Unix Philosophy//, a lot. It talks about the reasons behind writing applications the unix way: with small programs piped together, &amp; with flat, plain text data files. I have heard that Eric Raymond's book, //The Art of UNIX Programming//, is similar &amp; also good, but I haven't read it myself.[[footnode.html#foot277|<sup>5.1</sup>]]
I like Mike Gancarz's book, //The Unix Philosophy//, a lot. It talks about the reasons behind writing applications the unix way: with small programs piped together, & with flat, plain text data files. I have heard that Eric Raymond's book, //The Art of UNIX Programming//, is similar & also good, but I haven't read it myself.[[footnode.html#foot277|<sup>5.1</sup>]]
Even though we're talking about using unix, I think an understanding of how operating systems work is useful to know, &amp; Andrew S. Tanenbaum's //Modern Operating Systems// is an excellent book. It includes a good section about unix. He points out that the defining characteristic about early unix was its 40 system calls. We've added more system calls, but the unix kernel still has a fairly small number of elegant, well-chosen system calls. That's an important part of what makes unix what it is.
Even though we're talking about using unix, I think an understanding of how operating systems work is useful to know, & Andrew S. Tanenbaum's //Modern Operating Systems// is an excellent book. It includes a good section about unix. He points out that the defining characteristic about early unix was its 40 system calls. We've added more system calls, but the unix kernel still has a fairly small number of elegant, well-chosen system calls. That's an important part of what makes unix what it is.
====== 5.4 Folklore ======
One of the cool things about unix is that it has played an intimate part in the folklore of computing since the late 1970s. There are all sorts of interesting tales &amp; personalities to explain or help you remember why something was done a particular way. The history is not hidden inside a corporation. It's out in the open, &amp; lots of people know it.
One of the cool things about unix is that it has played an intimate part in the folklore of computing since the late 1970s. There are all sorts of interesting tales & personalities to explain or help you remember why something was done a particular way. The history is not hidden inside a corporation. It's out in the open, & lots of people know it.
That's also one of the bad things about unix because it means you need to talk to people to learn what you need to learn next. Hopefully people will write downt he folklore &amp; also link to it so that new unix users &amp; programmers can find it.
That's also one of the bad things about unix because it means you need to talk to people to learn what you need to learn next. Hopefully people will write downt he folklore & also link to it so that new unix users & programmers can find it.
You can learn the folklore by talking (or typing) to an experienced unix user or programmer. A good place to read about it online is [[http://catb.org/~esr/jargon/html/|The Jargon File]].
----
[[node7.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node5.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node7.html|6. Super Dimension Fortress]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node5.html|4. Some Basic Commands]]   ** [[node1.html|Contents]]**
[[node7.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node5.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node7.html|6. Super Dimension Fortress]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node5.html|4. Some Basic Commands]]   ** [[node1.html|Contents]]**
Gene Michael Stover 2005-07-07

@ -1,4 +1,4 @@
[[node8.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node6.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node8.html|7. Programming]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node6.html|5. Learning More]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
[[node8.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node6.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node8.html|7. Programming]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node6.html|5. Learning More]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
* [[#SECTION00710000000000000000|6.1 Getting Information on SDF]]
* [[#SECTION00720000000000000000|6.2 COM Mode]]
@ -12,7 +12,7 @@
====== 6. Super Dimension Fortress ======
Here is some quick reference information about using [[http://sdf.lonestar.org/|Super Dimension Fortress]] (SDF). I'm not a member of SDF's staff, so the information here is not definitive. If you find a discrepancy between what I say &amp; how things actually work on SDF, it's an error in what I've said, not in how SDF behaves.
Here is some quick reference information about using [[http://sdf.lonestar.org/|Super Dimension Fortress]] (SDF). I'm not a member of SDF's staff, so the information here is not definitive. If you find a discrepancy between what I say & how things actually work on SDF, it's an error in what I've said, not in how SDF behaves.
====== 6.1 Getting Information on SDF ======
@ -37,22 +37,22 @@ The //help// command mostly gives you lists of other commands. If you type ``"he
For a list of basic UNIX commands, type 'unix'
to remove your account, type 'delme'
Most of the letters in the menu will give you lists of commands. After you quit the //help// program with ``"q"'', you could run the commands or read more about them in the online manual I discussed earlier. Some of the programs are specific to SDF &amp; are not discussed in the man. SDF's excellent //com// program is an example of a program that is not discussed in the man.
Most of the letters in the menu will give you lists of commands. After you quit the //help// program with ``"q"'', you could run the commands or read more about them in the online manual I discussed earlier. Some of the programs are specific to SDF & are not discussed in the man. SDF's excellent //com// program is an example of a program that is not discussed in the man.
To me, the //faq// program is more useful. In it, you can find short explanations of unix file permissions, uploading &amp; downloading, SDF's policies, &amp; the history of SDF.
To me, the //faq// program is more useful. In it, you can find short explanations of unix file permissions, uploading & downloading, SDF's policies, & the history of SDF.
To enter the faq, type ``"faq"'' on the command line, &amp; the //faq// program gives you a list of sections. This is faq's main menu. You can exit by typing ``"q"'' here. If you type ``"g"'', it will ask you for the name of a section. You enter a section name &amp; press return, &amp; you'll see the section's menu.
To enter the faq, type ``"faq"'' on the command line, & the //faq// program gives you a list of sections. This is faq's main menu. You can exit by typing ``"q"'' here. If you type ``"g"'', it will ask you for the name of a section. You enter a section name & press return, & you'll see the section's menu.
In a section's menu, you have a numbered list of questions or topics. If you type ``"g"'', &amp; press return, you'll see main menu again. If you type ``"t"'', you'll be prompted for the number of a question or topic. Type that &amp; press return. You should type the number exactly as it appears in the menu, including leading zeros.
In a section's menu, you have a numbered list of questions or topics. If you type ``"g"'', & press return, you'll see main menu again. If you type ``"t"'', you'll be prompted for the number of a question or topic. Type that & press return. You should type the number exactly as it appears in the menu, including leading zeros.
Some things you can learn from the //faq// include:
* SDF's policies (&amp; prices, methinks)
* SDF's policies (& prices, methinks)
* brief history of unix
====== \\ 6.2 COM Mode ======
SDF has its own chat system, called "com". It's like a stripped-down IRC, but much cooler than IRC because people actually talk, &amp; you don't get unwanted pop-up download files &amp; you don't have tons &amp; tons of bots waiting to download ``warez''. Anyway, "com" is like IRC except that "com" is cool.
SDF has its own chat system, called "com". It's like a stripped-down IRC, but much cooler than IRC because people actually talk, & you don't get unwanted pop-up download files & you don't have tons & tons of bots waiting to download ``warez''. Anyway, "com" is like IRC except that "com" is cool.
To use com, type ``"com"'' on the command line. You'll be plopped into the lobby, which is the default room.
@ -67,26 +67,26 @@ Table [[node7.html#tab-com-commands|6.1]] shows the most frequently needed "com
\\
Also, from COM Mode, you can compete with others in games of Nethack, Netris, &amp; some others. If you can master the ``h'' command in COM, it will show you the commands for playing these games.
Also, from COM Mode, you can compete with others in games of Nethack, Netris, & some others. If you can master the ``h'' command in COM, it will show you the commands for playing these games.
===== \\ 6.2.1 COM Commands Discussion =====
The "com" commands are //hot//. By that, I mean that you type a command character, &amp; "com" immediately takes action. You must be careful to type only the command character you intend. If you type other characters along with the character you intend, one of those other characters might be interpreted as a command, &amp; the character you intend will be interpreted as an argument to that command. It might sound like I'm being pedantic, but people who are new to "com" often have this problem.
The "com" commands are //hot//. By that, I mean that you type a command character, & "com" immediately takes action. You must be careful to type only the command character you intend. If you type other characters along with the character you intend, one of those other characters might be interpreted as a command, & the character you intend will be interpreted as an argument to that command. It might sound like I'm being pedantic, but people who are new to "com" often have this problem.
Table [[node7.html#tab-proper-com|6.2]] shows the proper sequence of steps for entering a command in "com". It assumes you are already running "com" &amp; that you are not currently processing any "com" commands. You are just reading the text in the room.
Table [[node7.html#tab-proper-com|6.2]] shows the proper sequence of steps for entering a command in "com". It assumes you are already running "com" & that you are not currently processing any "com" commands. You are just reading the text in the room.
\\
**Table 6.2:** The proper &amp; detailed sequence of events for executing a command in "com"
**Table 6.2:** The proper & detailed sequence of events for executing a command in "com"
| {{img3.png?537x684|\begin{table}\begin{enumerate} \item Put both hands in your lap so that neither ... ...the command key you intended, you did it incorrectly. \end{enumerate}\end{table}}} |
\\
Step number 4 in Table [[node7.html#tab-proper-com|6.2]] is critically important &amp; deserves further discussion. In step number 4, you touch (or ``type'') the command key. You do not touch (or type) any other keys on your keyboard or on any other keyboard. You don't need to ``enter'' the command by typing the Return or Enter key on your keyboard; "com" will acknowledge your command key immediately.[[footnode.html#foot488|<sup>6.1</sup>]]
Step number 4 in Table [[node7.html#tab-proper-com|6.2]] is critically important & deserves further discussion. In step number 4, you touch (or ``type'') the command key. You do not touch (or type) any other keys on your keyboard or on any other keyboard. You don't need to ``enter'' the command by typing the Return or Enter key on your keyboard; "com" will acknowledge your command key immediately.[[footnode.html#foot488|<sup>6.1</sup>]]
A common error for new users is to type the Return (or Enter) key after they type the command key. "Com" executes the command key fine, then it notices the Return key. Return is a command, so "com" executes it. The Return command gets you a prompt so that you may enter text that you ``say'' for other people to ``hear'' in the room. Because of the Return key, "com" is not interpreting the new user's keystrokes as commands.
Then the new user tries to type another command, such as the ``q'' (quit) command, but "com" interprets it as text to say into the room. The new user is under the impression that he needs to end commands with Return, so he does that, which causes "com" to print ``q'' into the room for everyone to see. The new user is confused about why his command doesn't execute, so he types ``h'' &amp; Return again. The ``h'' is interpreted as a command &amp; gets him a menu, but the Return is also interpreted as a command &amp; puts him into enter-a-line-of-text mode. He sees the ``q'' command in the menu, types it &amp; Return, &amp; the cycle repeats.
Then the new user tries to type another command, such as the ``q'' (quit) command, but "com" interprets it as text to say into the room. The new user is under the impression that he needs to end commands with Return, so he does that, which causes "com" to print ``q'' into the room for everyone to see. The new user is confused about why his command doesn't execute, so he types ``h'' & Return again. The ``h'' is interpreted as a command & gets him a menu, but the Return is also interpreted as a command & puts him into enter-a-line-of-text mode. He sees the ``q'' command in the menu, types it & Return, & the cycle repeats.
All of this discussion may seem silly to most people, but a lot of new users have amazingly huge amounts of trouble when they learn to enter a command into "com".[[footnode.html#foot489|<sup>6.2</sup>]]
@ -95,24 +95,24 @@ All of this discussion may seem silly to most people, but a lot of new users hav
Let's walk a new user named //newbie// through his first session in "com".
- Newbie starts on the unix command line.
- Newbie enters COM Mode by typing ``"com"'' &amp; pressing the Return key.
- Newbie might have to wait a few seconds, but she eventually sees "com" start. (I think new users see a menu of the "com" commands &amp; have to answer Yes that they have read &amp; understood the menu.) After "com" starts, Newbie will be in the //lobby// &amp; will see a list of the people in that room. (The lobby is the default room &amp; is where most of the chatting happens.)
- Newbie wants to say hello to everyone, so she types the Space Bar &amp; waits until she sees a ``"[newbie]"'' prompt. Then Newbie types ``Hi all. I'm new.'' &amp; then types the Return key.
- Newbie enters COM Mode by typing ``"com"'' & pressing the Return key.
- Newbie might have to wait a few seconds, but she eventually sees "com" start. (I think new users see a menu of the "com" commands & have to answer Yes that they have read & understood the menu.) After "com" starts, Newbie will be in the //lobby// & will see a list of the people in that room. (The lobby is the default room & is where most of the chatting happens.)
- Newbie wants to say hello to everyone, so she types the Space Bar & waits until she sees a ``"[newbie]"'' prompt. Then Newbie types ``Hi all. I'm new.'' & then types the Return key.
- Everyone in the room will see ``"[newbie] Hi all. I'm new."''.
- //Newbie is doing well so far, but now let's have her make a mistake.//
- Newbie wants to leave "com", but she can't remember the command, so she types ``h'' to get a menu &amp; pressed Return. //This was a mistake. Newbie should have typed ``h'' alone &amp; not pressed Return.//
- //"Com" sees Newbie's ``h'' command &amp; prints the help menu. That's good, but "com" also sees Newbies Return &amp; assumes Newbie wants to ``say'' a line of text into the room. So "com" prints a ``"[newbie]"'' prompt &amp; waits for Newbie to type some text, but Newbie is busy reading the help menu &amp; doesn't notice the prompt.//
- Newbie sees the ``q'' (quit) command on the help menu &amp; types ``q'' &amp; then Return. //This is a double mistake. "Com" thinks Newbie is typing a line of text to say into the room, so her ``q'' is not interpreted as a command. Also, Newbie is still under the incorrect belief that she must end "com" commands with a Return.//
- Newbie wants to leave "com", but she can't remember the command, so she types ``h'' to get a menu & pressed Return. //This was a mistake. Newbie should have typed ``h'' alone & not pressed Return.//
- //"Com" sees Newbie's ``h'' command & prints the help menu. That's good, but "com" also sees Newbies Return & assumes Newbie wants to ``say'' a line of text into the room. So "com" prints a ``"[newbie]"'' prompt & waits for Newbie to type some text, but Newbie is busy reading the help menu & doesn't notice the prompt.//
- Newbie sees the ``q'' (quit) command on the help menu & types ``q'' & then Return. //This is a double mistake. "Com" thinks Newbie is typing a line of text to say into the room, so her ``q'' is not interpreted as a command. Also, Newbie is still under the incorrect belief that she must end "com" commands with a Return.//
- Because of Newbie's mistake in the previous step, "com" prints ``"[newbie] q"'' into the room.
- Newbie is confused that her ``q'' command didn't work, so she types ``h'' &amp; Return. This takes her back to step 7. She'll repeat this who knows how many times. Other people in the lobby will notice her problem &amp; try to help, but Newbie has to go through the error many times before she stops typing Return after her commands.The problem is compounded by "com"'s modality &amp; Newbie's failure to realize that "com" is modal. Sometimes, "com" is waiting for Newbie to type a command. Some commands are single key. (The ``q'' &amp; ``h'' commands are examples.) Other commands wait for Newbie to type something, &amp; during that time, "com" does not interpret her keystrokes as commands. (The Space Bar and Return commands, both of which are for saying text into the room, are examples.)The other people in the room see what Newbie is going through, but there isn't much they can do because they can't see Newbie's screen &amp; help her figure out whether "com" is waiting for her to type a command or waiting for her to type text. What's more, whenever they say something like ``Type //h// by itself'', Newbie types an ``h'' &amp; then a Return. So Newbie keeps going around &amp; around.
- Eventually, Newbie figures it out while "com" is waiting for her to type a command. At this time, Newbie types ``q'' (&amp; does not type any other characters at all).
- Newbie might have to wait a few seconds, but she eventually sees "com" print an ``Unlinking tty'' message, &amp; then Newbie is dropped back into her unix command line.
- Newbie is confused that her ``q'' command didn't work, so she types ``h'' & Return. This takes her back to step 7. She'll repeat this who knows how many times. Other people in the lobby will notice her problem & try to help, but Newbie has to go through the error many times before she stops typing Return after her commands.The problem is compounded by "com"'s modality & Newbie's failure to realize that "com" is modal. Sometimes, "com" is waiting for Newbie to type a command. Some commands are single key. (The ``q'' & ``h'' commands are examples.) Other commands wait for Newbie to type something, & during that time, "com" does not interpret her keystrokes as commands. (The Space Bar and Return commands, both of which are for saying text into the room, are examples.)The other people in the room see what Newbie is going through, but there isn't much they can do because they can't see Newbie's screen & help her figure out whether "com" is waiting for her to type a command or waiting for her to type text. What's more, whenever they say something like ``Type //h// by itself'', Newbie types an ``h'' & then a Return. So Newbie keeps going around & around.
- Eventually, Newbie figures it out while "com" is waiting for her to type a command. At this time, Newbie types ``q'' (& does not type any other characters at all).
- Newbie might have to wait a few seconds, but she eventually sees "com" print an ``Unlinking tty'' message, & then Newbie is dropped back into her unix command line.
===== 6.2.3 What to Do if You Are Caught in the Newbie Loop =====
The problem is that "com" is modal &amp; new users sometimes fail to realize that.
The problem is that "com" is modal & new users sometimes fail to realize that.
What does it mean for a program to be **modal**? It means that sometimes, "com" is waiting for you to type a command, &amp; sometimes it is waiting for you to type arguments to a command. Some commands are single key. (The ``q'' &amp; ``h'' commands are examples.) Other commands wait for you to type something, &amp; during that time, "com" does not interpret her keystrokes as commands. (The Space Bar and Return commands, both of which are for saying text into the room, are examples.)
What does it mean for a program to be **modal**? It means that sometimes, "com" is waiting for you to type a command, & sometimes it is waiting for you to type arguments to a command. Some commands are single key. (The ``q'' & ``h'' commands are examples.) Other commands wait for you to type something, & during that time, "com" does not interpret her keystrokes as commands. (The Space Bar and Return commands, both of which are for saying text into the room, are examples.)
If you find yourself in the "Com" Newbie loop, here's how to get out of it. Follow the exact steps from Table [[node7.html#tab-exit-newbie-loop|6.3]]. Type only what it says to type. Do not type anything else. Do not type Return unless a step in the table says to type Return.
@ -125,21 +125,21 @@ If you find yourself in the "Com" Newbie loop, here's how to get out of it. Foll
Here's why the steps in Table [[node7.html#tab-exit-newbie-loop|6.3]] work:
- If "com" is waiting for you to type a command, then you could type the command anyway, but you type Space, which gets you a prompt ("com" isn't interpreting commands). Then you type Return, which ends that prompt. So now "com" is waiting for a command again. So the Space Bar &amp; Return sequence was unnecessary, but it did not harm. (People in the room won't even see it because if you try to ``say'' an empty line, "com" doesn't print anything.)
- If "com" has prompted you &amp; is not interpreting your commands, the Space Bar won't do anything useful, but the Return key will end that prompt. If you had mistakenly typed Return earlier &amp; "com" was waiting for you to say something into the room, the Space Bar will do nothing, but the Return will end that mode, &amp; "com" will now wait for you to type a command.. (If you had typed things before the Space Bar, you will ``say'' them into the room.)
- If "com" is waiting for you to type a command, then you could type the command anyway, but you type Space, which gets you a prompt ("com" isn't interpreting commands). Then you type Return, which ends that prompt. So now "com" is waiting for a command again. So the Space Bar & Return sequence was unnecessary, but it did not harm. (People in the room won't even see it because if you try to ``say'' an empty line, "com" doesn't print anything.)
- If "com" has prompted you & is not interpreting your commands, the Space Bar won't do anything useful, but the Return key will end that prompt. If you had mistakenly typed Return earlier & "com" was waiting for you to say something into the room, the Space Bar will do nothing, but the Return will end that mode, & "com" will now wait for you to type a command.. (If you had typed things before the Space Bar, you will ``say'' them into the room.)
===== 6.2.4 COM History =====
I have heard that early versions of COM Mode were fairly simple shell scripts that ran //tail// on a common file. Excellently unixly elegant. COM Mode is in about version 6 now, &amp; it works across a bunch of computers networked at SDF, so I don't know if it's still just some shell scripts.
I have heard that early versions of COM Mode were fairly simple shell scripts that ran //tail// on a common file. Excellently unixly elegant. COM Mode is in about version 6 now, & it works across a bunch of computers networked at SDF, so I don't know if it's still just some shell scripts.
====== 6.3 Bulletin Board ======
If you type ``"bboard"'', you'll enter the bulletin board. Its commands resemble those of the //faq//:
**g**Prompts you for a section name, which you type. Then takes you to that section. **t**From a section's menu, prompts you for a message number (which you must enter exactly, including leading zeros). Then it prints the message &amp; all replies to your screen. **q**Quits the bulletin board.
**g**Prompts you for a section name, which you type. Then takes you to that section. **t**From a section's menu, prompts you for a message number (which you must enter exactly, including leading zeros). Then it prints the message & all replies to your screen. **q**Quits the bulletin board.
----
[[node8.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node6.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node8.html|7. Programming]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node6.html|5. Learning More]]   ** [[node1.html|Contents]]**
[[node8.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node6.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node8.html|7. Programming]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node6.html|5. Learning More]]   ** [[node1.html|Contents]]**
Gene Michael Stover 2005-07-07

@ -1,4 +1,4 @@
[[node9.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node7.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node9.html|8. Hacking]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node7.html|6. Super Dimension Fortress]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
[[node9.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node7.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node9.html|8. Hacking]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node7.html|6. Super Dimension Fortress]]   ** [[node1.html|Contents]]**\\ \\ **Subsections**]]
* [[#SECTION00810000000000000000|7.1 Language]]
* [[#SECTION00820000000000000000|7.2 Languages on SDF]]
@ -8,23 +8,23 @@
====== 7. Programming ======
So you want to learn to program? Good. Programming is fun, creative, &amp; fascinating. (It used to be a well-paying career, too. I guess it still is, if you are in India or China.)
So you want to learn to program? Good. Programming is fun, creative, & fascinating. (It used to be a well-paying career, too. I guess it still is, if you are in India or China.)
====== 7.1 Language ======
There are billions &amp; billions of programming languages. Well, not that many, but there's a damned lot.
There are billions & billions of programming languages. Well, not that many, but there's a damned lot.
You'll probably want to learn one of the most popular ones, which is too bad because most of the currently popular languages aren't very good. They are complex versions of the exact same features that have been available in programming languages since the 1960s. That's right: Even after forty years of hyped, new languages, we've effectively come full-circle to Algol 1960.
But I'm a bitter &amp; opinionated old programmer, so ignore what I just wrote. Here's some actually useful information:
But I'm a bitter & opinionated old programmer, so ignore what I just wrote. Here's some actually useful information:
You can use just about any language you want on unix. At the moment, it might be difficult to find a fully functioning C# compiler for unix, but one is coming, &amp; there is no technical reason that C# won't work on unix. Many other programming languages are available for unix. Heck, many were developed //on// unix. So you can pick pretty much whichever you want.
You can use just about any language you want on unix. At the moment, it might be difficult to find a fully functioning C# compiler for unix, but one is coming, & there is no technical reason that C# won't work on unix. Many other programming languages are available for unix. Heck, many were developed //on// unix. So you can pick pretty much whichever you want.
No matter what you pick, I highly recommend that you also do some plain, vanilla C. That's because the programming language of unix is C. When you need to write some programs to experiment with some feature of unix to learn the details of how it works before you use it in a larger program you are writing, the best language for writing those experimental programs is C because it hides the least from you. It's not that C is better, &amp; I'm not saying it's better for writing applications. I mean that because unix's API is for C, C is the best language for discovering how unix's system calls work. C doesn't hide anything from you.
No matter what you pick, I highly recommend that you also do some plain, vanilla C. That's because the programming language of unix is C. When you need to write some programs to experiment with some feature of unix to learn the details of how it works before you use it in a larger program you are writing, the best language for writing those experimental programs is C because it hides the least from you. It's not that C is better, & I'm not saying it's better for writing applications. I mean that because unix's API is for C, C is the best language for discovering how unix's system calls work. C doesn't hide anything from you.
There are two books you need to do serious C programming.
The first is the original &amp; the classic //The C Programming Language//, by Kernighan &amp; Ritchie ([[[node11.html#kandr|aDMR88]]]). Yeah, it's old &amp; small, but since when is information bad just because it's old? And since when would you rather take days to read a humongous tome that contained no more information than in a small book like K&amp;R?
The first is the original & the classic //The C Programming Language//, by Kernighan & Ritchie ([[[node11.html#kandr|aDMR88]]]). Yeah, it's old & small, but since when is information bad just because it's old? And since when would you rather take days to read a humongous tome that contained no more information than in a small book like K&R?
The second book you need for C programming is //The Standard C Library//, by P. J. Plauger ([[[node11.html#plauger:library|Pla92]]]).
@ -44,10 +44,10 @@ To learn a language, I recommend studying at least one book, not just online sou
====== 7.3 Theory ======
Obtain, read, &amp; understand a book about data structures. Learn it &amp; learn to love it. Data structures separates the scripters from the programmers.
Obtain, read, & understand a book about data structures. Learn it & learn to love it. Data structures separates the scripters from the programmers.
----
[[node9.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node7.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node9.html|8. Hacking]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node7.html|6. Super Dimension Fortress]]   ** [[node1.html|Contents]]**
[[node9.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node7.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node9.html|8. Hacking]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node7.html|6. Super Dimension Fortress]]   ** [[node1.html|Contents]]**
Gene Michael Stover 2005-07-07

@ -1,4 +1,4 @@
[[node10.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node8.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node10.html|9. Meta]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node8.html|7. Programming]]   ** [[node1.html|Contents]]**\\ \\
[[node10.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node8.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node10.html|9. Meta]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node8.html|7. Programming]]   ** [[node1.html|Contents]]**\\ \\
====== 8. Hacking ======
@ -7,11 +7,11 @@ So you want to hack? To break into computers? Take them over? Get root access? C
Aim high, but I have some advice. Those activities aren't [[http://catb.org/~esr/jargon/html/H/hack.html|hacking]]. Those activities are part of [[http://catb.org/~esr/jargon/html/C/cracking.html|cracking]]. For more information about the meaning of //hack//, you might read two other chapters from The Jargon File:
* [[http://catb.org/~esr/jargon/html/meaning-of-hack.html|The Meaning of 'Hack']] and
* [[http://catb.org/~esr/jargon/html/crackers.html|Crackers, Phreaks, &amp; Lamers]].
* [[http://catb.org/~esr/jargon/html/crackers.html|Crackers, Phreaks, & Lamers]].
You might find some people in COM Mode who would like to talk about these things, but most of them are really tired of kiddies coming into the lobby &amp; asking ``Do any of you know how to hack?'' So you'll need to be more subtle. It's like real life; you don't walk into a room, interrupt the current conversation, &amp; loudly ask if anyone will sell you nose candy. It's just rude.
You might find some people in COM Mode who would like to talk about these things, but most of them are really tired of kiddies coming into the lobby & asking ``Do any of you know how to hack?'' So you'll need to be more subtle. It's like real life; you don't walk into a room, interrupt the current conversation, & loudly ask if anyone will sell you nose candy. It's just rude.
Information about security holes is pretty easy to find without help. Just use Google to search for things like ``computer security virus hole exploit''. What you need is the knowledge to make use of that information. You need to learn straightforward programming techniques, especially networking[[footnode.html#foot493|<sup>8.1</sup>]], before you can make use of all that security information that is readily available. So instead of asking people to teach you to crack, it might be more worthwhile &amp; fun to talk programming with people.
Information about security holes is pretty easy to find without help. Just use Google to search for things like ``computer security virus hole exploit''. What you need is the knowledge to make use of that information. You need to learn straightforward programming techniques, especially networking[[footnode.html#foot493|<sup>8.1</sup>]], before you can make use of all that security information that is readily available. So instead of asking people to teach you to crack, it might be more worthwhile & fun to talk programming with people.
While we're on the topic, I guess I can throw out a bone. Take a look at ``CIFS: Common Insecurities Fail Scrutiny'' ([[[node11.html#hobbit:cifs|Hob77]]]).
@ -19,7 +19,7 @@ Also, be aware that most of the protocols in use on the Internet are defined in
Why do you care about the RFCs? Because to find a hole in some protocol, you need to know the actual protocol, not just heresay that people slip to you in a chat room. To know the protocol, you need to refer to its definitive source. For most protocols on the Internet, that's the RFCs.
For example, let's say you wanted to research holes in Internet multicast. You could go to either of those RFC databases &amp; search for ``multicast''. You conclude that any of these RFCs were worth your time
For example, let's say you wanted to research holes in Internet multicast. You could go to either of those RFC databases & search for ``multicast''. You conclude that any of these RFCs were worth your time
| **id** | **title** | **author** | **data** |
| RFC1112 | Host extensions ofr IP multicasting | S.E. Deering | 1 Aug 1989 |
@ -30,6 +30,6 @@ That's just an example. By the way, if none of those title make you at least a l
----
[[node10.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node8.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node10.html|9. Meta]] ** Up:** [[unx.html|Introduction to Unix &amp;]] ** Previous:** [[node8.html|7. Programming]]   ** [[node1.html|Contents]]**
[[node10.html| {{../img/latex2html/next.png?37x24|next}}]] [[unx.html| {{../img/latex2html/up.png?26x24|up}}]] [[node8.html| {{../img/latex2html/prev.png?63x24|previous}}]] [[node1.html| {{../img/latex2html/contents.png?65x24|contents}}]] [[../|{{../img/latex2html/root.png|root}} ]]\\ ** Next:** [[node10.html|9. Meta]] ** Up:** [[unx.html|Introduction to Unix &]] ** Previous:** [[node8.html|7. Programming]]   ** [[node1.html|Contents]]**
Gene Michael Stover 2005-07-07

@ -43,7 +43,7 @@ With the above examples you'll probably notice that the UID:GID values for the p
**ex.5)** mount /puffsmnt to ~local_user/puffy with local_user:users permissions:
First, we find who's who on local system (note: UID/GID are fields 3 &amp; 4):
First, we find who's who on local system (note: UID/GID are fields 3 & 4):
ls -dnl /puffsmnt
drwxr-xr-x 42 012345 550 512 Aug 31 2011 puffsmnt

@ -74,14 +74,14 @@ For those of you who, like me, find it beneficial to work with books in addition
=== Friendly Introduction ===
* Head First HTML with CSS &amp; XHTML Elisabeth Freeman &amp; Eric Freeman, O'Reilly &amp; Associates
* Head First HTML with CSS & XHTML Elisabeth Freeman & Eric Freeman, O'Reilly & Associates
=== References ===
* HTML: The Definitive Guide Chuck Musciano &amp; Bill Kennedy, O'Reilly &amp; Associates
* Cascading Style Sheets: The Definitive Guide Eric A. Meyer, O'Reilly &amp; Associates
* Javascript: The Definitive Guide David Flanagan, O'Reilly &amp; Associates
* Web Design in a Nutshell: A Desktop Quick Reference Jennifer Niederst Robbins, O'Reilly &amp; Associates
* HTML: The Definitive Guide Chuck Musciano & Bill Kennedy, O'Reilly & Associates
* Cascading Style Sheets: The Definitive Guide Eric A. Meyer, O'Reilly & Associates
* Javascript: The Definitive Guide David Flanagan, O'Reilly & Associates
* Web Design in a Nutshell: A Desktop Quick Reference Jennifer Niederst Robbins, O'Reilly & Associates
----

@ -6,7 +6,7 @@
The SDF Minecraft server is available for the sandboxing pleasure of all SDF members and their guests. SDF members are encouraged to invite and add as many of their friends as they'd like to join in and play on the SDF Minecraft server.
===== News &amp; Announcements =====
===== News & Announcements =====
==== Sep. 12, 2017 — Overdue Update ====

@ -3,7 +3,7 @@
Much of this was pulled from [[http://jwodder.freeshell.org/sdf/commands.html|jwodder's reference]], he deserves a huge thanks for putting this list together.
^ Informative Commands ^^
| address | prints out an address &amp; paypal information for sending money to SDF; used by some other commands |
| address | prints out an address & paypal information for sending money to SDF; used by some other commands |
| arpa | prints out information about the ARPA membership level |
| bbs | gives information about purchasing a BBS documentary DVD set from SDF; seems to be a bit outdated |
| commands | prints out a list of basic Unix commands; also available as "unix" |
@ -29,12 +29,12 @@ Much of this was pulled from [[http://jwodder.freeshell.org/sdf/commands.html|jw
| unix | same as commands |
| vhost | prints out information about the VHOST membership |
| vpn | prints out information about the VPN membership |
^ Inter-User Communication &amp; Social Networking ^^
^ Inter-User Communication & Social Networking ^^
| bboard | bulletin board system for SDF |
| com (a.k.a. commode) | inter-user chat system for SDF |
| guestbook | sign or view the guestbook |
| happening | submit an anonymous journal entry or view a random entry |
| helpdesk | request help from &amp; give help to other SDF users |
| helpdesk | request help from & give help to other SDF users |
| mesg | send messages to other users |
| notes | leave urgent notes for other users |
| profiles | set up a profile for viewing by other SDF users |
@ -42,21 +42,21 @@ Much of this was pulled from [[http://jwodder.freeshell.org/sdf/commands.html|jw
| addlink | publish your website; invoked by mkhomepg |
| bksp | set your backspace key |
| greylist | toggle greylisting for your e-mail address(es) (VPM membership required) |
| maint | change your password, shell, &amp; contact information |
| maint | change your password, shell, & contact information |
| mdns | assign a domain name to a dynamic IP address (MetaARPA membership required); also available as "udns" |
| metaarray | For MetaARPA members. Will first generate a random login password for your MetaArray account followed by a random database password sent via local e-mail if you have a DBA membership. If you ever forget your MetaArray password or your MetaArray MySQL password, this will reset it. |
| mkcron | set up &amp; manage cronjobs (MetaARPA membership required) |
| mkcron | set up & manage cronjobs (MetaARPA membership required) |
| mkfinger | control what information to display for finger requests from remote hosts |
| mkgopher | set up a gopherspace on SDF |
| mkhomepg | set up a website on SDF |
| mkvhost | create &amp; maintain DNS and/or VHOST membership features |
| mkvhost | create & maintain DNS and/or VHOST membership features |
| mkvpm | manage virtual POP3 mailboxes (VPM membership required) |
| motd | manage MOTD membership |
| mypasswd | change your MySQL password. |
| phlog | list (or delist) your Gopher blog on SDF's registry of phlogs |
| reset-mysql | resets your MySQL password and sends you a new one via local mail. |
| setdialup | manage DIALUP membership |
| setgrp | add &amp; remove users to &amp; from your personal group (MetaARPA membership required) |
| setgrp | add & remove users to & from your personal group (MetaARPA membership required) |
| setvmail | toggle e-mail addresses at various SDF domains (MetaARPA membership required) |
| setvpn | configure your PPTP VPN login on SDF (VPN membership required) |
| startsql | set up a MySQL database (DBA membership required) |
@ -65,8 +65,8 @@ Much of this was pulled from [[http://jwodder.freeshell.org/sdf/commands.html|jw
| vpmclear | clear out a virtual POP3 mailbox (VPM membership required) |
^ Account Information ^^
| disk | display filesystem usage for your home directory, mail spool, gopherspace, &amp; webspace |
| domains | list the SDF domains available to you for webhosting &amp; e-mail addresses |
| disk | display filesystem usage for your home directory, mail spool, gopherspace, & webspace |
| domains | list the SDF domains available to you for webhosting & e-mail addresses |
| dues | give details on your membership dues |
| expire | show how long until your account expires (pre-validated users only) |
| vpmstat | display information about your virtual POP3 mailboxes (VPM membership required) |
@ -74,11 +74,11 @@ Much of this was pulled from [[http://jwodder.freeshell.org/sdf/commands.html|jw
| webquota | show web transfer quotas for your website |
^ User Information ^^
| online | prints the amount of time that the given user (or yourself, if none is given) has spent logged in today; does not work correctly |
| sentry | prints notices of logins &amp; logouts on the system |
| uinfo | print the date &amp; time when the given user joined SDF &amp; the various membership levels |
| sentry | prints notices of logins & logouts on the system |
| uinfo | print the date & time when the given user joined SDF & the various membership levels |
| url | print the URL at which the given SDF user's website is located |
^ Gallery Commands ^^
| artgallery | add photography &amp; artwork to the SDF art gallery |
| artgallery | add photography & artwork to the SDF art gallery |
| astrogallery | add astronomical photographs to the astro gallery |
| deskshots | add a picture of your computer desktop to the deskshots gallery |
| patches | add pictures of SDF 20^th anniversary patches to the patches gallery |