What's Your Command Line Judo?
lousyd asks: "We all have our CLI amor. That two- or three-letter command that fiddles our heartstrings. 'mv' is pedestrian, but 'mmv' is so cool. 'cp' can lug bits around all day to no applause, but 'cpio' will excite even the most jaded of command line linguists. 'How perfect!' you exclaim. So what's your poison? What turns you on? What little known command performs just the right function for you?"
foad works every time.
Trolling is a art,
My favourites are
lh ls -lt !* | head -15
which shows me the newest 15 stories in the current or specified directory
hog "ps -eo pcpu,vsz,args,time | sort -rn | head -11"
which shown the 10 most cpu-intensive processes
Daily News http://newsblaze.com
Command line judo? Sheesh! Where to start?
Okay, the tool I'm using now: vim, derivative of Bill Joy's vi, with color syntax and a bounty of enhancements. (Yes, I prepare my comments in vi, then cut and paste, don't even try to make me use some GUI text widget editor and claim it can be productive.)
And then there's:
find mystring *.*
and literally got back:
mystring found in *.*, and then a listing of all the lines found. No reference to the files they were in... Shit, after all, I asked to find the lines in '*.*'.
I complained. They showed me their (Microsoft's purchased from IBM) unix, "xenix", and their "grep" command. Ahhhhh, better. I typed: grep -i mystring *.*
and it replied "unknown option -i". I complained about not having an "ignore case" option. They looked at me like I was crazy... "Why would you ever want to ignore case?"
I could go on, and probably will in some subsequent posts. When you have so many well written, well evolved, well crafted, and well behaved tools all flying in
pbcopy and pbpaste
perl
Cut that out, or I will ship you to Norilsk in a box.
I found this little php script called "cp.php" which I renamed pcp and use for mundane cp whenever I'm in a tty and hafta do lotsa copying. It gives lotsa info about progress of copying and such, which I really like compared to the rather spartan cp function. It may be somewhat superfluous, but it's nice eye candy in a bash, and nice for moving lotsa big files.
Someone with more Google skills than I might be able to find it online. I got it from sourceforge originally, but it doesn't seem to show up in their search any more (not that anything usually does =/ )
When you're afraid to download music illegally in your own home, then the terrorists have won!
I was on a special project, tucked away in a secret office in Seattle. We were creating a workbench of sorts using one of the very first PC networks in our company (it was 1986). Five of us created hundreds of files and thousands of lines of code and balanced version control ad hoc and on-the-fly. The project was a success.
One day though, I'd transferred an image of our work from one machine to another. When I "ls'ed", oooops, I mean "dir'ed" the directory structures on the two machines they did not match. WTF? Hey wait, DOS has a diff command! Phew!
I dir'ed the tree structures of the two mismatched machines into machine1.dir and machine2.dir and issued the command: c:> diff machine1.dir machine2.dir
and the system replied: files are different . Wow! Strong stuff. I found a way to get the two files to a unix box and used a real diff command. Sigh.
I don't know how much information your script gives, but cp -g gives you a progress bar, transfer rate, completion percentage and other stuff when a transfer is going to take more than a few seconds (similar to what scp gives you). It's sometimes a handy feature to have, sounds like what your script is doing...
-ReK
md5sum -c reality.md5
reality: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
Every person I see using linux clears the screen by typing CLS. The key combo "CTRL + L" is so much sexier.
Hacker Media
rm -r -f /mnt/windows/*
I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
I'm not much of a linux guru, so my favorite is simple.
skill
s-kill, basically, kills a process by name. "skill netscape" will kill netscape, no finding proc ID required. It's what kill should have been from the beginning.
The only command I love more than skill is apt-get, but that doesn't really count.
The ______ Agenda
What little-known command performs just the right function for me?
strip, of course.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
'jkmehof' always get the job done.
I never figured out a way to use 'ls' to show only directories (and not their subcontents), so I created an alias called 'lsd':
.bash_profile
alias lsd='\ls -l | grep "drwx"'
and placed it in my
It's quite useful, but it doesn't work well with shell scripts.
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
I tried mv... renaming a whole bunch of files... nah gwan. So rename came and rescued me. But you know what really presses my keys? #] startx. Yeeah baby!
emacs, whose shell mode and keyboard macros have totally replaced the crude shell-or-worse scripts that one writes and debugs to perform repetitive daily tasks.
First, I must comment the article. Question goes What little known command performs just the right function for you? I hope all sane people here (haha) would answer "None". There's no command that does just the right function since there's no one The Function. It depends on the situation what the function is. And in that case, per Unix philosophy, where one tool does one simple job, but does it well, you should choose the tool accordingly.
/etc to this new IP address. First you might think searching all the files under /etc with find(1), then passing the list of files to grep(1) and then manually editing the places where the old IP address was found with your $EDITOR. That's fine and will get the job done and all but what if you could just edit the files in place? With perl, you can.
/etc -type f`
:)
Enough of that. If you really must name something, then, in my opinion, there's one gizmo above others. And that is
perl
Perl one-liners is a damn powerful concept when you get it. Say one of your boxen switches IP address. You want to replace all references in files under
perl -pne's/oldip/newip/g' -i `find
and you're done (better be extra careful with commands like that for obvious reasons!). Of course you're able to do the same thing with other tools too, but I don't think it could be much easier than that. And naturally you're not just limited to simple search and replace of text, you have the full power of Perl (and CPAN!) at your disposal.
Besides being my number one choice for creating complex scripts and small applications, Perl has very special place in my command line toolbox just next to the old friends such as grep(1), cut(1), wc(1), etc. and a huge pile of pipes
Justifies nicely said paragraphs; provides lists and sigart.
Junction lets you make symlinks in Windows without installing the entire Windows Resource Kit tools. Also, CACLS.EXE for changing ACLs in Windows via the command line, since I have no fucking clue where you do this in the GUI. Some of the more usefule CLI commands in Windows, IMO. I hope this discussion wasn't limited to Unix or anything.
I find myself typing "cd 'somewhere, probably with a tab auto-completion'" followed by an immediate "ls" or "ls -l".
Next most use(d|ful) would be tar, grep, and info/man. Oh yeah, and "gv", my own symbolic link to gvim. Of course, you can't forget sudo...
'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
in bash:
;
/home/
function dusort ()
{
du -s "$@" | sort -r -n |
awk '{sum+=$1;printf("%9d %9d %s\n",sum,$1,$2)}'
}
in tcsh:
alias dusort 'du -s \!* | sort -r -n | awk '"'"'{sum+=$1;printf("%9d %9d %s\n",sum,$1,$2)}'"'"
The most common way to use those commands would be:
cd
dusort *
It's useful for tracking down what's using up your space, for example finding a sub directory deep in a source tree that isn't cleaned by make clean.
perl -pi -e "s/x/y"
ever had to make a change to every line in a test vector (up to several million lines long), but didn't have the half hour it would take to retranslate the whole thing? - has saved my ass more than anything I can think of
also fun to do something like
perl -pi -e "s/(alias \w) \'.+\'/$1 \'echo \"DFU DFU DFU\"/g ~user/.aliases
mc, anyone?
Easy utility to pick up when you're coming from a DOS/Windows background. It's how I started off, and I stuck with it. It's embedded editor is also my favorite source editor, though I still haven't gotten around to changing the syntax highlighting colors. (dark red comments on a blue background? yech..)
ls -t | head
This is nice for listing the 10 most recently modified files. Usually the one you want is the first or second one.
I can't believe nobody's mentioned rsync yet. It has to be the single best command line tool ever.
I use it to update my web site. I use it to synchronize bookmarks between multiple machines. I use it for online incremental backups. I use it to copy directory trees around from disk to disk.
I even use it to fetch my mail. Yes, I switched my mail account to Maildir by using procmail for final delivery, and now I can use rsync -avz --remove-sent-files instead of crappy POP3 or IMAP protocols to pull the mail down to a fast local server.
If I ever meet Andrew Tridgell or Paul Mackerras, they definitely deserve a beer or three...
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
I like installing packages from tarballs so I wrote a neat little utility to help me automate the process. It's a line parser for command files coupled with a mini database. All written in BASH. It's about 15k.
fast as fast can be. you'll never catch me.
Here's something that I run via cron on a nightly basis. See if you can decode its function :-)
for F in $(find $SRCDIR); do echo $(basename $F) $F; done | sort | rev | uniq -c -f 1 | grep -E ^[[:space:]]*1[[:space:]] | awk '{print $2 " " $3}' | rev > $CACHEFILE
Multiple multiplexed ttys that stay running even after disconnect and you can reattach to them later.
If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
% cat
#!/usr/bin/sh
# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
# All Rights Reserved
# THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
# The copyright notice above does not evidence any
# actual or intended publication of such source code.
#ident "@(#)clear.sh 1.8 96/10/14 SMI"
# Copyright (c) 1987, 1988 Microsoft Corporation
# All Rights Reserved
# This Module contains Proprietary Information of Microsoft
# Corporation and should be treated as Confidential.
# clear the screen with terminfo.
# if an argument is given, print the clear string for that tty type
exit
FORMAT C:
find . -name '*.ext' |xargs grep -i bar
finds all the files having the extension 'ext' and matching the pattern 'bar'.
Expert Java EE Consulting
7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
That's the Technical Fascist's .cshrc.
t ml
http://www.gnu.org/fun/jokes/know.your.sysadmin.h
-jpeg
Try the vimv script.
It loads a script with the mv commands in vi, let's you edit it, and then runs it.
Very quick and straightforward to use.
It even aligns the second column of target names, so you can use the block commands of Vim (try ctrl-shift-v then move around) to easly mass-rename files, like keeping song names in your standard (I use "style/Artist.YYYY.Album Title/NN.Song Title.ext").
with of course! What you can't type a filename on your shell and have the most likely program you want to use it pop up? Reeks to be you!
You don't do that?
shutdown -h -now
Based on the rsync protocol, unison can maintain a bi-direction file sync. I use it to sync my personal data between home and co-lo'ed server, and work and co-lo'ed server. I can update files in any of the three locations and they'll be replicated across all three.
-buf
....fsck. Fixes kernel panics in OSX 9 times out of 10.
My other Sig is
There's millions of tricks, but if I had to a couple simple powerful techniques that anyone should learn that doesn't know them already, it would be xargs and commandline "for" loops.
.o files anywhere underneath the current directory. However, if there are too many .o files to fit on a single commandline, it will barf with "argument list too long" or some such sounding error. The xargs way to do this would be:
...
...;rcp $fn remotehost:/tmp/;done
xargs takes whatever is piped into it, and executes a command with those things as arguments. It can do it all at once, or it can break them up in chunks, or it can execute your command once per input. Consider:
rm -f `find . -name "*.o"`
This normally works fine, and will forcibly remove all
find . -name "*.o" | xargs -n 50 rm -f
Which will execute a seperate "rm -f" for each chunk of 50 filenames. Take a look at the "-i" mode as well, read the whole man page. It's a great little peice of glue.
On to for loops. You've seen them in sh/ksh/bash shellscripts like so:
for fn in *.c
do
echo Sending $fn
rcp $fn remotehost:/tmp/
done
You can of course do this straight from the commandline, which is indispensable for complex looped operations. To do it all in one line, you just have to get the semicolons in the right place. Just remember there's a semicolon before the "do", but not immediately after it:
for fn in *.c; do echo Sending $fn
11*43+456^2
Xyzzy was absolutely necessary and I used it every day from 1979 to 1984. Then I bought a Mac and my life went to hell.
]PR#6
I really like: .bash_profile file (or equivilant): .[A-Za-z]*`
du -sh *
Probably best to put this in your
alias diskusage=`du -sh * && du -sh
(I know this can be shortened with regular expressions, but I've never looked into it)
Anyway, if need be, pipe that to a "sort"-on-steroids and you can see where your disk space is getting eaten up.
From my painfully extensive man page research years ago, this seems to be the fastest way to (safely) shutdown (or restart) a Linux box:
shutdown -hn now (for halt)
shutdown -rn now (for restart)
I call this my "Express Elevator to Hell: System Goin' DOWN!" command. [Somebody wake up Hicks.]
find . -name '*.ext' -exec grep -i bar {} /dev/null \;
Liberty in your lifetime
I create aliases with a "g" suffix to grep the results and an "w" suffix to "which" the 1st argument for commands that I commonly grep or which. For tcsh, some examples are:
alias hg history \| grep \!^
alias envg env \| grep \!^
alias lsw ls -l \`which \!^\`
alias viw vim \`which \!^\`
alias llw ls -l \`which \!^\`
Another set of useful aliases to use the directory stack:
alias bk popd
alias cd pushd
alias d dirs -v
alias godir pushd +\!^
alias go pushd +\!^
And the most commonly executed alias to list the 10 most recent files in dir:
alias lst 'ls -1t \!* | head -10'
ssh is awesome. ssh -L, keys, encryption, compression. Awesome.
sort -n
grep is an amazing tool.
"su", Love to be on top. :->
Here are a couple no one has mentioned yet.
"rz" and "sz"
It's the shell equiv to receive and send via zmodem.
Works great when moving files from a terminal emulator like kermit.
"dd" is great for disk clone and backup.
"cat" is my quick output judo chop
"tar -xvzf" for dealing with sources
"cut" gotta say I've replaced a lot of sed and awk code with this simple string manipulator.
"vi" I want a vi T-shirt, how nerdy is that?
"w" gotta know whos on first, whats on...
"wget" is sweet for downloading
"lf -la" to search for hidden files. Anyone seen ".. "? {notice the space.)
"bc" for calcs
"tee" for splitting processes
"man" Since I can't fit anymore on the subject line, I'll finish with this one I'm sure everyone has used.
If you could master everything on the following man page, give yourself a pat on the back...you are one powerful tech.
"man perlre"
Need to find that file named somethingfoosomeotherthing?
g foo2
/etc/
alias ff='find . |grep -i '
>ff foo
./somedir/somethingfoo
./somedir/somethin
./somedir/somethingfoo3
Need to find that pesky configuration file for printer?
~/bin/gr:
grep -i -r $1
~/bin/fgre:
grep -i -r -l $1
>cd
>fgr laserjet
./cups/ppd/hp.ppd:*ShortNickName: "HP LaserJet Series"
Just interested which files to check?
>fgre laserjet
./cups/ppd/hp.ppd
'mc' is your gateway to a much more powerful shell. Combine your command line shell with quick changing to bookmarked dirs (ctrl+\); easy adding to that via alt+a; F2 menus that let you easily compress subdirs, or run other things from your actions file based on the mime-type or file pattern; two-panes at two different FS locations; undelete FS, FTPFS, and other meta-FS interfaces; good mouse support; built-in editor (Cool edit); prompts you for arguments for makefiles you hit enter on...
The list goes on. Midnight Commander is a shell designed to speed up all your common tasks. It has sane defaults you don't really have to change much. It'll make you more productive!
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
strace/truss/ktrace for Linux, Solaris and BSD/MacOS respectively. If a program fails to start, or terminates abnormally, this will usually give me the heads up on why (it's usually a missing file, or bad permissions) without having to break out gdb.
lsof. Useful in so many ways; for debugging situations similar to the above, as well as hardening systems and building chroot environments for specific programs.
tcpdump/snoop/tethereal/ethereal. If you can see what's really on the wire between two network applications, you can probably figure out what's going wrong. Ethereal is particularly nice.
hexdump/khexedit. If you can see what's really in the file used by an application, you can probably figure out what's going wrong. :-) khexedit also has a bonus feature of being able to perform statistical logical operations across the file; useful if you have a file which you suspect has been encrypted with some lame substitution cipher.
After those, the usual - sed, awk, grep, find. It's rare that I can't turn any problem into an awk-shaped nail. :-)
How about:
/wherever -maxdepth 1 -exec du -sm {} \; | sort -n
$ find
Replace "-sm" with "-sk" if you want kilobytes instead of megabytes. Total space consumed by the named directory appears at the bottom of the list.
Read my stuff.
If you want to copy a directory hierarchy from the local system to a remote:
tar cf - * | ssh user@system " cd ; tar xvf - "
Conversely, from remote to local:
( ssh user@system " cd ; tar cf - * " ) | ( cd ; tar xvf - )
Add a "-C" to the ssh commands for compression.
abcde, a better cd encoder. So great it's untrue. Try it, you might love it.
By summer it was all gone...now shesmovedon. --
We all have our CLI amor
No, no we don't.
My Journal
Back in school, our Pascal compiler often would dump files in the current directory with garbage filenames, with lots of special characters in 'em so you couldn't type them at the shell (or use shell expansion, either). Someone showed me a trick that I still use to this day:
ls -i
find . -inum inode -exec rm -i {} \;
The ls -i gives you the inodes for all the files in the current directory. Find the inode for the file you can't delete, then use that in the find command to actually select it and delete it with the -exec call (or rename it or whatever else you want to do with it).
I don't need it as much lately, but it's still occasionally useful. Files with a leading "-" often give me fits, for example...
I love that so many people are resonding with "perl" and then giving a sed example. Learn your roots. If you're using perl to do nothing more sophisticated than what can be done with sed, why not use sed? I don't get it.
scp -C -r * user@system:target
and
scp -C -r 'user@system:/target/*' .
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
fart !
Gabriel Ricard
Rm -Rd C:\windows or the little known Purge
IT Specialist - Nottawaseppi Huron Band of Potawatomi Indians
's all I need.
...is RoboCopy
It copies anything anywhere including security info (if needed)... locally or over the lan.
It will not copy similar files unless it is forced to do it.
It will wait for "mount", it will retry on failure.
...and it is able to make a mirror of a directory...
RoboCopy is THE best CLI utility provided by MSFT, it is a part of the Resource Kit for Win NT4 and W2K...
Another cool utility from the W2K Resource Kit is NETSVC. It is a remote NET command.
No I'm not a MSFT fanboy... I just like those two utils...
Yea, Though I compute through the user interface of the shadow of death, I shall fear no evil, for ZTree is with me.
No joke - ZTree is a character for character re-write of an old utility called XTree Gold v2.0 or 2.5 - and it is by far the most effective and influential interface between me and my data. The entire file system is but an extension of my mental processes, and I can slice and dice through the multi-dimensional (time, space, attributes, multi-layered directory structure, multi-drive architecture,) in effect creating a virtual directory within which I control the parameters driving what is listed, in what order - then copy, view, move, delete, diff (file compare), view in hex mode (and edit it in hex mode), search for text in lists of files, compare directory trees for like or different files (binary, time stamp, etc.)
It is totally CUI, about like Midnight commander but a ton better. Take time to get fluent in ZTree (UnixTree for Unix / Linux, a bit older with a few quirks, but still pretty damn good) and you will be like the guys in the Matrix sitting at their green screen terminals.
ZTree Don't leave $HOME without it.
Glonoinha the MebiByte Slayer
.. is that it leads to perl-syndrome.
Q: "How do you do X"?
perl-syndrome A: "oh, easy, I'll just spend 5 minutes whipping up a perl one-liner!"
normal A: "You use the command sed"
That's great. Now, create a directory called " " (empty space). Inside that, create a directory called " -rf " ("-rf" with an empty space on either side). Inside that, create a file named " " (yet another empty space). Now, watch in horror as find prints "./ -rf /", which it passes dutifully to "rm -f". Since xargs by default passes each word as an individual argument, that expands to:
Hope you weren't running as root! The moral of this story is to never, never! use find/xargs without the "-print0" option whenever the command you're executing is destructive. "ls" is probably OK. "rm" definitely isn't.
Dewey, what part of this looks like authorities should be involved?
I still have to love the screen program. It's one of the most useful programs I've ever seen, especially if you have to remotely connect to said system. Teminal multiplexing, ability to "detach" screens in one location and "reattach" them elsewhere (such as when you login from another physical location), allow you to splitscreen, etc. etc. Also is VERY handy if you're connecting over an unreliable connection (such as a modem) - if your connection drops, you can reconnect, do a screen -r, and you're right where you left off - the program never even stops running.
.bash_profile):
My other useful command (in my
alias cls='clear ; w -fs ; echo ; free ; echo ; df -hT ; echo'
This gives me the vital system information with one command.
Even rsync won't handle that.
... "net". Net use, net view, net stop, net start, the possibilities are virtually endless. And it's not foolproof, a fact that certainly contributes to my bias.
Some of the useful shortcuts I use a lot:
/a/very/long/directory/pathname
/a/very/long/directory/pathname
To display the size of all subdirectories in the current working directory, sorted by size:
du -sk * | sort -nr
In bash, a very useful feature is the ability to reference the last parameter of the previous command line using !$
For example:
# mkdir
# cd !$
The shell will expand the second command to:
# cd
Running subshells from within programs like vi and ftp using the ! command (e.g., !ls in ftp).
Someone else has already commented on ^r in bash to reverse search through the history.
Not Unix, but on Windows, tcpview and process explorer (both available from sysinternals) are invaluable.
I am lost here, is it just me (I haven't read allll the posts yet), but why has nobody mentioned gcc??? am I in my own little world here?
Question for ls-adjusters: How can I stop ls -l from printing a column of -rw-r--r--, which is rarely very interesting (few people spend much time dealing with files whose permissions are interestingly mixed).
I usually run "ls -log", which gives me filesize and date (that I want) but removes owner and group (which I almost never want). But I still can't take off the permissions column without something like "ls -log | cut -c 14-", which seems excessive.
The Linux Cookbook had a free release before the 2nd edition came out.
Personally, I like head. And getting tail is always fun. Of course, the classic sequence is:
unzip ; strip ; touch ; nice ; finger ; grep; mount ; fsck ; more; yes ; umount ; make clean ; sleep ; dump
...but it's limited to JP Software shells (4DOS, 4NT, 4OS2), and the authors of Linux shells don't seem interested in implementing it.
.ZIP files as potential targets.
SELECT is a command which provides a fullscreen point-and-shoot file selection interface for other commands, allowing for the easy arbitrary selection of target files (point-and-shoot) in command aliases or batch/script files. In essence, it provides a mini filemanager interface which can be used to select the targets for *any* command on the command line, used in aliases, etc.
Some simple examples (from my 4OS2 alias file) are as follows:
TCOPY=select copy (*.*) %1
TMOVE=select move (*.*) %1
TDEL=select del (*.*)
TRUN=select %1 (*.*)
TEDIT=trun fte
TLIST=trun list
UNZ=f:\unz.cmd
TUNZ=select unz (*.zip)
The filespec in parenthesis limits the files which appear in the selection list, so the TUNZ command will only show
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
tar -cf - . | (cd $destination;tar -xvf -)
tar -cf - . | ssh $user@$host "(cd $destination;tar -cvf -)"
www.wavefront-av.com
but scp and cat are probably my fav tools, i use them every day
I like DIR. It tells me what files are in a directory. That frees me from having to memorize where are the files are on my computer. That used to make me real tired and my head hurt.
Ninjas don't carry tic tacs
rm -rf /
"Just use -exec. It's slower, but easier and you don't have to fight with line-endings, spaces in the filenames, and stupid cli arg limitations."
find parameters -print0 | xargs -0 command
I use that all the time. The -print0/-0 stuff causes find and xargs to use NUL-terminated strings.
I've run into CLI length limits maybe twice in the past five years. If you do hit it, "xargs -s n", where "n" is the maximum number of characters in a command on your system, will work around it. Alias that in and you'll never have to type it again.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
"A modern Unix-like can spawn repeated processes very fast- too fast to worry about, in general."
All blanket statements are false.
I find that process-spawn overhead can still be important, especially when you're dealing with large data sets or non-trivial processing. It can mean the difference between minutes and hours of processing.
As far as your arguments about "finite learning time" go, I think you're overstating the brain drain something like "xargs" introduces. It isn't like we're learning a new programming language; I think there is room for both, here, and both are useful tools.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
POKE 33,33
What's that do? I remember the first one (PRint to card in slot 6), but don't remember that POKE.
Ahhh, PEEK and POKE. CALL. BLOAD. What fun.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.