From: Rick Hohensee <humbubba@smarty.smart.net> To: cool@eklektix.com Subject: User-friendly unix wearing pasties Date: Sun, 27 May 2001 17:26:34 -0400 (EDT) This is a concatenation of most of the files in my Pasties directory, which together implement a cut/paste interface to common cLIeNUX tasks. This is how it was made... cat ABOUT IeNUX LIeNUX ap bp cLIeNUX cP dp ep \ fp gp hp ip jp kp lp mailer mp np op pp qp \ rp sp tp up vp wp xp yp zp > mailable You can tell exactly where many files start by the !#/.bi/sh . Rick Hohensee www.clienux.com ................................................................ ABOUT cLIeNUX Pasties These are commands that are halfway between shell command aliases and a menu-driven mouse interface in a text terminal with a mouse. Most of the Pasties just echo some example commands to the screen, which you can then cut/paste at your shell prompt. You can paste them as whole lines, in which case they will execute as presented, or you can paste them as partial lines, in which case you can edit them. This is handy for Pastie entries like... see forth where you can cut/paste "see forth" or just "forth". Some Pasties also are set up to request an argument, and may be in some cases able to allow you to paste an appropriate argument. Pasties also clump things together for you. Commands that are in clumps in a Pastie can be invoked all together, or not. ls is often provided in a clump so you can cut/paste a filename from the ls output into some following command. Some Pasties could be Pastied as big long sequences involving several entries at once, and you can snag just the appropriate part of the sequence also. You probably want to keep that in mind for your ip Pastie. "cLIeNUX" is a command. It echo's a main Pastie, and ignores what follows the "cLIeNUX". There's a lot to Pasties that is based on ignoring extra trailing text. This means you can start Pastie'ing by pasting the default cLIeNUX shell prompt into the shell. To put it another way, the cLIeNUX default shell prompt is the "widget" for the top-level Pastie. Parts of "cLIeNUX", like "LIeNUX", are also commands, like ls --color -s . Some pasting tricks should be mentioned. In console, If you cut from past the end of any line to the end of the line of text and paste it that will paste a return, i.e. an end-of-line. In other words, that's how you can "hit enter" with the mouse. If you click once on a character, including a blank from any expanse of blanks, the paste will be that character. Twice is a word, and three clicks snags a whole line. The 3-click mode is handy for many Pastie one-line items. There's next to nothing involved in personalizing Pasties, and they all include a Pastie entry to edit themselves for that reason. There are several examples of fancy shell command sequences and useful but tricky uses of commands like "find", so do browse them. You will in particular want to personalize the "ip" Pastie which is mostly about Internet connections. UNIX was designed, it seems, to leave single-charachter commands open for the individual user's personal favorites. Pasties respect this wisdom by providing examples of various useful things on two-character commands. The user is urged to customize Pasties to thier advantage, in conjunction with thier personal one-zies. Mine are pretty quirky, such as "p" for "visually edit text file" (Pico, in other words), so I don't feature them prominently. Pasties names are "cP", parts of "cLIeNUX", and ap, bp, (skip cp) dp, ep... There's a lot of 2-character possibilities; Other namespaces even, like ?m for menus that don't need the mouse. Pasties as posted are rife with cLIeNUX dependancies in addition to being "entered" from the "cLIeNUX" command sitting right there in your cLIeNUX shell prompt. Various commands are used by thier cLIeNUX names, or may only exist in cLIeNUX. Pathnames are all DSFH, such as /.bi/... instead of /bin/... In cLIeNUX Pasties reside in /.bi/Pastie, and that's in $PATH. A cp Pastie is the only pernicious name conflict, and so the Pastie in question moves over to cP. The cLIeNUX shell prompt output is harmlessly pasteable due to the ":;" prefixes, which is a variation of the stock Plan 9 (from Bell Labs) rc command interface prompt, which is pasteable to ease this powerful feedback loop, but vis-a-vis reuse of previous scrolled-up commands, rather than purpose-built Pasties. The cutoff point of cost/benefit to mouseing versus typing depends on several things; how you type, how you mouse, what you're doing, et cetera. In general, a menu interface reduces options. Sometimes that's good. Nobody always knows exactly what they're doing, and when you're in flail-about mode, assumptions, reminders, hints, examples and other fuzziness can save you eons. I ask integrators of text-based systems to use the term "pasties" for similar facilities they may implement. Rick Hohensee May 2001 :; cLIeNUX /dev/tty3 14:16:07 / :;<cursor> :; cLIeNUX /dev/tty3 14:16:07 / :;LIeNUX /dev/tty3 14:16:07 / 2.2.23-2001-04-15.tar VVT.tar help 4th.tar.gz arg_env.c incoming ABOUT arg_env.o interlaced ABOUT.Linux atlast-1.0.tar.gz k.c Cintpos base.tgz ksh.1.html Debian base2_2.tgz log GPL boot lost+found H3rL.html changed_today mounts H3sm.1.txt clive-on-bcpl.html owner HUGE coding pointertovoid K command rootTree LGPL configure source Linux dev subroutine MCPLhilites device subroutine_machine NetBSD don'ts suite PIRDE.tgz floppy temp RIGHTS gcc-core-20010326.tar.gz unifdef.1.html TODAYs guest units-1.55.tar.gz :; cLIeNUX /dev/tty3 14:16:17 / :;:; :; cLIeNUX /dev/tty3 14:16:17 / :;<cursor> ls --color ls --color #!/.bi/sh echo " ############################################################ page /ABOUT # read about ABOUT page ABOUT # read the current directory's ABOUT file, if any page /.bi/Pastie/ABOUT # read the Pastie ABOUT file edir \"*README*\" # read the current README files, if any page /GPL # read a popular copyright release document edit /.bi/Pastie/ap ########################################################### " #!/.bi/sh echo " ############################################################ browse . # browse starting at the current dir. browse / browse ~/lynx_bookmarks.html browse /.pro # roam around under the hood edit /.bi/Pastie/bp ########################################################### " ###############!/.bi/sh echo " ############################################################# #You have found the cLIeNUX command, the top-level cLIeNUX Pastie ap About stuff, like this Pastie bp Browse your world cP Copy, Configure dp Delete. There is no "undelete" in cLIeNUX ep edit : email fp find gp GUI. As if you need one with PASTIES! HA! hp Help ip Internet : IRC : Import a package jp jargon; Judge a package kp kill; Keyboard mappings and emergency mouse-only screen lp Listings, logout mp eMail, Math, mount np News # grab an EOL here ==> op open a file pp Print hardcopy, Postscript... qp quotes rp Read a textfile : reset terminal settings sp Search : system Status stuff tp Textfile manipulators, Tetris, Tree up unpack : useage vp vt switch; View something wp write xp extract # grab a blank anywhere yp yellow pages zp edit /.bi/Pastie/cLIeNUX # season to taste #!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ #[\]^_\`abcdefghijklmnopqrstuvwxyz{|}" #!/.bi/sh echo " ############################################################ edit /.bi/Pastie/cP ########################################################### " #!/.bi/sh echo " ############################################################ deleters THERE IS NO UNDELETE IN cLIeNUX! files read -p delete-- filetolose ; rm \$filetolose ls -d */ read -p CAREFUL-- dirtolose ; rm -rf \$dirtolose edit /.bi/Pastie/dp ########################################################### " #!/.bi/sh echo " ############################################################ ls read filename ; edit \$filename # simple text editor ls read filename ; ed \$filename # text processor see ed pmail -f <your mail server. EDIT ME.> edit /.bi/Pastie/ep ########################################################### " #!/.bi/sh echo " ############################################################ find / > /.hel/filelist # (re)make \"got\" database read have ; got \$have # search the above for a string read sought ; find / -name \$sought # search the whole filesystem read sought ; find . -name \$sought # search current directory find needs quotes around glob patterns to look for, so that one you'll have to type in I guess. edit /.bi/Pastie/fp ########################################################### " #!/.bi/sh echo " ############################################################ X # the X Window System, if installed. edit /.bi/Pastie/gp ########################################################### " #!/.bi/sh echo " ############################################################ help shelp # help specific to the cLIeNUX Bash shell see see read topic ; see \$topic read topic ; apropos \$topic other possible helps... <command> --help <command> -h <command> <command> any_unexpected_nonsense edit /.bi/Pastie/hp ########################################################### " #!/.bi/sh echo " ############################################################ These should all start up as is, but you'll want to edit them. Don't put passwords in here, OK? connect ifconfig netstat -a irc ppp-off telnet ftp kermit bp # cross-Pastie to \"browse\" edit /.bi/Pastie/ip ########################################################### " #!/.bi/sh echo " ############################################################ browse /.hel/jargon.html # jargon read alien ; judge \$alien # judge edit /.bi/Pastie/jp ########################################################### " #!/.bi/sh echo " ############################################################ loadkeys /.et/keyboard/defkeymap.map loadkeys /.et/keyboard/dvorak.map loadkeys /.et/keyboard/hexhead.map fonts ; gpm -k ; sleep 1 ; gpm -t ps2 ps ; read condemned ; kill \$condemned SVGATextMode #and in case you have a major keyboard problem #!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ #[\]^_\`abcdefghijklmnopqrstuvwxyz{|} edit /.bi/Pastie/lp ########################################################### " #!/.bi/sh echo " ############################################################ ls --color ls -R find . logout find / -perm +6000 > SUIDS & # scan system for SUID bits echo \"making SUIDS file in current dir\" find / -size +2000k > HUGE & # list all files over 2 meg echo \"making HUGE file in current dir\" find / -mtime 1 > TODAYs & # list all files modified in last 24 hours echo \"making TODAYs file in current dir\" edit /.bi/Pastie/lp ########################################################### " cat ABOUT IeNUX LIeNUX ap bp cLIeNUX cP dp ep \ fp gp hp ip jp kp lp mailer mp np op pp qp \ rp sp tp up vp wp xp yp zp > mailable #!/.bi/sh echo " ############################################################ pmail -f <your mailserver here> # fetch the mail mail # read your in bin mount # list filesystems mounted under / cat /.pro/mounts # surefire version of preceeding df # disc free capacity mount -a # mount everything unmount -a # unmount everything but / math calculate sc forth see awk read arithmatic ; echo \$((\$arithmatic)) add edit /.bi/Pastie/mp ########################################################### " #!/.bi/sh echo " ############################################################ slrn # slow link read usenet news read group ; browse news:\$group # web style slrn -create # initialize your local groups list # slrn needs this once. see suck # batch group grabber see slrn browse http://www.cnn.com browse http://www.slashdot.com browse http://www.usatoday.com edit /.bi/Pastie/np ########################################################### " #!/.bi/sh echo " ############################################################ \"open\" a file see suffixes ls read filename ; sniff \$filename ; ls -l \$filename ls read filename ; judge \$filename edit /.bi/Pastie/op ########################################################### " #!/.bi/sh echo " ############################################################ programming related, graded kinda see programming see sh shelp see awk see C see intro see forth see objcopy see as see ld see cpp edit /.bi/Pastie/pp ########################################################### " #!/.bi/sh echo " ############################################################ fortune edit /.bi/Pastie/qp ########################################################### " #!/.bi/sh echo " ############################################################ ls read text ; page \$text ls read binary ; binedit \$binary shelp read see read see also the cLIeNUX Ghostscript package, not in Core. edit /.bi/Pastie/rp ########################################################### " #!/.bi/sh echo " ############################################################ see scan see grep read regex ; grep -r \$regex . # text scan whole directory status read huh ; google \$huh edit /.bi/Pastie/sp ########################################################### " #!/.bi/sh echo " ############################################################ textfile manipulation utils, usually pipeable, i.e. not editors. Hard to predict what you want, so here's a help index. see paste see join see tr see pluck see exchange see dtw see snug see todos see uniq see sort see cut edit /.bi/Pastie/tp ########################################################### " #!/.bi/sh echo " ############################################################ unpackers of various types ls read tgz ; tar tzvf \$tgz # view a .tgz ls read tgz ; tar xzvf \$tgz # THEN unpack it ls read tgz ; tar xvf \$tgz # this is for .tar ls read wastar ; gzip -d \$wastar # un-gzip see suffixes see unzip edit /.bi/Pastie/up ########################################################### " #!/.bi/sh echo " ############################################################ changevt \$((1+`tty | cut -b 9-10`)) # go up a vt changevt \$((`tty | cut -b 9-10`-1)) # go down a vt or do alt&right_arrow or ctrl&alt&f# where # is vt # edit /.bi/Pastie/vp ########################################################### " #!/.bi/sh echo " ############################################################ write an email-sink, write a file read recipient ; mail \$recipient # write email to somebody. ls read text ; edit \$text # write a textfile edit /.bi/Pastie/wp ########################################################### " #!/.bi/sh echo " ############################################################ hmmmm. What's a good subject for \"x\"? edit /.bi/Pastie/xp ########################################################### " #!/.bi/sh echo " ############################################################ browse http://www.yellowpages.com edit /.bi/Pastie/yp ########################################################### " #!/.bi/sh echo " ############################################################ see zip edit /.bi/Pastie/zp ########################################################### "