UNIX A to Z List RFC

classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

UNIX A to Z List RFC

Chris Hettrick
Hi Misc,

I made a list of the most classical UNIX commands / utilities from section one where there is only one per letter of the english alphabet (it's for my OpenBSD obsessed five year old son :) ). I know that this subject is very personal and steeped in tradition and history, so I was looking for your opinions and suggestions.
A quick note about the list: some hard choices were made concerning letters such as c, p, m, etc. For instance, kill(1) is not included for two reasons: it is included in the shell, and it needs ps(1) to be properly used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.

This is the list:

awk
bc
cp
date
echo
find
grep
head
id
jot
ksh (as a superset of sh)
ls
more
nc
od
pwd
quota
rm
sort
tail
uniq
vi
wc
xargs
yes
zcat

Any opinions, suggestions?
Thanks!

Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Maximo Pech Jaramillo
I'm more interested in the story of how the 5yo became openbsd obsessed.

El sábado, 2 de febrero de 2013, Chris Hettrick escribió:

> Hi Misc,
>
> I made a list of the most classical UNIX commands / utilities from section
> one where there is only one per letter of the english alphabet (it's for my
> OpenBSD obsessed five year old son :) ). I know that this subject is very
> personal and steeped in tradition and history, so I was looking for your
> opinions and suggestions.
> A quick note about the list: some hard choices were made concerning
> letters such as c, p, m, etc. For instance, kill(1) is not included for two
> reasons: it is included in the shell, and it needs ps(1) to be properly
> used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX
> beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.
>
> This is the list:
>
> awk
> bc
> cp
> date
> echo
> find
> grep
> head
> id
> jot
> ksh (as a superset of sh)
> ls
> more
> nc
> od
> pwd
> quota
> rm
> sort
> tail
> uniq
> vi
> wc
> xargs
> yes
> zcat
>
> Any opinions, suggestions?
> Thanks!
>
> Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Erling Westenvik-2
On Sat, Feb 02, 2013 at 08:00:11PM -0600, Maximo Pech wrote:
> I'm more interested in the story of how the 5yo became openbsd obsessed.

Probably a multiple choise answer:

[ ] Because of OpenBSD's acclaimed user-friendliness?
[ ] Because of OpenBSD's large user base?
[ ] Like father, like son?

>
> El s?bado, 2 de febrero de 2013, Chris Hettrick escribi?:
>
> > Hi Misc,
> >
> > I made a list of the most classical UNIX commands / utilities from section
> > one where there is only one per letter of the english alphabet (it's for my
> > OpenBSD obsessed five year old son :) ). I know that this subject is very
> > personal and steeped in tradition and history, so I was looking for your
> > opinions and suggestions.
> > A quick note about the list: some hard choices were made concerning
> > letters such as c, p, m, etc. For instance, kill(1) is not included for two
> > reasons: it is included in the shell, and it needs ps(1) to be properly
> > used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX
> > beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.
> >
> > This is the list:
> >
> > awk
> > bc
> > cp
> > date
> > echo
> > find
> > grep
> > head
> > id
> > jot
> > ksh (as a superset of sh)
> > ls
> > more
> > nc
> > od
> > pwd
> > quota
> > rm
> > sort
> > tail
> > uniq
> > vi
> > wc
> > xargs
> > yes
> > zcat
> >
> > Any opinions, suggestions?
> > Thanks!
> >
> > Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Chris Hettrick
In reply to this post by Maximo Pech Jaramillo
When he was four I gave him an old apple iBook G4 laptop, wiped OSX and put on OpenBSD instead. I showed him how to log in and basic commands such as cal, man, date, cat, ls, cd, etc and I answer every question he has. If I don't know the answer, we will research the answer together and, thanks to OpenBSD's excellent man pages, we can get the answer pretty quick!
I want to give him a nice A to Z list with the classic UNIX commands for him to learn more. He is now learning some vi and doing pipes and redirection. He doesn't yet know about X, so it is all shell. Small steps, but he already knows more, and can do more, than the average windows user.
He says "Thanks for my OpenBSD!"
I am *very* proud.

