https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&user=108.162.244.79&feedformat=atomexplain xkcd - User contributions [en]2024-03-29T07:53:09ZUser contributionsMediaWiki 1.30.0https://www.explainxkcd.com/wiki/index.php?title=1654:_Universal_Install_Script&diff=1280031654: Universal Install Script2016-09-29T21:28:36Z<p>108.162.244.79: /* Explanation */ Sudo less install commands often will work, but make install would fail without it (or supplying a path using configure, though the former is much more in the spirit of the script and doing the latter right would add complexity.</p>
<hr />
<div>{{comic<br />
| number = 1654<br />
| date = March 11, 2016<br />
| title = Universal Install Script<br />
| image = universal_install_script.png<br />
| titletext = The failures usually don't hurt anything, and if it installs several versions, it increases the chance that one of them is right. (Note: The 'yes' command and '2>/dev/null' are recommended additions.)<br />
}}<br />
<br />
==Explanation==<br />
Most users of computers today are used to simple, easy installation of programs. You just download a {{w|.exe}} or a {{w|Installer_(OS_X)#Installer_package|.pkg}}, double click it, and do what it says. Sometimes you don't even have to install anything at all, and it runs without any installation.<br />
<br />
However, when things are more "homebrew", for example downloading source code, things are more complicated. Under {{w|Unix-like}} systems, which this universal install script is designed for, you may have to work with "build environments" and "{{w|makefiles}}", and command line tools. To make this process simpler, there exist repositories of programs which host either packages of source code and the things needed to build it or the pre-built programs. When you download the package, it automatically does most of the work of building the code into something executable if necessary and then installing it. However, there are many such repositories, such as "{{w|pip (package manager)|pip}}" and "brew", among others listed in the comic. If you only know the name of a program or package, you may not know in which repository(ies) it resides.<br />
<br />
The <code>install.sh</code> file provided in the comic is a {{w|shell script}}, which attempts to fix this problem by acting as a "universal install script" that contains a lot of common install commands used in various Unix-like systems. This script in particular is interpreted by the {{w|Bourne Again Shell}} (Bash), which is denoted by the <code>#!/bin/bash</code> in the first line. In between each of the install commands in the script is the & character, which in {{w|POSIX}}-compatible {{w|Unix shell|shells}} (including {{w|Bash (Unix shell)|Bash}}, a popular shell scripting language) means it should continue to run the next command without waiting for the first command to finish, also known as "running in the background". This has the effect of running all the install commands simultaneously; all output and error text provided by them will be mixed together as they are all displaying on the screen around the same time.<br />
<br />
The script accepts the name of a program or package as an argument when you run it. This value is then referenced as "$1" (argument number 1). Everywhere the script says "$1", it substitutes in the name of the package you gave it. The end result is the name being tried against a large number of software repositories and package managers, and hopefully, at least one of them will be appropriate and the program will be successfully installed. Near the end, it even tries changing the current working directory to that which is assumed to hold the package to be installed, and then runs several commands which build the program from source code.<br />
<br />
All in all, this script would probably work; it runs many standard popular repository programs and package managers, and runs the nearly-universal commands needed to build a program. Most of the commands would simply give an error and exit, but hopefully the correct one will proceed with the install.<br />
<br />
One of the more subtle jokes in the comic is the inclusion of <code>apt-get</code> and <code>sudo apt-get</code> in the same script. Good unix practice dictates never logging in as root; instead you stay logged in as your normal user, and run system admin accounts via <code>sudo program name</code>. This prevents accidental errors and enables logging of all sensitive commands. A side effect of this, however, is that an administrator may forget to prefix her command with <code>sudo</code>, and re-running it properly the second time. This is a common joke in the Linux community, an example of which can be found at [https://twitter.com/liamosaur/status/506975850596536320 viral tweet] which shows a humorous workaround for the issue.<br />
<br />
Since Randall's script does not use sudo for any but the <code>apt-get</code> command, there are two possibilities: the script itself was run via the root user or via sudo, in which case the <code>sudo apt-get</code> is not needed, or the script was run as a normal user, in this case the commands may install a local (as opposed to system-wide) version depending on local conditions. For instance npm will install a copy of the package under $HOME/.npm and pip would work as long as the user is working in a [https://iamzed.com/2009/05/07/a-primer-on-virtualenv/ virtualenv] (which is standard practice for Python developers).<br />
<br />
Sudo has also been used both by [[Randall]] in [[149: Sandwich]] and by Jason Fox to force Randall to let him appear on xkcd with [[824: Guest Week: Bill Amend (FoxTrot)]].<br />
<br />
The tool <code>curl</code> downloads files from the network (e.g., the Internet). For example, <code>curl http://xkcd.com/</code> downloads and displays the xkcd HTML source. The pipe <code>|</code> in the script attaches the output of the command before the pipe to the input of the command after the pipe, thus running whatever commands exist in the web content. Although this "curl|sh" pattern is a common practice for conveniently installing software, it is considered extremely unwise; you are running untrusted code without validation, there may be a MITM who modifies the code you receive, or the remote system could have been hijacked and the code made malicious. Most local package managers (e.g. <code>apt</code>, <code>yum</code>) offer digitally-signed packages that thwart this problem. You can find many examples of software providers suggesting a <code>curl|sh</code> solution at [https://curlpipesh.tumblr.com/ curlpipesh]<br />
<br />
There appears to be a bug with the & at the end of the "git clone" line; since a git repository typically contains program source code, not executables, it may have been intended to retrieve the source code with git and then compile and install the program in the next line. In this case, the single & should be replaced with &&, an operator that will run the second command only if the first one has completed successfully. This plays into a second bug on the "configure" line, where the placement of the & means that only the "make install" command will be run asynchronously after the "configure" and "make" steps have finished in sequence (though this would likely fail due to a lack for write permissions unless it was run with sudo). To make success as likely as possible, the two lines should be like this or script should be executed twice:<br />
<br />
git clone <nowiki>https://github.com/</nowiki>"$1"/"$1" && (cd "$1"; ./configure; make; sudo make install) &<br />
<br />
Since all commands are running in the background, any command that requires user input will stop and wait until brought to the foreground. A common request would be for a database password, or if it is allowed to restart services for the installation. This could lead to packages being only partly installed or configured. (See more about using "yes" below.)<br />
<br />
The title text mentions the possibility that the same program may be in multiple repositories, so in this case, the script will download and install several versions, or it may fail on a number of repositories, in which case usually nothing bad happens. Since all the commands come from different operating systems, versions, or distributions, it is not very likely that more than one will work (with the exception of pip/easy_install and the two forms of apt-get) or even exist on the same system. It mentions that adding a way of automatically saying "yes" to questions asked during the different repository-fetching programs' running, by making them read input from another program that writes a (nearly) endless stream of "y"s, could simplify things further. This would not work for any curses-based menus, or to answer any more complicated questions. Adding <code>2>/dev/null</code> to a command redirects the second output stream (the "error stream") to the null device driver, which discards all writes to it, meaning errors (the package not existing) will not be sent to the screen.<br />
<br />
==Transcript==<br />
:[In the panel is a shell script which, unusual for xkcd, uses only lower case. At the top the title of the program is inlaid in the frame, which has been broken here.]<br />
:<big>Install.sh</big><br />
<br />
:<nowiki>#!/bin/bash</nowiki><br />
<br />
:pip install "$1" &<br />
:easy_install "$1" &<br />
:brew install "$1" &<br />
:npm install "$1" &<br />
:yum install "$1" & dnf install "$1" &<br />
:docker run "$1" &<br />
:pkg install "$1" &<br />
:apt-get install "$1" &<br />
:sudo apt-get install "$1" &<br />
:steamcmd +app_update "$1" validate &<br />
:git clone <nowiki>https://github.com/</nowiki>"$1"/"$1" &<br />
:cd "$1";./configure;make;make install &<br />
:curl "$1" | bash &<br />
<br />
==Trivia==<br />
*pip and easy install are package managers for {{w|Python (programming language)|Python}}<br />
*brew is the successor/replacement for {{w|MacPorts}} and a third-party package manager for OS X<br />
*{{w|npm (software)|npm}} is the node package manager that maintains node.js packages<br />
*{{w|Yellowdog Updater, Modified|yum}} is the package management tool for {{w|Red Hat Enterprise Linux}} and some derivatives<br />
*{{w|DNF (software)|dnf}} is the package management tool for {{w|Fedora (operating system)|Fedora}} since version 22<br />
*docker run is a {{w|Docker (software)|Docker}} command that runs a given container (similar to a virtual machine)<br />
*pkg is the package management tool on {{w|Berkeley Software Distribution|BSD systems}}<br />
*apt-get is the package management tool of {{w|Debian}} and derivatives (e.g. Ubuntu)<br />
*steamcmd refers to {{w|Steam (software)|Steam}}, the computer game client<br />
*git is the revision control software used for many projects and gained a lot of traction through the {{w|GitHub}} platform<br />
*configure/make/make install refers to the standard way of compiling software from source (on Linux/Unix)<br />
*curl is a tool for loading data via http:// (i.e. from a website), this data is then pushed to the shell interpreter (in order to install)<br />
**Note: While this is a security nightmare, some projects (like Homebrew) still use it as the preferred or only method of installation.<br />
<br />
{{comic discussion}}<br />
[[Category:Programming]]</div>108.162.244.79https://www.explainxkcd.com/wiki/index.php?title=Talk:993:_Brand_Identity&diff=123098Talk:993: Brand Identity2016-07-09T01:33:54Z<p>108.162.244.79: </p>
<hr />
<div>Notice that the sugar is inverted? Weird.<br />
--Classhole 23:22, 24 January 2013 (UTC)<br />
:Weird, the hot sauce is also inverted [[User:BlueRoll18|BlueRoll18]] ([[User talk:BlueRoll18|talk]]) 02:38, 7 February 2013 (UTC)<br />
:::While the sugar and hot sauce are unusual in that you can easily read the packaging, I don't think they are supposed to be in the same product range. --[[User:Pudder|Pudder]] ([[User talk:Pudder|talk]]) 16:25, 8 December 2014 (UTC)<br />
:Possibly a reference to [http://en.wikipedia.org/wiki/Inverted_sugar_syrup inverted sugar syrup]. [[User:Liyang|Liyang]] ([[User talk:Liyang|talk]]) 05:44, 5 May 2015 (UTC)<br />
<br />
NONAME in Canada uses yellow boxes with black text but basically the same idea.<br />
--Pundawg 18:56, 19 February 2013 (UTC)<br />
<br />
I didn't get this joke because I grew up eating "Slim Price" food branded exactly this way. -lolo {{unsigned ip|99.120.200.86}}<br />
<br />
There's a brand called "Ja!" from the Rewe group in Germany that uses this exact concept somewhat, but nowadays, the packages contain pictures and illustrations of all kinds, and aren't as white, simple and plain as they used to be in the past. See: http://www.rewe.de/besser-einkaufen/ja/produkte-und-infos.html<br />
--Rolfhub 23:25, 14 September 2013<br />
<br />
:Here is some old image of the designs: [https://web.archive.org/web/20040503194438im_/http://www.rewe-ja.de/nxMODULES/nxCONTENTER/content/1_425Bild1.jpg]. It's not as simple as in the comic, but it's certainly the same idea. -- [[Special:Contributions/108.162.219.39|108.162.219.39]] 20:25, 24 April 2014 (UTC)<br />
<br />
:Ah, dear old "Ja!"... it saved my life back when I was a broke student. Anyway, also the M-Budget line from Swiss Migros recently started adding pictures to its product, but before that it was all green packaging with black writing. Wonerful --[[Special:Contributions/108.162.229.31|108.162.229.31]] 13:36, 26 May 2014 (UTC)<br />
::"Ja!" is a very successful brand sold in Germany (and more countries) offered by {{w|REWE}}. The products are presented in a white cover, just showing the word "Ja!" ("Yes!" in English) and much smaller the content of the product. Maybe this could also be mentioned at the trivia section. --[[User:Dgbrt|Dgbrt]] ([[User talk:Dgbrt|talk]]) 21:55, 26 May 2014 (UTC)<br />
<br />
I think the lack of URL is just to troll the consumers. [[Special:Contributions/173.245.63.180|173.245.63.180]] 00:33, 13 November 2013 (UTC)<br />
<br />
Actually several brands in the Netherlands did this before the comic was posted. They switched to a red/white two-colour scheme with the product in large letters in English. The problem was, that multiple brands did this, which made them look very similar. [[Special:Contributions/141.101.75.95|141.101.75.95]] 16:09, 8 December 2014 (UTC)<br />
Hey, something seems wrong with the IP logging. The logged IP is not mine. -- [[Special:Contributions/141.101.75.95|141.101.75.95]] 16:11, 8 December 2014 (UTC)<br />
<br />
For a couple of decades this exact thing existed: http://www.google.com/search?q=black+on+white+generic+brand+products In fact I'm certain that that is the joke.[[Special:Contributions/108.162.215.156|108.162.215.156]] 07:38, 11 March 2015 (UTC)<br />
<br />
I believe this may be a reference to the film Repo Man. {{unsigned ip|141.101.98.170}}<br />
<br />
I don't know how common [http://en.wikipedia.org/wiki/Muji Muji] stores are in the US (where I imagine most readers reside), but this is basically what they've been doing since the 1980s. [[User:Liyang|Liyang]] ([[User talk:Liyang|talk]]) 05:33, 5 May 2015 (UTC)<br />
<br />
Soylent 2.0 is doing this exact thing: https://soylent-production-herokuapp-com.global.ssl.fastly.net/static/images/drink_secondary_messaging_block1.3571d250b954.jpg Interestingly, that image is very similar to this comic.03:36, 7 February 2016 (UTC)<br />
<br />
I was at walmart the other day and noticed a brand doing this, without even a brand name. [[User:Mikemk|Mikemk]] ([[User talk:Mikemk|talk]]) 20:31, 23 March 2016 (UTC)<br />
<br />
;/* Triva */<br />
<br />
Randall made a mistake as the ketchup is labeled "kerhup" {{unsigned ip|108.162.245.118}}<br />
:No, if you zoom in it'sthe letters 'TC', which overlap slightly because of the cramped bottle. {{unsigned ip|141.101.98.133 }}<br />
<br />
Why is the tea box green except for inside the A?[[User:Bbrk24|Bbrk24]] ([[User talk:Bbrk24|talk]]) 00:23, 4 May 2016 (UTC)<br />
:It's actually yellow; you may wish to check to see if you are colorblind. There are many errors in filling in spaces that should be colored, though. --[[Special:Contributions/108.162.244.79|108.162.244.79]] 01:33, 9 July 2016 (UTC)</div>108.162.244.79https://www.explainxkcd.com/wiki/index.php?title=Talk:1692:_Man_Page&diff=121913Talk:1692: Man Page2016-06-14T06:38:56Z<p>108.162.244.79: reply to comment</p>
<hr />
<div><!--Please sign your posts with ~~~~--><br />
<br />
I do not entirely understand how wikis work; however, I have attempted to add a transcript. I apologize if anything breaks. I also apologize if this is not how I should be apologizing.<br />
<br />
[[Special:Contributions/108.162.241.135|108.162.241.135]] 04:27, 10 June 2016 (UTC)<br />
<br />
The Pope flag is referencing the time of the [https://en.wikipedia.org/wiki/Avignon_Papacy Avignon Papacy] --[[Special:Contributions/108.162.237.243|108.162.237.243]] 04:56, 10 June 2016 (UTC)<br />
<br />
:Would have frickin' loved Randall if he inserted a reference to Pope of Dope here. :D [[User:Todor|Todor]] ([[User talk:Todor|talk]]) 08:17, 10 June 2016 (UTC)<br />
<br />
OK, -e -h -v doesn't seem to work, it keeps halting at an input line!<br />
<br />
Also, -p "AVIGNON" only works if I specify -D -I, -O, or -jk.<br />
<br />
Why isn't -x documented on this man page? -x seems to do ''something'' but I'm not sure what the value of it is.<br />
<br />
-y just returns "CHROMOSOME MISMATCH".<br />
<br />
-a -e -f -n -o -r -S works if I specify -g, but -R starts to return CloudFlare errors after the first few million sites.<br />
<br />
-v -d seems to make debug.exe speak out loud, but eventually it just starts spouting seemingly random numbers, unless I use -q. Is this desired behavior, or a bug?<br />
<br />
{{unsigned ip|255.255.255.0}}<br />
(-jk | off) [[Special:Contributions/108.162.221.8|108.162.221.8]] 20:19, 10 June 2016 (UTC)<br />
<br />
The horrible thing about this comic is that somebody is sure to have implemented this program by the end of the day... {{unsigned ip|141.101.104.140}}<br />
<br />
:Found one on Github: https://github.com/iKevinY/blerp . It has a man page file, but the program itself just outputs "bleep blerp" and doesn't implement any of the flags (yet?). [[Special:Contributions/141.101.104.141|141.101.104.141]] 08:05, 10 June 2016 (UTC)<br />
<br />
::Thanks for linking my repo! I quickly drafted up the man page when the comic was released, and decided to use this project as an opportunity to become more familiar with Rust. I'll be gradually adding functionality to meet the "spec" of the man page. [[Special:Contributions/108.162.244.79|108.162.244.79]] 06:38, 14 June 2016 (UTC)<br />
<br />
"Behavior Not Defined" might be a reference to undefined behavior, where a program is allowed to do anything including make demons fly out your nose: https://en.wikipedia.org/wiki/Undefined_behavior [[Special:Contributions/108.162.219.12|108.162.219.12]] 06:48, 10 June 2016 (UTC)<br />
<br />
[[Special:Contributions/162.158.135.36|162.158.135.36]] 06:58, 10 June 2016 (UTC) Søren Mors<br />
<br />
I thought Ansel was a deliberate misspelling of ANSI, the most common 8 bit codepage. {{unsigned ip|162.158.135.36}}<br />
<br />
The commit "Revision as of 07:08, 10 June 2016" reverted an IMO good explanation for the debug option with a bad one. Consider changing it back. [[User:Todor|Todor]] ([[User talk:Todor|talk]]) 07:20, 10 June 2016 (UTC)<br />
:I agree. The bad explanation also mixed up {{w|Pipeline (Unix)|piping}} with {{w|Redirection (computing)|redirection}} --[[Special:Contributions/141.101.104.76|141.101.104.76]] 07:41, 10 June 2016 (UTC)<br />
<br />
I don't think `blerp -a -d -t -p "AVIGNON"` is a valid call to blerp, because the syntax line syntax is utterly off. For example, the first line has an unclosed open [, whereas the second line – in addition to having the corresponding unmatched ] – plays with the fact that even though {} is usually used to list a set of required items, {} is also how `find` (which might do something similar to blerp, and is in fact mentioned in -v) denotes its results when passed to an exec. {{unsigned ip|141.101.104.30}}<br />
<br />
Command line options do not normally use n-dashes; they use hyphens. Another problem with this option is that n-dashes and m-dashes cannot usually be displayed properly in the fixed-width fonts commonly used for command line terminals. The usual custom is to use two hyphens to represent a dash (which for proportional font display will often be converted to either an n-dash or m-dash).<br />
: In groff (GNU troff, the language in which man pages are written) the code for an m-dash is '''\(em'''. It will display as either two hyphens "'''--'''" or as an actual m-dash "'''—'''" depending on the character set specified in the locale environment variables. [[User:Locoluis|Locoluis]] ([[User talk:Locoluis|talk]]) 17:17, 10 June 2016 (UTC)<br />
: Many commands use a double dash "--" to specify the end of the options. In "ls -a" the "-a" is an option. In "ls -- -a" the "-a" is the name of the file.--[[Special:Contributions/108.162.218.59|108.162.218.59]] 16:00, 11 June 2016 (UTC)<br />
<br />
While "check whether input halts" clearly alludes to the halting problem, it may not actually be impossible, depending on what blerp actually does and what sort of input it accepts. (It says nothing about actually ''reporting'' the result, and it makes no guarantees that it will itself halt.)<br />
<br />
—[[User:PhantomLimbic|PhantomLimbic]] ([[User talk:PhantomLimbic|talk]]) 07:30, 10 June 2016 (UTC)<br />
<br />
:Indeed. Turing's proof for the halting theorem says that there is no algorithm that allows a Turing machine to determine whether any possible program/input combination will halt. However, this doesn't necessarily mean that it's impossible to develop an algorithm that determines whether a particular, fixed program will halt on an arbitrary input. [[Special:Contributions/141.101.104.141|141.101.104.141]] 08:14, 10 June 2016 (UTC)<br />
<br />
Currently, there is no mention of the unmatched square brackets in the synopsis, or unmatched parenthesis in the title text. Presumably a reference to XKCD comic 859. [[Special:Contributions/141.101.98.77|141.101.98.77]] 07:51, 10 June 2016 (UTC)<br />
<br />
Attack Mode might be a reference to the [https://en.wikipedia.org/wiki/Yu-Gi-Oh!_Trading_Card_Game Yu-Gi-Oh Trading Card Game] [[Special:Contributions/162.158.85.117|162.158.85.117]] 08:23, 10 June 2016 (UTC)<br />
<br />
In the description of -b the computer (Named "Hex") from discworld uses ants not bees.<br />
Ref: https://en.wikipedia.org/wiki/Hex_(Discworld) [[Special:Contributions/141.101.98.125|141.101.98.125]] 09:13, 10 June 2016 (UTC)Bluewhelk<br />
:Hmm. Reading the wiki article further Hex uses a beehive for long term storage! My bad [[Special:Contributions/141.101.98.125|141.101.98.125]] 09:20, 10 June 2016 (UTC)Bluewhelk<br />
<br />
"Or best offer" doesn't need to reference a financial offer, it may also mean that anyone offering to reuse the article with an alternative license is allowed to do so. Attack Mode and Stealth Mode seem to me to be references to computer viruses. Stealth Mode is also an option in some applications that can hide their presence when run, often because of malicious behavior, such as remote access tools, keyloggers, etc. Piping is not only used in Unix, it is also common in MS-DOS. Opposite Day has a good explanation on Wikipedia. Literal quote from Wikipedia: "Once Opposite Day is declared, statements mean the opposite of what they usually mean.". --[[Special:Contributions/162.158.222.217|162.158.222.217]] 11:17, 10 June 2016 (UTC)<br />
<br />
Is there any evidence that Opposite Day may refer to Cyanide & Happiness? Opposite Day is a fairly well-known concept (at least from what I know growing up in the U.S.), and I don't see any direct connections to the specific C&H video short. I think that speculation should be removed. [[User:Sayno2quat|Sayno2quat]] ([[User talk:Sayno2quat|talk]]) 14:33, 10 June 2016 (UTC)<br />
<br />
I could be wrong, but I think the program is also "simulating" a man (a play with the words because it's a '''man''' page). If you think like that a lot more commands makes sense (especially, -D, -e, -f, -g, -jk, -R, -u). Just a penny for a thought. --[[Special:Contributions/108.162.241.134|108.162.241.134]] 11:52, 10 June 2016 (UTC)<br />
<br />
If someone wants a history of the useragent string (possibly a reference for that "citation needed"), then [http://webaim.org/blog/user-agent-string-history/|this might be of interest]. --[[User:Draco18s|Draco18s]] ([[User talk:Draco18s|talk]]) 16:12, 10 June 2016 (UTC)<br />
<br />
The <code>-n</code> option might be a reference to <code>echo</code>, where it is an option often used but which does not work on all systems. <br><br />
Am I the only one to see the “k” capitalized in <code>-jK</code>? <br><br />
[[User:Ltrlg|Ltrlg]] ([[User talk:Ltrlg|talk]]) 18:55, 10 June 2016 (UTC)<br />
<br />
I interpreted "CHECK WHETHER INPUT HALTS" as simply determining whether the input was a finite string. (while at the same time referencing the halting problem) --[[Special:Contributions/162.158.68.59|162.158.68.59]] 20:22, 10 June 2016 (UTC)<br />
<br />
I think that "suppress bees" probably indicates a smoke situation, a situation where the magic smoke is let out of the computer, such as halt-catch-fire. Smoke is the way to suppress bees. [[Special:Contributions/108.162.249.158|108.162.249.158]] 20:24, 10 June 2016 (UTC)<br />
<br />
What does "BSD 4(2)" mean? --[[Special:Contributions/162.158.255.65|162.158.255.65]] 20:54, 10 June 2016 (UTC)<br />
<br />
blerp -v | blerp -ha [[User:Mikemk|Mikemk]] ([[User talk:Mikemk|talk]]) 21:28, 10 June 2016 (UTC)<br />
<br />
The word "bug" doesn't actually come from an insect; see the Etymology section of https://en.wikipedia.org/wiki/Software_bug [[Special:Contributions/108.162.245.117|108.162.245.117]] 04:37, 11 June 2016 (UTC)<br />
<br />
Some remarks to the current explanation:<br />
- I think the description is more specific than suggested. It is true that command-line programs regularly read stdin and output something to stdout, but I would categorize only some of them grep/sed/awk/sort/... as filter in the narrower sense. Also that it can access remote files (URL syntax) is a clue<br />
- In the syntax we have args, option, options, and flags<br />
- the environment variables are never described<br />
- attack mode could refer to a network attack, e.g. trying to break into protected servers, or not just filtering the information, but also using it in a damaging way<br />
- suppress bees hints that for normal operation bees are used, something you would not expect from a typical command line program<br />
- the em dashes are probably used from there on on the command line (right of this option)<br />
- piping output to the MS-DOS debug.exe can be used for entering small assembly programs (including saving them typically as .com command), changing memory contents or accessing I/O ports. Normally it is used interactively. In a pipe setup it enhances the abilities of a text processing filter to do some enhanced actions on the target computer<br />
- execute something, similar to the find program which can execute an external program per match; could also mean a specified algorithm and refer to halting check; in any case "something" is quite vague for a man page<br />
- use google: either for input (e.g. read URLs by searching for ARG and getting the first found webpage) or some special Google API; possibly Google is so powerful, it can replace some of the functionality of the program. Just use Google<br />
- Check whether input halts hints that the input processing including algorithm execution is so complex that it can run into an infinite loop, but easy enough to be not yet Turing complete or it is and -h is the joke; or some input never halts, e.g. /dev/random, or it refers to the robot theory, e.g. whether the attacked victim halts<br />
- ignore case probably refers to the actual input files instead of to the command line<br />
- overwrite would be funny with speech output<br />
- the true pope is seemingly important fir filtering. Could refer to important faith settings for other programs, e.g. which editor to use vim/emacs or it us important for knowledge processing<br />
- randomize arguments is good for some test procedures<br />
- as mentioned in the explanation the copyright refers to the man page, not the program, here the explanation is inconsistent in the current revision<br />
Sebastian --[[Special:Contributions/162.158.83.168|162.158.83.168]] 08:55, 11 June 2016 (UTC)<br />
<br />
<br />
With reference to the See Also, the multiple blerps are due to different sections, see https://en.wikipedia.org/wiki/Man_page#Manual_sections [[Special:Contributions/173.245.54.34|173.245.54.34]] 13:08, 11 June 2016 (UTC)<br />
<br />
Could "supress bees" reference to "[http://www.explainxkcd.com/wiki/index.php/797:_debian-main debian-main]"? [[Special:Contributions/162.158.86.131|162.158.86.131]] 19:20, 11 June 2016 (UTC)<br />
<br />
Does the unclosed paren in the title text bother anyone else? [[Special:Contributions/173.245.50.25|173.245.50.25]] 06:02, 12 June 2016 (UTC)<br />
:Not me, but someone somewhere... - [[Special:Contributions/108.162.244.85|108.162.244.85]] 08:41, 12 June 2016 (UTC)<br />
<br />
Is the newspaper on this What-If [http://what-if.xkcd.com/61/] relevant? - [[Special:Contributions/108.162.244.85|108.162.244.85]] 08:41, 12 June 2016 (UTC)<br />
<br />
I've never put anything on this site, but I feel it's worth mentioning that lerp (which stands for linear interpolation) is a thing and it sounds like blerp. [[Special:Contributions/108.162.245.119|108.162.245.119]] 02:31, 13 June 2016 (UTC)<br />
<br />
1. The NAME section is missing the one-line description that is necessary for the whatis and apropos commands.<br />
2. "Set version number" could be used to set the version number in the output files or provide compatibility output.<br />
[[Special:Contributions/108.162.216.98|108.162.216.98]] 02:38, 13 June 2016 (UTC)<br />
<br />
I thought one of the main features of licences like the GPL and BSD was that they ''weren't'' revocable (unless you break the licence terms)? Oh, and someone else already mentioned it, but computer bugs aren't called "bugs" because of insects flying into them. The reason there's that famous bug in a logbook? That's because "bug" already existed as a term for a malfunction, and the operator who kept that logbook found it funny that a bug was caused by an actual bug. [[Special:Contributions/141.101.98.92|141.101.98.92]] 00:42, 14 June 2016 (UTC)</div>108.162.244.79