Talk:List of Unix utilities

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing (Rated List-class)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 List  This article has been rated as List-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
 

Please make dynamic[edit]

This page must be dynamic with Template talk:Unix commands. JackPotte (talk) 15:30, 21 June 2009 (UTC)

Comprehensive or limited list?[edit]

This is a peculiar article. Is it supposed to be comprehensive UNIX/Linux? Should lspci be added, for example? Or is it supposed to be limited forever to whatever is in IEEE Std 1003.1-2004? -71.174.186.200 (talk) 14:47, 24 June 2009 (UTC)

Per topic description, it's not a list of GNU utilities Tedickey (talk) 21:31, 24 June 2009 (UTC)
Just IEEE Std 1003.1-2004, look at the archives (This was discussed earlier). 83.161.253.7 (talk) 18:20, 27 July 2009 (UTC)

dc (computer program)[edit]

dc (computer program) is not in the list of standard Unix utilities, per given source. Tedickey (talk) 20:58, 17 September 2009 (UTC)

Categories[edit]

The categories in the table seem not to be part of the specification. That should be noted (if the case). -- Tomdo08 (talk) 18:38, 25 October 2010 (UTC)

yes - but where? That sounds like a normal talk-page issue. TEDickey (talk) 20:31, 25 October 2010 (UTC)

which-able vs. non-which-able[edit]

For some of these commands, one can type which, e.g.

$ which ls
/bin/ls
$ which which
/usr/bin/which

But for others, there is no output:

$ which alias
$ which source
$ which export
$

I'm guessing that there is a difference:

  • which-able: executables
  • non-which-able: keywords/functionality in shell

Could somebody comment on this?

E.g. is this the same for all bash shells then, or does it depend?

Also, I haven't yet found a non-which-able command, which had a manual entry.

213.165.179.229 (talk) 11:37, 7 July 2011 (UTC)

Originally "which" was a C shell script, which could not be relied upon to list aliases in a Bourne shell implementation. Being a script, it was also unable to list aliases defined after the C shell's initialization. Korn shell defined "type", which is the same idea, but is a built-in (so it solves in effect the latter problem). (I recall running into "which" being integrated in a nominal Bourne shell, but cannot recall which one - ignoring implementations on Windows, which tend to be hybrids). TEDickey (talk) 20:21, 7 July 2011 (UTC)

In older BSD unix, "which" was a hard link to "whereis". As mentioned above, it was a separate program, therefore not part of the shell, so it could not do some of the "type" things; in fact, it can't do the things that type does near the beginning of its search sequence. It also does not look along the PATH. It was, therefore, arguably far less useful than "type". One of the very few command-line things that AT&T does better than BSD :) Old_Wombat (talk) 05:13, 8 January 2012 (UTC)

Spell??[edit]

I wrote a (fairly informative) stub for the missing spell (Unix) article, and added a link to it to the list on this article. Somebody reverted by addition, saying "rv - not topical, per description". I have no idea what he meant. The link to the spell utility is definitely missing here, and *should* be added. Spell has been part of Unix since 1975, and is listed on SUS, and is *definitely* an official Unix utility. I'm not here to pick fights, so I won't try to add it again, but please reconsider. Nyh (talk) 12:46, 7 August 2011 (UTC)

Generally "legacy" in this context suggests that someone would like to withdraw the item, noting that it is of limited usefulness in current environments. Perhaps adding a column to the table to reflect this attribute would improve the topic. TEDickey (talk) 12:49, 7 August 2011 (UTC)
While I was frank about the obsolescence of spell in spell (Unix), it doesn't mean it no longer exists. It does exist, and even my very recent installation of Fedora 15 includes a "spell" command which does what the original "spell" tool did (although it is implemented using aspell, not McIlroy's original code). Moreover, as far as I know, in Unix (in contrast with Linux distributions), "spell" has never been superseded by anything else - as far as I remember, "ispell" (let alone its successors) was never a part of commercial Unix. Again, I'm not trying to claim that "spell" is a great and useful application. It is just as archaic as "od" or "asa" or "compress" or "delta" (wow, I haven't used SCCS in almost 20 years), or "ed" (25 years ago, I knew the last person who actually used this editor ;-)), or (yikes!) "uucp". But why keep all that crap on the list, and leave out just "spell"? Nyh (talk) 13:07, 7 August 2011 (UTC)
The given source would identify the "legacy" items. There might also be a WP:RS which collects that information (after all, Wikipedia is not a repository of knowledge) TEDickey (talk) 13:47, 7 August 2011 (UTC)