Chris


On 2013-02-02, at 19:00, Maximo Pech <[hidden email]> wrote:

I'm more interested in the story of how the 5yo became openbsd obsessed.

El s�bado, 2 de febrero de 2013, Chris Hettrick escribi�:

> Hi Misc,
>
> I made a list of the most classical UNIX commands / utilities from section
> one where there is only one per letter of the english alphabet (it's for my
> OpenBSD obsessed five year old son :) ). I know that this subject is very
> personal and steeped in tradition and history, so I was looking for your
> opinions and suggestions.
> A quick note about the list: some hard choices were made concerning
> letters such as c, p, m, etc. For instance, kill(1) is not included for two
> reasons: it is included in the shell, and it needs ps(1) to be properly
> used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX
> beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.
>
> This is the list:
>
> awk
> bc
> cp
> date
> echo
> find
> grep
> head
> id
> jot
> ksh (as a superset of sh)
> ls
> more
> nc
> od
> pwd
> quota
> rm
> sort
> tail
> uniq
> vi
> wc
> xargs
> yes
> zcat
>
> Any opinions, suggestions?
> Thanks!
>
> Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Chris Hettrick
In reply to this post by Erling Westenvik-2
[*] All the above.

On 2013-02-02, at 19:23, Erling Westenvik <[hidden email]> wrote:

On Sat, Feb 02, 2013 at 08:00:11PM -0600, Maximo Pech wrote:
> I'm more interested in the story of how the 5yo became openbsd obsessed.

Probably a multiple choise answer:

[ ] Because of OpenBSD's acclaimed user-friendliness?
[ ] Because of OpenBSD's large user base?
[ ] Like father, like son?

>
> El s?bado, 2 de febrero de 2013, Chris Hettrick escribi?:
>
>> Hi Misc,
>>
>> I made a list of the most classical UNIX commands / utilities from section
>> one where there is only one per letter of the english alphabet (it's for my
>> OpenBSD obsessed five year old son :) ). I know that this subject is very
>> personal and steeped in tradition and history, so I was looking for your
>> opinions and suggestions.
>> A quick note about the list: some hard choices were made concerning
>> letters such as c, p, m, etc. For instance, kill(1) is not included for two
>> reasons: it is included in the shell, and it needs ps(1) to be properly
>> used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX
>> beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.
>>
>> This is the list:
>>
>> awk
>> bc
>> cp
>> date
>> echo
>> find
>> grep
>> head
>> id
>> jot
>> ksh (as a superset of sh)
>> ls
>> more
>> nc
>> od
>> pwd
>> quota
>> rm
>> sort
>> tail
>> uniq
>> vi
>> wc
>> xargs
>> yes
>> zcat
>>
>> Any opinions, suggestions?
>> Thanks!
>>
>> Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Elijah Buck-2
In reply to this post by Chris Hettrick
> more

I like it. I might replace more with man (documentation!) or mail
(communicating with the outside world!).

Elijah

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

m brandenberg
In reply to this post by Chris Hettrick
On Sat, 2 Feb 2013, Chris Hettrick wrote:

> This is the list:
> ...
> date

Baby-with-nail-gun version:

   dd

--
Monty Brandenberg

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Florenz Kley
In reply to this post by Chris Hettrick
On 02.02.2013, at 22:59, Chris Hettrick wrote:
> vi

oh wow :-) but isn't vi a rabbit hole in it's own right? Suggesting vmstat instead, in keeping with the "command" nature of your list

fl

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

James Griffin
In reply to this post by Chris Hettrick
--> Chris Hettrick <[hidden email]> [2013-02-02 14:59:15 -0700]:

> Hi Misc,
>
> I made a list of the most classical UNIX commands / utilities from section one where there is only one per letter of the english alphabet (it's for my OpenBSD obsessed five year old son :) ). I know that this subject is very personal and steeped in tradition and history, so I was looking for your opinions and suggestions.
> A quick note about the list: some hard choices were made concerning letters such as c, p, m, etc. For instance, kill(1) is not included for two reasons: it is included in the shell, and it needs ps(1) to be properly used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.

I think vi(1) - not vim - would be a great tool for him to learn. A real hardcore UNIX editor, will certainly come in handy.

--
Primary Key: 4096R/1D31DC38 2011-12-03
Key Fingerprint: A4B9 E875 A18C 6E11 F46D  B788 BEE6 1251 1D31 DC38

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Shoufu Luo
Yes! Agree!

Shoufu

Live, Love, Laugh

On Feb 4, 2013, at 5:27, James Griffin <[hidden email]> wrote:

> --> Chris Hettrick <[hidden email]> [2013-02-02 14:59:15 -0700]:
>
>> Hi Misc,
>>
>> I made a list of the most classical UNIX commands / utilities from section one where there is only one per letter of the english alphabet (it's for my OpenBSD obsessed five year old son :) ). I know that this subject is very personal and steeped in tradition and history, so I was looking for your opinions and suggestions.
>> A quick note about the list: some hard choices were made concerning letters such as c, p, m, etc. For instance, kill(1) is not included for two reasons: it is included in the shell, and it needs ps(1) to be properly used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.
>
> I think vi(1) - not vim - would be a great tool for him to learn. A real hardcore UNIX editor, will certainly come in handy.
>
> --
> Primary Key: 4096R/1D31DC38 2011-12-03
> Key Fingerprint: A4B9 E875 A18C 6E11 F46D  B788 BEE6 1251 1D31 DC38

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

amarendra godbole
In reply to this post by Chris Hettrick
Very interesting. As a note, my daughter around age 3, always made me reboot the laptop as she liked the white on blue scrolling (she actually clapped as the lines scrolled by). I have done it 10 to 12 times at a stretch. Her next step was to make me login and type on the keyboard randomly and get amused as it made beeping noises as well as spew something back at her (she termed it as "working" on the laptop).

Liked the list though. Thanks.

-ag

--
sent via 100% recycled electrons from my mobile command center.

On Feb 2, 2013, at 1:59 PM, Chris Hettrick <[hidden email]> wrote:

> Hi Misc,
>
> I made a list of the most classical UNIX commands / utilities from section one where there is only one per letter of the english alphabet (it's for my OpenBSD obsessed five year old son :) ). I know that this subject is very personal and steeped in tradition and history, so I was looking for your opinions and suggestions.
> A quick note about the list: some hard choices were made concerning letters such as c, p, m, etc. For instance, kill(1) is not included for two reasons: it is included in the shell, and it needs ps(1) to be properly used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.
>
> This is the list:
>
> awk
> bc
> cp
> date
> echo
> find
> grep
> head
> id
> jot
> ksh (as a superset of sh)
> ls
> more
> nc
> od
> pwd
> quota
> rm
> sort
> tail
> uniq
> vi
> wc
> xargs
> yes
> zcat
>
> Any opinions, suggestions?
> Thanks!
>
> Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

William Boshuck
In reply to this post by James Griffin
On Mon, Feb 04, 2013 at 10:27:42AM +0000, James Griffin wrote:
>
> I think vi(1) - not vim - would be a great tool for him to
> learn. A real hardcore UNIX editor,

ed(1)

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Matthias Appel
Am 04.02.2013 20:25, schrieb William Boshuck:
> On Mon, Feb 04, 2013 at 10:27:42AM +0000, James Griffin wrote:
>> I think vi(1) - not vim - would be a great tool for him to
>> learn. A real hardcore UNIX editor,
> ed(1)
>
emacs(1) would be able  to replace half of the programs on this A to Z list.

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

bofh-6
In reply to this post by Chris Hettrick
On Sat, Feb 2, 2013 at 9:49 PM, Chris Hettrick
<[hidden email]> wrote:
> When he was four I gave him an old apple iBook G4 laptop, wiped OSX and put on OpenBSD instead. I showed him how to log in and basic commands such as cal, man, date, cat, ls, cd, etc and I answer every question he has. If I don't know the answer, we will research the answer together and, thanks to OpenBSD's excellent man pages, we can get the answer pretty quick!
> I want to give him a nice A to Z list with the classic UNIX commands for him to learn more. He is now learning some vi and doing pipes and redirection. He doesn't yet know about X, so it is all shell. Small steps, but he already knows more, and can do more, than the average windows user.
> He says "Thanks for my OpenBSD!"
> I am *very* proud.

There's the "learn" - it's a bit out of date, but pretty much walks
you through most everything.  That's how I got started.  You can find
it here:
http://www.cs.bell-labs.com/who/bwk/index.html

Turn it into a port if you have time :)


--
http://www.glumbert.com/media/shift
http://www.youtube.com/watch?v=tGvHNNOLnCk
"This officer's men seem to follow him merely out of idle curiosity."
-- Sandhurst officer cadet evaluation.
"Securing an environment of Windows platforms from abuse - external or
internal - is akin to trying to install sprinklers in a fireworks
factory where smoking on the job is permitted."  -- Gene Spafford
learn french:  http://www.youtube.com/watch?v=30v_g83VHK4

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Chris Hettrick
In reply to this post by Matthias Appel
On 2013-02-04, at 13:09, Matthias Appel <[hidden email]> wrote:

Am 04.02.2013 20:25, schrieb William Boshuck:
> On Mon, Feb 04, 2013 at 10:27:42AM +0000, James Griffin wrote:
>> I think vi(1) - not vim - would be a great tool for him to
>> learn. A real hardcore UNIX editor,
> ed(1)
>
emacs(1) would be able  to replace half of the programs on this A to Z list.


Thank you all for your excellent responses! I think I will stick with vi(1) mainly because it is the only relevant V from man 1 (and is what I often use so I am more familiar with it). I don't think I want to introduce him to emacs(1) for a while. There is mg(1) as well if need be.
I do think that at(1) is more suiting than awk(1) for right now in his learning.

I forgot to mention that I want to teach him the UNIX philosophy (obviously) such as programs should do one thing and do it well; use text streams; connect the output of one program to the input of the next (pipelines); most programs are used as filters; and so on. He is already getting the hang of this, using redirection, pipes, suspending and resuming processes, etc.

@elijah thanks for the man(1) and mail(1) suggestions. I would use man(1) if it wasn't for help(1), and that he already knows it off by heart (yet again due to OpenBSD).
I kept the list sans net for the sake of simplicity, except I _had_ to keep netcat(1). We will have some fun with it. (Once he is up to speed with the basics then it will be lots of net. It's not UNIX without the net.)

Thanks again for all the help everyone!

Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

Chris Hettrick
In reply to this post by bofh-6
On 2013-02-04, at 15:33, bofh <[hidden email]> wrote:

On Sat, Feb 2, 2013 at 9:49 PM, Chris Hettrick
<[hidden email]> wrote:
> When he was four I gave him an old apple iBook G4 laptop, wiped OSX and put on OpenBSD instead. I showed him how to log in and basic commands such as cal, man, date, cat, ls, cd, etc and I answer every question he has. If I don't know the answer, we will research the answer together and, thanks to OpenBSD's excellent man pages, we can get the answer pretty quick!
> I want to give him a nice A to Z list with the classic UNIX commands for him to learn more. He is now learning some vi and doing pipes and redirection. He doesn't yet know about X, so it is all shell. Small steps, but he already knows more, and can do more, than the average windows user.
> He says "Thanks for my OpenBSD!"
> I am *very* proud.

There's the "learn" - it's a bit out of date, but pretty much walks
you through most everything.  That's how I got started.  You can find
it here:
http://www.cs.bell-labs.com/who/bwk/index.html

Turn it into a port if you have time :)


--

I will take a look at that. If I can get it to run then that will be a huge bonus.

Chris

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

russell-38
In reply to this post by Chris Hettrick
On 02/02/2013 01:59 PM, Chris Hettrick wrote:
> Hi Misc,
>
> I made a list of the most classical UNIX commands / utilities from section one where there is only one per letter of the english alphabet (it's for my OpenBSD obsessed five year old son :) ). I know that this subject is very personal and steeped in tradition and history, so I was looking for your opinions and suggestions.
> A quick note about the list: some hard choices were made concerning letters such as c, p, m, etc. For instance, kill(1) is not included for two reasons: it is included in the shell, and it needs ps(1) to be properly used (which conflicts with pwd(1) which I think is _more_ useful for a UNIX beginner). mv(1) was not included because a cp(1) and rm(1) can suffice.
>
<snip>

heh there is a fortune for that

A is for awk, which runs like a snail, and
B is for biff, which reads all your mail.
C is for cc, as hackers recall, while
D is for dd, the command that does all.
E is for emacs, which rebinds your keys, and
F is for fsck, which rebuilds your trees.
G is for grep, a clever detective, while
H is for halt, which may seem defective.
I is for indent, which rarely amuses, and
J is for join, which nobody uses.
K is for kill, which makes you the boss, while
L is for lex, which is missing from DOS.
M is for more, from which less was begot, and
N is for nice, which it really is not.
O is for od, which prints out things nice, while
P is for passwd, which reads in strings twice.
Q is for quota, a Berkeley-type fable, and
R is for ranlib, for sorting ar table.
S is for spell, which attempts to belittle, while
T is for true, which does very little.
U is for uniq, which is used after sort, and
V is for vi, which is hard to abort.
W is for whoami, which tells you your name, while
X is, well, X, of dubious fame.
Y is for yes, which makes an impression, and
Z is for zcat, which handles compression.
         -- THE ABC'S OF UNIX

which got me thinking and I came with this terrifying monstrosity

find $(echo ${PATH} | tr ':' ' ') -perm -0100 -maxdepth 1 ! -type d \
| sed -E -f basename.sed \
| awk -f tag.awk \
| sort -n -k 1,1 \
| sort -u -k 2,2 \
| awk -f display.awk

with
basename.sed:
s/.*\/([^\/]*)$/\1/

#much faster then my first attempt "| xargs -n 1 basename"

tag.awk:
{
         printf "%s %s %s\n", int(rand() * 1000), substr($0, 1, 1), $0
         }

display.awk:
{
         man_cmd = "man -f "$3" | tail -n 1"
         man_cmd | getline man_str
         printf "%s is for %s\n", $2, man_str
         }

Now, the prose is a little off, but I blame the documentation writers.
I am certain mdoc(7) has a section about the rhyming  characteristics
needed for .Nm on alternate lettered commands.

And let me just say I was quite pleased with my
"random pick one per letter group" system(the tag-sort nonsense)
First attempt was with awk associative arrays and that was getting nasty
quick.

So I just wanted to thank you for reminding me how much fun unix can be.
and I wish you and your son many hours of happy hacking togther.

Reply | Threaded
Open this post in threaded view
|

Re: UNIX A to Z List RFC

James Griffin
In reply to this post by William Boshuck
--> William Boshuck <[hidden email]> [2013-02-04 14:25:04 -0500]:

> On Mon, Feb 04, 2013 at 10:27:42AM +0000, James Griffin wrote:
> >
> > I think vi(1) - not vim - would be a great tool for him to
> > learn. A real hardcore UNIX editor,
>
> ed(1)

Yes, absolutely. There was a thread on this list recently about
bsd.rd not having vi(1) and learning ed(1) is certainly a really
useful tool to learn. It's not that hard either, if learning vi(1)
also.

--
Primary Key: 4096R/1D31DC38 2011-12-03
Key Fingerprint: A4B9 E875 A18C 6E11 F46D  B788 BEE6 1251 1D31 DC38