Standards must be upheld[edit]

The reason for the column "First appeared" is to uphold the notability standard. — CpiralCpiral 18:18, 9 December 2011 (UTC)

Wot about "mknod"?[edit]

Since you have "mkfifo", you should also have "mknod", which (at least in the AT&T world) includes the mkfifo capability. Old_Wombat (talk) 05:14, 8 January 2012 (UTC)

mknod isn't in the X/Open list TEDickey (talk) 12:01, 8 January 2012 (UTC)

OK, fine, then in an X/Open environment how do you create b/c special files? (I'm an AT&T guy). Old_Wombat (talk) 09:21, 10 January 2012 (UTC)

I think you're making this article into a "List of Posix Utilities", while its name is "List of Unix Utilities". Posix is not Unix - Posix is a set of APIs - C functions and shell utilities - which can be used to write applications which will work across many variants of Unix and even other systems (e.g., Windows with Cygwin). Posix deliberately does not cover parts of Unix which user applications do not use, and "mknod" is such an example - an ordinary application needs to assume that devices exists, and not care on how they were created. So Posix doesn't mandate an "mknod" command, and Cygwin for example doesn't have to support mknod (by the way - it does have it...)). But saying that this means that "mknod" isn't a Unix utility is silly. The mknod utility appeared in Unix v6 (in 1975), and all Unix variants inherited it. Nyh (talk) 13:14, 10 January 2012 (UTC)
The topic description points to the relevant sources which happen to be POSIX, and extends that to similar systems:

This is a list of UNIX utilities as specified by IEEE Std 1003.1-2008, which is part of the Single UNIX Specification (SUS). These utilities can be found on UNIX Operating systems and most UNIX-like operating systems.

If a given utility isn't in that source, some (non-WP:OR) sources should be given to reduce argument. So far, most of the outliers have been the usual cases of (a) little-used applications, (b) Linux-specific, or (c) developers promoting their products. TEDickey (talk) 11:46, 10 January 2012 (UTC)

The more I think about it, the more inappropriate POSIX is as a "List of Unix Utilities". I just found on the list the silly "command", which as far as I know was never a Unix utility (it is a builtin in new shells, but I don't remember it existing on Unix at all), and on the other hand we're missing the oportuinity to link to real articles on real Unix utilities that have existed for more than 3 decades, like "mknod" and "Spell (Unix)", just because Posix didn't standardize them or thought they were legacy. I would argue that this page should be renamed "List of Posix Utilities" (or something similar), and it should be linked in the Posix article. Then, a separate "List of Unix Utilities" can be created, perhaps as a union of utilities that existed on a small number of "classic" Unix systems for whom we can find manuals, e.g., 7th edition, System V, SunOS, 4.4BSD etc. This will have to be well defined, to avoid making it a list of X-windows programs, a list of hundreds of utilities from modern Linux or BSD variants, etc, but it will be a more exhaustive list of utilities that actually existed on Unix systems. Nyh (talk) 13:39, 10 January 2012 (UTC)
However, the topic description and sources don't say "POSIX". It being Wikipedia, you're free to make up whatever facts you want, but ultimately if they're not WP:RS, and veer into WP:OR, someone will disagree with your opinion TEDickey (talk) 13:55, 10 January 2012 (UTC)

This argument is becoming a little absurd. The lede talks about "Single UNIX Specification (SUS)". It then immediately moves to "UNIX Operating systems" (plural) and then "most UNIX-like operating systems" (again a plural). If that wasn't enough, Tedickey immediately talks about "X/Open"; and then somehow "Posix" makes its way into the conversation. If there's no agreement on even that, it seems pointless to continue the discussion. Finally, Tedickey, as to your "(a) little-used applications, (b) Linux-specific, or (c) developers promoting their products. ", categories, into which of those are you going to fit mknod? Old_Wombat (talk) 09:08, 11 January 2012 (UTC)

Probably the first, on the basis of which I'd recommend trimming the topic to mention only those programs which have (a) WP:RS citing their origin and/or (b) a topic demonstrating their respective notability TEDickey (talk) 11:53, 11 January 2012 (UTC)

How on earth do you figure that mknod is an application? Old_Wombat (talk) 07:48, 12 January 2012 (UTC)

Are you making a distinction between "utility" and "application"? In either case, it's documented as if it is a program in the user-space TEDickey (talk) 11:28, 12 January 2012 (UTC)
To add to the above discussion, it is completely absurd that "bg", "fg", "alias", "unalias" are listed in a "List of Unix utilities". They are definitely NOT "Unix Utilities", but rather shell builtins, and have never existed in any other form. This article should be perhaps be renamed "List of SUS utilities", or something, but not a "List of Unix Utilities". A real "List of Unix utilities" would not have these non-utilities, but *will* have real Unix utilities like seq (Unix), factor (Unix), spell (Unix), mknod and other stuff that exist on most (if not all) variants of Unix, BSD and Linux, but missing from SUS for one reason or another. Nyh (talk) 10:49, 4 April 2012 (UTC)
From the context and earlier comments, it appears that you're arguing for making "Unix" whatever happens to run on the various *BSDs, (even Linux...) etc., and separating the trademark owner from its trademark, since it is not relevant to your proposed consensus TEDickey (talk) 11:00, 4 April 2012 (UTC)
You're mistunderstanding me. The reason I want these articles (seq, factor, spell, mknod, crypt) on this list isn't that it runs on *BSD and Linux - it's that they existed in the official products called Unix. Factor (Unix) for example existed on every official version of Unix since 1974, and the fact that SUS decided it wasn't important enough doesn't mean it should be wiped out from Unix history. The fact that these utilities still exist on modern Linux and *BSD systems doesn't say much if they are Unix - just that they are still considered useful even today, despite what Posix thought. Contrast this, for example, with Little Implementation Language, a short-lived Unix utility (compiler, actually), which existed only in Fifth Edition Unix (in 1974) but was dropped afterward and never reached any other Unix version or BSD or Linux. Such utiltities can, I think, be dropped, but the more long-lasting ones should not.Nyh (talk) 13:36, 14 July 2012 (UTC)
‎Today, someone added the good article crypt (Unix) to the "List of Unix Utilities", and someone else removed it saying that "crypt is not POSIX". I'm still bothered (very much) that very useful Unix utilities which have existed for years (even decades) before Posix, are now labeled "not unix" because Posix decided to leave them out. I remember using "crypt" (as well as "spell", "mknod" and other things left out from this list) on Unix since 1985. This list needs to be split: a new "List of Posix Utilities" (with the current rules moved to that article) and "List of Unix Utilities" which will include utilities (commands from the (1), (6) or (8) section of the manual pages) which existed on *UNIX* releases (mostly AT&T releases, and perhaps other things, but definitely not modern Linux and *BSD distributions).Nyh (talk) 13:28, 14 July 2012 (UTC)
Crypt was available on all older UNIX system and BSD but since the early 1980s, the US export regulations caused it to disappear - well it was a simplified variant of the German Enigma from the 1920s to 1940s. The article name indeed has a problem as it does not fully aggree with the explanation for the article. --Schily (talk) 22:00, 14 July 2012 (UTC)
crypt was not available on "all" Unix systems, and of course anything called "crypt" on most Linux/BSD systems is quite likely a separate implementation. It never was standardized, as you seem to concede, and the current topic is based on the programs that were standardized. TEDickey (talk) 21:29, 14 July 2012 (UTC)
Today another fine, traditional Unix utility was banned from the list: fortune (Unix), again proving that this list must not be called "List of Unix utilies" list. Nyh (talk) 19:01, 24 July 2012 (UTC)
The current lawful truth is that UNIX is what POSIX defines. As you might discover, fortune is not part of the POSIX standard. --Schily (talk) 09:56, 25 July 2012 (UTC)
POSIX is not an exclusionary definition. In other words, there is no such thing as POSIX Unix that is only POSIX Unix. The first paragraph of the POSIX article explains that the POSIX standard is meant to ensure a minimum level of compatibility between different variants of Unix. So, the scope of this article should not be narrowed to only POSIX, because that would exceed the scope of POSIX itself as it relates to Unix. If there isn't a list of POSIX utilities already, there probably should be one. That would be the right place to narrow the scope to only POSIX utilities. Badon (talk) 19:39, 25 July 2012 (UTC)

Removed links[edit]

I'm collecting here links to actual Unix utilities (utilities which existed in various versions of Unix) which various people added to this list, but were removed by others because they were never standardized by POSIX or SUS. This list could be useful if one day someone will be bold and split this list into a POSIX list and a Unix list:

  1. fortune (Unix)
  2. crypt (Unix)
  3. seq (Unix)
  4. factor (Unix)
  5. spell (Unix)
  6. mknod
  7. dc (computer program)

Nyh (talk) 13:28, 28 August 2012 (UTC)

You did not sign your text and BTW: seq did not exist in any version of UNIX I am aware of. It seems that it has ben introduced by Plan 9. --Schily (talk) 19:41, 24 July 2012 (UTC)

I've retroactively signed it now. seq was introduced in Eighth Edition Unix, which while wasn't a very well known Unix (because it came out in 1985, after the BSDs and commercial Unix split from research Unix), was nevertheless "Unix" par excellence. While not a proof, the fact that both GNU and freebsd decided to copy/emulate this utility shows that at least they considered this a viable, useful (at least at the time) Unix utility. What I'm trying to say (multiple times in this thread... sorry...) is that Unix isn't a single coherent system, and not even a single standard, but rather a bushy family tree of systems developed over 3 decades, and some "list of unix utilities" (even if not this article) should list all the various utilities which were popular over these years. I'm not saying that every useless utility that existed for a brief period (e.g., Little Implementation Language) must be listed (although I'm not sure it shouldn't), but definitely a utility like seq which existed in Bell Labs Unix for 7 years (from 8th edition in 1985, until Unix development stopped around 1992) and was copied by some modern Unix-like systems (GNU and FreeBSD), is worthy listing.Nyh (talk) 13:28, 28 August 2012 (UTC)

Proposal: 3 needed list articles[edit]

  1. This article should be renamed to List of Unix utilities and shell builtins.
  2. Create another article named List of Single Unix Specification utilities.
  3. Create another article named List of POSIX utilities.

Badon (talk) 19:45, 25 July 2012 (UTC)

UNIX is a Trademark owned by The OpenGroup - the creator of the Single UNIX specification. The Single UNIX specification and POSIX have merged after 2001 (POSIX just adopts the SUS specifications after a review), so there does not seem to be a difference between all three. --Schily (talk) 20:59, 25 July 2012 (UTC)
This is a non-sequitur - so what if Unix is a trademark? According to this logic, List of Unix systems should only list one system, the current SUS standard. Obviously, it doesn't. Remember that the trademark "UNIX" was used for about 3 decades for a number of systems, which have nothing to do with the current SUS standard. All these UNIX systems had utilities, which while were not later adopted by SUS, some have been "UNIX utilities" for 20 (or whatever) years, and writing them out of history (or just the "list of Unix Utilities") makes little sense to me. See my list above of several. To the original proposer - please note this this article should be renamed not "list of unix utilities and shell builtins" but rather "list of sus utilities and shell builtins". A new "list of unix utilities" article should contain a slightly different list (see my "removed" list in an above section), and should not list shell builtins, which are a completely different beast. Nyh (talk) 13:07, 28 August 2012 (UTC)
The first two suggestions fall flat for the same reason that you want to rename the topic. The third for a similar reason: the topic description isn't specifically "POSIX" without some creative misuse of sources. TEDickey (talk) 20:30, 25 July 2012 (UTC)

yacc appeared earlier[edit]

yacc didn't first appear in pwb, it goes back to at least unix version 3, and perhaps even earlier. tuhs lists the date 1/20/73. Perhaps this should be changed? — Preceding unsigned comment added by Cube1024 (talkcontribs) 06:12, 9 December 2013 (UTC)

using a reliable source is the way to proceed. TEDickey (talk) 10:02, 9 December 2013 (UTC)

Wrong name for page[edit]

This page is restricted to utilities defined in SUS standard, but (by name of the page) the page is about (all) Unix utilities. The name of the page should be changed or the list should be expanded to non-SUS mentioned utilities (for example free). There is no reason to think (or predict) that SUS has whole set and no other utilities are usable (or exist) anr/or that SUS standard defines what is possible/allowed to list (or deny to list) in Wikipedia. --Milan Kerslager (talk) 08:21, 24 January 2014 (UTC)

perhaps you meant to say that it should be renamed "Linux utilities", since there's no other way to interpret your remarks. TEDickey (talk) 09:18, 24 January 2014 (UTC)

No, it should be named "Unix SUS utilities" or something like this if the page want to restrict the set of utilities to SUS only. If the name "List of Unix utilities" is used, there should be no restriction for the list because the name does not reflect any restriction. --Milan Kerslager (talk) 18:09, 13 July 2014 (UTC)

hmm - your remarks remind me of the people looking at [www.freebsd.org]] and wanting to know which Linux distribution that is. As it is, there's a note at the top of this topic which delineates what's expected. TEDickey (talk) 18:43, 13 July 2014 (UTC)

mkfifo[edit]

I don't believe mkfifo appeared in 4.4BSD, as the article claims. That may be the first BSD that had it, but in his 1977 Unix retrospective, Dennis Ritchie already described named pipes. I'm pretty sure they were in System V, and since they weren't in Research Unix, I suspect they're from either CB UNIX or PWB. QVVERTYVS (hm?) 15:45, 23 April 2014 (UTC)

mkfifo has a Copyright 1984 AT&T inside. This does not prove y1984 as the first year but it proves that id did not appear later. The BSD implementation has been created in 1990 by Kirk McKusick. Schily (talk) 16:17, 23 April 2014 (UTC)
Which mkfifo implementation is that?
According to the POSIX.2001 spec for mkfifo "[T]he mknod() function was originally excluded from the POSIX.1-1988 standard as implementation-defined and replaced by mkdir() and mkfifo()`." 4.4BSD was from 1993 or 94, so mkfifo is older; if I interpret this correctly, then mknod was originally used to create named pipes and mkfifo was invented by POSIX to prevent having to standardize mknod. QVVERTYVS (hm?) 18:53, 23 April 2014 (UTC)
I am talking about the original UNIX implementation.
Even though we sometimes have historic discussions in the teleconferences, the Opengroup in general does not care about history in public documents if that history happened before 1988.
mkdir() was written by Bill Joy probably in late 1982. The related code was merged in by Samuel Leffer around that time with a hint to Bill. The final change of the mkdir command was on December 19 1982 by Samual Leffler.
Before, mkdir() did not exist, mkdir(1) was a suid root command based on mknod() and that was highly insecure. It took not a long time to become super user with a mkdir(1) based hardlink attack.
mknod() was excluded from POSIX because POSIX does not deal with device nodes if that is beyond the scope of stat(2).
IIRC, named pipes have been added to SunOS-3.0 (December 1985) they aperared extremely late in BSD and the UNIX FAQ that is not always correct (see false claims about SCCS vs. RCS performance) says that named pipes have been introduced by AT&T in 1982. Schily (talk) 21:09, 23 April 2014 (UTC)

Utilities / commands, full list / sub-lists?[edit]

I arrived at this page after looking for a overall list of Unix commands and being redirected from List of Unix commands. Not being a Unix purist (whatever that is), I thought that there would be an article which listed as many of the commands as possible (i.e. any "word" that would do something at a command line). Since that would be a big list, I assumed that there would also be articles for more specific lists covering utilities vs. built-ins vs. utilities in ABC Unix vs. utilities in XYZ Unix standard. So, unless I missed a major point, please could we have a generic list at List of Unix commands and move this page to reflect the specific nature of commands included in this list. --GhostInTheMachine (talk) 13:54, 24 May 2014 (UTC)